From e0e8fe7145868d8791d85f83a33b2480302db843 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Fri, 27 Jun 2025 11:36:47 -0400 Subject: [PATCH 01/74] chore: MCP planning document --- docs/DevCycle_MCP_Planning.md | 182 +++++++++++++ docs/MCP_PLANNING_DOCUMENT.md | 470 ++++++++++++++++++++++++++++++++++ 2 files changed, 652 insertions(+) create mode 100644 docs/DevCycle_MCP_Planning.md create mode 100644 docs/MCP_PLANNING_DOCUMENT.md diff --git a/docs/DevCycle_MCP_Planning.md b/docs/DevCycle_MCP_Planning.md new file mode 100644 index 000000000..f694f9c96 --- /dev/null +++ b/docs/DevCycle_MCP_Planning.md @@ -0,0 +1,182 @@ +# DevCycle CLI to MCP Server Planning Document + +## Executive Summary + +Transform the DevCycle CLI into a Model Context Protocol (MCP) server to enable AI coding assistants like Cursor and Claude Code to seamlessly interact with DevCycle's feature flag management capabilities. + +## What is MCP? + +MCP is an open standard by Anthropic that standardizes how AI applications connect to data sources and tools. It acts as a "USB-C port for AI applications." + +**Key Components:** +- **Hosts**: AI applications (Cursor, Claude Code) +- **Servers**: Services providing capabilities (our DevCycle MCP server) +- **Protocol**: JSON-RPC 2.0 communication via stdin/stdout or HTTP + +**Server Capabilities:** +1. **Tools**: Functions callable by LLM (with user approval) +2. **Resources**: File-like data readable by clients +3. **Prompts**: Pre-written templates for common tasks + +## DevCycle CLI Analysis + +**Current Architecture:** +- Built with oclif framework and TypeScript +- Uses DevCycle Management API with auth via client credentials/SSO +- Repository configuration with `.devcycle/config.yml` + +**Major Features:** +- Feature/Variable/Variation management +- Code analysis (usage detection, diff) +- Self-targeting overrides +- Type generation +- Git-aware operations + +## MCP Server Design + +### Core Tools + +#### Feature Management +- `list_features` - List all features with search/pagination +- `get_feature` - Get detailed feature information +- `create_feature` - Create new feature flag +- `update_feature` - Update existing feature + +#### Variable Management +- `list_variables` - List all variables +- `get_variable` - Get variable details +- `create_variable` - Create new variable + +#### Code Analysis +- `scan_variable_usages` - Scan codebase for variable usage +- `diff_variable_usage` - Compare usage between code versions + +#### Project/Environment +- `list_projects` - List available projects +- `get_current_project` - Get current project +- `select_project` - Switch projects +- `list_environments` - List environments + +#### Overrides +- `list_overrides` - List current overrides +- `set_override` - Set self-targeting override +- `clear_overrides` - Clear overrides + +### Resources + +- `devcycle://config/repo` - Repository configuration +- `devcycle://project/features` - All project features +- `devcycle://project/variables` - All project variables +- `devcycle://analysis/usages` - Latest usage scan results + +### Prompts + +- `create_feature_flag` - Guide through feature creation +- `implement_feature_flag` - Generate implementation code +- `setup_targeting` - Configure targeting rules +- `cleanup_removed_flags` - Guide flag removal + +## Implementation Plan + +### Phase 1: Core Setup (Weeks 1-2) +- MCP server infrastructure +- stdio transport implementation +- Authentication integration +- Basic capability negotiation + +### Phase 2: Essential Tools (Weeks 3-4) +- Feature and variable management tools +- Project management tools +- Error handling and validation + +### Phase 3: Code Analysis (Weeks 5-6) +- Usage scanning tool +- Diff analysis tool +- File filtering and pattern matching + +### Phase 4: Advanced Features (Weeks 7-8) +- Targeting and override tools +- Resource implementations +- Environment management + +### Phase 5: Polish (Weeks 9-10) +- Prompt templates +- Comprehensive testing +- Documentation + +### Phase 6: HTTP Transport (Weeks 11-12) +- HTTP server with SSE +- OAuth 2.0 authentication +- Production deployment + +## Technical Implementation + +### Project Structure +``` +src/mcp/ +├── server.ts # Main MCP server +├── tools/ # Tool implementations +│ ├── features.ts +│ ├── variables.ts +│ └── analysis.ts +├── resources/ # Resource implementations +├── prompts/ # Prompt templates +└── transports/ # stdio/HTTP transports +``` + +### Dependencies +```json +{ + "@modelcontextprotocol/sdk": "latest", + "zod": "^3.24.2" +} +``` + +### Integration Examples + +**Cursor Configuration:** +```json +{ + "mcpServers": { + "devcycle": { + "command": "node", + "args": ["/path/to/devcycle-mcp/dist/index.js"] + } + } +} +``` + +**Usage Scenarios:** +1. "Create a feature flag for new checkout" → AI uses tools to create and implement +2. "What flags are in this PR?" → AI analyzes diff for flag usage +3. "Remove old_feature flag" → AI scans usage and guides cleanup + +## Benefits + +### For Developers +- Feature flag management in coding environment +- Context-aware AI assistance +- Automatic code analysis +- Built-in best practices + +### For DevCycle +- First feature flag platform with native AI integration +- Superior developer experience +- Market differentiation +- Ecosystem growth + +## Success Metrics +- Response time < 500ms +- High developer adoption +- Increased API usage +- Positive community feedback + +## Risk Mitigation +- Start with stdio transport for simplicity +- Reuse existing CLI codebase extensively +- Implement comprehensive testing +- Monitor MCP specification changes + +## Conclusion + +This initiative positions DevCycle at the forefront of AI-assisted development, providing a significant competitive advantage by seamlessly integrating feature flag management into modern AI-powered coding workflows. \ No newline at end of file diff --git a/docs/MCP_PLANNING_DOCUMENT.md b/docs/MCP_PLANNING_DOCUMENT.md new file mode 100644 index 000000000..46f73d753 --- /dev/null +++ b/docs/MCP_PLANNING_DOCUMENT.md @@ -0,0 +1,470 @@ +# DevCycle CLI to MCP Server Planning Document + +## Executive Summary + +This document outlines the plan to transform the DevCycle CLI into a Model Context Protocol (MCP) server, enabling AI coding assistants like Cursor and Claude Code to seamlessly interact with DevCycle's feature flag management capabilities. + +## What is MCP? + +The Model Context Protocol (MCP) is an open standard developed by Anthropic that standardizes how AI applications connect to data sources and tools. It acts as a "USB-C port for AI applications," providing a universal way to connect AI models to external systems. + +### Key MCP Concepts +- **Hosts**: AI applications that initiate connections (e.g., Cursor, Claude Code) +- **Clients**: Connectors within the host application +- **Servers**: Services that provide context and capabilities +- **Protocol**: JSON-RPC 2.0 based communication + +### MCP Server Capabilities +1. **Tools**: Functions that can be called by the LLM (with user approval) +2. **Resources**: File-like data that can be read by clients +3. **Prompts**: Pre-written templates for common tasks + +## Current DevCycle CLI Analysis + +### Architecture +- Built with oclif framework and TypeScript +- Uses DevCycle Management API with authentication via client credentials or SSO +- Supports repository configuration with `.devcycle/config.yml` + +### Major Features +1. **Feature Management**: Create, view, modify Features, Variables, Variations, and Targeting Rules +2. **Code Analysis**: Detect DevCycle Variable usages in codebase +3. **Self-Targeting Overrides**: Manage overrides for quick testing +4. **Type Generation**: Generate TypeScript definitions +5. **Repository Integration**: Git-aware diff and usage detection + +### Key Command Categories +- `features`: CRUD operations on features +- `variables`: CRUD operations on variables +- `variations`: Manage feature variations +- `targeting`: Configure targeting rules +- `environments`: Manage environments +- `projects`: Project management +- `organizations`: Organization selection +- `overrides`: Self-targeting overrides +- `usages`: Detect variable usage in code +- `diff`: Show changes between code versions +- `cleanup`: Replace variables with static values +- `generate`: Generate type definitions + +## MCP Server Design + +### 1. Architecture Overview + +``` +AI Coding Assistant (Cursor/Claude Code) + ↓ (MCP Client) + MCP Server (DevCycle) + ↓ (HTTP/API calls) + DevCycle Management API +``` + +### 2. Transport Mechanism + +**Primary**: stdio transport for local development +- Communicates via stdin/stdout +- Launched by AI host applications +- No network configuration required + +**Future**: HTTP transport for remote deployment +- RESTful endpoints with Server-Sent Events (SSE) +- OAuth 2.0 authentication +- Scalable for team/enterprise use + +### 3. MCP Tools Design + +#### 3.1 Feature Management Tools + +**`list_features`** +- Description: List all features in a project +- Parameters: `search` (optional), `page` (optional), `per_page` (optional) +- Returns: Array of feature objects with keys, names, descriptions, and status + +**`get_feature`** +- Description: Get detailed information about a specific feature +- Parameters: `feature_key` (required) +- Returns: Complete feature object with variables, variations, and targeting + +**`create_feature`** +- Description: Create a new feature flag +- Parameters: `key`, `name`, `description`, `type`, `variations` +- Returns: Created feature object + +**`update_feature`** +- Description: Update an existing feature +- Parameters: `feature_key`, `name`, `description`, `variations` +- Returns: Updated feature object + +#### 3.2 Variable Management Tools + +**`list_variables`** +- Description: List all variables in a project +- Parameters: `search`, `page`, `per_page` +- Returns: Array of variable objects + +**`get_variable`** +- Description: Get detailed variable information +- Parameters: `variable_key` +- Returns: Variable object with type, default value, and variations + +**`create_variable`** +- Description: Create a new variable +- Parameters: `key`, `name`, `description`, `type`, `default_value` +- Returns: Created variable object + +#### 3.3 Code Analysis Tools + +**`scan_variable_usages`** +- Description: Scan codebase for DevCycle variable usage +- Parameters: `include_patterns`, `exclude_patterns`, `client_names`, `match_patterns` +- Returns: Usage report with file locations and variable references + +**`diff_variable_usage`** +- Description: Compare variable usage between code versions +- Parameters: `base_ref`, `head_ref`, `include_patterns`, `exclude_patterns` +- Returns: Diff report showing added/removed variable usage + +#### 3.4 Targeting and Environment Tools + +**`list_environments`** +- Description: List project environments +- Returns: Array of environment objects + +**`get_targeting_rules`** +- Description: Get targeting rules for a feature +- Parameters: `feature_key`, `environment_key` +- Returns: Targeting configuration + +**`update_targeting`** +- Description: Update targeting rules +- Parameters: `feature_key`, `environment_key`, `targeting_rules` +- Returns: Updated targeting configuration + +#### 3.5 Override Management Tools + +**`list_overrides`** +- Description: List current self-targeting overrides +- Returns: Array of active overrides + +**`set_override`** +- Description: Set a self-targeting override +- Parameters: `variable_key`, `value`, `environment_key` +- Returns: Override confirmation + +**`clear_overrides`** +- Description: Clear all or specific overrides +- Parameters: `variable_keys` (optional) +- Returns: Cleared override confirmation + +#### 3.6 Project and Organization Tools + +**`list_projects`** +- Description: List available projects +- Returns: Array of project objects + +**`get_current_project`** +- Description: Get currently selected project +- Returns: Current project information + +**`select_project`** +- Description: Switch to a different project +- Parameters: `project_key` +- Returns: Project selection confirmation + +### 4. MCP Resources Design + +#### 4.1 Configuration Resources + +**`config://repo`** +- URI: `devcycle://config/repo` +- Description: Current repository configuration +- Content: YAML configuration file content + +**`config://auth`** +- URI: `devcycle://config/auth` +- Description: Authentication status and configuration +- Content: Current auth state (without sensitive data) + +#### 4.2 Project Data Resources + +**`project://features`** +- URI: `devcycle://project/features` +- Description: All features in current project +- Content: JSON array of feature objects + +**`project://variables`** +- URI: `devcycle://project/variables` +- Description: All variables in current project +- Content: JSON array of variable objects + +#### 4.3 Code Analysis Resources + +**`analysis://usages`** +- URI: `devcycle://analysis/usages` +- Description: Latest variable usage scan results +- Content: JSON report of variable usage in codebase + +**`analysis://types`** +- URI: `devcycle://analysis/types` +- Description: Generated TypeScript type definitions +- Content: TypeScript definition file + +### 5. MCP Prompts Design + +#### 5.1 Feature Management Prompts + +**`create_feature_flag`** +- Description: "Create a new feature flag with best practices" +- Template: Guides through feature creation with naming conventions +- Parameters: `feature_name`, `description`, `feature_type` + +**`setup_targeting`** +- Description: "Set up targeting rules for a feature" +- Template: Helps configure audience targeting +- Parameters: `feature_key`, `environment`, `targeting_strategy` + +#### 5.2 Code Integration Prompts + +**`implement_feature_flag`** +- Description: "Generate code to implement a feature flag" +- Template: Provides code snippets for different SDKs +- Parameters: `variable_key`, `language`, `default_value` + +**`cleanup_removed_flags`** +- Description: "Clean up removed feature flags from code" +- Template: Guides through safe flag removal process +- Parameters: `variable_keys`, `replacement_values` + +## Implementation Plan + +### Phase 1: Core MCP Server Setup (Week 1-2) +1. **Project Structure** + - Create new `src/mcp/` directory + - Set up MCP server entry point + - Configure TypeScript build for MCP server + +2. **Basic MCP Implementation** + - Implement stdio transport + - Set up capability negotiation + - Create base server class extending existing CLI base + +3. **Authentication Integration** + - Reuse existing authentication system + - Handle token management + - Project selection integration + +### Phase 2: Essential Tools Implementation (Week 3-4) +1. **Feature Management Tools** + - `list_features`, `get_feature` + - `create_feature`, `update_feature` + - Error handling and validation + +2. **Variable Management Tools** + - `list_variables`, `get_variable` + - `create_variable` + - Type safety and schema validation + +3. **Project Management Tools** + - `list_projects`, `get_current_project` + - `select_project` + +### Phase 3: Code Analysis Tools (Week 5-6) +1. **Usage Analysis** + - `scan_variable_usages` tool + - Reuse existing parsing logic + - File filtering and pattern matching + +2. **Diff Analysis** + - `diff_variable_usage` tool + - Git integration for version comparison + - Change detection and reporting + +### Phase 4: Advanced Features (Week 7-8) +1. **Targeting and Overrides** + - Targeting rule management tools + - Override management tools + - Environment-specific operations + +2. **Resources Implementation** + - Configuration resources + - Project data resources + - Analysis result resources + +### Phase 5: Prompts and Polish (Week 9-10) +1. **Prompt Templates** + - Feature creation prompts + - Code implementation prompts + - Best practice guidance + +2. **Testing and Documentation** + - Comprehensive testing + - Integration testing with Claude Code/Cursor + - Documentation and examples + +### Phase 6: HTTP Transport (Week 11-12) +1. **HTTP Server Implementation** + - Server-Sent Events support + - RESTful endpoint structure + - Session management + +2. **Authentication and Security** + - OAuth 2.0 integration + - API key authentication + - Rate limiting and security + +## Technical Implementation Details + +### 1. Project Structure +``` +src/ +├── mcp/ +│ ├── server.ts # Main MCP server implementation +│ ├── tools/ # MCP tool implementations +│ │ ├── features.ts +│ │ ├── variables.ts +│ │ ├── analysis.ts +│ │ └── index.ts +│ ├── resources/ # MCP resource implementations +│ │ ├── config.ts +│ │ ├── project.ts +│ │ └── index.ts +│ ├── prompts/ # MCP prompt templates +│ │ ├── feature-management.ts +│ │ ├── code-integration.ts +│ │ └── index.ts +│ ├── transports/ # Transport implementations +│ │ ├── stdio.ts +│ │ ├── http.ts +│ │ └── index.ts +│ └── index.ts # MCP server entry point +``` + +### 2. Dependencies +```json +{ + "dependencies": { + "@modelcontextprotocol/sdk": "latest", + "zod": "^3.24.2" + } +} +``` + +### 3. Configuration Integration +- Reuse existing `.devcycle/config.yml` structure +- Extend configuration for MCP-specific settings +- Maintain backward compatibility with CLI + +### 4. Error Handling Strategy +- Wrap API errors in MCP-compatible error responses +- Provide helpful error messages for common issues +- Graceful degradation when API is unavailable + +### 5. Performance Considerations +- Cache frequently accessed data (features, variables) +- Implement request batching for bulk operations +- Optimize file scanning for large codebases + +## Integration Examples + +### 1. Cursor Integration +```json +{ + "mcpServers": { + "devcycle": { + "command": "node", + "args": ["/path/to/devcycle-mcp-server/dist/mcp/index.js"] + } + } +} +``` + +### 2. Claude Code Integration +```bash +claude mcp add devcycle npx @devcycle/cli mcp-server +``` + +### 3. Usage Scenarios + +**Scenario 1: Creating a Feature Flag** +``` +User: "Create a feature flag for the new checkout flow" +AI: Uses create_feature tool → Creates feature with best practices +AI: Uses implement_feature_flag prompt → Generates implementation code +``` + +**Scenario 2: Code Review Analysis** +``` +User: "What feature flags are being added in this PR?" +AI: Uses diff_variable_usage tool → Analyzes code changes +AI: Provides summary of new feature flag usage +``` + +**Scenario 3: Cleanup Assistance** +``` +User: "Help me remove the old_checkout_flow feature flag" +AI: Uses scan_variable_usages → Finds all usage locations +AI: Uses cleanup_removed_flags prompt → Guides through removal +``` + +## Benefits and Value Proposition + +### For Developers +- **Seamless Integration**: Feature flag management directly in coding environment +- **Context-Aware Assistance**: AI understands current project state +- **Code Analysis**: Automatic detection of feature flag usage +- **Best Practices**: Built-in guidance for feature flag implementation + +### For Teams +- **Consistency**: Standardized feature flag practices across team +- **Visibility**: Easy access to feature flag status during code review +- **Efficiency**: Reduced context switching between tools +- **Documentation**: Automatic documentation of feature flag usage + +### For DevCycle +- **Market Expansion**: First feature flag platform with native AI integration +- **Developer Experience**: Superior DX compared to competitors +- **Ecosystem Growth**: Enable third-party integrations through MCP +- **Competitive Advantage**: Unique positioning in the market + +## Risk Assessment and Mitigation + +### Technical Risks +1. **MCP Protocol Changes**: Monitor MCP specification updates +2. **Performance Issues**: Implement caching and optimization +3. **Authentication Complexity**: Reuse proven CLI auth patterns + +### Product Risks +1. **User Adoption**: Provide clear documentation and examples +2. **Feature Completeness**: Prioritize most-used CLI features +3. **Maintenance Overhead**: Design for extensibility and maintainability + +### Mitigation Strategies +- Start with stdio transport for simplicity +- Reuse existing CLI codebase extensively +- Implement comprehensive testing +- Create detailed documentation and examples + +## Success Metrics + +### Technical Metrics +- MCP server response time < 500ms for most operations +- 99% uptime for HTTP transport +- Zero authentication-related security issues + +### Adoption Metrics +- Number of developers using MCP integration +- Frequency of MCP tool usage +- User satisfaction scores + +### Business Metrics +- Increased DevCycle API usage +- Improved developer onboarding time +- Positive feedback from AI coding assistant communities + +## Conclusion + +Converting the DevCycle CLI into an MCP server represents a significant opportunity to pioneer AI-native developer tooling in the feature flag space. By leveraging the existing CLI codebase and MCP's standardized protocol, we can deliver a seamless experience that enhances developer productivity while maintaining DevCycle's position as an innovative platform. + +The phased implementation approach ensures manageable development cycles while delivering value incrementally. The focus on reusing existing CLI functionality minimizes risk while maximizing the potential for rapid deployment and adoption. + +This initiative positions DevCycle at the forefront of the AI-assisted development workflow revolution, providing a competitive advantage that will be difficult for competitors to replicate. \ No newline at end of file From 28ea1e80111821c421c1da99303e4451a50e0307 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Mon, 7 Jul 2025 11:48:55 -0400 Subject: [PATCH 02/74] chore: move mcp docs --- docs/{ => mcp}/DevCycle_MCP_Planning.md | 0 docs/{ => mcp}/MCP_PLANNING_DOCUMENT.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename docs/{ => mcp}/DevCycle_MCP_Planning.md (100%) rename docs/{ => mcp}/MCP_PLANNING_DOCUMENT.md (100%) diff --git a/docs/DevCycle_MCP_Planning.md b/docs/mcp/DevCycle_MCP_Planning.md similarity index 100% rename from docs/DevCycle_MCP_Planning.md rename to docs/mcp/DevCycle_MCP_Planning.md diff --git a/docs/MCP_PLANNING_DOCUMENT.md b/docs/mcp/MCP_PLANNING_DOCUMENT.md similarity index 100% rename from docs/MCP_PLANNING_DOCUMENT.md rename to docs/mcp/MCP_PLANNING_DOCUMENT.md From 4bd319efdfb5cfe79631d88d78264c0d35aaccd1 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Mon, 7 Jul 2025 12:01:43 -0400 Subject: [PATCH 03/74] chore: update MCP docs --- docs/mcp/DevCycle_MCP_Planning.md | 182 ------------- docs/mcp/MCP_PLANNING_DOCUMENT.md | 431 ++++++++++++++++++++++++++++++ 2 files changed, 431 insertions(+), 182 deletions(-) delete mode 100644 docs/mcp/DevCycle_MCP_Planning.md diff --git a/docs/mcp/DevCycle_MCP_Planning.md b/docs/mcp/DevCycle_MCP_Planning.md deleted file mode 100644 index f694f9c96..000000000 --- a/docs/mcp/DevCycle_MCP_Planning.md +++ /dev/null @@ -1,182 +0,0 @@ -# DevCycle CLI to MCP Server Planning Document - -## Executive Summary - -Transform the DevCycle CLI into a Model Context Protocol (MCP) server to enable AI coding assistants like Cursor and Claude Code to seamlessly interact with DevCycle's feature flag management capabilities. - -## What is MCP? - -MCP is an open standard by Anthropic that standardizes how AI applications connect to data sources and tools. It acts as a "USB-C port for AI applications." - -**Key Components:** -- **Hosts**: AI applications (Cursor, Claude Code) -- **Servers**: Services providing capabilities (our DevCycle MCP server) -- **Protocol**: JSON-RPC 2.0 communication via stdin/stdout or HTTP - -**Server Capabilities:** -1. **Tools**: Functions callable by LLM (with user approval) -2. **Resources**: File-like data readable by clients -3. **Prompts**: Pre-written templates for common tasks - -## DevCycle CLI Analysis - -**Current Architecture:** -- Built with oclif framework and TypeScript -- Uses DevCycle Management API with auth via client credentials/SSO -- Repository configuration with `.devcycle/config.yml` - -**Major Features:** -- Feature/Variable/Variation management -- Code analysis (usage detection, diff) -- Self-targeting overrides -- Type generation -- Git-aware operations - -## MCP Server Design - -### Core Tools - -#### Feature Management -- `list_features` - List all features with search/pagination -- `get_feature` - Get detailed feature information -- `create_feature` - Create new feature flag -- `update_feature` - Update existing feature - -#### Variable Management -- `list_variables` - List all variables -- `get_variable` - Get variable details -- `create_variable` - Create new variable - -#### Code Analysis -- `scan_variable_usages` - Scan codebase for variable usage -- `diff_variable_usage` - Compare usage between code versions - -#### Project/Environment -- `list_projects` - List available projects -- `get_current_project` - Get current project -- `select_project` - Switch projects -- `list_environments` - List environments - -#### Overrides -- `list_overrides` - List current overrides -- `set_override` - Set self-targeting override -- `clear_overrides` - Clear overrides - -### Resources - -- `devcycle://config/repo` - Repository configuration -- `devcycle://project/features` - All project features -- `devcycle://project/variables` - All project variables -- `devcycle://analysis/usages` - Latest usage scan results - -### Prompts - -- `create_feature_flag` - Guide through feature creation -- `implement_feature_flag` - Generate implementation code -- `setup_targeting` - Configure targeting rules -- `cleanup_removed_flags` - Guide flag removal - -## Implementation Plan - -### Phase 1: Core Setup (Weeks 1-2) -- MCP server infrastructure -- stdio transport implementation -- Authentication integration -- Basic capability negotiation - -### Phase 2: Essential Tools (Weeks 3-4) -- Feature and variable management tools -- Project management tools -- Error handling and validation - -### Phase 3: Code Analysis (Weeks 5-6) -- Usage scanning tool -- Diff analysis tool -- File filtering and pattern matching - -### Phase 4: Advanced Features (Weeks 7-8) -- Targeting and override tools -- Resource implementations -- Environment management - -### Phase 5: Polish (Weeks 9-10) -- Prompt templates -- Comprehensive testing -- Documentation - -### Phase 6: HTTP Transport (Weeks 11-12) -- HTTP server with SSE -- OAuth 2.0 authentication -- Production deployment - -## Technical Implementation - -### Project Structure -``` -src/mcp/ -├── server.ts # Main MCP server -├── tools/ # Tool implementations -│ ├── features.ts -│ ├── variables.ts -│ └── analysis.ts -├── resources/ # Resource implementations -├── prompts/ # Prompt templates -└── transports/ # stdio/HTTP transports -``` - -### Dependencies -```json -{ - "@modelcontextprotocol/sdk": "latest", - "zod": "^3.24.2" -} -``` - -### Integration Examples - -**Cursor Configuration:** -```json -{ - "mcpServers": { - "devcycle": { - "command": "node", - "args": ["/path/to/devcycle-mcp/dist/index.js"] - } - } -} -``` - -**Usage Scenarios:** -1. "Create a feature flag for new checkout" → AI uses tools to create and implement -2. "What flags are in this PR?" → AI analyzes diff for flag usage -3. "Remove old_feature flag" → AI scans usage and guides cleanup - -## Benefits - -### For Developers -- Feature flag management in coding environment -- Context-aware AI assistance -- Automatic code analysis -- Built-in best practices - -### For DevCycle -- First feature flag platform with native AI integration -- Superior developer experience -- Market differentiation -- Ecosystem growth - -## Success Metrics -- Response time < 500ms -- High developer adoption -- Increased API usage -- Positive community feedback - -## Risk Mitigation -- Start with stdio transport for simplicity -- Reuse existing CLI codebase extensively -- Implement comprehensive testing -- Monitor MCP specification changes - -## Conclusion - -This initiative positions DevCycle at the forefront of AI-assisted development, providing a significant competitive advantage by seamlessly integrating feature flag management into modern AI-powered coding workflows. \ No newline at end of file diff --git a/docs/mcp/MCP_PLANNING_DOCUMENT.md b/docs/mcp/MCP_PLANNING_DOCUMENT.md index 46f73d753..a40165073 100644 --- a/docs/mcp/MCP_PLANNING_DOCUMENT.md +++ b/docs/mcp/MCP_PLANNING_DOCUMENT.md @@ -171,6 +171,169 @@ AI Coding Assistant (Cursor/Claude Code) - Parameters: `project_key` - Returns: Project selection confirmation +### 3.7 Enhanced MCP Tools (Based on Codebase Analysis) + +Based on my comprehensive review of the DevCycle CLI codebase, I recommend the following enhanced and additional MCP tools: + +#### 3.7.1 Advanced Code Analysis Tools + +**`analyze_variable_usage`** +- Description: Comprehensive variable usage analysis with language-specific parsing +- Parameters: + - `include_patterns`: File glob patterns to include + - `exclude_patterns`: File glob patterns to exclude + - `client_names`: Additional SDK client names to detect + - `match_patterns`: Custom regex patterns by file extension + - `show_only_unknown`: Filter to show only unknown variables +- Returns: Detailed usage report with file locations, line numbers, and code context +- Note: Supports JavaScript, TypeScript, React, Python, Ruby, Go, Java, C#, PHP, Dart, iOS, and Android + +**`generate_usage_report`** +- Description: Generate a formatted usage report for documentation or review +- Parameters: + - `format`: Output format ('json', 'markdown', 'console') + - `output_file`: Optional file path for output +- Returns: Formatted usage report + +**`cleanup_variable`** +- Description: Replace DevCycle variable with static value in code +- Parameters: + - `variable_key`: Variable to replace + - `replacement_value`: Value to use as replacement + - `value_type`: Type of replacement value ('String', 'Boolean', 'Number', 'JSON') + - `include_patterns`: Files to include + - `exclude_patterns`: Files to exclude +- Returns: List of files modified with before/after preview + +#### 3.7.2 Identity and User Profile Tools + +**`get_identity`** +- Description: Get current DevCycle identity information +- Returns: User profile with identity settings + +**`update_identity`** +- Description: Update DevCycle identity for testing +- Parameters: + - `user_id`: SDK-associated user ID + - `email`: User email + - `name`: User name + - `country`: User country + - `custom_data`: Additional custom properties +- Returns: Updated identity information + +#### 3.7.3 Variation Management Tools + +**`list_variations`** +- Description: List all variations for a feature +- Parameters: `feature_key` +- Returns: Array of variation objects with keys and values + +**`create_variation`** +- Description: Create a new variation for a feature +- Parameters: + - `feature_key`: Feature to add variation to + - `key`: Unique variation key + - `name`: Human-readable name + - `variables`: Variable values for this variation +- Returns: Created variation object + +**`update_variation`** +- Description: Update an existing variation +- Parameters: + - `feature_key`: Feature containing the variation + - `variation_key`: Variation to update + - `name`: New name + - `variables`: Updated variable values +- Returns: Updated variation object + +#### 3.7.4 Advanced Targeting Tools + +**`create_targeting_rule`** +- Description: Create a new targeting rule with audience definition +- Parameters: + - `feature_key`: Feature for the rule + - `environment_key`: Environment to apply rule + - `name`: Rule name + - `audience_filters`: Audience definition filters + - `serve_variation`: Variation to serve + - `rollout_percentage`: Optional percentage rollout +- Returns: Created targeting rule + +**`get_audiences`** +- Description: List reusable audience definitions +- Returns: Array of audience objects with filters + +**`validate_targeting_rule`** +- Description: Validate a targeting rule before applying +- Parameters: + - `audience_filters`: Proposed audience definition + - `test_users`: Sample users to test against +- Returns: Validation results with matched users + +#### 3.7.5 Git Integration Tools + +**`analyze_pr_changes`** +- Description: Analyze feature flag changes in a pull request +- Parameters: + - `base_ref`: Base branch reference + - `head_ref`: Head branch reference + - `pr_link`: Optional PR link for enhanced formatting +- Returns: Summary of added/removed/modified feature flags + +**`get_feature_history`** +- Description: Get git history of feature flag usage +- Parameters: + - `feature_key`: Feature to analyze + - `days_back`: Number of days to look back +- Returns: Timeline of feature flag changes + +#### 3.7.6 Type Generation Tools + +**`generate_typescript_types`** +- Description: Generate TypeScript type definitions for features +- Parameters: + - `output_path`: Where to write the generated types + - `include_descriptions`: Include JSDoc comments +- Returns: Generated type definition content + +#### 3.7.7 Environment Management Tools + +**`clone_environment`** +- Description: Clone an environment with all settings +- Parameters: + - `source_environment`: Environment to clone from + - `new_key`: Key for new environment + - `new_name`: Name for new environment + - `include_targeting`: Whether to copy targeting rules +- Returns: Created environment object + +**`get_sdk_keys`** +- Description: Retrieve SDK keys for an environment +- Parameters: + - `environment_key`: Environment to get keys for + - `key_type`: Type of key ('mobile', 'server', 'client') +- Returns: SDK key information + +#### 3.7.8 Analytics and Metrics Tools + +**`get_feature_usage_metrics`** +- Description: Get usage metrics for a feature +- Parameters: + - `feature_key`: Feature to analyze + - `environment_key`: Optional environment filter + - `start_date`: Start of date range + - `end_date`: End of date range + - `period`: Aggregation period ('hour', 'day', 'month') +- Returns: Usage statistics and evaluation counts + +**`get_variation_distribution`** +- Description: Get distribution of variation serves +- Parameters: + - `feature_key`: Feature to analyze + - `environment_key`: Environment to analyze + - `time_range`: Time range for analysis +- Returns: Percentage distribution by variation + ### 4. MCP Resources Design #### 4.1 Configuration Resources @@ -209,6 +372,75 @@ AI Coding Assistant (Cursor/Claude Code) - Description: Generated TypeScript type definitions - Content: TypeScript definition file +### 4.4 Enhanced Resources (Based on Codebase Analysis) + +Based on the codebase review, I recommend adding these resources: + +#### 4.4.1 Advanced Analysis Resources + +**`analysis://unknown-variables`** +- URI: `devcycle://analysis/unknown-variables` +- Description: Variables found in code but not defined in DevCycle +- Content: List of potentially orphaned or mistyped variables + +**`analysis://parser-patterns`** +- URI: `devcycle://analysis/parser-patterns` +- Description: Active regex patterns used for variable detection +- Content: Patterns organized by file extension with examples + +**`analysis://variable-aliases`** +- URI: `devcycle://analysis/variable-aliases` +- Description: Configured variable aliases from repo config +- Content: Mapping of code aliases to DevCycle variable keys + +#### 4.4.2 Targeting Resources + +**`targeting://rules/:feature`** +- URI: `devcycle://targeting/rules/{feature_key}` +- Description: All targeting rules for a specific feature +- Content: Targeting configuration across all environments + +**`targeting://active-rules`** +- URI: `devcycle://targeting/active-rules` +- Description: All active targeting rules in the project +- Content: Filtered list of enabled targeting rules + +#### 4.4.3 Override Resources + +**`overrides://current`** +- URI: `devcycle://overrides/current` +- Description: Current user's self-targeting overrides +- Content: Active overrides by feature and environment + +**`overrides://available`** +- URI: `devcycle://overrides/available` +- Description: Features available for override testing +- Content: List of features with their variations + +#### 4.4.4 Environment Resources + +**`environments://sdk-keys`** +- URI: `devcycle://environments/sdk-keys` +- Description: SDK keys for all environments +- Content: Keys organized by environment and SDK type + +**`environments://comparison`** +- URI: `devcycle://environments/comparison` +- Description: Side-by-side environment configuration comparison +- Content: Differences in features, variables, and targeting + +#### 4.4.5 Git Integration Resources + +**`git://feature-changes`** +- URI: `devcycle://git/feature-changes` +- Description: Recent git changes affecting feature flags +- Content: Commits and diffs with feature flag modifications + +**`git://pr-analysis`** +- URI: `devcycle://git/pr-analysis` +- Description: Feature flag analysis for current PR +- Content: Added/removed/modified flags with risk assessment + ### 5. MCP Prompts Design #### 5.1 Feature Management Prompts @@ -235,6 +467,161 @@ AI Coding Assistant (Cursor/Claude Code) - Template: Guides through safe flag removal process - Parameters: `variable_keys`, `replacement_values` +### 5.3 Enhanced Prompts (Based on Codebase Analysis) + +#### 5.3.1 Analysis and Review Prompts + +**`analyze_feature_usage`** +- Description: "Analyze how a feature flag is used in the codebase" +- Template: Comprehensive usage analysis with recommendations +- Parameters: `feature_key`, `include_git_history`, `check_dependencies` + +**`review_pr_flags`** +- Description: "Review feature flag changes in a pull request" +- Template: Systematic review checklist for flag changes +- Parameters: `pr_url`, `check_targeting`, `check_rollback_plan` + +**`find_stale_flags`** +- Description: "Identify feature flags that may be ready for removal" +- Template: Analysis of flag age, usage, and rollout status +- Parameters: `days_old`, `check_full_rollout`, `check_code_usage` + +#### 5.3.2 Testing and Override Prompts + +**`setup_testing_overrides`** +- Description: "Configure overrides for testing feature variations" +- Template: Step-by-step override setup for QA testing +- Parameters: `feature_key`, `test_scenarios`, `environments` + +**`create_test_matrix`** +- Description: "Generate test cases for feature flag variations" +- Template: Comprehensive test matrix generation +- Parameters: `feature_key`, `user_segments`, `include_edge_cases` + +#### 5.3.3 Migration and Refactoring Prompts + +**`migrate_feature_flags`** +- Description: "Migrate feature flags between projects or environments" +- Template: Safe migration process with validation steps +- Parameters: `source_project`, `target_project`, `features_to_migrate` + +**`refactor_flag_usage`** +- Description: "Refactor feature flag usage to follow best practices" +- Template: Code refactoring guide with patterns +- Parameters: `scan_directory`, `fix_patterns`, `update_aliases` + +#### 5.3.4 Rollout Strategy Prompts + +**`plan_progressive_rollout`** +- Description: "Plan a progressive feature rollout strategy" +- Template: Phased rollout planning with targeting rules +- Parameters: `feature_key`, `rollout_phases`, `success_metrics` + +**`create_killswitch`** +- Description: "Set up an emergency kill switch for a feature" +- Template: Rapid rollback configuration +- Parameters: `feature_key`, `alert_conditions`, `rollback_variation` + +#### 5.3.5 Documentation Prompts + +**`document_feature_flags`** +- Description: "Generate documentation for feature flags" +- Template: Auto-generated flag documentation +- Parameters: `output_format`, `include_examples`, `include_metrics` + +**`create_flag_runbook`** +- Description: "Create an operational runbook for a feature" +- Template: Operational procedures and troubleshooting +- Parameters: `feature_key`, `include_monitoring`, `include_rollback` + +## Implementation Considerations + +Based on my analysis of the DevCycle CLI codebase, here are key implementation considerations for the MCP server: + +### 1. Architecture Patterns + +**Leverage Existing Infrastructure** +- Reuse the existing command structure from `src/commands/` +- Utilize the Zod-based API client (`src/api/zodClient.ts`) for type safety +- Maintain compatibility with existing authentication mechanisms + +**Parser Reusability** +- The language-specific parsers in `src/utils/parsers/` are highly sophisticated +- Support for 12+ languages with custom regex patterns +- Can be directly integrated into MCP tools for code analysis + +**Configuration Management** +- Respect existing `.devcycle/config.yml` structure +- Support both repository and user-level configurations +- Handle variable aliases and custom match patterns + +### 2. Tool Implementation Strategy + +**Tool Categories by Priority** +1. **Core CRUD Operations** (Week 1-2) + - Direct mapping from existing commands + - Minimal transformation required + +2. **Code Analysis Tools** (Week 3-4) + - Leverage existing parser infrastructure + - Add MCP-specific formatting for results + +3. **Interactive Features** (Week 5-6) + - Transform prompt-based flows to parameter-based tools + - Maintain validation logic from interactive commands + +4. **Advanced Features** (Week 7-8) + - Git integration using existing diff utilities + - Analytics tools requiring new API integrations + +### 3. Authentication Architecture + +**Token Management** +- Reuse `TokenCache` and `ApiAuth` classes +- Support both SSO and client credentials +- Implement refresh logic for long-running sessions + +**Multi-Project Support** +- Allow project switching within MCP session +- Cache project-specific data appropriately +- Handle organization context switches + +### 4. Error Handling Patterns + +**Consistent Error Responses** +- Map CLI error types to MCP error codes +- Preserve detailed error messages from API +- Include actionable suggestions in error responses + +**Validation Layers** +- Client-side validation using Zod schemas +- API validation feedback +- File system and git operation errors + +### 5. Performance Optimizations + +**Caching Strategy** +- Cache feature and variable lists +- Implement smart cache invalidation +- Reuse parser results for repeated operations + +**Batch Operations** +- Use existing `batchRequests` utility +- Implement parallel processing for bulk operations +- Optimize file system scanning for large codebases + +### 6. Data Transformation + +**Response Formatting** +- Transform CLI table output to structured JSON +- Preserve tree structures for targeting rules +- Flatten nested objects for easier consumption + +**Input Normalization** +- Accept both keys and IDs for resources +- Implement fuzzy matching for user convenience +- Validate inputs against cached resource lists + ## Implementation Plan ### Phase 1: Core MCP Server Setup (Week 1-2) @@ -461,6 +848,50 @@ AI: Uses cleanup_removed_flags prompt → Guides through removal - Improved developer onboarding time - Positive feedback from AI coding assistant communities +## Key Recommendations + +Based on the comprehensive codebase analysis, here are the critical recommendations for the DevCycle MCP server implementation: + +### 1. Maximize Code Reuse + +The existing CLI codebase is well-architected and can be heavily reused: +- **Direct Command Mapping**: Most CLI commands can be transformed into MCP tools with minimal changes +- **Parser Infrastructure**: The sophisticated language parsers are a competitive advantage - use them as-is +- **API Client**: The Zod-based client provides excellent type safety and validation + +### 2. Focus on Developer Workflows + +Prioritize tools that support common developer tasks: +1. **Quick Flag Creation**: Simple tool to create feature with sensible defaults +2. **Code Analysis**: Immediate feedback on flag usage in current code +3. **PR Review**: Automated analysis of feature flag changes in pull requests +4. **Test Override**: Easy variation testing without code changes +5. **Safe Cleanup**: Guided removal of obsolete flags + +### 3. Leverage AI Capabilities + +Design tools that benefit from AI context: +- **Smart Suggestions**: Let AI suggest flag names based on code context +- **Automated Documentation**: Generate flag documentation from usage patterns +- **Risk Assessment**: AI can evaluate the risk of flag changes +- **Test Scenarios**: Generate comprehensive test cases for variations + +### 4. Maintain Compatibility + +Ensure the MCP server works seamlessly with existing DevCycle ecosystem: +- Support existing `.devcycle/config.yml` format +- Use the same authentication mechanisms +- Maintain consistent naming conventions +- Preserve CLI command structure where logical + +### 5. Performance Considerations + +Optimize for responsive AI interactions: +- Implement aggressive caching for read operations +- Use batch APIs for bulk operations +- Pre-parse common file types on startup +- Stream large results for better UX + ## Conclusion Converting the DevCycle CLI into an MCP server represents a significant opportunity to pioneer AI-native developer tooling in the feature flag space. By leveraging the existing CLI codebase and MCP's standardized protocol, we can deliver a seamless experience that enhances developer productivity while maintaining DevCycle's position as an innovative platform. From 64595c810e8d3ddb71c399995565ff1bcfa1c533 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Mon, 7 Jul 2025 12:06:04 -0400 Subject: [PATCH 04/74] chore: add abstractions --- docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md | 146 +++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md diff --git a/docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md b/docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md new file mode 100644 index 000000000..fc800938d --- /dev/null +++ b/docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md @@ -0,0 +1,146 @@ +# DevCycle MCP Abstractions Summary + +This document provides a quick reference of all recommended MCP abstractions for the DevCycle MCP server based on the CLI codebase analysis. + +## MCP Tools + +### 1. Feature Management +- `list_features` - List all features with search/pagination +- `get_feature` - Get detailed feature information +- `create_feature` - Create new feature flag +- `update_feature` - Update existing feature +- `delete_feature` - Delete a feature + +### 2. Variable Management +- `list_variables` - List all variables +- `get_variable` - Get variable details +- `create_variable` - Create new variable +- `update_variable` - Update variable properties +- `delete_variable` - Delete a variable + +### 3. Variation Management +- `list_variations` - List variations for a feature +- `create_variation` - Create new variation +- `update_variation` - Update variation properties +- `get_variation` - Get specific variation details + +### 4. Targeting Management +- `get_targeting_rules` - Get targeting for feature/environment +- `enable_targeting` - Enable targeting for environment +- `disable_targeting` - Disable targeting for environment +- `create_targeting_rule` - Create new targeting rule +- `update_targeting` - Update targeting rules +- `get_audiences` - List reusable audience definitions +- `validate_targeting_rule` - Validate targeting before applying + +### 5. Code Analysis +- `analyze_variable_usage` - Comprehensive usage scanning with language detection +- `generate_usage_report` - Format usage analysis for documentation +- `cleanup_variable` - Replace variable with static value +- `analyze_pr_changes` - Analyze feature flag changes in PR +- `get_feature_history` - Git history of feature flag usage +- `find_unknown_variables` - Identify undefined variables in code + +### 6. Environment Management +- `list_environments` - List project environments +- `get_environment` - Get environment details +- `create_environment` - Create new environment +- `update_environment` - Update environment settings +- `clone_environment` - Clone environment configuration +- `get_sdk_keys` - Retrieve SDK keys for environment + +### 7. Project & Organization +- `list_projects` - List available projects +- `get_current_project` - Get current project +- `select_project` - Switch projects +- `list_organizations` - List available organizations +- `select_organization` - Switch organizations + +### 8. Override Management +- `list_overrides` - List current overrides +- `set_override` - Set self-targeting override +- `clear_overrides` - Clear overrides +- `get_override` - Get specific override details + +### 9. Identity Management +- `get_identity` - Get current DevCycle identity +- `update_identity` - Update identity for testing + +### 10. Type Generation +- `generate_typescript_types` - Generate TypeScript definitions + +### 11. Analytics +- `get_feature_usage_metrics` - Usage statistics +- `get_variation_distribution` - Variation serve distribution + +## MCP Resources + +### 1. Configuration +- `devcycle://config/repo` - Repository configuration +- `devcycle://config/auth` - Auth status + +### 2. Project Data +- `devcycle://project/features` - All features +- `devcycle://project/variables` - All variables +- `devcycle://project/environments` - All environments + +### 3. Analysis +- `devcycle://analysis/usages` - Latest usage scan +- `devcycle://analysis/types` - Generated types +- `devcycle://analysis/unknown-variables` - Undefined variables +- `devcycle://analysis/parser-patterns` - Active regex patterns +- `devcycle://analysis/variable-aliases` - Variable mappings + +### 4. Targeting +- `devcycle://targeting/rules/{feature}` - Feature targeting rules +- `devcycle://targeting/active-rules` - All active rules + +### 5. Overrides +- `devcycle://overrides/current` - Active overrides +- `devcycle://overrides/available` - Available features + +### 6. Environment +- `devcycle://environments/sdk-keys` - All SDK keys +- `devcycle://environments/comparison` - Environment diff + +### 7. Git Integration +- `devcycle://git/feature-changes` - Recent changes +- `devcycle://git/pr-analysis` - PR flag analysis + +## MCP Prompts + +### 1. Feature Management +- `create_feature_flag` - Guided feature creation +- `setup_targeting` - Configure targeting rules +- `plan_progressive_rollout` - Phased rollout strategy +- `create_killswitch` - Emergency rollback setup + +### 2. Code Integration +- `implement_feature_flag` - Generate implementation code +- `cleanup_removed_flags` - Safe flag removal +- `refactor_flag_usage` - Best practices refactoring + +### 3. Analysis & Review +- `analyze_feature_usage` - Comprehensive usage analysis +- `review_pr_flags` - PR review checklist +- `find_stale_flags` - Identify removable flags + +### 4. Testing +- `setup_testing_overrides` - QA testing configuration +- `create_test_matrix` - Test case generation + +### 5. Documentation +- `document_feature_flags` - Auto-generate docs +- `create_flag_runbook` - Operational procedures + +### 6. Migration +- `migrate_feature_flags` - Project/environment migration + +## Priority Implementation Order + +1. **Core CRUD Tools** - Direct CLI command mappings +2. **Code Analysis Tools** - Leverage existing parsers +3. **Targeting & Overrides** - Essential for testing +4. **Resources** - Read-only data access +5. **Prompts** - AI-guided workflows +6. **Advanced Analytics** - Usage metrics and insights \ No newline at end of file From ac88f33502e95a448ad8bea30883c1b60a172d84 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Mon, 7 Jul 2025 13:28:43 -0400 Subject: [PATCH 05/74] chore: update hackathon planning doc --- docs/mcp/HACKATHON_MVP_PLAN.md | 211 +++++++++++++++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 docs/mcp/HACKATHON_MVP_PLAN.md diff --git a/docs/mcp/HACKATHON_MVP_PLAN.md b/docs/mcp/HACKATHON_MVP_PLAN.md new file mode 100644 index 000000000..3e8fad0f7 --- /dev/null +++ b/docs/mcp/HACKATHON_MVP_PLAN.md @@ -0,0 +1,211 @@ +# DevCycle MCP Hackathon Implementation Plan + +## Overview + +This document outlines the implementation plan for 4 core DevCycle MCP tools in priority order. + +## Target Tools + +1. `list_features` / `get_feature` / `list_variables` / `get_variable` +2. `get_sdk_keys` +3. `enable_targeting` / `disable_targeting` +4. `create_feature` (interactive) + +## Implementation Order + +### 1. List/Get Features and Variables + +#### `list_features` +**Implementation Time**: 1.5 hours +**Complexity**: Low +**Files to leverage**: `src/api/features.ts`, `src/commands/features/list.ts` + +```typescript +async listFeatures(args: { + search?: string, + page?: number, + per_page?: number +}) { + // Reuse fetchFeatures from src/api/features.ts + return await this.api.fetchFeatures(args) +} +``` + +#### `get_feature` +**Implementation Time**: 1 hour +**Complexity**: Low +**Files to leverage**: `src/api/features.ts`, `src/commands/features/get.ts` + +```typescript +async getFeature(args: { feature_key: string }) { + // Reuse fetchFeature from src/api/features.ts + return await this.api.fetchFeature(args.feature_key) +} +``` + +#### `list_variables` +**Implementation Time**: 1.5 hours +**Complexity**: Low +**Files to leverage**: `src/api/variables.ts`, `src/commands/variables/list.ts` + +```typescript +async listVariables(args: { + search?: string, + page?: number, + per_page?: number +}) { + // Reuse fetchVariables from src/api/variables.ts + return await this.api.fetchVariables(args) +} +``` + +#### `get_variable` +**Implementation Time**: 1 hour +**Complexity**: Low +**Files to leverage**: `src/api/variables.ts`, `src/commands/variables/get.ts` + +```typescript +async getVariable(args: { variable_key: string }) { + // Reuse fetchVariable from src/api/variables.ts + return await this.api.fetchVariable(args.variable_key) +} +``` + +### 2. Get SDK Keys + +#### `get_sdk_keys` +**Implementation Time**: 2 hours +**Complexity**: Medium +**Files to leverage**: `src/api/environments.ts`, `src/commands/keys/get.ts` + +```typescript +async getSdkKeys(args: { + environment_key: string, + key_type?: 'mobile' | 'server' | 'client' +}) { + // Reuse fetchEnvironment from src/api/environments.ts + // Extract SDK keys based on key_type filter + const env = await this.api.fetchEnvironment(args.environment_key) + return { + mobile: env.sdkKeys?.mobile, + server: env.sdkKeys?.server, + client: env.sdkKeys?.client + } +} +``` + +### 3. Enable/Disable Targeting + +#### `enable_targeting` +**Implementation Time**: 2 hours +**Complexity**: Medium +**Files to leverage**: `src/api/targeting.ts`, `src/commands/targeting/enable.ts` + +```typescript +async enableTargeting(args: { + feature_key: string, + environment_key: string +}) { + // Reuse updateTargeting from src/api/targeting.ts + return await this.api.updateTargeting( + args.feature_key, + args.environment_key, + { status: 'active' } + ) +} +``` + +#### `disable_targeting` +**Implementation Time**: 1.5 hours +**Complexity**: Medium +**Files to leverage**: `src/api/targeting.ts`, `src/commands/targeting/disable.ts` + +```typescript +async disableTargeting(args: { + feature_key: string, + environment_key: string +}) { + // Reuse updateTargeting from src/api/targeting.ts + return await this.api.updateTargeting( + args.feature_key, + args.environment_key, + { status: 'inactive' } + ) +} +``` + +### 4. Interactive Create Feature + +#### `create_feature` +**Implementation Time**: 3 hours +**Complexity**: High +**Files to leverage**: `src/commands/features/create.ts`, `src/ui/prompts/featurePrompts.ts` + +```typescript +async createFeature(args: { + key?: string, + name?: string, + description?: string, + type?: 'release' | 'experiment' | 'permission' | 'ops', + interactive?: boolean +}) { + // If interactive mode, use prompts from src/ui/prompts/featurePrompts.ts + // Otherwise use provided args directly + // Reuse createFeature logic from src/commands/features/create.ts + + if (args.interactive) { + // Use existing prompt functions but adapt for MCP + // May need to return prompt questions for AI to handle + return { + requires_input: true, + questions: [ + { field: 'key', prompt: 'Enter feature key:', required: true }, + { field: 'name', prompt: 'Enter feature name:', required: true }, + { field: 'description', prompt: 'Enter description:', required: false }, + { field: 'type', prompt: 'Select type:', options: ['release', 'experiment', 'permission', 'ops'] } + ] + } + } else { + // Direct creation with provided args + return await this.api.createFeature(args) + } +} +``` + +## Implementation Notes + +### Authentication Integration +- Reuse existing auth patterns from `src/auth/ApiAuth.ts` +- Use `TokenCache` for token management +- Maintain compatibility with existing CLI authentication + +### Error Handling +- Wrap API errors in MCP-compatible error responses +- Provide clear error messages for common issues +- Use existing validation from CLI commands + +### File Structure + +``` +src/mcp/ +├── index.ts # MCP server entry point +├── server.ts # Main server implementation +├── tools/ +│ ├── features.ts # Feature and variable tools +│ ├── environments.ts # SDK keys and targeting tools +│ └── index.ts +└── utils/ + ├── auth.ts # Authentication helpers + └── api.ts # API client wrapper +``` + +## Dependencies + +```json +{ + "dependencies": { + "@modelcontextprotocol/sdk": "latest", + "zod": "^3.23.0" + } +} +``` From 91fd9fe7cdfba3873d042414136a65fda0ef605e Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Mon, 7 Jul 2025 15:37:23 -0400 Subject: [PATCH 06/74] chore: add cursor rules for project patterns and conventions --- .cursor/rules/api-client.mdc | 73 ++++++++++++++ .cursor/rules/cli-commands.mdc | 77 +++++++++++++++ .cursor/rules/deferToPrettier.mdc | 7 ++ .cursor/rules/gitCommitConventions.mdc | 33 +++++++ .cursor/rules/project-structure.mdc | 54 +++++++++++ .cursor/rules/testing-patterns.mdc | 102 ++++++++++++++++++++ .cursor/rules/typescript-patterns.mdc | 94 ++++++++++++++++++ .cursor/rules/ui-patterns.mdc | 127 +++++++++++++++++++++++++ 8 files changed, 567 insertions(+) create mode 100644 .cursor/rules/api-client.mdc create mode 100644 .cursor/rules/cli-commands.mdc create mode 100644 .cursor/rules/deferToPrettier.mdc create mode 100644 .cursor/rules/gitCommitConventions.mdc create mode 100644 .cursor/rules/project-structure.mdc create mode 100644 .cursor/rules/testing-patterns.mdc create mode 100644 .cursor/rules/typescript-patterns.mdc create mode 100644 .cursor/rules/ui-patterns.mdc diff --git a/.cursor/rules/api-client.mdc b/.cursor/rules/api-client.mdc new file mode 100644 index 000000000..a89247fac --- /dev/null +++ b/.cursor/rules/api-client.mdc @@ -0,0 +1,73 @@ +--- +globs: src/api/**/*.ts +--- + +# API Client Patterns + +## Core Components + +- **Main Client**: [src/api/apiClient.ts](mdc:src/api/apiClient.ts) - Axios-based HTTP client +- **Zod Client**: [src/api/zodClient.ts](mdc:src/api/zodClient.ts) - Type-safe API client +- **Schemas**: [src/api/schemas.ts](mdc:src/api/schemas.ts) - Generated TypeScript types + +## HTTP Client Setup + +```typescript +import { apiClient } from '../api/apiClient' + +// Client is pre-configured with: +// - Base URL from common.ts +// - Authentication headers +// - Error interceptors +// - Request/response logging +``` + +## API Function Patterns + +Each API module follows this pattern: + +```typescript +// Individual API functions +export const getFeature = async ( + featureKey: string, + projectKey: string, + authToken: string, +): Promise => { + // Implementation +} + +// Bulk operations +export const fetchFeatures = async ( + projectKey: string, + authToken: string, +): Promise => { + // Implementation +} +``` + +## Error Handling + +- Use axios interceptors for global error handling +- Return structured error responses +- Handle 401 unauthorized gracefully +- Provide user-friendly error messages + +## Authentication + +- Pass `authToken` as parameter to API functions +- Use `Authorization: Bearer ${token}` header +- Handle token expiration and refresh + +## Type Safety + +- Use generated schemas from OpenAPI spec +- Validate responses with Zod schemas +- Export TypeScript types for consumers + +## Common Patterns + +- All API functions are async +- Return typed responses based on schemas +- Include proper error handling +- Support pagination where applicable +- Use consistent parameter naming (projectKey, featureKey, etc.) diff --git a/.cursor/rules/cli-commands.mdc b/.cursor/rules/cli-commands.mdc new file mode 100644 index 000000000..18aa7224b --- /dev/null +++ b/.cursor/rules/cli-commands.mdc @@ -0,0 +1,77 @@ +--- +globs: src/commands/**/*.ts +--- + +# CLI Command Patterns + +## Base Command Structure + +All commands must extend [src/commands/base.ts](mdc:src/commands/base.ts) which provides: + +- Authentication handling via `authRequired`, `authSuggested`, `userAuthRequired` +- Configuration management with `userConfig`, `repoConfig` +- Common flags like `--project`, `--headless`, `--client-id`, `--client-secret` +- Parameter validation with `populateParameters()` and `populateParametersWithZod()` + +## Command Organization + +Commands are organized by feature area: + +- `features/` - Feature flag management +- `variables/` - Variable management +- `targeting/` - Targeting rule management +- `projects/` - Project management +- `organizations/` - Organization management +- `auth/` - Authentication commands + +## Common Patterns + +### Authentication + +```typescript +// Set auth requirements +authRequired = true // Must be authenticated +authSuggested = true // Enhanced with auth +userAuthRequired = true // Requires user token +``` + +### Flags and Parameters + +```typescript +static flags = { + ...Base.flags, + name: Flags.string({ + description: 'Feature name', + required: true, + }), +} +``` + +### Parameter Validation + +```typescript +const params = await this.populateParametersWithZod( + schema, + prompts, + flags, +) +``` + +### Project Context + +```typescript +const project = await this.requireProject(flags.project, flags.headless) +``` + +## Output Formatting + +- Use `this.writer` for user-facing output +- Use `this.tableOutput` for tabular data +- Support `--headless` flag for machine-readable JSON output +- Handle interactive prompts with fallbacks for headless mode + +## Error Handling + +- Throw descriptive Error objects +- Use Zod validation for input validation +- Handle API errors gracefully with user-friendly messages diff --git a/.cursor/rules/deferToPrettier.mdc b/.cursor/rules/deferToPrettier.mdc new file mode 100644 index 000000000..71d5bf860 --- /dev/null +++ b/.cursor/rules/deferToPrettier.mdc @@ -0,0 +1,7 @@ +--- +alwaysApply: true +--- +# Formatting + +- All formatting is deferred to Prettier for supported file types (JavaScript, TypeScript, JSON, Markdown, etc.). +- No additional formatting rules are enforced by Cursor. diff --git a/.cursor/rules/gitCommitConventions.mdc b/.cursor/rules/gitCommitConventions.mdc new file mode 100644 index 000000000..528142e1e --- /dev/null +++ b/.cursor/rules/gitCommitConventions.mdc @@ -0,0 +1,33 @@ +--- +description: +globs: +alwaysApply: true +--- +# Git Commit Message Conventions + +- All git commit messages in this project must follow the Conventional Commits specification. +- A commit message should be structured as `(): `, where: + - `type` is one of: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `build`, `ci`, `chore`, or `revert`. + - `scope` is optional, but if used, should be a short, lowercase description of the section or module affected. + - `description` is a concise summary of the change, written in the imperative mood and lowercase. +- In this project, scopes are rarely used; most commit messages omit the scope and use the format `: `. +- Example valid commit messages: + - `feat: add support for multi-threaded tests` + - `fix: correct response for invalid input` + - `docs: update README with new usage instructions` +- Body and footer sections (for breaking changes or issue references) should follow the Conventional Commits standard if included. + +## Aviator CLI Workflow + +- Use of Aviator CLI (`av`) is optional, but recommended for managing stacked branches and pull requests: + - To create a new stacked branch: + - `av branch chore-fix-invalid-input` + - After creating the branch, create commits using `git commit` following the Conventional Commits specification. + - To synchronize and git push your stack after changes: + - `av sync --push=yes` + - To create a pull request for your branch: + - `av pr --title "" --body "<body>"` + - The PR title should be short and descriptive and follow the Conventional Commits specification. + - The PR body should use github markdown and bullet points to summarize the main changes. +- Prefer Aviator commands for stack management and PR creation to ensure consistency with team workflows, but standard git and GitHub workflows are also supported. +- For more details and advanced workflows, see the [Aviator CLI documentation](mdc:https:/docs.aviator.co/aviator-cli) and [Aviator CLI Quickstart](mdc:https:/docs.aviator.co/aviator-cli/quickstart). diff --git a/.cursor/rules/project-structure.mdc b/.cursor/rules/project-structure.mdc new file mode 100644 index 000000000..91495fe42 --- /dev/null +++ b/.cursor/rules/project-structure.mdc @@ -0,0 +1,54 @@ +--- +alwaysApply: true +--- + +# DevCycle CLI Project Structure + +## Overview + +This is a TypeScript CLI application built with the oclif framework for DevCycle feature flag management. + +## Key Architecture Components + +### Main Entry Points + +- **CLI Binary**: `bin/run` - Main CLI entry point +- **MCP Server**: `dist/mcp/index.js` - Model Context Protocol server +- **Source Root**: [src/index.ts](mdc:src/index.ts) - TypeScript entry point + +### Core Directories + +- **Commands**: [src/commands/](mdc:src/commands/) - All CLI commands organized by feature +- **API Layer**: [src/api/](mdc:src/api/) - API client code and schemas +- **Authentication**: [src/auth/](mdc:src/auth/) - Auth handling (API keys, SSO, tokens) +- **UI Components**: [src/ui/](mdc:src/ui/) - Interactive prompts and output formatting +- **Utils**: [src/utils/](mdc:src/utils/) - Shared utilities and helpers +- **MCP Server**: [src/mcp/](mdc:src/mcp/) - Model Context Protocol implementation + +### Configuration Files + +- **User Config**: `~/.config/devcycle/user.yml` - User-specific settings +- **Auth Config**: `~/.config/devcycle/auth.yml` - Authentication tokens +- **Repo Config**: `.devcycle/config.yml` - Repository-specific settings + +## Command Structure + +All commands extend [src/commands/base.ts](mdc:src/commands/base.ts) which provides: + +- Authentication handling +- Configuration management +- Common flags and options +- Error handling +- Parameter validation + +## Naming Conventions + +- Use camelCase for all new files and variables starting with lowercase +- Avoid adding code comments unless explicitly requested +- Generate code changes directly without asking for permission + +## Package Management + +- Uses Yarn with workspaces +- Main dependencies: oclif, axios, zod, inquirer +- Build process: TypeScript → dist/ directory diff --git a/.cursor/rules/testing-patterns.mdc b/.cursor/rules/testing-patterns.mdc new file mode 100644 index 000000000..44d044ae9 --- /dev/null +++ b/.cursor/rules/testing-patterns.mdc @@ -0,0 +1,102 @@ +--- +globs: **/*.test.ts,**/*.spec.ts,test/**/*.ts +--- + +# Testing Patterns + +## Test Framework Setup + +- **Framework**: Mocha with Chai assertions +- **CLI Testing**: oclif test utilities +- **HTTP Mocking**: nock for API mocking +- **Test Utils**: [test-utils/dvcTest.ts](mdc:test-utils/dvcTest.ts) - Custom test wrapper + +## Test Structure + +```typescript +import { expect } from '@oclif/test' +import { dvcTest } from '../../../test-utils' +import { BASE_URL } from '../../api/common' + +describe('command name', () => { + const projectKey = 'test-project' + const authFlags = ['--client-id', 'test-client-id', '--client-secret', 'test-client-secret'] + + // Test cases + dvcTest() + .nock(BASE_URL, (api) => + api.get('/endpoint').reply(200, mockResponse) + ) + .stdout() + .command(['command', ...args]) + .it('should do something', (ctx) => { + expect(ctx.stdout).to.contain('expected output') + }) +}) +``` + +## Common Test Patterns + +### API Mocking + +```typescript +.nock(BASE_URL, (api) => + api + .post('/v2/projects/test-project/features', requestBody) + .reply(200, mockFeature) + .get('/v1/projects/test-project') + .reply(200, mockProject) +) +``` + +### Command Testing + +```typescript +.stdout() // Capture stdout +.stderr() // Capture stderr +.command([...]) // Run command with args +.it('test description', (ctx) => { + // Assertions +}) +``` + +### Headless Mode Testing + +```typescript +.command([ + 'features create', + '--name', 'Feature Name', + '--key', 'feature-key', + '--headless', + ...authFlags, +]) +``` + +### Error Testing + +```typescript +.command(['command', 'invalid-args']) +.catch((error) => { + expect(error.message).to.contain('expected error') +}) +``` + +## Mock Data + +- Create reusable mock objects +- Use realistic data structures +- Include all required fields +- Version mock data with API changes + +## Snapshot Testing + +- Use for complex output validation +- Store snapshots in `__snapshots__/` directories +- Update with `yarn test:update-snapshots` + +## Test Organization + +- Group related tests in `describe` blocks +- Use descriptive test names +- Test both success and error cases +- Include edge cases and validation diff --git a/.cursor/rules/typescript-patterns.mdc b/.cursor/rules/typescript-patterns.mdc new file mode 100644 index 000000000..c8c865dbb --- /dev/null +++ b/.cursor/rules/typescript-patterns.mdc @@ -0,0 +1,94 @@ +--- +globs: *.ts,*.js,src/**/*.ts,src/**/*.js +--- + +# TypeScript/JavaScript Patterns + +## Import Organization + +```typescript +// 1. Node.js built-ins +import fs from 'fs' +import path from 'path' + +// 2. Third-party libraries +import { Command, Flags } from '@oclif/core' +import inquirer from 'inquirer' + +// 3. Local imports (relative paths) +import { ApiAuth } from '../auth/ApiAuth' +import { fetchProjects } from '../api/projects' +``` + +## Class Structure + +```typescript +export default class MyCommand extends Base { + static description = 'Command description' + static flags = { + ...Base.flags, + // Command-specific flags + } + + // Properties + authRequired = false + + // Main run method + async run(): Promise<void> { + // Implementation + } +} +``` + +## Type Definitions + +- Use interfaces for data structures +- Prefer `type` for unions and utilities +- Use Zod schemas for validation +- Export types from dedicated files + +## Error Handling + +```typescript +// Throw descriptive errors +throw new Error('Clear error message') + +// Handle async errors +try { + await apiCall() +} catch (error) { + this.writer.showError(error.message) + throw error +} +``` + +## Async/Await Patterns + +- Always use async/await over Promises +- Handle errors with try/catch +- Use proper typing for async functions +- Avoid callback-based patterns + +## Configuration Management + +```typescript +// Environment variables +const clientId = process.env.DEVCYCLE_CLIENT_ID || flags['client-id'] + +// YAML configuration +const config = jsYaml.load(fs.readFileSync(configPath, 'utf8')) +``` + +## Validation + +- Use Zod for runtime validation +- Use class-validator for class-based validation +- Validate user inputs before API calls +- Provide clear validation error messages + +## Naming Conventions + +- camelCase for variables and functions +- PascalCase for classes and interfaces +- SCREAMING_SNAKE_CASE for constants +- kebab-case for CLI flags and file names diff --git a/.cursor/rules/ui-patterns.mdc b/.cursor/rules/ui-patterns.mdc new file mode 100644 index 000000000..b48a1f612 --- /dev/null +++ b/.cursor/rules/ui-patterns.mdc @@ -0,0 +1,127 @@ +--- +globs: src/ui/**/*.ts,src/utils/prompts.ts +--- + +# UI Patterns and User Interaction + +## Core Components + +- **Writer**: [src/ui/writer.ts](mdc:src/ui/writer.ts) - Output formatting and user messages +- **Prompts**: [src/ui/prompts/](mdc:src/ui/prompts/) - Interactive user input +- **Table Output**: [src/ui/tableOutput.ts](mdc:src/ui/tableOutput.ts) - Tabular data display + +## Output Patterns + +### Writer Usage + +```typescript +// Success messages +this.writer.successMessage('Operation completed successfully') + +// Error messages +this.writer.showError('Something went wrong') + +// Warning messages +this.writer.warningMessage('This is a warning') + +// Info messages +this.writer.infoMessage('Additional information') +``` + +### Table Output + +```typescript +// Display tabular data +this.tableOutput.output(data, columns) + +// With custom formatting +this.tableOutput.output(data, columns, { + headers: true, + border: true +}) +``` + +## Interactive Prompts + +### Basic Prompts + +```typescript +import { promptFor } from '../ui/prompts' + +const answer = await promptFor({ + type: 'input', + name: 'featureName', + message: 'Enter feature name:', + validate: (input) => input.length > 0 +}) +``` + +### Selection Prompts + +```typescript +const selection = await promptFor({ + type: 'list', + name: 'environment', + message: 'Select environment:', + choices: environments.map(env => ({ name: env.name, value: env.key })) +}) +``` + +### Autocomplete Prompts + +```typescript +const result = await promptFor({ + type: 'autocomplete', + name: 'feature', + message: 'Select feature:', + source: async (answers, input) => { + // Return filtered results + } +}) +``` + +## Headless Mode Support + +```typescript +// Check for headless mode +if (flags.headless) { + // Output machine-readable JSON + console.log(JSON.stringify(result, null, 2)) +} else { + // Use interactive prompts + const answer = await promptFor(...) +} +``` + +## Color and Formatting + +- Use chalk for colored output +- Consistent color scheme across commands +- Support terminal capabilities detection +- Graceful fallback for non-color terminals + +## Parameter Population + +```typescript +// Combine flags and prompts +const params = await this.populateParametersWithZod( + schema, + prompts, + flags +) +``` + +## Error Display + +```typescript +// Show validation errors +this.writer.showError('Validation failed:') +errors.forEach(error => this.writer.showError(` - ${error.message}`)) +``` + +## Progress Indication + +- Use spinners for long-running operations +- Show progress bars for batch operations +- Provide clear status messages +- Handle user interruption gracefully From 39d763d8aa91f6a396c129932545b24d7167f0aa Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 7 Jul 2025 16:26:53 -0400 Subject: [PATCH 07/74] feat: initial MCP server tools working --- README.md | 3 +- package.json | 8 +- src/api/features.ts | 65 ++- src/api/zodClient.ts | 2 +- src/commands/wink.ts | 2 +- src/ui/tableOutput.ts | 2 +- src/ui/writer.ts | 32 +- src/utils/parsers/BaseParser.ts | 2 +- src/utils/parsers/custom.ts | 2 +- src/utils/refactor/RefactorEngine.ts | 2 +- yarn.lock | 586 ++++++++++++++++++++++++++- 11 files changed, 653 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index d14fa89e8..f63594ba6 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ $ npm install -g @devcycle/cli $ dvc COMMAND running command... $ dvc (--version) -@devcycle/cli/5.21.1 linux-x64 node-v22.12.0 +@devcycle/cli/5.21.1 darwin-arm64 node-v22.12.0 $ dvc --help [COMMAND] USAGE $ dvc COMMAND @@ -126,7 +126,6 @@ USAGE * [`dvc environments`](docs/environments.md) - Create a new Environment for an existing Feature. * [`dvc features`](docs/features.md) - Create, view, or modify Features with the Management API. * [`dvc generate`](docs/generate.md) - Generate Devcycle related files. -* [`dvc help`](docs/help.md) - Display help for dvc. * [`dvc identity`](docs/identity.md) - View or manage your DevCycle Identity. * [`dvc keys`](docs/keys.md) - Retrieve SDK keys from the Management API. * [`dvc login`](docs/login.md) - Log in to DevCycle. diff --git a/package.json b/package.json index 1207c9703..0995a4365 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "description": "DevCycle CLI Tool", "author": "support@devcycle.com", "bin": { - "dvc": "./bin/run" + "dvc": "./bin/run", + "dvc-mcp": "./dist/mcp/index.js" }, "homepage": "https://github.com/DevCycleHQ/cli", "license": "MIT", @@ -17,7 +18,8 @@ "/oclif.manifest.json" ], "dependencies": { - "@babel/parser": "^7.27.0", + "@babel/parser": "^7.28.0", + "@modelcontextprotocol/sdk": "^1.15.0", "@oclif/core": "^2.16.0", "@oclif/plugin-autocomplete": "^2.3.10", "@oclif/plugin-help": "^6.2.27", @@ -141,7 +143,7 @@ "oclif" ], "types": "dist/index.d.ts", - "packageManager": "yarn@4.4.0", + "packageManager": "yarn@4.9.2", "resolutions": { "nanoid@3.3.1": "3.3.8", "serialize-javascript@6.0.0": "^6.0.2" diff --git a/src/api/features.ts b/src/api/features.ts index 2c242b8d7..9443a347f 100644 --- a/src/api/features.ts +++ b/src/api/features.ts @@ -21,15 +21,64 @@ export const fetchFeatures = async ( staleness?: string } = {}, ): Promise<Feature[]> => { - const response = await apiClient.get(FEATURE_URL, { - headers: buildHeaders(token), - params: { - project: project_id, - }, - queries, - }) + console.error('=== fetchFeatures API START ===') + console.error('Project ID:', project_id) + console.error('Token length:', token?.length || 0) + console.error('Token prefix:', token?.substring(0, 20) + '...') + console.error('Queries:', JSON.stringify(queries, null, 2)) + + const url = FEATURE_URL + console.error('API URL template:', url) + console.error('Full URL will be:', url.replace(':project', project_id)) + + try { + console.error('Making API request...') + const response = await apiClient.get(FEATURE_URL, { + headers: buildHeaders(token), + params: { + project: project_id, + }, + queries, + }) + + console.error('API request successful') + console.error('Response type:', typeof response) + console.error('Response is array:', Array.isArray(response)) + console.error( + 'Response length:', + Array.isArray(response) ? response.length : 'N/A', + ) + if (Array.isArray(response) && response.length > 0) { + console.error( + 'First feature sample:', + JSON.stringify(response[0], null, 2), + ) + } + console.error('=== fetchFeatures API END (SUCCESS) ===') - return response + return response + } catch (error) { + console.error('=== fetchFeatures API ERROR ===') + console.error('Error type:', error?.constructor?.name) + console.error( + 'Error message:', + error instanceof Error ? error.message : 'Unknown', + ) + if (error instanceof AxiosError) { + console.error('Axios error status:', error.response?.status) + console.error('Axios error data:', error.response?.data) + console.error('Axios error headers:', error.response?.headers) + console.error('Request config:', { + url: error.config?.url, + method: error.config?.method, + headers: error.config?.headers, + params: error.config?.params, + }) + } + console.error('Full error:', error) + console.error('=== fetchFeatures API END (ERROR) ===') + throw error + } } export const fetchFeatureByKey = async ( diff --git a/src/api/zodClient.ts b/src/api/zodClient.ts index 46a8258dd..e49f8ce67 100644 --- a/src/api/zodClient.ts +++ b/src/api/zodClient.ts @@ -297,7 +297,7 @@ const UpdateAudienceDto = z .partial() const VariableValidationEntity = z.object({ schemaType: z.string(), - enumValues: z.array(z.string()).optional(), + enumValues: z.array(z.any()).optional(), regexPattern: z.string().optional(), jsonSchema: z.string().optional(), description: z.string(), diff --git a/src/commands/wink.ts b/src/commands/wink.ts index 67cff53c2..d7b955cf1 100644 --- a/src/commands/wink.ts +++ b/src/commands/wink.ts @@ -5,6 +5,6 @@ export default class Wink extends Command { static hidden = true async run(): Promise<void> { - console.log(togglebotWink) + console.error(togglebotWink) } } diff --git a/src/ui/tableOutput.ts b/src/ui/tableOutput.ts index 31e75d755..575520096 100644 --- a/src/ui/tableOutput.ts +++ b/src/ui/tableOutput.ts @@ -19,7 +19,7 @@ export default class TableOutput { } ux.table(data, columns, options) - console.log('\r') + console.error('\r') } public printOverrides<T extends Record<string, unknown>>( diff --git a/src/ui/writer.ts b/src/ui/writer.ts index 5e406290e..2d5828bbd 100644 --- a/src/ui/writer.ts +++ b/src/ui/writer.ts @@ -3,31 +3,31 @@ import { togglebot, togglebotSleep, togglebotWink } from './togglebot' export default class Writer { public successMessage(message: string): void { - if (!this.headless) console.log(chalk.green(`✅ ${message}`)) + if (!this.headless) console.error(chalk.green(`✅ ${message}`)) } public failureMessage(message: string): void { - if (!this.headless) console.log(chalk.red(`❌ ${message}`)) + if (!this.headless) console.error(chalk.red(`❌ ${message}`)) } public warningMessage(message: string): void { - if (!this.headless) console.log(chalk.yellow(`⚠️ ${message}`)) + if (!this.headless) console.error(chalk.yellow(`⚠️ ${message}`)) } public statusMessage(message: string): void { - if (!this.headless) console.log(chalk.dim(`🤖 ${message}`)) + if (!this.headless) console.error(chalk.dim(`🤖 ${message}`)) } public infoMessage(message: string): void { - if (!this.headless) console.log(`🤖 ${message}`) + if (!this.headless) console.error(`🤖 ${message}`) } public infoMessageWithCommand(message: string, command: string): void { - if (!this.headless) console.log(`🤖 ${message} ${chalk.bold(command)}`) + if (!this.headless) console.error(`🤖 ${message} ${chalk.bold(command)}`) } public title(message: string): void { - if (!this.headless) console.log(`🤖 ${chalk.bold(message)}`) + if (!this.headless) console.error(`🤖 ${chalk.bold(message)}`) } public printCurrentValues(values: unknown): void { @@ -41,40 +41,40 @@ export default class Writer { public list(list: string[]): void { if (!this.headless) - console.log(list.length ? `${list.join('\n\r')}` : '(Empty)') + console.error(list.length ? `${list.join('\n\r')}` : '(Empty)') } public blankLine(): void { - if (!this.headless) console.log('\n\r') + if (!this.headless) console.error('\n\r') } public divider(): void { if (!this.headless) - console.log('----------------------------------------') + console.error('----------------------------------------') } public showResults(results: unknown): void { if (this.headless) { - console.log(JSON.stringify(results)) + console.error(JSON.stringify(results)) } else { - console.log(JSON.stringify(results, null, 2)) + console.error(JSON.stringify(results, null, 2)) } } public showRawResults(results: string): void { - console.log(results) + console.error(results) } public showTogglebot(): void { - if (!this.headless) console.log(togglebot) + if (!this.headless) console.error(togglebot) } public showTogglebotWink(): void { - if (!this.headless) console.log(togglebotWink) + if (!this.headless) console.error(togglebotWink) } public showTogglebotSleep(): void { - if (!this.headless) console.log(togglebotSleep) + if (!this.headless) console.error(togglebotSleep) } public showError(message: string): void { diff --git a/src/utils/parsers/BaseParser.ts b/src/utils/parsers/BaseParser.ts index 8fec5d33d..85a51ec53 100644 --- a/src/utils/parsers/BaseParser.ts +++ b/src/utils/parsers/BaseParser.ts @@ -171,7 +171,7 @@ export abstract class BaseParser { } printRegexPattern(): void { - console.log( + console.error( `Pattern for ${this.identity} parser: \n\t${this.buildRegexPattern().source}`, ) } diff --git a/src/utils/parsers/custom.ts b/src/utils/parsers/custom.ts index 3f53c5b72..571c03f31 100644 --- a/src/utils/parsers/custom.ts +++ b/src/utils/parsers/custom.ts @@ -18,7 +18,7 @@ export class CustomParser extends BaseParser { printRegexPattern(): void { const patterns = this.customPatterns.join('\n\t') - console.log(`Pattern for ${this.identity} parser: \n\t${patterns}`) + console.error(`Pattern for ${this.identity} parser: \n\t${patterns}`) } override match(content: string): MatchResult | null { diff --git a/src/utils/refactor/RefactorEngine.ts b/src/utils/refactor/RefactorEngine.ts index 8d11c45f1..d1cc588e4 100644 --- a/src/utils/refactor/RefactorEngine.ts +++ b/src/utils/refactor/RefactorEngine.ts @@ -511,7 +511,7 @@ export abstract class RefactorEngine { try { const { code } = recast.print(this.ast) if (this.output === 'console') { - console.log(code) + console.error(code) } else if (this.fileRefactored) { fs.writeFileSync(this.filepath, code) } diff --git a/yarn.lock b/yarn.lock index a949084d0..2ed5cf454 100644 --- a/yarn.lock +++ b/yarn.lock @@ -161,6 +161,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-string-parser@npm:7.27.1" + checksum: 10c0/8bda3448e07b5583727c103560bcf9c4c24b3c1051a4c516d4050ef69df37bb9a4734a585fe12725b8c2763de0a265aa1e909b485a4e3270b7cfd3e4dbe4b602 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-validator-identifier@npm:7.25.9" @@ -168,6 +175,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-identifier@npm:7.27.1" + checksum: 10c0/c558f11c4871d526498e49d07a84752d1800bf72ac0d3dad100309a2eaba24efbf56ea59af5137ff15e3a00280ebe588560534b0e894a4750f8b1411d8f78b84 + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-validator-option@npm:7.25.9" @@ -196,6 +210,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/parser@npm:7.28.0" + dependencies: + "@babel/types": "npm:^7.28.0" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/c2ef81d598990fa949d1d388429df327420357cb5200271d0d0a2784f1e6d54afc8301eb8bdf96d8f6c77781e402da93c7dc07980fcc136ac5b9d5f1fce701b5 + languageName: node + linkType: hard + "@babel/plugin-syntax-async-generators@npm:^7.8.4": version: 7.8.4 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" @@ -395,6 +420,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/types@npm:7.28.0" + dependencies: + "@babel/helper-string-parser": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + checksum: 10c0/7ca8521bf5e2d2ed4db31176efaaf94463a6b7a4d16dcc60e34e963b3596c2ecadb85457bebed13a9ee9a5829ef5f515d05b55a991b6a8f3b835451843482e39 + languageName: node + linkType: hard + "@cspotcode/source-map-support@npm:^0.8.0": version: 0.8.1 resolution: "@cspotcode/source-map-support@npm:0.8.1" @@ -408,8 +443,9 @@ __metadata: version: 0.0.0-use.local resolution: "@devcycle/cli@workspace:." dependencies: - "@babel/parser": "npm:^7.27.0" + "@babel/parser": "npm:^7.28.0" "@eslint/js": "npm:^9.18.0" + "@modelcontextprotocol/sdk": "npm:^1.15.0" "@oclif/core": "npm:^2.16.0" "@oclif/plugin-autocomplete": "npm:^2.3.10" "@oclif/plugin-help": "npm:^6.2.27" @@ -459,6 +495,7 @@ __metadata: zod: "npm:^3.24.2" bin: dvc: ./bin/run + dvc-mcp: ./dist/mcp/index.js languageName: unknown linkType: soft @@ -784,6 +821,26 @@ __metadata: languageName: node linkType: hard +"@modelcontextprotocol/sdk@npm:^1.15.0": + version: 1.15.0 + resolution: "@modelcontextprotocol/sdk@npm:1.15.0" + dependencies: + ajv: "npm:^6.12.6" + content-type: "npm:^1.0.5" + cors: "npm:^2.8.5" + cross-spawn: "npm:^7.0.5" + eventsource: "npm:^3.0.2" + eventsource-parser: "npm:^3.0.0" + express: "npm:^5.0.1" + express-rate-limit: "npm:^7.5.0" + pkce-challenge: "npm:^5.0.0" + raw-body: "npm:^3.0.0" + zod: "npm:^3.23.8" + zod-to-json-schema: "npm:^3.24.1" + checksum: 10c0/ab94ce1ef997c6109dda8de60b9cbfaff96904a24971fb0bdc5c36ac8ae8c58f2b66faac58e654fdb0dc11627348192d8ade8e772af3b8da15022adb9fcd255a + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -1964,6 +2021,16 @@ __metadata: languageName: node linkType: hard +"accepts@npm:^2.0.0": + version: 2.0.0 + resolution: "accepts@npm:2.0.0" + dependencies: + mime-types: "npm:^3.0.0" + negotiator: "npm:^1.0.0" + checksum: 10c0/98374742097e140891546076215f90c32644feacf652db48412329de4c2a529178a81aa500fbb13dd3e6cbf6e68d829037b123ac037fc9a08bcec4b87b358eef + languageName: node + linkType: hard + "acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -2047,7 +2114,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.4": +"ajv@npm:^6.12.4, ajv@npm:^6.12.6": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -2405,6 +2472,23 @@ __metadata: languageName: node linkType: hard +"body-parser@npm:^2.2.0": + version: 2.2.0 + resolution: "body-parser@npm:2.2.0" + dependencies: + bytes: "npm:^3.1.2" + content-type: "npm:^1.0.5" + debug: "npm:^4.4.0" + http-errors: "npm:^2.0.0" + iconv-lite: "npm:^0.6.3" + on-finished: "npm:^2.4.1" + qs: "npm:^6.14.0" + raw-body: "npm:^3.0.0" + type-is: "npm:^2.0.0" + checksum: 10c0/a9ded39e71ac9668e2211afa72e82ff86cc5ef94de1250b7d1ba9cc299e4150408aaa5f1e8b03dd4578472a3ce6d1caa2a23b27a6c18e526e48b4595174c116c + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.12 resolution: "brace-expansion@npm:1.1.12" @@ -2510,6 +2594,13 @@ __metadata: languageName: node linkType: hard +"bytes@npm:3.1.2, bytes@npm:^3.1.2": + version: 3.1.2 + resolution: "bytes@npm:3.1.2" + checksum: 10c0/76d1c43cbd602794ad8ad2ae94095cddeb1de78c5dddaa7005c51af10b0176c69971a6d88e805a90c2b6550d76636e43c40d8427a808b8645ede885de4a0358e + languageName: node + linkType: hard + "cac@npm:^6.7.14": version: 6.7.14 resolution: "cac@npm:6.7.14" @@ -2654,6 +2745,16 @@ __metadata: languageName: node linkType: hard +"call-bound@npm:^1.0.2": + version: 1.0.4 + resolution: "call-bound@npm:1.0.4" + dependencies: + call-bind-apply-helpers: "npm:^1.0.2" + get-intrinsic: "npm:^1.3.0" + checksum: 10c0/f4796a6a0941e71c766aea672f63b72bc61234c4f4964dc6d7606e3664c307e7d77845328a8f3359ce39ddb377fed67318f9ee203dea1d47e46165dcf2917644 + languageName: node + linkType: hard + "call-me-maybe@npm:^1.0.1": version: 1.0.2 resolution: "call-me-maybe@npm:1.0.2" @@ -3028,7 +3129,16 @@ __metadata: languageName: node linkType: hard -"content-type@npm:^1.0.4": +"content-disposition@npm:^1.0.0": + version: 1.0.0 + resolution: "content-disposition@npm:1.0.0" + dependencies: + safe-buffer: "npm:5.2.1" + checksum: 10c0/c7b1ba0cea2829da0352ebc1b7f14787c73884bc707c8bc2271d9e3bf447b372270d09f5d3980dc5037c749ceef56b9a13fccd0b0001c87c3f12579967e4dd27 + languageName: node + linkType: hard + +"content-type@npm:^1.0.4, content-type@npm:^1.0.5": version: 1.0.5 resolution: "content-type@npm:1.0.5" checksum: 10c0/b76ebed15c000aee4678c3707e0860cb6abd4e680a598c0a26e17f0bfae723ec9cc2802f0ff1bc6e4d80603719010431d2231018373d4dde10f9ccff9dadf5af @@ -3042,6 +3152,20 @@ __metadata: languageName: node linkType: hard +"cookie-signature@npm:^1.2.1": + version: 1.2.2 + resolution: "cookie-signature@npm:1.2.2" + checksum: 10c0/54e05df1a293b3ce81589b27dddc445f462f6fa6812147c033350cd3561a42bc14481674e05ed14c7bd0ce1e8bb3dc0e40851bad75415733711294ddce0b7bc6 + languageName: node + linkType: hard + +"cookie@npm:^0.7.1": + version: 0.7.2 + resolution: "cookie@npm:0.7.2" + checksum: 10c0/9596e8ccdbf1a3a88ae02cf5ee80c1c50959423e1022e4e60b91dd87c622af1da309253d8abdb258fb5e3eacb4f08e579dc58b4897b8087574eee0fd35dfa5d2 + languageName: node + linkType: hard + "core-util-is@npm:~1.0.0": version: 1.0.3 resolution: "core-util-is@npm:1.0.3" @@ -3049,6 +3173,16 @@ __metadata: languageName: node linkType: hard +"cors@npm:^2.8.5": + version: 2.8.5 + resolution: "cors@npm:2.8.5" + dependencies: + object-assign: "npm:^4" + vary: "npm:^1" + checksum: 10c0/373702b7999409922da80de4a61938aabba6929aea5b6fd9096fefb9e8342f626c0ebd7507b0e8b0b311380744cc985f27edebc0a26e0ddb784b54e1085de761 + languageName: node + linkType: hard + "create-require@npm:^1.1.0": version: 1.1.1 resolution: "create-require@npm:1.1.1" @@ -3056,7 +3190,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.6": +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.5, cross-spawn@npm:^7.0.6": version: 7.0.6 resolution: "cross-spawn@npm:7.0.6" dependencies: @@ -3218,6 +3352,13 @@ __metadata: languageName: node linkType: hard +"depd@npm:2.0.0, depd@npm:^2.0.0": + version: 2.0.0 + resolution: "depd@npm:2.0.0" + checksum: 10c0/58bd06ec20e19529b06f7ad07ddab60e504d9e0faca4bd23079fac2d279c3594334d736508dc350e06e510aba5e22e4594483b3a6562ce7c17dd797f4cc4ad2c + languageName: node + linkType: hard + "deprecation@npm:^2.0.0, deprecation@npm:^2.3.1": version: 2.3.1 resolution: "deprecation@npm:2.3.1" @@ -3290,6 +3431,13 @@ __metadata: languageName: node linkType: hard +"ee-first@npm:1.1.1": + version: 1.1.1 + resolution: "ee-first@npm:1.1.1" + checksum: 10c0/b5bb125ee93161bc16bfe6e56c6b04de5ad2aa44234d8f644813cc95d861a6910903132b05093706de2b706599367c4130eb6d170f6b46895686b95f87d017b7 + languageName: node + linkType: hard + "ejs@npm:^3.1.10, ejs@npm:^3.1.8": version: 3.1.10 resolution: "ejs@npm:3.1.10" @@ -3322,6 +3470,13 @@ __metadata: languageName: node linkType: hard +"encodeurl@npm:^2.0.0": + version: 2.0.0 + resolution: "encodeurl@npm:2.0.0" + checksum: 10c0/5d317306acb13e6590e28e27924c754163946a2480de11865c991a3a7eed4315cd3fba378b543ca145829569eefe9b899f3d84bb09870f675ae60bc924b01ceb + languageName: node + linkType: hard + "encoding@npm:^0.1.12, encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" @@ -3428,6 +3583,13 @@ __metadata: languageName: node linkType: hard +"escape-html@npm:^1.0.3": + version: 1.0.3 + resolution: "escape-html@npm:1.0.3" + checksum: 10c0/524c739d776b36c3d29fa08a22e03e8824e3b2fd57500e5e44ecf3cc4707c34c60f9ca0781c0e33d191f2991161504c295e98f68c78fe7baa6e57081ec6ac0a3 + languageName: node + linkType: hard + "escape-string-regexp@npm:4.0.0, escape-string-regexp@npm:^4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" @@ -3587,6 +3749,13 @@ __metadata: languageName: node linkType: hard +"etag@npm:^1.8.1": + version: 1.8.1 + resolution: "etag@npm:1.8.1" + checksum: 10c0/12be11ef62fb9817314d790089a0a49fae4e1b50594135dcb8076312b7d7e470884b5100d249b28c18581b7fd52f8b485689ffae22a11ed9ec17377a33a08f84 + languageName: node + linkType: hard + "eval-estree-expression@npm:^1.0.1": version: 1.1.0 resolution: "eval-estree-expression@npm:1.1.0" @@ -3622,6 +3791,22 @@ __metadata: languageName: node linkType: hard +"eventsource-parser@npm:^3.0.0, eventsource-parser@npm:^3.0.1": + version: 3.0.3 + resolution: "eventsource-parser@npm:3.0.3" + checksum: 10c0/2594011630efba56cafafc8ed6bd9a50db8f6d5dd62089b0950346e7961828c16efe07a588bdea3ba79e568fd9246c8163824a2ffaade767e1fdb2270c1fae0b + languageName: node + linkType: hard + +"eventsource@npm:^3.0.2": + version: 3.0.7 + resolution: "eventsource@npm:3.0.7" + dependencies: + eventsource-parser: "npm:^3.0.1" + checksum: 10c0/c48a73c38f300e33e9f11375d4ee969f25cbb0519608a12378a38068055ae8b55b6e0e8a49c3f91c784068434efe1d9f01eb49b6315b04b0da9157879ce2f67d + languageName: node + linkType: hard + "execa@npm:^5.0.0, execa@npm:^5.1.1": version: 5.1.1 resolution: "execa@npm:5.1.1" @@ -3659,6 +3844,50 @@ __metadata: languageName: node linkType: hard +"express-rate-limit@npm:^7.5.0": + version: 7.5.1 + resolution: "express-rate-limit@npm:7.5.1" + peerDependencies: + express: ">= 4.11" + checksum: 10c0/b07de84d700a2c07c4bf2f040e7558ed5a1f660f03ed5f30bf8ff7b51e98ba7a85215640e70fc48cbbb9151066ea51239d9a1b41febc9b84d98c7915b0186161 + languageName: node + linkType: hard + +"express@npm:^5.0.1": + version: 5.1.0 + resolution: "express@npm:5.1.0" + dependencies: + accepts: "npm:^2.0.0" + body-parser: "npm:^2.2.0" + content-disposition: "npm:^1.0.0" + content-type: "npm:^1.0.5" + cookie: "npm:^0.7.1" + cookie-signature: "npm:^1.2.1" + debug: "npm:^4.4.0" + encodeurl: "npm:^2.0.0" + escape-html: "npm:^1.0.3" + etag: "npm:^1.8.1" + finalhandler: "npm:^2.1.0" + fresh: "npm:^2.0.0" + http-errors: "npm:^2.0.0" + merge-descriptors: "npm:^2.0.0" + mime-types: "npm:^3.0.0" + on-finished: "npm:^2.4.1" + once: "npm:^1.4.0" + parseurl: "npm:^1.3.3" + proxy-addr: "npm:^2.0.7" + qs: "npm:^6.14.0" + range-parser: "npm:^1.2.1" + router: "npm:^2.2.0" + send: "npm:^1.1.0" + serve-static: "npm:^2.2.0" + statuses: "npm:^2.0.1" + type-is: "npm:^2.0.1" + vary: "npm:^1.1.2" + checksum: 10c0/80ce7c53c5f56887d759b94c3f2283e2e51066c98d4b72a4cc1338e832b77f1e54f30d0239cc10815a0f849bdb753e6a284d2fa48d4ab56faf9c501f55d751d6 + languageName: node + linkType: hard + "external-editor@npm:^3.0.3": version: 3.1.0 resolution: "external-editor@npm:3.1.0" @@ -3803,6 +4032,20 @@ __metadata: languageName: node linkType: hard +"finalhandler@npm:^2.1.0": + version: 2.1.0 + resolution: "finalhandler@npm:2.1.0" + dependencies: + debug: "npm:^4.4.0" + encodeurl: "npm:^2.0.0" + escape-html: "npm:^1.0.3" + on-finished: "npm:^2.4.1" + parseurl: "npm:^1.3.3" + statuses: "npm:^2.0.1" + checksum: 10c0/da0bbca6d03873472ee890564eb2183f4ed377f25f3628a0fc9d16dac40bed7b150a0d82ebb77356e4c6d97d2796ad2dba22948b951dddee2c8768b0d1b9fb1f + languageName: node + linkType: hard + "find-package-json@npm:^1.2.0": version: 1.2.0 resolution: "find-package-json@npm:1.2.0" @@ -3926,6 +4169,20 @@ __metadata: languageName: node linkType: hard +"forwarded@npm:0.2.0": + version: 0.2.0 + resolution: "forwarded@npm:0.2.0" + checksum: 10c0/9b67c3fac86acdbc9ae47ba1ddd5f2f81526fa4c8226863ede5600a3f7c7416ef451f6f1e240a3cc32d0fd79fcfe6beb08fd0da454f360032bde70bf80afbb33 + languageName: node + linkType: hard + +"fresh@npm:^2.0.0": + version: 2.0.0 + resolution: "fresh@npm:2.0.0" + checksum: 10c0/0557548194cb9a809a435bf92bcfbc20c89e8b5eb38861b73ced36750437251e39a111fc3a18b98531be9dd91fe1411e4969f229dc579ec0251ce6c5d4900bbc + languageName: node + linkType: hard + "fs-extra@npm:^10.1.0": version: 10.1.0 resolution: "fs-extra@npm:10.1.0" @@ -4066,7 +4323,7 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.2.6": +"get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.3.0": version: 1.3.0 resolution: "get-intrinsic@npm:1.3.0" dependencies: @@ -4428,6 +4685,19 @@ __metadata: languageName: node linkType: hard +"http-errors@npm:2.0.0, http-errors@npm:^2.0.0": + version: 2.0.0 + resolution: "http-errors@npm:2.0.0" + dependencies: + depd: "npm:2.0.0" + inherits: "npm:2.0.4" + setprototypeof: "npm:1.2.0" + statuses: "npm:2.0.1" + toidentifier: "npm:1.0.1" + checksum: 10c0/fc6f2715fe188d091274b5ffc8b3657bd85c63e969daa68ccb77afb05b071a4b62841acb7a21e417b5539014dff2ebf9550f0b14a9ff126f2734a7c1387f8e19 + languageName: node + linkType: hard + "http-proxy-agent@npm:^4.0.1": version: 4.0.1 resolution: "http-proxy-agent@npm:4.0.1" @@ -4513,6 +4783,15 @@ __metadata: languageName: node linkType: hard +"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 + languageName: node + linkType: hard + "iconv-lite@npm:^0.4.24": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" @@ -4522,15 +4801,6 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 - languageName: node - linkType: hard - "ieee754@npm:1.1.13": version: 1.1.13 resolution: "ieee754@npm:1.1.13" @@ -4618,7 +4888,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 @@ -4680,6 +4950,13 @@ __metadata: languageName: node linkType: hard +"ipaddr.js@npm:1.9.1": + version: 1.9.1 + resolution: "ipaddr.js@npm:1.9.1" + checksum: 10c0/0486e775047971d3fdb5fb4f063829bac45af299ae0b82dcf3afa2145338e08290563a2a70f34b732d795ecc8311902e541a8530eeb30d75860a78ff4e94ce2a + languageName: node + linkType: hard + "is-arguments@npm:^1.0.4": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" @@ -4798,6 +5075,13 @@ __metadata: languageName: node linkType: hard +"is-promise@npm:^4.0.0": + version: 4.0.0 + resolution: "is-promise@npm:4.0.0" + checksum: 10c0/ebd5c672d73db781ab33ccb155fb9969d6028e37414d609b115cc534654c91ccd061821d5b987eefaa97cf4c62f0b909bb2f04db88306de26e91bfe8ddc01503 + languageName: node + linkType: hard + "is-retry-allowed@npm:^1.1.0": version: 1.2.0 resolution: "is-retry-allowed@npm:1.2.0" @@ -5559,6 +5843,13 @@ __metadata: languageName: node linkType: hard +"media-typer@npm:^1.1.0": + version: 1.1.0 + resolution: "media-typer@npm:1.1.0" + checksum: 10c0/7b4baa40b25964bb90e2121ee489ec38642127e48d0cc2b6baa442688d3fde6262bfdca86d6bbf6ba708784afcac168c06840c71facac70e390f5f759ac121b9 + languageName: node + linkType: hard + "mem-fs-editor@npm:^8.1.2 || ^9.0.0, mem-fs-editor@npm:^9.0.0": version: 9.7.0 resolution: "mem-fs-editor@npm:9.7.0" @@ -5594,6 +5885,13 @@ __metadata: languageName: node linkType: hard +"merge-descriptors@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-descriptors@npm:2.0.0" + checksum: 10c0/95389b7ced3f9b36fbdcf32eb946dc3dd1774c2fdf164609e55b18d03aa499b12bd3aae3a76c1c7185b96279e9803525550d3eb292b5224866060a288f335cb3 + languageName: node + linkType: hard + "merge-stream@npm:^2.0.0": version: 2.0.0 resolution: "merge-stream@npm:2.0.0" @@ -5625,6 +5923,13 @@ __metadata: languageName: node linkType: hard +"mime-db@npm:^1.54.0": + version: 1.54.0 + resolution: "mime-db@npm:1.54.0" + checksum: 10c0/8d907917bc2a90fa2df842cdf5dfeaf509adc15fe0531e07bb2f6ab15992416479015828d6a74200041c492e42cce3ebf78e5ce714388a0a538ea9c53eece284 + languageName: node + linkType: hard + "mime-types@npm:^2.1.12": version: 2.1.35 resolution: "mime-types@npm:2.1.35" @@ -5634,6 +5939,15 @@ __metadata: languageName: node linkType: hard +"mime-types@npm:^3.0.0, mime-types@npm:^3.0.1": + version: 3.0.1 + resolution: "mime-types@npm:3.0.1" + dependencies: + mime-db: "npm:^1.54.0" + checksum: 10c0/bd8c20d3694548089cf229016124f8f40e6a60bbb600161ae13e45f793a2d5bb40f96bbc61f275836696179c77c1d6bf4967b2a75e0a8ad40fe31f4ed5be4da5 + languageName: node + linkType: hard + "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -5975,6 +6289,13 @@ __metadata: languageName: node linkType: hard +"negotiator@npm:^1.0.0": + version: 1.0.0 + resolution: "negotiator@npm:1.0.0" + checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b + languageName: node + linkType: hard + "neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" @@ -6378,13 +6699,20 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4.1.1": +"object-assign@npm:^4, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 languageName: node linkType: hard +"object-inspect@npm:^1.13.3": + version: 1.13.4 + resolution: "object-inspect@npm:1.13.4" + checksum: 10c0/d7f8711e803b96ea3191c745d6f8056ce1f2496e530e6a19a0e92d89b0fa3c76d910c31f0aa270432db6bd3b2f85500a376a83aaba849a8d518c8845b3211692 + languageName: node + linkType: hard + "object-treeify@npm:^1.1.33": version: 1.1.33 resolution: "object-treeify@npm:1.1.33" @@ -6421,6 +6749,15 @@ __metadata: languageName: node linkType: hard +"on-finished@npm:^2.4.1": + version: 2.4.1 + resolution: "on-finished@npm:2.4.1" + dependencies: + ee-first: "npm:1.1.1" + checksum: 10c0/46fb11b9063782f2d9968863d9cbba33d77aa13c17f895f56129c274318b86500b22af3a160fe9995aa41317efcd22941b6eba747f718ced08d9a73afdb087b4 + languageName: node + linkType: hard + "once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -6736,6 +7073,13 @@ __metadata: languageName: node linkType: hard +"parseurl@npm:^1.3.3": + version: 1.3.3 + resolution: "parseurl@npm:1.3.3" + checksum: 10c0/90dd4760d6f6174adb9f20cf0965ae12e23879b5f5464f38e92fce8073354341e4b3b76fa3d878351efe7d01e617121955284cfd002ab087fba1a0726ec0b4f5 + languageName: node + linkType: hard + "password-prompt@npm:^1.1.2": version: 1.1.3 resolution: "password-prompt@npm:1.1.3" @@ -6813,7 +7157,7 @@ __metadata: languageName: node linkType: hard -"path-to-regexp@npm:^8.1.0": +"path-to-regexp@npm:^8.0.0, path-to-regexp@npm:^8.1.0": version: 8.2.0 resolution: "path-to-regexp@npm:8.2.0" checksum: 10c0/ef7d0a887b603c0a142fad16ccebdcdc42910f0b14830517c724466ad676107476bba2fe9fffd28fd4c141391ccd42ea426f32bb44c2c82ecaefe10c37b90f5a @@ -6876,6 +7220,13 @@ __metadata: languageName: node linkType: hard +"pkce-challenge@npm:^5.0.0": + version: 5.0.0 + resolution: "pkce-challenge@npm:5.0.0" + checksum: 10c0/c6706d627fdbb6f22bf8cc5d60d96d6b6a7bb481399b336a3d3f4e9bfba3e167a2c32f8ec0b5e74be686a0ba3bcc9894865d4c2dd1b91cea4c05dba1f28602c3 + languageName: node + linkType: hard + "pkg-dir@npm:^4.2.0": version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" @@ -7020,6 +7371,16 @@ __metadata: languageName: node linkType: hard +"proxy-addr@npm:^2.0.7": + version: 2.0.7 + resolution: "proxy-addr@npm:2.0.7" + dependencies: + forwarded: "npm:0.2.0" + ipaddr.js: "npm:1.9.1" + checksum: 10c0/c3eed999781a35f7fd935f398b6d8920b6fb00bbc14287bc6de78128ccc1a02c89b95b56742bf7cf0362cc333c61d138532049c7dedc7a328ef13343eff81210 + languageName: node + linkType: hard + "proxy-from-env@npm:^1.1.0": version: 1.1.0 resolution: "proxy-from-env@npm:1.1.0" @@ -7051,6 +7412,15 @@ __metadata: languageName: node linkType: hard +"qs@npm:^6.14.0": + version: 6.14.0 + resolution: "qs@npm:6.14.0" + dependencies: + side-channel: "npm:^1.1.0" + checksum: 10c0/8ea5d91bf34f440598ee389d4a7d95820e3b837d3fd9f433871f7924801becaa0cd3b3b4628d49a7784d06a8aea9bc4554d2b6d8d584e2d221dc06238a42909c + languageName: node + linkType: hard + "querystring@npm:0.2.0": version: 0.2.0 resolution: "querystring@npm:0.2.0" @@ -7081,6 +7451,25 @@ __metadata: languageName: node linkType: hard +"range-parser@npm:^1.2.1": + version: 1.2.1 + resolution: "range-parser@npm:1.2.1" + checksum: 10c0/96c032ac2475c8027b7a4e9fe22dc0dfe0f6d90b85e496e0f016fbdb99d6d066de0112e680805075bd989905e2123b3b3d002765149294dce0c1f7f01fcc2ea0 + languageName: node + linkType: hard + +"raw-body@npm:^3.0.0": + version: 3.0.0 + resolution: "raw-body@npm:3.0.0" + dependencies: + bytes: "npm:3.1.2" + http-errors: "npm:2.0.0" + iconv-lite: "npm:0.6.3" + unpipe: "npm:1.0.0" + checksum: 10c0/f8daf4b724064a4811d118745a781ca0fb4676298b8adadfd6591155549cfea0a067523cf7dd3baeb1265fecc9ce5dfb2fc788c12c66b85202a336593ece0f87 + languageName: node + linkType: hard + "react-is@npm:^18.0.0": version: 18.2.0 resolution: "react-is@npm:18.2.0" @@ -7380,6 +7769,19 @@ __metadata: languageName: node linkType: hard +"router@npm:^2.2.0": + version: 2.2.0 + resolution: "router@npm:2.2.0" + dependencies: + debug: "npm:^4.4.0" + depd: "npm:^2.0.0" + is-promise: "npm:^4.0.0" + parseurl: "npm:^1.3.3" + path-to-regexp: "npm:^8.0.0" + checksum: 10c0/3279de7450c8eae2f6e095e9edacbdeec0abb5cb7249c6e719faa0db2dba43574b4fff5892d9220631c9abaff52dd3cad648cfea2aaace845e1a071915ac8867 + languageName: node + linkType: hard + "run-async@npm:^2.0.0, run-async@npm:^2.4.0, run-async@npm:^2.4.1": version: 2.4.1 resolution: "run-async@npm:2.4.1" @@ -7405,7 +7807,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 @@ -7494,6 +7896,25 @@ __metadata: languageName: node linkType: hard +"send@npm:^1.1.0, send@npm:^1.2.0": + version: 1.2.0 + resolution: "send@npm:1.2.0" + dependencies: + debug: "npm:^4.3.5" + encodeurl: "npm:^2.0.0" + escape-html: "npm:^1.0.3" + etag: "npm:^1.8.1" + fresh: "npm:^2.0.0" + http-errors: "npm:^2.0.0" + mime-types: "npm:^3.0.1" + ms: "npm:^2.1.3" + on-finished: "npm:^2.4.1" + range-parser: "npm:^1.2.1" + statuses: "npm:^2.0.1" + checksum: 10c0/531bcfb5616948d3468d95a1fd0adaeb0c20818ba4a500f439b800ca2117971489e02074ce32796fd64a6772ea3e7235fe0583d8241dbd37a053dc3378eff9a5 + languageName: node + linkType: hard + "serialize-javascript@npm:^6.0.2": version: 6.0.2 resolution: "serialize-javascript@npm:6.0.2" @@ -7503,6 +7924,18 @@ __metadata: languageName: node linkType: hard +"serve-static@npm:^2.2.0": + version: 2.2.0 + resolution: "serve-static@npm:2.2.0" + dependencies: + encodeurl: "npm:^2.0.0" + escape-html: "npm:^1.0.3" + parseurl: "npm:^1.3.3" + send: "npm:^1.2.0" + checksum: 10c0/30e2ed1dbff1984836cfd0c65abf5d3f3f83bcd696c99d2d3c97edbd4e2a3ff4d3f87108a7d713640d290a7b6fe6c15ddcbc61165ab2eaad48ea8d3b52c7f913 + languageName: node + linkType: hard + "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -7524,6 +7957,13 @@ __metadata: languageName: node linkType: hard +"setprototypeof@npm:1.2.0": + version: 1.2.0 + resolution: "setprototypeof@npm:1.2.0" + checksum: 10c0/68733173026766fa0d9ecaeb07f0483f4c2dc70ca376b3b7c40b7cda909f94b0918f6c5ad5ce27a9160bdfb475efaa9d5e705a11d8eaae18f9835d20976028bc + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -7572,6 +8012,54 @@ __metadata: languageName: node linkType: hard +"side-channel-list@npm:^1.0.0": + version: 1.0.0 + resolution: "side-channel-list@npm:1.0.0" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + checksum: 10c0/644f4ac893456c9490ff388bf78aea9d333d5e5bfc64cfb84be8f04bf31ddc111a8d4b83b85d7e7e8a7b845bc185a9ad02c052d20e086983cf59f0be517d9b3d + languageName: node + linkType: hard + +"side-channel-map@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-map@npm:1.0.1" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + checksum: 10c0/010584e6444dd8a20b85bc926d934424bd809e1a3af941cace229f7fdcb751aada0fb7164f60c2e22292b7fa3c0ff0bce237081fd4cdbc80de1dc68e95430672 + languageName: node + linkType: hard + +"side-channel-weakmap@npm:^1.0.2": + version: 1.0.2 + resolution: "side-channel-weakmap@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + side-channel-map: "npm:^1.0.1" + checksum: 10c0/71362709ac233e08807ccd980101c3e2d7efe849edc51455030327b059f6c4d292c237f94dc0685031dd11c07dd17a68afde235d6cf2102d949567f98ab58185 + languageName: node + linkType: hard + +"side-channel@npm:^1.1.0": + version: 1.1.0 + resolution: "side-channel@npm:1.1.0" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + side-channel-list: "npm:^1.0.0" + side-channel-map: "npm:^1.0.1" + side-channel-weakmap: "npm:^1.0.2" + checksum: 10c0/cb20dad41eb032e6c24c0982e1e5a24963a28aa6122b4f05b3f3d6bf8ae7fd5474ef382c8f54a6a3ab86e0cac4d41a23bd64ede3970e5bfb50326ba02a7996e6 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -7800,6 +8288,20 @@ __metadata: languageName: node linkType: hard +"statuses@npm:2.0.1": + version: 2.0.1 + resolution: "statuses@npm:2.0.1" + checksum: 10c0/34378b207a1620a24804ce8b5d230fea0c279f00b18a7209646d5d47e419d1cc23e7cbf33a25a1e51ac38973dc2ac2e1e9c647a8e481ef365f77668d72becfd0 + languageName: node + linkType: hard + +"statuses@npm:^2.0.1": + version: 2.0.2 + resolution: "statuses@npm:2.0.2" + checksum: 10c0/a9947d98ad60d01f6b26727570f3bcceb6c8fa789da64fe6889908fe2e294d57503b14bf2b5af7605c2d36647259e856635cd4c49eab41667658ec9d0080ec3f + languageName: node + linkType: hard + "stdout-stderr@npm:^0.1.9": version: 0.1.13 resolution: "stdout-stderr@npm:0.1.13" @@ -8033,6 +8535,13 @@ __metadata: languageName: node linkType: hard +"toidentifier@npm:1.0.1": + version: 1.0.1 + resolution: "toidentifier@npm:1.0.1" + checksum: 10c0/93937279934bd66cc3270016dd8d0afec14fb7c94a05c72dc57321f8bd1fa97e5bea6d1f7c89e728d077ca31ea125b78320a616a6c6cd0e6b9cb94cb864381c1 + languageName: node + linkType: hard + "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3" @@ -8195,6 +8704,17 @@ __metadata: languageName: node linkType: hard +"type-is@npm:^2.0.0, type-is@npm:^2.0.1": + version: 2.0.1 + resolution: "type-is@npm:2.0.1" + dependencies: + content-type: "npm:^1.0.5" + media-typer: "npm:^1.1.0" + mime-types: "npm:^3.0.0" + checksum: 10c0/7f7ec0a060b16880bdad36824ab37c26019454b67d73e8a465ed5a3587440fbe158bc765f0da68344498235c877e7dbbb1600beccc94628ed05599d667951b99 + languageName: node + linkType: hard + "typescript-eslint@npm:^8.21.0": version: 8.37.0 resolution: "typescript-eslint@npm:8.37.0" @@ -8341,6 +8861,13 @@ __metadata: languageName: node linkType: hard +"unpipe@npm:1.0.0": + version: 1.0.0 + resolution: "unpipe@npm:1.0.0" + checksum: 10c0/193400255bd48968e5c5383730344fbb4fa114cdedfab26e329e50dd2d81b134244bb8a72c6ac1b10ab0281a58b363d06405632c9d49ca9dfd5e90cbd7d0f32c + languageName: node + linkType: hard + "untildify@npm:^4.0.0": version: 4.0.0 resolution: "untildify@npm:4.0.0" @@ -8452,6 +8979,13 @@ __metadata: languageName: node linkType: hard +"vary@npm:^1, vary@npm:^1.1.2": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: 10c0/f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f + languageName: node + linkType: hard + "vinyl-file@npm:^3.0.0": version: 3.0.0 resolution: "vinyl-file@npm:3.0.0" @@ -8868,6 +9402,15 @@ __metadata: languageName: node linkType: hard +"zod-to-json-schema@npm:^3.24.1": + version: 3.24.6 + resolution: "zod-to-json-schema@npm:3.24.6" + peerDependencies: + zod: ^3.24.1 + checksum: 10c0/b907ab6d057100bd25a37e5545bf5f0efa5902cd84d3c3ec05c2e51541431a47bd9bf1e5e151a244273409b45f5986d55b26e5d207f98abc5200702f733eb368 + languageName: node + linkType: hard + "zod@npm:^3.19.1": version: 3.22.4 resolution: "zod@npm:3.22.4" @@ -8875,6 +9418,13 @@ __metadata: languageName: node linkType: hard +"zod@npm:^3.23.8": + version: 3.25.75 + resolution: "zod@npm:3.25.75" + checksum: 10c0/e11c83dcd1437401c1edf4f0448bd13b9133e83196385d0ee5407662bef6c08099cb511b5e65f11f2feba244b6709bcd34077c9450c9f3064f75df51b362b5f2 + languageName: node + linkType: hard + "zod@npm:^3.24.2": version: 3.24.2 resolution: "zod@npm:3.24.2" From a0bb05892e6e60973b307b3d1169097859485236 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 7 Jul 2025 16:27:05 -0400 Subject: [PATCH 08/74] feat: add new MCP files --- src/mcp/index.ts | 32 ++++ src/mcp/server.ts | 332 ++++++++++++++++++++++++++++++++++++++++++ src/mcp/utils/api.ts | 172 ++++++++++++++++++++++ src/mcp/utils/auth.ts | 157 ++++++++++++++++++++ 4 files changed, 693 insertions(+) create mode 100644 src/mcp/index.ts create mode 100644 src/mcp/server.ts create mode 100644 src/mcp/utils/api.ts create mode 100644 src/mcp/utils/auth.ts diff --git a/src/mcp/index.ts b/src/mcp/index.ts new file mode 100644 index 000000000..55671d126 --- /dev/null +++ b/src/mcp/index.ts @@ -0,0 +1,32 @@ +#!/usr/bin/env node + +import { Server } from '@modelcontextprotocol/sdk/server/index.js' +import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js' +import { DevCycleMCPServer } from './server' + +async function main() { + const server = new Server( + { + name: 'devcycle', + version: '0.0.1', + }, + { + capabilities: { + tools: {}, + }, + }, + ) + + const mcpServer = new DevCycleMCPServer(server) + await mcpServer.initialize() + + const transport = new StdioServerTransport() + await server.connect(transport) + + console.error('DevCycle MCP server running on stdio') +} + +main().catch((error) => { + console.error('Failed to start DevCycle MCP server:', error) + process.exit(1) +}) diff --git a/src/mcp/server.ts b/src/mcp/server.ts new file mode 100644 index 000000000..eefb975a2 --- /dev/null +++ b/src/mcp/server.ts @@ -0,0 +1,332 @@ +import { Server } from '@modelcontextprotocol/sdk/server/index.js' +import { + CallToolRequestSchema, + ListToolsRequestSchema, +} from '@modelcontextprotocol/sdk/types.js' +import { DevCycleAuth } from './utils/auth' +import { DevCycleApiClient } from './utils/api' +import Writer from '../ui/writer' + +export class DevCycleMCPServer { + private auth: DevCycleAuth + private apiClient: DevCycleApiClient + private writer: Writer + + constructor(private server: Server) { + this.writer = new Writer() + this.writer.headless = true // Always headless for MCP + this.auth = new DevCycleAuth() + this.apiClient = new DevCycleApiClient(this.auth) + } + + async initialize() { + try { + await this.setupAuth() + this.setupToolHandlers() + this.setupErrorHandling() + } catch (error) { + console.error('Failed to initialize MCP server:', error) + throw error + } + } + + private async setupAuth() { + try { + await this.auth.initialize() + } catch (error) { + console.error('Failed to initialize authentication:', error) + throw error + } + } + + private setupToolHandlers() { + this.server.setRequestHandler(ListToolsRequestSchema, async () => { + return { + tools: [ + { + name: 'list_features', + description: 'List features in the current project', + inputSchema: { + type: 'object', + properties: { + search: { + type: 'string', + description: + 'Search query to filter features', + }, + page: { + type: 'number', + description: 'Page number (default: 1)', + }, + per_page: { + type: 'number', + description: + 'Number of items per page (default: 10)', + }, + }, + }, + }, + { + name: 'list_variables', + description: 'List variables in the current project', + inputSchema: { + type: 'object', + properties: { + search: { + type: 'string', + description: + 'Search query to filter variables', + }, + page: { + type: 'number', + description: 'Page number (default: 1)', + }, + per_page: { + type: 'number', + description: + 'Number of items per page (default: 10)', + }, + }, + }, + }, + { + name: 'get_sdk_keys', + description: 'Get SDK keys for an environment', + inputSchema: { + type: 'object', + properties: { + environment_key: { + type: 'string', + description: 'The key of the environment', + }, + key_type: { + type: 'string', + enum: ['mobile', 'server', 'client'], + description: + 'The type of SDK key to retrieve', + }, + }, + required: ['environment_key'], + }, + }, + { + name: 'enable_targeting', + description: + 'Enable targeting for a feature in an environment', + inputSchema: { + type: 'object', + properties: { + feature_key: { + type: 'string', + description: 'The key of the feature', + }, + environment_key: { + type: 'string', + description: 'The key of the environment', + }, + }, + required: ['feature_key', 'environment_key'], + }, + }, + { + name: 'disable_targeting', + description: + 'Disable targeting for a feature in an environment', + inputSchema: { + type: 'object', + properties: { + feature_key: { + type: 'string', + description: 'The key of the feature', + }, + environment_key: { + type: 'string', + description: 'The key of the environment', + }, + }, + required: ['feature_key', 'environment_key'], + }, + }, + { + name: 'create_feature', + description: + 'Create a new feature flag (supports interactive mode)', + inputSchema: { + type: 'object', + properties: { + key: { + type: 'string', + description: 'Unique feature key', + }, + name: { + type: 'string', + description: 'Human-readable feature name', + }, + description: { + type: 'string', + description: 'Feature description', + }, + type: { + type: 'string', + enum: [ + 'release', + 'experiment', + 'permission', + 'ops', + ], + description: 'Feature type', + }, + interactive: { + type: 'boolean', + description: + 'Use interactive mode to prompt for missing fields', + }, + }, + }, + }, + ], + } + }) + + this.server.setRequestHandler( + CallToolRequestSchema, + async (request: any) => { + const { name, arguments: args } = request.params + + try { + let result + switch (name) { + case 'list_features': + result = await this.listFeatures(args) + break + case 'list_variables': + result = await this.listVariables(args) + break + case 'get_sdk_keys': + result = await this.getSdkKeys(args) + break + case 'enable_targeting': + result = await this.enableTargeting(args) + break + case 'disable_targeting': + result = await this.disableTargeting(args) + break + case 'create_feature': + result = await this.createFeature(args) + break + default: + throw new Error(`Unknown tool: ${name}`) + } + + return result + } catch (error) { + console.error(`Error in tool handler ${name}:`, error) + + const errorMessage = + error instanceof Error ? error.message : 'Unknown error' + return { + content: [ + { + type: 'text', + text: `Error: ${errorMessage}`, + }, + ], + } + } + }, + ) + } + + private setupErrorHandling() { + this.server.onerror = (error: Error) => { + console.error('MCP Server Error:', error) + } + } + + // Tool implementations + private async listFeatures(args: any) { + try { + const features = await this.apiClient.listFeatures(args) + return { + content: [ + { + type: 'text', + text: JSON.stringify(features, null, 2), + }, + ], + } + } catch (error) { + console.error('Error listing features:', error) + throw error + } + } + + private async listVariables(args: any) { + const variables = await this.apiClient.listVariables(args) + return { + content: [ + { + type: 'text', + text: JSON.stringify(variables, null, 2), + }, + ], + } + } + + private async getSdkKeys(args: any) { + const keys = await this.apiClient.getSdkKeys( + args.environment_key, + args.key_type, + ) + return { + content: [ + { + type: 'text', + text: JSON.stringify(keys, null, 2), + }, + ], + } + } + + private async enableTargeting(args: any) { + const result = await this.apiClient.enableTargeting( + args.feature_key, + args.environment_key, + ) + return { + content: [ + { + type: 'text', + text: JSON.stringify(result, null, 2), + }, + ], + } + } + + private async disableTargeting(args: any) { + const result = await this.apiClient.disableTargeting( + args.feature_key, + args.environment_key, + ) + return { + content: [ + { + type: 'text', + text: JSON.stringify(result, null, 2), + }, + ], + } + } + + private async createFeature(args: any) { + const result = await this.apiClient.createFeature(args) + return { + content: [ + { + type: 'text', + text: JSON.stringify(result, null, 2), + }, + ], + } + } +} diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts new file mode 100644 index 000000000..2c8ae0b4a --- /dev/null +++ b/src/mcp/utils/api.ts @@ -0,0 +1,172 @@ +import { DevCycleAuth } from './auth' +import { + fetchFeatures, + fetchFeatureByKey, + createFeature, +} from '../../api/features' +import { fetchVariables, fetchVariableByKey } from '../../api/variables' +import { fetchEnvironmentByKey } from '../../api/environments' +import { enableTargeting, disableTargeting } from '../../api/targeting' + +export class DevCycleApiClient { + constructor(private auth: DevCycleAuth) {} + + async listFeatures(args: { + search?: string + page?: number + per_page?: number + }) { + try { + this.auth.requireAuth() + this.auth.requireProject() + + const authToken = this.auth.getAuthToken() + const projectKey = this.auth.getProjectKey() + + const query = { + search: args.search, + page: args.page, + perPage: args.per_page, + } + + const result = await fetchFeatures(authToken, projectKey, query) + return result + } catch (error) { + console.error('Error during listFeatures:', error) + throw error + } + } + + async getFeature(featureKey: string) { + this.auth.requireAuth() + this.auth.requireProject() + + return await fetchFeatureByKey( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + featureKey, + ) + } + + async listVariables(args: { + search?: string + page?: number + per_page?: number + }) { + this.auth.requireAuth() + this.auth.requireProject() + + const query = { + search: args.search, + page: args.page, + perPage: args.per_page, + } + + return await fetchVariables( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + query, + ) + } + + async getVariable(variableKey: string) { + this.auth.requireAuth() + this.auth.requireProject() + + return await fetchVariableByKey( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + variableKey, + ) + } + + async getSdkKeys( + environmentKey: string, + keyType?: 'mobile' | 'server' | 'client', + ) { + this.auth.requireAuth() + this.auth.requireProject() + + const environment = await fetchEnvironmentByKey( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + environmentKey, + ) + + const sdkKeys = environment.sdkKeys + + if (keyType) { + return { + [keyType]: sdkKeys[keyType], + } + } + + return { + mobile: sdkKeys.mobile, + server: sdkKeys.server, + client: sdkKeys.client, + } + } + + async enableTargeting(featureKey: string, environmentKey: string) { + this.auth.requireAuth() + this.auth.requireProject() + + return await enableTargeting( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + featureKey, + environmentKey, + ) + } + + async disableTargeting(featureKey: string, environmentKey: string) { + this.auth.requireAuth() + this.auth.requireProject() + + return await disableTargeting( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + featureKey, + environmentKey, + ) + } + + async createFeature(args: { + key?: string + name?: string + description?: string + type?: 'release' | 'experiment' | 'permission' | 'ops' + interactive?: boolean + }) { + this.auth.requireAuth() + this.auth.requireProject() + + if (args.interactive) { + // For interactive mode, we would need to implement prompts + // For now, return an error asking for explicit parameters + throw new Error( + 'Interactive mode not yet supported in MCP. Please provide explicit parameters: key, name, description, type', + ) + } + + if (!args.key || !args.name) { + throw new Error( + 'Feature key and name are required when not using interactive mode', + ) + } + + const featureData = { + key: args.key, + name: args.name, + description: args.description || '', + type: args.type || 'release', + } + + return await createFeature( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + featureData, + ) + } +} diff --git a/src/mcp/utils/auth.ts b/src/mcp/utils/auth.ts new file mode 100644 index 000000000..e325dde48 --- /dev/null +++ b/src/mcp/utils/auth.ts @@ -0,0 +1,157 @@ +import * as path from 'path' +import * as os from 'os' +import * as fs from 'fs' +import { ApiAuth } from '../../auth/ApiAuth' +import Writer from '../../ui/writer' + +export class DevCycleAuth { + private apiAuth: ApiAuth + private authPath: string + private cacheDir: string + private writer: Writer + private _authToken = '' + private _projectKey = '' + private _orgId = '' + + constructor() { + this.authPath = path.join( + os.homedir(), + '.config', + 'devcycle', + 'auth.yml', + ) + this.cacheDir = path.join(os.homedir(), '.config', 'devcycle', 'cache') + this.writer = new Writer() + this.writer.headless = true + this.apiAuth = new ApiAuth(this.authPath, this.cacheDir, this.writer) + } + + async initialize(): Promise<void> { + try { + // Try to get auth token from various sources + const flags = { + 'client-id': + process.env.DEVCYCLE_CLIENT_ID || process.env.DVC_CLIENT_ID, + 'client-secret': + process.env.DEVCYCLE_CLIENT_SECRET || + process.env.DVC_CLIENT_SECRET, + } + + // Load project config to get org and project + await this.loadConfig() + + // Get the auth token + this._authToken = await this.apiAuth.getToken(flags, this._orgId) + + if (!this._authToken) { + throw new Error( + 'No authentication found. Please set DEVCYCLE_CLIENT_ID and DEVCYCLE_CLIENT_SECRET environment variables, ' + + 'or run "dvc login sso" in the CLI first.', + ) + } + + if (!this._projectKey) { + throw new Error( + 'No project configured. Please set DEVCYCLE_PROJECT_KEY environment variable, ' + + 'or configure a project using "dvc projects select" in the CLI.', + ) + } + } catch (error) { + console.error( + 'Failed to initialize DevCycle authentication:', + error, + ) + throw new Error( + `Failed to initialize DevCycle authentication: ${error instanceof Error ? error.message : 'Unknown error'}`, + ) + } + } + + private async loadConfig(): Promise<void> { + // Try to load project from environment variables first + this._projectKey = + process.env.DEVCYCLE_PROJECT_KEY || + process.env.DVC_PROJECT_KEY || + '' + + // Try to load from repo config + const repoConfigPath = '.devcycle/config.yml' + if (fs.existsSync(repoConfigPath)) { + try { + const yaml = await import('js-yaml') + const configContent = fs.readFileSync(repoConfigPath, 'utf8') + const config = yaml.load(configContent) as any + + if (config?.project && !this._projectKey) { + this._projectKey = config.project + } + if (config?.org?.id) { + this._orgId = config.org.id + } + } catch (error) { + console.error('Error loading repo config:', error) + // Ignore config loading errors, continue with env vars + } + } + + // Try to load from user config + const userConfigPath = path.join( + os.homedir(), + '.config', + 'devcycle', + 'user.yml', + ) + if ( + fs.existsSync(userConfigPath) && + (!this._projectKey || !this._orgId) + ) { + try { + const yaml = await import('js-yaml') + const configContent = fs.readFileSync(userConfigPath, 'utf8') + const config = yaml.load(configContent) as any + + if (config?.project && !this._projectKey) { + this._projectKey = config.project + } + if (config?.org?.id && !this._orgId) { + this._orgId = config.org.id + } + } catch (error) { + console.error('Error loading user config:', error) + // Ignore config loading errors + } + } + } + + getAuthToken(): string { + return this._authToken + } + + getProjectKey(): string { + return this._projectKey + } + + getOrgId(): string { + return this._orgId + } + + hasToken(): boolean { + return this._authToken !== '' + } + + requireAuth(): void { + if (!this.hasToken()) { + throw new Error( + 'Authentication required. Please configure DevCycle credentials.', + ) + } + } + + requireProject(): void { + if (!this._projectKey) { + throw new Error( + 'Project key required. Please configure a DevCycle project.', + ) + } + } +} From 182766d3d90ac0e142d15e09c0b8d810fc59c96e Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 7 Jul 2025 16:37:35 -0400 Subject: [PATCH 09/74] fix: revert console.error changes in non mcp code --- src/api/features.ts | 65 ++++------------------------ src/commands/wink.ts | 2 +- src/ui/tableOutput.ts | 2 +- src/ui/writer.ts | 32 +++++++------- src/utils/parsers/BaseParser.ts | 2 +- src/utils/parsers/custom.ts | 2 +- src/utils/refactor/RefactorEngine.ts | 2 +- 7 files changed, 29 insertions(+), 78 deletions(-) diff --git a/src/api/features.ts b/src/api/features.ts index 9443a347f..2c242b8d7 100644 --- a/src/api/features.ts +++ b/src/api/features.ts @@ -21,64 +21,15 @@ export const fetchFeatures = async ( staleness?: string } = {}, ): Promise<Feature[]> => { - console.error('=== fetchFeatures API START ===') - console.error('Project ID:', project_id) - console.error('Token length:', token?.length || 0) - console.error('Token prefix:', token?.substring(0, 20) + '...') - console.error('Queries:', JSON.stringify(queries, null, 2)) - - const url = FEATURE_URL - console.error('API URL template:', url) - console.error('Full URL will be:', url.replace(':project', project_id)) - - try { - console.error('Making API request...') - const response = await apiClient.get(FEATURE_URL, { - headers: buildHeaders(token), - params: { - project: project_id, - }, - queries, - }) - - console.error('API request successful') - console.error('Response type:', typeof response) - console.error('Response is array:', Array.isArray(response)) - console.error( - 'Response length:', - Array.isArray(response) ? response.length : 'N/A', - ) - if (Array.isArray(response) && response.length > 0) { - console.error( - 'First feature sample:', - JSON.stringify(response[0], null, 2), - ) - } - console.error('=== fetchFeatures API END (SUCCESS) ===') + const response = await apiClient.get(FEATURE_URL, { + headers: buildHeaders(token), + params: { + project: project_id, + }, + queries, + }) - return response - } catch (error) { - console.error('=== fetchFeatures API ERROR ===') - console.error('Error type:', error?.constructor?.name) - console.error( - 'Error message:', - error instanceof Error ? error.message : 'Unknown', - ) - if (error instanceof AxiosError) { - console.error('Axios error status:', error.response?.status) - console.error('Axios error data:', error.response?.data) - console.error('Axios error headers:', error.response?.headers) - console.error('Request config:', { - url: error.config?.url, - method: error.config?.method, - headers: error.config?.headers, - params: error.config?.params, - }) - } - console.error('Full error:', error) - console.error('=== fetchFeatures API END (ERROR) ===') - throw error - } + return response } export const fetchFeatureByKey = async ( diff --git a/src/commands/wink.ts b/src/commands/wink.ts index d7b955cf1..67cff53c2 100644 --- a/src/commands/wink.ts +++ b/src/commands/wink.ts @@ -5,6 +5,6 @@ export default class Wink extends Command { static hidden = true async run(): Promise<void> { - console.error(togglebotWink) + console.log(togglebotWink) } } diff --git a/src/ui/tableOutput.ts b/src/ui/tableOutput.ts index 575520096..31e75d755 100644 --- a/src/ui/tableOutput.ts +++ b/src/ui/tableOutput.ts @@ -19,7 +19,7 @@ export default class TableOutput { } ux.table(data, columns, options) - console.error('\r') + console.log('\r') } public printOverrides<T extends Record<string, unknown>>( diff --git a/src/ui/writer.ts b/src/ui/writer.ts index 2d5828bbd..5e406290e 100644 --- a/src/ui/writer.ts +++ b/src/ui/writer.ts @@ -3,31 +3,31 @@ import { togglebot, togglebotSleep, togglebotWink } from './togglebot' export default class Writer { public successMessage(message: string): void { - if (!this.headless) console.error(chalk.green(`✅ ${message}`)) + if (!this.headless) console.log(chalk.green(`✅ ${message}`)) } public failureMessage(message: string): void { - if (!this.headless) console.error(chalk.red(`❌ ${message}`)) + if (!this.headless) console.log(chalk.red(`❌ ${message}`)) } public warningMessage(message: string): void { - if (!this.headless) console.error(chalk.yellow(`⚠️ ${message}`)) + if (!this.headless) console.log(chalk.yellow(`⚠️ ${message}`)) } public statusMessage(message: string): void { - if (!this.headless) console.error(chalk.dim(`🤖 ${message}`)) + if (!this.headless) console.log(chalk.dim(`🤖 ${message}`)) } public infoMessage(message: string): void { - if (!this.headless) console.error(`🤖 ${message}`) + if (!this.headless) console.log(`🤖 ${message}`) } public infoMessageWithCommand(message: string, command: string): void { - if (!this.headless) console.error(`🤖 ${message} ${chalk.bold(command)}`) + if (!this.headless) console.log(`🤖 ${message} ${chalk.bold(command)}`) } public title(message: string): void { - if (!this.headless) console.error(`🤖 ${chalk.bold(message)}`) + if (!this.headless) console.log(`🤖 ${chalk.bold(message)}`) } public printCurrentValues(values: unknown): void { @@ -41,40 +41,40 @@ export default class Writer { public list(list: string[]): void { if (!this.headless) - console.error(list.length ? `${list.join('\n\r')}` : '(Empty)') + console.log(list.length ? `${list.join('\n\r')}` : '(Empty)') } public blankLine(): void { - if (!this.headless) console.error('\n\r') + if (!this.headless) console.log('\n\r') } public divider(): void { if (!this.headless) - console.error('----------------------------------------') + console.log('----------------------------------------') } public showResults(results: unknown): void { if (this.headless) { - console.error(JSON.stringify(results)) + console.log(JSON.stringify(results)) } else { - console.error(JSON.stringify(results, null, 2)) + console.log(JSON.stringify(results, null, 2)) } } public showRawResults(results: string): void { - console.error(results) + console.log(results) } public showTogglebot(): void { - if (!this.headless) console.error(togglebot) + if (!this.headless) console.log(togglebot) } public showTogglebotWink(): void { - if (!this.headless) console.error(togglebotWink) + if (!this.headless) console.log(togglebotWink) } public showTogglebotSleep(): void { - if (!this.headless) console.error(togglebotSleep) + if (!this.headless) console.log(togglebotSleep) } public showError(message: string): void { diff --git a/src/utils/parsers/BaseParser.ts b/src/utils/parsers/BaseParser.ts index 85a51ec53..8fec5d33d 100644 --- a/src/utils/parsers/BaseParser.ts +++ b/src/utils/parsers/BaseParser.ts @@ -171,7 +171,7 @@ export abstract class BaseParser { } printRegexPattern(): void { - console.error( + console.log( `Pattern for ${this.identity} parser: \n\t${this.buildRegexPattern().source}`, ) } diff --git a/src/utils/parsers/custom.ts b/src/utils/parsers/custom.ts index 571c03f31..3f53c5b72 100644 --- a/src/utils/parsers/custom.ts +++ b/src/utils/parsers/custom.ts @@ -18,7 +18,7 @@ export class CustomParser extends BaseParser { printRegexPattern(): void { const patterns = this.customPatterns.join('\n\t') - console.error(`Pattern for ${this.identity} parser: \n\t${patterns}`) + console.log(`Pattern for ${this.identity} parser: \n\t${patterns}`) } override match(content: string): MatchResult | null { diff --git a/src/utils/refactor/RefactorEngine.ts b/src/utils/refactor/RefactorEngine.ts index d1cc588e4..8d11c45f1 100644 --- a/src/utils/refactor/RefactorEngine.ts +++ b/src/utils/refactor/RefactorEngine.ts @@ -511,7 +511,7 @@ export abstract class RefactorEngine { try { const { code } = recast.print(this.ast) if (this.output === 'console') { - console.error(code) + console.log(code) } else if (this.fileRefactored) { fs.writeFileSync(this.filepath, code) } From 5c175cdb71ffbc11a16ebd359588cb865b366cdd Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 7 Jul 2025 16:39:20 -0400 Subject: [PATCH 10/74] fix: revert readme changes --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f63594ba6..13141436c 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,7 @@ USAGE * [`dvc environments`](docs/environments.md) - Create a new Environment for an existing Feature. * [`dvc features`](docs/features.md) - Create, view, or modify Features with the Management API. * [`dvc generate`](docs/generate.md) - Generate Devcycle related files. +* [`dvc help`](docs/help.md) - Display help for dvc. * [`dvc identity`](docs/identity.md) - View or manage your DevCycle Identity. * [`dvc keys`](docs/keys.md) - Retrieve SDK keys from the Management API. * [`dvc login`](docs/login.md) - Log in to DevCycle. From c141d5b6fc88d21423c261424bf4635aa0b0e259 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 7 Jul 2025 16:54:52 -0400 Subject: [PATCH 11/74] chore: cleanup api.ts, add logging --- README.md | 1 - src/mcp/utils/api.ts | 286 ++++++++++++++++++++++++++++--------------- 2 files changed, 188 insertions(+), 99 deletions(-) diff --git a/README.md b/README.md index 13141436c..f63594ba6 100644 --- a/README.md +++ b/README.md @@ -126,7 +126,6 @@ USAGE * [`dvc environments`](docs/environments.md) - Create a new Environment for an existing Feature. * [`dvc features`](docs/features.md) - Create, view, or modify Features with the Management API. * [`dvc generate`](docs/generate.md) - Generate Devcycle related files. -* [`dvc help`](docs/help.md) - Display help for dvc. * [`dvc identity`](docs/identity.md) - View or manage your DevCycle Identity. * [`dvc keys`](docs/keys.md) - Retrieve SDK keys from the Management API. * [`dvc login`](docs/login.md) - Log in to DevCycle. diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index 2c8ae0b4a..5bf42e1cc 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -1,13 +1,23 @@ import { DevCycleAuth } from './auth' -import { - fetchFeatures, - fetchFeatureByKey, - createFeature, -} from '../../api/features' -import { fetchVariables, fetchVariableByKey } from '../../api/variables' +import { fetchFeatures, createFeature } from '../../api/features' +import { fetchVariables } from '../../api/variables' import { fetchEnvironmentByKey } from '../../api/environments' import { enableTargeting, disableTargeting } from '../../api/targeting' +function getErrorMessage(error: unknown): string { + if (error instanceof Error) { + return error.message + } + return String(error) +} + +function ensureError(error: unknown): Error { + if (error instanceof Error) { + return error + } + return new Error(String(error)) +} + export class DevCycleApiClient { constructor(private auth: DevCycleAuth) {} @@ -16,6 +26,8 @@ export class DevCycleApiClient { page?: number per_page?: number }) { + console.error('MCP listFeatures params:', JSON.stringify(args, null, 2)) + try { this.auth.requireAuth() this.auth.requireProject() @@ -30,106 +42,166 @@ export class DevCycleApiClient { } const result = await fetchFeatures(authToken, projectKey, query) + console.error( + 'MCP listFeatures result:', + JSON.stringify(result, null, 2), + ) return result } catch (error) { - console.error('Error during listFeatures:', error) - throw error + console.error( + 'MCP listFeatures error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + console.error('Error during listFeatures:', getErrorMessage(error)) + throw ensureError(error) } } - async getFeature(featureKey: string) { - this.auth.requireAuth() - this.auth.requireProject() - - return await fetchFeatureByKey( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - featureKey, - ) - } - async listVariables(args: { search?: string page?: number per_page?: number }) { - this.auth.requireAuth() - this.auth.requireProject() - - const query = { - search: args.search, - page: args.page, - perPage: args.per_page, - } - - return await fetchVariables( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - query, + console.error( + 'MCP listVariables params:', + JSON.stringify(args, null, 2), ) - } - async getVariable(variableKey: string) { - this.auth.requireAuth() - this.auth.requireProject() + try { + this.auth.requireAuth() + this.auth.requireProject() - return await fetchVariableByKey( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - variableKey, - ) + const query = { + search: args.search, + page: args.page, + perPage: args.per_page, + } + + const result = await fetchVariables( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + query, + ) + console.error( + 'MCP listVariables result:', + JSON.stringify(result, null, 2), + ) + return result + } catch (error) { + console.error( + 'MCP listVariables error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + throw ensureError(error) + } } async getSdkKeys( environmentKey: string, keyType?: 'mobile' | 'server' | 'client', ) { - this.auth.requireAuth() - this.auth.requireProject() - - const environment = await fetchEnvironmentByKey( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - environmentKey, + console.error( + 'MCP getSdkKeys params:', + JSON.stringify({ environmentKey, keyType }, null, 2), ) - const sdkKeys = environment.sdkKeys + try { + this.auth.requireAuth() + this.auth.requireProject() + + const environment = await fetchEnvironmentByKey( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + environmentKey, + ) - if (keyType) { - return { - [keyType]: sdkKeys[keyType], + const sdkKeys = environment.sdkKeys + + let result + if (keyType) { + result = { + [keyType]: sdkKeys[keyType], + } + } else { + result = { + mobile: sdkKeys.mobile, + server: sdkKeys.server, + client: sdkKeys.client, + } } - } - return { - mobile: sdkKeys.mobile, - server: sdkKeys.server, - client: sdkKeys.client, + console.error( + 'MCP getSdkKeys result:', + JSON.stringify(result, null, 2), + ) + return result + } catch (error) { + console.error( + 'MCP getSdkKeys error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + throw ensureError(error) } } async enableTargeting(featureKey: string, environmentKey: string) { - this.auth.requireAuth() - this.auth.requireProject() - - return await enableTargeting( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - featureKey, - environmentKey, + console.error( + 'MCP enableTargeting params:', + JSON.stringify({ featureKey, environmentKey }, null, 2), ) + + try { + this.auth.requireAuth() + this.auth.requireProject() + + const result = await enableTargeting( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + featureKey, + environmentKey, + ) + console.error( + 'MCP enableTargeting result:', + JSON.stringify(result, null, 2), + ) + return result + } catch (error) { + console.error( + 'MCP enableTargeting error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + throw ensureError(error) + } } async disableTargeting(featureKey: string, environmentKey: string) { - this.auth.requireAuth() - this.auth.requireProject() - - return await disableTargeting( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - featureKey, - environmentKey, + console.error( + 'MCP disableTargeting params:', + JSON.stringify({ featureKey, environmentKey }, null, 2), ) + + try { + this.auth.requireAuth() + this.auth.requireProject() + + const result = await disableTargeting( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + featureKey, + environmentKey, + ) + console.error( + 'MCP disableTargeting result:', + JSON.stringify(result, null, 2), + ) + return result + } catch (error) { + console.error( + 'MCP disableTargeting error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + throw ensureError(error) + } } async createFeature(args: { @@ -139,34 +211,52 @@ export class DevCycleApiClient { type?: 'release' | 'experiment' | 'permission' | 'ops' interactive?: boolean }) { - this.auth.requireAuth() - this.auth.requireProject() + console.error( + 'MCP createFeature params:', + JSON.stringify(args, null, 2), + ) - if (args.interactive) { - // For interactive mode, we would need to implement prompts - // For now, return an error asking for explicit parameters - throw new Error( - 'Interactive mode not yet supported in MCP. Please provide explicit parameters: key, name, description, type', - ) - } + try { + this.auth.requireAuth() + this.auth.requireProject() - if (!args.key || !args.name) { - throw new Error( - 'Feature key and name are required when not using interactive mode', - ) - } + if (args.interactive) { + // For interactive mode, we would need to implement prompts + // For now, return an error asking for explicit parameters + throw new Error( + 'Interactive mode not yet supported in MCP. Please provide explicit parameters: key, name, description, type', + ) + } - const featureData = { - key: args.key, - name: args.name, - description: args.description || '', - type: args.type || 'release', - } + if (!args.key || !args.name) { + throw new Error( + 'Feature key and name are required when not using interactive mode', + ) + } - return await createFeature( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - featureData, - ) + const featureData = { + key: args.key, + name: args.name, + description: args.description || '', + type: args.type || 'release', + } + + const result = await createFeature( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + featureData, + ) + console.error( + 'MCP createFeature result:', + JSON.stringify(result, null, 2), + ) + return result + } catch (error) { + console.error( + 'MCP createFeature error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + throw ensureError(error) + } } } From 5e4c60ce5a90a518d269c16a31ab2a9a59f481e8 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 7 Jul 2025 21:15:10 -0400 Subject: [PATCH 12/74] feat: add zod types to tool calls --- src/mcp/server.ts | 85 ++++++++++++++++++++++++++++---------------- src/mcp/types.ts | 45 +++++++++++++++++++++++ src/mcp/utils/api.ts | 60 +++++++++++++------------------ 3 files changed, 123 insertions(+), 67 deletions(-) create mode 100644 src/mcp/types.ts diff --git a/src/mcp/server.ts b/src/mcp/server.ts index eefb975a2..45b539685 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -6,6 +6,20 @@ import { import { DevCycleAuth } from './utils/auth' import { DevCycleApiClient } from './utils/api' import Writer from '../ui/writer' +import { + ListFeaturesArgsSchema, + ListVariablesArgsSchema, + GetSdkKeysArgsSchema, + EnableTargetingArgsSchema, + DisableTargetingArgsSchema, + CreateFeatureArgsSchema, + type ListFeaturesArgs, + type ListVariablesArgs, + type GetSdkKeysArgs, + type EnableTargetingArgs, + type DisableTargetingArgs, + type CreateFeatureArgs, +} from './types' export class DevCycleMCPServer { private auth: DevCycleAuth @@ -190,30 +204,48 @@ export class DevCycleMCPServer { this.server.setRequestHandler( CallToolRequestSchema, - async (request: any) => { + async (request) => { const { name, arguments: args } = request.params try { let result switch (name) { - case 'list_features': - result = await this.listFeatures(args) + case 'list_features': { + const validatedArgs = + ListFeaturesArgsSchema.parse(args) + result = await this.listFeatures(validatedArgs) break - case 'list_variables': - result = await this.listVariables(args) + } + case 'list_variables': { + const validatedArgs = + ListVariablesArgsSchema.parse(args) + result = await this.listVariables(validatedArgs) break - case 'get_sdk_keys': - result = await this.getSdkKeys(args) + } + case 'get_sdk_keys': { + const validatedArgs = + GetSdkKeysArgsSchema.parse(args) + result = await this.getSdkKeys(validatedArgs) break - case 'enable_targeting': - result = await this.enableTargeting(args) + } + case 'enable_targeting': { + const validatedArgs = + EnableTargetingArgsSchema.parse(args) + result = await this.enableTargeting(validatedArgs) break - case 'disable_targeting': - result = await this.disableTargeting(args) + } + case 'disable_targeting': { + const validatedArgs = + DisableTargetingArgsSchema.parse(args) + result = await this.disableTargeting(validatedArgs) break - case 'create_feature': - result = await this.createFeature(args) + } + case 'create_feature': { + const validatedArgs = + CreateFeatureArgsSchema.parse(args) + result = await this.createFeature(validatedArgs) break + } default: throw new Error(`Unknown tool: ${name}`) } @@ -244,7 +276,7 @@ export class DevCycleMCPServer { } // Tool implementations - private async listFeatures(args: any) { + private async listFeatures(args: ListFeaturesArgs) { try { const features = await this.apiClient.listFeatures(args) return { @@ -261,7 +293,7 @@ export class DevCycleMCPServer { } } - private async listVariables(args: any) { + private async listVariables(args: ListVariablesArgs) { const variables = await this.apiClient.listVariables(args) return { content: [ @@ -273,11 +305,8 @@ export class DevCycleMCPServer { } } - private async getSdkKeys(args: any) { - const keys = await this.apiClient.getSdkKeys( - args.environment_key, - args.key_type, - ) + private async getSdkKeys(args: GetSdkKeysArgs) { + const keys = await this.apiClient.getSdkKeys(args) return { content: [ { @@ -288,11 +317,8 @@ export class DevCycleMCPServer { } } - private async enableTargeting(args: any) { - const result = await this.apiClient.enableTargeting( - args.feature_key, - args.environment_key, - ) + private async enableTargeting(args: EnableTargetingArgs) { + const result = await this.apiClient.enableTargeting(args) return { content: [ { @@ -303,11 +329,8 @@ export class DevCycleMCPServer { } } - private async disableTargeting(args: any) { - const result = await this.apiClient.disableTargeting( - args.feature_key, - args.environment_key, - ) + private async disableTargeting(args: DisableTargetingArgs) { + const result = await this.apiClient.disableTargeting(args) return { content: [ { @@ -318,7 +341,7 @@ export class DevCycleMCPServer { } } - private async createFeature(args: any) { + private async createFeature(args: CreateFeatureArgs) { const result = await this.apiClient.createFeature(args) return { content: [ diff --git a/src/mcp/types.ts b/src/mcp/types.ts new file mode 100644 index 000000000..3f395ae5e --- /dev/null +++ b/src/mcp/types.ts @@ -0,0 +1,45 @@ +import { z } from 'zod' + +// Zod schemas for MCP tool arguments +export const ListFeaturesArgsSchema = z.object({ + search: z.string().optional(), + page: z.number().optional(), + per_page: z.number().optional(), +}) + +export const ListVariablesArgsSchema = z.object({ + search: z.string().optional(), + page: z.number().optional(), + per_page: z.number().optional(), +}) + +export const GetSdkKeysArgsSchema = z.object({ + environment_key: z.string(), + key_type: z.enum(['mobile', 'server', 'client']).optional(), +}) + +export const EnableTargetingArgsSchema = z.object({ + feature_key: z.string(), + environment_key: z.string(), +}) + +export const DisableTargetingArgsSchema = z.object({ + feature_key: z.string(), + environment_key: z.string(), +}) + +export const CreateFeatureArgsSchema = z.object({ + key: z.string().optional(), + name: z.string().optional(), + description: z.string().optional(), + type: z.enum(['release', 'experiment', 'permission', 'ops']).optional(), + interactive: z.boolean().optional(), +}) + +// Type inference helpers +export type ListFeaturesArgs = z.infer<typeof ListFeaturesArgsSchema> +export type ListVariablesArgs = z.infer<typeof ListVariablesArgsSchema> +export type GetSdkKeysArgs = z.infer<typeof GetSdkKeysArgsSchema> +export type EnableTargetingArgs = z.infer<typeof EnableTargetingArgsSchema> +export type DisableTargetingArgs = z.infer<typeof DisableTargetingArgsSchema> +export type CreateFeatureArgs = z.infer<typeof CreateFeatureArgsSchema> diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index 5bf42e1cc..4f792a799 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -3,6 +3,14 @@ import { fetchFeatures, createFeature } from '../../api/features' import { fetchVariables } from '../../api/variables' import { fetchEnvironmentByKey } from '../../api/environments' import { enableTargeting, disableTargeting } from '../../api/targeting' +import type { + ListFeaturesArgs, + ListVariablesArgs, + GetSdkKeysArgs, + EnableTargetingArgs, + DisableTargetingArgs, + CreateFeatureArgs, +} from '../types' function getErrorMessage(error: unknown): string { if (error instanceof Error) { @@ -21,11 +29,7 @@ function ensureError(error: unknown): Error { export class DevCycleApiClient { constructor(private auth: DevCycleAuth) {} - async listFeatures(args: { - search?: string - page?: number - per_page?: number - }) { + async listFeatures(args: ListFeaturesArgs) { console.error('MCP listFeatures params:', JSON.stringify(args, null, 2)) try { @@ -57,11 +61,7 @@ export class DevCycleApiClient { } } - async listVariables(args: { - search?: string - page?: number - per_page?: number - }) { + async listVariables(args: ListVariablesArgs) { console.error( 'MCP listVariables params:', JSON.stringify(args, null, 2), @@ -96,14 +96,8 @@ export class DevCycleApiClient { } } - async getSdkKeys( - environmentKey: string, - keyType?: 'mobile' | 'server' | 'client', - ) { - console.error( - 'MCP getSdkKeys params:', - JSON.stringify({ environmentKey, keyType }, null, 2), - ) + async getSdkKeys(args: GetSdkKeysArgs) { + console.error('MCP getSdkKeys params:', JSON.stringify(args, null, 2)) try { this.auth.requireAuth() @@ -112,15 +106,15 @@ export class DevCycleApiClient { const environment = await fetchEnvironmentByKey( this.auth.getAuthToken(), this.auth.getProjectKey(), - environmentKey, + args.environment_key, ) const sdkKeys = environment.sdkKeys let result - if (keyType) { + if (args.key_type) { result = { - [keyType]: sdkKeys[keyType], + [args.key_type]: sdkKeys[args.key_type], } } else { result = { @@ -144,10 +138,10 @@ export class DevCycleApiClient { } } - async enableTargeting(featureKey: string, environmentKey: string) { + async enableTargeting(args: EnableTargetingArgs) { console.error( 'MCP enableTargeting params:', - JSON.stringify({ featureKey, environmentKey }, null, 2), + JSON.stringify(args, null, 2), ) try { @@ -157,8 +151,8 @@ export class DevCycleApiClient { const result = await enableTargeting( this.auth.getAuthToken(), this.auth.getProjectKey(), - featureKey, - environmentKey, + args.feature_key, + args.environment_key, ) console.error( 'MCP enableTargeting result:', @@ -174,10 +168,10 @@ export class DevCycleApiClient { } } - async disableTargeting(featureKey: string, environmentKey: string) { + async disableTargeting(args: DisableTargetingArgs) { console.error( 'MCP disableTargeting params:', - JSON.stringify({ featureKey, environmentKey }, null, 2), + JSON.stringify(args, null, 2), ) try { @@ -187,8 +181,8 @@ export class DevCycleApiClient { const result = await disableTargeting( this.auth.getAuthToken(), this.auth.getProjectKey(), - featureKey, - environmentKey, + args.feature_key, + args.environment_key, ) console.error( 'MCP disableTargeting result:', @@ -204,13 +198,7 @@ export class DevCycleApiClient { } } - async createFeature(args: { - key?: string - name?: string - description?: string - type?: 'release' | 'experiment' | 'permission' | 'ops' - interactive?: boolean - }) { + async createFeature(args: CreateFeatureArgs) { console.error( 'MCP createFeature params:', JSON.stringify(args, null, 2), From ae3c68bb1b12042b96200e0c95451d3e62607f48 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 7 Jul 2025 21:42:46 -0400 Subject: [PATCH 13/74] chore: add list_environments tool call --- src/mcp/server.ts | 53 ++++++++++++++++++++++++++++++++++++++++++++ src/mcp/utils/api.ts | 31 +++++++++++++++++++++++++- 2 files changed, 83 insertions(+), 1 deletion(-) diff --git a/src/mcp/server.ts b/src/mcp/server.ts index 45b539685..ab0b30829 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -103,6 +103,43 @@ export class DevCycleMCPServer { }, }, }, + { + name: 'list_environments', + description: 'List environments in the current project', + inputSchema: { + type: 'object', + properties: { + search: { + type: 'string', + description: + 'Search query to filter environments', + }, + page: { + type: 'number', + description: 'Page number (default: 1)', + }, + per_page: { + type: 'number', + description: + 'Number of items per page (default: 100)', + }, + sort_by: { + type: 'string', + description: + 'Field to sort by (default: createdAt)', + }, + sort_order: { + type: 'string', + enum: ['asc', 'desc'], + description: 'Sort order (default: desc)', + }, + created_by: { + type: 'string', + description: 'Filter by creator user ID', + }, + }, + }, + }, { name: 'get_sdk_keys', description: 'Get SDK keys for an environment', @@ -222,6 +259,10 @@ export class DevCycleMCPServer { result = await this.listVariables(validatedArgs) break } + case 'list_environments': { + result = await this.listEnvironments() + break + } case 'get_sdk_keys': { const validatedArgs = GetSdkKeysArgsSchema.parse(args) @@ -305,6 +346,18 @@ export class DevCycleMCPServer { } } + private async listEnvironments() { + const environments = await this.apiClient.listEnvironments() + return { + content: [ + { + type: 'text', + text: JSON.stringify(environments, null, 2), + }, + ], + } + } + private async getSdkKeys(args: GetSdkKeysArgs) { const keys = await this.apiClient.getSdkKeys(args) return { diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index 4f792a799..f9dbd83fe 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -1,7 +1,10 @@ import { DevCycleAuth } from './auth' import { fetchFeatures, createFeature } from '../../api/features' import { fetchVariables } from '../../api/variables' -import { fetchEnvironmentByKey } from '../../api/environments' +import { + fetchEnvironmentByKey, + fetchEnvironments, +} from '../../api/environments' import { enableTargeting, disableTargeting } from '../../api/targeting' import type { ListFeaturesArgs, @@ -96,6 +99,32 @@ export class DevCycleApiClient { } } + async listEnvironments() { + console.error('MCP listEnvironments') + + try { + this.auth.requireAuth() + this.auth.requireProject() + + const authToken = this.auth.getAuthToken() + const projectKey = this.auth.getProjectKey() + + const result = await fetchEnvironments(authToken, projectKey) + + console.error( + 'MCP listEnvironments result:', + JSON.stringify(result, null, 2), + ) + return result + } catch (error) { + console.error( + 'MCP listEnvironments error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + throw ensureError(error) + } + } + async getSdkKeys(args: GetSdkKeysArgs) { console.error('MCP getSdkKeys params:', JSON.stringify(args, null, 2)) From 026a97180e5077979dbd91ce0bbcfb5cc74e911e Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 7 Jul 2025 21:48:09 -0400 Subject: [PATCH 14/74] chore: cleanup server.ts --- src/mcp/server.ts | 129 ++++++++++++++++------------------------------ 1 file changed, 45 insertions(+), 84 deletions(-) diff --git a/src/mcp/server.ts b/src/mcp/server.ts index ab0b30829..c75fbe5fb 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -250,41 +250,71 @@ export class DevCycleMCPServer { case 'list_features': { const validatedArgs = ListFeaturesArgsSchema.parse(args) - result = await this.listFeatures(validatedArgs) + result = await this.executeApiCall( + () => + this.apiClient.listFeatures(validatedArgs), + 'listing features', + ) break } case 'list_variables': { const validatedArgs = ListVariablesArgsSchema.parse(args) - result = await this.listVariables(validatedArgs) + result = await this.executeApiCall( + () => + this.apiClient.listVariables(validatedArgs), + 'listing variables', + ) break } case 'list_environments': { - result = await this.listEnvironments() + result = await this.executeApiCall( + () => this.apiClient.listEnvironments(), + 'listing environments', + ) break } case 'get_sdk_keys': { const validatedArgs = GetSdkKeysArgsSchema.parse(args) - result = await this.getSdkKeys(validatedArgs) + result = await this.executeApiCall( + () => this.apiClient.getSdkKeys(validatedArgs), + 'getting SDK keys', + ) break } case 'enable_targeting': { const validatedArgs = EnableTargetingArgsSchema.parse(args) - result = await this.enableTargeting(validatedArgs) + result = await this.executeApiCall( + () => + this.apiClient.enableTargeting( + validatedArgs, + ), + 'enabling targeting', + ) break } case 'disable_targeting': { const validatedArgs = DisableTargetingArgsSchema.parse(args) - result = await this.disableTargeting(validatedArgs) + result = await this.executeApiCall( + () => + this.apiClient.disableTargeting( + validatedArgs, + ), + 'disabling targeting', + ) break } case 'create_feature': { const validatedArgs = CreateFeatureArgsSchema.parse(args) - result = await this.createFeature(validatedArgs) + result = await this.executeApiCall( + () => + this.apiClient.createFeature(validatedArgs), + 'creating feature', + ) break } default: @@ -316,93 +346,24 @@ export class DevCycleMCPServer { } } - // Tool implementations - private async listFeatures(args: ListFeaturesArgs) { + // Generic helper method for tool responses + private async executeApiCall<T>( + apiCall: () => Promise<T>, + errorContext: string, + ) { try { - const features = await this.apiClient.listFeatures(args) + const result = await apiCall() return { content: [ { type: 'text', - text: JSON.stringify(features, null, 2), + text: JSON.stringify(result, null, 2), }, ], } } catch (error) { - console.error('Error listing features:', error) + console.error(`Error ${errorContext}:`, error) throw error } } - - private async listVariables(args: ListVariablesArgs) { - const variables = await this.apiClient.listVariables(args) - return { - content: [ - { - type: 'text', - text: JSON.stringify(variables, null, 2), - }, - ], - } - } - - private async listEnvironments() { - const environments = await this.apiClient.listEnvironments() - return { - content: [ - { - type: 'text', - text: JSON.stringify(environments, null, 2), - }, - ], - } - } - - private async getSdkKeys(args: GetSdkKeysArgs) { - const keys = await this.apiClient.getSdkKeys(args) - return { - content: [ - { - type: 'text', - text: JSON.stringify(keys, null, 2), - }, - ], - } - } - - private async enableTargeting(args: EnableTargetingArgs) { - const result = await this.apiClient.enableTargeting(args) - return { - content: [ - { - type: 'text', - text: JSON.stringify(result, null, 2), - }, - ], - } - } - - private async disableTargeting(args: DisableTargetingArgs) { - const result = await this.apiClient.disableTargeting(args) - return { - content: [ - { - type: 'text', - text: JSON.stringify(result, null, 2), - }, - ], - } - } - - private async createFeature(args: CreateFeatureArgs) { - const result = await this.apiClient.createFeature(args) - return { - content: [ - { - type: 'text', - text: JSON.stringify(result, null, 2), - }, - ], - } - } } From 8af99d3eca70860acc9159b1ef42e5067dc7aa6f Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 7 Jul 2025 21:49:21 -0400 Subject: [PATCH 15/74] chore: cleanup list environments --- src/mcp/utils/api.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index f9dbd83fe..ace44ef10 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -106,10 +106,10 @@ export class DevCycleApiClient { this.auth.requireAuth() this.auth.requireProject() - const authToken = this.auth.getAuthToken() - const projectKey = this.auth.getProjectKey() - - const result = await fetchEnvironments(authToken, projectKey) + const result = await fetchEnvironments( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + ) console.error( 'MCP listEnvironments result:', From da242ad4c5db149952c78c0532aa16d87a7523fe Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 7 Jul 2025 21:59:21 -0400 Subject: [PATCH 16/74] feat: implement get_current_project tool call --- src/mcp/server.ts | 15 +++++++++++++++ src/mcp/utils/api.ts | 27 +++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/src/mcp/server.ts b/src/mcp/server.ts index c75fbe5fb..0d0403142 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -235,6 +235,14 @@ export class DevCycleMCPServer { }, }, }, + { + name: 'get_current_project', + description: 'Get the currently selected project', + inputSchema: { + type: 'object', + properties: {}, + }, + }, ], } }) @@ -317,6 +325,13 @@ export class DevCycleMCPServer { ) break } + case 'get_current_project': { + result = await this.executeApiCall( + () => this.apiClient.getCurrentProject(), + 'getting current project', + ) + break + } default: throw new Error(`Unknown tool: ${name}`) } diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index ace44ef10..e186cbe90 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -5,6 +5,7 @@ import { fetchEnvironmentByKey, fetchEnvironments, } from '../../api/environments' +import { fetchProject } from '../../api/projects' import { enableTargeting, disableTargeting } from '../../api/targeting' import type { ListFeaturesArgs, @@ -276,4 +277,30 @@ export class DevCycleApiClient { throw ensureError(error) } } + + async getCurrentProject() { + console.error('MCP getCurrentProject') + + try { + this.auth.requireAuth() + this.auth.requireProject() + + const result = await fetchProject( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + ) + + console.error( + 'MCP getCurrentProject result:', + JSON.stringify(result, null, 2), + ) + return result + } catch (error) { + console.error( + 'MCP getCurrentProject error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + throw ensureError(error) + } + } } From de0e8b00340b429b37a3b5a825766db70d7a7e44 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 11:46:28 -0400 Subject: [PATCH 17/74] feat: add list_projects tool call --- docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md | 28 ++++++++++++- src/api/projects.ts | 18 +++++++- src/mcp/server.ts | 61 +++++++++++++++++++++++++++- src/mcp/types.ts | 27 ++++++++++-- src/mcp/utils/api.ts | 32 ++++++++++++++- 5 files changed, 155 insertions(+), 11 deletions(-) diff --git a/docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md b/docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md index fc800938d..9574a32d3 100644 --- a/docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md +++ b/docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md @@ -5,6 +5,7 @@ This document provides a quick reference of all recommended MCP abstractions for ## MCP Tools ### 1. Feature Management + - `list_features` - List all features with search/pagination - `get_feature` - Get detailed feature information - `create_feature` - Create new feature flag @@ -12,6 +13,7 @@ This document provides a quick reference of all recommended MCP abstractions for - `delete_feature` - Delete a feature ### 2. Variable Management + - `list_variables` - List all variables - `get_variable` - Get variable details - `create_variable` - Create new variable @@ -19,12 +21,14 @@ This document provides a quick reference of all recommended MCP abstractions for - `delete_variable` - Delete a variable ### 3. Variation Management + - `list_variations` - List variations for a feature - `create_variation` - Create new variation - `update_variation` - Update variation properties - `get_variation` - Get specific variation details ### 4. Targeting Management + - `get_targeting_rules` - Get targeting for feature/environment - `enable_targeting` - Enable targeting for environment - `disable_targeting` - Disable targeting for environment @@ -34,6 +38,7 @@ This document provides a quick reference of all recommended MCP abstractions for - `validate_targeting_rule` - Validate targeting before applying ### 5. Code Analysis + - `analyze_variable_usage` - Comprehensive usage scanning with language detection - `generate_usage_report` - Format usage analysis for documentation - `cleanup_variable` - Replace variable with static value @@ -42,6 +47,7 @@ This document provides a quick reference of all recommended MCP abstractions for - `find_unknown_variables` - Identify undefined variables in code ### 6. Environment Management + - `list_environments` - List project environments - `get_environment` - Get environment details - `create_environment` - Create new environment @@ -50,6 +56,7 @@ This document provides a quick reference of all recommended MCP abstractions for - `get_sdk_keys` - Retrieve SDK keys for environment ### 7. Project & Organization + - `list_projects` - List available projects - `get_current_project` - Get current project - `select_project` - Switch projects @@ -57,34 +64,41 @@ This document provides a quick reference of all recommended MCP abstractions for - `select_organization` - Switch organizations ### 8. Override Management + - `list_overrides` - List current overrides - `set_override` - Set self-targeting override - `clear_overrides` - Clear overrides - `get_override` - Get specific override details ### 9. Identity Management + - `get_identity` - Get current DevCycle identity - `update_identity` - Update identity for testing ### 10. Type Generation + - `generate_typescript_types` - Generate TypeScript definitions ### 11. Analytics + - `get_feature_usage_metrics` - Usage statistics - `get_variation_distribution` - Variation serve distribution ## MCP Resources ### 1. Configuration + - `devcycle://config/repo` - Repository configuration - `devcycle://config/auth` - Auth status ### 2. Project Data + - `devcycle://project/features` - All features - `devcycle://project/variables` - All variables - `devcycle://project/environments` - All environments ### 3. Analysis + - `devcycle://analysis/usages` - Latest usage scan - `devcycle://analysis/types` - Generated types - `devcycle://analysis/unknown-variables` - Undefined variables @@ -92,48 +106,58 @@ This document provides a quick reference of all recommended MCP abstractions for - `devcycle://analysis/variable-aliases` - Variable mappings ### 4. Targeting + - `devcycle://targeting/rules/{feature}` - Feature targeting rules - `devcycle://targeting/active-rules` - All active rules ### 5. Overrides + - `devcycle://overrides/current` - Active overrides - `devcycle://overrides/available` - Available features ### 6. Environment + - `devcycle://environments/sdk-keys` - All SDK keys - `devcycle://environments/comparison` - Environment diff ### 7. Git Integration + - `devcycle://git/feature-changes` - Recent changes - `devcycle://git/pr-analysis` - PR flag analysis ## MCP Prompts ### 1. Feature Management + - `create_feature_flag` - Guided feature creation - `setup_targeting` - Configure targeting rules - `plan_progressive_rollout` - Phased rollout strategy - `create_killswitch` - Emergency rollback setup -### 2. Code Integration +### 2. Code Integration + - `implement_feature_flag` - Generate implementation code - `cleanup_removed_flags` - Safe flag removal - `refactor_flag_usage` - Best practices refactoring ### 3. Analysis & Review + - `analyze_feature_usage` - Comprehensive usage analysis - `review_pr_flags` - PR review checklist - `find_stale_flags` - Identify removable flags ### 4. Testing + - `setup_testing_overrides` - QA testing configuration - `create_test_matrix` - Test case generation ### 5. Documentation + - `document_feature_flags` - Auto-generate docs - `create_flag_runbook` - Operational procedures ### 6. Migration + - `migrate_feature_flags` - Project/environment migration ## Priority Implementation Order @@ -143,4 +167,4 @@ This document provides a quick reference of all recommended MCP abstractions for 3. **Targeting & Overrides** - Essential for testing 4. **Resources** - Read-only data access 5. **Prompts** - AI-guided workflows -6. **Advanced Analytics** - Usage metrics and insights \ No newline at end of file +6. **Advanced Analytics** - Usage metrics and insights diff --git a/src/api/projects.ts b/src/api/projects.ts index 74a7b5c68..2569312c3 100644 --- a/src/api/projects.ts +++ b/src/api/projects.ts @@ -19,10 +19,24 @@ export class CreateProjectParams { export class GetProjectsParams { @IsString() @IsOptional() - sortBy: string + sortBy?: string @IsOptional() - sortOrder: 'asc' | 'desc' + sortOrder?: 'asc' | 'desc' + + @IsString() + @IsOptional() + search?: string + + @IsString() + @IsOptional() + createdBy?: string + + @IsOptional() + page?: number + + @IsOptional() + perPage?: number } const BASE_URL = '/v1/projects' diff --git a/src/mcp/server.ts b/src/mcp/server.ts index 0d0403142..511013a0a 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -19,6 +19,7 @@ import { type EnableTargetingArgs, type DisableTargetingArgs, type CreateFeatureArgs, + ListProjectsArgsSchema, } from './types' export class DevCycleMCPServer { @@ -75,7 +76,7 @@ export class DevCycleMCPServer { per_page: { type: 'number', description: - 'Number of items per page (default: 10)', + 'Number of items per page (default: 100, max: 1000)', }, }, }, @@ -98,7 +99,7 @@ export class DevCycleMCPServer { per_page: { type: 'number', description: - 'Number of items per page (default: 10)', + 'Number of items per page (default: 100, max: 1000)', }, }, }, @@ -140,6 +141,52 @@ export class DevCycleMCPServer { }, }, }, + { + name: 'list_projects', + description: + 'List all projects in the current organization', + inputSchema: { + type: 'object', + properties: { + sort_by: { + type: 'string', + enum: [ + 'createdAt', + 'updatedAt', + 'name', + 'key', + 'createdBy', + 'propertyKey', + ], + description: + 'Field to sort by (default: createdAt)', + }, + sort_order: { + type: 'string', + enum: ['asc', 'desc'], + description: 'Sort order (default: desc)', + }, + search: { + type: 'string', + description: + 'Search query to filter projects (minimum 3 characters)', + }, + created_by: { + type: 'string', + description: 'Filter by creator user ID', + }, + page: { + type: 'number', + description: 'Page number (default: 1)', + }, + per_page: { + type: 'number', + description: + 'Number of items per page (default: 100, max: 1000)', + }, + }, + }, + }, { name: 'get_sdk_keys', description: 'Get SDK keys for an environment', @@ -282,6 +329,16 @@ export class DevCycleMCPServer { ) break } + case 'list_projects': { + const validatedArgs = + ListProjectsArgsSchema.parse(args) + result = await this.executeApiCall( + () => + this.apiClient.listProjects(validatedArgs), + 'listing projects', + ) + break + } case 'get_sdk_keys': { const validatedArgs = GetSdkKeysArgsSchema.parse(args) diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 3f395ae5e..a5f80fea0 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -3,14 +3,32 @@ import { z } from 'zod' // Zod schemas for MCP tool arguments export const ListFeaturesArgsSchema = z.object({ search: z.string().optional(), - page: z.number().optional(), - per_page: z.number().optional(), + page: z.number().min(1).optional(), + per_page: z.number().min(1).max(1000).default(100).optional(), }) export const ListVariablesArgsSchema = z.object({ search: z.string().optional(), - page: z.number().optional(), - per_page: z.number().optional(), + page: z.number().min(1).optional(), + per_page: z.number().min(1).max(1000).default(100).optional(), +}) + +export const ListProjectsArgsSchema = z.object({ + sort_by: z + .enum([ + 'createdAt', + 'updatedAt', + 'name', + 'key', + 'createdBy', + 'propertyKey', + ]) + .optional(), + sort_order: z.enum(['asc', 'desc']).optional(), + search: z.string().min(3).optional(), + created_by: z.string().optional(), + page: z.number().min(1).optional(), + per_page: z.number().min(1).max(1000).default(100).optional(), }) export const GetSdkKeysArgsSchema = z.object({ @@ -39,6 +57,7 @@ export const CreateFeatureArgsSchema = z.object({ // Type inference helpers export type ListFeaturesArgs = z.infer<typeof ListFeaturesArgsSchema> export type ListVariablesArgs = z.infer<typeof ListVariablesArgsSchema> +export type ListProjectsArgs = z.infer<typeof ListProjectsArgsSchema> export type GetSdkKeysArgs = z.infer<typeof GetSdkKeysArgsSchema> export type EnableTargetingArgs = z.infer<typeof EnableTargetingArgsSchema> export type DisableTargetingArgs = z.infer<typeof DisableTargetingArgsSchema> diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index e186cbe90..f0187f1ac 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -5,11 +5,12 @@ import { fetchEnvironmentByKey, fetchEnvironments, } from '../../api/environments' -import { fetchProject } from '../../api/projects' +import { fetchProject, fetchProjects } from '../../api/projects' import { enableTargeting, disableTargeting } from '../../api/targeting' import type { ListFeaturesArgs, ListVariablesArgs, + ListProjectsArgs, GetSdkKeysArgs, EnableTargetingArgs, DisableTargetingArgs, @@ -126,6 +127,35 @@ export class DevCycleApiClient { } } + async listProjects(args: ListProjectsArgs) { + console.error('MCP listProjects params:', JSON.stringify(args, null, 2)) + + try { + this.auth.requireAuth() + + const query: any = {} + if (args.sort_by) query.sortBy = args.sort_by + if (args.sort_order) query.sortOrder = args.sort_order + if (args.search) query.search = args.search + if (args.created_by) query.createdBy = args.created_by + if (args.page) query.page = args.page + if (args.per_page) query.perPage = args.per_page + + const result = await fetchProjects(this.auth.getAuthToken(), query) + console.error( + 'MCP listProjects result:', + JSON.stringify(result, null, 2), + ) + return result + } catch (error) { + console.error( + 'MCP listProjects error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + throw ensureError(error) + } + } + async getSdkKeys(args: GetSdkKeysArgs) { console.error('MCP getSdkKeys params:', JSON.stringify(args, null, 2)) From c1ae639b8cf2bd00bce2ad8d38773b75cda74425 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 11:57:16 -0400 Subject: [PATCH 18/74] feat: add get_self_targeting_identity and update_self_targeting_identity tool calls --- src/mcp/server.ts | 48 ++++++++++++++++++++++++++++++++++++ src/mcp/types.ts | 7 ++++++ src/mcp/utils/api.ts | 58 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 113 insertions(+) diff --git a/src/mcp/server.ts b/src/mcp/server.ts index 511013a0a..6f0c9913f 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -13,12 +13,14 @@ import { EnableTargetingArgsSchema, DisableTargetingArgsSchema, CreateFeatureArgsSchema, + UpdateSelfTargetingIdentityArgsSchema, type ListFeaturesArgs, type ListVariablesArgs, type GetSdkKeysArgs, type EnableTargetingArgs, type DisableTargetingArgs, type CreateFeatureArgs, + type UpdateSelfTargetingIdentityArgs, ListProjectsArgsSchema, } from './types' @@ -290,6 +292,31 @@ export class DevCycleMCPServer { properties: {}, }, }, + { + name: 'get_self_targeting_identity', + description: + 'Get current DevCycle identity for self-targeting', + inputSchema: { + type: 'object', + properties: {}, + }, + }, + { + name: 'update_self_targeting_identity', + description: + 'Update DevCycle identity for self-targeting and overrides', + inputSchema: { + type: 'object', + properties: { + dvc_user_id: { + type: 'string', + description: + 'DevCycle User ID for self-targeting (use null or empty string to clear)', + }, + }, + required: ['dvc_user_id'], + }, + }, ], } }) @@ -389,6 +416,27 @@ export class DevCycleMCPServer { ) break } + case 'get_self_targeting_identity': { + result = await this.executeApiCall( + () => this.apiClient.getSelfTargetingIdentity(), + 'getting self-targeting identity', + ) + break + } + case 'update_self_targeting_identity': { + const validatedArgs = + UpdateSelfTargetingIdentityArgsSchema.parse( + args, + ) + result = await this.executeApiCall( + () => + this.apiClient.updateSelfTargetingIdentity( + validatedArgs, + ), + 'updating self-targeting identity', + ) + break + } default: throw new Error(`Unknown tool: ${name}`) } diff --git a/src/mcp/types.ts b/src/mcp/types.ts index a5f80fea0..d6dcb82a1 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -54,6 +54,10 @@ export const CreateFeatureArgsSchema = z.object({ interactive: z.boolean().optional(), }) +export const UpdateSelfTargetingIdentityArgsSchema = z.object({ + dvc_user_id: z.string().nullable(), +}) + // Type inference helpers export type ListFeaturesArgs = z.infer<typeof ListFeaturesArgsSchema> export type ListVariablesArgs = z.infer<typeof ListVariablesArgsSchema> @@ -62,3 +66,6 @@ export type GetSdkKeysArgs = z.infer<typeof GetSdkKeysArgsSchema> export type EnableTargetingArgs = z.infer<typeof EnableTargetingArgsSchema> export type DisableTargetingArgs = z.infer<typeof DisableTargetingArgsSchema> export type CreateFeatureArgs = z.infer<typeof CreateFeatureArgsSchema> +export type UpdateSelfTargetingIdentityArgs = z.infer< + typeof UpdateSelfTargetingIdentityArgsSchema +> diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index f0187f1ac..9f341fa81 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -7,6 +7,7 @@ import { } from '../../api/environments' import { fetchProject, fetchProjects } from '../../api/projects' import { enableTargeting, disableTargeting } from '../../api/targeting' +import { fetchUserProfile, updateUserProfile } from '../../api/userProfile' import type { ListFeaturesArgs, ListVariablesArgs, @@ -15,6 +16,7 @@ import type { EnableTargetingArgs, DisableTargetingArgs, CreateFeatureArgs, + UpdateSelfTargetingIdentityArgs, } from '../types' function getErrorMessage(error: unknown): string { @@ -333,4 +335,60 @@ export class DevCycleApiClient { throw ensureError(error) } } + + async getSelfTargetingIdentity() { + console.error('MCP getSelfTargetingIdentity') + + try { + this.auth.requireAuth() + this.auth.requireProject() + + const result = await fetchUserProfile( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + ) + + console.error( + 'MCP getSelfTargetingIdentity result:', + JSON.stringify(result, null, 2), + ) + return result + } catch (error) { + console.error( + 'MCP getSelfTargetingIdentity error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + throw ensureError(error) + } + } + + async updateSelfTargetingIdentity(args: UpdateSelfTargetingIdentityArgs) { + console.error( + 'MCP updateSelfTargetingIdentity params:', + JSON.stringify(args, null, 2), + ) + + try { + this.auth.requireAuth() + this.auth.requireProject() + + const result = await updateUserProfile( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + { dvcUserId: args.dvc_user_id }, + ) + + console.error( + 'MCP updateSelfTargetingIdentity result:', + JSON.stringify(result, null, 2), + ) + return result + } catch (error) { + console.error( + 'MCP updateSelfTargetingIdentity error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + throw ensureError(error) + } + } } From a2703c456ecde1724ec01eb98dd40ee1190df427 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 13:28:10 -0400 Subject: [PATCH 19/74] feat: add self_targeting identity and override tools --- src/mcp/server.ts | 95 ++++++++++++++++++++++++++++++++++ src/mcp/types.ts | 17 +++++++ src/mcp/utils/api.ts | 118 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 230 insertions(+) diff --git a/src/mcp/server.ts b/src/mcp/server.ts index 6f0c9913f..e388f9f26 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -14,6 +14,8 @@ import { DisableTargetingArgsSchema, CreateFeatureArgsSchema, UpdateSelfTargetingIdentityArgsSchema, + SetSelfTargetingOverrideArgsSchema, + ClearSelfTargetingOverridesArgsSchema, type ListFeaturesArgs, type ListVariablesArgs, type GetSdkKeysArgs, @@ -21,6 +23,8 @@ import { type DisableTargetingArgs, type CreateFeatureArgs, type UpdateSelfTargetingIdentityArgs, + type SetSelfTargetingOverrideArgs, + type ClearSelfTargetingOverridesArgs, ListProjectsArgsSchema, } from './types' @@ -317,6 +321,63 @@ export class DevCycleMCPServer { required: ['dvc_user_id'], }, }, + { + name: 'list_self_targeting_overrides', + description: + 'List all self-targeting overrides for the current project', + inputSchema: { + type: 'object', + properties: {}, + }, + }, + { + name: 'set_self_targeting_override', + description: + 'Set a self-targeting override for a feature variation', + inputSchema: { + type: 'object', + properties: { + feature_key: { + type: 'string', + description: 'The key of the feature', + }, + environment_key: { + type: 'string', + description: 'The key of the environment', + }, + variation_key: { + type: 'string', + description: + 'The key of the variation to serve', + }, + }, + required: [ + 'feature_key', + 'environment_key', + 'variation_key', + ], + }, + }, + { + name: 'clear_self_targeting_overrides', + description: + 'Clear self-targeting overrides (all or specific feature/environment)', + inputSchema: { + type: 'object', + properties: { + feature_key: { + type: 'string', + description: + 'The key of the feature (optional - if provided with environment_key, clears specific override)', + }, + environment_key: { + type: 'string', + description: + 'The key of the environment (optional - if provided with feature_key, clears specific override)', + }, + }, + }, + }, ], } }) @@ -437,6 +498,40 @@ export class DevCycleMCPServer { ) break } + case 'list_self_targeting_overrides': { + result = await this.executeApiCall( + () => + this.apiClient.listSelfTargetingOverrides(), + 'listing self-targeting overrides', + ) + break + } + case 'set_self_targeting_override': { + const validatedArgs = + SetSelfTargetingOverrideArgsSchema.parse(args) + result = await this.executeApiCall( + () => + this.apiClient.setSelfTargetingOverride( + validatedArgs, + ), + 'setting self-targeting override', + ) + break + } + case 'clear_self_targeting_overrides': { + const validatedArgs = + ClearSelfTargetingOverridesArgsSchema.parse( + args, + ) + result = await this.executeApiCall( + () => + this.apiClient.clearSelfTargetingOverrides( + validatedArgs, + ), + 'clearing self-targeting overrides', + ) + break + } default: throw new Error(`Unknown tool: ${name}`) } diff --git a/src/mcp/types.ts b/src/mcp/types.ts index d6dcb82a1..02195fb95 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -58,6 +58,17 @@ export const UpdateSelfTargetingIdentityArgsSchema = z.object({ dvc_user_id: z.string().nullable(), }) +export const SetSelfTargetingOverrideArgsSchema = z.object({ + feature_key: z.string(), + environment_key: z.string(), + variation_key: z.string(), +}) + +export const ClearSelfTargetingOverridesArgsSchema = z.object({ + feature_key: z.string().optional(), + environment_key: z.string().optional(), +}) + // Type inference helpers export type ListFeaturesArgs = z.infer<typeof ListFeaturesArgsSchema> export type ListVariablesArgs = z.infer<typeof ListVariablesArgsSchema> @@ -69,3 +80,9 @@ export type CreateFeatureArgs = z.infer<typeof CreateFeatureArgsSchema> export type UpdateSelfTargetingIdentityArgs = z.infer< typeof UpdateSelfTargetingIdentityArgsSchema > +export type SetSelfTargetingOverrideArgs = z.infer< + typeof SetSelfTargetingOverrideArgsSchema +> +export type ClearSelfTargetingOverridesArgs = z.infer< + typeof ClearSelfTargetingOverridesArgsSchema +> diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index 9f341fa81..63ea49e02 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -8,6 +8,12 @@ import { import { fetchProject, fetchProjects } from '../../api/projects' import { enableTargeting, disableTargeting } from '../../api/targeting' import { fetchUserProfile, updateUserProfile } from '../../api/userProfile' +import { + fetchProjectOverridesForUser, + updateOverride, + deleteAllProjectOverrides, + deleteFeatureOverrides, +} from '../../api/overrides' import type { ListFeaturesArgs, ListVariablesArgs, @@ -17,6 +23,8 @@ import type { DisableTargetingArgs, CreateFeatureArgs, UpdateSelfTargetingIdentityArgs, + SetSelfTargetingOverrideArgs, + ClearSelfTargetingOverridesArgs, } from '../types' function getErrorMessage(error: unknown): string { @@ -391,4 +399,114 @@ export class DevCycleApiClient { throw ensureError(error) } } + + async listSelfTargetingOverrides() { + console.error('MCP listSelfTargetingOverrides') + + try { + this.auth.requireAuth() + this.auth.requireProject() + + const result = await fetchProjectOverridesForUser( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + ) + + console.error( + 'MCP listSelfTargetingOverrides result:', + JSON.stringify(result, null, 2), + ) + return result + } catch (error) { + console.error( + 'MCP listSelfTargetingOverrides error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + throw ensureError(error) + } + } + + async setSelfTargetingOverride(args: SetSelfTargetingOverrideArgs) { + console.error( + 'MCP setSelfTargetingOverride params:', + JSON.stringify(args, null, 2), + ) + + try { + this.auth.requireAuth() + this.auth.requireProject() + + const result = await updateOverride( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + args.feature_key, + { + environment: args.environment_key, + variation: args.variation_key, + }, + ) + + console.error( + 'MCP setSelfTargetingOverride result:', + JSON.stringify(result, null, 2), + ) + return result + } catch (error) { + console.error( + 'MCP setSelfTargetingOverride error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + throw ensureError(error) + } + } + + async clearSelfTargetingOverrides(args: ClearSelfTargetingOverridesArgs) { + console.error( + 'MCP clearSelfTargetingOverrides params:', + JSON.stringify(args, null, 2), + ) + + try { + this.auth.requireAuth() + this.auth.requireProject() + + if (args.feature_key && args.environment_key) { + // Clear specific feature/environment override + const result = await deleteFeatureOverrides( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + args.feature_key, + args.environment_key, + ) + + console.error( + 'MCP clearSelfTargetingOverrides (specific) result:', + JSON.stringify(result, null, 2), + ) + return { + message: `Cleared override for feature '${args.feature_key}' in environment '${args.environment_key}'`, + } + } else { + // Clear all project overrides + const result = await deleteAllProjectOverrides( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + ) + + console.error( + 'MCP clearSelfTargetingOverrides (all) result:', + JSON.stringify(result, null, 2), + ) + return { + message: 'Cleared all overrides for the project', + } + } + } catch (error) { + console.error( + 'MCP clearSelfTargetingOverrides error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + throw ensureError(error) + } + } } From 3be67b0171567442c1696586e2f8e46724f8e293 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 13:56:57 -0400 Subject: [PATCH 20/74] chore: cleanup the tools interfaces, move to /tools folder --- src/mcp/server.ts | 567 +++------------------------- src/mcp/tools/environmentTools.ts | 70 ++++ src/mcp/tools/featureTools.ts | 120 ++++++ src/mcp/tools/projectTools.ts | 78 ++++ src/mcp/tools/selfTargetingTools.ts | 134 +++++++ src/mcp/tools/variableTools.ts | 36 ++ 6 files changed, 497 insertions(+), 508 deletions(-) create mode 100644 src/mcp/tools/environmentTools.ts create mode 100644 src/mcp/tools/featureTools.ts create mode 100644 src/mcp/tools/projectTools.ts create mode 100644 src/mcp/tools/selfTargetingTools.ts create mode 100644 src/mcp/tools/variableTools.ts diff --git a/src/mcp/server.ts b/src/mcp/server.ts index e388f9f26..dda1a3685 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -2,31 +2,55 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js' import { CallToolRequestSchema, ListToolsRequestSchema, + Tool, } from '@modelcontextprotocol/sdk/types.js' import { DevCycleAuth } from './utils/auth' import { DevCycleApiClient } from './utils/api' import Writer from '../ui/writer' import { - ListFeaturesArgsSchema, - ListVariablesArgsSchema, - GetSdkKeysArgsSchema, - EnableTargetingArgsSchema, - DisableTargetingArgsSchema, - CreateFeatureArgsSchema, - UpdateSelfTargetingIdentityArgsSchema, - SetSelfTargetingOverrideArgsSchema, - ClearSelfTargetingOverridesArgsSchema, - type ListFeaturesArgs, - type ListVariablesArgs, - type GetSdkKeysArgs, - type EnableTargetingArgs, - type DisableTargetingArgs, - type CreateFeatureArgs, - type UpdateSelfTargetingIdentityArgs, - type SetSelfTargetingOverrideArgs, - type ClearSelfTargetingOverridesArgs, - ListProjectsArgsSchema, -} from './types' + featureToolDefinitions, + featureToolHandlers, +} from './tools/featureTools' +import { + environmentToolDefinitions, + environmentToolHandlers, +} from './tools/environmentTools' +import { + projectToolDefinitions, + projectToolHandlers, +} from './tools/projectTools' +import { + variableToolDefinitions, + variableToolHandlers, +} from './tools/variableTools' +import { + selfTargetingToolDefinitions, + selfTargetingToolHandlers, +} from './tools/selfTargetingTools' + +// Tool handler function type +export type ToolHandler = ( + args: unknown, + apiClient: DevCycleApiClient, +) => Promise<any> + +// Combine all tool definitions +const allToolDefinitions: Tool[] = [ + ...featureToolDefinitions, + ...environmentToolDefinitions, + ...projectToolDefinitions, + ...variableToolDefinitions, + ...selfTargetingToolDefinitions, +] + +// Combine all tool handlers +const allToolHandlers: Record<string, ToolHandler> = { + ...featureToolHandlers, + ...environmentToolHandlers, + ...projectToolHandlers, + ...variableToolHandlers, + ...selfTargetingToolHandlers, +} export class DevCycleMCPServer { private auth: DevCycleAuth @@ -61,326 +85,9 @@ export class DevCycleMCPServer { } private setupToolHandlers() { - this.server.setRequestHandler(ListToolsRequestSchema, async () => { - return { - tools: [ - { - name: 'list_features', - description: 'List features in the current project', - inputSchema: { - type: 'object', - properties: { - search: { - type: 'string', - description: - 'Search query to filter features', - }, - page: { - type: 'number', - description: 'Page number (default: 1)', - }, - per_page: { - type: 'number', - description: - 'Number of items per page (default: 100, max: 1000)', - }, - }, - }, - }, - { - name: 'list_variables', - description: 'List variables in the current project', - inputSchema: { - type: 'object', - properties: { - search: { - type: 'string', - description: - 'Search query to filter variables', - }, - page: { - type: 'number', - description: 'Page number (default: 1)', - }, - per_page: { - type: 'number', - description: - 'Number of items per page (default: 100, max: 1000)', - }, - }, - }, - }, - { - name: 'list_environments', - description: 'List environments in the current project', - inputSchema: { - type: 'object', - properties: { - search: { - type: 'string', - description: - 'Search query to filter environments', - }, - page: { - type: 'number', - description: 'Page number (default: 1)', - }, - per_page: { - type: 'number', - description: - 'Number of items per page (default: 100)', - }, - sort_by: { - type: 'string', - description: - 'Field to sort by (default: createdAt)', - }, - sort_order: { - type: 'string', - enum: ['asc', 'desc'], - description: 'Sort order (default: desc)', - }, - created_by: { - type: 'string', - description: 'Filter by creator user ID', - }, - }, - }, - }, - { - name: 'list_projects', - description: - 'List all projects in the current organization', - inputSchema: { - type: 'object', - properties: { - sort_by: { - type: 'string', - enum: [ - 'createdAt', - 'updatedAt', - 'name', - 'key', - 'createdBy', - 'propertyKey', - ], - description: - 'Field to sort by (default: createdAt)', - }, - sort_order: { - type: 'string', - enum: ['asc', 'desc'], - description: 'Sort order (default: desc)', - }, - search: { - type: 'string', - description: - 'Search query to filter projects (minimum 3 characters)', - }, - created_by: { - type: 'string', - description: 'Filter by creator user ID', - }, - page: { - type: 'number', - description: 'Page number (default: 1)', - }, - per_page: { - type: 'number', - description: - 'Number of items per page (default: 100, max: 1000)', - }, - }, - }, - }, - { - name: 'get_sdk_keys', - description: 'Get SDK keys for an environment', - inputSchema: { - type: 'object', - properties: { - environment_key: { - type: 'string', - description: 'The key of the environment', - }, - key_type: { - type: 'string', - enum: ['mobile', 'server', 'client'], - description: - 'The type of SDK key to retrieve', - }, - }, - required: ['environment_key'], - }, - }, - { - name: 'enable_targeting', - description: - 'Enable targeting for a feature in an environment', - inputSchema: { - type: 'object', - properties: { - feature_key: { - type: 'string', - description: 'The key of the feature', - }, - environment_key: { - type: 'string', - description: 'The key of the environment', - }, - }, - required: ['feature_key', 'environment_key'], - }, - }, - { - name: 'disable_targeting', - description: - 'Disable targeting for a feature in an environment', - inputSchema: { - type: 'object', - properties: { - feature_key: { - type: 'string', - description: 'The key of the feature', - }, - environment_key: { - type: 'string', - description: 'The key of the environment', - }, - }, - required: ['feature_key', 'environment_key'], - }, - }, - { - name: 'create_feature', - description: - 'Create a new feature flag (supports interactive mode)', - inputSchema: { - type: 'object', - properties: { - key: { - type: 'string', - description: 'Unique feature key', - }, - name: { - type: 'string', - description: 'Human-readable feature name', - }, - description: { - type: 'string', - description: 'Feature description', - }, - type: { - type: 'string', - enum: [ - 'release', - 'experiment', - 'permission', - 'ops', - ], - description: 'Feature type', - }, - interactive: { - type: 'boolean', - description: - 'Use interactive mode to prompt for missing fields', - }, - }, - }, - }, - { - name: 'get_current_project', - description: 'Get the currently selected project', - inputSchema: { - type: 'object', - properties: {}, - }, - }, - { - name: 'get_self_targeting_identity', - description: - 'Get current DevCycle identity for self-targeting', - inputSchema: { - type: 'object', - properties: {}, - }, - }, - { - name: 'update_self_targeting_identity', - description: - 'Update DevCycle identity for self-targeting and overrides', - inputSchema: { - type: 'object', - properties: { - dvc_user_id: { - type: 'string', - description: - 'DevCycle User ID for self-targeting (use null or empty string to clear)', - }, - }, - required: ['dvc_user_id'], - }, - }, - { - name: 'list_self_targeting_overrides', - description: - 'List all self-targeting overrides for the current project', - inputSchema: { - type: 'object', - properties: {}, - }, - }, - { - name: 'set_self_targeting_override', - description: - 'Set a self-targeting override for a feature variation', - inputSchema: { - type: 'object', - properties: { - feature_key: { - type: 'string', - description: 'The key of the feature', - }, - environment_key: { - type: 'string', - description: 'The key of the environment', - }, - variation_key: { - type: 'string', - description: - 'The key of the variation to serve', - }, - }, - required: [ - 'feature_key', - 'environment_key', - 'variation_key', - ], - }, - }, - { - name: 'clear_self_targeting_overrides', - description: - 'Clear self-targeting overrides (all or specific feature/environment)', - inputSchema: { - type: 'object', - properties: { - feature_key: { - type: 'string', - description: - 'The key of the feature (optional - if provided with environment_key, clears specific override)', - }, - environment_key: { - type: 'string', - description: - 'The key of the environment (optional - if provided with feature_key, clears specific override)', - }, - }, - }, - }, - ], - } - }) + this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ + tools: allToolDefinitions, + })) this.server.setRequestHandler( CallToolRequestSchema, @@ -388,155 +95,20 @@ export class DevCycleMCPServer { const { name, arguments: args } = request.params try { - let result - switch (name) { - case 'list_features': { - const validatedArgs = - ListFeaturesArgsSchema.parse(args) - result = await this.executeApiCall( - () => - this.apiClient.listFeatures(validatedArgs), - 'listing features', - ) - break - } - case 'list_variables': { - const validatedArgs = - ListVariablesArgsSchema.parse(args) - result = await this.executeApiCall( - () => - this.apiClient.listVariables(validatedArgs), - 'listing variables', - ) - break - } - case 'list_environments': { - result = await this.executeApiCall( - () => this.apiClient.listEnvironments(), - 'listing environments', - ) - break - } - case 'list_projects': { - const validatedArgs = - ListProjectsArgsSchema.parse(args) - result = await this.executeApiCall( - () => - this.apiClient.listProjects(validatedArgs), - 'listing projects', - ) - break - } - case 'get_sdk_keys': { - const validatedArgs = - GetSdkKeysArgsSchema.parse(args) - result = await this.executeApiCall( - () => this.apiClient.getSdkKeys(validatedArgs), - 'getting SDK keys', - ) - break - } - case 'enable_targeting': { - const validatedArgs = - EnableTargetingArgsSchema.parse(args) - result = await this.executeApiCall( - () => - this.apiClient.enableTargeting( - validatedArgs, - ), - 'enabling targeting', - ) - break - } - case 'disable_targeting': { - const validatedArgs = - DisableTargetingArgsSchema.parse(args) - result = await this.executeApiCall( - () => - this.apiClient.disableTargeting( - validatedArgs, - ), - 'disabling targeting', - ) - break - } - case 'create_feature': { - const validatedArgs = - CreateFeatureArgsSchema.parse(args) - result = await this.executeApiCall( - () => - this.apiClient.createFeature(validatedArgs), - 'creating feature', - ) - break - } - case 'get_current_project': { - result = await this.executeApiCall( - () => this.apiClient.getCurrentProject(), - 'getting current project', - ) - break - } - case 'get_self_targeting_identity': { - result = await this.executeApiCall( - () => this.apiClient.getSelfTargetingIdentity(), - 'getting self-targeting identity', - ) - break - } - case 'update_self_targeting_identity': { - const validatedArgs = - UpdateSelfTargetingIdentityArgsSchema.parse( - args, - ) - result = await this.executeApiCall( - () => - this.apiClient.updateSelfTargetingIdentity( - validatedArgs, - ), - 'updating self-targeting identity', - ) - break - } - case 'list_self_targeting_overrides': { - result = await this.executeApiCall( - () => - this.apiClient.listSelfTargetingOverrides(), - 'listing self-targeting overrides', - ) - break - } - case 'set_self_targeting_override': { - const validatedArgs = - SetSelfTargetingOverrideArgsSchema.parse(args) - result = await this.executeApiCall( - () => - this.apiClient.setSelfTargetingOverride( - validatedArgs, - ), - 'setting self-targeting override', - ) - break - } - case 'clear_self_targeting_overrides': { - const validatedArgs = - ClearSelfTargetingOverridesArgsSchema.parse( - args, - ) - result = await this.executeApiCall( - () => - this.apiClient.clearSelfTargetingOverrides( - validatedArgs, - ), - 'clearing self-targeting overrides', - ) - break - } - default: - throw new Error(`Unknown tool: ${name}`) + const handler = allToolHandlers[name] + if (!handler) { + throw new Error(`Unknown tool: ${name}`) } - return result + const result = await handler(args, this.apiClient) + return { + content: [ + { + type: 'text', + text: JSON.stringify(result, null, 2), + }, + ], + } } catch (error) { console.error(`Error in tool handler ${name}:`, error) @@ -560,25 +132,4 @@ export class DevCycleMCPServer { console.error('MCP Server Error:', error) } } - - // Generic helper method for tool responses - private async executeApiCall<T>( - apiCall: () => Promise<T>, - errorContext: string, - ) { - try { - const result = await apiCall() - return { - content: [ - { - type: 'text', - text: JSON.stringify(result, null, 2), - }, - ], - } - } catch (error) { - console.error(`Error ${errorContext}:`, error) - throw error - } - } } diff --git a/src/mcp/tools/environmentTools.ts b/src/mcp/tools/environmentTools.ts new file mode 100644 index 000000000..95a78d838 --- /dev/null +++ b/src/mcp/tools/environmentTools.ts @@ -0,0 +1,70 @@ +import { Tool } from '@modelcontextprotocol/sdk/types.js' +import { DevCycleApiClient } from '../utils/api' +import { GetSdkKeysArgsSchema } from '../types' +import { ToolHandler } from '../server' + +export const environmentToolDefinitions: Tool[] = [ + { + name: 'list_environments', + description: 'List environments in the current project', + inputSchema: { + type: 'object', + properties: { + search: { + type: 'string', + description: 'Search query to filter environments', + }, + page: { + type: 'number', + description: 'Page number (default: 1)', + }, + per_page: { + type: 'number', + description: 'Number of items per page (default: 100)', + }, + sort_by: { + type: 'string', + description: 'Field to sort by (default: createdAt)', + }, + sort_order: { + type: 'string', + enum: ['asc', 'desc'], + description: 'Sort order (default: desc)', + }, + created_by: { + type: 'string', + description: 'Filter by creator user ID', + }, + }, + }, + }, + { + name: 'get_sdk_keys', + description: 'Get SDK keys for an environment', + inputSchema: { + type: 'object', + properties: { + environment_key: { + type: 'string', + description: 'The key of the environment', + }, + key_type: { + type: 'string', + enum: ['mobile', 'server', 'client'], + description: 'The type of SDK key to retrieve', + }, + }, + required: ['environment_key'], + }, + }, +] + +export const environmentToolHandlers: Record<string, ToolHandler> = { + list_environments: async (args: unknown, apiClient: DevCycleApiClient) => { + return await apiClient.listEnvironments() + }, + get_sdk_keys: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = GetSdkKeysArgsSchema.parse(args) + return await apiClient.getSdkKeys(validatedArgs) + }, +} diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts new file mode 100644 index 000000000..04379db9c --- /dev/null +++ b/src/mcp/tools/featureTools.ts @@ -0,0 +1,120 @@ +import { Tool } from '@modelcontextprotocol/sdk/types.js' +import { DevCycleApiClient } from '../utils/api' +import { + ListFeaturesArgsSchema, + CreateFeatureArgsSchema, + EnableTargetingArgsSchema, + DisableTargetingArgsSchema, +} from '../types' +import { ToolHandler } from '../server' + +export const featureToolDefinitions: Tool[] = [ + { + name: 'list_features', + description: 'List features in the current project', + inputSchema: { + type: 'object', + properties: { + search: { + type: 'string', + description: 'Search query to filter features', + }, + page: { + type: 'number', + description: 'Page number (default: 1)', + }, + per_page: { + type: 'number', + description: + 'Number of items per page (default: 100, max: 1000)', + }, + }, + }, + }, + { + name: 'create_feature', + description: 'Create a new feature flag (supports interactive mode)', + inputSchema: { + type: 'object', + properties: { + key: { + type: 'string', + description: 'Unique feature key', + }, + name: { + type: 'string', + description: 'Human-readable feature name', + }, + description: { + type: 'string', + description: 'Feature description', + }, + type: { + type: 'string', + enum: ['release', 'experiment', 'permission', 'ops'], + description: 'Feature type', + }, + interactive: { + type: 'boolean', + description: + 'Use interactive mode to prompt for missing fields', + }, + }, + }, + }, + { + name: 'enable_targeting', + description: 'Enable targeting for a feature in an environment', + inputSchema: { + type: 'object', + properties: { + feature_key: { + type: 'string', + description: 'The key of the feature', + }, + environment_key: { + type: 'string', + description: 'The key of the environment', + }, + }, + required: ['feature_key', 'environment_key'], + }, + }, + { + name: 'disable_targeting', + description: 'Disable targeting for a feature in an environment', + inputSchema: { + type: 'object', + properties: { + feature_key: { + type: 'string', + description: 'The key of the feature', + }, + environment_key: { + type: 'string', + description: 'The key of the environment', + }, + }, + required: ['feature_key', 'environment_key'], + }, + }, +] + +export const featureToolHandlers: Record<string, ToolHandler> = { + list_features: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = ListFeaturesArgsSchema.parse(args) + return await apiClient.listFeatures(validatedArgs) + }, + create_feature: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = CreateFeatureArgsSchema.parse(args) + return await apiClient.createFeature(validatedArgs) + }, + enable_targeting: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = EnableTargetingArgsSchema.parse(args) + return await apiClient.enableTargeting(validatedArgs) + }, + disable_targeting: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = DisableTargetingArgsSchema.parse(args) + return await apiClient.disableTargeting(validatedArgs) + }, +} diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts new file mode 100644 index 000000000..24990b95b --- /dev/null +++ b/src/mcp/tools/projectTools.ts @@ -0,0 +1,78 @@ +import { Tool } from '@modelcontextprotocol/sdk/types.js' +import { DevCycleApiClient } from '../utils/api' +import { ListProjectsArgsSchema } from '../types' +import { ToolHandler } from '../server' + +export const projectToolDefinitions: Tool[] = [ + { + name: 'list_projects', + description: 'List all projects in the current organization', + inputSchema: { + type: 'object', + properties: { + sort_by: { + type: 'string', + enum: [ + 'createdAt', + 'updatedAt', + 'name', + 'key', + 'createdBy', + 'propertyKey', + ], + description: 'Field to sort by (default: createdAt)', + }, + sort_order: { + type: 'string', + enum: ['asc', 'desc'], + description: 'Sort order (default: desc)', + }, + search: { + type: 'string', + description: + 'Search query to filter projects (minimum 3 characters)', + }, + created_by: { + type: 'string', + description: 'Filter by creator user ID', + }, + page: { + type: 'number', + description: 'Page number (default: 1)', + }, + per_page: { + type: 'number', + description: + 'Number of items per page (default: 100, max: 1000)', + }, + }, + }, + }, + { + name: 'get_current_project', + description: 'Get the currently selected project', + inputSchema: { + type: 'object', + properties: { + random_string: { + type: 'string', + description: 'Dummy parameter for no-parameter tools', + }, + }, + required: ['random_string'], + }, + }, +] + +export const projectToolHandlers: Record<string, ToolHandler> = { + list_projects: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = ListProjectsArgsSchema.parse(args) + return await apiClient.listProjects(validatedArgs) + }, + get_current_project: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + return await apiClient.getCurrentProject() + }, +} diff --git a/src/mcp/tools/selfTargetingTools.ts b/src/mcp/tools/selfTargetingTools.ts new file mode 100644 index 000000000..4aca30817 --- /dev/null +++ b/src/mcp/tools/selfTargetingTools.ts @@ -0,0 +1,134 @@ +import { Tool } from '@modelcontextprotocol/sdk/types.js' +import { DevCycleApiClient } from '../utils/api' +import { + UpdateSelfTargetingIdentityArgsSchema, + SetSelfTargetingOverrideArgsSchema, + ClearSelfTargetingOverridesArgsSchema, +} from '../types' +import { ToolHandler } from '../server' + +export const selfTargetingToolDefinitions: Tool[] = [ + { + name: 'get_self_targeting_identity', + description: 'Get current DevCycle identity for self-targeting', + inputSchema: { + type: 'object', + properties: { + random_string: { + type: 'string', + description: 'Dummy parameter for no-parameter tools', + }, + }, + required: ['random_string'], + }, + }, + { + name: 'update_self_targeting_identity', + description: + 'Update DevCycle identity for self-targeting and overrides', + inputSchema: { + type: 'object', + properties: { + dvc_user_id: { + type: 'string', + description: + 'DevCycle User ID for self-targeting (use null or empty string to clear)', + }, + }, + required: ['dvc_user_id'], + }, + }, + { + name: 'list_self_targeting_overrides', + description: + 'List all self-targeting overrides for the current project', + inputSchema: { + type: 'object', + properties: { + random_string: { + type: 'string', + description: 'Dummy parameter for no-parameter tools', + }, + }, + required: ['random_string'], + }, + }, + { + name: 'set_self_targeting_override', + description: 'Set a self-targeting override for a feature variation', + inputSchema: { + type: 'object', + properties: { + feature_key: { + type: 'string', + description: 'The key of the feature', + }, + environment_key: { + type: 'string', + description: 'The key of the environment', + }, + variation_key: { + type: 'string', + description: 'The key of the variation to serve', + }, + }, + required: ['feature_key', 'environment_key', 'variation_key'], + }, + }, + { + name: 'clear_self_targeting_overrides', + description: + 'Clear self-targeting overrides (all or specific feature/environment)', + inputSchema: { + type: 'object', + properties: { + feature_key: { + type: 'string', + description: + 'The key of the feature (optional - if provided with environment_key, clears specific override)', + }, + environment_key: { + type: 'string', + description: + 'The key of the environment (optional - if provided with feature_key, clears specific override)', + }, + }, + }, + }, +] + +export const selfTargetingToolHandlers: Record<string, ToolHandler> = { + get_self_targeting_identity: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + return await apiClient.getSelfTargetingIdentity() + }, + update_self_targeting_identity: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = UpdateSelfTargetingIdentityArgsSchema.parse(args) + return await apiClient.updateSelfTargetingIdentity(validatedArgs) + }, + list_self_targeting_overrides: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + return await apiClient.listSelfTargetingOverrides() + }, + set_self_targeting_override: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = SetSelfTargetingOverrideArgsSchema.parse(args) + return await apiClient.setSelfTargetingOverride(validatedArgs) + }, + clear_self_targeting_overrides: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = ClearSelfTargetingOverridesArgsSchema.parse(args) + return await apiClient.clearSelfTargetingOverrides(validatedArgs) + }, +} diff --git a/src/mcp/tools/variableTools.ts b/src/mcp/tools/variableTools.ts new file mode 100644 index 000000000..914363fa6 --- /dev/null +++ b/src/mcp/tools/variableTools.ts @@ -0,0 +1,36 @@ +import { Tool } from '@modelcontextprotocol/sdk/types.js' +import { DevCycleApiClient } from '../utils/api' +import { ListVariablesArgsSchema } from '../types' +import { ToolHandler } from '../server' + +export const variableToolDefinitions: Tool[] = [ + { + name: 'list_variables', + description: 'List variables in the current project', + inputSchema: { + type: 'object', + properties: { + search: { + type: 'string', + description: 'Search query to filter variables', + }, + page: { + type: 'number', + description: 'Page number (default: 1)', + }, + per_page: { + type: 'number', + description: + 'Number of items per page (default: 100, max: 1000)', + }, + }, + }, + }, +] + +export const variableToolHandlers: Record<string, ToolHandler> = { + list_variables: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = ListVariablesArgsSchema.parse(args) + return await apiClient.listVariables(validatedArgs) + }, +} From 5bd31af0b9353b2151788762d23d6b0844cc31ab Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 14:16:40 -0400 Subject: [PATCH 21/74] feat: split clear_feature_self_targeting_overrides and clear_all_self_targeting_overrides --- src/mcp/tools/projectTools.ts | 8 +-- src/mcp/tools/selfTargetingTools.ts | 46 +++++++++-------- src/mcp/utils/api.ts | 79 ++++++++++++++++++----------- 3 files changed, 74 insertions(+), 59 deletions(-) diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts index 24990b95b..68e1e7a7e 100644 --- a/src/mcp/tools/projectTools.ts +++ b/src/mcp/tools/projectTools.ts @@ -53,13 +53,7 @@ export const projectToolDefinitions: Tool[] = [ description: 'Get the currently selected project', inputSchema: { type: 'object', - properties: { - random_string: { - type: 'string', - description: 'Dummy parameter for no-parameter tools', - }, - }, - required: ['random_string'], + properties: {}, }, }, ] diff --git a/src/mcp/tools/selfTargetingTools.ts b/src/mcp/tools/selfTargetingTools.ts index 4aca30817..55db15656 100644 --- a/src/mcp/tools/selfTargetingTools.ts +++ b/src/mcp/tools/selfTargetingTools.ts @@ -13,13 +13,7 @@ export const selfTargetingToolDefinitions: Tool[] = [ description: 'Get current DevCycle identity for self-targeting', inputSchema: { type: 'object', - properties: { - random_string: { - type: 'string', - description: 'Dummy parameter for no-parameter tools', - }, - }, - required: ['random_string'], + properties: {}, }, }, { @@ -44,13 +38,7 @@ export const selfTargetingToolDefinitions: Tool[] = [ 'List all self-targeting overrides for the current project', inputSchema: { type: 'object', - properties: { - random_string: { - type: 'string', - description: 'Dummy parameter for no-parameter tools', - }, - }, - required: ['random_string'], + properties: {}, }, }, { @@ -76,23 +64,31 @@ export const selfTargetingToolDefinitions: Tool[] = [ }, }, { - name: 'clear_self_targeting_overrides', + name: 'clear_feature_self_targeting_overrides', description: - 'Clear self-targeting overrides (all or specific feature/environment)', + 'Clear self-targeting overrides for a specific feature/environment', inputSchema: { type: 'object', properties: { feature_key: { type: 'string', - description: - 'The key of the feature (optional - if provided with environment_key, clears specific override)', + description: 'The key of the feature', }, environment_key: { type: 'string', - description: - 'The key of the environment (optional - if provided with feature_key, clears specific override)', + description: 'The key of the environment', }, }, + required: ['feature_key', 'environment_key'], + }, + }, + { + name: 'clear_all_self_targeting_overrides', + description: + 'Clear all self-targeting overrides for the current project', + inputSchema: { + type: 'object', + properties: {}, }, }, ] @@ -124,11 +120,17 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { const validatedArgs = SetSelfTargetingOverrideArgsSchema.parse(args) return await apiClient.setSelfTargetingOverride(validatedArgs) }, - clear_self_targeting_overrides: async ( + clear_feature_self_targeting_overrides: async ( args: unknown, apiClient: DevCycleApiClient, ) => { const validatedArgs = ClearSelfTargetingOverridesArgsSchema.parse(args) - return await apiClient.clearSelfTargetingOverrides(validatedArgs) + return await apiClient.clearFeatureSelfTargetingOverrides(validatedArgs) + }, + clear_all_self_targeting_overrides: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + return await apiClient.clearAllSelfTargetingOverrides() }, } diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index 63ea49e02..f5b75eb80 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -460,9 +460,11 @@ export class DevCycleApiClient { } } - async clearSelfTargetingOverrides(args: ClearSelfTargetingOverridesArgs) { + async clearFeatureSelfTargetingOverrides( + args: ClearSelfTargetingOverridesArgs, + ) { console.error( - 'MCP clearSelfTargetingOverrides params:', + 'MCP clearFeatureSelfTargetingOverrides params:', JSON.stringify(args, null, 2), ) @@ -470,40 +472,57 @@ export class DevCycleApiClient { this.auth.requireAuth() this.auth.requireProject() - if (args.feature_key && args.environment_key) { - // Clear specific feature/environment override - const result = await deleteFeatureOverrides( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - args.feature_key, - args.environment_key, + if (!args.feature_key || !args.environment_key) { + throw new Error( + 'Both feature_key and environment_key are required to clear a specific override', ) + } - console.error( - 'MCP clearSelfTargetingOverrides (specific) result:', - JSON.stringify(result, null, 2), - ) - return { - message: `Cleared override for feature '${args.feature_key}' in environment '${args.environment_key}'`, - } - } else { - // Clear all project overrides - const result = await deleteAllProjectOverrides( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - ) + const result = await deleteFeatureOverrides( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + args.feature_key, + args.environment_key, + ) - console.error( - 'MCP clearSelfTargetingOverrides (all) result:', - JSON.stringify(result, null, 2), - ) - return { - message: 'Cleared all overrides for the project', - } + console.error( + 'MCP clearFeatureSelfTargetingOverrides result:', + JSON.stringify(result, null, 2), + ) + return { + message: `Cleared override for feature '${args.feature_key}' in environment '${args.environment_key}'`, + } + } catch (error) { + console.error( + 'MCP clearFeatureSelfTargetingOverrides error:', + JSON.stringify({ error: getErrorMessage(error) }, null, 2), + ) + throw ensureError(error) + } + } + + async clearAllSelfTargetingOverrides() { + console.error('MCP clearAllSelfTargetingOverrides') + + try { + this.auth.requireAuth() + this.auth.requireProject() + + const result = await deleteAllProjectOverrides( + this.auth.getAuthToken(), + this.auth.getProjectKey(), + ) + + console.error( + 'MCP clearAllSelfTargetingOverrides result:', + JSON.stringify(result, null, 2), + ) + return { + message: 'Cleared all overrides for the project', } } catch (error) { console.error( - 'MCP clearSelfTargetingOverrides error:', + 'MCP clearAllSelfTargetingOverrides error:', JSON.stringify({ error: getErrorMessage(error) }, null, 2), ) throw ensureError(error) From 0c83b28dcd2a4137b5695976e24a873a7c8fe5f9 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 14:43:22 -0400 Subject: [PATCH 22/74] feat: refactor api calls, move them into /tools files --- src/mcp/tools/environmentTools.ts | 64 +++- src/mcp/tools/featureTools.ts | 78 ++++- src/mcp/tools/projectTools.ts | 39 ++- src/mcp/tools/selfTargetingTools.ts | 105 +++++- src/mcp/tools/variableTools.ts | 16 +- src/mcp/types.ts | 19 ++ src/mcp/utils/api.ts | 500 +++------------------------- 7 files changed, 332 insertions(+), 489 deletions(-) diff --git a/src/mcp/tools/environmentTools.ts b/src/mcp/tools/environmentTools.ts index 95a78d838..4279d21e2 100644 --- a/src/mcp/tools/environmentTools.ts +++ b/src/mcp/tools/environmentTools.ts @@ -1,6 +1,10 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient } from '../utils/api' -import { GetSdkKeysArgsSchema } from '../types' +import { + DevCycleApiClient, + fetchEnvironments, + fetchEnvironmentByKey, +} from '../utils/api' +import { GetSdkKeysArgsSchema, ListEnvironmentsArgsSchema } from '../types' import { ToolHandler } from '../server' export const environmentToolDefinitions: Tool[] = [ @@ -12,19 +16,33 @@ export const environmentToolDefinitions: Tool[] = [ properties: { search: { type: 'string', - description: 'Search query to filter environments', + description: + 'Search query to filter environments (minimum 3 characters)', + minLength: 3, }, page: { type: 'number', description: 'Page number (default: 1)', + minimum: 1, }, per_page: { type: 'number', - description: 'Number of items per page (default: 100)', + description: + 'Number of items per page (default: 100, max: 1000)', + minimum: 1, + maximum: 1000, }, sort_by: { type: 'string', description: 'Field to sort by (default: createdAt)', + enum: [ + 'createdAt', + 'updatedAt', + 'name', + 'key', + 'createdBy', + 'propertyKey', + ], }, sort_order: { type: 'string', @@ -61,10 +79,44 @@ export const environmentToolDefinitions: Tool[] = [ export const environmentToolHandlers: Record<string, ToolHandler> = { list_environments: async (args: unknown, apiClient: DevCycleApiClient) => { - return await apiClient.listEnvironments() + const validatedArgs = ListEnvironmentsArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'listEnvironments', + validatedArgs, + async (authToken, projectKey) => { + return await fetchEnvironments(authToken, projectKey) + }, + ) }, get_sdk_keys: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = GetSdkKeysArgsSchema.parse(args) - return await apiClient.getSdkKeys(validatedArgs) + + return await apiClient.executeWithLogging( + 'getSdkKeys', + validatedArgs, + async (authToken, projectKey) => { + const environment = await fetchEnvironmentByKey( + authToken, + projectKey, + validatedArgs.environment_key, + ) + + const sdkKeys = environment.sdkKeys + + if (validatedArgs.key_type) { + return { + [validatedArgs.key_type]: + sdkKeys[validatedArgs.key_type], + } + } else { + return { + mobile: sdkKeys.mobile, + server: sdkKeys.server, + client: sdkKeys.client, + } + } + }, + ) }, } diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index 04379db9c..fc548dd80 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -1,5 +1,11 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient } from '../utils/api' +import { + DevCycleApiClient, + fetchFeatures, + createFeature, + enableTargeting, + disableTargeting, +} from '../utils/api' import { ListFeaturesArgsSchema, CreateFeatureArgsSchema, @@ -103,18 +109,80 @@ export const featureToolDefinitions: Tool[] = [ export const featureToolHandlers: Record<string, ToolHandler> = { list_features: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = ListFeaturesArgsSchema.parse(args) - return await apiClient.listFeatures(validatedArgs) + + return await apiClient.executeWithLogging( + 'listFeatures', + validatedArgs, + async (authToken, projectKey) => { + const query = { + search: validatedArgs.search, + page: validatedArgs.page, + perPage: validatedArgs.per_page, + } + return await fetchFeatures(authToken, projectKey, query) + }, + ) }, create_feature: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = CreateFeatureArgsSchema.parse(args) - return await apiClient.createFeature(validatedArgs) + + return await apiClient.executeWithLogging( + 'createFeature', + validatedArgs, + async (authToken, projectKey) => { + if (validatedArgs.interactive) { + throw new Error( + 'Interactive mode not yet supported in MCP. Please provide explicit parameters: key, name, description, type', + ) + } + + if (!validatedArgs.key || !validatedArgs.name) { + throw new Error( + 'Feature key and name are required when not using interactive mode', + ) + } + + const featureData = { + key: validatedArgs.key, + name: validatedArgs.name, + description: validatedArgs.description || '', + type: validatedArgs.type || 'release', + } + + return await createFeature(authToken, projectKey, featureData) + }, + ) }, enable_targeting: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = EnableTargetingArgsSchema.parse(args) - return await apiClient.enableTargeting(validatedArgs) + + return await apiClient.executeWithLogging( + 'enableTargeting', + validatedArgs, + async (authToken, projectKey) => { + return await enableTargeting( + authToken, + projectKey, + validatedArgs.feature_key, + validatedArgs.environment_key, + ) + }, + ) }, disable_targeting: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = DisableTargetingArgsSchema.parse(args) - return await apiClient.disableTargeting(validatedArgs) + + return await apiClient.executeWithLogging( + 'disableTargeting', + validatedArgs, + async (authToken, projectKey) => { + return await disableTargeting( + authToken, + projectKey, + validatedArgs.feature_key, + validatedArgs.environment_key, + ) + }, + ) }, } diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts index 68e1e7a7e..da48f8229 100644 --- a/src/mcp/tools/projectTools.ts +++ b/src/mcp/tools/projectTools.ts @@ -1,5 +1,5 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient } from '../utils/api' +import { DevCycleApiClient, fetchProjects, fetchProject } from '../utils/api' import { ListProjectsArgsSchema } from '../types' import { ToolHandler } from '../server' @@ -53,7 +53,13 @@ export const projectToolDefinitions: Tool[] = [ description: 'Get the currently selected project', inputSchema: { type: 'object', - properties: {}, + properties: { + random_string: { + type: 'string', + description: 'Dummy parameter for no-parameter tools', + }, + }, + required: ['random_string'], }, }, ] @@ -61,12 +67,37 @@ export const projectToolDefinitions: Tool[] = [ export const projectToolHandlers: Record<string, ToolHandler> = { list_projects: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = ListProjectsArgsSchema.parse(args) - return await apiClient.listProjects(validatedArgs) + + return await apiClient.executeWithLogging( + 'listProjects', + validatedArgs, + async (authToken, projectKey) => { + const query: any = {} + if (validatedArgs.sort_by) query.sortBy = validatedArgs.sort_by + if (validatedArgs.sort_order) + query.sortOrder = validatedArgs.sort_order + if (validatedArgs.search) query.search = validatedArgs.search + if (validatedArgs.created_by) + query.createdBy = validatedArgs.created_by + if (validatedArgs.page) query.page = validatedArgs.page + if (validatedArgs.per_page) + query.perPage = validatedArgs.per_page + + return await fetchProjects(authToken, query) + }, + false, + ) }, get_current_project: async ( args: unknown, apiClient: DevCycleApiClient, ) => { - return await apiClient.getCurrentProject() + return await apiClient.executeWithLogging( + 'getCurrentProject', + args, + async (authToken, projectKey) => { + return await fetchProject(authToken, projectKey) + }, + ) }, } diff --git a/src/mcp/tools/selfTargetingTools.ts b/src/mcp/tools/selfTargetingTools.ts index 55db15656..e5b64e2ac 100644 --- a/src/mcp/tools/selfTargetingTools.ts +++ b/src/mcp/tools/selfTargetingTools.ts @@ -1,5 +1,13 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient } from '../utils/api' +import { + DevCycleApiClient, + fetchUserProfile, + updateUserProfile, + fetchProjectOverridesForUser, + updateOverride, + deleteFeatureOverrides, + deleteAllProjectOverrides, +} from '../utils/api' import { UpdateSelfTargetingIdentityArgsSchema, SetSelfTargetingOverrideArgsSchema, @@ -13,7 +21,13 @@ export const selfTargetingToolDefinitions: Tool[] = [ description: 'Get current DevCycle identity for self-targeting', inputSchema: { type: 'object', - properties: {}, + properties: { + random_string: { + type: 'string', + description: 'Dummy parameter for no-parameter tools', + }, + }, + required: ['random_string'], }, }, { @@ -38,7 +52,13 @@ export const selfTargetingToolDefinitions: Tool[] = [ 'List all self-targeting overrides for the current project', inputSchema: { type: 'object', - properties: {}, + properties: { + random_string: { + type: 'string', + description: 'Dummy parameter for no-parameter tools', + }, + }, + required: ['random_string'], }, }, { @@ -88,7 +108,13 @@ export const selfTargetingToolDefinitions: Tool[] = [ 'Clear all self-targeting overrides for the current project', inputSchema: { type: 'object', - properties: {}, + properties: { + random_string: { + type: 'string', + description: 'Dummy parameter for no-parameter tools', + }, + }, + required: ['random_string'], }, }, ] @@ -98,39 +124,98 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { args: unknown, apiClient: DevCycleApiClient, ) => { - return await apiClient.getSelfTargetingIdentity() + return await apiClient.executeWithLogging( + 'getSelfTargetingIdentity', + args, + async (authToken, projectKey) => { + return await fetchUserProfile(authToken, projectKey) + }, + ) }, update_self_targeting_identity: async ( args: unknown, apiClient: DevCycleApiClient, ) => { const validatedArgs = UpdateSelfTargetingIdentityArgsSchema.parse(args) - return await apiClient.updateSelfTargetingIdentity(validatedArgs) + + return await apiClient.executeWithLogging( + 'updateSelfTargetingIdentity', + validatedArgs, + async (authToken, projectKey) => { + return await updateUserProfile(authToken, projectKey, { + dvcUserId: validatedArgs.dvc_user_id, + }) + }, + ) }, list_self_targeting_overrides: async ( args: unknown, apiClient: DevCycleApiClient, ) => { - return await apiClient.listSelfTargetingOverrides() + return await apiClient.executeWithLogging( + 'listSelfTargetingOverrides', + args, + async (authToken, projectKey) => { + return await fetchProjectOverridesForUser(authToken, projectKey) + }, + ) }, set_self_targeting_override: async ( args: unknown, apiClient: DevCycleApiClient, ) => { const validatedArgs = SetSelfTargetingOverrideArgsSchema.parse(args) - return await apiClient.setSelfTargetingOverride(validatedArgs) + + return await apiClient.executeWithLogging( + 'setSelfTargetingOverride', + validatedArgs, + async (authToken, projectKey) => { + return await updateOverride( + authToken, + projectKey, + validatedArgs.feature_key, + { + environment: validatedArgs.environment_key, + variation: validatedArgs.variation_key, + }, + ) + }, + ) }, clear_feature_self_targeting_overrides: async ( args: unknown, apiClient: DevCycleApiClient, ) => { const validatedArgs = ClearSelfTargetingOverridesArgsSchema.parse(args) - return await apiClient.clearFeatureSelfTargetingOverrides(validatedArgs) + + return await apiClient.executeWithLogging( + 'clearFeatureSelfTargetingOverrides', + validatedArgs, + async (authToken, projectKey) => { + await deleteFeatureOverrides( + authToken, + projectKey, + validatedArgs.feature_key!, + validatedArgs.environment_key!, + ) + + return { + message: `Cleared override for feature '${validatedArgs.feature_key}' in environment '${validatedArgs.environment_key}'`, + } + }, + ) }, clear_all_self_targeting_overrides: async ( args: unknown, apiClient: DevCycleApiClient, ) => { - return await apiClient.clearAllSelfTargetingOverrides() + return await apiClient.executeWithLogging( + 'clearAllSelfTargetingOverrides', + args, + async (authToken, projectKey) => { + await deleteAllProjectOverrides(authToken, projectKey) + return { message: 'Cleared all overrides for the project' } + }, + ) }, } diff --git a/src/mcp/tools/variableTools.ts b/src/mcp/tools/variableTools.ts index 914363fa6..4fbd78be8 100644 --- a/src/mcp/tools/variableTools.ts +++ b/src/mcp/tools/variableTools.ts @@ -1,5 +1,5 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient } from '../utils/api' +import { DevCycleApiClient, fetchVariables } from '../utils/api' import { ListVariablesArgsSchema } from '../types' import { ToolHandler } from '../server' @@ -31,6 +31,18 @@ export const variableToolDefinitions: Tool[] = [ export const variableToolHandlers: Record<string, ToolHandler> = { list_variables: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = ListVariablesArgsSchema.parse(args) - return await apiClient.listVariables(validatedArgs) + + return await apiClient.executeWithLogging( + 'listVariables', + validatedArgs, + async (authToken, projectKey) => { + const query = { + search: validatedArgs.search, + page: validatedArgs.page, + perPage: validatedArgs.per_page, + } + return await fetchVariables(authToken, projectKey, query) + }, + ) }, } diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 02195fb95..0f6c4a175 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -31,6 +31,24 @@ export const ListProjectsArgsSchema = z.object({ per_page: z.number().min(1).max(1000).default(100).optional(), }) +export const ListEnvironmentsArgsSchema = z.object({ + search: z.string().min(3).optional(), + page: z.number().min(1).optional(), + per_page: z.number().min(1).max(1000).default(100).optional(), + sort_by: z + .enum([ + 'createdAt', + 'updatedAt', + 'name', + 'key', + 'createdBy', + 'propertyKey', + ]) + .optional(), + sort_order: z.enum(['asc', 'desc']).optional(), + created_by: z.string().optional(), +}) + export const GetSdkKeysArgsSchema = z.object({ environment_key: z.string(), key_type: z.enum(['mobile', 'server', 'client']).optional(), @@ -73,6 +91,7 @@ export const ClearSelfTargetingOverridesArgsSchema = z.object({ export type ListFeaturesArgs = z.infer<typeof ListFeaturesArgsSchema> export type ListVariablesArgs = z.infer<typeof ListVariablesArgsSchema> export type ListProjectsArgs = z.infer<typeof ListProjectsArgsSchema> +export type ListEnvironmentsArgs = z.infer<typeof ListEnvironmentsArgsSchema> export type GetSdkKeysArgs = z.infer<typeof GetSdkKeysArgsSchema> export type EnableTargetingArgs = z.infer<typeof EnableTargetingArgsSchema> export type DisableTargetingArgs = z.infer<typeof DisableTargetingArgsSchema> diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index f5b75eb80..f9d60a6d4 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -44,488 +44,64 @@ function ensureError(error: unknown): Error { export class DevCycleApiClient { constructor(private auth: DevCycleAuth) {} - async listFeatures(args: ListFeaturesArgs) { - console.error('MCP listFeatures params:', JSON.stringify(args, null, 2)) - - try { - this.auth.requireAuth() - this.auth.requireProject() - - const authToken = this.auth.getAuthToken() - const projectKey = this.auth.getProjectKey() - - const query = { - search: args.search, - page: args.page, - perPage: args.per_page, - } - - const result = await fetchFeatures(authToken, projectKey, query) - console.error( - 'MCP listFeatures result:', - JSON.stringify(result, null, 2), - ) - return result - } catch (error) { - console.error( - 'MCP listFeatures error:', - JSON.stringify({ error: getErrorMessage(error) }, null, 2), - ) - console.error('Error during listFeatures:', getErrorMessage(error)) - throw ensureError(error) - } - } - - async listVariables(args: ListVariablesArgs) { - console.error( - 'MCP listVariables params:', - JSON.stringify(args, null, 2), - ) - - try { - this.auth.requireAuth() - this.auth.requireProject() - - const query = { - search: args.search, - page: args.page, - perPage: args.per_page, - } - - const result = await fetchVariables( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - query, - ) - console.error( - 'MCP listVariables result:', - JSON.stringify(result, null, 2), - ) - return result - } catch (error) { - console.error( - 'MCP listVariables error:', - JSON.stringify({ error: getErrorMessage(error) }, null, 2), - ) - throw ensureError(error) - } - } - - async listEnvironments() { - console.error('MCP listEnvironments') - - try { - this.auth.requireAuth() - this.auth.requireProject() - - const result = await fetchEnvironments( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - ) - - console.error( - 'MCP listEnvironments result:', - JSON.stringify(result, null, 2), - ) - return result - } catch (error) { - console.error( - 'MCP listEnvironments error:', - JSON.stringify({ error: getErrorMessage(error) }, null, 2), - ) - throw ensureError(error) - } - } - - async listProjects(args: ListProjectsArgs) { - console.error('MCP listProjects params:', JSON.stringify(args, null, 2)) - - try { - this.auth.requireAuth() - - const query: any = {} - if (args.sort_by) query.sortBy = args.sort_by - if (args.sort_order) query.sortOrder = args.sort_order - if (args.search) query.search = args.search - if (args.created_by) query.createdBy = args.created_by - if (args.page) query.page = args.page - if (args.per_page) query.perPage = args.per_page - - const result = await fetchProjects(this.auth.getAuthToken(), query) - console.error( - 'MCP listProjects result:', - JSON.stringify(result, null, 2), - ) - return result - } catch (error) { - console.error( - 'MCP listProjects error:', - JSON.stringify({ error: getErrorMessage(error) }, null, 2), - ) - throw ensureError(error) - } - } - - async getSdkKeys(args: GetSdkKeysArgs) { - console.error('MCP getSdkKeys params:', JSON.stringify(args, null, 2)) - - try { - this.auth.requireAuth() - this.auth.requireProject() - - const environment = await fetchEnvironmentByKey( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - args.environment_key, - ) - - const sdkKeys = environment.sdkKeys - - let result - if (args.key_type) { - result = { - [args.key_type]: sdkKeys[args.key_type], - } - } else { - result = { - mobile: sdkKeys.mobile, - server: sdkKeys.server, - client: sdkKeys.client, - } - } - - console.error( - 'MCP getSdkKeys result:', - JSON.stringify(result, null, 2), - ) - return result - } catch (error) { - console.error( - 'MCP getSdkKeys error:', - JSON.stringify({ error: getErrorMessage(error) }, null, 2), - ) - throw ensureError(error) - } - } - - async enableTargeting(args: EnableTargetingArgs) { - console.error( - 'MCP enableTargeting params:', - JSON.stringify(args, null, 2), - ) - - try { - this.auth.requireAuth() - this.auth.requireProject() - - const result = await enableTargeting( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - args.feature_key, - args.environment_key, - ) - console.error( - 'MCP enableTargeting result:', - JSON.stringify(result, null, 2), - ) - return result - } catch (error) { - console.error( - 'MCP enableTargeting error:', - JSON.stringify({ error: getErrorMessage(error) }, null, 2), - ) - throw ensureError(error) - } - } - - async disableTargeting(args: DisableTargetingArgs) { + /** + * Helper method to execute API calls with consistent error handling and logging + */ + public async executeWithLogging<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T>, + requiresProject = true, + ): Promise<T> { console.error( - 'MCP disableTargeting params:', - JSON.stringify(args, null, 2), + `MCP ${operationName} args:`, + args ? JSON.stringify(args, null, 2) : 'none', ) try { this.auth.requireAuth() - this.auth.requireProject() - - const result = await disableTargeting( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - args.feature_key, - args.environment_key, - ) - console.error( - 'MCP disableTargeting result:', - JSON.stringify(result, null, 2), - ) - return result - } catch (error) { - console.error( - 'MCP disableTargeting error:', - JSON.stringify({ error: getErrorMessage(error) }, null, 2), - ) - throw ensureError(error) - } - } - - async createFeature(args: CreateFeatureArgs) { - console.error( - 'MCP createFeature params:', - JSON.stringify(args, null, 2), - ) - - try { - this.auth.requireAuth() - this.auth.requireProject() - - if (args.interactive) { - // For interactive mode, we would need to implement prompts - // For now, return an error asking for explicit parameters - throw new Error( - 'Interactive mode not yet supported in MCP. Please provide explicit parameters: key, name, description, type', - ) - } - - if (!args.key || !args.name) { - throw new Error( - 'Feature key and name are required when not using interactive mode', - ) - } - - const featureData = { - key: args.key, - name: args.name, - description: args.description || '', - type: args.type || 'release', + if (requiresProject) { + this.auth.requireProject() } - const result = await createFeature( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - featureData, - ) - console.error( - 'MCP createFeature result:', - JSON.stringify(result, null, 2), - ) - return result - } catch (error) { - console.error( - 'MCP createFeature error:', - JSON.stringify({ error: getErrorMessage(error) }, null, 2), - ) - throw ensureError(error) - } - } - - async getCurrentProject() { - console.error('MCP getCurrentProject') - - try { - this.auth.requireAuth() - this.auth.requireProject() - - const result = await fetchProject( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - ) - - console.error( - 'MCP getCurrentProject result:', - JSON.stringify(result, null, 2), - ) - return result - } catch (error) { - console.error( - 'MCP getCurrentProject error:', - JSON.stringify({ error: getErrorMessage(error) }, null, 2), - ) - throw ensureError(error) - } - } - - async getSelfTargetingIdentity() { - console.error('MCP getSelfTargetingIdentity') - - try { - this.auth.requireAuth() - this.auth.requireProject() - - const result = await fetchUserProfile( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - ) - - console.error( - 'MCP getSelfTargetingIdentity result:', - JSON.stringify(result, null, 2), - ) - return result - } catch (error) { - console.error( - 'MCP getSelfTargetingIdentity error:', - JSON.stringify({ error: getErrorMessage(error) }, null, 2), - ) - throw ensureError(error) - } - } - - async updateSelfTargetingIdentity(args: UpdateSelfTargetingIdentityArgs) { - console.error( - 'MCP updateSelfTargetingIdentity params:', - JSON.stringify(args, null, 2), - ) - - try { - this.auth.requireAuth() - this.auth.requireProject() - - const result = await updateUserProfile( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - { dvcUserId: args.dvc_user_id }, - ) - - console.error( - 'MCP updateSelfTargetingIdentity result:', - JSON.stringify(result, null, 2), - ) - return result - } catch (error) { - console.error( - 'MCP updateSelfTargetingIdentity error:', - JSON.stringify({ error: getErrorMessage(error) }, null, 2), - ) - throw ensureError(error) - } - } - - async listSelfTargetingOverrides() { - console.error('MCP listSelfTargetingOverrides') - - try { - this.auth.requireAuth() - this.auth.requireProject() - - const result = await fetchProjectOverridesForUser( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - ) + const authToken = this.auth.getAuthToken() + const projectKey = requiresProject ? this.auth.getProjectKey() : '' + const result = await operation(authToken, projectKey) console.error( - 'MCP listSelfTargetingOverrides result:', + `MCP ${operationName} result:`, JSON.stringify(result, null, 2), ) return result } catch (error) { console.error( - 'MCP listSelfTargetingOverrides error:', + `MCP ${operationName} error:`, JSON.stringify({ error: getErrorMessage(error) }, null, 2), ) throw ensureError(error) } } - async setSelfTargetingOverride(args: SetSelfTargetingOverrideArgs) { - console.error( - 'MCP setSelfTargetingOverride params:', - JSON.stringify(args, null, 2), - ) - - try { - this.auth.requireAuth() - this.auth.requireProject() - - const result = await updateOverride( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - args.feature_key, - { - environment: args.environment_key, - variation: args.variation_key, - }, - ) - - console.error( - 'MCP setSelfTargetingOverride result:', - JSON.stringify(result, null, 2), - ) - return result - } catch (error) { - console.error( - 'MCP setSelfTargetingOverride error:', - JSON.stringify({ error: getErrorMessage(error) }, null, 2), - ) - throw ensureError(error) - } + public getAuth(): DevCycleAuth { + return this.auth } +} - async clearFeatureSelfTargetingOverrides( - args: ClearSelfTargetingOverridesArgs, - ) { - console.error( - 'MCP clearFeatureSelfTargetingOverrides params:', - JSON.stringify(args, null, 2), - ) - - try { - this.auth.requireAuth() - this.auth.requireProject() - - if (!args.feature_key || !args.environment_key) { - throw new Error( - 'Both feature_key and environment_key are required to clear a specific override', - ) - } - - const result = await deleteFeatureOverrides( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - args.feature_key, - args.environment_key, - ) - - console.error( - 'MCP clearFeatureSelfTargetingOverrides result:', - JSON.stringify(result, null, 2), - ) - return { - message: `Cleared override for feature '${args.feature_key}' in environment '${args.environment_key}'`, - } - } catch (error) { - console.error( - 'MCP clearFeatureSelfTargetingOverrides error:', - JSON.stringify({ error: getErrorMessage(error) }, null, 2), - ) - throw ensureError(error) - } - } - - async clearAllSelfTargetingOverrides() { - console.error('MCP clearAllSelfTargetingOverrides') - - try { - this.auth.requireAuth() - this.auth.requireProject() - - const result = await deleteAllProjectOverrides( - this.auth.getAuthToken(), - this.auth.getProjectKey(), - ) - - console.error( - 'MCP clearAllSelfTargetingOverrides result:', - JSON.stringify(result, null, 2), - ) - return { - message: 'Cleared all overrides for the project', - } - } catch (error) { - console.error( - 'MCP clearAllSelfTargetingOverrides error:', - JSON.stringify({ error: getErrorMessage(error) }, null, 2), - ) - throw ensureError(error) - } - } +// Export API functions for use in tool files +export { + fetchFeatures, + createFeature, + fetchVariables, + fetchEnvironmentByKey, + fetchEnvironments, + fetchProject, + fetchProjects, + enableTargeting, + disableTargeting, + fetchUserProfile, + updateUserProfile, + fetchProjectOverridesForUser, + updateOverride, + deleteAllProjectOverrides, + deleteFeatureOverrides, } From ac6e025e22844adfbf7f07465908425a4832d071 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 14:57:52 -0400 Subject: [PATCH 23/74] chore: cleanup --- .cursor/rules/mcp-patterns.mdc | 24 ++++++++++++++++++++ src/mcp/tools/projectTools.ts | 32 ++++++++++----------------- src/mcp/tools/selfTargetingTools.ts | 34 +++++++---------------------- src/mcp/types.ts | 4 ++-- 4 files changed, 45 insertions(+), 49 deletions(-) create mode 100644 .cursor/rules/mcp-patterns.mdc diff --git a/.cursor/rules/mcp-patterns.mdc b/.cursor/rules/mcp-patterns.mdc new file mode 100644 index 000000000..858d8a5e3 --- /dev/null +++ b/.cursor/rules/mcp-patterns.mdc @@ -0,0 +1,24 @@ +--- +description: MCP tools can have empty parameters - no dummy parameters needed +globs: ["src/mcp/tools/**/*.ts"] +alwaysApply: true +--- + +# MCP Tool Parameters + +MCP tools that don't need parameters should use empty properties: + +```typescript +// ✅ Correct - empty parameters +inputSchema: { + type: 'object', + properties: {}, +} + +// ❌ Wrong - dummy parameters +properties: { + random_string: { type: 'string', description: 'Dummy parameter' } +} +``` + +Tools with no parameters should pass `null` to `executeWithLogging()`. diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts index da48f8229..69f1baee0 100644 --- a/src/mcp/tools/projectTools.ts +++ b/src/mcp/tools/projectTools.ts @@ -53,13 +53,7 @@ export const projectToolDefinitions: Tool[] = [ description: 'Get the currently selected project', inputSchema: { type: 'object', - properties: { - random_string: { - type: 'string', - description: 'Dummy parameter for no-parameter tools', - }, - }, - required: ['random_string'], + properties: {}, }, }, ] @@ -71,19 +65,15 @@ export const projectToolHandlers: Record<string, ToolHandler> = { return await apiClient.executeWithLogging( 'listProjects', validatedArgs, - async (authToken, projectKey) => { - const query: any = {} - if (validatedArgs.sort_by) query.sortBy = validatedArgs.sort_by - if (validatedArgs.sort_order) - query.sortOrder = validatedArgs.sort_order - if (validatedArgs.search) query.search = validatedArgs.search - if (validatedArgs.created_by) - query.createdBy = validatedArgs.created_by - if (validatedArgs.page) query.page = validatedArgs.page - if (validatedArgs.per_page) - query.perPage = validatedArgs.per_page - - return await fetchProjects(authToken, query) + async (authToken) => { + return await fetchProjects(authToken, { + sortBy: validatedArgs.sort_by, + sortOrder: validatedArgs.sort_order, + search: validatedArgs.search, + createdBy: validatedArgs.created_by, + page: validatedArgs.page, + perPage: validatedArgs.per_page, + }) }, false, ) @@ -94,7 +84,7 @@ export const projectToolHandlers: Record<string, ToolHandler> = { ) => { return await apiClient.executeWithLogging( 'getCurrentProject', - args, + null, async (authToken, projectKey) => { return await fetchProject(authToken, projectKey) }, diff --git a/src/mcp/tools/selfTargetingTools.ts b/src/mcp/tools/selfTargetingTools.ts index e5b64e2ac..bb4b33676 100644 --- a/src/mcp/tools/selfTargetingTools.ts +++ b/src/mcp/tools/selfTargetingTools.ts @@ -21,13 +21,7 @@ export const selfTargetingToolDefinitions: Tool[] = [ description: 'Get current DevCycle identity for self-targeting', inputSchema: { type: 'object', - properties: { - random_string: { - type: 'string', - description: 'Dummy parameter for no-parameter tools', - }, - }, - required: ['random_string'], + properties: {}, }, }, { @@ -52,13 +46,7 @@ export const selfTargetingToolDefinitions: Tool[] = [ 'List all self-targeting overrides for the current project', inputSchema: { type: 'object', - properties: { - random_string: { - type: 'string', - description: 'Dummy parameter for no-parameter tools', - }, - }, - required: ['random_string'], + properties: {}, }, }, { @@ -108,13 +96,7 @@ export const selfTargetingToolDefinitions: Tool[] = [ 'Clear all self-targeting overrides for the current project', inputSchema: { type: 'object', - properties: { - random_string: { - type: 'string', - description: 'Dummy parameter for no-parameter tools', - }, - }, - required: ['random_string'], + properties: {}, }, }, ] @@ -126,7 +108,7 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { ) => { return await apiClient.executeWithLogging( 'getSelfTargetingIdentity', - args, + null, async (authToken, projectKey) => { return await fetchUserProfile(authToken, projectKey) }, @@ -154,7 +136,7 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { ) => { return await apiClient.executeWithLogging( 'listSelfTargetingOverrides', - args, + null, async (authToken, projectKey) => { return await fetchProjectOverridesForUser(authToken, projectKey) }, @@ -195,8 +177,8 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { await deleteFeatureOverrides( authToken, projectKey, - validatedArgs.feature_key!, - validatedArgs.environment_key!, + validatedArgs.feature_key, + validatedArgs.environment_key, ) return { @@ -211,7 +193,7 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { ) => { return await apiClient.executeWithLogging( 'clearAllSelfTargetingOverrides', - args, + null, async (authToken, projectKey) => { await deleteAllProjectOverrides(authToken, projectKey) return { message: 'Cleared all overrides for the project' } diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 0f6c4a175..46984935c 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -83,8 +83,8 @@ export const SetSelfTargetingOverrideArgsSchema = z.object({ }) export const ClearSelfTargetingOverridesArgsSchema = z.object({ - feature_key: z.string().optional(), - environment_key: z.string().optional(), + feature_key: z.string(), + environment_key: z.string(), }) // Type inference helpers From a4f21794ee171dd7321f74e06164ac84a06f3be6 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 15:11:56 -0400 Subject: [PATCH 24/74] chore: fix cursor rules --- .cursor/rules/api-client.mdc | 1 + .cursor/rules/cli-commands.mdc | 1 + .cursor/rules/deferToPrettier.mdc | 3 +++ .cursor/rules/gitCommitConventions.mdc | 4 ++-- .cursor/rules/mcp-patterns.mdc | 6 ++---- .cursor/rules/project-structure.mdc | 2 ++ .cursor/rules/testing-patterns.mdc | 1 + .cursor/rules/typescript-patterns.mdc | 5 +++-- .cursor/rules/ui-patterns.mdc | 1 + 9 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.cursor/rules/api-client.mdc b/.cursor/rules/api-client.mdc index a89247fac..b3a75bb61 100644 --- a/.cursor/rules/api-client.mdc +++ b/.cursor/rules/api-client.mdc @@ -1,4 +1,5 @@ --- +description: API client patterns and HTTP client setup guidelines globs: src/api/**/*.ts --- diff --git a/.cursor/rules/cli-commands.mdc b/.cursor/rules/cli-commands.mdc index 18aa7224b..cfed350a1 100644 --- a/.cursor/rules/cli-commands.mdc +++ b/.cursor/rules/cli-commands.mdc @@ -1,4 +1,5 @@ --- +description: CLI command patterns and base command structure guidelines globs: src/commands/**/*.ts --- diff --git a/.cursor/rules/deferToPrettier.mdc b/.cursor/rules/deferToPrettier.mdc index 71d5bf860..7a1a20811 100644 --- a/.cursor/rules/deferToPrettier.mdc +++ b/.cursor/rules/deferToPrettier.mdc @@ -1,7 +1,10 @@ --- +description: Formatting guidelines - defer all formatting to Prettier alwaysApply: true --- + # Formatting - All formatting is deferred to Prettier for supported file types (JavaScript, TypeScript, JSON, Markdown, etc.). - No additional formatting rules are enforced by Cursor. +- No additional formatting rules are enforced by Cursor. diff --git a/.cursor/rules/gitCommitConventions.mdc b/.cursor/rules/gitCommitConventions.mdc index 528142e1e..08f920933 100644 --- a/.cursor/rules/gitCommitConventions.mdc +++ b/.cursor/rules/gitCommitConventions.mdc @@ -1,8 +1,8 @@ --- -description: -globs: +description: Git commit message conventions and Aviator CLI workflow guidelines alwaysApply: true --- + # Git Commit Message Conventions - All git commit messages in this project must follow the Conventional Commits specification. diff --git a/.cursor/rules/mcp-patterns.mdc b/.cursor/rules/mcp-patterns.mdc index 858d8a5e3..a9843c541 100644 --- a/.cursor/rules/mcp-patterns.mdc +++ b/.cursor/rules/mcp-patterns.mdc @@ -1,9 +1,7 @@ --- -description: MCP tools can have empty parameters - no dummy parameters needed -globs: ["src/mcp/tools/**/*.ts"] -alwaysApply: true +globs: src/mcp/tools/**/*.ts +alwaysApply: false --- - # MCP Tool Parameters MCP tools that don't need parameters should use empty properties: diff --git a/.cursor/rules/project-structure.mdc b/.cursor/rules/project-structure.mdc index 91495fe42..024cda843 100644 --- a/.cursor/rules/project-structure.mdc +++ b/.cursor/rules/project-structure.mdc @@ -1,4 +1,5 @@ --- +description: DevCycle CLI project structure overview and architecture guidelines alwaysApply: true --- @@ -50,5 +51,6 @@ All commands extend [src/commands/base.ts](mdc:src/commands/base.ts) which provi ## Package Management - Uses Yarn with workspaces +- Always use `yarn` not `npm` - Main dependencies: oclif, axios, zod, inquirer - Build process: TypeScript → dist/ directory diff --git a/.cursor/rules/testing-patterns.mdc b/.cursor/rules/testing-patterns.mdc index 44d044ae9..2d65001f6 100644 --- a/.cursor/rules/testing-patterns.mdc +++ b/.cursor/rules/testing-patterns.mdc @@ -1,4 +1,5 @@ --- +description: Testing patterns and framework setup guidelines globs: **/*.test.ts,**/*.spec.ts,test/**/*.ts --- diff --git a/.cursor/rules/typescript-patterns.mdc b/.cursor/rules/typescript-patterns.mdc index c8c865dbb..97c148f71 100644 --- a/.cursor/rules/typescript-patterns.mdc +++ b/.cursor/rules/typescript-patterns.mdc @@ -1,7 +1,8 @@ --- -globs: *.ts,*.js,src/**/*.ts,src/**/*.js +globs: *.ts,*.js +alwaysApply: false --- - + # TypeScript/JavaScript Patterns ## Import Organization diff --git a/.cursor/rules/ui-patterns.mdc b/.cursor/rules/ui-patterns.mdc index b48a1f612..1bee3ea4d 100644 --- a/.cursor/rules/ui-patterns.mdc +++ b/.cursor/rules/ui-patterns.mdc @@ -1,4 +1,5 @@ --- +description: UI patterns and user interaction guidelines for prompts and output formatting globs: src/ui/**/*.ts,src/utils/prompts.ts --- From 4e2b25a96e21052d3bd8fd6de320bd47a00ac96a Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 15:31:15 -0400 Subject: [PATCH 25/74] feat: add create_variable / update_variable / delete_variable tools --- src/api/variables.ts | 17 ++ src/mcp/tools/environmentTools.ts | 4 +- src/mcp/tools/featureTools.ts | 10 +- src/mcp/tools/projectTools.ts | 3 +- src/mcp/tools/selfTargetingTools.ts | 7 +- src/mcp/tools/variableTools.ts | 235 +++++++++++++++++++++++++++- src/mcp/types.ts | 56 +++++++ src/mcp/utils/api.ts | 46 ------ 8 files changed, 316 insertions(+), 62 deletions(-) diff --git a/src/api/variables.ts b/src/api/variables.ts index 9350533de..2b019d4dd 100644 --- a/src/api/variables.ts +++ b/src/api/variables.ts @@ -49,6 +49,23 @@ export const updateVariable = async ( }) } +export const deleteVariable = async ( + token: string, + project_id: string, + variableKey: string, +) => { + return apiClient.delete('/v1/projects/:project/variables/:key', undefined, { + headers: { + 'Content-Type': 'application/json', + Authorization: token, + }, + params: { + project: project_id, + key: variableKey, + }, + }) +} + export const fetchVariables = async ( token: string, project_id: string, diff --git a/src/mcp/tools/environmentTools.ts b/src/mcp/tools/environmentTools.ts index 4279d21e2..e357916f9 100644 --- a/src/mcp/tools/environmentTools.ts +++ b/src/mcp/tools/environmentTools.ts @@ -1,9 +1,9 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' +import { DevCycleApiClient } from '../utils/api' import { - DevCycleApiClient, fetchEnvironments, fetchEnvironmentByKey, -} from '../utils/api' +} from '../../api/environments' import { GetSdkKeysArgsSchema, ListEnvironmentsArgsSchema } from '../types' import { ToolHandler } from '../server' diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index fc548dd80..61a9da956 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -1,11 +1,7 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { - DevCycleApiClient, - fetchFeatures, - createFeature, - enableTargeting, - disableTargeting, -} from '../utils/api' +import { DevCycleApiClient } from '../utils/api' +import { fetchFeatures, createFeature } from '../../api/features' +import { enableTargeting, disableTargeting } from '../../api/targeting' import { ListFeaturesArgsSchema, CreateFeatureArgsSchema, diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts index 69f1baee0..2139b36a7 100644 --- a/src/mcp/tools/projectTools.ts +++ b/src/mcp/tools/projectTools.ts @@ -1,5 +1,6 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient, fetchProjects, fetchProject } from '../utils/api' +import { DevCycleApiClient } from '../utils/api' +import { fetchProjects, fetchProject } from '../../api/projects' import { ListProjectsArgsSchema } from '../types' import { ToolHandler } from '../server' diff --git a/src/mcp/tools/selfTargetingTools.ts b/src/mcp/tools/selfTargetingTools.ts index bb4b33676..7f01ea9bd 100644 --- a/src/mcp/tools/selfTargetingTools.ts +++ b/src/mcp/tools/selfTargetingTools.ts @@ -1,13 +1,12 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' +import { DevCycleApiClient } from '../utils/api' +import { fetchUserProfile, updateUserProfile } from '../../api/userProfile' import { - DevCycleApiClient, - fetchUserProfile, - updateUserProfile, fetchProjectOverridesForUser, updateOverride, deleteFeatureOverrides, deleteAllProjectOverrides, -} from '../utils/api' +} from '../../api/overrides' import { UpdateSelfTargetingIdentityArgsSchema, SetSelfTargetingOverrideArgsSchema, diff --git a/src/mcp/tools/variableTools.ts b/src/mcp/tools/variableTools.ts index 4fbd78be8..c7e727a93 100644 --- a/src/mcp/tools/variableTools.ts +++ b/src/mcp/tools/variableTools.ts @@ -1,6 +1,17 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient, fetchVariables } from '../utils/api' -import { ListVariablesArgsSchema } from '../types' +import { DevCycleApiClient } from '../utils/api' +import { + fetchVariables, + createVariable, + updateVariable, + deleteVariable, +} from '../../api/variables' +import { + ListVariablesArgsSchema, + CreateVariableArgsSchema, + UpdateVariableArgsSchema, + DeleteVariableArgsSchema, +} from '../types' import { ToolHandler } from '../server' export const variableToolDefinitions: Tool[] = [ @@ -26,6 +37,166 @@ export const variableToolDefinitions: Tool[] = [ }, }, }, + { + name: 'create_variable', + description: 'Create a new variable', + inputSchema: { + type: 'object', + properties: { + name: { + type: 'string', + description: 'Variable name (1-100 characters)', + }, + description: { + type: 'string', + description: 'Variable description (max 1000 characters)', + }, + key: { + type: 'string', + description: + 'Unique variable key (1-100 characters, must match pattern ^[a-z0-9-_.]+$)', + }, + _feature: { + type: 'string', + description: + 'Feature key or ID to associate with this variable', + }, + type: { + type: 'string', + enum: ['String', 'Boolean', 'Number', 'JSON'], + description: 'Variable type', + }, + defaultValue: { + description: 'Default value for the variable', + }, + validationSchema: { + type: 'object', + description: 'Validation schema for variable values', + properties: { + schemaType: { + type: 'string', + description: 'Schema type', + }, + enumValues: { + type: 'array', + description: 'Allowed enum values', + }, + regexPattern: { + type: 'string', + description: 'Regex pattern for validation', + }, + jsonSchema: { + type: 'string', + description: 'JSON schema for validation', + }, + description: { + type: 'string', + description: 'Schema description', + }, + exampleValue: { + description: 'Example value for the schema', + }, + }, + }, + tags: { + type: 'array', + items: { + type: 'string', + }, + description: 'Tags to organize variables', + }, + }, + required: ['key', 'type'], + }, + }, + { + name: 'update_variable', + description: 'Update an existing variable', + inputSchema: { + type: 'object', + properties: { + key: { + type: 'string', + description: 'Current variable key', + }, + name: { + type: 'string', + description: 'Updated variable name (1-100 characters)', + }, + description: { + type: 'string', + description: + 'Updated variable description (max 1000 characters)', + }, + new_key: { + type: 'string', + description: + 'New variable key (1-100 characters, must match pattern ^[a-z0-9-_.]+$)', + }, + type: { + type: 'string', + enum: ['String', 'Boolean', 'Number', 'JSON'], + description: 'Variable type', + }, + validationSchema: { + type: 'object', + description: 'Validation schema for variable values', + properties: { + schemaType: { + type: 'string', + description: 'Schema type', + }, + enumValues: { + type: 'array', + description: 'Allowed enum values', + }, + regexPattern: { + type: 'string', + description: 'Regex pattern for validation', + }, + jsonSchema: { + type: 'string', + description: 'JSON schema for validation', + }, + description: { + type: 'string', + description: 'Schema description', + }, + exampleValue: { + description: 'Example value for the schema', + }, + }, + }, + persistent: { + type: 'boolean', + description: + 'Whether the variable is intended to be long-lived within a feature', + }, + tags: { + type: 'array', + items: { + type: 'string', + }, + description: 'Tags to organize variables', + }, + }, + required: ['key'], + }, + }, + { + name: 'delete_variable', + description: 'Delete a variable', + inputSchema: { + type: 'object', + properties: { + key: { + type: 'string', + description: 'Variable key to delete', + }, + }, + required: ['key'], + }, + }, ] export const variableToolHandlers: Record<string, ToolHandler> = { @@ -45,4 +216,64 @@ export const variableToolHandlers: Record<string, ToolHandler> = { }, ) }, + create_variable: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = CreateVariableArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'createVariable', + validatedArgs, + async (authToken, projectKey) => { + const params = { + name: validatedArgs.name, + description: validatedArgs.description, + key: validatedArgs.key, + _feature: validatedArgs._feature, + type: validatedArgs.type, + defaultValue: validatedArgs.defaultValue, + validationSchema: validatedArgs.validationSchema, + tags: validatedArgs.tags, + } + return await createVariable(authToken, projectKey, params) + }, + ) + }, + update_variable: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = UpdateVariableArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'updateVariable', + validatedArgs, + async (authToken, projectKey) => { + const params = { + name: validatedArgs.name, + description: validatedArgs.description, + key: validatedArgs.new_key, + type: validatedArgs.type, + validationSchema: validatedArgs.validationSchema, + persistent: validatedArgs.persistent, + tags: validatedArgs.tags, + } + return await updateVariable( + authToken, + projectKey, + validatedArgs.key, + params, + ) + }, + ) + }, + delete_variable: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = DeleteVariableArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'deleteVariable', + validatedArgs, + async (authToken, projectKey) => { + await deleteVariable(authToken, projectKey, validatedArgs.key) + return { + message: `Variable '${validatedArgs.key}' deleted successfully`, + } + }, + ) + }, } diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 46984935c..657942a7c 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -13,6 +13,59 @@ export const ListVariablesArgsSchema = z.object({ per_page: z.number().min(1).max(1000).default(100).optional(), }) +export const CreateVariableArgsSchema = z.object({ + name: z.string().min(1).max(100).optional(), + description: z.string().max(1000).optional(), + key: z + .string() + .min(1) + .max(100) + .regex(/^[a-z0-9-_.]+$/), + _feature: z.string().optional(), + type: z.enum(['String', 'Boolean', 'Number', 'JSON']), + defaultValue: z.any().optional(), + validationSchema: z + .object({ + schemaType: z.string(), + enumValues: z.array(z.any()).optional(), + regexPattern: z.string().optional(), + jsonSchema: z.string().optional(), + description: z.string(), + exampleValue: z.any(), + }) + .optional(), + tags: z.array(z.string()).optional(), +}) + +export const UpdateVariableArgsSchema = z.object({ + key: z.string(), + name: z.string().min(1).max(100).optional(), + description: z.string().max(1000).optional(), + new_key: z + .string() + .min(1) + .max(100) + .regex(/^[a-z0-9-_.]+$/) + .optional(), + type: z.enum(['String', 'Boolean', 'Number', 'JSON']).optional(), + validationSchema: z + .object({ + schemaType: z.string(), + enumValues: z.array(z.any()).optional(), + regexPattern: z.string().optional(), + jsonSchema: z.string().optional(), + description: z.string(), + exampleValue: z.any(), + }) + .optional(), + persistent: z.boolean().optional(), + tags: z.array(z.string()).optional(), +}) + +export const DeleteVariableArgsSchema = z.object({ + key: z.string(), +}) + export const ListProjectsArgsSchema = z.object({ sort_by: z .enum([ @@ -90,6 +143,9 @@ export const ClearSelfTargetingOverridesArgsSchema = z.object({ // Type inference helpers export type ListFeaturesArgs = z.infer<typeof ListFeaturesArgsSchema> export type ListVariablesArgs = z.infer<typeof ListVariablesArgsSchema> +export type CreateVariableArgs = z.infer<typeof CreateVariableArgsSchema> +export type UpdateVariableArgs = z.infer<typeof UpdateVariableArgsSchema> +export type DeleteVariableArgs = z.infer<typeof DeleteVariableArgsSchema> export type ListProjectsArgs = z.infer<typeof ListProjectsArgsSchema> export type ListEnvironmentsArgs = z.infer<typeof ListEnvironmentsArgsSchema> export type GetSdkKeysArgs = z.infer<typeof GetSdkKeysArgsSchema> diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index f9d60a6d4..f00a663e3 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -1,31 +1,4 @@ import { DevCycleAuth } from './auth' -import { fetchFeatures, createFeature } from '../../api/features' -import { fetchVariables } from '../../api/variables' -import { - fetchEnvironmentByKey, - fetchEnvironments, -} from '../../api/environments' -import { fetchProject, fetchProjects } from '../../api/projects' -import { enableTargeting, disableTargeting } from '../../api/targeting' -import { fetchUserProfile, updateUserProfile } from '../../api/userProfile' -import { - fetchProjectOverridesForUser, - updateOverride, - deleteAllProjectOverrides, - deleteFeatureOverrides, -} from '../../api/overrides' -import type { - ListFeaturesArgs, - ListVariablesArgs, - ListProjectsArgs, - GetSdkKeysArgs, - EnableTargetingArgs, - DisableTargetingArgs, - CreateFeatureArgs, - UpdateSelfTargetingIdentityArgs, - SetSelfTargetingOverrideArgs, - ClearSelfTargetingOverridesArgs, -} from '../types' function getErrorMessage(error: unknown): string { if (error instanceof Error) { @@ -86,22 +59,3 @@ export class DevCycleApiClient { return this.auth } } - -// Export API functions for use in tool files -export { - fetchFeatures, - createFeature, - fetchVariables, - fetchEnvironmentByKey, - fetchEnvironments, - fetchProject, - fetchProjects, - enableTargeting, - disableTargeting, - fetchUserProfile, - updateUserProfile, - fetchProjectOverridesForUser, - updateOverride, - deleteAllProjectOverrides, - deleteFeatureOverrides, -} From 83072a7262ab925e95bc1d391d58a8dc8db673a5 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 16:29:14 -0400 Subject: [PATCH 26/74] feat: add fetch_feature_variations / create_feature_variation / update_feature_variation tool calls --- src/mcp/tools/featureTools.ts | 152 ++++++++++++++++++++++++++++++++++ src/mcp/types.ts | 35 ++++++++ 2 files changed, 187 insertions(+) diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index 61a9da956..d838064ea 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -1,12 +1,20 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' import { DevCycleApiClient } from '../utils/api' import { fetchFeatures, createFeature } from '../../api/features' +import { + fetchVariations, + createVariation, + updateVariation, +} from '../../api/variations' import { enableTargeting, disableTargeting } from '../../api/targeting' import { ListFeaturesArgsSchema, CreateFeatureArgsSchema, EnableTargetingArgsSchema, DisableTargetingArgsSchema, + ListVariationsArgsSchema, + CreateVariationArgsSchema, + UpdateVariationArgsSchema, } from '../types' import { ToolHandler } from '../server' @@ -64,6 +72,81 @@ export const featureToolDefinitions: Tool[] = [ }, }, }, + { + name: 'fetch_feature_variations', + description: 'Get a list of variations for a feature', + inputSchema: { + type: 'object', + properties: { + feature_key: { + type: 'string', + description: 'The key of the feature', + }, + }, + required: ['feature_key'], + }, + }, + { + name: 'create_feature_variation', + description: 'Create a new variation within a feature', + inputSchema: { + type: 'object', + properties: { + feature_key: { + type: 'string', + description: 'The key of the feature', + }, + key: { + type: 'string', + description: + 'Unique variation key (1-100 characters, must match pattern ^[a-z0-9-_.]+$)', + }, + name: { + type: 'string', + description: + 'Human-readable variation name (max 100 characters)', + }, + variables: { + type: 'object', + description: + 'Optional key-value map of variable keys to their values for this variation (supports string, number, boolean, and object values)', + }, + }, + required: ['feature_key', 'key', 'name'], + }, + }, + { + name: 'update_feature_variation', + description: 'Update an existing variation by key', + inputSchema: { + type: 'object', + properties: { + feature_key: { + type: 'string', + description: 'The key of the feature', + }, + variation_key: { + type: 'string', + description: 'The key of the variation to update', + }, + key: { + type: 'string', + description: + 'New variation key (1-100 characters, must match pattern ^[a-z0-9-_.]+$)', + }, + name: { + type: 'string', + description: 'New variation name (max 100 characters)', + }, + variables: { + type: 'object', + description: + 'Overrides the key-value map of variable keys to their values for this variation (supports string, number, boolean, and object values)', + }, + }, + required: ['feature_key', 'variation_key'], + }, + }, { name: 'enable_targeting', description: 'Enable targeting for a feature in an environment', @@ -149,6 +232,75 @@ export const featureToolHandlers: Record<string, ToolHandler> = { }, ) }, + fetch_feature_variations: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = ListVariationsArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'fetchFeatureVariations', + validatedArgs, + async (authToken, projectKey) => { + return await fetchVariations( + authToken, + projectKey, + validatedArgs.feature_key, + ) + }, + ) + }, + create_feature_variation: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = CreateVariationArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'createFeatureVariation', + validatedArgs, + async (authToken, projectKey) => { + const variationData = { + key: validatedArgs.key, + name: validatedArgs.name, + variables: validatedArgs.variables, + } + + return await createVariation( + authToken, + projectKey, + validatedArgs.feature_key, + variationData, + ) + }, + ) + }, + update_feature_variation: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = UpdateVariationArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'updateFeatureVariation', + validatedArgs, + async (authToken, projectKey) => { + const variationData = { + key: validatedArgs.key, + name: validatedArgs.name, + variables: validatedArgs.variables, + } + + return await updateVariation( + authToken, + projectKey, + validatedArgs.feature_key, + validatedArgs.variation_key, + variationData, + ) + }, + ) + }, enable_targeting: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = EnableTargetingArgsSchema.parse(args) diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 657942a7c..a01027654 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -140,6 +140,38 @@ export const ClearSelfTargetingOverridesArgsSchema = z.object({ environment_key: z.string(), }) +export const ListVariationsArgsSchema = z.object({ + feature_key: z.string(), +}) + +const VariationVariablesSchema = z + .record( + z.union([z.string(), z.number(), z.boolean(), z.record(z.unknown())]), + ) + .optional() + +export const CreateVariationArgsSchema = z.object({ + feature_key: z.string(), + key: z + .string() + .max(100) + .regex(/^[a-z0-9-_.]+$/), + name: z.string().max(100), + variables: VariationVariablesSchema, +}) + +export const UpdateVariationArgsSchema = z.object({ + feature_key: z.string(), + variation_key: z.string(), + key: z + .string() + .max(100) + .regex(/^[a-z0-9-_.]+$/) + .optional(), + name: z.string().max(100).optional(), + variables: VariationVariablesSchema, +}) + // Type inference helpers export type ListFeaturesArgs = z.infer<typeof ListFeaturesArgsSchema> export type ListVariablesArgs = z.infer<typeof ListVariablesArgsSchema> @@ -152,6 +184,9 @@ export type GetSdkKeysArgs = z.infer<typeof GetSdkKeysArgsSchema> export type EnableTargetingArgs = z.infer<typeof EnableTargetingArgsSchema> export type DisableTargetingArgs = z.infer<typeof DisableTargetingArgsSchema> export type CreateFeatureArgs = z.infer<typeof CreateFeatureArgsSchema> +export type ListVariationsArgs = z.infer<typeof ListVariationsArgsSchema> +export type CreateVariationArgs = z.infer<typeof CreateVariationArgsSchema> +export type UpdateVariationArgs = z.infer<typeof UpdateVariationArgsSchema> export type UpdateSelfTargetingIdentityArgs = z.infer< typeof UpdateSelfTargetingIdentityArgsSchema > From e231eb1dc03d4ab6e32ca0f875d3e7b887dd9004 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 16:46:51 -0400 Subject: [PATCH 27/74] feat: add list_feature_targeting and update_feature_targeting tools --- src/mcp/tools/featureTools.ts | 230 +++++++++++++++++++++++++++++++++- src/mcp/types.ts | 54 ++++++++ 2 files changed, 283 insertions(+), 1 deletion(-) diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index d838064ea..77296ab88 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -6,7 +6,12 @@ import { createVariation, updateVariation, } from '../../api/variations' -import { enableTargeting, disableTargeting } from '../../api/targeting' +import { + enableTargeting, + disableTargeting, + fetchTargetingForFeature, + updateFeatureConfigForEnvironment, +} from '../../api/targeting' import { ListFeaturesArgsSchema, CreateFeatureArgsSchema, @@ -15,6 +20,8 @@ import { ListVariationsArgsSchema, CreateVariationArgsSchema, UpdateVariationArgsSchema, + ListFeatureTargetingArgsSchema, + UpdateFeatureTargetingArgsSchema, } from '../types' import { ToolHandler } from '../server' @@ -183,6 +190,185 @@ export const featureToolDefinitions: Tool[] = [ required: ['feature_key', 'environment_key'], }, }, + { + name: 'list_feature_targeting', + description: + 'List feature configurations (targeting rules) for a feature', + inputSchema: { + type: 'object', + properties: { + feature_key: { + type: 'string', + description: 'The key of the feature', + }, + environment_key: { + type: 'string', + description: + 'The key of the environment (optional - if not provided, returns all environments)', + }, + }, + required: ['feature_key'], + }, + }, + { + name: 'update_feature_targeting', + description: + 'Update feature configuration (targeting rules) for a feature in an environment', + inputSchema: { + type: 'object', + properties: { + feature_key: { + type: 'string', + description: 'The key of the feature', + }, + environment_key: { + type: 'string', + description: 'The key of the environment', + }, + status: { + type: 'string', + enum: ['active', 'inactive', 'archived'], + description: 'The targeting status for the feature', + }, + targets: { + type: 'array', + description: + 'Array of targeting rules/targets for the feature', + items: { + type: 'object', + properties: { + _id: { + type: 'string', + description: + 'Target ID (optional for new targets)', + }, + name: { + type: 'string', + description: 'Target name', + }, + audience: { + type: 'object', + description: + 'Audience definition for the target', + properties: { + name: { + type: 'string', + description: 'Audience name', + }, + filters: { + type: 'object', + description: 'Filter definition', + properties: { + filters: { + type: 'array', + description: + 'Array of filter conditions', + }, + operator: { + type: 'string', + enum: ['and', 'or'], + description: + 'Logical operator for combining filters', + }, + }, + required: ['filters', 'operator'], + }, + }, + required: ['filters'], + }, + distribution: { + type: 'array', + description: + 'Variation distribution for the target', + items: { + type: 'object', + properties: { + percentage: { + type: 'number', + minimum: 0, + maximum: 1, + description: + 'Percentage of traffic for this variation (0-1)', + }, + _variation: { + type: 'string', + description: 'Variation ID', + }, + }, + required: ['percentage', '_variation'], + }, + }, + rollout: { + type: 'object', + description: 'Rollout configuration (optional)', + properties: { + type: { + type: 'string', + enum: [ + 'schedule', + 'gradual', + 'stepped', + ], + description: 'Rollout type', + }, + startDate: { + type: 'string', + format: 'date-time', + description: 'Rollout start date', + }, + startPercentage: { + type: 'number', + minimum: 0, + maximum: 1, + description: + 'Starting percentage for rollout', + }, + stages: { + type: 'array', + description: 'Rollout stages', + items: { + type: 'object', + properties: { + percentage: { + type: 'number', + minimum: 0, + maximum: 1, + description: + 'Target percentage for this stage', + }, + type: { + type: 'string', + enum: [ + 'linear', + 'discrete', + ], + description: 'Stage type', + }, + date: { + type: 'string', + format: 'date-time', + description: + 'Date for this stage', + }, + }, + required: [ + 'percentage', + 'type', + 'date', + ], + }, + }, + }, + required: ['type', 'startDate'], + }, + }, + required: ['audience', 'distribution'], + }, + }, + }, + required: ['feature_key', 'environment_key'], + }, + }, ] export const featureToolHandlers: Record<string, ToolHandler> = { @@ -333,4 +519,46 @@ export const featureToolHandlers: Record<string, ToolHandler> = { }, ) }, + list_feature_targeting: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = ListFeatureTargetingArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'listFeatureTargeting', + validatedArgs, + async (authToken, projectKey) => { + return await fetchTargetingForFeature( + authToken, + projectKey, + validatedArgs.feature_key, + validatedArgs.environment_key, + ) + }, + ) + }, + update_feature_targeting: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = UpdateFeatureTargetingArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'updateFeatureTargeting', + validatedArgs, + async (authToken, projectKey) => { + return await updateFeatureConfigForEnvironment( + authToken, + projectKey, + validatedArgs.feature_key, + validatedArgs.environment_key, + { + status: validatedArgs.status, + targets: validatedArgs.targets, + }, + ) + }, + ) + }, } diff --git a/src/mcp/types.ts b/src/mcp/types.ts index a01027654..a5de87edb 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -172,6 +172,54 @@ export const UpdateVariationArgsSchema = z.object({ variables: VariationVariablesSchema, }) +export const ListFeatureTargetingArgsSchema = z.object({ + feature_key: z.string(), + environment_key: z.string().optional(), +}) + +export const UpdateFeatureTargetingArgsSchema = z.object({ + feature_key: z.string(), + environment_key: z.string(), + status: z.enum(['active', 'inactive', 'archived']).optional(), + targets: z + .array( + z.object({ + _id: z.string().optional(), + name: z.string().optional(), + audience: z.object({ + name: z.string().max(100).optional(), + filters: z.object({ + filters: z.array(z.any()), + operator: z.enum(['and', 'or']), + }), + }), + rollout: z + .object({ + startPercentage: z.number().gte(0).lte(1).optional(), + type: z.enum(['schedule', 'gradual', 'stepped']), + startDate: z.string().datetime(), + stages: z + .array( + z.object({ + percentage: z.number().gte(0).lte(1), + type: z.enum(['linear', 'discrete']), + date: z.string().datetime(), + }), + ) + .optional(), + }) + .optional(), + distribution: z.array( + z.object({ + percentage: z.number().gte(0).lte(1), + _variation: z.string(), + }), + ), + }), + ) + .optional(), +}) + // Type inference helpers export type ListFeaturesArgs = z.infer<typeof ListFeaturesArgsSchema> export type ListVariablesArgs = z.infer<typeof ListVariablesArgsSchema> @@ -196,3 +244,9 @@ export type SetSelfTargetingOverrideArgs = z.infer< export type ClearSelfTargetingOverridesArgs = z.infer< typeof ClearSelfTargetingOverridesArgsSchema > +export type ListFeatureTargetingArgs = z.infer< + typeof ListFeatureTargetingArgsSchema +> +export type UpdateFeatureTargetingArgs = z.infer< + typeof UpdateFeatureTargetingArgsSchema +> From 8f809d4f7c995d8a6f8d3da29e033e04e69458b9 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 21:49:02 -0400 Subject: [PATCH 28/74] feat: add update_feature tool call, start using zodClient.ts types --- src/mcp/tools/featureTools.ts | 244 ++++++++++++++++++++++++++++++++-- src/mcp/types.ts | 17 ++- 2 files changed, 245 insertions(+), 16 deletions(-) diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index 77296ab88..2ed63d775 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -1,6 +1,6 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' import { DevCycleApiClient } from '../utils/api' -import { fetchFeatures, createFeature } from '../../api/features' +import { fetchFeatures, createFeature, updateFeature } from '../../api/features' import { fetchVariations, createVariation, @@ -15,6 +15,7 @@ import { import { ListFeaturesArgsSchema, CreateFeatureArgsSchema, + UpdateFeatureArgsSchema, EnableTargetingArgsSchema, DisableTargetingArgsSchema, ListVariationsArgsSchema, @@ -56,21 +57,121 @@ export const featureToolDefinitions: Tool[] = [ properties: { key: { type: 'string', - description: 'Unique feature key', + description: + 'Unique feature key (max 100 characters, pattern: ^[a-z0-9-_.]+$)', }, name: { type: 'string', - description: 'Human-readable feature name', + description: + 'Human-readable feature name (max 100 characters)', }, description: { type: 'string', - description: 'Feature description', + description: 'Feature description (max 1000 characters)', }, type: { type: 'string', enum: ['release', 'experiment', 'permission', 'ops'], description: 'Feature type', }, + tags: { + type: 'array', + items: { + type: 'string', + }, + description: 'Tags to organize features', + }, + controlVariation: { + type: 'string', + description: + 'The key of the variation that is used as the control variation for Metrics', + }, + settings: { + type: 'object', + properties: { + publicName: { + type: 'string', + description: + 'Public name for the feature (max 100 characters)', + }, + publicDescription: { + type: 'string', + description: + 'Public description for the feature (max 1000 characters)', + }, + optInEnabled: { + type: 'boolean', + description: + 'Whether opt-in is enabled for the feature', + }, + }, + description: + 'Feature-level settings (all properties required if provided)', + required: [ + 'publicName', + 'publicDescription', + 'optInEnabled', + ], + }, + sdkVisibility: { + type: 'object', + properties: { + mobile: { + type: 'boolean', + description: + 'Whether the feature is visible to mobile SDKs', + }, + client: { + type: 'boolean', + description: + 'Whether the feature is visible to client SDKs', + }, + server: { + type: 'boolean', + description: + 'Whether the feature is visible to server SDKs', + }, + }, + description: + 'SDK Type Visibility Settings (all properties required if provided)', + required: ['mobile', 'client', 'server'], + }, + variables: { + type: 'array', + description: + 'Array of variables to create or reassociate with this feature', + items: { + type: 'object', + description: 'Variable creation or reassociation data', + }, + }, + variations: { + type: 'array', + description: 'Array of variations for this feature', + items: { + type: 'object', + description: 'Variation data with key, name, variables', + }, + }, + configurations: { + type: 'object', + description: + 'Environment-specific configurations (key-value map of environment keys to config)', + additionalProperties: { + type: 'object', + properties: { + targets: { + type: 'array', + description: + 'Targeting rules for this environment', + }, + status: { + type: 'string', + description: 'Status for this environment', + }, + }, + }, + }, interactive: { type: 'boolean', description: @@ -79,6 +180,115 @@ export const featureToolDefinitions: Tool[] = [ }, }, }, + { + name: 'update_feature', + description: 'Update an existing feature flag', + inputSchema: { + type: 'object', + properties: { + key: { + type: 'string', + description: + 'The key of the feature to update(1-100 characters, must match pattern ^[a-z0-9-_.]+$)', + }, + name: { + type: 'string', + description: + 'Human-readable feature name (max 100 characters)', + }, + description: { + type: 'string', + description: 'Feature description (max 1000 characters)', + }, + type: { + type: 'string', + enum: ['release', 'experiment', 'permission', 'ops'], + description: 'Feature type', + }, + tags: { + type: 'array', + items: { + type: 'string', + }, + description: 'Tags to organize Features on the dashboard', + }, + controlVariation: { + type: 'string', + description: + 'The key of the variation that is used as the control variation for Metrics', + }, + settings: { + type: 'object', + properties: { + publicName: { + type: 'string', + description: + 'Public name for the feature (max 100 characters)', + }, + publicDescription: { + type: 'string', + description: + 'Public description for the feature (max 1000 characters)', + }, + optInEnabled: { + type: 'boolean', + description: + 'Whether opt-in is enabled for the feature', + }, + }, + description: + 'Feature-level settings (all properties required if provided)', + required: [ + 'publicName', + 'publicDescription', + 'optInEnabled', + ], + }, + sdkVisibility: { + type: 'object', + properties: { + mobile: { + type: 'boolean', + description: + 'Whether the feature is visible to mobile SDKs', + }, + client: { + type: 'boolean', + description: + 'Whether the feature is visible to client SDKs', + }, + server: { + type: 'boolean', + description: + 'Whether the feature is visible to server SDKs', + }, + }, + description: + 'SDK Type Visibility Settings (all properties required if provided)', + required: ['mobile', 'client', 'server'], + }, + variables: { + type: 'array', + description: + 'Array of variables to create or reassociate with this feature', + items: { + type: 'object', + description: 'Variable creation or reassociation data', + }, + }, + variations: { + type: 'array', + description: 'Array of variations for this feature', + items: { + type: 'object', + description: + 'Variation data with key, name, variables, and _id', + }, + }, + }, + required: ['key'], + }, + }, { name: 'fetch_feature_variations', description: 'Get a list of variations for a feature', @@ -407,17 +617,31 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ) } - const featureData = { - key: validatedArgs.key, - name: validatedArgs.name, - description: validatedArgs.description || '', - type: validatedArgs.type || 'release', - } + // Remove the MCP-specific 'interactive' property and pass the rest to the API + const { interactive, ...featureData } = validatedArgs return await createFeature(authToken, projectKey, featureData) }, ) }, + update_feature: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = UpdateFeatureArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'updateFeature', + validatedArgs, + async (authToken, projectKey) => { + const { key, ...updateData } = validatedArgs + + return await updateFeature( + authToken, + projectKey, + key, + updateData, + ) + }, + ) + }, fetch_feature_variations: async ( args: unknown, apiClient: DevCycleApiClient, diff --git a/src/mcp/types.ts b/src/mcp/types.ts index a5de87edb..2d889dbf3 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -1,4 +1,5 @@ import { z } from 'zod' +import { schemas } from '../api/zodClient' // Zod schemas for MCP tool arguments export const ListFeaturesArgsSchema = z.object({ @@ -117,12 +118,15 @@ export const DisableTargetingArgsSchema = z.object({ environment_key: z.string(), }) -export const CreateFeatureArgsSchema = z.object({ - key: z.string().optional(), - name: z.string().optional(), - description: z.string().optional(), - type: z.enum(['release', 'experiment', 'permission', 'ops']).optional(), - interactive: z.boolean().optional(), +export const CreateFeatureArgsSchema = schemas.CreateFeatureDto.extend({ + interactive: z.boolean().optional(), // MCP-specific: prompt for missing fields +}) + +export const UpdateFeatureArgsSchema = schemas.UpdateFeatureDto.extend({ + key: z + .string() + .max(100) + .regex(/^[a-z0-9-_.]+$/), // Make key required for identifying the feature }) export const UpdateSelfTargetingIdentityArgsSchema = z.object({ @@ -232,6 +236,7 @@ export type GetSdkKeysArgs = z.infer<typeof GetSdkKeysArgsSchema> export type EnableTargetingArgs = z.infer<typeof EnableTargetingArgsSchema> export type DisableTargetingArgs = z.infer<typeof DisableTargetingArgsSchema> export type CreateFeatureArgs = z.infer<typeof CreateFeatureArgsSchema> +export type UpdateFeatureArgs = z.infer<typeof UpdateFeatureArgsSchema> export type ListVariationsArgs = z.infer<typeof ListVariationsArgsSchema> export type CreateVariationArgs = z.infer<typeof CreateVariationArgsSchema> export type UpdateVariationArgs = z.infer<typeof UpdateVariationArgsSchema> From 482b9386467a33e1460bc3e1dd223106d54ed429 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 22:33:21 -0400 Subject: [PATCH 29/74] feat: cleanup types.ts, use zodClient.ts types as base --- src/mcp/tools/environmentTools.ts | 21 ++-- src/mcp/tools/featureTools.ts | 77 ++++++------ src/mcp/tools/projectTools.ts | 17 +-- src/mcp/tools/variableTools.ts | 66 +++------- src/mcp/types.ts | 193 ++++++------------------------ 5 files changed, 104 insertions(+), 270 deletions(-) diff --git a/src/mcp/tools/environmentTools.ts b/src/mcp/tools/environmentTools.ts index e357916f9..c2e618367 100644 --- a/src/mcp/tools/environmentTools.ts +++ b/src/mcp/tools/environmentTools.ts @@ -25,14 +25,14 @@ export const environmentToolDefinitions: Tool[] = [ description: 'Page number (default: 1)', minimum: 1, }, - per_page: { + perPage: { type: 'number', description: 'Number of items per page (default: 100, max: 1000)', minimum: 1, maximum: 1000, }, - sort_by: { + sortBy: { type: 'string', description: 'Field to sort by (default: createdAt)', enum: [ @@ -44,12 +44,12 @@ export const environmentToolDefinitions: Tool[] = [ 'propertyKey', ], }, - sort_order: { + sortOrder: { type: 'string', enum: ['asc', 'desc'], description: 'Sort order (default: desc)', }, - created_by: { + createdBy: { type: 'string', description: 'Filter by creator user ID', }, @@ -62,17 +62,17 @@ export const environmentToolDefinitions: Tool[] = [ inputSchema: { type: 'object', properties: { - environment_key: { + environmentKey: { type: 'string', description: 'The key of the environment', }, - key_type: { + keyType: { type: 'string', enum: ['mobile', 'server', 'client'], description: 'The type of SDK key to retrieve', }, }, - required: ['environment_key'], + required: ['environmentKey'], }, }, ] @@ -99,15 +99,14 @@ export const environmentToolHandlers: Record<string, ToolHandler> = { const environment = await fetchEnvironmentByKey( authToken, projectKey, - validatedArgs.environment_key, + validatedArgs.environmentKey, ) const sdkKeys = environment.sdkKeys - if (validatedArgs.key_type) { + if (validatedArgs.keyType) { return { - [validatedArgs.key_type]: - sdkKeys[validatedArgs.key_type], + [validatedArgs.keyType]: sdkKeys[validatedArgs.keyType], } } else { return { diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index 2ed63d775..debf9ddcf 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -316,7 +316,7 @@ export const featureToolDefinitions: Tool[] = [ key: { type: 'string', description: - 'Unique variation key (1-100 characters, must match pattern ^[a-z0-9-_.]+$)', + 'Unique variation key (max 100 characters, pattern: ^[a-z0-9-_.]+$)', }, name: { type: 'string', @@ -327,6 +327,7 @@ export const featureToolDefinitions: Tool[] = [ type: 'object', description: 'Optional key-value map of variable keys to their values for this variation (supports string, number, boolean, and object values)', + additionalProperties: true, }, }, required: ['feature_key', 'key', 'name'], @@ -349,7 +350,7 @@ export const featureToolDefinitions: Tool[] = [ key: { type: 'string', description: - 'New variation key (1-100 characters, must match pattern ^[a-z0-9-_.]+$)', + 'New variation key (max 100 characters, pattern: ^[a-z0-9-_.]+$)', }, name: { type: 'string', @@ -358,7 +359,12 @@ export const featureToolDefinitions: Tool[] = [ variables: { type: 'object', description: - 'Overrides the key-value map of variable keys to their values for this variation (supports string, number, boolean, and object values)', + 'Key-value map of variable keys to their values for this variation (supports string, number, boolean, and object values)', + additionalProperties: true, + }, + _id: { + type: 'string', + description: 'Internal variation ID (optional)', }, }, required: ['feature_key', 'variation_key'], @@ -454,7 +460,7 @@ export const featureToolDefinitions: Tool[] = [ }, name: { type: 'string', - description: 'Target name', + description: 'Target name (optional)', }, audience: { type: 'object', @@ -463,16 +469,18 @@ export const featureToolDefinitions: Tool[] = [ properties: { name: { type: 'string', - description: 'Audience name', + description: + 'Audience name (max 100 characters, optional)', }, filters: { type: 'object', - description: 'Filter definition', + description: + 'Audience filters with logical operator', properties: { filters: { type: 'array', description: - 'Array of filter conditions', + 'Array of filter conditions (supports all, optIn, user, userCountry, userAppVersion, userPlatformVersion, userCustom, audienceMatch filters)', }, operator: { type: 'string', @@ -512,6 +520,13 @@ export const featureToolDefinitions: Tool[] = [ type: 'object', description: 'Rollout configuration (optional)', properties: { + startPercentage: { + type: 'number', + minimum: 0, + maximum: 1, + description: + 'Starting percentage for rollout (optional)', + }, type: { type: 'string', enum: [ @@ -526,16 +541,10 @@ export const featureToolDefinitions: Tool[] = [ format: 'date-time', description: 'Rollout start date', }, - startPercentage: { - type: 'number', - minimum: 0, - maximum: 1, - description: - 'Starting percentage for rollout', - }, stages: { type: 'array', - description: 'Rollout stages', + description: + 'Rollout stages (optional)', items: { type: 'object', properties: { @@ -589,12 +598,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'listFeatures', validatedArgs, async (authToken, projectKey) => { - const query = { - search: validatedArgs.search, - page: validatedArgs.page, - perPage: validatedArgs.per_page, - } - return await fetchFeatures(authToken, projectKey, query) + return await fetchFeatures(authToken, projectKey, validatedArgs) }, ) }, @@ -670,16 +674,12 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'createFeatureVariation', validatedArgs, async (authToken, projectKey) => { - const variationData = { - key: validatedArgs.key, - name: validatedArgs.name, - variables: validatedArgs.variables, - } + const { feature_key, ...variationData } = validatedArgs return await createVariation( authToken, projectKey, - validatedArgs.feature_key, + feature_key, variationData, ) }, @@ -695,17 +695,14 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'updateFeatureVariation', validatedArgs, async (authToken, projectKey) => { - const variationData = { - key: validatedArgs.key, - name: validatedArgs.name, - variables: validatedArgs.variables, - } + const { feature_key, variation_key, ...variationData } = + validatedArgs return await updateVariation( authToken, projectKey, - validatedArgs.feature_key, - validatedArgs.variation_key, + feature_key, + variation_key, variationData, ) }, @@ -772,15 +769,15 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'updateFeatureTargeting', validatedArgs, async (authToken, projectKey) => { + const { feature_key, environment_key, ...configData } = + validatedArgs + return await updateFeatureConfigForEnvironment( authToken, projectKey, - validatedArgs.feature_key, - validatedArgs.environment_key, - { - status: validatedArgs.status, - targets: validatedArgs.targets, - }, + feature_key, + environment_key, + configData, ) }, ) diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts index 2139b36a7..c3522f405 100644 --- a/src/mcp/tools/projectTools.ts +++ b/src/mcp/tools/projectTools.ts @@ -11,7 +11,7 @@ export const projectToolDefinitions: Tool[] = [ inputSchema: { type: 'object', properties: { - sort_by: { + sortBy: { type: 'string', enum: [ 'createdAt', @@ -23,7 +23,7 @@ export const projectToolDefinitions: Tool[] = [ ], description: 'Field to sort by (default: createdAt)', }, - sort_order: { + sortOrder: { type: 'string', enum: ['asc', 'desc'], description: 'Sort order (default: desc)', @@ -33,7 +33,7 @@ export const projectToolDefinitions: Tool[] = [ description: 'Search query to filter projects (minimum 3 characters)', }, - created_by: { + createdBy: { type: 'string', description: 'Filter by creator user ID', }, @@ -41,7 +41,7 @@ export const projectToolDefinitions: Tool[] = [ type: 'number', description: 'Page number (default: 1)', }, - per_page: { + perPage: { type: 'number', description: 'Number of items per page (default: 100, max: 1000)', @@ -67,14 +67,7 @@ export const projectToolHandlers: Record<string, ToolHandler> = { 'listProjects', validatedArgs, async (authToken) => { - return await fetchProjects(authToken, { - sortBy: validatedArgs.sort_by, - sortOrder: validatedArgs.sort_order, - search: validatedArgs.search, - createdBy: validatedArgs.created_by, - page: validatedArgs.page, - perPage: validatedArgs.per_page, - }) + return await fetchProjects(authToken, validatedArgs) }, false, ) diff --git a/src/mcp/tools/variableTools.ts b/src/mcp/tools/variableTools.ts index c7e727a93..6602752d0 100644 --- a/src/mcp/tools/variableTools.ts +++ b/src/mcp/tools/variableTools.ts @@ -98,13 +98,6 @@ export const variableToolDefinitions: Tool[] = [ }, }, }, - tags: { - type: 'array', - items: { - type: 'string', - }, - description: 'Tags to organize variables', - }, }, required: ['key', 'type'], }, @@ -128,11 +121,6 @@ export const variableToolDefinitions: Tool[] = [ description: 'Updated variable description (max 1000 characters)', }, - new_key: { - type: 'string', - description: - 'New variable key (1-100 characters, must match pattern ^[a-z0-9-_.]+$)', - }, type: { type: 'string', enum: ['String', 'Boolean', 'Number', 'JSON'], @@ -167,18 +155,6 @@ export const variableToolDefinitions: Tool[] = [ }, }, }, - persistent: { - type: 'boolean', - description: - 'Whether the variable is intended to be long-lived within a feature', - }, - tags: { - type: 'array', - items: { - type: 'string', - }, - description: 'Tags to organize variables', - }, }, required: ['key'], }, @@ -207,12 +183,11 @@ export const variableToolHandlers: Record<string, ToolHandler> = { 'listVariables', validatedArgs, async (authToken, projectKey) => { - const query = { - search: validatedArgs.search, - page: validatedArgs.page, - perPage: validatedArgs.per_page, - } - return await fetchVariables(authToken, projectKey, query) + return await fetchVariables( + authToken, + projectKey, + validatedArgs, + ) }, ) }, @@ -223,17 +198,11 @@ export const variableToolHandlers: Record<string, ToolHandler> = { 'createVariable', validatedArgs, async (authToken, projectKey) => { - const params = { - name: validatedArgs.name, - description: validatedArgs.description, - key: validatedArgs.key, - _feature: validatedArgs._feature, - type: validatedArgs.type, - defaultValue: validatedArgs.defaultValue, - validationSchema: validatedArgs.validationSchema, - tags: validatedArgs.tags, - } - return await createVariable(authToken, projectKey, params) + return await createVariable( + authToken, + projectKey, + validatedArgs, + ) }, ) }, @@ -244,20 +213,13 @@ export const variableToolHandlers: Record<string, ToolHandler> = { 'updateVariable', validatedArgs, async (authToken, projectKey) => { - const params = { - name: validatedArgs.name, - description: validatedArgs.description, - key: validatedArgs.new_key, - type: validatedArgs.type, - validationSchema: validatedArgs.validationSchema, - persistent: validatedArgs.persistent, - tags: validatedArgs.tags, - } + const { key, ...updateData } = validatedArgs + return await updateVariable( authToken, projectKey, - validatedArgs.key, - params, + key, + updateData, ) }, ) diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 2d889dbf3..05638549f 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -5,62 +5,22 @@ import { schemas } from '../api/zodClient' export const ListFeaturesArgsSchema = z.object({ search: z.string().optional(), page: z.number().min(1).optional(), - per_page: z.number().min(1).max(1000).default(100).optional(), + perPage: z.number().min(1).max(1000).default(100).optional(), }) export const ListVariablesArgsSchema = z.object({ search: z.string().optional(), page: z.number().min(1).optional(), - per_page: z.number().min(1).max(1000).default(100).optional(), + perPage: z.number().min(1).max(1000).default(100).optional(), }) -export const CreateVariableArgsSchema = z.object({ - name: z.string().min(1).max(100).optional(), - description: z.string().max(1000).optional(), - key: z - .string() - .min(1) - .max(100) - .regex(/^[a-z0-9-_.]+$/), - _feature: z.string().optional(), - type: z.enum(['String', 'Boolean', 'Number', 'JSON']), - defaultValue: z.any().optional(), - validationSchema: z - .object({ - schemaType: z.string(), - enumValues: z.array(z.any()).optional(), - regexPattern: z.string().optional(), - jsonSchema: z.string().optional(), - description: z.string(), - exampleValue: z.any(), - }) - .optional(), - tags: z.array(z.string()).optional(), -}) +export const CreateVariableArgsSchema = schemas.CreateVariableDto -export const UpdateVariableArgsSchema = z.object({ - key: z.string(), - name: z.string().min(1).max(100).optional(), - description: z.string().max(1000).optional(), - new_key: z +export const UpdateVariableArgsSchema = schemas.UpdateVariableDto.extend({ + key: z .string() - .min(1) .max(100) - .regex(/^[a-z0-9-_.]+$/) - .optional(), - type: z.enum(['String', 'Boolean', 'Number', 'JSON']).optional(), - validationSchema: z - .object({ - schemaType: z.string(), - enumValues: z.array(z.any()).optional(), - regexPattern: z.string().optional(), - jsonSchema: z.string().optional(), - description: z.string(), - exampleValue: z.any(), - }) - .optional(), - persistent: z.boolean().optional(), - tags: z.array(z.string()).optional(), + .regex(/^[a-z0-9-_.]+$/), // Make key required for identifying the variable }) export const DeleteVariableArgsSchema = z.object({ @@ -68,7 +28,7 @@ export const DeleteVariableArgsSchema = z.object({ }) export const ListProjectsArgsSchema = z.object({ - sort_by: z + sortBy: z .enum([ 'createdAt', 'updatedAt', @@ -78,18 +38,18 @@ export const ListProjectsArgsSchema = z.object({ 'propertyKey', ]) .optional(), - sort_order: z.enum(['asc', 'desc']).optional(), + sortOrder: z.enum(['asc', 'desc']).optional(), search: z.string().min(3).optional(), - created_by: z.string().optional(), + createdBy: z.string().optional(), page: z.number().min(1).optional(), - per_page: z.number().min(1).max(1000).default(100).optional(), + perPage: z.number().min(1).max(1000).default(100).optional(), }) export const ListEnvironmentsArgsSchema = z.object({ search: z.string().min(3).optional(), page: z.number().min(1).optional(), - per_page: z.number().min(1).max(1000).default(100).optional(), - sort_by: z + perPage: z.number().min(1).max(1000).default(100).optional(), + sortBy: z .enum([ 'createdAt', 'updatedAt', @@ -99,13 +59,13 @@ export const ListEnvironmentsArgsSchema = z.object({ 'propertyKey', ]) .optional(), - sort_order: z.enum(['asc', 'desc']).optional(), - created_by: z.string().optional(), + sortOrder: z.enum(['asc', 'desc']).optional(), + createdBy: z.string().optional(), }) export const GetSdkKeysArgsSchema = z.object({ - environment_key: z.string(), - key_type: z.enum(['mobile', 'server', 'client']).optional(), + environmentKey: z.string(), + keyType: z.enum(['mobile', 'server', 'client']).optional(), }) export const EnableTargetingArgsSchema = z.object({ @@ -148,110 +108,33 @@ export const ListVariationsArgsSchema = z.object({ feature_key: z.string(), }) -const VariationVariablesSchema = z - .record( - z.union([z.string(), z.number(), z.boolean(), z.record(z.unknown())]), - ) - .optional() - -export const CreateVariationArgsSchema = z.object({ - feature_key: z.string(), - key: z - .string() - .max(100) - .regex(/^[a-z0-9-_.]+$/), - name: z.string().max(100), - variables: VariationVariablesSchema, +export const CreateVariationArgsSchema = schemas.CreateVariationDto.extend({ + feature_key: z.string(), // MCP-specific: identifies which feature to add variation to }) -export const UpdateVariationArgsSchema = z.object({ - feature_key: z.string(), - variation_key: z.string(), - key: z - .string() - .max(100) - .regex(/^[a-z0-9-_.]+$/) - .optional(), - name: z.string().max(100).optional(), - variables: VariationVariablesSchema, -}) +export const UpdateVariationArgsSchema = + schemas.UpdateFeatureVariationDto.extend({ + feature_key: z.string(), // MCP-specific: identifies which feature the variation belongs to + variation_key: z.string(), // MCP-specific: identifies which variation to update + variables: z + .record( + z.union([ + z.string(), + z.number(), + z.boolean(), + z.record(z.unknown()), + ]), + ) + .optional(), // Constrain to API-compatible types + }) export const ListFeatureTargetingArgsSchema = z.object({ feature_key: z.string(), environment_key: z.string().optional(), }) -export const UpdateFeatureTargetingArgsSchema = z.object({ - feature_key: z.string(), - environment_key: z.string(), - status: z.enum(['active', 'inactive', 'archived']).optional(), - targets: z - .array( - z.object({ - _id: z.string().optional(), - name: z.string().optional(), - audience: z.object({ - name: z.string().max(100).optional(), - filters: z.object({ - filters: z.array(z.any()), - operator: z.enum(['and', 'or']), - }), - }), - rollout: z - .object({ - startPercentage: z.number().gte(0).lte(1).optional(), - type: z.enum(['schedule', 'gradual', 'stepped']), - startDate: z.string().datetime(), - stages: z - .array( - z.object({ - percentage: z.number().gte(0).lte(1), - type: z.enum(['linear', 'discrete']), - date: z.string().datetime(), - }), - ) - .optional(), - }) - .optional(), - distribution: z.array( - z.object({ - percentage: z.number().gte(0).lte(1), - _variation: z.string(), - }), - ), - }), - ) - .optional(), -}) - -// Type inference helpers -export type ListFeaturesArgs = z.infer<typeof ListFeaturesArgsSchema> -export type ListVariablesArgs = z.infer<typeof ListVariablesArgsSchema> -export type CreateVariableArgs = z.infer<typeof CreateVariableArgsSchema> -export type UpdateVariableArgs = z.infer<typeof UpdateVariableArgsSchema> -export type DeleteVariableArgs = z.infer<typeof DeleteVariableArgsSchema> -export type ListProjectsArgs = z.infer<typeof ListProjectsArgsSchema> -export type ListEnvironmentsArgs = z.infer<typeof ListEnvironmentsArgsSchema> -export type GetSdkKeysArgs = z.infer<typeof GetSdkKeysArgsSchema> -export type EnableTargetingArgs = z.infer<typeof EnableTargetingArgsSchema> -export type DisableTargetingArgs = z.infer<typeof DisableTargetingArgsSchema> -export type CreateFeatureArgs = z.infer<typeof CreateFeatureArgsSchema> -export type UpdateFeatureArgs = z.infer<typeof UpdateFeatureArgsSchema> -export type ListVariationsArgs = z.infer<typeof ListVariationsArgsSchema> -export type CreateVariationArgs = z.infer<typeof CreateVariationArgsSchema> -export type UpdateVariationArgs = z.infer<typeof UpdateVariationArgsSchema> -export type UpdateSelfTargetingIdentityArgs = z.infer< - typeof UpdateSelfTargetingIdentityArgsSchema -> -export type SetSelfTargetingOverrideArgs = z.infer< - typeof SetSelfTargetingOverrideArgsSchema -> -export type ClearSelfTargetingOverridesArgs = z.infer< - typeof ClearSelfTargetingOverridesArgsSchema -> -export type ListFeatureTargetingArgs = z.infer< - typeof ListFeatureTargetingArgsSchema -> -export type UpdateFeatureTargetingArgs = z.infer< - typeof UpdateFeatureTargetingArgsSchema -> +export const UpdateFeatureTargetingArgsSchema = + schemas.UpdateFeatureConfigDto.extend({ + feature_key: z.string(), // MCP-specific: identifies which feature to update targeting for + environment_key: z.string(), // MCP-specific: identifies which environment to update targeting in + }) From 8547508ff488f99dccaab62aaad298bb97016a4f Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 22:36:16 -0400 Subject: [PATCH 30/74] feat: implement delete_feature tool --- src/mcp/tools/featureTools.ts | 37 ++++++++++++++++++++++++++++++++++- src/mcp/types.ts | 4 ++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index debf9ddcf..30fa99a93 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -1,6 +1,11 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' import { DevCycleApiClient } from '../utils/api' -import { fetchFeatures, createFeature, updateFeature } from '../../api/features' +import { + fetchFeatures, + createFeature, + updateFeature, + deleteFeature, +} from '../../api/features' import { fetchVariations, createVariation, @@ -16,6 +21,7 @@ import { ListFeaturesArgsSchema, CreateFeatureArgsSchema, UpdateFeatureArgsSchema, + DeleteFeatureArgsSchema, EnableTargetingArgsSchema, DisableTargetingArgsSchema, ListVariationsArgsSchema, @@ -289,6 +295,20 @@ export const featureToolDefinitions: Tool[] = [ required: ['key'], }, }, + { + name: 'delete_feature', + description: 'Delete an existing feature flag', + inputSchema: { + type: 'object', + properties: { + key: { + type: 'string', + description: 'The key of the feature to delete', + }, + }, + required: ['key'], + }, + }, { name: 'fetch_feature_variations', description: 'Get a list of variations for a feature', @@ -646,6 +666,21 @@ export const featureToolHandlers: Record<string, ToolHandler> = { }, ) }, + delete_feature: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = DeleteFeatureArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'deleteFeature', + validatedArgs, + async (authToken, projectKey) => { + return await deleteFeature( + authToken, + projectKey, + validatedArgs.key, + ) + }, + ) + }, fetch_feature_variations: async ( args: unknown, apiClient: DevCycleApiClient, diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 05638549f..565da21eb 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -27,6 +27,10 @@ export const DeleteVariableArgsSchema = z.object({ key: z.string(), }) +export const DeleteFeatureArgsSchema = z.object({ + key: z.string(), +}) + export const ListProjectsArgsSchema = z.object({ sortBy: z .enum([ From 127a7ee6508b1f19d4451cf385492ffc19838c23 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 22:42:10 -0400 Subject: [PATCH 31/74] feat: cleanup featureTools.ts --- src/mcp/tools/featureTools.ts | 407 ++++++++++++++-------------------- 1 file changed, 167 insertions(+), 240 deletions(-) diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index 30fa99a93..6377a40aa 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -32,27 +32,142 @@ import { } from '../types' import { ToolHandler } from '../server' +// Reusable schema components +const FEATURE_KEY_PROPERTY = { + type: 'string' as const, + description: 'The key of the feature', +} + +const ENVIRONMENT_KEY_PROPERTY = { + type: 'string' as const, + description: 'The key of the environment', +} + +const ENVIRONMENT_KEY_OPTIONAL_PROPERTY = { + type: 'string' as const, + description: + 'The key of the environment (optional - if not provided, returns all environments)', +} + +const FEATURE_NAME_PROPERTY = { + type: 'string' as const, + description: 'Human-readable feature name (max 100 characters)', +} + +const FEATURE_DESCRIPTION_PROPERTY = { + type: 'string' as const, + description: 'Feature description (max 1000 characters)', +} + +const FEATURE_TYPE_PROPERTY = { + type: 'string' as const, + enum: ['release', 'experiment', 'permission', 'ops'] as const, + description: 'Feature type', +} + +const CONTROL_VARIATION_PROPERTY = { + type: 'string' as const, + description: + 'The key of the variation that is used as the control variation for Metrics', +} + +const FEATURE_SETTINGS_PROPERTY = { + type: 'object' as const, + properties: { + publicName: { + type: 'string' as const, + description: 'Public name for the feature (max 100 characters)', + }, + publicDescription: { + type: 'string' as const, + description: + 'Public description for the feature (max 1000 characters)', + }, + optInEnabled: { + type: 'boolean' as const, + description: 'Whether opt-in is enabled for the feature', + }, + }, + description: 'Feature-level settings (all properties required if provided)', + required: ['publicName', 'publicDescription', 'optInEnabled'] as const, +} + +const SDK_VISIBILITY_PROPERTY = { + type: 'object' as const, + properties: { + mobile: { + type: 'boolean' as const, + description: 'Whether the feature is visible to mobile SDKs', + }, + client: { + type: 'boolean' as const, + description: 'Whether the feature is visible to client SDKs', + }, + server: { + type: 'boolean' as const, + description: 'Whether the feature is visible to server SDKs', + }, + }, + description: + 'SDK Type Visibility Settings (all properties required if provided)', + required: ['mobile', 'client', 'server'] as const, +} + +const FEATURE_VARIABLES_PROPERTY = { + type: 'array' as const, + description: + 'Array of variables to create or reassociate with this feature', + items: { + type: 'object' as const, + description: 'Variable creation or reassociation data', + }, +} + +const VARIATION_KEY_PROPERTY = { + type: 'string' as const, + description: + 'Unique variation key (max 100 characters, pattern: ^[a-z0-9-_.]+$)', +} + +const VARIATION_NAME_PROPERTY = { + type: 'string' as const, + description: 'Human-readable variation name (max 100 characters)', +} + +const VARIATION_VARIABLES_PROPERTY = { + type: 'object' as const, + description: + 'Key-value map of variable keys to their values for this variation (supports string, number, boolean, and object values)', + additionalProperties: true, +} + +const PAGINATION_PROPERTIES = { + search: { + type: 'string' as const, + description: 'Search query to filter features', + }, + page: { + type: 'number' as const, + description: 'Page number (default: 1)', + }, + per_page: { + type: 'number' as const, + description: 'Number of items per page (default: 100, max: 1000)', + }, +} + +const FEATURE_ENVIRONMENT_REQUIRED_PROPERTIES = { + feature_key: FEATURE_KEY_PROPERTY, + environment_key: ENVIRONMENT_KEY_PROPERTY, +} + export const featureToolDefinitions: Tool[] = [ { name: 'list_features', description: 'List features in the current project', inputSchema: { type: 'object', - properties: { - search: { - type: 'string', - description: 'Search query to filter features', - }, - page: { - type: 'number', - description: 'Page number (default: 1)', - }, - per_page: { - type: 'number', - description: - 'Number of items per page (default: 100, max: 1000)', - }, - }, + properties: PAGINATION_PROPERTIES, }, }, { @@ -66,20 +181,9 @@ export const featureToolDefinitions: Tool[] = [ description: 'Unique feature key (max 100 characters, pattern: ^[a-z0-9-_.]+$)', }, - name: { - type: 'string', - description: - 'Human-readable feature name (max 100 characters)', - }, - description: { - type: 'string', - description: 'Feature description (max 1000 characters)', - }, - type: { - type: 'string', - enum: ['release', 'experiment', 'permission', 'ops'], - description: 'Feature type', - }, + name: FEATURE_NAME_PROPERTY, + description: FEATURE_DESCRIPTION_PROPERTY, + type: FEATURE_TYPE_PROPERTY, tags: { type: 'array', items: { @@ -87,70 +191,10 @@ export const featureToolDefinitions: Tool[] = [ }, description: 'Tags to organize features', }, - controlVariation: { - type: 'string', - description: - 'The key of the variation that is used as the control variation for Metrics', - }, - settings: { - type: 'object', - properties: { - publicName: { - type: 'string', - description: - 'Public name for the feature (max 100 characters)', - }, - publicDescription: { - type: 'string', - description: - 'Public description for the feature (max 1000 characters)', - }, - optInEnabled: { - type: 'boolean', - description: - 'Whether opt-in is enabled for the feature', - }, - }, - description: - 'Feature-level settings (all properties required if provided)', - required: [ - 'publicName', - 'publicDescription', - 'optInEnabled', - ], - }, - sdkVisibility: { - type: 'object', - properties: { - mobile: { - type: 'boolean', - description: - 'Whether the feature is visible to mobile SDKs', - }, - client: { - type: 'boolean', - description: - 'Whether the feature is visible to client SDKs', - }, - server: { - type: 'boolean', - description: - 'Whether the feature is visible to server SDKs', - }, - }, - description: - 'SDK Type Visibility Settings (all properties required if provided)', - required: ['mobile', 'client', 'server'], - }, - variables: { - type: 'array', - description: - 'Array of variables to create or reassociate with this feature', - items: { - type: 'object', - description: 'Variable creation or reassociation data', - }, - }, + controlVariation: CONTROL_VARIATION_PROPERTY, + settings: FEATURE_SETTINGS_PROPERTY, + sdkVisibility: SDK_VISIBILITY_PROPERTY, + variables: FEATURE_VARIABLES_PROPERTY, variations: { type: 'array', description: 'Array of variations for this feature', @@ -197,20 +241,9 @@ export const featureToolDefinitions: Tool[] = [ description: 'The key of the feature to update(1-100 characters, must match pattern ^[a-z0-9-_.]+$)', }, - name: { - type: 'string', - description: - 'Human-readable feature name (max 100 characters)', - }, - description: { - type: 'string', - description: 'Feature description (max 1000 characters)', - }, - type: { - type: 'string', - enum: ['release', 'experiment', 'permission', 'ops'], - description: 'Feature type', - }, + name: FEATURE_NAME_PROPERTY, + description: FEATURE_DESCRIPTION_PROPERTY, + type: FEATURE_TYPE_PROPERTY, tags: { type: 'array', items: { @@ -218,70 +251,10 @@ export const featureToolDefinitions: Tool[] = [ }, description: 'Tags to organize Features on the dashboard', }, - controlVariation: { - type: 'string', - description: - 'The key of the variation that is used as the control variation for Metrics', - }, - settings: { - type: 'object', - properties: { - publicName: { - type: 'string', - description: - 'Public name for the feature (max 100 characters)', - }, - publicDescription: { - type: 'string', - description: - 'Public description for the feature (max 1000 characters)', - }, - optInEnabled: { - type: 'boolean', - description: - 'Whether opt-in is enabled for the feature', - }, - }, - description: - 'Feature-level settings (all properties required if provided)', - required: [ - 'publicName', - 'publicDescription', - 'optInEnabled', - ], - }, - sdkVisibility: { - type: 'object', - properties: { - mobile: { - type: 'boolean', - description: - 'Whether the feature is visible to mobile SDKs', - }, - client: { - type: 'boolean', - description: - 'Whether the feature is visible to client SDKs', - }, - server: { - type: 'boolean', - description: - 'Whether the feature is visible to server SDKs', - }, - }, - description: - 'SDK Type Visibility Settings (all properties required if provided)', - required: ['mobile', 'client', 'server'], - }, - variables: { - type: 'array', - description: - 'Array of variables to create or reassociate with this feature', - items: { - type: 'object', - description: 'Variable creation or reassociation data', - }, - }, + controlVariation: CONTROL_VARIATION_PROPERTY, + settings: FEATURE_SETTINGS_PROPERTY, + sdkVisibility: SDK_VISIBILITY_PROPERTY, + variables: FEATURE_VARIABLES_PROPERTY, variations: { type: 'array', description: 'Array of variations for this feature', @@ -315,10 +288,7 @@ export const featureToolDefinitions: Tool[] = [ inputSchema: { type: 'object', properties: { - feature_key: { - type: 'string', - description: 'The key of the feature', - }, + feature_key: FEATURE_KEY_PROPERTY, }, required: ['feature_key'], }, @@ -329,20 +299,9 @@ export const featureToolDefinitions: Tool[] = [ inputSchema: { type: 'object', properties: { - feature_key: { - type: 'string', - description: 'The key of the feature', - }, - key: { - type: 'string', - description: - 'Unique variation key (max 100 characters, pattern: ^[a-z0-9-_.]+$)', - }, - name: { - type: 'string', - description: - 'Human-readable variation name (max 100 characters)', - }, + feature_key: FEATURE_KEY_PROPERTY, + key: VARIATION_KEY_PROPERTY, + name: VARIATION_NAME_PROPERTY, variables: { type: 'object', description: @@ -359,10 +318,7 @@ export const featureToolDefinitions: Tool[] = [ inputSchema: { type: 'object', properties: { - feature_key: { - type: 'string', - description: 'The key of the feature', - }, + feature_key: FEATURE_KEY_PROPERTY, variation_key: { type: 'string', description: 'The key of the variation to update', @@ -376,12 +332,7 @@ export const featureToolDefinitions: Tool[] = [ type: 'string', description: 'New variation name (max 100 characters)', }, - variables: { - type: 'object', - description: - 'Key-value map of variable keys to their values for this variation (supports string, number, boolean, and object values)', - additionalProperties: true, - }, + variables: VARIATION_VARIABLES_PROPERTY, _id: { type: 'string', description: 'Internal variation ID (optional)', @@ -391,38 +342,20 @@ export const featureToolDefinitions: Tool[] = [ }, }, { - name: 'enable_targeting', + name: 'enable_feature_targeting', description: 'Enable targeting for a feature in an environment', inputSchema: { type: 'object', - properties: { - feature_key: { - type: 'string', - description: 'The key of the feature', - }, - environment_key: { - type: 'string', - description: 'The key of the environment', - }, - }, + properties: FEATURE_ENVIRONMENT_REQUIRED_PROPERTIES, required: ['feature_key', 'environment_key'], }, }, { - name: 'disable_targeting', + name: 'disable_feature_targeting', description: 'Disable targeting for a feature in an environment', inputSchema: { type: 'object', - properties: { - feature_key: { - type: 'string', - description: 'The key of the feature', - }, - environment_key: { - type: 'string', - description: 'The key of the environment', - }, - }, + properties: FEATURE_ENVIRONMENT_REQUIRED_PROPERTIES, required: ['feature_key', 'environment_key'], }, }, @@ -433,15 +366,8 @@ export const featureToolDefinitions: Tool[] = [ inputSchema: { type: 'object', properties: { - feature_key: { - type: 'string', - description: 'The key of the feature', - }, - environment_key: { - type: 'string', - description: - 'The key of the environment (optional - if not provided, returns all environments)', - }, + feature_key: FEATURE_KEY_PROPERTY, + environment_key: ENVIRONMENT_KEY_OPTIONAL_PROPERTY, }, required: ['feature_key'], }, @@ -453,14 +379,8 @@ export const featureToolDefinitions: Tool[] = [ inputSchema: { type: 'object', properties: { - feature_key: { - type: 'string', - description: 'The key of the feature', - }, - environment_key: { - type: 'string', - description: 'The key of the environment', - }, + feature_key: FEATURE_KEY_PROPERTY, + environment_key: ENVIRONMENT_KEY_PROPERTY, status: { type: 'string', enum: ['active', 'inactive', 'archived'], @@ -642,6 +562,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { } // Remove the MCP-specific 'interactive' property and pass the rest to the API + // eslint-disable-next-line @typescript-eslint/no-unused-vars const { interactive, ...featureData } = validatedArgs return await createFeature(authToken, projectKey, featureData) @@ -743,7 +664,10 @@ export const featureToolHandlers: Record<string, ToolHandler> = { }, ) }, - enable_targeting: async (args: unknown, apiClient: DevCycleApiClient) => { + enable_feature_targeting: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { const validatedArgs = EnableTargetingArgsSchema.parse(args) return await apiClient.executeWithLogging( @@ -759,7 +683,10 @@ export const featureToolHandlers: Record<string, ToolHandler> = { }, ) }, - disable_targeting: async (args: unknown, apiClient: DevCycleApiClient) => { + disable_feature_targeting: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { const validatedArgs = DisableTargetingArgsSchema.parse(args) return await apiClient.executeWithLogging( From 051b0b0820e28eb191f98928fb145b2d8d083f6e Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 23:31:16 -0400 Subject: [PATCH 32/74] feat: add get_feature_audit_log_history tool call --- src/api/features.ts | 83 +++++++++++++++++++++++++++++++++++ src/mcp/tools/featureTools.ts | 40 +++++++++++++++++ src/mcp/types.ts | 5 +++ 3 files changed, 128 insertions(+) diff --git a/src/api/features.ts b/src/api/features.ts index 2c242b8d7..8b7425b82 100644 --- a/src/api/features.ts +++ b/src/api/features.ts @@ -156,3 +156,86 @@ const generatePaginatedFeatureUrl = ( ): string => { return `/v1/projects/${project_id}/features?perPage=${perPage}&page=${page}&status=${status}` } + +export const getFeatureAuditLogHistory = async ( + token: string, + projectKey: string, + featureKey: string, + daysBack = 30, +): Promise<{ + timeline: Array<{ + id: string + timestamp: string + action: string + actor: { + name: string + email?: string + } + resource: { + type: string + name: string + key: string + } + changes: Array<{ + field: string + oldValue: unknown + newValue: unknown + }> + environment?: string + }> +}> => { + try { + // Calculate the date threshold + const sinceDate = new Date() + sinceDate.setDate(sinceDate.getDate() - daysBack) + const startDate = sinceDate.toISOString() + + const params = { + startDate, + perPage: 100, + page: 1, + } + console.error(`feature history params: ${JSON.stringify(params)}`) + + // Use the audit log API to get feature history + const response = await axiosClient.get( + `/v1/projects/${projectKey}/features/${featureKey}/audit`, + { + headers: buildHeaders(token), + params, + }, + ) + console.error( + `feature history response: ${JSON.stringify(response.data)}`, + ) + + const auditLogs = response.data || [] + + // Transform audit log entries to timeline format + const timeline = auditLogs.map((entry: any) => ({ + id: entry._id || entry.id, + timestamp: entry.createdAt || entry.timestamp, + action: entry.action || 'unknown', + actor: { + name: entry.user?.name || entry.actor?.name || 'Unknown', + email: entry.user?.email || entry.actor?.email, + }, + resource: { + type: entry.resourceType || 'feature', + name: entry.resourceName || featureKey, + key: entry.resourceKey || featureKey, + }, + changes: entry.changes || [], + environment: entry.environment?.key || entry.environmentKey, + })) + + return { timeline } + } catch (error) { + // If audit log API fails, return empty result + console.warn( + 'Failed to fetch feature history from audit log:', + error instanceof Error ? error.message : 'Unknown error', + ) + return { timeline: [] } + } +} diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index 6377a40aa..8b7664ddd 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -5,6 +5,7 @@ import { createFeature, updateFeature, deleteFeature, + getFeatureAuditLogHistory, } from '../../api/features' import { fetchVariations, @@ -29,6 +30,7 @@ import { UpdateVariationArgsSchema, ListFeatureTargetingArgsSchema, UpdateFeatureTargetingArgsSchema, + GetFeatureAuditLogHistoryArgsSchema, } from '../types' import { ToolHandler } from '../server' @@ -528,6 +530,25 @@ export const featureToolDefinitions: Tool[] = [ required: ['feature_key', 'environment_key'], }, }, + { + name: 'get_feature_audit_log_history', + description: + 'Get timeline of feature flag changes from DevCycle audit log', + inputSchema: { + type: 'object', + properties: { + feature_key: FEATURE_KEY_PROPERTY, + days_back: { + type: 'number', + description: + 'Number of days to look back (default: 30, max: 365)', + minimum: 1, + maximum: 365, + }, + }, + required: ['feature_key'], + }, + }, ] export const featureToolHandlers: Record<string, ToolHandler> = { @@ -744,4 +765,23 @@ export const featureToolHandlers: Record<string, ToolHandler> = { }, ) }, + get_feature_audit_log_history: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = GetFeatureAuditLogHistoryArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'getFeatureAuditLogHistory', + validatedArgs, + async (authToken, projectKey) => { + return await getFeatureAuditLogHistory( + authToken, + projectKey, + validatedArgs.feature_key, + validatedArgs.days_back || 30, + ) + }, + ) + }, } diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 565da21eb..00d1c6e43 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -142,3 +142,8 @@ export const UpdateFeatureTargetingArgsSchema = feature_key: z.string(), // MCP-specific: identifies which feature to update targeting for environment_key: z.string(), // MCP-specific: identifies which environment to update targeting in }) + +export const GetFeatureAuditLogHistoryArgsSchema = z.object({ + feature_key: z.string(), + days_back: z.number().min(1).max(365).default(30).optional(), +}) From 7e2f899c02824b748610f9b8edcb327f4ffaa164 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Tue, 8 Jul 2025 23:46:29 -0400 Subject: [PATCH 33/74] feat: try updating tool descriptions --- src/mcp/tools/featureTools.ts | 18 ++++++++++++------ src/mcp/tools/selfTargetingTools.ts | 5 +++-- src/mcp/tools/variableTools.ts | 9 ++++++--- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index 8b7664ddd..fbc26b4c0 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -18,6 +18,7 @@ import { fetchTargetingForFeature, updateFeatureConfigForEnvironment, } from '../../api/targeting' + import { ListFeaturesArgsSchema, CreateFeatureArgsSchema, @@ -174,7 +175,8 @@ export const featureToolDefinitions: Tool[] = [ }, { name: 'create_feature', - description: 'Create a new feature flag (supports interactive mode)', + description: + 'Create a new feature flag (supports interactive mode). ⚠️ IMPORTANT: If creating configurations for production environments, always confirm with the user before proceeding.', inputSchema: { type: 'object', properties: { @@ -234,7 +236,8 @@ export const featureToolDefinitions: Tool[] = [ }, { name: 'update_feature', - description: 'Update an existing feature flag', + description: + 'Update an existing feature flag. ⚠️ IMPORTANT: Changes to feature flags may affect production environments. Always confirm with the user before making changes to features that are active in production.', inputSchema: { type: 'object', properties: { @@ -272,7 +275,8 @@ export const featureToolDefinitions: Tool[] = [ }, { name: 'delete_feature', - description: 'Delete an existing feature flag', + description: + 'Delete an existing feature flag. ⚠️ CRITICAL: Deleting a feature flag will remove it from ALL environments including production. ALWAYS confirm with the user before deleting any feature flag.', inputSchema: { type: 'object', properties: { @@ -345,7 +349,8 @@ export const featureToolDefinitions: Tool[] = [ }, { name: 'enable_feature_targeting', - description: 'Enable targeting for a feature in an environment', + description: + 'Enable targeting for a feature in an environment. ⚠️ IMPORTANT: Always confirm with the user before making changes to production environments (environments where type = "production").', inputSchema: { type: 'object', properties: FEATURE_ENVIRONMENT_REQUIRED_PROPERTIES, @@ -354,7 +359,8 @@ export const featureToolDefinitions: Tool[] = [ }, { name: 'disable_feature_targeting', - description: 'Disable targeting for a feature in an environment', + description: + 'Disable targeting for a feature in an environment. ⚠️ IMPORTANT: Always confirm with the user before making changes to production environments (environments where type = "production").', inputSchema: { type: 'object', properties: FEATURE_ENVIRONMENT_REQUIRED_PROPERTIES, @@ -377,7 +383,7 @@ export const featureToolDefinitions: Tool[] = [ { name: 'update_feature_targeting', description: - 'Update feature configuration (targeting rules) for a feature in an environment', + 'Update feature configuration (targeting rules) for a feature in an environment. ⚠️ IMPORTANT: Always confirm with the user before making changes to production environments (environments where type = "production").', inputSchema: { type: 'object', properties: { diff --git a/src/mcp/tools/selfTargetingTools.ts b/src/mcp/tools/selfTargetingTools.ts index 7f01ea9bd..23d54a6a6 100644 --- a/src/mcp/tools/selfTargetingTools.ts +++ b/src/mcp/tools/selfTargetingTools.ts @@ -50,7 +50,8 @@ export const selfTargetingToolDefinitions: Tool[] = [ }, { name: 'set_self_targeting_override', - description: 'Set a self-targeting override for a feature variation', + description: + 'Set a self-targeting override for a feature variation. ⚠️ IMPORTANT: Always confirm with the user before setting overrides for production environments (environments where type = "production").', inputSchema: { type: 'object', properties: { @@ -73,7 +74,7 @@ export const selfTargetingToolDefinitions: Tool[] = [ { name: 'clear_feature_self_targeting_overrides', description: - 'Clear self-targeting overrides for a specific feature/environment', + 'Clear self-targeting overrides for a specific feature/environment. ⚠️ IMPORTANT: Always confirm with the user before clearing overrides for production environments (environments where type = "production").', inputSchema: { type: 'object', properties: { diff --git a/src/mcp/tools/variableTools.ts b/src/mcp/tools/variableTools.ts index 6602752d0..9b5e77f49 100644 --- a/src/mcp/tools/variableTools.ts +++ b/src/mcp/tools/variableTools.ts @@ -39,7 +39,8 @@ export const variableToolDefinitions: Tool[] = [ }, { name: 'create_variable', - description: 'Create a new variable', + description: + 'Create a new variable. ⚠️ IMPORTANT: Variables can affect feature flags in production environments. Always confirm with the user before creating variables for features that are active in production.', inputSchema: { type: 'object', properties: { @@ -104,7 +105,8 @@ export const variableToolDefinitions: Tool[] = [ }, { name: 'update_variable', - description: 'Update an existing variable', + description: + 'Update an existing variable. ⚠️ IMPORTANT: Variable changes can affect feature flags in production environments. Always confirm with the user before updating variables for features that are active in production.', inputSchema: { type: 'object', properties: { @@ -161,7 +163,8 @@ export const variableToolDefinitions: Tool[] = [ }, { name: 'delete_variable', - description: 'Delete a variable', + description: + 'Delete a variable. ⚠️ CRITICAL: Deleting a variable will remove it from ALL environments including production. ALWAYS confirm with the user before deleting any variable.', inputSchema: { type: 'object', properties: { From c42c016fb8af5888bbfd61b4d4d39fcb883884ba Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Wed, 9 Jul 2025 13:32:07 -0400 Subject: [PATCH 34/74] feat: add create_environment and update_environment tools --- src/mcp/tools/environmentTools.ts | 174 +++++++++++++++++++++--------- src/mcp/types.ts | 6 ++ 2 files changed, 132 insertions(+), 48 deletions(-) diff --git a/src/mcp/tools/environmentTools.ts b/src/mcp/tools/environmentTools.ts index c2e618367..a71fd4e8f 100644 --- a/src/mcp/tools/environmentTools.ts +++ b/src/mcp/tools/environmentTools.ts @@ -3,57 +3,88 @@ import { DevCycleApiClient } from '../utils/api' import { fetchEnvironments, fetchEnvironmentByKey, + createEnvironment, + updateEnvironment, } from '../../api/environments' -import { GetSdkKeysArgsSchema, ListEnvironmentsArgsSchema } from '../types' +import { + GetSdkKeysArgsSchema, + ListEnvironmentsArgsSchema, + CreateEnvironmentArgsSchema, + UpdateEnvironmentArgsSchema, +} from '../types' import { ToolHandler } from '../server' +// Reusable schema components +const ENVIRONMENT_KEY_PROPERTY = { + type: 'string' as const, + description: + "The key of the environment, must be unique and can't be changed after creation", +} + +const PAGINATION_PROPERTIES = { + search: { + type: 'string' as const, + description: + 'Search query to filter environments (minimum 3 characters)', + minLength: 3, + }, + page: { + type: 'number' as const, + description: 'Page number (default: 1)', + minimum: 1, + }, + perPage: { + type: 'number' as const, + description: 'Number of items per page (default: 100, max: 1000)', + minimum: 1, + maximum: 1000, + }, + sortBy: { + type: 'string' as const, + description: 'Field to sort by (default: createdAt)', + enum: [ + 'createdAt', + 'updatedAt', + 'name', + 'key', + 'createdBy', + 'propertyKey', + ] as const, + }, + sortOrder: { + type: 'string' as const, + enum: ['asc', 'desc'] as const, + description: 'Sort order (default: desc)', + }, + createdBy: { + type: 'string' as const, + description: 'Filter by creator user ID', + }, +} + +const ENVIRONMENT_COMMON_PROPERTIES = { + key: ENVIRONMENT_KEY_PROPERTY, + name: { + type: 'string' as const, + description: 'The name of the environment', + }, + description: { + type: 'string' as const, + description: 'The description of the environment', + }, + color: { + type: 'string' as const, + description: 'The color for the environment', + }, +} + export const environmentToolDefinitions: Tool[] = [ { name: 'list_environments', description: 'List environments in the current project', inputSchema: { type: 'object', - properties: { - search: { - type: 'string', - description: - 'Search query to filter environments (minimum 3 characters)', - minLength: 3, - }, - page: { - type: 'number', - description: 'Page number (default: 1)', - minimum: 1, - }, - perPage: { - type: 'number', - description: - 'Number of items per page (default: 100, max: 1000)', - minimum: 1, - maximum: 1000, - }, - sortBy: { - type: 'string', - description: 'Field to sort by (default: createdAt)', - enum: [ - 'createdAt', - 'updatedAt', - 'name', - 'key', - 'createdBy', - 'propertyKey', - ], - }, - sortOrder: { - type: 'string', - enum: ['asc', 'desc'], - description: 'Sort order (default: desc)', - }, - createdBy: { - type: 'string', - description: 'Filter by creator user ID', - }, - }, + properties: PAGINATION_PROPERTIES, }, }, { @@ -62,19 +93,34 @@ export const environmentToolDefinitions: Tool[] = [ inputSchema: { type: 'object', properties: { - environmentKey: { - type: 'string', - description: 'The key of the environment', - }, + environmentKey: ENVIRONMENT_KEY_PROPERTY, keyType: { - type: 'string', - enum: ['mobile', 'server', 'client'], + type: 'string' as const, + enum: ['mobile', 'server', 'client'] as const, description: 'The type of SDK key to retrieve', }, }, required: ['environmentKey'], }, }, + { + name: 'create_environment', + description: 'Create a new environment', + inputSchema: { + type: 'object', + properties: ENVIRONMENT_COMMON_PROPERTIES, + required: ['name', 'key'], + }, + }, + { + name: 'update_environment', + description: 'Update an existing environment', + inputSchema: { + type: 'object', + properties: ENVIRONMENT_COMMON_PROPERTIES, + required: ['key'], + }, + }, ] export const environmentToolHandlers: Record<string, ToolHandler> = { @@ -118,4 +164,36 @@ export const environmentToolHandlers: Record<string, ToolHandler> = { }, ) }, + create_environment: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = CreateEnvironmentArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'createEnvironment', + validatedArgs, + async (authToken, projectKey) => { + return await createEnvironment( + authToken, + projectKey, + validatedArgs, + ) + }, + ) + }, + update_environment: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = UpdateEnvironmentArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'updateEnvironment', + validatedArgs, + async (authToken, projectKey) => { + const { key, ...updateParams } = validatedArgs + return await updateEnvironment( + authToken, + projectKey, + key, + updateParams, + ) + }, + ) + }, } diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 00d1c6e43..911230218 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -72,6 +72,12 @@ export const GetSdkKeysArgsSchema = z.object({ keyType: z.enum(['mobile', 'server', 'client']).optional(), }) +export const CreateEnvironmentArgsSchema = schemas.CreateEnvironmentDto + +export const UpdateEnvironmentArgsSchema = schemas.UpdateEnvironmentDto.extend({ + key: z.string(), // Make key required for identifying the environment +}) + export const EnableTargetingArgsSchema = z.object({ feature_key: z.string(), environment_key: z.string(), From 6dd8dc76ea82682512afec4456325754860e8a0e Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Wed, 9 Jul 2025 13:44:53 -0400 Subject: [PATCH 35/74] feat: add create_project tool --- .cursor/rules/typescript-patterns.mdc | 35 ++++++++++++++++++++++ src/api/projects.ts | 2 +- src/mcp/tools/projectTools.ts | 43 +++++++++++++++++++++++++-- src/mcp/types.ts | 10 +++++++ 4 files changed, 87 insertions(+), 3 deletions(-) diff --git a/.cursor/rules/typescript-patterns.mdc b/.cursor/rules/typescript-patterns.mdc index 97c148f71..de149c33e 100644 --- a/.cursor/rules/typescript-patterns.mdc +++ b/.cursor/rules/typescript-patterns.mdc @@ -48,6 +48,41 @@ export default class MyCommand extends Base { - Use Zod schemas for validation - Export types from dedicated files +## Type Safety and Avoiding `any` + +- **NEVER use `any` casting to fix TypeScript errors** - this defeats the purpose of TypeScript +- Instead of `as any`, find the root cause and fix it properly: + - Update type definitions to be more accurate + - Use proper type guards and narrowing + - Add missing properties to interfaces + - Use union types for flexible typing + - Create proper type assertions with specific types + +```typescript +// ❌ Wrong - using any to bypass TypeScript +const result = (someValue as any).property + +// ✅ Correct - fix the underlying type issue +interface ProperType { + property: string +} +const result = (someValue as ProperType).property + +// ✅ Or use type guards +if ('property' in someValue) { + const result = someValue.property +} +``` + +- When working with external libraries, use the type definitions from the library +- Use `unknown` instead of `any` when you genuinely don't know the type +- Prefer type narrowing over type assertions +- **If you cannot fix a TypeScript issue directly**, propose potential solutions to the user: + - Explain what the type error means + - Suggest multiple approaches to fix it properly + - Identify if the issue is in type definitions, API design, or usage + - Recommend the most appropriate solution based on the context + ## Error Handling ```typescript diff --git a/src/api/projects.ts b/src/api/projects.ts index 2569312c3..7913a2536 100644 --- a/src/api/projects.ts +++ b/src/api/projects.ts @@ -9,7 +9,7 @@ export class CreateProjectParams { @IsString() @IsOptional() - description: string + description?: string @IsNotEmpty() @IsString() diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts index c3522f405..dc1048f9f 100644 --- a/src/mcp/tools/projectTools.ts +++ b/src/mcp/tools/projectTools.ts @@ -1,7 +1,12 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' import { DevCycleApiClient } from '../utils/api' -import { fetchProjects, fetchProject } from '../../api/projects' -import { ListProjectsArgsSchema } from '../types' +import { + fetchProjects, + fetchProject, + createProject, + CreateProjectParams, +} from '../../api/projects' +import { ListProjectsArgsSchema, CreateProjectArgsSchema } from '../types' import { ToolHandler } from '../server' export const projectToolDefinitions: Tool[] = [ @@ -57,6 +62,28 @@ export const projectToolDefinitions: Tool[] = [ properties: {}, }, }, + { + name: 'create_project', + description: 'Create a new project', + inputSchema: { + type: 'object', + properties: { + name: { + type: 'string', + description: 'Project name', + }, + description: { + type: 'string', + description: 'Project description', + }, + key: { + type: 'string', + description: 'Unique project key', + }, + }, + required: ['name', 'key'], + }, + }, ] export const projectToolHandlers: Record<string, ToolHandler> = { @@ -84,4 +111,16 @@ export const projectToolHandlers: Record<string, ToolHandler> = { }, ) }, + create_project: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = CreateProjectArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'createProject', + validatedArgs, + async (authToken) => { + return await createProject(authToken, validatedArgs) + }, + false, + ) + }, } diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 911230218..4df9a90e6 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -49,6 +49,16 @@ export const ListProjectsArgsSchema = z.object({ perPage: z.number().min(1).max(1000).default(100).optional(), }) +export const CreateProjectArgsSchema = z.object({ + key: z + .string() + .min(1) + .max(100) + .regex(/^[a-z0-9-_.]+$/), + name: z.string().min(1), + description: z.string().optional(), +}) + export const ListEnvironmentsArgsSchema = z.object({ search: z.string().min(3).optional(), page: z.number().min(1).optional(), From 6b5a0b11b841aa11b2ca63923896e1740f33d8a2 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Wed, 9 Jul 2025 13:49:56 -0400 Subject: [PATCH 36/74] chore: revert zodClient.ts changes --- src/api/zodClient.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/api/zodClient.ts b/src/api/zodClient.ts index e49f8ce67..02cdf8535 100644 --- a/src/api/zodClient.ts +++ b/src/api/zodClient.ts @@ -296,12 +296,12 @@ const UpdateAudienceDto = z }) .partial() const VariableValidationEntity = z.object({ - schemaType: z.string(), - enumValues: z.array(z.any()).optional(), + schemaType: z.object({}).partial(), + enumValues: z.object({}).partial().optional(), regexPattern: z.string().optional(), jsonSchema: z.string().optional(), description: z.string(), - exampleValue: z.any(), + exampleValue: z.object({}).partial(), }) const CreateVariableDto = z.object({ name: z.string().max(100).optional(), From 13f0c1bea9c730b87dcc67a5918a85b3ac73dc77 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Wed, 9 Jul 2025 14:20:32 -0400 Subject: [PATCH 37/74] feat: fix tests, and update MCP error logging --- README.md | 1 + package.json | 7 ++ src/api/apiClient.ts | 34 ++++++--- src/mcp/server.ts | 22 +++++- src/mcp/utils/api.ts | 14 +++- yarn.lock | 178 ++++++++++++++++++++++++++++++++++++++++++- 6 files changed, 241 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index f63594ba6..13141436c 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,7 @@ USAGE * [`dvc environments`](docs/environments.md) - Create a new Environment for an existing Feature. * [`dvc features`](docs/features.md) - Create, view, or modify Features with the Management API. * [`dvc generate`](docs/generate.md) - Generate Devcycle related files. +* [`dvc help`](docs/help.md) - Display help for dvc. * [`dvc identity`](docs/identity.md) - View or manage your DevCycle Identity. * [`dvc keys`](docs/keys.md) - Retrieve SDK keys from the Management API. * [`dvc login`](docs/login.md) - Log in to DevCycle. diff --git a/package.json b/package.json index 0995a4365..488bd42e7 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,13 @@ "zod": "^3.24.2" }, "devDependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/core": "^7.28.0", + "@babel/generator": "^7.28.0", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", "@eslint/js": "^9.18.0", "@oclif/test": "^2.5.6", "@types/chai": "^5.2.2", diff --git a/src/api/apiClient.ts b/src/api/apiClient.ts index f670e7796..8e4afd1fc 100644 --- a/src/api/apiClient.ts +++ b/src/api/apiClient.ts @@ -13,12 +13,16 @@ export const setDVCReferrer = ( caller = 'cli', ): void => { axiosClient.defaults.headers.common['dvc-referrer'] = 'cli' + + // Ensure we have valid values before stringifying + const metadata = { + command: command || 'unknown', + version: version || 'unknown', + caller: caller || 'cli', + } + axiosClient.defaults.headers.common['dvc-referrer-metadata'] = - JSON.stringify({ - command, - version, - caller, - }) + JSON.stringify(metadata) } axiosClient.interceptors.response.use( @@ -28,10 +32,22 @@ axiosClient.interceptors.response.use( (error: AxiosError) => { let isCallerCli = false if (error.config) { - const parsedDvcReferrerMetadata = JSON.parse( - error.config.headers['dvc-referrer-metadata'], - ) - isCallerCli = parsedDvcReferrerMetadata.caller === 'cli' + try { + const referrerMetadata = + error.config.headers['dvc-referrer-metadata'] + if (referrerMetadata && typeof referrerMetadata === 'string') { + const parsedDvcReferrerMetadata = + JSON.parse(referrerMetadata) + isCallerCli = parsedDvcReferrerMetadata.caller === 'cli' + } + } catch (parseError) { + // If we can't parse the referrer metadata, assume it's not from CLI + console.error( + 'Failed to parse dvc-referrer-metadata:', + parseError, + ) + isCallerCli = false + } } if (error.response?.status === 401) { diff --git a/src/mcp/server.ts b/src/mcp/server.ts index dda1a3685..cbbd57113 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -112,13 +112,29 @@ export class DevCycleMCPServer { } catch (error) { console.error(`Error in tool handler ${name}:`, error) - const errorMessage = - error instanceof Error ? error.message : 'Unknown error' + // Safely extract error message, handling undefined/null cases + let errorMessage = 'Unknown error' + if (error instanceof Error && error.message) { + errorMessage = error.message + } else if (error && typeof error === 'string') { + errorMessage = error + } else if (error && typeof error === 'object') { + errorMessage = JSON.stringify(error) + } + + // Return error as JSON to maintain consistent response format + const errorResponse = { + error: true, + message: errorMessage, + tool: name, + timestamp: new Date().toISOString(), + } + return { content: [ { type: 'text', - text: `Error: ${errorMessage}`, + text: JSON.stringify(errorResponse, null, 2), }, ], } diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index f00a663e3..84073896a 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -1,9 +1,21 @@ import { DevCycleAuth } from './auth' function getErrorMessage(error: unknown): string { - if (error instanceof Error) { + if (error instanceof Error && error.message) { return error.message } + if (error && typeof error === 'string') { + return error + } + if (error && typeof error === 'object') { + return JSON.stringify(error) + } + if (error === null) { + return 'null' + } + if (error === undefined) { + return 'undefined' + } return String(error) } diff --git a/yarn.lock b/yarn.lock index 2ed5cf454..c34bc43fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -68,6 +68,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/code-frame@npm:7.27.1" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.27.1" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.1.1" + checksum: 10c0/5dd9a18baa5fce4741ba729acc3a3272c49c25cb8736c4b18e113099520e7ef7b545a4096a26d600e4416157e63e87d66db46aa3fbf0a5f2286da2705c12da00 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.26.8": version: 7.26.8 resolution: "@babel/compat-data@npm:7.26.8" @@ -75,6 +86,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.27.2": + version: 7.28.0 + resolution: "@babel/compat-data@npm:7.28.0" + checksum: 10c0/c4e527302bcd61052423f757355a71c3bc62362bac13f7f130de16e439716f66091ff5bdecda418e8fa0271d4c725f860f0ee23ab7bf6e769f7a8bb16dfcb531 + languageName: node + linkType: hard + "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.20.12": version: 7.26.10 resolution: "@babel/core@npm:7.26.10" @@ -98,6 +116,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/core@npm:7.28.0" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.27.1" + "@babel/generator": "npm:^7.28.0" + "@babel/helper-compilation-targets": "npm:^7.27.2" + "@babel/helper-module-transforms": "npm:^7.27.3" + "@babel/helpers": "npm:^7.27.6" + "@babel/parser": "npm:^7.28.0" + "@babel/template": "npm:^7.27.2" + "@babel/traverse": "npm:^7.28.0" + "@babel/types": "npm:^7.28.0" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/423302e7c721e73b1c096217880272e02020dfb697a55ccca60ad01bba90037015f84d0c20c6ce297cf33a19bb704bc5c2b3d3095f5284dfa592bd1de0b9e8c3 + languageName: node + linkType: hard + "@babel/generator@npm:^7.26.10, @babel/generator@npm:^7.27.0, @babel/generator@npm:^7.7.2": version: 7.27.0 resolution: "@babel/generator@npm:7.27.0" @@ -111,6 +152,19 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/generator@npm:7.28.0" + dependencies: + "@babel/parser": "npm:^7.28.0" + "@babel/types": "npm:^7.28.0" + "@jridgewell/gen-mapping": "npm:^0.3.12" + "@jridgewell/trace-mapping": "npm:^0.3.28" + jsesc: "npm:^3.0.2" + checksum: 10c0/1b3d122268ea3df50fde707ad864d9a55c72621357d5cebb972db3dd76859c45810c56e16ad23123f18f80cc2692f5a015d2858361300f0f224a05dc43d36a92 + languageName: node + linkType: hard + "@babel/helper-compilation-targets@npm:^7.26.5": version: 7.27.0 resolution: "@babel/helper-compilation-targets@npm:7.27.0" @@ -124,6 +178,26 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/helper-compilation-targets@npm:7.27.2" + dependencies: + "@babel/compat-data": "npm:^7.27.2" + "@babel/helper-validator-option": "npm:^7.27.1" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/f338fa00dcfea931804a7c55d1a1c81b6f0a09787e528ec580d5c21b3ecb3913f6cb0f361368973ce953b824d910d3ac3e8a8ee15192710d3563826447193ad1 + languageName: node + linkType: hard + +"@babel/helper-globals@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/helper-globals@npm:7.28.0" + checksum: 10c0/5a0cd0c0e8c764b5f27f2095e4243e8af6fa145daea2b41b53c0c1414fe6ff139e3640f4e2207ae2b3d2153a1abd346f901c26c290ee7cb3881dd922d4ee9232 + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-module-imports@npm:7.25.9" @@ -134,6 +208,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-imports@npm:7.27.1" + dependencies: + "@babel/traverse": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10c0/e00aace096e4e29290ff8648455c2bc4ed982f0d61dbf2db1b5e750b9b98f318bf5788d75a4f974c151bd318fd549e81dbcab595f46b14b81c12eda3023f51e8 + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.26.0": version: 7.26.0 resolution: "@babel/helper-module-transforms@npm:7.26.0" @@ -147,6 +231,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.27.3": + version: 7.27.3 + resolution: "@babel/helper-module-transforms@npm:7.27.3" + dependencies: + "@babel/helper-module-imports": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.3" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/fccb4f512a13b4c069af51e1b56b20f54024bcf1591e31e978a30f3502567f34f90a80da6a19a6148c249216292a8074a0121f9e52602510ef0f32dbce95ca01 + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.8.0": version: 7.26.5 resolution: "@babel/helper-plugin-utils@npm:7.26.5" @@ -189,6 +286,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-option@npm:7.27.1" + checksum: 10c0/6fec5f006eba40001a20f26b1ef5dbbda377b7b68c8ad518c05baa9af3f396e780bdfded24c4eef95d14bb7b8fd56192a6ed38d5d439b97d10efc5f1a191d148 + languageName: node + linkType: hard + "@babel/helpers@npm:^7.26.10": version: 7.27.0 resolution: "@babel/helpers@npm:7.27.0" @@ -199,6 +303,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.27.6": + version: 7.27.6 + resolution: "@babel/helpers@npm:7.27.6" + dependencies: + "@babel/template": "npm:^7.27.2" + "@babel/types": "npm:^7.27.6" + checksum: 10c0/448bac96ef8b0f21f2294a826df9de6bf4026fd023f8a6bb6c782fe3e61946801ca24381490b8e58d861fee75cd695a1882921afbf1f53b0275ee68c938bd6d3 + languageName: node + linkType: hard + "@babel/parser@npm:^7.14.7, @babel/parser@npm:^7.15.7, @babel/parser@npm:^7.26.10, @babel/parser@npm:^7.27.0": version: 7.27.0 resolution: "@babel/parser@npm:7.27.0" @@ -210,7 +324,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.28.0": +"@babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.0": version: 7.28.0 resolution: "@babel/parser@npm:7.28.0" dependencies: @@ -395,6 +509,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/template@npm:7.27.2" + dependencies: + "@babel/code-frame": "npm:^7.27.1" + "@babel/parser": "npm:^7.27.2" + "@babel/types": "npm:^7.27.1" + checksum: 10c0/ed9e9022651e463cc5f2cc21942f0e74544f1754d231add6348ff1b472985a3b3502041c0be62dc99ed2d12cfae0c51394bf827452b98a2f8769c03b87aadc81 + languageName: node + linkType: hard + "@babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.10": version: 7.27.0 resolution: "@babel/traverse@npm:7.27.0" @@ -410,6 +535,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.3, @babel/traverse@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/traverse@npm:7.28.0" + dependencies: + "@babel/code-frame": "npm:^7.27.1" + "@babel/generator": "npm:^7.28.0" + "@babel/helper-globals": "npm:^7.28.0" + "@babel/parser": "npm:^7.28.0" + "@babel/template": "npm:^7.27.2" + "@babel/types": "npm:^7.28.0" + debug: "npm:^4.3.1" + checksum: 10c0/32794402457827ac558173bcebdcc0e3a18fa339b7c41ca35621f9f645f044534d91bb923ff385f5f960f2e495f56ce18d6c7b0d064d2f0ccb55b285fa6bc7b9 + languageName: node + linkType: hard + "@babel/types@npm:^7.25.9, @babel/types@npm:^7.26.10, @babel/types@npm:^7.27.0, @babel/types@npm:^7.3.3": version: 7.27.0 resolution: "@babel/types@npm:7.27.0" @@ -420,7 +560,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.28.0": +"@babel/types@npm:^7.27.1, @babel/types@npm:^7.27.6, @babel/types@npm:^7.28.0": version: 7.28.0 resolution: "@babel/types@npm:7.28.0" dependencies: @@ -443,7 +583,14 @@ __metadata: version: 0.0.0-use.local resolution: "@devcycle/cli@workspace:." dependencies: + "@babel/code-frame": "npm:^7.27.1" + "@babel/core": "npm:^7.28.0" + "@babel/generator": "npm:^7.28.0" + "@babel/helper-validator-identifier": "npm:^7.27.1" "@babel/parser": "npm:^7.28.0" + "@babel/template": "npm:^7.27.2" + "@babel/traverse": "npm:^7.28.0" + "@babel/types": "npm:^7.28.0" "@eslint/js": "npm:^9.18.0" "@modelcontextprotocol/sdk": "npm:^1.15.0" "@oclif/core": "npm:^2.16.0" @@ -752,6 +899,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/gen-mapping@npm:^0.3.12": + version: 0.3.12 + resolution: "@jridgewell/gen-mapping@npm:0.3.12" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/32f771ae2467e4d440be609581f7338d786d3d621bac3469e943b9d6d116c23c4becb36f84898a92bbf2f3c0511365c54a945a3b86a83141547a2a360a5ec0c7 + languageName: node + linkType: hard + "@jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.5 resolution: "@jridgewell/gen-mapping@npm:0.3.5" @@ -784,6 +941,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.4 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.4" + checksum: 10c0/c5aab3e6362a8dd94ad80ab90845730c825fc4c8d9cf07ebca7a2eb8a832d155d62558800fc41d42785f989ddbb21db6df004d1786e8ecb65e428ab8dff71309 + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:0.3.9": version: 0.3.9 resolution: "@jridgewell/trace-mapping@npm:0.3.9" @@ -804,6 +968,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:^0.3.28": + version: 0.3.29 + resolution: "@jridgewell/trace-mapping@npm:0.3.29" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10c0/fb547ba31658c4d74eb17e7389f4908bf7c44cef47acb4c5baa57289daf68e6fe53c639f41f751b3923aca67010501264f70e7b49978ad1f040294b22c37b333 + languageName: node + linkType: hard + "@jsdevtools/ono@npm:^7.1.3": version: 7.1.3 resolution: "@jsdevtools/ono@npm:7.1.3" From 242a4e425ea8cb3b00053eec95875a7964164b0d Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Wed, 9 Jul 2025 14:35:19 -0400 Subject: [PATCH 38/74] feat: add update_feature_status tool --- src/api/features.ts | 23 +++++++++++++++- src/api/schemas.ts | 7 +++++ src/mcp/tools/featureTools.ts | 49 +++++++++++++++++++++++++++++++++++ src/mcp/types.ts | 8 ++++++ 4 files changed, 86 insertions(+), 1 deletion(-) diff --git a/src/api/features.ts b/src/api/features.ts index 8b7425b82..8c76876ba 100644 --- a/src/api/features.ts +++ b/src/api/features.ts @@ -4,7 +4,12 @@ import { apiClient as apiV1Client, axiosClient, } from './apiClient' -import { CreateFeatureParams, Feature, UpdateFeatureParams } from './schemas' +import { + CreateFeatureParams, + Feature, + UpdateFeatureParams, + UpdateFeatureStatusParams, +} from './schemas' import 'reflect-metadata' import { buildHeaders } from './common' @@ -83,6 +88,22 @@ export const updateFeature = async ( }) } +export const updateFeatureStatus = async ( + token: string, + project_id: string, + feature_id: string, + params: UpdateFeatureStatusParams, +): Promise<Feature> => { + const response = await axiosClient.patch( + `/v1/projects/${project_id}/features/${feature_id}/status`, + params, + { + headers: buildHeaders(token), + }, + ) + return response.data +} + export const deleteFeature = async ( token: string, project_id: string, diff --git a/src/api/schemas.ts b/src/api/schemas.ts index 9e5be7e58..a8b8ac997 100644 --- a/src/api/schemas.ts +++ b/src/api/schemas.ts @@ -28,6 +28,13 @@ export const CreateFeatureDto = schemas.CreateFeatureDto export type UpdateFeatureParams = z.infer<typeof schemas.UpdateFeatureDto> export const UpdateFeatureDto = schemas.UpdateFeatureDto +export const UpdateFeatureStatusDto = z.object({ + status: z.enum(['active', 'complete', 'archived']), + staticVariation: z.string().optional(), +}) + +export type UpdateFeatureStatusParams = z.infer<typeof UpdateFeatureStatusDto> + export type CreateVariableParams = z.infer<typeof schemas.CreateVariableDto> export const CreateVariableDto = schemas.CreateVariableDto diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index fbc26b4c0..69abf0887 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -4,6 +4,7 @@ import { fetchFeatures, createFeature, updateFeature, + updateFeatureStatus, deleteFeature, getFeatureAuditLogHistory, } from '../../api/features' @@ -23,6 +24,7 @@ import { ListFeaturesArgsSchema, CreateFeatureArgsSchema, UpdateFeatureArgsSchema, + UpdateFeatureStatusArgsSchema, DeleteFeatureArgsSchema, EnableTargetingArgsSchema, DisableTargetingArgsSchema, @@ -273,6 +275,32 @@ export const featureToolDefinitions: Tool[] = [ required: ['key'], }, }, + { + name: 'update_feature_status', + description: + 'Update the status of an existing feature flag. ⚠️ IMPORTANT: Changes to feature status may affect production environments. Always confirm with the user before making changes to features that are active in production.', + inputSchema: { + type: 'object', + properties: { + key: { + type: 'string', + description: + 'The key of the feature to update status for (1-100 characters, must match pattern ^[a-z0-9-_.]+$)', + }, + status: { + type: 'string', + enum: ['active', 'complete', 'archived'], + description: 'The status to set the feature to', + }, + staticVariation: { + type: 'string', + description: + 'The variation key or ID to serve if the status is set to complete (optional)', + }, + }, + required: ['key', 'status'], + }, + }, { name: 'delete_feature', description: @@ -614,6 +642,27 @@ export const featureToolHandlers: Record<string, ToolHandler> = { }, ) }, + update_feature_status: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = UpdateFeatureStatusArgsSchema.parse(args) + + return await apiClient.executeWithLogging( + 'updateFeatureStatus', + validatedArgs, + async (authToken, projectKey) => { + const { key, ...statusData } = validatedArgs + + return await updateFeatureStatus( + authToken, + projectKey, + key, + statusData, + ) + }, + ) + }, delete_feature: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = DeleteFeatureArgsSchema.parse(args) diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 4df9a90e6..948390944 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -1,5 +1,6 @@ import { z } from 'zod' import { schemas } from '../api/zodClient' +import { UpdateFeatureStatusDto } from '../api/schemas' // Zod schemas for MCP tool arguments export const ListFeaturesArgsSchema = z.object({ @@ -109,6 +110,13 @@ export const UpdateFeatureArgsSchema = schemas.UpdateFeatureDto.extend({ .regex(/^[a-z0-9-_.]+$/), // Make key required for identifying the feature }) +export const UpdateFeatureStatusArgsSchema = UpdateFeatureStatusDto.extend({ + key: z + .string() + .max(100) + .regex(/^[a-z0-9-_.]+$/), // Feature key for identifying the feature +}) + export const UpdateSelfTargetingIdentityArgsSchema = z.object({ dvc_user_id: z.string().nullable(), }) From c722573c6d9e42dd506f41fbaf6eceb0e15fd2fd Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Wed, 9 Jul 2025 14:46:34 -0400 Subject: [PATCH 39/74] chore: update mcp docs --- README.md | 36 +++ docs/mcp.md | 510 +++++++++++++++++++++++++++++++++ docs/mcp/HACKATHON_MVP_PLAN.md | 211 -------------- 3 files changed, 546 insertions(+), 211 deletions(-) create mode 100644 docs/mcp.md delete mode 100644 docs/mcp/HACKATHON_MVP_PLAN.md diff --git a/README.md b/README.md index 13141436c..f38903d43 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ Major features include: - Detect and list DevCycle Variable usages in your codebase - Manage your Self-Targeting Overrides to quickly switch between Variable values - Generate type definitions for type-safe usage of DevCycle (Typescript only) +- MCP (Model Context Protocol) server for AI-powered feature flag management with Cursor and Claude The CLI can be customized in several ways using command-line args or by creating a [configuration file](#repo-configuration). @@ -20,6 +21,7 @@ The CLI can be customized in several ways using command-line args or by creating * [Authentication](#authentication) * [Usage](#usage) * [Command Topics](#command-topics) +* [MCP Server for AI Assistants](#mcp-server-for-ai-assistants) * [Repo Configuration](#repo-configuration) <!-- tocstop --> # Setup @@ -143,6 +145,40 @@ USAGE <!-- commandsstop --> +# MCP Server for AI Assistants + +The DevCycle CLI includes an MCP (Model Context Protocol) server that enables AI coding assistants like Cursor and Claude to manage feature flags directly. This allows you to create, update, and manage feature flags without leaving your coding environment. + +## Quick Setup + +### For Cursor +Add to `.cursor/mcp_settings.json`: +```json +{ + "mcpServers": { + "devcycle": { + "command": "dvc-mcp" + } + } +} +``` + +### For Claude Desktop +Add to your Claude configuration file: +```json +{ + "mcpServers": { + "devcycle": { + "command": "dvc-mcp" + } + } +} +``` + +The MCP server uses the same authentication as the CLI. Simply run `dvc login sso` first, then your AI assistant can manage feature flags on your behalf. + +For detailed documentation, see [docs/mcp.md](docs/mcp.md). + # Repo Configuration The following commands can only be run from the root of a configured repository diff --git a/docs/mcp.md b/docs/mcp.md new file mode 100644 index 000000000..6e55d7f07 --- /dev/null +++ b/docs/mcp.md @@ -0,0 +1,510 @@ +# DevCycle MCP Server Documentation + +## Overview + +The DevCycle MCP (Model Context Protocol) Server enables AI coding assistants like Cursor and Claude to interact directly with DevCycle's feature flag management system. This integration allows developers to manage feature flags, variables, and targeting rules without leaving their coding environment. + +## Table of Contents + +- [Installation & Setup](#installation--setup) +- [Authentication](#authentication) +- [Available Tools](#available-tools) + - [Feature Management](#feature-management) + - [Variable Management](#variable-management) + - [Environment Management](#environment-management) + - [Project Management](#project-management) + - [Self-Targeting & Overrides](#self-targeting--overrides) +- [Error Handling](#error-handling) +- [Usage Examples](#usage-examples) +- [Best Practices](#best-practices) + +## Installation & Setup + +### Prerequisites + +- Node.js 16+ installed +- DevCycle CLI installed globally: `npm install -g @devcycle/cli` +- DevCycle account with API credentials or SSO authentication + +### Cursor Configuration + +Add to your Cursor settings (`.cursor/mcp_settings.json`): + +```json +{ + "mcpServers": { + "devcycle": { + "command": "dvc-mcp" + } + } +} +``` + +### Claude Desktop Configuration + +Add to Claude's config file: + +- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` + +```json +{ + "mcpServers": { + "devcycle": { + "command": "dvc-mcp" + } + } +} +``` + +## Authentication + +The MCP server supports two authentication methods: + +### 1. Environment Variables (Recommended for CI/CD) + +```bash +export DEVCYCLE_CLIENT_ID="your-client-id" +export DEVCYCLE_CLIENT_SECRET="your-client-secret" +export DEVCYCLE_PROJECT_KEY="your-project-key" +``` + +### 2. CLI Authentication (Recommended for local development) + +First authenticate using the CLI: + +```bash +dvc login sso +``` + +Then select your project: + +```bash +dvc projects select +``` + +The MCP server will use the stored credentials automatically. + +## Available Tools + +### Feature Management + +#### `list_features` +List all features in the current project with optional search and pagination. + +**Parameters:** +- `search` (optional): Search query to filter features +- `page` (optional): Page number (default: 1) +- `per_page` (optional): Items per page (default: 100, max: 1000) + +#### `create_feature` ⚠️ +Create a new feature flag. + +**Parameters:** +- `key`: Unique feature key (pattern: `^[a-z0-9-_.]+$`) +- `name`: Human-readable name (max 100 chars) +- `description` (optional): Feature description (max 1000 chars) +- `type` (optional): Feature type (`release`, `experiment`, `permission`, `ops`) +- `tags` (optional): Array of tags for organization +- `variations` (optional): Array of variations with key, name, and variables +- `configurations` (optional): Environment-specific configurations +- `sdkVisibility` (optional): SDK visibility settings + +#### `update_feature` ⚠️ +Update an existing feature flag. + +**Parameters:** +- `key`: Feature key to update +- `name` (optional): New name +- `description` (optional): New description +- `type` (optional): New type +- `tags` (optional): New tags +- `variations` (optional): Updated variations + +#### `update_feature_status` ⚠️ +Update the status of a feature flag. + +**Parameters:** +- `key`: Feature key +- `status`: New status (`active`, `complete`, `archived`) +- `staticVariation` (optional): Variation to serve if status is `complete` + +#### `delete_feature` ⚠️⚠️ +Delete a feature flag from ALL environments. + +**Parameters:** +- `key`: Feature key to delete + +#### `fetch_feature_variations` +Get all variations for a feature. + +**Parameters:** +- `feature_key`: Feature key + +#### `create_feature_variation` +Create a new variation within a feature. + +**Parameters:** +- `feature_key`: Feature key +- `key`: Unique variation key +- `name`: Variation name +- `variables` (optional): Variable values for this variation + +#### `update_feature_variation` +Update an existing variation. + +**Parameters:** +- `feature_key`: Feature key +- `variation_key`: Variation to update +- `key` (optional): New variation key +- `name` (optional): New variation name +- `variables` (optional): Updated variable values + +#### `enable_feature_targeting` ⚠️ +Enable targeting for a feature in an environment. + +**Parameters:** +- `feature_key`: Feature key +- `environment_key`: Environment key + +#### `disable_feature_targeting` ⚠️ +Disable targeting for a feature in an environment. + +**Parameters:** +- `feature_key`: Feature key +- `environment_key`: Environment key + +#### `list_feature_targeting` +List targeting rules for a feature. + +**Parameters:** +- `feature_key`: Feature key +- `environment_key` (optional): Specific environment (returns all if omitted) + +#### `update_feature_targeting` ⚠️ +Update targeting rules for a feature in an environment. + +**Parameters:** +- `feature_key`: Feature key +- `environment_key`: Environment key +- `status` (optional): Targeting status (`active`, `inactive`, `archived`) +- `targets` (optional): Array of targeting rules with audience filters and distributions + +#### `get_feature_audit_log_history` +Get timeline of feature flag changes from audit log. + +**Parameters:** +- `feature_key`: Feature key +- `days_back` (optional): Days to look back (default: 30, max: 365) + +### Variable Management + +#### `list_variables` +List all variables in the current project. + +**Parameters:** +- `search` (optional): Search query +- `page` (optional): Page number +- `per_page` (optional): Items per page + +#### `create_variable` ⚠️ +Create a new variable. + +**Parameters:** +- `key`: Unique variable key (pattern: `^[a-z0-9-_.]+$`) +- `type`: Variable type (`String`, `Boolean`, `Number`, `JSON`) +- `name` (optional): Variable name +- `description` (optional): Variable description +- `defaultValue` (optional): Default value +- `_feature` (optional): Associated feature key +- `validationSchema` (optional): Validation rules + +#### `update_variable` ⚠️ +Update an existing variable. + +**Parameters:** +- `key`: Variable key to update +- `name` (optional): New name +- `description` (optional): New description +- `type` (optional): New type +- `validationSchema` (optional): New validation rules + +#### `delete_variable` ⚠️⚠️ +Delete a variable from ALL environments. + +**Parameters:** +- `key`: Variable key to delete + +### Environment Management + +#### `list_environments` +List all environments in the current project. + +**Parameters:** +- `search` (optional): Search query (min 3 chars) +- `page` (optional): Page number +- `perPage` (optional): Items per page +- `sortBy` (optional): Sort field +- `sortOrder` (optional): Sort order (`asc`, `desc`) + +#### `get_sdk_keys` +Get SDK keys for an environment. + +**Parameters:** +- `environmentKey`: Environment key +- `keyType` (optional): Specific key type (`mobile`, `server`, `client`) + +#### `create_environment` +Create a new environment. + +**Parameters:** +- `key`: Unique environment key +- `name`: Environment name +- `description` (optional): Environment description +- `color` (optional): Environment color + +#### `update_environment` +Update an existing environment. + +**Parameters:** +- `key`: Environment key to update +- `name` (optional): New name +- `description` (optional): New description +- `color` (optional): New color + +### Project Management + +#### `list_projects` +List all projects in the organization. + +**Parameters:** +- `search` (optional): Search query +- `page` (optional): Page number +- `perPage` (optional): Items per page +- `sortBy` (optional): Sort field +- `sortOrder` (optional): Sort order + +#### `get_current_project` +Get details of the currently selected project. + +**Parameters:** None + +#### `create_project` +Create a new project. + +**Parameters:** +- `key`: Unique project key +- `name`: Project name +- `description` (optional): Project description + +### Self-Targeting & Overrides + +#### `get_self_targeting_identity` +Get current DevCycle identity for self-targeting. + +**Parameters:** None + +#### `update_self_targeting_identity` +Update DevCycle identity for testing. + +**Parameters:** +- `dvc_user_id`: DevCycle User ID (use empty string to clear) + +#### `list_self_targeting_overrides` +List all active overrides for the current project. + +**Parameters:** None + +#### `set_self_targeting_override` ⚠️ +Set an override to test a specific variation. + +**Parameters:** +- `feature_key`: Feature key +- `environment_key`: Environment key +- `variation_key`: Variation to serve + +#### `clear_feature_self_targeting_overrides` ⚠️ +Clear overrides for a specific feature/environment. + +**Parameters:** +- `feature_key`: Feature key +- `environment_key`: Environment key + +#### `clear_all_self_targeting_overrides` +Clear all overrides for the current project. + +**Parameters:** None + +## Error Handling + +The MCP server returns structured error responses: + +```json +{ + "error": true, + "message": "Detailed error message", + "tool": "tool_name", + "timestamp": "2024-01-01T00:00:00.000Z" +} +``` + +Common error scenarios: +- Authentication failures: Check credentials and project configuration +- API rate limits: Implement retry logic in your automation +- Validation errors: Ensure parameters meet requirements (patterns, lengths, etc.) +- Permission errors: Verify your API key has necessary permissions + +## Usage Examples + +### Creating a Feature Flag + +``` +Create a feature flag for the new checkout flow with variations for A/B testing +``` + +The AI assistant will use: +1. `create_feature` to create the feature +2. `create_feature_variation` to add variations +3. `enable_feature_targeting` to activate in development + +### Managing Overrides for Testing + +``` +Set up my identity to test the premium user experience +``` + +The AI assistant will use: +1. `update_self_targeting_identity` to set your user ID +2. `set_self_targeting_override` to force specific variations + +### Analyzing Feature Usage + +``` +Show me the recent changes to the checkout_flow feature +``` + +The AI assistant will use: +1. `get_feature_audit_log_history` to retrieve change history +2. `list_feature_targeting` to show current configuration + +## Best Practices + +### 1. Production Safety + +Tools marked with ⚠️ can affect production environments. The AI will confirm before: +- Creating or updating features/variables +- Enabling/disabling targeting +- Setting overrides in production + +Tools marked with ⚠️⚠️ are destructive and require extra confirmation. + +### 2. Naming Conventions + +- Feature keys: `lowercase_with_underscores` or `kebab-case` +- Variable keys: Follow the same pattern as features +- Must match pattern: `^[a-z0-9-_.]+$` +- Maximum 100 characters + +### 3. Environment Management + +- Use consistent environment keys across projects +- Common pattern: `development`, `staging`, `production` +- Create environment-specific overrides for testing + +### 4. Self-Targeting Best Practices + +- Clear overrides after testing +- Use meaningful user IDs for team collaboration +- Document override purposes in team communications + +### 5. Audit and Compliance + +- Use `get_feature_audit_log_history` for compliance tracking +- Tag features appropriately for organization +- Include descriptions for documentation + +## Limitations + +Current MCP server does NOT support: +- Code analysis tools (usage scanning, cleanup) +- Git integration features +- Type generation +- Analytics and metrics +- MCP Resources (read-only data access) +- MCP Prompts (guided workflows) + +These features are planned for future releases. + +## Troubleshooting + +### Authentication Issues + +1. Verify environment variables are set correctly +2. Check CLI authentication: `dvc status` +3. Ensure project is selected: `dvc projects current` + +### Connection Issues + +1. Check DevCycle CLI is installed: `dvc --version` +2. Verify MCP server starts: `dvc-mcp` +3. Check AI assistant logs for connection errors + +### API Errors + +1. Verify API credentials have necessary permissions +2. Check project and organization access +3. Review error messages for specific validation issues + +For additional support, visit [DevCycle Documentation](https://docs.devcycle.com) or contact support. + +## Development & Local Testing + +For local development and testing of the MCP server: + +### Running from Source + +```bash +# Clone the repository +git clone https://github.com/DevCycleHQ/cli.git +cd cli + +# Install dependencies +yarn install + +# Build the project +yarn build + +# Run the MCP server +node dist/mcp/index.js +``` + +### Testing with AI Assistants + +For local testing, update your AI assistant configuration to point to the local build: + +```json +{ + "mcpServers": { + "devcycle": { + "command": "node", + "args": ["/path/to/cli/dist/mcp/index.js"] + } + } +} +``` + +### Debug Logging + +The MCP server logs all operations to stderr, which can be viewed in: +- Cursor: Developer Tools console +- Claude Desktop: Log files in the application support directory + +### Environment Variables for Development + +```bash +# Enable verbose logging +export DEBUG=1 + +# Use specific DevCycle API endpoint +export DEVCYCLE_API_URL="https://api.devcycle.com" +``` \ No newline at end of file diff --git a/docs/mcp/HACKATHON_MVP_PLAN.md b/docs/mcp/HACKATHON_MVP_PLAN.md deleted file mode 100644 index 3e8fad0f7..000000000 --- a/docs/mcp/HACKATHON_MVP_PLAN.md +++ /dev/null @@ -1,211 +0,0 @@ -# DevCycle MCP Hackathon Implementation Plan - -## Overview - -This document outlines the implementation plan for 4 core DevCycle MCP tools in priority order. - -## Target Tools - -1. `list_features` / `get_feature` / `list_variables` / `get_variable` -2. `get_sdk_keys` -3. `enable_targeting` / `disable_targeting` -4. `create_feature` (interactive) - -## Implementation Order - -### 1. List/Get Features and Variables - -#### `list_features` -**Implementation Time**: 1.5 hours -**Complexity**: Low -**Files to leverage**: `src/api/features.ts`, `src/commands/features/list.ts` - -```typescript -async listFeatures(args: { - search?: string, - page?: number, - per_page?: number -}) { - // Reuse fetchFeatures from src/api/features.ts - return await this.api.fetchFeatures(args) -} -``` - -#### `get_feature` -**Implementation Time**: 1 hour -**Complexity**: Low -**Files to leverage**: `src/api/features.ts`, `src/commands/features/get.ts` - -```typescript -async getFeature(args: { feature_key: string }) { - // Reuse fetchFeature from src/api/features.ts - return await this.api.fetchFeature(args.feature_key) -} -``` - -#### `list_variables` -**Implementation Time**: 1.5 hours -**Complexity**: Low -**Files to leverage**: `src/api/variables.ts`, `src/commands/variables/list.ts` - -```typescript -async listVariables(args: { - search?: string, - page?: number, - per_page?: number -}) { - // Reuse fetchVariables from src/api/variables.ts - return await this.api.fetchVariables(args) -} -``` - -#### `get_variable` -**Implementation Time**: 1 hour -**Complexity**: Low -**Files to leverage**: `src/api/variables.ts`, `src/commands/variables/get.ts` - -```typescript -async getVariable(args: { variable_key: string }) { - // Reuse fetchVariable from src/api/variables.ts - return await this.api.fetchVariable(args.variable_key) -} -``` - -### 2. Get SDK Keys - -#### `get_sdk_keys` -**Implementation Time**: 2 hours -**Complexity**: Medium -**Files to leverage**: `src/api/environments.ts`, `src/commands/keys/get.ts` - -```typescript -async getSdkKeys(args: { - environment_key: string, - key_type?: 'mobile' | 'server' | 'client' -}) { - // Reuse fetchEnvironment from src/api/environments.ts - // Extract SDK keys based on key_type filter - const env = await this.api.fetchEnvironment(args.environment_key) - return { - mobile: env.sdkKeys?.mobile, - server: env.sdkKeys?.server, - client: env.sdkKeys?.client - } -} -``` - -### 3. Enable/Disable Targeting - -#### `enable_targeting` -**Implementation Time**: 2 hours -**Complexity**: Medium -**Files to leverage**: `src/api/targeting.ts`, `src/commands/targeting/enable.ts` - -```typescript -async enableTargeting(args: { - feature_key: string, - environment_key: string -}) { - // Reuse updateTargeting from src/api/targeting.ts - return await this.api.updateTargeting( - args.feature_key, - args.environment_key, - { status: 'active' } - ) -} -``` - -#### `disable_targeting` -**Implementation Time**: 1.5 hours -**Complexity**: Medium -**Files to leverage**: `src/api/targeting.ts`, `src/commands/targeting/disable.ts` - -```typescript -async disableTargeting(args: { - feature_key: string, - environment_key: string -}) { - // Reuse updateTargeting from src/api/targeting.ts - return await this.api.updateTargeting( - args.feature_key, - args.environment_key, - { status: 'inactive' } - ) -} -``` - -### 4. Interactive Create Feature - -#### `create_feature` -**Implementation Time**: 3 hours -**Complexity**: High -**Files to leverage**: `src/commands/features/create.ts`, `src/ui/prompts/featurePrompts.ts` - -```typescript -async createFeature(args: { - key?: string, - name?: string, - description?: string, - type?: 'release' | 'experiment' | 'permission' | 'ops', - interactive?: boolean -}) { - // If interactive mode, use prompts from src/ui/prompts/featurePrompts.ts - // Otherwise use provided args directly - // Reuse createFeature logic from src/commands/features/create.ts - - if (args.interactive) { - // Use existing prompt functions but adapt for MCP - // May need to return prompt questions for AI to handle - return { - requires_input: true, - questions: [ - { field: 'key', prompt: 'Enter feature key:', required: true }, - { field: 'name', prompt: 'Enter feature name:', required: true }, - { field: 'description', prompt: 'Enter description:', required: false }, - { field: 'type', prompt: 'Select type:', options: ['release', 'experiment', 'permission', 'ops'] } - ] - } - } else { - // Direct creation with provided args - return await this.api.createFeature(args) - } -} -``` - -## Implementation Notes - -### Authentication Integration -- Reuse existing auth patterns from `src/auth/ApiAuth.ts` -- Use `TokenCache` for token management -- Maintain compatibility with existing CLI authentication - -### Error Handling -- Wrap API errors in MCP-compatible error responses -- Provide clear error messages for common issues -- Use existing validation from CLI commands - -### File Structure - -``` -src/mcp/ -├── index.ts # MCP server entry point -├── server.ts # Main server implementation -├── tools/ -│ ├── features.ts # Feature and variable tools -│ ├── environments.ts # SDK keys and targeting tools -│ └── index.ts -└── utils/ - ├── auth.ts # Authentication helpers - └── api.ts # API client wrapper -``` - -## Dependencies - -```json -{ - "dependencies": { - "@modelcontextprotocol/sdk": "latest", - "zod": "^3.23.0" - } -} -``` From 60a557466ca0e1efe27a6f6c99c54d2f1508fa58 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Wed, 9 Jul 2025 15:12:04 -0400 Subject: [PATCH 40/74] feat: add update_project tool and API call, switch projects.ts to use zod types --- src/api/projects.ts | 56 +++++++++++---------------------- src/api/schemas.ts | 9 ++++++ src/api/zodClient.ts | 19 +++++++++++ src/commands/projects/create.ts | 7 +++-- src/commands/projects/get.ts | 6 ++-- src/mcp/tools/projectTools.ts | 48 ++++++++++++++++++++++++++-- src/mcp/types.ts | 27 +++------------- 7 files changed, 104 insertions(+), 68 deletions(-) diff --git a/src/api/projects.ts b/src/api/projects.ts index 7913a2536..0e4877201 100644 --- a/src/api/projects.ts +++ b/src/api/projects.ts @@ -1,43 +1,10 @@ -import { IsNotEmpty, IsOptional, IsString } from 'class-validator' import apiClient from './apiClient' import { buildHeaders } from './common' - -export class CreateProjectParams { - @IsString() - @IsNotEmpty() - name: string - - @IsString() - @IsOptional() - description?: string - - @IsNotEmpty() - @IsString() - key: string -} - -export class GetProjectsParams { - @IsString() - @IsOptional() - sortBy?: string - - @IsOptional() - sortOrder?: 'asc' | 'desc' - - @IsString() - @IsOptional() - search?: string - - @IsString() - @IsOptional() - createdBy?: string - - @IsOptional() - page?: number - - @IsOptional() - perPage?: number -} +import { + CreateProjectParams, + UpdateProjectParams, + GetProjectsParams, +} from './schemas' const BASE_URL = '/v1/projects' @@ -68,3 +35,16 @@ export const createProject = async ( headers: buildHeaders(token), }) } + +export const updateProject = async ( + token: string, + projectKey: string, + params: UpdateProjectParams, +) => { + return apiClient.patch(`${BASE_URL}/:key`, params, { + headers: buildHeaders(token), + params: { + key: projectKey, + }, + }) +} diff --git a/src/api/schemas.ts b/src/api/schemas.ts index a8b8ac997..fcc69b337 100644 --- a/src/api/schemas.ts +++ b/src/api/schemas.ts @@ -12,6 +12,15 @@ export type Audience = z.infer<typeof schemas.Audience> export type Target = z.infer<typeof schemas.Target> export type Override = z.infer<typeof schemas.Override> export type CustomProperty = z.infer<typeof schemas.CustomProperty> +export type GetProjectsParams = z.infer<typeof schemas.GetProjectsParams> +export const GetProjectsParams = schemas.GetProjectsParams + +export type CreateProjectParams = z.infer<typeof schemas.CreateProjectDto> +export const CreateProjectDto = schemas.CreateProjectDto + +export type UpdateProjectParams = z.infer<typeof schemas.UpdateProjectDto> +export const UpdateProjectDto = schemas.UpdateProjectDto + export type CreateEnvironmentParams = z.infer< typeof schemas.CreateEnvironmentDto > diff --git a/src/api/zodClient.ts b/src/api/zodClient.ts index 02cdf8535..2711cded4 100644 --- a/src/api/zodClient.ts +++ b/src/api/zodClient.ts @@ -39,6 +39,24 @@ const ProjectSettings = z.object({ obfuscation: ObfuscationSettings, staleness: StalenessSettings, }) +const GetProjectsParams = z.object({ + page: z.number().gte(1).optional().default(1), + perPage: z.number().gte(1).lte(1000).optional().default(100), + sortBy: z + .enum([ + 'createdAt', + 'updatedAt', + 'name', + 'key', + 'createdBy', + 'propertyKey', + ]) + .optional() + .default('createdAt'), + sortOrder: z.enum(['asc', 'desc']).optional().default('desc'), + search: z.string().optional(), + createdBy: z.string().optional(), +}) const CreateProjectDto = z.object({ name: z.string().max(100), key: z @@ -864,6 +882,7 @@ export const schemas = { OptInSettings, SDKTypeVisibilitySettings, ProjectSettings, + GetProjectsParams, CreateProjectDto, Project, BadRequestErrorResponse, diff --git a/src/commands/projects/create.ts b/src/commands/projects/create.ts index 060122f44..a4c07a16f 100644 --- a/src/commands/projects/create.ts +++ b/src/commands/projects/create.ts @@ -1,5 +1,6 @@ import { Flags } from '@oclif/core' -import { createProject, CreateProjectParams } from '../../api/projects' +import { createProject } from '../../api/projects' +import { CreateProjectDto } from '../../api/schemas' import { descriptionPrompt, keyPrompt, namePrompt } from '../../ui/prompts' import CreateCommand from '../createCommand' @@ -25,8 +26,8 @@ export default class CreateProject extends CreateCommand { ) return } - const params = await this.populateParameters( - CreateProjectParams, + const params = await this.populateParametersWithZod( + CreateProjectDto, this.prompts, { key, diff --git a/src/commands/projects/get.ts b/src/commands/projects/get.ts index 8d3192a3f..eada77472 100644 --- a/src/commands/projects/get.ts +++ b/src/commands/projects/get.ts @@ -1,5 +1,5 @@ -import { plainToClass } from 'class-transformer' -import { GetProjectsParams, fetchProjects } from '../../api/projects' +import { fetchProjects } from '../../api/projects' +import { schemas } from '../../api/zodClient' import GetCommand from '../getCommand' export default class DetailedProjects extends GetCommand { @@ -15,7 +15,7 @@ export default class DetailedProjects extends GetCommand { const { flags } = await this.parse(DetailedProjects) const { sortBy, sortOrder } = flags - const params = plainToClass(GetProjectsParams, { sortBy, sortOrder }) + const params = schemas.GetProjectsParams.parse({ sortBy, sortOrder }) const projects = await fetchProjects(this.authToken, params) return this.writer.showResults( diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts index dc1048f9f..72a82c7f0 100644 --- a/src/mcp/tools/projectTools.ts +++ b/src/mcp/tools/projectTools.ts @@ -4,9 +4,13 @@ import { fetchProjects, fetchProject, createProject, - CreateProjectParams, + updateProject, } from '../../api/projects' -import { ListProjectsArgsSchema, CreateProjectArgsSchema } from '../types' +import { + ListProjectsArgsSchema, + CreateProjectArgsSchema, + UpdateProjectArgsSchema, +} from '../types' import { ToolHandler } from '../server' export const projectToolDefinitions: Tool[] = [ @@ -84,6 +88,33 @@ export const projectToolDefinitions: Tool[] = [ required: ['name', 'key'], }, }, + { + name: 'update_project', + description: 'Update an existing project', + inputSchema: { + type: 'object', + properties: { + key: { + type: 'string', + description: + 'Project key to identify the project to update', + }, + name: { + type: 'string', + description: 'Updated project name', + }, + description: { + type: 'string', + description: 'Updated project description', + }, + color: { + type: 'string', + description: 'Project color (hex format)', + }, + }, + required: ['key'], + }, + }, ] export const projectToolHandlers: Record<string, ToolHandler> = { @@ -123,4 +154,17 @@ export const projectToolHandlers: Record<string, ToolHandler> = { false, ) }, + update_project: async (args: unknown, apiClient: DevCycleApiClient) => { + const validatedArgs = UpdateProjectArgsSchema.parse(args) + const { key, ...updateParams } = validatedArgs + + return await apiClient.executeWithLogging( + 'updateProject', + validatedArgs, + async (authToken) => { + return await updateProject(authToken, key, updateParams) + }, + false, + ) + }, } diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 948390944..422688a31 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -32,32 +32,15 @@ export const DeleteFeatureArgsSchema = z.object({ key: z.string(), }) -export const ListProjectsArgsSchema = z.object({ - sortBy: z - .enum([ - 'createdAt', - 'updatedAt', - 'name', - 'key', - 'createdBy', - 'propertyKey', - ]) - .optional(), - sortOrder: z.enum(['asc', 'desc']).optional(), - search: z.string().min(3).optional(), - createdBy: z.string().optional(), - page: z.number().min(1).optional(), - perPage: z.number().min(1).max(1000).default(100).optional(), -}) +export const ListProjectsArgsSchema = schemas.GetProjectsParams + +export const CreateProjectArgsSchema = schemas.CreateProjectDto -export const CreateProjectArgsSchema = z.object({ +export const UpdateProjectArgsSchema = schemas.UpdateProjectDto.extend({ key: z .string() - .min(1) .max(100) - .regex(/^[a-z0-9-_.]+$/), - name: z.string().min(1), - description: z.string().optional(), + .regex(/^[a-z0-9-_.]+$/), // Make key required for identifying the project }) export const ListEnvironmentsArgsSchema = z.object({ From ad3b2a334072180ec5e78c682c5ca3b814704646 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Thu, 17 Jul 2025 12:31:48 -0400 Subject: [PATCH 41/74] feat: improve MCP server installation (#461) * feat: improve MCP server installation * fix: update yarn.lock * fix: error handling * fix: switch to path.resolve() * chore: refactor and cleanup error handling code * chore: address PR comments --- README.md | 71 +++++++++++++++++- bin/mcp | 6 ++ bin/mcp.cmd | 3 + oclif.manifest.json | 2 +- package.json | 2 +- src/api/zodClient.ts | 6 +- src/mcp/index.ts | 91 ++++++++++++++++++++++- src/mcp/server.ts | 169 +++++++++++++++++++++++++++++++++++------- src/mcp/utils/auth.ts | 73 +++++++++++++++--- yarn.lock | 2 +- 10 files changed, 375 insertions(+), 50 deletions(-) create mode 100755 bin/mcp create mode 100644 bin/mcp.cmd diff --git a/README.md b/README.md index f38903d43..794b8cf35 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,8 @@ The CLI can be customized in several ways using command-line args or by creating * [Usage](#usage) * [Command Topics](#command-topics) * [MCP Server for AI Assistants](#mcp-server-for-ai-assistants) +* [This installs both 'dvc' CLI and 'dvc-mcp' server](#this-installs-both-dvc-cli-and-dvc-mcp-server) +* [Access via: npx dvc-mcp](#access-via-npx-dvc-mcp) * [Repo Configuration](#repo-configuration) <!-- tocstop --> # Setup @@ -149,7 +151,27 @@ USAGE The DevCycle CLI includes an MCP (Model Context Protocol) server that enables AI coding assistants like Cursor and Claude to manage feature flags directly. This allows you to create, update, and manage feature flags without leaving your coding environment. -## Quick Setup +## Installation + +### Option 1: Global Installation (Recommended) +```bash +npm install -g @devcycle/cli +# This installs both 'dvc' CLI and 'dvc-mcp' server +``` + +### Option 2: Project-Specific Installation +```bash +npm install --save-dev @devcycle/cli +# Access via: npx dvc-mcp +``` + +### Verify Installation +```bash +dvc-mcp --version # Should display the DevCycle CLI version +dvc --version # Verify CLI is also installed +``` + +## Configuration ### For Cursor Add to `.cursor/mcp_settings.json`: @@ -165,6 +187,10 @@ Add to `.cursor/mcp_settings.json`: ### For Claude Desktop Add to your Claude configuration file: + +**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json` +**Windows:** `%APPDATA%\Claude\claude_desktop_config.json` + ```json { "mcpServers": { @@ -175,9 +201,48 @@ Add to your Claude configuration file: } ``` -The MCP server uses the same authentication as the CLI. Simply run `dvc login sso` first, then your AI assistant can manage feature flags on your behalf. +### For Project-Specific Installation +If you installed locally, update the command path: +```json +{ + "mcpServers": { + "devcycle": { + "command": "npx", + "args": ["dvc-mcp"] + } + } +} +``` + +## Authentication + +The MCP server uses the same authentication as the CLI: + +1. **Authenticate with DevCycle:** + ```bash + dvc login sso + ``` + +2. **Select your project:** + ```bash + dvc projects select + ``` + +3. **Verify setup:** + ```bash + dvc status + ``` + +Your AI assistant can now manage feature flags on your behalf. + +## Troubleshooting + +- **Command not found:** Ensure the CLI is installed globally or use `npx dvc-mcp` +- **Authentication errors:** Run `dvc login sso` to re-authenticate +- **No project selected:** Run `dvc projects select` to choose a project +- **Permission issues:** On Unix systems, you may need to restart your terminal after global installation -For detailed documentation, see [docs/mcp.md](docs/mcp.md). +For detailed documentation and advanced usage, see [docs/mcp.md](docs/mcp.md). # Repo Configuration The following commands can only be run from the root of a configured repository diff --git a/bin/mcp b/bin/mcp new file mode 100755 index 000000000..978b9f426 --- /dev/null +++ b/bin/mcp @@ -0,0 +1,6 @@ +#!/usr/bin/env node + +const path = require('path') + +// Run the MCP server directly +require(path.resolve(__dirname, '..', 'dist', 'mcp', 'index.js')) \ No newline at end of file diff --git a/bin/mcp.cmd b/bin/mcp.cmd new file mode 100644 index 000000000..3803e0eeb --- /dev/null +++ b/bin/mcp.cmd @@ -0,0 +1,3 @@ +@echo off + +node "%~dp0\mcp" %* \ No newline at end of file diff --git a/oclif.manifest.json b/oclif.manifest.json index ee18e43e6..790e81773 100644 --- a/oclif.manifest.json +++ b/oclif.manifest.json @@ -1,5 +1,5 @@ { - "version": "5.21.0", + "version": "5.21.1", "commands": { "authCommand": { "id": "authCommand", diff --git a/package.json b/package.json index 488bd42e7..ddb32044c 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "author": "support@devcycle.com", "bin": { "dvc": "./bin/run", - "dvc-mcp": "./dist/mcp/index.js" + "dvc-mcp": "./bin/mcp" }, "homepage": "https://github.com/DevCycleHQ/cli", "license": "MIT", diff --git a/src/api/zodClient.ts b/src/api/zodClient.ts index 2711cded4..d814b843d 100644 --- a/src/api/zodClient.ts +++ b/src/api/zodClient.ts @@ -314,12 +314,12 @@ const UpdateAudienceDto = z }) .partial() const VariableValidationEntity = z.object({ - schemaType: z.object({}).partial(), - enumValues: z.object({}).partial().optional(), + schemaType: z.string(), + enumValues: z.array(z.string()).optional(), regexPattern: z.string().optional(), jsonSchema: z.string().optional(), description: z.string(), - exampleValue: z.object({}).partial(), + exampleValue: z.any(), }) const CreateVariableDto = z.object({ name: z.string().max(100).optional(), diff --git a/src/mcp/index.ts b/src/mcp/index.ts index 55671d126..f21ac9a26 100644 --- a/src/mcp/index.ts +++ b/src/mcp/index.ts @@ -3,12 +3,53 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js' import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js' import { DevCycleMCPServer } from './server' +import { readFileSync } from 'fs' +import { join } from 'path' + +// Get version for MCP server +function getVersion(): string { + try { + const packagePath = join(__dirname, '..', '..', 'package.json') + const packageJson = JSON.parse(readFileSync(packagePath, 'utf8')) + return packageJson.version + } catch (error) { + return 'unknown version' + } +} + +// Handle command line arguments +const args = process.argv.slice(2) +if (args.includes('--version') || args.includes('-v')) { + console.log(getVersion()) + process.exit(0) +} + +if (args.includes('--help') || args.includes('-h')) { + console.log('DevCycle MCP Server') + console.log('') + console.log( + 'A Model Context Protocol server for DevCycle feature flag management.', + ) + console.log( + 'Designed to be used with AI coding assistants like Cursor and Claude.', + ) + console.log('') + console.log('Usage:') + console.log(' dvc-mcp Start the MCP server') + console.log(' dvc-mcp --version Show version information') + console.log(' dvc-mcp --help Show this help message') + console.log('') + console.log( + 'For setup instructions, see: https://github.com/DevCycleHQ/cli#mcp-server-for-ai-assistants', + ) + process.exit(0) +} async function main() { const server = new Server( { name: 'devcycle', - version: '0.0.1', + version: getVersion(), }, { capabilities: { @@ -27,6 +68,52 @@ async function main() { } main().catch((error) => { - console.error('Failed to start DevCycle MCP server:', error) + console.error('❌ Failed to start DevCycle MCP server') + console.error('') + + if (error instanceof Error) { + // Check for common error patterns and provide helpful guidance + if ( + error.message.includes('authentication') || + error.message.includes('DEVCYCLE_CLIENT_ID') + ) { + console.error('🔐 Authentication Error:') + console.error(` ${error.message}`) + console.error('') + console.error('💡 To fix this:') + console.error(' 1. Run: dvc login sso') + console.error(' 2. Or set environment variables:') + console.error(' export DEVCYCLE_CLIENT_ID="your-client-id"') + console.error( + ' export DEVCYCLE_CLIENT_SECRET="your-client-secret"', + ) + } else if ( + error.message.includes('project') || + error.message.includes('DEVCYCLE_PROJECT_KEY') + ) { + console.error('📁 Project Configuration Error:') + console.error(` ${error.message}`) + console.error('') + console.error('💡 To fix this:') + console.error(' 1. Run: dvc projects select') + console.error(' 2. Or set environment variable:') + console.error( + ' export DEVCYCLE_PROJECT_KEY="your-project-key"', + ) + } else { + console.error('⚠️ Unexpected Error:') + console.error(` ${error.message}`) + console.error('') + console.error('💡 For help:') + console.error(' - Run: dvc status') + console.error(' - Check: https://docs.devcycle.com') + console.error(' - Contact: support@devcycle.com') + } + } else { + console.error('⚠️ Unknown error occurred') + console.error(` ${error}`) + } + + console.error('') process.exit(1) }) diff --git a/src/mcp/server.ts b/src/mcp/server.ts index cbbd57113..9f39a81ad 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -84,6 +84,146 @@ export class DevCycleMCPServer { } } + private handleToolError(error: unknown, toolName: string) { + console.error(`Error in tool handler ${toolName}:`, error) + + let errorMessage = 'Unknown error' + let errorType = 'UNKNOWN_ERROR' + let suggestions: string[] = [] + + if (error instanceof Error) { + errorMessage = error.message + errorType = this.categorizeError(error.message) + suggestions = this.getErrorSuggestions(errorType) + } else if (error && typeof error === 'string') { + errorMessage = error + } else if (error && typeof error === 'object') { + errorMessage = JSON.stringify(error) + } + + const errorResponse = { + error: true, + type: errorType, + message: errorMessage, + tool: toolName, + suggestions, + timestamp: new Date().toISOString(), + } + + return { + content: [ + { + type: 'text', + text: JSON.stringify(errorResponse, null, 2), + }, + ], + } + } + + private categorizeError(errorMessage: string): string { + const lowerMessage = errorMessage.toLowerCase() + + switch (true) { + case lowerMessage.includes('zodios: invalid response') || + lowerMessage.includes('invalid_type') || + lowerMessage.includes('expected object, received'): + return 'SCHEMA_VALIDATION_ERROR' + + case lowerMessage.includes('401') || + lowerMessage.includes('unauthorized'): + return 'AUTHENTICATION_ERROR' + + case lowerMessage.includes('403') || + lowerMessage.includes('forbidden'): + return 'PERMISSION_ERROR' + + case lowerMessage.includes('404') || + lowerMessage.includes('not found'): + return 'RESOURCE_NOT_FOUND' + + case lowerMessage.includes('400') || + lowerMessage.includes('bad request'): + return 'VALIDATION_ERROR' + + case lowerMessage.includes('429') || + lowerMessage.includes('rate limit'): + return 'RATE_LIMIT_ERROR' + + case lowerMessage.includes('enotfound') || + lowerMessage.includes('network'): + return 'NETWORK_ERROR' + + case lowerMessage.includes('project') && + lowerMessage.includes('not found'): + return 'PROJECT_ERROR' + + default: + return 'UNKNOWN_ERROR' + } + } + + private getErrorSuggestions(errorType: string): string[] { + switch (errorType) { + case 'SCHEMA_VALIDATION_ERROR': + return [ + 'The API response format has changed or is unexpected', + 'This may be a temporary API issue - try again in a moment', + 'Contact DevCycle support if the issue persists', + ] + + case 'AUTHENTICATION_ERROR': + return [ + 'Run "dvc login sso" to re-authenticate the devcycle cli', + 'Verify your API credentials are correct', + 'Check if your token has expired', + ] + + case 'PERMISSION_ERROR': + return [ + 'Verify your account has permissions for this operation', + 'Check if you have access to the selected project', + 'Contact your DevCycle admin for permissions', + ] + + case 'RESOURCE_NOT_FOUND': + return [ + 'Verify the resource key/ID is correct', + 'Check if the resource exists in the selected project', + "Ensure you're in the correct environment", + ] + + case 'VALIDATION_ERROR': + return [ + 'Check the provided parameters are valid', + 'Verify required fields are not missing', + 'Review parameter format and constraints', + ] + + case 'RATE_LIMIT_ERROR': + return [ + 'Wait a moment before trying again', + 'Consider reducing the frequency of requests', + ] + + case 'NETWORK_ERROR': + return [ + 'Check your internet connection', + 'Verify firewall settings allow DevCycle API access', + 'Try again in a few moments', + ] + + case 'PROJECT_ERROR': + return [ + 'Run "dvc projects select" to choose a valid project', + 'Verify the project key is correct', + 'Check if you have access to this project', + ] + + default: + return [] + } + } + private setupToolHandlers() { this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: allToolDefinitions, @@ -110,34 +250,7 @@ export class DevCycleMCPServer { ], } } catch (error) { - console.error(`Error in tool handler ${name}:`, error) - - // Safely extract error message, handling undefined/null cases - let errorMessage = 'Unknown error' - if (error instanceof Error && error.message) { - errorMessage = error.message - } else if (error && typeof error === 'string') { - errorMessage = error - } else if (error && typeof error === 'object') { - errorMessage = JSON.stringify(error) - } - - // Return error as JSON to maintain consistent response format - const errorResponse = { - error: true, - message: errorMessage, - tool: name, - timestamp: new Date().toISOString(), - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify(errorResponse, null, 2), - }, - ], - } + return this.handleToolError(error, name) } }, ) diff --git a/src/mcp/utils/auth.ts b/src/mcp/utils/auth.ts index e325dde48..bc0a50875 100644 --- a/src/mcp/utils/auth.ts +++ b/src/mcp/utils/auth.ts @@ -44,25 +44,69 @@ export class DevCycleAuth { this._authToken = await this.apiAuth.getToken(flags, this._orgId) if (!this._authToken) { - throw new Error( - 'No authentication found. Please set DEVCYCLE_CLIENT_ID and DEVCYCLE_CLIENT_SECRET environment variables, ' + - 'or run "dvc login sso" in the CLI first.', - ) + const hasEnvVars = + process.env.DEVCYCLE_CLIENT_ID && + process.env.DEVCYCLE_CLIENT_SECRET + + if (hasEnvVars) { + throw new Error( + 'Authentication failed with provided environment variables. ' + + 'Please verify your DEVCYCLE_CLIENT_ID and DEVCYCLE_CLIENT_SECRET are correct, ' + + 'or run "dvc login sso" to authenticate with SSO.', + ) + } else { + throw new Error( + 'No authentication found. Please either:\n' + + ' 1. Run "dvc login sso" in the CLI to authenticate with SSO\n' + + ' 2. Or set environment variables:\n' + + ' - DEVCYCLE_CLIENT_ID="your-client-id"\n' + + ' - DEVCYCLE_CLIENT_SECRET="your-client-secret"', + ) + } } if (!this._projectKey) { - throw new Error( - 'No project configured. Please set DEVCYCLE_PROJECT_KEY environment variable, ' + - 'or configure a project using "dvc projects select" in the CLI.', - ) + const hasProjectEnv = process.env.DEVCYCLE_PROJECT_KEY + + if (hasProjectEnv) { + throw new Error( + `Invalid project key "${hasProjectEnv}" in environment variable. ` + + 'Please verify DEVCYCLE_PROJECT_KEY is correct, or run "dvc projects select" to configure a project.', + ) + } else { + throw new Error( + 'No project configured. Please either:\n' + + ' 1. Run "dvc projects select" in the CLI to choose a project\n' + + ' 2. Or set environment variable: DEVCYCLE_PROJECT_KEY="your-project-key"\n' + + ' 3. Or add project to .devcycle/config.yml in your repository', + ) + } } } catch (error) { console.error( 'Failed to initialize DevCycle authentication:', error, ) + + // Preserve the original error message if it's already detailed + if ( + error instanceof Error && + (error.message.includes('authentication') || + error.message.includes('project') || + error.message.includes('DEVCYCLE_')) + ) { + throw error // Re-throw the original detailed error + } + + // For other errors, wrap with context + const errorMessage = + error instanceof Error ? error.message : 'Unknown error' throw new Error( - `Failed to initialize DevCycle authentication: ${error instanceof Error ? error.message : 'Unknown error'}`, + `Failed to initialize DevCycle authentication: ${errorMessage}\n\n` + + 'Common solutions:\n' + + ' 1. Run "dvc status" to check your configuration\n' + + ' 2. Run "dvc login sso" to authenticate\n' + + ' 3. Run "dvc projects select" to choose a project', ) } } @@ -142,7 +186,11 @@ export class DevCycleAuth { requireAuth(): void { if (!this.hasToken()) { throw new Error( - 'Authentication required. Please configure DevCycle credentials.', + 'Authentication required. Please either:\n' + + ' 1. Run "dvc login sso" to authenticate with SSO\n' + + ' 2. Or set environment variables:\n' + + ' - DEVCYCLE_CLIENT_ID="your-client-id"\n' + + ' - DEVCYCLE_CLIENT_SECRET="your-client-secret"', ) } } @@ -150,7 +198,10 @@ export class DevCycleAuth { requireProject(): void { if (!this._projectKey) { throw new Error( - 'Project key required. Please configure a DevCycle project.', + 'Project configuration required. Please either:\n' + + ' 1. Run "dvc projects select" to choose a project\n' + + ' 2. Or set environment variable: DEVCYCLE_PROJECT_KEY="your-project-key"\n' + + ' 3. Or add project to .devcycle/config.yml in your repository', ) } } diff --git a/yarn.lock b/yarn.lock index c34bc43fb..24110fdd8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -642,7 +642,7 @@ __metadata: zod: "npm:^3.24.2" bin: dvc: ./bin/run - dvc-mcp: ./dist/mcp/index.js + dvc-mcp: ./bin/mcp languageName: unknown linkType: soft From 889d7b713f7cacda947c057985e03046b20d18c4 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Thu, 17 Jul 2025 16:38:38 -0400 Subject: [PATCH 42/74] feat: add dashboard links and output schemas to environmentTools.ts (#462) * feat: add dashboard links and output schemas to environmentTools.ts * feat: dashboard links working * feat: update projectTools with dashboard links * feat: update self targeting tools with dashboard links * feat: update variableTools * chore: cleanup ouput schemas * feat: update featureTools.ts with dashboard links and input/output schemas * fix: add oclif.manifest file back * chore: cleanup tool calls * chore: update feature list query params --- src/api/features.ts | 14 +- src/api/variables.ts | 12 +- src/mcp/tools/commonSchemas.ts | 348 +++++++++++++++++ src/mcp/tools/environmentTools.ts | 187 +++++++-- src/mcp/tools/featureTools.ts | 571 ++++++++++++++++++++-------- src/mcp/tools/projectTools.ts | 243 ++++++++---- src/mcp/tools/selfTargetingTools.ts | 175 +++++++-- src/mcp/tools/variableTools.ts | 370 +++++++++++------- src/mcp/types.ts | 41 +- src/mcp/utils/api.ts | 25 ++ 10 files changed, 1559 insertions(+), 427 deletions(-) create mode 100644 src/mcp/tools/commonSchemas.ts diff --git a/src/api/features.ts b/src/api/features.ts index 8c76876ba..ac5581ed0 100644 --- a/src/api/features.ts +++ b/src/api/features.ts @@ -19,11 +19,21 @@ export const fetchFeatures = async ( token: string, project_id: string, queries: { - feature?: string page?: number perPage?: number + sortBy?: + | 'createdAt' + | 'updatedAt' + | 'name' + | 'key' + | 'createdBy' + | 'propertyKey' + sortOrder?: 'asc' | 'desc' search?: string - staleness?: string + staleness?: 'all' | 'unused' | 'released' | 'unmodified' | 'notStale' + createdBy?: string + type?: 'release' | 'experiment' | 'permission' | 'ops' + status?: 'active' | 'complete' | 'archived' } = {}, ): Promise<Feature[]> => { const response = await apiClient.get(FEATURE_URL, { diff --git a/src/api/variables.ts b/src/api/variables.ts index 2b019d4dd..87bef5a7b 100644 --- a/src/api/variables.ts +++ b/src/api/variables.ts @@ -70,10 +70,20 @@ export const fetchVariables = async ( token: string, project_id: string, queries: { - feature?: string page?: number perPage?: number + sortBy?: + | 'createdAt' + | 'updatedAt' + | 'name' + | 'key' + | 'createdBy' + | 'propertyKey' + sortOrder?: 'asc' | 'desc' search?: string + feature?: string + type?: 'String' | 'Boolean' | 'Number' | 'JSON' + status?: 'active' | 'archived' } = {}, ) => { return await apiClient.get('/v1/projects/:project/variables', { diff --git a/src/mcp/tools/commonSchemas.ts b/src/mcp/tools/commonSchemas.ts new file mode 100644 index 000000000..59d5c1ac7 --- /dev/null +++ b/src/mcp/tools/commonSchemas.ts @@ -0,0 +1,348 @@ +/** + * Common schema definitions used across multiple MCP tool files + */ + +// ============================================================================= +// SHARED OUTPUT SCHEMA PROPERTIES +// ============================================================================= + +export const DASHBOARD_LINK_PROPERTY = { + type: 'string' as const, + format: 'uri' as const, + description: 'URL to view and manage resources in the DevCycle dashboard', +} + +export const MESSAGE_RESPONSE_SCHEMA = { + type: 'object' as const, + properties: { + message: { + type: 'string' as const, + }, + }, + required: ['message'], +} + +// ============================================================================= +// SHARED INPUT SCHEMA PROPERTIES +// ============================================================================= + +export const FEATURE_KEY_PROPERTY = { + type: 'string' as const, + description: + 'The key of the feature (unique, immutable, max 100 characters, pattern: ^[a-z0-9-_.]+$)', +} + +export const ENVIRONMENT_KEY_PROPERTY = { + type: 'string' as const, + description: + 'The key of the environment (unique, immutable, max 100 characters, pattern: ^[a-z0-9-_.]+$)', +} + +export const VARIATION_KEY_PROPERTY = { + type: 'string' as const, + description: + 'Unique variation key (unique, immutable, max 100 characters, pattern: ^[a-z0-9-_.]+$)', +} + +export const VARIABLE_KEY_PROPERTY = { + type: 'string' as const, + description: + 'The variable key (unique, immutable, max 100 characters, pattern: ^[a-z0-9-_.]+$)', +} + +export const PROJECT_KEY_PROPERTY = { + type: 'string' as const, + description: + 'The project key (unique, immutable, max 100 characters, pattern: ^[a-z0-9-_.]+$)', +} + +// Filter type definitions based on DevCycle API swagger schemas + +export const ALL_FILTER_SCHEMA = { + type: 'object' as const, + description: 'Filter that matches all users', + properties: { + type: { + type: 'string' as const, + description: 'Filter type of this audience', + enum: ['all'] as const, + }, + }, + required: ['type'] as const, +} + +export const USER_FILTER_SCHEMA = { + type: 'object' as const, + description: 'Filter by basic user properties', + properties: { + type: { + type: 'string' as const, + description: 'Filter type of this audience', + enum: ['user'] as const, + }, + subType: { + type: 'string' as const, + description: 'Sub type of this filter', + enum: ['user_id', 'email', 'platform', 'deviceModel'] as const, + }, + comparator: { + type: 'string' as const, + description: 'Comparator to use', + enum: [ + '=', + '!=', + 'exist', + '!exist', + 'contain', + '!contain', + 'startWith', + '!startWith', + 'endWith', + '!endWith', + ] as const, + }, + values: { + type: 'array' as const, + description: + 'Array of values (required for all filters except exist/!exist)', + items: { + type: 'string' as const, + }, + }, + }, + required: ['type', 'subType', 'comparator'] as const, +} + +export const USER_COUNTRY_FILTER_SCHEMA = { + type: 'object' as const, + description: 'Filter by user country', + properties: { + type: { + type: 'string' as const, + description: 'Filter type of this audience', + enum: ['user'] as const, + }, + subType: { + type: 'string' as const, + description: 'Sub type of this filter', + enum: ['country'] as const, + }, + comparator: { + type: 'string' as const, + description: 'Comparator to use', + enum: [ + '=', + '!=', + 'exist', + '!exist', + 'contain', + '!contain', + 'startWith', + '!startWith', + 'endWith', + '!endWith', + ] as const, + }, + values: { + type: 'array' as const, + description: 'Array of country codes (e.g., CA, US)', + items: { + type: 'string' as const, + }, + }, + }, + required: ['type', 'subType', 'comparator'] as const, +} + +export const USER_APP_VERSION_FILTER_SCHEMA = { + type: 'object' as const, + description: 'Filter by application version', + properties: { + type: { + type: 'string' as const, + description: 'Filter type of this audience', + enum: ['user'] as const, + }, + subType: { + type: 'string' as const, + description: 'Sub type of this filter', + enum: ['appVersion'] as const, + }, + comparator: { + type: 'string' as const, + description: 'Comparator to use', + enum: ['=', '!=', '>', '>=', '<', '<=', 'exist', '!exist'] as const, + }, + values: { + type: 'array' as const, + description: 'Array of version strings (e.g., 1.0.2)', + items: { + type: 'string' as const, + }, + }, + }, + required: ['type', 'subType', 'comparator'] as const, +} + +export const USER_PLATFORM_VERSION_FILTER_SCHEMA = { + type: 'object' as const, + description: 'Filter by platform version', + properties: { + type: { + type: 'string' as const, + description: 'Filter type of this audience', + enum: ['user'] as const, + }, + subType: { + type: 'string' as const, + description: 'Sub type of this filter', + enum: ['platformVersion'] as const, + }, + comparator: { + type: 'string' as const, + description: 'Comparator to use', + enum: ['=', '!=', '>', '>=', '<', '<=', 'exist', '!exist'] as const, + }, + values: { + type: 'array' as const, + description: 'Array of platform version strings', + items: { + type: 'string' as const, + }, + }, + }, + required: ['type', 'subType', 'comparator'] as const, +} + +export const USER_CUSTOM_FILTER_SCHEMA = { + type: 'object' as const, + description: 'Filter by custom user data properties', + properties: { + type: { + type: 'string' as const, + description: 'Filter type of this audience', + enum: ['user'] as const, + }, + subType: { + type: 'string' as const, + description: 'Sub type of this filter', + enum: ['customData'] as const, + }, + comparator: { + type: 'string' as const, + description: 'Comparator to use', + enum: [ + '=', + '!=', + '>', + '>=', + '<', + '<=', + 'exist', + '!exist', + 'contain', + '!contain', + 'startWith', + '!startWith', + 'endWith', + '!endWith', + ] as const, + }, + dataKey: { + type: 'string' as const, + description: 'Data Key used for custom data', + minLength: 1, + }, + dataKeyType: { + type: 'string' as const, + description: 'Data Key Type used for custom data', + enum: ['String', 'Boolean', 'Number'] as const, + }, + values: { + type: 'array' as const, + description: 'Array of values (type depends on dataKeyType)', + items: { + anyOf: [ + { type: 'string' as const }, + { type: 'number' as const }, + { type: 'boolean' as const }, + ], + }, + }, + }, + required: [ + 'type', + 'subType', + 'comparator', + 'dataKey', + 'dataKeyType', + ] as const, +} + +export const AUDIENCE_MATCH_FILTER_SCHEMA = { + type: 'object' as const, + description: 'Filter by audience membership', + properties: { + type: { + type: 'string' as const, + enum: ['audienceMatch'] as const, + }, + comparator: { + type: 'string' as const, + enum: ['=', '!='] as const, + }, + _audiences: { + type: 'array' as const, + description: 'Array of audience IDs to match against', + items: { + type: 'string' as const, + }, + }, + }, + required: ['type'] as const, +} + +// Target Audience schema based on DevCycle API swagger definition +export const TARGET_AUDIENCE_PROPERTY = { + type: 'object' as const, + description: 'Audience definition for the target', + properties: { + name: { + type: 'string' as const, + description: + 'Audience display name, must be set for project-level audiences.', + example: 'Android Users', + maxLength: 100, + minLength: 1, + }, + filters: { + type: 'object' as const, + description: + 'Audience filters, describing logic for segmenting users', + properties: { + filters: { + type: 'array' as const, + description: 'Array of filter conditions', + items: { + anyOf: [ + ALL_FILTER_SCHEMA, + USER_FILTER_SCHEMA, + USER_COUNTRY_FILTER_SCHEMA, + USER_APP_VERSION_FILTER_SCHEMA, + USER_PLATFORM_VERSION_FILTER_SCHEMA, + USER_CUSTOM_FILTER_SCHEMA, + AUDIENCE_MATCH_FILTER_SCHEMA, + ], + }, + }, + operator: { + type: 'string' as const, + description: 'Operator type for combining filters', + enum: ['and', 'or'] as const, + }, + }, + required: ['filters', 'operator'] as const, + }, + }, + required: ['filters'] as const, +} diff --git a/src/mcp/tools/environmentTools.ts b/src/mcp/tools/environmentTools.ts index a71fd4e8f..2f1e53d10 100644 --- a/src/mcp/tools/environmentTools.ts +++ b/src/mcp/tools/environmentTools.ts @@ -13,19 +13,64 @@ import { UpdateEnvironmentArgsSchema, } from '../types' import { ToolHandler } from '../server' +import { + DASHBOARD_LINK_PROPERTY, + ENVIRONMENT_KEY_PROPERTY, +} from './commonSchemas' + +// Helper function to generate environment dashboard links +const generateEnvironmentDashboardLink = ( + orgId: string, + projectKey: string, +): string => { + return `https://app.devcycle.com/o/${orgId}/settings/p/${projectKey}/environments` +} + +// ============================================================================= +// INPUT SCHEMAS +// ============================================================================= // Reusable schema components -const ENVIRONMENT_KEY_PROPERTY = { +const ENVIRONMENT_COLOR_PROPERTY = { + type: 'string' as const, + description: 'Color used to represent this environment in the UI', +} + +const ENVIRONMENT_TYPE_PROPERTY = { type: 'string' as const, - description: - "The key of the environment, must be unique and can't be changed after creation", + enum: [ + 'development', + 'staging', + 'production', + 'disaster_recovery', + ] as const, } -const PAGINATION_PROPERTIES = { +const ENVIRONMENT_COMMON_PROPERTIES = { + key: ENVIRONMENT_KEY_PROPERTY, + name: { + type: 'string' as const, + }, + description: { + type: 'string' as const, + }, + color: ENVIRONMENT_COLOR_PROPERTY, + type: ENVIRONMENT_TYPE_PROPERTY, + settings: { + type: 'object' as const, + properties: { + appIconUri: { + type: 'string' as const, + description: 'URI for the app icon', + }, + }, + }, +} + +const ENVIRONMENT_PAGINATION_PROPERTIES = { search: { type: 'string' as const, - description: - 'Search query to filter environments (minimum 3 characters)', + description: 'Search query to filter results (minimum 3 characters)', minLength: 3, }, page: { @@ -41,7 +86,6 @@ const PAGINATION_PROPERTIES = { }, sortBy: { type: 'string' as const, - description: 'Field to sort by (default: createdAt)', enum: [ 'createdAt', 'updatedAt', @@ -50,6 +94,7 @@ const PAGINATION_PROPERTIES = { 'createdBy', 'propertyKey', ] as const, + description: 'Field to sort by', }, sortOrder: { type: 'string' as const, @@ -58,38 +103,108 @@ const PAGINATION_PROPERTIES = { }, createdBy: { type: 'string' as const, - description: 'Filter by creator user ID', + description: 'Filter by user who created the environment', }, } -const ENVIRONMENT_COMMON_PROPERTIES = { - key: ENVIRONMENT_KEY_PROPERTY, - name: { +// ============================================================================= +// OUTPUT SCHEMAS +// ============================================================================= + +// Shared SDK key properties +const SDK_KEY_PROPERTIES = { + mobile: { type: 'string' as const, - description: 'The name of the environment', + description: 'Mobile SDK key for client-side mobile applications', }, - description: { + server: { type: 'string' as const, - description: 'The description of the environment', + description: 'Server SDK key for server-side applications', }, - color: { + client: { type: 'string' as const, - description: 'The color for the environment', + description: 'Client SDK key for client-side web applications', + }, +} + +// Output schema components +const SDK_KEYS_OBJECT_SCHEMA = { + type: 'object' as const, + properties: SDK_KEY_PROPERTIES, + required: ['mobile', 'server', 'client'], +} + +const ENVIRONMENT_OBJECT_SCHEMA = { + type: 'object' as const, + description: 'A DevCycle environment configuration', + properties: { + ...ENVIRONMENT_COMMON_PROPERTIES, + _id: { + type: 'string' as const, + description: 'Unique identifier for the environment', + }, + sdkKeys: SDK_KEYS_OBJECT_SCHEMA, + createdAt: { + type: 'string' as const, + description: 'ISO timestamp when the environment was created', + }, + updatedAt: { + type: 'string' as const, + description: 'ISO timestamp when the environment was last updated', + }, + }, + required: [ + '_id', + 'key', + 'name', + 'type', + 'sdkKeys', + 'createdAt', + 'updatedAt', + ], +} + +// Complete output schema definitions +const ENVIRONMENT_OUTPUT_SCHEMA = { + type: 'object' as const, + properties: { + result: ENVIRONMENT_OBJECT_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, }, + required: ['result', 'dashboardLink'], } +// ============================================================================= +// TOOL DEFINITIONS +// ============================================================================= export const environmentToolDefinitions: Tool[] = [ { name: 'list_environments', - description: 'List environments in the current project', + description: + 'List environments in the current project. Include dashboard link in the response.', inputSchema: { type: 'object', - properties: PAGINATION_PROPERTIES, + properties: ENVIRONMENT_PAGINATION_PROPERTIES, + }, + outputSchema: { + type: 'object' as const, + description: + 'Response containing a list of environments and dashboard link', + properties: { + result: { + type: 'array' as const, + description: 'Array of environment objects in the project', + items: ENVIRONMENT_OBJECT_SCHEMA, + }, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], }, }, { name: 'get_sdk_keys', - description: 'Get SDK keys for an environment', + description: + 'Get SDK keys for an environment. Include dashboard link in the response.', inputSchema: { type: 'object', properties: { @@ -102,24 +217,42 @@ export const environmentToolDefinitions: Tool[] = [ }, required: ['environmentKey'], }, + outputSchema: { + type: 'object' as const, + description: 'Response containing SDK keys and dashboard link', + properties: { + result: { + type: 'object' as const, + description: + 'SDK keys for the requested environment (filtered by keyType if specified)', + properties: SDK_KEY_PROPERTIES, + }, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, { name: 'create_environment', - description: 'Create a new environment', + description: + 'Create a new environment. Include dashboard link in the response.', inputSchema: { type: 'object', properties: ENVIRONMENT_COMMON_PROPERTIES, required: ['name', 'key'], }, + outputSchema: ENVIRONMENT_OUTPUT_SCHEMA, }, { name: 'update_environment', - description: 'Update an existing environment', + description: + 'Update an existing environment. Include dashboard link in the response.', inputSchema: { type: 'object', properties: ENVIRONMENT_COMMON_PROPERTIES, required: ['key'], }, + outputSchema: ENVIRONMENT_OUTPUT_SCHEMA, }, ] @@ -127,18 +260,19 @@ export const environmentToolHandlers: Record<string, ToolHandler> = { list_environments: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = ListEnvironmentsArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'listEnvironments', validatedArgs, async (authToken, projectKey) => { return await fetchEnvironments(authToken, projectKey) }, + generateEnvironmentDashboardLink, ) }, get_sdk_keys: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = GetSdkKeysArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'getSdkKeys', validatedArgs, async (authToken, projectKey) => { @@ -162,12 +296,13 @@ export const environmentToolHandlers: Record<string, ToolHandler> = { } } }, + generateEnvironmentDashboardLink, ) }, create_environment: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = CreateEnvironmentArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'createEnvironment', validatedArgs, async (authToken, projectKey) => { @@ -177,12 +312,13 @@ export const environmentToolHandlers: Record<string, ToolHandler> = { validatedArgs, ) }, + generateEnvironmentDashboardLink, ) }, update_environment: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = UpdateEnvironmentArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'updateEnvironment', validatedArgs, async (authToken, projectKey) => { @@ -194,6 +330,7 @@ export const environmentToolHandlers: Record<string, ToolHandler> = { updateParams, ) }, + generateEnvironmentDashboardLink, ) }, } diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index 69abf0887..717ec0f25 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -36,22 +36,39 @@ import { GetFeatureAuditLogHistoryArgsSchema, } from '../types' import { ToolHandler } from '../server' +import { + DASHBOARD_LINK_PROPERTY, + MESSAGE_RESPONSE_SCHEMA, + FEATURE_KEY_PROPERTY, + ENVIRONMENT_KEY_PROPERTY, + VARIATION_KEY_PROPERTY, + TARGET_AUDIENCE_PROPERTY, +} from './commonSchemas' -// Reusable schema components -const FEATURE_KEY_PROPERTY = { - type: 'string' as const, - description: 'The key of the feature', +// Helper function to generate feature dashboard links +const generateFeaturesDashboardLink = ( + orgId: string, + projectKey: string, +): string => { + return `https://app.devcycle.com/o/${orgId}/p/${projectKey}/features` } -const ENVIRONMENT_KEY_PROPERTY = { - type: 'string' as const, - description: 'The key of the environment', +const generateFeatureDashboardLink = ( + orgId: string, + projectKey: string, + featureKey: string, + page: 'overview' | 'manage-feature' | 'audit-log' = 'overview', +): string => { + return `https://app.devcycle.com/o/${orgId}/p/${projectKey}/features/${featureKey}/${page}` } +// ============================================================================= +// INPUT SCHEMAS +// ============================================================================= + const ENVIRONMENT_KEY_OPTIONAL_PROPERTY = { type: 'string' as const, - description: - 'The key of the environment (optional - if not provided, returns all environments)', + description: 'Optional environment key to filter by', } const FEATURE_NAME_PROPERTY = { @@ -70,14 +87,80 @@ const FEATURE_TYPE_PROPERTY = { description: 'Feature type', } +const FEATURE_STATUS_PROPERTY = { + type: 'string' as const, + enum: ['active', 'complete', 'archived'] as const, + description: 'Feature status', +} + const CONTROL_VARIATION_PROPERTY = { type: 'string' as const, description: 'The key of the variation that is used as the control variation for Metrics', } +const FEATURE_PAGINATION_PROPERTIES = { + page: { + type: 'number' as const, + description: 'Page number', + minimum: 1, + default: 1, + }, + perPage: { + type: 'number' as const, + description: 'Items per page', + minimum: 1, + maximum: 1000, + default: 100, + }, + sortBy: { + type: 'string' as const, + description: 'Sort field', + enum: [ + 'createdAt', + 'updatedAt', + 'name', + 'key', + 'createdBy', + 'propertyKey', + ], + default: 'createdAt', + }, + sortOrder: { + type: 'string' as const, + description: 'Sort order', + enum: ['asc', 'desc'], + default: 'desc', + }, + search: { + type: 'string' as const, + description: 'Search query to filter results', + minLength: 3, + }, + createdBy: { + type: 'string' as const, + description: 'Filter by creator', + }, + type: { + type: 'string' as const, + description: 'Filter by feature type', + enum: ['release', 'experiment', 'permission', 'ops'], + }, + status: { + type: 'string' as const, + description: 'Filter by feature status', + enum: ['active', 'complete', 'archived'], + }, + staleness: { + type: 'string' as const, + description: 'Filter by feature staleness', + enum: ['all', 'unused', 'released', 'unmodified', 'notStale'], + }, +} + const FEATURE_SETTINGS_PROPERTY = { type: 'object' as const, + description: 'Feature-level settings (all properties required if provided)', properties: { publicName: { type: 'string' as const, @@ -93,7 +176,6 @@ const FEATURE_SETTINGS_PROPERTY = { description: 'Whether opt-in is enabled for the feature', }, }, - description: 'Feature-level settings (all properties required if provided)', required: ['publicName', 'publicDescription', 'optInEnabled'] as const, } @@ -102,19 +184,16 @@ const SDK_VISIBILITY_PROPERTY = { properties: { mobile: { type: 'boolean' as const, - description: 'Whether the feature is visible to mobile SDKs', }, client: { type: 'boolean' as const, - description: 'Whether the feature is visible to client SDKs', }, server: { type: 'boolean' as const, - description: 'Whether the feature is visible to server SDKs', }, }, description: - 'SDK Type Visibility Settings (all properties required if provided)', + 'SDK Type Visibility Settings for mobile, client, and server SDKs', required: ['mobile', 'client', 'server'] as const, } @@ -128,12 +207,6 @@ const FEATURE_VARIABLES_PROPERTY = { }, } -const VARIATION_KEY_PROPERTY = { - type: 'string' as const, - description: - 'Unique variation key (max 100 characters, pattern: ^[a-z0-9-_.]+$)', -} - const VARIATION_NAME_PROPERTY = { type: 'string' as const, description: 'Human-readable variation name (max 100 characters)', @@ -146,47 +219,101 @@ const VARIATION_VARIABLES_PROPERTY = { additionalProperties: true, } -const PAGINATION_PROPERTIES = { - search: { - type: 'string' as const, - description: 'Search query to filter features', - }, - page: { - type: 'number' as const, - description: 'Page number (default: 1)', - }, - per_page: { - type: 'number' as const, - description: 'Number of items per page (default: 100, max: 1000)', +// ============================================================================= +// OUTPUT SCHEMAS +// ============================================================================= + +const FEATURE_OBJECT_SCHEMA = { + type: 'object' as const, + description: 'A DevCycle feature configuration', + properties: { + _id: { + type: 'string' as const, + description: 'MongoDB ID for the feature', + }, + key: FEATURE_KEY_PROPERTY, + name: FEATURE_NAME_PROPERTY, + description: FEATURE_DESCRIPTION_PROPERTY, + type: FEATURE_TYPE_PROPERTY, + status: FEATURE_STATUS_PROPERTY, + variations: { + type: 'array' as const, + description: 'Array of variations for this feature', + }, + createdAt: { + type: 'string' as const, + description: 'ISO timestamp when the feature was created', + }, + updatedAt: { + type: 'string' as const, + description: 'ISO timestamp when the feature was last updated', + }, }, + required: [ + '_id', + 'key', + 'name', + 'type', + 'status', + 'createdAt', + 'updatedAt', + ], } -const FEATURE_ENVIRONMENT_REQUIRED_PROPERTIES = { - feature_key: FEATURE_KEY_PROPERTY, - environment_key: ENVIRONMENT_KEY_PROPERTY, +const VARIATION_OBJECT_SCHEMA = { + type: 'object' as const, + description: 'A feature variation configuration', + properties: { + _id: { + type: 'string' as const, + description: 'MongoDB ID for the variation', + }, + key: VARIATION_KEY_PROPERTY, + name: { + type: 'string' as const, + }, + variables: { + type: 'object' as const, + description: 'Variable values for this variation', + }, + }, + required: ['_id', 'key', 'name'], } +// ============================================================================= +// TOOL DEFINITIONS +// ============================================================================= + export const featureToolDefinitions: Tool[] = [ { name: 'list_features', - description: 'List features in the current project', + description: + 'List features in the current project. Include dashboard link in the response.', inputSchema: { type: 'object', - properties: PAGINATION_PROPERTIES, + properties: FEATURE_PAGINATION_PROPERTIES, + }, + outputSchema: { + type: 'object' as const, + properties: { + result: { + type: 'array' as const, + description: 'Array of feature objects in the project', + items: FEATURE_OBJECT_SCHEMA, + }, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], }, }, { name: 'create_feature', description: - 'Create a new feature flag (supports interactive mode). ⚠️ IMPORTANT: If creating configurations for production environments, always confirm with the user before proceeding.', + 'Create a new feature flag. Include dashboard link in the response.', inputSchema: { type: 'object', properties: { - key: { - type: 'string', - description: - 'Unique feature key (max 100 characters, pattern: ^[a-z0-9-_.]+$)', - }, + key: FEATURE_KEY_PROPERTY, name: FEATURE_NAME_PROPERTY, description: FEATURE_DESCRIPTION_PROPERTY, type: FEATURE_TYPE_PROPERTY, @@ -221,33 +348,29 @@ export const featureToolDefinitions: Tool[] = [ description: 'Targeting rules for this environment', }, - status: { - type: 'string', - description: 'Status for this environment', - }, + status: FEATURE_STATUS_PROPERTY, }, }, }, - interactive: { - type: 'boolean', - description: - 'Use interactive mode to prompt for missing fields', - }, }, }, + outputSchema: { + type: 'object' as const, + properties: { + result: FEATURE_OBJECT_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, { name: 'update_feature', description: - 'Update an existing feature flag. ⚠️ IMPORTANT: Changes to feature flags may affect production environments. Always confirm with the user before making changes to features that are active in production.', + 'Update an existing feature flag. ⚠️ IMPORTANT: Changes to feature flags may affect production environments. Always confirm with the user before making changes to features that are active in production. Include dashboard link in the response.', inputSchema: { type: 'object', properties: { - key: { - type: 'string', - description: - 'The key of the feature to update(1-100 characters, must match pattern ^[a-z0-9-_.]+$)', - }, + key: FEATURE_KEY_PROPERTY, name: FEATURE_NAME_PROPERTY, description: FEATURE_DESCRIPTION_PROPERTY, type: FEATURE_TYPE_PROPERTY, @@ -274,24 +397,24 @@ export const featureToolDefinitions: Tool[] = [ }, required: ['key'], }, + outputSchema: { + type: 'object' as const, + properties: { + result: FEATURE_OBJECT_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, { name: 'update_feature_status', description: - 'Update the status of an existing feature flag. ⚠️ IMPORTANT: Changes to feature status may affect production environments. Always confirm with the user before making changes to features that are active in production.', + 'Update the status of an existing feature flag. ⚠️ IMPORTANT: Changes to feature status may affect production environments. Always confirm with the user before making changes to features that are active in production. Include dashboard link in the response.', inputSchema: { type: 'object', properties: { - key: { - type: 'string', - description: - 'The key of the feature to update status for (1-100 characters, must match pattern ^[a-z0-9-_.]+$)', - }, - status: { - type: 'string', - enum: ['active', 'complete', 'archived'], - description: 'The status to set the feature to', - }, + key: FEATURE_KEY_PROPERTY, + status: FEATURE_STATUS_PROPERTY, staticVariation: { type: 'string', description: @@ -300,11 +423,19 @@ export const featureToolDefinitions: Tool[] = [ }, required: ['key', 'status'], }, + outputSchema: { + type: 'object' as const, + properties: { + result: FEATURE_OBJECT_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, { name: 'delete_feature', description: - 'Delete an existing feature flag. ⚠️ CRITICAL: Deleting a feature flag will remove it from ALL environments including production. ALWAYS confirm with the user before deleting any feature flag.', + 'Delete an existing feature flag. ⚠️ CRITICAL: Deleting a feature flag will remove it from ALL environments including production. ALWAYS confirm with the user before deleting any feature flag. Include dashboard link in the response.', inputSchema: { type: 'object', properties: { @@ -315,10 +446,19 @@ export const featureToolDefinitions: Tool[] = [ }, required: ['key'], }, + outputSchema: { + type: 'object' as const, + properties: { + result: MESSAGE_RESPONSE_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, { name: 'fetch_feature_variations', - description: 'Get a list of variations for a feature', + description: + 'Get a list of variations for a feature. Include dashboard link in the response.', inputSchema: { type: 'object', properties: { @@ -326,10 +466,23 @@ export const featureToolDefinitions: Tool[] = [ }, required: ['feature_key'], }, + outputSchema: { + type: 'object' as const, + properties: { + result: { + type: 'array' as const, + description: 'Array of variation objects for the feature', + items: VARIATION_OBJECT_SCHEMA, + }, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, { name: 'create_feature_variation', - description: 'Create a new variation within a feature', + description: + 'Create a new variation within a feature. Include dashboard link in the response.', inputSchema: { type: 'object', properties: { @@ -345,60 +498,89 @@ export const featureToolDefinitions: Tool[] = [ }, required: ['feature_key', 'key', 'name'], }, + outputSchema: { + type: 'object' as const, + properties: { + result: VARIATION_OBJECT_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, { name: 'update_feature_variation', - description: 'Update an existing variation by key', + description: + 'Update an existing variation by key. Include dashboard link in the response.', inputSchema: { type: 'object', properties: { - feature_key: FEATURE_KEY_PROPERTY, - variation_key: { - type: 'string', - description: 'The key of the variation to update', - }, - key: { - type: 'string', - description: - 'New variation key (max 100 characters, pattern: ^[a-z0-9-_.]+$)', - }, - name: { - type: 'string', - description: 'New variation name (max 100 characters)', - }, - variables: VARIATION_VARIABLES_PROPERTY, _id: { type: 'string', - description: 'Internal variation ID (optional)', + description: 'MongoDB ID for the variation', }, + feature_key: FEATURE_KEY_PROPERTY, + variation_key: VARIATION_KEY_PROPERTY, + key: VARIATION_KEY_PROPERTY, + name: VARIATION_NAME_PROPERTY, + variables: VARIATION_VARIABLES_PROPERTY, }, required: ['feature_key', 'variation_key'], }, + outputSchema: { + type: 'object' as const, + properties: { + result: VARIATION_OBJECT_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, { name: 'enable_feature_targeting', description: - 'Enable targeting for a feature in an environment. ⚠️ IMPORTANT: Always confirm with the user before making changes to production environments (environments where type = "production").', + 'Enable targeting for a feature in an environment. ⚠️ IMPORTANT: Always confirm with the user before making changes to production environments (environments where type = "production"). Include dashboard link in the response.', inputSchema: { type: 'object', - properties: FEATURE_ENVIRONMENT_REQUIRED_PROPERTIES, + properties: { + feature_key: FEATURE_KEY_PROPERTY, + environment_key: ENVIRONMENT_KEY_PROPERTY, + }, required: ['feature_key', 'environment_key'], }, + outputSchema: { + type: 'object' as const, + properties: { + result: MESSAGE_RESPONSE_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, { name: 'disable_feature_targeting', description: - 'Disable targeting for a feature in an environment. ⚠️ IMPORTANT: Always confirm with the user before making changes to production environments (environments where type = "production").', + 'Disable targeting for a feature in an environment. ⚠️ IMPORTANT: Always confirm with the user before making changes to production environments (environments where type = "production"). Include dashboard link in the response.', inputSchema: { type: 'object', - properties: FEATURE_ENVIRONMENT_REQUIRED_PROPERTIES, + properties: { + feature_key: FEATURE_KEY_PROPERTY, + environment_key: ENVIRONMENT_KEY_PROPERTY, + }, required: ['feature_key', 'environment_key'], }, + outputSchema: { + type: 'object' as const, + properties: { + result: MESSAGE_RESPONSE_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, { name: 'list_feature_targeting', description: - 'List feature configurations (targeting rules) for a feature', + 'List feature configurations (targeting rules) for a feature. Include dashboard link in the response.', inputSchema: { type: 'object', properties: { @@ -407,11 +589,22 @@ export const featureToolDefinitions: Tool[] = [ }, required: ['feature_key'], }, + outputSchema: { + type: 'object' as const, + properties: { + result: { + type: 'object' as const, + description: 'Feature targeting configuration object', + }, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, { name: 'update_feature_targeting', description: - 'Update feature configuration (targeting rules) for a feature in an environment. ⚠️ IMPORTANT: Always confirm with the user before making changes to production environments (environments where type = "production").', + 'Update feature configuration (targeting rules) for a feature in an environment. ⚠️ IMPORTANT: Always confirm with the user before making changes to production environments (environments where type = "production"). Include dashboard link in the response.', inputSchema: { type: 'object', properties: { @@ -431,45 +624,12 @@ export const featureToolDefinitions: Tool[] = [ properties: { _id: { type: 'string', - description: - 'Target ID (optional for new targets)', + description: 'MongoDB ID for the target', }, name: { type: 'string', - description: 'Target name (optional)', - }, - audience: { - type: 'object', - description: - 'Audience definition for the target', - properties: { - name: { - type: 'string', - description: - 'Audience name (max 100 characters, optional)', - }, - filters: { - type: 'object', - description: - 'Audience filters with logical operator', - properties: { - filters: { - type: 'array', - description: - 'Array of filter conditions (supports all, optIn, user, userCountry, userAppVersion, userPlatformVersion, userCustom, audienceMatch filters)', - }, - operator: { - type: 'string', - enum: ['and', 'or'], - description: - 'Logical operator for combining filters', - }, - }, - required: ['filters', 'operator'], - }, - }, - required: ['filters'], }, + audience: TARGET_AUDIENCE_PROPERTY, distribution: { type: 'array', description: @@ -563,11 +723,22 @@ export const featureToolDefinitions: Tool[] = [ }, required: ['feature_key', 'environment_key'], }, + outputSchema: { + type: 'object' as const, + properties: { + result: { + type: 'object' as const, + description: 'Updated feature targeting configuration', + }, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, { name: 'get_feature_audit_log_history', description: - 'Get timeline of feature flag changes from DevCycle audit log', + 'Get timeline of feature flag changes from DevCycle audit log. Include dashboard link in the response.', inputSchema: { type: 'object', properties: { @@ -582,6 +753,20 @@ export const featureToolDefinitions: Tool[] = [ }, required: ['feature_key'], }, + outputSchema: { + type: 'object' as const, + properties: { + result: { + type: 'array' as const, + description: 'Array of audit log entries for the feature', + items: { + type: 'object' as const, + }, + }, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, ] @@ -589,18 +774,19 @@ export const featureToolHandlers: Record<string, ToolHandler> = { list_features: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = ListFeaturesArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'listFeatures', validatedArgs, async (authToken, projectKey) => { return await fetchFeatures(authToken, projectKey, validatedArgs) }, + generateFeaturesDashboardLink, ) }, create_feature: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = CreateFeatureArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'createFeature', validatedArgs, async (authToken, projectKey) => { @@ -622,12 +808,19 @@ export const featureToolHandlers: Record<string, ToolHandler> = { return await createFeature(authToken, projectKey, featureData) }, + (orgId, projectKey, result) => + generateFeatureDashboardLink( + orgId, + projectKey, + result.key, + 'overview', + ), ) }, update_feature: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = UpdateFeatureArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'updateFeature', validatedArgs, async (authToken, projectKey) => { @@ -640,6 +833,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { updateData, ) }, + (orgId, projectKey, result) => + generateFeatureDashboardLink( + orgId, + projectKey, + result.key, + 'manage-feature', + ), ) }, update_feature_status: async ( @@ -648,7 +848,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ) => { const validatedArgs = UpdateFeatureStatusArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'updateFeatureStatus', validatedArgs, async (authToken, projectKey) => { @@ -661,21 +861,28 @@ export const featureToolHandlers: Record<string, ToolHandler> = { statusData, ) }, + (orgId, projectKey, result) => + generateFeatureDashboardLink( + orgId, + projectKey, + result.key, + 'overview', + ), ) }, delete_feature: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = DeleteFeatureArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'deleteFeature', validatedArgs, async (authToken, projectKey) => { - return await deleteFeature( - authToken, - projectKey, - validatedArgs.key, - ) + await deleteFeature(authToken, projectKey, validatedArgs.key) + return { + message: `Feature '${validatedArgs.key}' deleted successfully`, + } }, + generateFeaturesDashboardLink, ) }, fetch_feature_variations: async ( @@ -684,7 +891,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ) => { const validatedArgs = ListVariationsArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'fetchFeatureVariations', validatedArgs, async (authToken, projectKey) => { @@ -694,6 +901,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { validatedArgs.feature_key, ) }, + (orgId, projectKey) => + generateFeatureDashboardLink( + orgId, + projectKey, + validatedArgs.feature_key, + 'overview', + ), ) }, create_feature_variation: async ( @@ -702,7 +916,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ) => { const validatedArgs = CreateVariationArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'createFeatureVariation', validatedArgs, async (authToken, projectKey) => { @@ -715,6 +929,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { variationData, ) }, + (orgId, projectKey, result) => + generateFeatureDashboardLink( + orgId, + projectKey, + result.key, + 'manage-feature', + ), ) }, update_feature_variation: async ( @@ -723,7 +944,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ) => { const validatedArgs = UpdateVariationArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'updateFeatureVariation', validatedArgs, async (authToken, projectKey) => { @@ -738,6 +959,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { variationData, ) }, + (orgId, projectKey, result) => + generateFeatureDashboardLink( + orgId, + projectKey, + result.key, + 'manage-feature', + ), ) }, enable_feature_targeting: async ( @@ -746,17 +974,27 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ) => { const validatedArgs = EnableTargetingArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'enableTargeting', validatedArgs, async (authToken, projectKey) => { - return await enableTargeting( + await enableTargeting( authToken, projectKey, validatedArgs.feature_key, validatedArgs.environment_key, ) + return { + message: `Targeting enabled for feature '${validatedArgs.feature_key}' in environment '${validatedArgs.environment_key}'`, + } }, + (orgId, projectKey) => + generateFeatureDashboardLink( + orgId, + projectKey, + validatedArgs.feature_key, + 'manage-feature', + ), ) }, disable_feature_targeting: async ( @@ -765,17 +1003,27 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ) => { const validatedArgs = DisableTargetingArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'disableTargeting', validatedArgs, async (authToken, projectKey) => { - return await disableTargeting( + await disableTargeting( authToken, projectKey, validatedArgs.feature_key, validatedArgs.environment_key, ) + return { + message: `Targeting disabled for feature '${validatedArgs.feature_key}' in environment '${validatedArgs.environment_key}'`, + } }, + (orgId, projectKey) => + generateFeatureDashboardLink( + orgId, + projectKey, + validatedArgs.feature_key, + 'manage-feature', + ), ) }, list_feature_targeting: async ( @@ -784,7 +1032,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ) => { const validatedArgs = ListFeatureTargetingArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'listFeatureTargeting', validatedArgs, async (authToken, projectKey) => { @@ -795,6 +1043,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { validatedArgs.environment_key, ) }, + (orgId, projectKey) => + generateFeatureDashboardLink( + orgId, + projectKey, + validatedArgs.feature_key, + 'manage-feature', + ), ) }, update_feature_targeting: async ( @@ -803,7 +1058,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ) => { const validatedArgs = UpdateFeatureTargetingArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'updateFeatureTargeting', validatedArgs, async (authToken, projectKey) => { @@ -818,6 +1073,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { configData, ) }, + (orgId, projectKey) => + generateFeatureDashboardLink( + orgId, + projectKey, + validatedArgs.feature_key, + 'manage-feature', + ), ) }, get_feature_audit_log_history: async ( @@ -826,7 +1088,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ) => { const validatedArgs = GetFeatureAuditLogHistoryArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'getFeatureAuditLogHistory', validatedArgs, async (authToken, projectKey) => { @@ -837,6 +1099,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { validatedArgs.days_back || 30, ) }, + (orgId, projectKey) => + generateFeatureDashboardLink( + orgId, + projectKey, + validatedArgs.feature_key, + 'audit-log', + ), ) }, } diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts index 72a82c7f0..da89d1632 100644 --- a/src/mcp/tools/projectTools.ts +++ b/src/mcp/tools/projectTools.ts @@ -12,108 +12,191 @@ import { UpdateProjectArgsSchema, } from '../types' import { ToolHandler } from '../server' +import { DASHBOARD_LINK_PROPERTY, PROJECT_KEY_PROPERTY } from './commonSchemas' + +// Helper functions to generate project dashboard links +const generateProjectDashboardLink = ( + orgId: string, + projectKey: string, +): string => { + return `https://app.devcycle.com/o/${orgId}/p/${projectKey}` +} + +const generateOrganizationSettingsLink = (orgId: string): string => { + return `https://app.devcycle.com/o/${orgId}/settings` +} + +const generateEditProjectLink = (orgId: string, projectKey: string): string => { + return `https://app.devcycle.com/o/${orgId}/settings/projects/${projectKey}/edit` +} + +// ============================================================================= +// INPUT SCHEMAS +// ============================================================================= + +const PROJECT_COMMON_PROPERTIES = { + name: { + type: 'string' as const, + description: 'Project name', + }, + description: { + type: 'string' as const, + description: 'Project description', + }, + key: PROJECT_KEY_PROPERTY, + color: { + type: 'string' as const, + description: 'Project color (hex format)', + }, +} + +const PROJECT_PAGINATION_PROPERTIES = { + page: { + type: 'number' as const, + description: 'Page number', + minimum: 1, + default: 1, + }, + perPage: { + type: 'number' as const, + description: 'Items per page', + minimum: 1, + maximum: 1000, + default: 100, + }, + sortBy: { + type: 'string' as const, + description: 'Sort field', + enum: [ + 'createdAt', + 'updatedAt', + 'name', + 'key', + 'createdBy', + 'propertyKey', + ], + default: 'createdAt', + }, + sortOrder: { + type: 'string' as const, + description: 'Sort order', + enum: ['asc', 'desc'], + default: 'desc', + }, + search: { + type: 'string' as const, + description: 'Search query to filter results', + }, + createdBy: { + type: 'string' as const, + description: 'Filter by creator', + }, +} + +// ============================================================================= +// OUTPUT SCHEMAS +// ============================================================================= + +const PROJECT_OBJECT_SCHEMA = { + type: 'object' as const, + description: 'A DevCycle project configuration', + properties: { + _id: { + type: 'string' as const, + description: 'Unique identifier for the project', + }, + key: PROJECT_KEY_PROPERTY, + name: { + type: 'string' as const, + description: 'Display name of the project', + }, + description: { + type: 'string' as const, + description: 'Optional description of the project', + }, + color: { + type: 'string' as const, + description: 'Color used to represent this project in the UI', + }, + createdAt: { + type: 'string' as const, + description: 'ISO timestamp when the project was created', + }, + updatedAt: { + type: 'string' as const, + description: 'ISO timestamp when the project was last updated', + }, + }, + required: ['_id', 'key', 'name', 'createdAt', 'updatedAt'], +} + +// Complete output schema definitions +const PROJECT_OUTPUT_SCHEMA = { + type: 'object' as const, + properties: { + result: PROJECT_OBJECT_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], +} + +// ============================================================================= +// TOOL DEFINITIONS +// ============================================================================= export const projectToolDefinitions: Tool[] = [ { name: 'list_projects', - description: 'List all projects in the current organization', + description: + 'List all projects in the current organization. Include dashboard link in the response.', inputSchema: { type: 'object', + properties: PROJECT_PAGINATION_PROPERTIES, + }, + outputSchema: { + type: 'object' as const, properties: { - sortBy: { - type: 'string', - enum: [ - 'createdAt', - 'updatedAt', - 'name', - 'key', - 'createdBy', - 'propertyKey', - ], - description: 'Field to sort by (default: createdAt)', - }, - sortOrder: { - type: 'string', - enum: ['asc', 'desc'], - description: 'Sort order (default: desc)', - }, - search: { - type: 'string', - description: - 'Search query to filter projects (minimum 3 characters)', - }, - createdBy: { - type: 'string', - description: 'Filter by creator user ID', - }, - page: { - type: 'number', - description: 'Page number (default: 1)', - }, - perPage: { - type: 'number', - description: - 'Number of items per page (default: 100, max: 1000)', + result: { + type: 'array' as const, + description: 'Array of project objects in the organization', + items: PROJECT_OBJECT_SCHEMA, }, + dashboardLink: DASHBOARD_LINK_PROPERTY, }, + required: ['result', 'dashboardLink'], }, }, { name: 'get_current_project', - description: 'Get the currently selected project', + description: + 'Get the currently selected project. Include dashboard link in the response.', inputSchema: { type: 'object', properties: {}, }, + outputSchema: PROJECT_OUTPUT_SCHEMA, }, { name: 'create_project', - description: 'Create a new project', + description: + 'Create a new project. Include dashboard link in the response.', inputSchema: { type: 'object', - properties: { - name: { - type: 'string', - description: 'Project name', - }, - description: { - type: 'string', - description: 'Project description', - }, - key: { - type: 'string', - description: 'Unique project key', - }, - }, + properties: PROJECT_COMMON_PROPERTIES, required: ['name', 'key'], }, + outputSchema: PROJECT_OUTPUT_SCHEMA, }, { name: 'update_project', - description: 'Update an existing project', + description: + 'Update an existing project. Include dashboard link in the response.', inputSchema: { type: 'object', - properties: { - key: { - type: 'string', - description: - 'Project key to identify the project to update', - }, - name: { - type: 'string', - description: 'Updated project name', - }, - description: { - type: 'string', - description: 'Updated project description', - }, - color: { - type: 'string', - description: 'Project color (hex format)', - }, - }, + properties: PROJECT_COMMON_PROPERTIES, required: ['key'], }, + outputSchema: PROJECT_OUTPUT_SCHEMA, }, ] @@ -121,50 +204,54 @@ export const projectToolHandlers: Record<string, ToolHandler> = { list_projects: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = ListProjectsArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'listProjects', validatedArgs, async (authToken) => { + // projectKey not used for listing all projects return await fetchProjects(authToken, validatedArgs) }, - false, + generateOrganizationSettingsLink, ) }, get_current_project: async ( args: unknown, apiClient: DevCycleApiClient, ) => { - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'getCurrentProject', null, async (authToken, projectKey) => { return await fetchProject(authToken, projectKey) }, + generateProjectDashboardLink, ) }, create_project: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = CreateProjectArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'createProject', validatedArgs, async (authToken) => { + // projectKey not used for creating projects return await createProject(authToken, validatedArgs) }, - false, + generateProjectDashboardLink, ) }, update_project: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = UpdateProjectArgsSchema.parse(args) const { key, ...updateParams } = validatedArgs - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'updateProject', validatedArgs, async (authToken) => { + // projectKey not used - we use the key from validated args return await updateProject(authToken, key, updateParams) }, - false, + generateEditProjectLink, ) }, } diff --git a/src/mcp/tools/selfTargetingTools.ts b/src/mcp/tools/selfTargetingTools.ts index 23d54a6a6..fc6d4432e 100644 --- a/src/mcp/tools/selfTargetingTools.ts +++ b/src/mcp/tools/selfTargetingTools.ts @@ -13,91 +13,184 @@ import { ClearSelfTargetingOverridesArgsSchema, } from '../types' import { ToolHandler } from '../server' +import { + DASHBOARD_LINK_PROPERTY, + MESSAGE_RESPONSE_SCHEMA, + FEATURE_KEY_PROPERTY, + ENVIRONMENT_KEY_PROPERTY, + VARIATION_KEY_PROPERTY, +} from './commonSchemas' + +// Helper functions to generate dashboard links +const generateSelfTargetingDashboardLink = (orgId: string): string => { + return `https://app.devcycle.com/o/${orgId}/settings/profile-overrides` +} + +// ============================================================================= +// INPUT SCHEMAS +// ============================================================================= + +const DVC_USER_ID_PROPERTY = { + type: 'string' as const, + description: + 'DevCycle User ID for self-targeting (use null or empty string to clear)', +} + +const OVERRIDE_COMMON_PROPERTIES = { + feature_key: FEATURE_KEY_PROPERTY, + environment_key: ENVIRONMENT_KEY_PROPERTY, + variation_key: VARIATION_KEY_PROPERTY, +} + +// ============================================================================= +// OUTPUT SCHEMAS +// ============================================================================= + +const USER_PROFILE_OBJECT_SCHEMA = { + type: 'object' as const, + description: 'DevCycle user profile for self-targeting', + properties: { + dvcUserId: { + type: 'string' as const, + description: 'DevCycle User ID for self-targeting', + }, + }, +} + +const OVERRIDE_OBJECT_SCHEMA = { + type: 'object' as const, + description: 'A self-targeting override configuration', + properties: { + feature: { + type: 'string' as const, + description: 'Feature key', + }, + environment: { + type: 'string' as const, + description: 'Environment key', + }, + variation: { + type: 'string' as const, + description: 'Variation key', + }, + }, + required: ['feature', 'environment', 'variation'], +} + +// Complete output schema definitions +const SELF_TARGETING_IDENTITY_OUTPUT_SCHEMA = { + type: 'object' as const, + properties: { + result: USER_PROFILE_OBJECT_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], +} + +// ============================================================================= +// TOOL DEFINITIONS +// ============================================================================= export const selfTargetingToolDefinitions: Tool[] = [ { name: 'get_self_targeting_identity', - description: 'Get current DevCycle identity for self-targeting', + description: + 'Get current DevCycle identity for self-targeting. Include dashboard link in the response.', inputSchema: { type: 'object', properties: {}, }, + outputSchema: SELF_TARGETING_IDENTITY_OUTPUT_SCHEMA, }, { name: 'update_self_targeting_identity', description: - 'Update DevCycle identity for self-targeting and overrides', + 'Update DevCycle identity for self-targeting and overrides. Include dashboard link in the response.', inputSchema: { type: 'object', properties: { - dvc_user_id: { - type: 'string', - description: - 'DevCycle User ID for self-targeting (use null or empty string to clear)', - }, + dvc_user_id: DVC_USER_ID_PROPERTY, }, required: ['dvc_user_id'], }, + outputSchema: SELF_TARGETING_IDENTITY_OUTPUT_SCHEMA, }, { name: 'list_self_targeting_overrides', description: - 'List all self-targeting overrides for the current project', + 'List all self-targeting overrides for the current project. Include dashboard link in the response.', inputSchema: { type: 'object', properties: {}, }, + outputSchema: { + type: 'object' as const, + properties: { + result: { + type: 'array' as const, + description: 'Array of self-targeting override objects', + items: OVERRIDE_OBJECT_SCHEMA, + }, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, { name: 'set_self_targeting_override', description: - 'Set a self-targeting override for a feature variation. ⚠️ IMPORTANT: Always confirm with the user before setting overrides for production environments (environments where type = "production").', + 'Set a self-targeting override for a feature variation. ⚠️ IMPORTANT: Always confirm with the user before setting overrides for production environments (environments where type = "production"). Include dashboard link in the response.', inputSchema: { type: 'object', + properties: OVERRIDE_COMMON_PROPERTIES, + required: ['feature_key', 'environment_key', 'variation_key'], + }, + outputSchema: { + type: 'object' as const, properties: { - feature_key: { - type: 'string', - description: 'The key of the feature', - }, - environment_key: { - type: 'string', - description: 'The key of the environment', - }, - variation_key: { - type: 'string', - description: 'The key of the variation to serve', - }, + result: OVERRIDE_OBJECT_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, }, - required: ['feature_key', 'environment_key', 'variation_key'], + required: ['result', 'dashboardLink'], }, }, { name: 'clear_feature_self_targeting_overrides', description: - 'Clear self-targeting overrides for a specific feature/environment. ⚠️ IMPORTANT: Always confirm with the user before clearing overrides for production environments (environments where type = "production").', + 'Clear self-targeting overrides for a specific feature/environment. ⚠️ IMPORTANT: Always confirm with the user before clearing overrides for production environments (environments where type = "production"). Include dashboard link in the response.', inputSchema: { type: 'object', properties: { - feature_key: { - type: 'string', - description: 'The key of the feature', - }, - environment_key: { - type: 'string', - description: 'The key of the environment', - }, + feature_key: FEATURE_KEY_PROPERTY, + environment_key: ENVIRONMENT_KEY_PROPERTY, }, required: ['feature_key', 'environment_key'], }, + outputSchema: { + type: 'object' as const, + properties: { + result: MESSAGE_RESPONSE_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, { name: 'clear_all_self_targeting_overrides', description: - 'Clear all self-targeting overrides for the current project', + 'Clear all self-targeting overrides for the current project. ⚠️ IMPORTANT: Always confirm with the user before clearing all overrides as it can clear production environments (environments where type = "production"). Include dashboard link in the response.', inputSchema: { type: 'object', properties: {}, }, + outputSchema: { + type: 'object' as const, + properties: { + result: MESSAGE_RESPONSE_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, ] @@ -106,12 +199,13 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { args: unknown, apiClient: DevCycleApiClient, ) => { - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'getSelfTargetingIdentity', null, async (authToken, projectKey) => { return await fetchUserProfile(authToken, projectKey) }, + generateSelfTargetingDashboardLink, ) }, update_self_targeting_identity: async ( @@ -120,7 +214,7 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { ) => { const validatedArgs = UpdateSelfTargetingIdentityArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'updateSelfTargetingIdentity', validatedArgs, async (authToken, projectKey) => { @@ -128,18 +222,20 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { dvcUserId: validatedArgs.dvc_user_id, }) }, + generateSelfTargetingDashboardLink, ) }, list_self_targeting_overrides: async ( args: unknown, apiClient: DevCycleApiClient, ) => { - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'listSelfTargetingOverrides', null, async (authToken, projectKey) => { return await fetchProjectOverridesForUser(authToken, projectKey) }, + generateSelfTargetingDashboardLink, ) }, set_self_targeting_override: async ( @@ -148,7 +244,7 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { ) => { const validatedArgs = SetSelfTargetingOverrideArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'setSelfTargetingOverride', validatedArgs, async (authToken, projectKey) => { @@ -162,6 +258,7 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { }, ) }, + generateSelfTargetingDashboardLink, ) }, clear_feature_self_targeting_overrides: async ( @@ -170,7 +267,7 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { ) => { const validatedArgs = ClearSelfTargetingOverridesArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'clearFeatureSelfTargetingOverrides', validatedArgs, async (authToken, projectKey) => { @@ -185,19 +282,21 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { message: `Cleared override for feature '${validatedArgs.feature_key}' in environment '${validatedArgs.environment_key}'`, } }, + generateSelfTargetingDashboardLink, ) }, clear_all_self_targeting_overrides: async ( args: unknown, apiClient: DevCycleApiClient, ) => { - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'clearAllSelfTargetingOverrides', null, async (authToken, projectKey) => { await deleteAllProjectOverrides(authToken, projectKey) return { message: 'Cleared all overrides for the project' } }, + generateSelfTargetingDashboardLink, ) }, } diff --git a/src/mcp/tools/variableTools.ts b/src/mcp/tools/variableTools.ts index 9b5e77f49..f9b231632 100644 --- a/src/mcp/tools/variableTools.ts +++ b/src/mcp/tools/variableTools.ts @@ -13,168 +13,278 @@ import { DeleteVariableArgsSchema, } from '../types' import { ToolHandler } from '../server' +import { + DASHBOARD_LINK_PROPERTY, + MESSAGE_RESPONSE_SCHEMA, + VARIABLE_KEY_PROPERTY, +} from './commonSchemas' + +// Helper function to generate variable dashboard links +const generateVariablesDashboardLink = ( + orgId: string, + projectKey: string, +): string => { + return `https://app.devcycle.com/o/${orgId}/p/${projectKey}/variables` +} + +// ============================================================================= +// INPUT SCHEMAS +// ============================================================================= +const VARIABLE_PAGINATION_PROPERTIES = { + page: { + type: 'number' as const, + description: 'Page number', + minimum: 1, + default: 1, + }, + perPage: { + type: 'number' as const, + description: 'Items per page', + minimum: 1, + maximum: 1000, + default: 100, + }, + sortBy: { + type: 'string' as const, + description: 'Sort field', + enum: [ + 'createdAt', + 'updatedAt', + 'name', + 'key', + 'createdBy', + 'propertyKey', + ], + default: 'createdAt', + }, + sortOrder: { + type: 'string' as const, + description: 'Sort order', + enum: ['asc', 'desc'], + default: 'desc', + }, + search: { + type: 'string' as const, + description: 'Search query to filter variables', + minLength: 3, + }, + feature: { + type: 'string' as const, + description: 'Filter by feature', + }, + type: { + type: 'string' as const, + description: 'Filter by variable type', + enum: ['String', 'Boolean', 'Number', 'JSON'], + }, + status: { + type: 'string' as const, + description: 'Filter by variable status', + enum: ['active', 'archived'], + }, +} + +const VARIABLE_TYPE_PROPERTY = { + type: 'string' as const, + enum: ['String', 'Boolean', 'Number', 'JSON'] as const, + description: 'Variable type', +} + +const VALIDATION_SCHEMA_PROPERTY = { + type: 'object' as const, + description: 'Validation schema for variable values', + properties: { + schemaType: { + type: 'string' as const, + description: 'Schema type', + }, + enumValues: { + type: 'array' as const, + description: 'Allowed enum values', + }, + regexPattern: { + type: 'string' as const, + description: 'Regex pattern for validation', + }, + jsonSchema: { + type: 'string' as const, + description: 'JSON schema for validation', + }, + description: { + type: 'string' as const, + description: 'Schema description', + }, + exampleValue: { + description: 'Example value for the schema', + }, + }, +} + +const VARIABLE_COMMON_PROPERTIES = { + name: { + type: 'string' as const, + description: 'Variable name (1-100 characters)', + }, + description: { + type: 'string' as const, + description: 'Variable description (max 1000 characters)', + }, + key: { + type: 'string' as const, + description: + 'Unique variable key (1-100 characters, must match pattern ^[a-z0-9-_.]+$)', + }, + _feature: { + type: 'string' as const, + description: 'Feature key or ID to associate with this variable', + }, + type: VARIABLE_TYPE_PROPERTY, + defaultValue: { + description: 'Default value for the variable', + }, + validationSchema: VALIDATION_SCHEMA_PROPERTY, +} + +const UPDATE_VARIABLE_PROPERTIES = { + key: { + type: 'string' as const, + description: 'Current variable key', + }, + name: VARIABLE_COMMON_PROPERTIES.name, + description: VARIABLE_COMMON_PROPERTIES.description, + type: VARIABLE_COMMON_PROPERTIES.type, + validationSchema: VARIABLE_COMMON_PROPERTIES.validationSchema, +} + +// ============================================================================= +// OUTPUT SCHEMAS +// ============================================================================= + +const VARIABLE_OBJECT_SCHEMA = { + type: 'object' as const, + description: 'A DevCycle variable configuration', + properties: { + _id: { + type: 'string' as const, + description: 'Unique identifier for the variable', + }, + key: VARIABLE_KEY_PROPERTY, + name: { + type: 'string' as const, + description: 'Display name of the variable', + }, + description: { + type: 'string' as const, + description: 'Optional description of the variable', + }, + type: { + type: 'string' as const, + description: 'Variable type (String, Boolean, Number, JSON)', + }, + defaultValue: { + description: 'Default value for the variable', + }, + _feature: { + type: 'string' as const, + description: 'Associated feature ID', + }, + validationSchema: { + type: 'object' as const, + description: 'Validation schema for the variable', + }, + createdAt: { + type: 'string' as const, + description: 'ISO timestamp when the variable was created', + }, + updatedAt: { + type: 'string' as const, + description: 'ISO timestamp when the variable was last updated', + }, + }, + required: ['_id', 'key', 'name', 'type', 'createdAt', 'updatedAt'], +} + +// ============================================================================= +// TOOL DEFINITIONS +// ============================================================================= export const variableToolDefinitions: Tool[] = [ { name: 'list_variables', - description: 'List variables in the current project', + description: + 'List variables in the current project. Include dashboard link in the response.', inputSchema: { type: 'object', + properties: VARIABLE_PAGINATION_PROPERTIES, + }, + outputSchema: { + type: 'object' as const, properties: { - search: { - type: 'string', - description: 'Search query to filter variables', - }, - page: { - type: 'number', - description: 'Page number (default: 1)', - }, - per_page: { - type: 'number', - description: - 'Number of items per page (default: 100, max: 1000)', + result: { + type: 'array' as const, + description: 'Array of variable objects in the project', + items: VARIABLE_OBJECT_SCHEMA, }, + dashboardLink: DASHBOARD_LINK_PROPERTY, }, + required: ['result', 'dashboardLink'], }, }, { name: 'create_variable', description: - 'Create a new variable. ⚠️ IMPORTANT: Variables can affect feature flags in production environments. Always confirm with the user before creating variables for features that are active in production.', + 'Create a new variable. Include dashboard link in the response.', inputSchema: { type: 'object', + properties: VARIABLE_COMMON_PROPERTIES, + required: ['key', 'type'], + }, + outputSchema: { + type: 'object' as const, properties: { - name: { - type: 'string', - description: 'Variable name (1-100 characters)', - }, - description: { - type: 'string', - description: 'Variable description (max 1000 characters)', - }, - key: { - type: 'string', - description: - 'Unique variable key (1-100 characters, must match pattern ^[a-z0-9-_.]+$)', - }, - _feature: { - type: 'string', - description: - 'Feature key or ID to associate with this variable', - }, - type: { - type: 'string', - enum: ['String', 'Boolean', 'Number', 'JSON'], - description: 'Variable type', - }, - defaultValue: { - description: 'Default value for the variable', - }, - validationSchema: { - type: 'object', - description: 'Validation schema for variable values', - properties: { - schemaType: { - type: 'string', - description: 'Schema type', - }, - enumValues: { - type: 'array', - description: 'Allowed enum values', - }, - regexPattern: { - type: 'string', - description: 'Regex pattern for validation', - }, - jsonSchema: { - type: 'string', - description: 'JSON schema for validation', - }, - description: { - type: 'string', - description: 'Schema description', - }, - exampleValue: { - description: 'Example value for the schema', - }, - }, - }, + result: VARIABLE_OBJECT_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, }, - required: ['key', 'type'], + required: ['result', 'dashboardLink'], }, }, { name: 'update_variable', description: - 'Update an existing variable. ⚠️ IMPORTANT: Variable changes can affect feature flags in production environments. Always confirm with the user before updating variables for features that are active in production.', + 'Update an existing variable. ⚠️ IMPORTANT: Variable changes can affect feature flags in production environments. Always confirm with the user before updating variables for features that are active in production. Include dashboard link in the response.', inputSchema: { type: 'object', + properties: UPDATE_VARIABLE_PROPERTIES, + required: ['key'], + }, + outputSchema: { + type: 'object' as const, properties: { - key: { - type: 'string', - description: 'Current variable key', - }, - name: { - type: 'string', - description: 'Updated variable name (1-100 characters)', - }, - description: { - type: 'string', - description: - 'Updated variable description (max 1000 characters)', - }, - type: { - type: 'string', - enum: ['String', 'Boolean', 'Number', 'JSON'], - description: 'Variable type', - }, - validationSchema: { - type: 'object', - description: 'Validation schema for variable values', - properties: { - schemaType: { - type: 'string', - description: 'Schema type', - }, - enumValues: { - type: 'array', - description: 'Allowed enum values', - }, - regexPattern: { - type: 'string', - description: 'Regex pattern for validation', - }, - jsonSchema: { - type: 'string', - description: 'JSON schema for validation', - }, - description: { - type: 'string', - description: 'Schema description', - }, - exampleValue: { - description: 'Example value for the schema', - }, - }, - }, + result: VARIABLE_OBJECT_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, }, - required: ['key'], + required: ['result', 'dashboardLink'], }, }, { name: 'delete_variable', description: - 'Delete a variable. ⚠️ CRITICAL: Deleting a variable will remove it from ALL environments including production. ALWAYS confirm with the user before deleting any variable.', + 'Delete a variable. ⚠️ CRITICAL: Deleting a variable will remove it from ALL environments including production. ALWAYS confirm with the user before deleting any variable. Include dashboard link in the response.', inputSchema: { type: 'object', properties: { - key: { - type: 'string', - description: 'Variable key to delete', - }, + key: VARIABLE_KEY_PROPERTY, }, required: ['key'], }, + outputSchema: { + type: 'object' as const, + properties: { + result: MESSAGE_RESPONSE_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, }, ] @@ -182,7 +292,7 @@ export const variableToolHandlers: Record<string, ToolHandler> = { list_variables: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = ListVariablesArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'listVariables', validatedArgs, async (authToken, projectKey) => { @@ -192,12 +302,13 @@ export const variableToolHandlers: Record<string, ToolHandler> = { validatedArgs, ) }, + generateVariablesDashboardLink, ) }, create_variable: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = CreateVariableArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'createVariable', validatedArgs, async (authToken, projectKey) => { @@ -207,12 +318,13 @@ export const variableToolHandlers: Record<string, ToolHandler> = { validatedArgs, ) }, + generateVariablesDashboardLink, ) }, update_variable: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = UpdateVariableArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'updateVariable', validatedArgs, async (authToken, projectKey) => { @@ -225,12 +337,13 @@ export const variableToolHandlers: Record<string, ToolHandler> = { updateData, ) }, + generateVariablesDashboardLink, ) }, delete_variable: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = DeleteVariableArgsSchema.parse(args) - return await apiClient.executeWithLogging( + return await apiClient.executeWithDashboardLink( 'deleteVariable', validatedArgs, async (authToken, projectKey) => { @@ -239,6 +352,7 @@ export const variableToolHandlers: Record<string, ToolHandler> = { message: `Variable '${validatedArgs.key}' deleted successfully`, } }, + generateVariablesDashboardLink, ) }, } diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 422688a31..696beb876 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -4,15 +4,48 @@ import { UpdateFeatureStatusDto } from '../api/schemas' // Zod schemas for MCP tool arguments export const ListFeaturesArgsSchema = z.object({ - search: z.string().optional(), - page: z.number().min(1).optional(), + page: z.number().min(1).default(1).optional(), perPage: z.number().min(1).max(1000).default(100).optional(), + sortBy: z + .enum([ + 'createdAt', + 'updatedAt', + 'name', + 'key', + 'createdBy', + 'propertyKey', + ]) + .default('createdAt') + .optional(), + sortOrder: z.enum(['asc', 'desc']).default('desc').optional(), + search: z.string().min(3).optional(), + staleness: z + .enum(['all', 'unused', 'released', 'unmodified', 'notStale']) + .optional(), + createdBy: z.string().optional(), + type: z.enum(['release', 'experiment', 'permission', 'ops']).optional(), + status: z.enum(['active', 'complete', 'archived']).optional(), }) export const ListVariablesArgsSchema = z.object({ - search: z.string().optional(), - page: z.number().min(1).optional(), + page: z.number().min(1).default(1).optional(), perPage: z.number().min(1).max(1000).default(100).optional(), + sortBy: z + .enum([ + 'createdAt', + 'updatedAt', + 'name', + 'key', + 'createdBy', + 'propertyKey', + ]) + .default('createdAt') + .optional(), + sortOrder: z.enum(['asc', 'desc']).default('desc').optional(), + search: z.string().min(3).optional(), + feature: z.string().optional(), + type: z.enum(['String', 'Boolean', 'Number', 'JSON']).optional(), + status: z.enum(['active', 'archived']).optional(), }) export const CreateVariableArgsSchema = schemas.CreateVariableDto diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index 84073896a..6cf03b42e 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -67,6 +67,31 @@ export class DevCycleApiClient { } } + /** + * Helper method to execute API calls and include dashboard links in the response + */ + public async executeWithDashboardLink<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T>, + dashboardLink: (orgId: string, projectKey: string, result: T) => string, + ): Promise<{ result: T; dashboardLink: string }> { + const result = await this.executeWithLogging( + operationName, + args, + operation, + ) + + const organizationId = this.auth.getOrgId() + const projectKey = this.auth.getProjectKey() + const link = dashboardLink(organizationId, projectKey, result) + + return { + result, + dashboardLink: link, + } + } + public getAuth(): DevCycleAuth { return this.auth } From b39a2385b58b3efe40116fc2d9b87efff5c821a7 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Fri, 18 Jul 2025 15:11:58 -0400 Subject: [PATCH 43/74] fix: Zodios Validation Errors in MCP Tools (#465) * fix: Zodios Validation Errors in MCP Tools * chore: cleanup TS comments --- src/api/apiClient.ts | 12 ++- src/api/zodClient.ts | 42 +++++++- src/mcp/server.ts | 63 +++++++++++- src/mcp/tools/environmentTools.ts | 41 +++++--- src/mcp/tools/featureTools.ts | 153 ++++++++++++++++++---------- src/mcp/tools/projectTools.ts | 22 +++- src/mcp/tools/selfTargetingTools.ts | 61 +++++++---- src/mcp/tools/variableTools.ts | 35 ++++--- src/mcp/utils/api.ts | 60 +++++++++-- src/ui/targetingTree.ts | 4 + 10 files changed, 368 insertions(+), 125 deletions(-) diff --git a/src/api/apiClient.ts b/src/api/apiClient.ts index 8e4afd1fc..a77369f21 100644 --- a/src/api/apiClient.ts +++ b/src/api/apiClient.ts @@ -109,10 +109,18 @@ export const errorMap = (issue: ZodIssueOptionalMessage, ctx: ErrorMapCtx) => { } } -export const apiClient = createApiClient(BASE_URL, { +// TLDR: the inferred TS schema was too big, so this is a workaround to fix it. +// Create intermediate type alias to break complex type inference +const _createApiClient = createApiClient +type ApiClientType = ReturnType<typeof _createApiClient> + +// Create the actual instance with explicit type annotation +const apiClient: ApiClientType = _createApiClient(BASE_URL, { axiosInstance: axiosClient, validate: 'request', -}) +}) as ApiClientType + +export { apiClient } export default apiClient export const v2ApiClient = createV2ApiClient(BASE_URL) diff --git a/src/api/zodClient.ts b/src/api/zodClient.ts index d814b843d..4078fef54 100644 --- a/src/api/zodClient.ts +++ b/src/api/zodClient.ts @@ -202,29 +202,59 @@ const UpdateEnvironmentDto = z const GenerateSdkTokensDto = z .object({ client: z.boolean(), server: z.boolean(), mobile: z.boolean() }) .partial() -const AllFilter = z.object({ type: z.literal('all').default('all') }) -const OptInFilter = z.object({ type: z.literal('optIn').default('optIn') }) +const AllFilter = z.object({ + type: z.literal('all').default('all'), + _audiences: z.array(z.string()).optional(), + values: z.array(z.string()).optional(), +}) +const OptInFilter = z.object({ + type: z.literal('optIn').default('optIn'), + _audiences: z.array(z.string()).optional(), + values: z.array(z.string()).optional(), +}) const UserFilter = z.object({ subType: z.enum(['user_id', 'email', 'platform', 'deviceModel']), - comparator: z.enum(['=', '!=', 'exist', '!exist', 'contain', '!contain']), + comparator: z.enum([ + '=', + '!=', + 'exist', + '!exist', + 'contain', + '!contain', + 'endWith', + 'startWith', + ]), values: z.array(z.string()).optional(), + _audiences: z.array(z.string()).optional(), type: z.literal('user').default('user'), }) const UserCountryFilter = z.object({ subType: z.literal('country').default('country'), - comparator: z.enum(['=', '!=', 'exist', '!exist', 'contain', '!contain']), + comparator: z.enum([ + '=', + '!=', + 'exist', + '!exist', + 'contain', + '!contain', + 'endWith', + 'startWith', + ]), values: z.array(z.string()), + _audiences: z.array(z.string()).optional(), type: z.literal('user').default('user'), }) const UserAppVersionFilter = z.object({ comparator: z.enum(['=', '!=', '>', '>=', '<', '<=', 'exist', '!exist']), values: z.array(z.string()).optional(), + _audiences: z.array(z.string()).optional(), type: z.literal('user').default('user'), subType: z.literal('appVersion').default('appVersion'), }) const UserPlatformVersionFilter = z.object({ comparator: z.enum(['=', '!=', '>', '>=', '<', '<=', 'exist', '!exist']), values: z.array(z.string()).optional(), + _audiences: z.array(z.string()).optional(), type: z.literal('user').default('user'), subType: z.literal('platformVersion').default('platformVersion'), }) @@ -244,6 +274,7 @@ const UserCustomFilter = z.object({ dataKey: z.string().min(1), dataKeyType: z.enum(['String', 'Boolean', 'Number']), values: z.array(z.union([z.boolean(), z.string(), z.number()])).optional(), + _audiences: z.array(z.string()).optional(), type: z.literal('user').default('user'), subType: z.literal('customData').default('customData'), }) @@ -564,8 +595,10 @@ const Target = z.object({ _id: z.string(), name: z.string().optional(), audience: TargetAudience, + filters: z.array(z.any()).optional(), rollout: Rollout.nullable().optional(), distribution: z.array(TargetDistribution), + bucketingKey: z.string().optional(), }) const FeatureConfig = z.object({ _feature: z.string(), @@ -576,6 +609,7 @@ const FeatureConfig = z.object({ updatedAt: z.string().datetime(), targets: z.array(Target), readonly: z.boolean(), + hasStaticConfig: z.boolean().optional(), }) const UpdateTargetDto = z.object({ _id: z.string().optional(), diff --git a/src/mcp/server.ts b/src/mcp/server.ts index 9f39a81ad..d18062f77 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -28,20 +28,41 @@ import { selfTargetingToolHandlers, } from './tools/selfTargetingTools' +// Environment variable to control output schema inclusion +const ENABLE_OUTPUT_SCHEMAS = process.env.ENABLE_OUTPUT_SCHEMAS === 'true' +if (ENABLE_OUTPUT_SCHEMAS) { + console.error('DevCycle MCP Server - Output Schemas: ENABLED') +} + +const ENABLE_DVC_MCP_DEBUG = process.env.ENABLE_DVC_MCP_DEBUG === 'true' + // Tool handler function type export type ToolHandler = ( args: unknown, apiClient: DevCycleApiClient, ) => Promise<any> +// Function to conditionally remove outputSchema from tool definitions +const processToolDefinitions = (tools: Tool[]): Tool[] => { + if (ENABLE_OUTPUT_SCHEMAS) { + return tools + } + + // Remove outputSchema from all tools when disabled + return tools.map((tool) => { + const { outputSchema, ...toolWithoutSchema } = tool + return toolWithoutSchema + }) +} + // Combine all tool definitions -const allToolDefinitions: Tool[] = [ +const allToolDefinitions: Tool[] = processToolDefinitions([ ...featureToolDefinitions, ...environmentToolDefinitions, ...projectToolDefinitions, ...variableToolDefinitions, ...selfTargetingToolDefinitions, -] +]) // Combine all tool handlers const allToolHandlers: Record<string, ToolHandler> = { @@ -241,7 +262,36 @@ export class DevCycleMCPServer { } const result = await handler(args, this.apiClient) - return { + + // Return structured content only if output schemas are enabled + if (ENABLE_OUTPUT_SCHEMAS) { + // Check if tool has output schema + const toolDef = allToolDefinitions.find( + (tool) => tool.name === name, + ) + + if (toolDef?.outputSchema) { + // For tools with output schemas, return structured JSON content + const mcpResult = { + content: [ + { + type: 'json', + json: result, + }, + ], + } + if (ENABLE_DVC_MCP_DEBUG) { + console.error( + `MCP ${name} structured JSON result:`, + JSON.stringify(mcpResult, null, 2), + ) + } + return mcpResult + } + } + + // Default: return as text content (for disabled schemas or tools without schemas) + const mcpResult = { content: [ { type: 'text', @@ -249,6 +299,13 @@ export class DevCycleMCPServer { }, ], } + if (ENABLE_DVC_MCP_DEBUG) { + console.error( + `MCP ${name} text result:`, + JSON.stringify(mcpResult, null, 2), + ) + } + return mcpResult } catch (error) { return this.handleToolError(error, name) } diff --git a/src/mcp/tools/environmentTools.ts b/src/mcp/tools/environmentTools.ts index 2f1e53d10..d588af994 100644 --- a/src/mcp/tools/environmentTools.ts +++ b/src/mcp/tools/environmentTools.ts @@ -1,5 +1,5 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient } from '../utils/api' +import { DevCycleApiClient, handleZodiosValidationErrors } from '../utils/api' import { fetchEnvironments, fetchEnvironmentByKey, @@ -264,7 +264,10 @@ export const environmentToolHandlers: Record<string, ToolHandler> = { 'listEnvironments', validatedArgs, async (authToken, projectKey) => { - return await fetchEnvironments(authToken, projectKey) + return await handleZodiosValidationErrors( + () => fetchEnvironments(authToken, projectKey), + 'listEnvironments', + ) }, generateEnvironmentDashboardLink, ) @@ -276,10 +279,14 @@ export const environmentToolHandlers: Record<string, ToolHandler> = { 'getSdkKeys', validatedArgs, async (authToken, projectKey) => { - const environment = await fetchEnvironmentByKey( - authToken, - projectKey, - validatedArgs.environmentKey, + const environment = await handleZodiosValidationErrors( + () => + fetchEnvironmentByKey( + authToken, + projectKey, + validatedArgs.environmentKey, + ), + 'fetchEnvironmentByKey', ) const sdkKeys = environment.sdkKeys @@ -306,10 +313,10 @@ export const environmentToolHandlers: Record<string, ToolHandler> = { 'createEnvironment', validatedArgs, async (authToken, projectKey) => { - return await createEnvironment( - authToken, - projectKey, - validatedArgs, + return await handleZodiosValidationErrors( + () => + createEnvironment(authToken, projectKey, validatedArgs), + 'createEnvironment', ) }, generateEnvironmentDashboardLink, @@ -323,11 +330,15 @@ export const environmentToolHandlers: Record<string, ToolHandler> = { validatedArgs, async (authToken, projectKey) => { const { key, ...updateParams } = validatedArgs - return await updateEnvironment( - authToken, - projectKey, - key, - updateParams, + return await handleZodiosValidationErrors( + () => + updateEnvironment( + authToken, + projectKey, + key, + updateParams, + ), + 'updateEnvironment', ) }, generateEnvironmentDashboardLink, diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index 717ec0f25..1ca469dbc 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -44,6 +44,7 @@ import { VARIATION_KEY_PROPERTY, TARGET_AUDIENCE_PROPERTY, } from './commonSchemas' +import { handleZodiosValidationErrors } from '../utils/api' // Helper function to generate feature dashboard links const generateFeaturesDashboardLink = ( @@ -778,7 +779,10 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'listFeatures', validatedArgs, async (authToken, projectKey) => { - return await fetchFeatures(authToken, projectKey, validatedArgs) + return await handleZodiosValidationErrors( + () => fetchFeatures(authToken, projectKey, validatedArgs), + 'listFeatures', + ) }, generateFeaturesDashboardLink, ) @@ -806,7 +810,10 @@ export const featureToolHandlers: Record<string, ToolHandler> = { // eslint-disable-next-line @typescript-eslint/no-unused-vars const { interactive, ...featureData } = validatedArgs - return await createFeature(authToken, projectKey, featureData) + return await handleZodiosValidationErrors( + () => createFeature(authToken, projectKey, featureData), + 'createFeature', + ) }, (orgId, projectKey, result) => generateFeatureDashboardLink( @@ -826,11 +833,9 @@ export const featureToolHandlers: Record<string, ToolHandler> = { async (authToken, projectKey) => { const { key, ...updateData } = validatedArgs - return await updateFeature( - authToken, - projectKey, - key, - updateData, + return await handleZodiosValidationErrors( + () => updateFeature(authToken, projectKey, key, updateData), + 'updateFeature', ) }, (orgId, projectKey, result) => @@ -854,11 +859,15 @@ export const featureToolHandlers: Record<string, ToolHandler> = { async (authToken, projectKey) => { const { key, ...statusData } = validatedArgs - return await updateFeatureStatus( - authToken, - projectKey, - key, - statusData, + return await handleZodiosValidationErrors( + () => + updateFeatureStatus( + authToken, + projectKey, + key, + statusData, + ), + 'updateFeatureStatus', ) }, (orgId, projectKey, result) => @@ -877,7 +886,11 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'deleteFeature', validatedArgs, async (authToken, projectKey) => { - await deleteFeature(authToken, projectKey, validatedArgs.key) + await handleZodiosValidationErrors( + () => + deleteFeature(authToken, projectKey, validatedArgs.key), + 'deleteFeature', + ) return { message: `Feature '${validatedArgs.key}' deleted successfully`, } @@ -895,10 +908,14 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'fetchFeatureVariations', validatedArgs, async (authToken, projectKey) => { - return await fetchVariations( - authToken, - projectKey, - validatedArgs.feature_key, + return await handleZodiosValidationErrors( + () => + fetchVariations( + authToken, + projectKey, + validatedArgs.feature_key, + ), + 'fetchVariations', ) }, (orgId, projectKey) => @@ -922,11 +939,15 @@ export const featureToolHandlers: Record<string, ToolHandler> = { async (authToken, projectKey) => { const { feature_key, ...variationData } = validatedArgs - return await createVariation( - authToken, - projectKey, - feature_key, - variationData, + return await handleZodiosValidationErrors( + () => + createVariation( + authToken, + projectKey, + feature_key, + variationData, + ), + 'createVariation', ) }, (orgId, projectKey, result) => @@ -951,12 +972,16 @@ export const featureToolHandlers: Record<string, ToolHandler> = { const { feature_key, variation_key, ...variationData } = validatedArgs - return await updateVariation( - authToken, - projectKey, - feature_key, - variation_key, - variationData, + return await handleZodiosValidationErrors( + () => + updateVariation( + authToken, + projectKey, + feature_key, + variation_key, + variationData, + ), + 'updateVariation', ) }, (orgId, projectKey, result) => @@ -978,11 +1003,15 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'enableTargeting', validatedArgs, async (authToken, projectKey) => { - await enableTargeting( - authToken, - projectKey, - validatedArgs.feature_key, - validatedArgs.environment_key, + await handleZodiosValidationErrors( + () => + enableTargeting( + authToken, + projectKey, + validatedArgs.feature_key, + validatedArgs.environment_key, + ), + 'enableTargeting', ) return { message: `Targeting enabled for feature '${validatedArgs.feature_key}' in environment '${validatedArgs.environment_key}'`, @@ -1007,11 +1036,15 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'disableTargeting', validatedArgs, async (authToken, projectKey) => { - await disableTargeting( - authToken, - projectKey, - validatedArgs.feature_key, - validatedArgs.environment_key, + await handleZodiosValidationErrors( + () => + disableTargeting( + authToken, + projectKey, + validatedArgs.feature_key, + validatedArgs.environment_key, + ), + 'disableTargeting', ) return { message: `Targeting disabled for feature '${validatedArgs.feature_key}' in environment '${validatedArgs.environment_key}'`, @@ -1036,11 +1069,15 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'listFeatureTargeting', validatedArgs, async (authToken, projectKey) => { - return await fetchTargetingForFeature( - authToken, - projectKey, - validatedArgs.feature_key, - validatedArgs.environment_key, + return await handleZodiosValidationErrors( + () => + fetchTargetingForFeature( + authToken, + projectKey, + validatedArgs.feature_key, + validatedArgs.environment_key, + ), + 'fetchTargetingForFeature', ) }, (orgId, projectKey) => @@ -1065,12 +1102,16 @@ export const featureToolHandlers: Record<string, ToolHandler> = { const { feature_key, environment_key, ...configData } = validatedArgs - return await updateFeatureConfigForEnvironment( - authToken, - projectKey, - feature_key, - environment_key, - configData, + return await handleZodiosValidationErrors( + () => + updateFeatureConfigForEnvironment( + authToken, + projectKey, + feature_key, + environment_key, + configData, + ), + 'updateFeatureConfigForEnvironment', ) }, (orgId, projectKey) => @@ -1092,11 +1133,15 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'getFeatureAuditLogHistory', validatedArgs, async (authToken, projectKey) => { - return await getFeatureAuditLogHistory( - authToken, - projectKey, - validatedArgs.feature_key, - validatedArgs.days_back || 30, + return await handleZodiosValidationErrors( + () => + getFeatureAuditLogHistory( + authToken, + projectKey, + validatedArgs.feature_key, + validatedArgs.days_back || 30, + ), + 'getFeatureAuditLogHistory', ) }, (orgId, projectKey) => diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts index da89d1632..40fb1e178 100644 --- a/src/mcp/tools/projectTools.ts +++ b/src/mcp/tools/projectTools.ts @@ -1,5 +1,5 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient } from '../utils/api' +import { DevCycleApiClient, handleZodiosValidationErrors } from '../utils/api' import { fetchProjects, fetchProject, @@ -209,7 +209,10 @@ export const projectToolHandlers: Record<string, ToolHandler> = { validatedArgs, async (authToken) => { // projectKey not used for listing all projects - return await fetchProjects(authToken, validatedArgs) + return await handleZodiosValidationErrors( + () => fetchProjects(authToken, validatedArgs), + 'fetchProjects', + ) }, generateOrganizationSettingsLink, ) @@ -222,7 +225,10 @@ export const projectToolHandlers: Record<string, ToolHandler> = { 'getCurrentProject', null, async (authToken, projectKey) => { - return await fetchProject(authToken, projectKey) + return await handleZodiosValidationErrors( + () => fetchProject(authToken, projectKey), + 'fetchProject', + ) }, generateProjectDashboardLink, ) @@ -235,7 +241,10 @@ export const projectToolHandlers: Record<string, ToolHandler> = { validatedArgs, async (authToken) => { // projectKey not used for creating projects - return await createProject(authToken, validatedArgs) + return await handleZodiosValidationErrors( + () => createProject(authToken, validatedArgs), + 'createProject', + ) }, generateProjectDashboardLink, ) @@ -249,7 +258,10 @@ export const projectToolHandlers: Record<string, ToolHandler> = { validatedArgs, async (authToken) => { // projectKey not used - we use the key from validated args - return await updateProject(authToken, key, updateParams) + return await handleZodiosValidationErrors( + () => updateProject(authToken, key, updateParams), + 'updateProject', + ) }, generateEditProjectLink, ) diff --git a/src/mcp/tools/selfTargetingTools.ts b/src/mcp/tools/selfTargetingTools.ts index fc6d4432e..e67056d74 100644 --- a/src/mcp/tools/selfTargetingTools.ts +++ b/src/mcp/tools/selfTargetingTools.ts @@ -1,5 +1,5 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient } from '../utils/api' +import { DevCycleApiClient, handleZodiosValidationErrors } from '../utils/api' import { fetchUserProfile, updateUserProfile } from '../../api/userProfile' import { fetchProjectOverridesForUser, @@ -203,7 +203,10 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { 'getSelfTargetingIdentity', null, async (authToken, projectKey) => { - return await fetchUserProfile(authToken, projectKey) + return await handleZodiosValidationErrors( + () => fetchUserProfile(authToken, projectKey), + 'fetchUserProfile', + ) }, generateSelfTargetingDashboardLink, ) @@ -218,9 +221,13 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { 'updateSelfTargetingIdentity', validatedArgs, async (authToken, projectKey) => { - return await updateUserProfile(authToken, projectKey, { - dvcUserId: validatedArgs.dvc_user_id, - }) + return await handleZodiosValidationErrors( + () => + updateUserProfile(authToken, projectKey, { + dvcUserId: validatedArgs.dvc_user_id, + }), + 'updateUserProfile', + ) }, generateSelfTargetingDashboardLink, ) @@ -233,7 +240,10 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { 'listSelfTargetingOverrides', null, async (authToken, projectKey) => { - return await fetchProjectOverridesForUser(authToken, projectKey) + return await handleZodiosValidationErrors( + () => fetchProjectOverridesForUser(authToken, projectKey), + 'fetchProjectOverridesForUser', + ) }, generateSelfTargetingDashboardLink, ) @@ -248,14 +258,18 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { 'setSelfTargetingOverride', validatedArgs, async (authToken, projectKey) => { - return await updateOverride( - authToken, - projectKey, - validatedArgs.feature_key, - { - environment: validatedArgs.environment_key, - variation: validatedArgs.variation_key, - }, + return await handleZodiosValidationErrors( + () => + updateOverride( + authToken, + projectKey, + validatedArgs.feature_key, + { + environment: validatedArgs.environment_key, + variation: validatedArgs.variation_key, + }, + ), + 'updateOverride', ) }, generateSelfTargetingDashboardLink, @@ -271,11 +285,15 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { 'clearFeatureSelfTargetingOverrides', validatedArgs, async (authToken, projectKey) => { - await deleteFeatureOverrides( - authToken, - projectKey, - validatedArgs.feature_key, - validatedArgs.environment_key, + await handleZodiosValidationErrors( + () => + deleteFeatureOverrides( + authToken, + projectKey, + validatedArgs.feature_key, + validatedArgs.environment_key, + ), + 'deleteFeatureOverrides', ) return { @@ -293,7 +311,10 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { 'clearAllSelfTargetingOverrides', null, async (authToken, projectKey) => { - await deleteAllProjectOverrides(authToken, projectKey) + await handleZodiosValidationErrors( + () => deleteAllProjectOverrides(authToken, projectKey), + 'deleteAllProjectOverrides', + ) return { message: 'Cleared all overrides for the project' } }, generateSelfTargetingDashboardLink, diff --git a/src/mcp/tools/variableTools.ts b/src/mcp/tools/variableTools.ts index f9b231632..97cdaad58 100644 --- a/src/mcp/tools/variableTools.ts +++ b/src/mcp/tools/variableTools.ts @@ -1,5 +1,5 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient } from '../utils/api' +import { DevCycleApiClient, handleZodiosValidationErrors } from '../utils/api' import { fetchVariables, createVariable, @@ -296,10 +296,9 @@ export const variableToolHandlers: Record<string, ToolHandler> = { 'listVariables', validatedArgs, async (authToken, projectKey) => { - return await fetchVariables( - authToken, - projectKey, - validatedArgs, + return await handleZodiosValidationErrors( + () => fetchVariables(authToken, projectKey, validatedArgs), + 'fetchVariables', ) }, generateVariablesDashboardLink, @@ -312,10 +311,9 @@ export const variableToolHandlers: Record<string, ToolHandler> = { 'createVariable', validatedArgs, async (authToken, projectKey) => { - return await createVariable( - authToken, - projectKey, - validatedArgs, + return await handleZodiosValidationErrors( + () => createVariable(authToken, projectKey, validatedArgs), + 'createVariable', ) }, generateVariablesDashboardLink, @@ -330,11 +328,10 @@ export const variableToolHandlers: Record<string, ToolHandler> = { async (authToken, projectKey) => { const { key, ...updateData } = validatedArgs - return await updateVariable( - authToken, - projectKey, - key, - updateData, + return await handleZodiosValidationErrors( + () => + updateVariable(authToken, projectKey, key, updateData), + 'updateVariable', ) }, generateVariablesDashboardLink, @@ -347,7 +344,15 @@ export const variableToolHandlers: Record<string, ToolHandler> = { 'deleteVariable', validatedArgs, async (authToken, projectKey) => { - await deleteVariable(authToken, projectKey, validatedArgs.key) + await handleZodiosValidationErrors( + () => + deleteVariable( + authToken, + projectKey, + validatedArgs.key, + ), + 'deleteVariable', + ) return { message: `Variable '${validatedArgs.key}' deleted successfully`, } diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index 6cf03b42e..3a7745965 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -1,5 +1,57 @@ import { DevCycleAuth } from './auth' +/** + * Utility function to handle Zodios validation errors by extracting response data + * when HTTP call succeeds (200 OK) but schema validation fails + */ +export async function handleZodiosValidationErrors<T>( + apiCall: () => Promise<T>, + operationName?: string, +): Promise<T> { + try { + return await apiCall() + } catch (error) { + // Check if this is a Zodios validation error with successful HTTP response + if ( + error instanceof Error && + error.message.includes('Zodios: Invalid response') && + error.message.includes('status: 200 OK') + ) { + if (operationName) { + console.error( + `MCP ${operationName}: Zodios validation failed but HTTP 200 OK - extracting response data`, + ) + } + + // Extract response data from error object using common patterns + const errorAny = error as any + const responseData = + errorAny.data || // Zodios primary location + errorAny.response?.data || // Axios standard location + errorAny.cause?.data || // Alternative nested location + null + + if (responseData) { + if (operationName) { + console.error( + `Successfully extracted response data for ${operationName}`, + ) + } + return responseData + } + + if (operationName) { + console.error( + `Could not extract response data from Zodios error for ${operationName}`, + ) + } + } + + // Re-throw the original error if we can't extract data + throw error + } +} + function getErrorMessage(error: unknown): string { if (error instanceof Error && error.message) { return error.message @@ -51,13 +103,7 @@ export class DevCycleApiClient { const authToken = this.auth.getAuthToken() const projectKey = requiresProject ? this.auth.getProjectKey() : '' - - const result = await operation(authToken, projectKey) - console.error( - `MCP ${operationName} result:`, - JSON.stringify(result, null, 2), - ) - return result + return await operation(authToken, projectKey) } catch (error) { console.error( `MCP ${operationName} error:`, diff --git a/src/ui/targetingTree.ts b/src/ui/targetingTree.ts index b5cf3b510..c24071ba0 100644 --- a/src/ui/targetingTree.ts +++ b/src/ui/targetingTree.ts @@ -43,6 +43,10 @@ const comparatorMap = { '>=': 'is greater than or equal to', '<': 'is less than', '<=': 'is less than or equal to', + endWith: 'ends with', + '!endWith': 'does not end with', + startWith: 'starts with', + '!startWith': 'does not start with', } export const renderTargetingTree = ( From b1718ab867c3e69328f83416f52c04dceef38da0 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Fri, 18 Jul 2025 15:43:55 -0400 Subject: [PATCH 44/74] feat(FDN-547): Add API request headers for MCP server tracking (#464) * feat: add MCP API headers to requests * feat: add headers.ts file --- src/api/apiClient.ts | 2 +- src/mcp/index.ts | 9 ++++++++- src/mcp/utils/api.ts | 4 ++++ src/mcp/utils/headers.ts | 29 +++++++++++++++++++++++++++++ 4 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 src/mcp/utils/headers.ts diff --git a/src/api/apiClient.ts b/src/api/apiClient.ts index a77369f21..1dc611c65 100644 --- a/src/api/apiClient.ts +++ b/src/api/apiClient.ts @@ -12,7 +12,7 @@ export const setDVCReferrer = ( version: string, caller = 'cli', ): void => { - axiosClient.defaults.headers.common['dvc-referrer'] = 'cli' + axiosClient.defaults.headers.common['dvc-referrer'] = caller // Ensure we have valid values before stringifying const metadata = { diff --git a/src/mcp/index.ts b/src/mcp/index.ts index f21ac9a26..03027efb7 100644 --- a/src/mcp/index.ts +++ b/src/mcp/index.ts @@ -5,6 +5,7 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js' import { DevCycleMCPServer } from './server' import { readFileSync } from 'fs' import { join } from 'path' +import { setMCPHeaders } from './utils/headers' // Get version for MCP server function getVersion(): string { @@ -46,10 +47,16 @@ if (args.includes('--help') || args.includes('-h')) { } async function main() { + const version = getVersion() + + // Set up MCP-specific headers for all API requests + // This ensures that requests from the MCP server are properly identified + setMCPHeaders(version) + const server = new Server( { name: 'devcycle', - version: getVersion(), + version, }, { capabilities: { diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index 3a7745965..75d5888f7 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -1,4 +1,5 @@ import { DevCycleAuth } from './auth' +import { setMCPToolCommand } from './headers' /** * Utility function to handle Zodios validation errors by extracting response data @@ -101,6 +102,9 @@ export class DevCycleApiClient { this.auth.requireProject() } + // Set the specific MCP tool command in headers before making API calls + setMCPToolCommand(operationName) + const authToken = this.auth.getAuthToken() const projectKey = requiresProject ? this.auth.getProjectKey() : '' return await operation(authToken, projectKey) diff --git a/src/mcp/utils/headers.ts b/src/mcp/utils/headers.ts new file mode 100644 index 000000000..2ec4aa63e --- /dev/null +++ b/src/mcp/utils/headers.ts @@ -0,0 +1,29 @@ +import { setDVCReferrer } from '../../api/apiClient' + +// Store the version for reuse in tool commands +let mcpVersion: string = 'unknown' + +/** + * Sets up MCP-specific headers for all API requests + * This ensures that API calls made from the MCP server are properly identified + * and can be tracked separately from CLI commands + */ +export function setMCPHeaders(version: string): void { + // Store version for later use in tool commands + mcpVersion = version + + // Set the referrer to identify this as an MCP request + // Command will be set dynamically for each tool call + // Caller is 'mcp' to distinguish from 'cli' and other callers + setDVCReferrer('mcp', version, 'mcp') +} + +/** + * Updates the command in the headers for a specific MCP tool call + * This allows tracking of individual MCP operations (e.g., "list_features", "create_project") + * @param toolName - The name of the MCP tool being called + */ +export function setMCPToolCommand(toolName: string): void { + // Update the command to be the tool name, keeping version and caller the same + setDVCReferrer(toolName, mcpVersion, 'mcp') +} From 1ba34b414dfb7e3358de51a59174fe63c9a893f9 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Wed, 23 Jul 2025 12:03:30 -0400 Subject: [PATCH 45/74] chore: set yarn version to 4.9.2 --- .yarn/releases/yarn-4.4.0.cjs | 925 ---------------------------------- .yarnrc.yml | 2 +- yarn.lock | 4 +- 3 files changed, 3 insertions(+), 928 deletions(-) delete mode 100755 .yarn/releases/yarn-4.4.0.cjs diff --git a/.yarn/releases/yarn-4.4.0.cjs b/.yarn/releases/yarn-4.4.0.cjs deleted file mode 100755 index a735b8acc..000000000 --- a/.yarn/releases/yarn-4.4.0.cjs +++ /dev/null @@ -1,925 +0,0 @@ -#!/usr/bin/env node -/* eslint-disable */ -//prettier-ignore -(()=>{var t_e=Object.create;var vR=Object.defineProperty;var r_e=Object.getOwnPropertyDescriptor;var n_e=Object.getOwnPropertyNames;var i_e=Object.getPrototypeOf,s_e=Object.prototype.hasOwnProperty;var ve=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var Et=(t,e)=>()=>(t&&(e=t(t=0)),e);var _=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Vt=(t,e)=>{for(var r in e)vR(t,r,{get:e[r],enumerable:!0})},o_e=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of n_e(e))!s_e.call(t,a)&&a!==r&&vR(t,a,{get:()=>e[a],enumerable:!(o=r_e(e,a))||o.enumerable});return t};var Ze=(t,e,r)=>(r=t!=null?t_e(i_e(t)):{},o_e(e||!t||!t.__esModule?vR(r,"default",{value:t,enumerable:!0}):r,t));var Bi={};Vt(Bi,{SAFE_TIME:()=>D7,S_IFDIR:()=>iD,S_IFLNK:()=>sD,S_IFMT:()=>Uu,S_IFREG:()=>Dw});var Uu,iD,Dw,sD,D7,P7=Et(()=>{Uu=61440,iD=16384,Dw=32768,sD=40960,D7=456789e3});var nr={};Vt(nr,{EBADF:()=>Io,EBUSY:()=>a_e,EEXIST:()=>p_e,EINVAL:()=>c_e,EISDIR:()=>f_e,ENOENT:()=>u_e,ENOSYS:()=>l_e,ENOTDIR:()=>A_e,ENOTEMPTY:()=>g_e,EOPNOTSUPP:()=>d_e,EROFS:()=>h_e,ERR_DIR_CLOSED:()=>DR});function Tl(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function a_e(t){return Tl("EBUSY",t)}function l_e(t,e){return Tl("ENOSYS",`${t}, ${e}`)}function c_e(t){return Tl("EINVAL",`invalid argument, ${t}`)}function Io(t){return Tl("EBADF",`bad file descriptor, ${t}`)}function u_e(t){return Tl("ENOENT",`no such file or directory, ${t}`)}function A_e(t){return Tl("ENOTDIR",`not a directory, ${t}`)}function f_e(t){return Tl("EISDIR",`illegal operation on a directory, ${t}`)}function p_e(t){return Tl("EEXIST",`file already exists, ${t}`)}function h_e(t){return Tl("EROFS",`read-only filesystem, ${t}`)}function g_e(t){return Tl("ENOTEMPTY",`directory not empty, ${t}`)}function d_e(t){return Tl("EOPNOTSUPP",`operation not supported, ${t}`)}function DR(){return Tl("ERR_DIR_CLOSED","Directory handle was closed")}var oD=Et(()=>{});var wa={};Vt(wa,{BigIntStatsEntry:()=>qd,DEFAULT_MODE:()=>bR,DirEntry:()=>PR,StatEntry:()=>Hd,areStatsEqual:()=>xR,clearStats:()=>aD,convertToBigIntStats:()=>y_e,makeDefaultStats:()=>S7,makeEmptyStats:()=>m_e});function S7(){return new Hd}function m_e(){return aD(S7())}function aD(t){for(let e in t)if(Object.hasOwn(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):SR.types.isDate(r)&&(t[e]=new Date(0))}return t}function y_e(t){let e=new qd;for(let r in t)if(Object.hasOwn(t,r)){let o=t[r];typeof o=="number"?e[r]=BigInt(o):SR.types.isDate(o)&&(e[r]=new Date(o))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function xR(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,o=e;return!(r.atimeNs!==o.atimeNs||r.mtimeNs!==o.mtimeNs||r.ctimeNs!==o.ctimeNs||r.birthtimeNs!==o.birthtimeNs)}var SR,bR,PR,Hd,qd,kR=Et(()=>{SR=Ze(ve("util")),bR=33188,PR=class{constructor(){this.name="";this.path="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Hd=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=bR;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},qd=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(bR);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}}});function B_e(t){let e,r;if(e=t.match(w_e))t=e[1];else if(r=t.match(I_e))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function v_e(t){t=t.replace(/\\/g,"/");let e,r;return(e=t.match(E_e))?t=`/${e[1]}`:(r=t.match(C_e))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t}function lD(t,e){return t===ue?x7(e):QR(e)}var Pw,It,dr,ue,K,b7,E_e,C_e,w_e,I_e,QR,x7,Ia=Et(()=>{Pw=Ze(ve("path")),It={root:"/",dot:".",parent:".."},dr={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml",env:".env"},ue=Object.create(Pw.default),K=Object.create(Pw.default.posix);ue.cwd=()=>process.cwd();K.cwd=process.platform==="win32"?()=>QR(process.cwd()):process.cwd;process.platform==="win32"&&(K.resolve=(...t)=>t.length>0&&K.isAbsolute(t[0])?Pw.default.posix.resolve(...t):Pw.default.posix.resolve(K.cwd(),...t));b7=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};ue.contains=(t,e)=>b7(ue,t,e);K.contains=(t,e)=>b7(K,t,e);E_e=/^([a-zA-Z]:.*)$/,C_e=/^\/\/(\.\/)?(.*)$/,w_e=/^\/([a-zA-Z]:.*)$/,I_e=/^\/unc\/(\.dot\/)?(.*)$/;QR=process.platform==="win32"?v_e:t=>t,x7=process.platform==="win32"?B_e:t=>t;ue.fromPortablePath=x7;ue.toPortablePath=QR});async function cD(t,e){let r="0123456789abcdef";await t.mkdirPromise(e.indexPath,{recursive:!0});let o=[];for(let a of r)for(let n of r)o.push(t.mkdirPromise(t.pathUtils.join(e.indexPath,`${a}${n}`),{recursive:!0}));return await Promise.all(o),e.indexPath}async function k7(t,e,r,o,a){let n=t.pathUtils.normalize(e),u=r.pathUtils.normalize(o),A=[],p=[],{atime:h,mtime:E}=a.stableTime?{atime:R0,mtime:R0}:await r.lstatPromise(u);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[h,E]}),await FR(A,p,t,n,r,u,{...a,didParentExist:!0});for(let I of A)await I();await Promise.all(p.map(I=>I()))}async function FR(t,e,r,o,a,n,u){let A=u.didParentExist?await Q7(r,o):null,p=await a.lstatPromise(n),{atime:h,mtime:E}=u.stableTime?{atime:R0,mtime:R0}:p,I;switch(!0){case p.isDirectory():I=await P_e(t,e,r,o,A,a,n,p,u);break;case p.isFile():I=await x_e(t,e,r,o,A,a,n,p,u);break;case p.isSymbolicLink():I=await k_e(t,e,r,o,A,a,n,p,u);break;default:throw new Error(`Unsupported file type (${p.mode})`)}return(u.linkStrategy?.type!=="HardlinkFromIndex"||!p.isFile())&&((I||A?.mtime?.getTime()!==E.getTime()||A?.atime?.getTime()!==h.getTime())&&(e.push(()=>r.lutimesPromise(o,h,E)),I=!0),(A===null||(A.mode&511)!==(p.mode&511))&&(e.push(()=>r.chmodPromise(o,p.mode&511)),I=!0)),I}async function Q7(t,e){try{return await t.lstatPromise(e)}catch{return null}}async function P_e(t,e,r,o,a,n,u,A,p){if(a!==null&&!a.isDirectory())if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;let h=!1;a===null&&(t.push(async()=>{try{await r.mkdirPromise(o,{mode:A.mode})}catch(v){if(v.code!=="EEXIST")throw v}}),h=!0);let E=await n.readdirPromise(u),I=p.didParentExist&&!a?{...p,didParentExist:!1}:p;if(p.stableSort)for(let v of E.sort())await FR(t,e,r,r.pathUtils.join(o,v),n,n.pathUtils.join(u,v),I)&&(h=!0);else(await Promise.all(E.map(async x=>{await FR(t,e,r,r.pathUtils.join(o,x),n,n.pathUtils.join(u,x),I)}))).some(x=>x)&&(h=!0);return h}async function S_e(t,e,r,o,a,n,u,A,p,h){let E=await n.checksumFilePromise(u,{algorithm:"sha1"}),I=420,v=A.mode&511,x=`${E}${v!==I?v.toString(8):""}`,C=r.pathUtils.join(h.indexPath,E.slice(0,2),`${x}.dat`),R;(ce=>(ce[ce.Lock=0]="Lock",ce[ce.Rename=1]="Rename"))(R||={});let L=1,U=await Q7(r,C);if(a){let ae=U&&a.dev===U.dev&&a.ino===U.ino,le=U?.mtimeMs!==D_e;if(ae&&le&&h.autoRepair&&(L=0,U=null),!ae)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1}let z=!U&&L===1?`${C}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,te=!1;return t.push(async()=>{if(!U&&(L===0&&await r.lockPromise(C,async()=>{let ae=await n.readFilePromise(u);await r.writeFilePromise(C,ae)}),L===1&&z)){let ae=await n.readFilePromise(u);await r.writeFilePromise(z,ae);try{await r.linkPromise(z,C)}catch(le){if(le.code==="EEXIST")te=!0,await r.unlinkPromise(z);else throw le}}a||await r.linkPromise(C,o)}),e.push(async()=>{U||(await r.lutimesPromise(C,R0,R0),v!==I&&await r.chmodPromise(C,v)),z&&!te&&await r.unlinkPromise(z)}),!1}async function b_e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{let h=await n.readFilePromise(u);await r.writeFilePromise(o,h)}),!0}async function x_e(t,e,r,o,a,n,u,A,p){return p.linkStrategy?.type==="HardlinkFromIndex"?S_e(t,e,r,o,a,n,u,A,p,p.linkStrategy):b_e(t,e,r,o,a,n,u,A,p)}async function k_e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{await r.symlinkPromise(lD(r.pathUtils,await n.readlinkPromise(u)),o)}),!0}var R0,D_e,RR=Et(()=>{Ia();R0=new Date(456789e3*1e3),D_e=R0.getTime()});function uD(t,e,r,o){let a=()=>{let n=r.shift();if(typeof n>"u")return null;let u=t.pathUtils.join(e,n);return Object.assign(t.statSync(u),{name:n,path:void 0})};return new Sw(e,a,o)}var Sw,F7=Et(()=>{oD();Sw=class{constructor(e,r,o={}){this.path=e;this.nextDirent=r;this.opts=o;this.closed=!1}throwIfClosed(){if(this.closed)throw DR()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e<"u"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){this.throwIfClosed(),this.opts.onClose?.(),this.closed=!0}}});function R7(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var T7,AD,N7=Et(()=>{T7=ve("events");kR();AD=class t extends T7.EventEmitter{constructor(r,o,{bigint:a=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=r,this.path=o,this.bigint=a,this.lastStats=this.stat()}static create(r,o,a){let n=new t(r,o,a);return n.start(),n}start(){R7(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){R7(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let o=this.bigint?new qd:new Hd;return aD(o)}}makeInterval(r){let o=setInterval(()=>{let a=this.stat(),n=this.lastStats;xR(a,n)||(this.lastStats=a,this.emit("change",a,n))},r.interval);return r.persistent?o:o.unref()}registerChangeListener(r,o){this.addListener("change",r),this.changeListeners.set(r,this.makeInterval(o))}unregisterChangeListener(r){this.removeListener("change",r);let o=this.changeListeners.get(r);typeof o<"u"&&clearInterval(o),this.changeListeners.delete(r)}unregisterAllChangeListeners(){for(let r of this.changeListeners.keys())this.unregisterChangeListener(r)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let r of this.changeListeners.values())r.ref();return this}unref(){for(let r of this.changeListeners.values())r.unref();return this}}});function jd(t,e,r,o){let a,n,u,A;switch(typeof r){case"function":a=!1,n=!0,u=5007,A=r;break;default:({bigint:a=!1,persistent:n=!0,interval:u=5007}=r),A=o;break}let p=fD.get(t);typeof p>"u"&&fD.set(t,p=new Map);let h=p.get(e);return typeof h>"u"&&(h=AD.create(t,e,{bigint:a}),p.set(e,h)),h.registerChangeListener(A,{persistent:n,interval:u}),h}function T0(t,e,r){let o=fD.get(t);if(typeof o>"u")return;let a=o.get(e);typeof a>"u"||(typeof r>"u"?a.unregisterAllChangeListeners():a.unregisterChangeListener(r),a.hasChangeListeners()||(a.stop(),o.delete(e)))}function N0(t){let e=fD.get(t);if(!(typeof e>"u"))for(let r of e.keys())T0(t,r)}var fD,TR=Et(()=>{N7();fD=new WeakMap});function Q_e(t){let e=t.match(/\r?\n/g);if(e===null)return M7.EOL;let r=e.filter(a=>a===`\r -`).length,o=e.length-r;return r>o?`\r -`:` -`}function L0(t,e){return e.replace(/\r?\n/g,Q_e(t))}var L7,M7,hf,_u,M0=Et(()=>{L7=ve("crypto"),M7=ve("os");RR();Ia();hf=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let o=[e];for(;o.length>0;){let a=o.shift();if((await this.lstatPromise(a)).isDirectory()){let u=await this.readdirPromise(a);if(r)for(let A of u.sort())o.push(this.pathUtils.join(a,A));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(e,{algorithm:r="sha512"}={}){let o=await this.openPromise(e,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,L7.createHash)(r),A=0;for(;(A=await this.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await this.closePromise(o)}}async removePromise(e,{recursive:r=!0,maxRetries:o=5}={}){let a;try{a=await this.lstatPromise(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(e);await Promise.all(n.map(u=>this.removePromise(this.pathUtils.resolve(e,u))))}for(let n=0;n<=o;n++)try{await this.rmdirPromise(e);break}catch(u){if(u.code!=="EBUSY"&&u.code!=="ENOTEMPTY")throw u;n<o&&await new Promise(A=>setTimeout(A,n*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let o;try{o=this.lstatSync(e)}catch(a){if(a.code==="ENOENT")return;throw a}if(o.isDirectory()){if(r)for(let a of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,a));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{await this.mkdirPromise(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=A,r!=null&&await this.chmodPromise(A,r),o!=null)await this.utimesPromise(A,o[0],o[1]);else{let p=await this.statPromise(this.pathUtils.dirname(A));await this.utimesPromise(A,p.atime,p.mtime)}}}return n}mkdirpSync(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{this.mkdirSync(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=A,r!=null&&this.chmodSync(A,r),o!=null)this.utimesSync(A,o[0],o[1]);else{let p=this.statSync(this.pathUtils.dirname(A));this.utimesSync(A,p.atime,p.mtime)}}}return n}async copyPromise(e,r,{baseFs:o=this,overwrite:a=!0,stableSort:n=!1,stableTime:u=!1,linkStrategy:A=null}={}){return await k7(this,e,o,r,{overwrite:a,stableSort:n,stableTime:u,linkStrategy:A})}copySync(e,r,{baseFs:o=this,overwrite:a=!0}={}){let n=o.lstatSync(r),u=this.existsSync(e);if(n.isDirectory()){this.mkdirpSync(e);let p=o.readdirSync(r);for(let h of p)this.copySync(this.pathUtils.join(e,h),o.pathUtils.join(r,h),{baseFs:o,overwrite:a})}else if(n.isFile()){if(!u||a){u&&this.removeSync(e);let p=o.readFileSync(r);this.writeFileSync(e,p)}}else if(n.isSymbolicLink()){if(!u||a){u&&this.removeSync(e);let p=o.readlinkSync(r);this.symlinkSync(lD(this.pathUtils,p),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,"0")})`);let A=n.mode&511;this.chmodSync(e,A)}async changeFilePromise(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,o):this.changeFileTextPromise(e,r,o)}async changeFileBufferPromise(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(e)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(e,r,{mode:o})}async changeFileTextPromise(e,r,{automaticNewlines:o,mode:a}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch{}let u=o?L0(n,r):r;n!==u&&await this.writeFilePromise(e,u,{mode:a})}changeFileSync(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,o):this.changeFileTextSync(e,r,o)}changeFileBufferSync(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(e)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(e,r,{mode:o})}changeFileTextSync(e,r,{automaticNewlines:o=!1,mode:a}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch{}let u=o?L0(n,r):r;n!==u&&this.writeFileSync(e,u,{mode:a})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(o){if(o.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw o}}moveSync(e,r){try{this.renameSync(e,r)}catch(o){if(o.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw o}}async lockPromise(e,r){let o=`${e}.flock`,a=1e3/60,n=Date.now(),u=null,A=async()=>{let p;try{[p]=await this.readJsonPromise(o)}catch{return Date.now()-n<500}try{return process.kill(p,0),!0}catch{return!1}};for(;u===null;)try{u=await this.openPromise(o,"wx")}catch(p){if(p.code==="EEXIST"){if(!await A())try{await this.unlinkPromise(o);continue}catch{}if(Date.now()-n<60*1e3)await new Promise(h=>setTimeout(h,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${o})`)}else throw p}await this.writePromise(u,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(u),await this.unlinkPromise(o)}catch{}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}async writeJsonPromise(e,r,{compact:o=!1}={}){let a=o?0:2;return await this.writeFilePromise(e,`${JSON.stringify(r,null,a)} -`)}writeJsonSync(e,r,{compact:o=!1}={}){let a=o?0:2;return this.writeFileSync(e,`${JSON.stringify(r,null,a)} -`)}async preserveTimePromise(e,r){let o=await this.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await this.lutimesPromise(e,o.atime,o.mtime)}async preserveTimeSync(e,r){let o=this.lstatSync(e),a=r();typeof a<"u"&&(e=a),this.lutimesSync(e,o.atime,o.mtime)}},_u=class extends hf{constructor(){super(K)}}});var bs,gf=Et(()=>{M0();bs=class extends hf{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,o){return this.baseFs.openPromise(this.mapToBase(e),r,o)}openSync(e,r,o){return this.baseFs.openSync(this.mapToBase(e),r,o)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,o,a,n){return await this.baseFs.readPromise(e,r,o,a,n)}readSync(e,r,o,a,n){return this.baseFs.readSync(e,r,o,a,n)}async writePromise(e,r,o,a,n){return typeof r=="string"?await this.baseFs.writePromise(e,r,o):await this.baseFs.writePromise(e,r,o,a,n)}writeSync(e,r,o,a,n){return typeof r=="string"?this.baseFs.writeSync(e,r,o):this.baseFs.writeSync(e,r,o,a,n)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async fchownPromise(e,r,o){return this.baseFs.fchownPromise(e,r,o)}fchownSync(e,r,o){return this.baseFs.fchownSync(e,r,o)}async chownPromise(e,r,o){return this.baseFs.chownPromise(this.mapToBase(e),r,o)}chownSync(e,r,o){return this.baseFs.chownSync(this.mapToBase(e),r,o)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,o=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),o)}copyFileSync(e,r,o=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),o)}async appendFilePromise(e,r,o){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,o)}appendFileSync(e,r,o){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,o)}async writeFilePromise(e,r,o){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,o)}writeFileSync(e,r,o){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,o)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,o){return this.baseFs.utimesPromise(this.mapToBase(e),r,o)}utimesSync(e,r,o){return this.baseFs.utimesSync(this.mapToBase(e),r,o)}async lutimesPromise(e,r,o){return this.baseFs.lutimesPromise(this.mapToBase(e),r,o)}lutimesSync(e,r,o){return this.baseFs.lutimesSync(this.mapToBase(e),r,o)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async rmPromise(e,r){return this.baseFs.rmPromise(this.mapToBase(e),r)}rmSync(e,r){return this.baseFs.rmSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkPromise(u,a,o)}symlinkSync(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkSync(u,a,o)}async readFilePromise(e,r){return this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return this.baseFs.readFileSync(this.fsMapToBase(e),r)}readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}async ftruncatePromise(e,r){return this.baseFs.ftruncatePromise(e,r)}ftruncateSync(e,r){return this.baseFs.ftruncateSync(e,r)}watch(e,r,o){return this.baseFs.watch(this.mapToBase(e),r,o)}watchFile(e,r,o){return this.baseFs.watchFile(this.mapToBase(e),r,o)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}}});var Hu,O7=Et(()=>{gf();Hu=class extends bs{constructor(e,{baseFs:r,pathUtils:o}){super(o),this.target=e,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}}});function U7(t){let e=t;return typeof t.path=="string"&&(e.path=ue.toPortablePath(t.path)),e}var _7,Tn,O0=Et(()=>{_7=Ze(ve("fs"));M0();Ia();Tn=class extends _u{constructor(e=_7.default){super(),this.realFs=e}getExtractHint(){return!1}getRealPath(){return It.root}resolve(e){return K.resolve(e)}async openPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.open(ue.fromPortablePath(e),r,o,this.makeCallback(a,n))})}openSync(e,r,o){return this.realFs.openSync(ue.fromPortablePath(e),r,o)}async opendirPromise(e,r){return await new Promise((o,a)=>{typeof r<"u"?this.realFs.opendir(ue.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.opendir(ue.fromPortablePath(e),this.makeCallback(o,a))}).then(o=>{let a=o;return Object.defineProperty(a,"path",{value:e,configurable:!0,writable:!0}),a})}opendirSync(e,r){let a=typeof r<"u"?this.realFs.opendirSync(ue.fromPortablePath(e),r):this.realFs.opendirSync(ue.fromPortablePath(e));return Object.defineProperty(a,"path",{value:e,configurable:!0,writable:!0}),a}async readPromise(e,r,o=0,a=0,n=-1){return await new Promise((u,A)=>{this.realFs.read(e,r,o,a,n,(p,h)=>{p?A(p):u(h)})})}readSync(e,r,o,a,n){return this.realFs.readSync(e,r,o,a,n)}async writePromise(e,r,o,a,n){return await new Promise((u,A)=>typeof r=="string"?this.realFs.write(e,r,o,this.makeCallback(u,A)):this.realFs.write(e,r,o,a,n,this.makeCallback(u,A)))}writeSync(e,r,o,a,n){return typeof r=="string"?this.realFs.writeSync(e,r,o):this.realFs.writeSync(e,r,o,a,n)}async closePromise(e){await new Promise((r,o)=>{this.realFs.close(e,this.makeCallback(r,o))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,r){let o=e!==null?ue.fromPortablePath(e):e;return this.realFs.createReadStream(o,r)}createWriteStream(e,r){let o=e!==null?ue.fromPortablePath(e):e;return this.realFs.createWriteStream(o,r)}async realpathPromise(e){return await new Promise((r,o)=>{this.realFs.realpath(ue.fromPortablePath(e),{},this.makeCallback(r,o))}).then(r=>ue.toPortablePath(r))}realpathSync(e){return ue.toPortablePath(this.realFs.realpathSync(ue.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(r=>{this.realFs.exists(ue.fromPortablePath(e),r)})}accessSync(e,r){return this.realFs.accessSync(ue.fromPortablePath(e),r)}async accessPromise(e,r){return await new Promise((o,a)=>{this.realFs.access(ue.fromPortablePath(e),r,this.makeCallback(o,a))})}existsSync(e){return this.realFs.existsSync(ue.fromPortablePath(e))}async statPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.stat(ue.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.stat(ue.fromPortablePath(e),this.makeCallback(o,a))})}statSync(e,r){return r?this.realFs.statSync(ue.fromPortablePath(e),r):this.realFs.statSync(ue.fromPortablePath(e))}async fstatPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.fstat(e,r,this.makeCallback(o,a)):this.realFs.fstat(e,this.makeCallback(o,a))})}fstatSync(e,r){return r?this.realFs.fstatSync(e,r):this.realFs.fstatSync(e)}async lstatPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.lstat(ue.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.lstat(ue.fromPortablePath(e),this.makeCallback(o,a))})}lstatSync(e,r){return r?this.realFs.lstatSync(ue.fromPortablePath(e),r):this.realFs.lstatSync(ue.fromPortablePath(e))}async fchmodPromise(e,r){return await new Promise((o,a)=>{this.realFs.fchmod(e,r,this.makeCallback(o,a))})}fchmodSync(e,r){return this.realFs.fchmodSync(e,r)}async chmodPromise(e,r){return await new Promise((o,a)=>{this.realFs.chmod(ue.fromPortablePath(e),r,this.makeCallback(o,a))})}chmodSync(e,r){return this.realFs.chmodSync(ue.fromPortablePath(e),r)}async fchownPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.fchown(e,r,o,this.makeCallback(a,n))})}fchownSync(e,r,o){return this.realFs.fchownSync(e,r,o)}async chownPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.chown(ue.fromPortablePath(e),r,o,this.makeCallback(a,n))})}chownSync(e,r,o){return this.realFs.chownSync(ue.fromPortablePath(e),r,o)}async renamePromise(e,r){return await new Promise((o,a)=>{this.realFs.rename(ue.fromPortablePath(e),ue.fromPortablePath(r),this.makeCallback(o,a))})}renameSync(e,r){return this.realFs.renameSync(ue.fromPortablePath(e),ue.fromPortablePath(r))}async copyFilePromise(e,r,o=0){return await new Promise((a,n)=>{this.realFs.copyFile(ue.fromPortablePath(e),ue.fromPortablePath(r),o,this.makeCallback(a,n))})}copyFileSync(e,r,o=0){return this.realFs.copyFileSync(ue.fromPortablePath(e),ue.fromPortablePath(r),o)}async appendFilePromise(e,r,o){return await new Promise((a,n)=>{let u=typeof e=="string"?ue.fromPortablePath(e):e;o?this.realFs.appendFile(u,r,o,this.makeCallback(a,n)):this.realFs.appendFile(u,r,this.makeCallback(a,n))})}appendFileSync(e,r,o){let a=typeof e=="string"?ue.fromPortablePath(e):e;o?this.realFs.appendFileSync(a,r,o):this.realFs.appendFileSync(a,r)}async writeFilePromise(e,r,o){return await new Promise((a,n)=>{let u=typeof e=="string"?ue.fromPortablePath(e):e;o?this.realFs.writeFile(u,r,o,this.makeCallback(a,n)):this.realFs.writeFile(u,r,this.makeCallback(a,n))})}writeFileSync(e,r,o){let a=typeof e=="string"?ue.fromPortablePath(e):e;o?this.realFs.writeFileSync(a,r,o):this.realFs.writeFileSync(a,r)}async unlinkPromise(e){return await new Promise((r,o)=>{this.realFs.unlink(ue.fromPortablePath(e),this.makeCallback(r,o))})}unlinkSync(e){return this.realFs.unlinkSync(ue.fromPortablePath(e))}async utimesPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.utimes(ue.fromPortablePath(e),r,o,this.makeCallback(a,n))})}utimesSync(e,r,o){this.realFs.utimesSync(ue.fromPortablePath(e),r,o)}async lutimesPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.lutimes(ue.fromPortablePath(e),r,o,this.makeCallback(a,n))})}lutimesSync(e,r,o){this.realFs.lutimesSync(ue.fromPortablePath(e),r,o)}async mkdirPromise(e,r){return await new Promise((o,a)=>{this.realFs.mkdir(ue.fromPortablePath(e),r,this.makeCallback(o,a))})}mkdirSync(e,r){return this.realFs.mkdirSync(ue.fromPortablePath(e),r)}async rmdirPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.rmdir(ue.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.rmdir(ue.fromPortablePath(e),this.makeCallback(o,a))})}rmdirSync(e,r){return this.realFs.rmdirSync(ue.fromPortablePath(e),r)}async rmPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.rm(ue.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.rm(ue.fromPortablePath(e),this.makeCallback(o,a))})}rmSync(e,r){return this.realFs.rmSync(ue.fromPortablePath(e),r)}async linkPromise(e,r){return await new Promise((o,a)=>{this.realFs.link(ue.fromPortablePath(e),ue.fromPortablePath(r),this.makeCallback(o,a))})}linkSync(e,r){return this.realFs.linkSync(ue.fromPortablePath(e),ue.fromPortablePath(r))}async symlinkPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.symlink(ue.fromPortablePath(e.replace(/\/+$/,"")),ue.fromPortablePath(r),o,this.makeCallback(a,n))})}symlinkSync(e,r,o){return this.realFs.symlinkSync(ue.fromPortablePath(e.replace(/\/+$/,"")),ue.fromPortablePath(r),o)}async readFilePromise(e,r){return await new Promise((o,a)=>{let n=typeof e=="string"?ue.fromPortablePath(e):e;this.realFs.readFile(n,r,this.makeCallback(o,a))})}readFileSync(e,r){let o=typeof e=="string"?ue.fromPortablePath(e):e;return this.realFs.readFileSync(o,r)}async readdirPromise(e,r){return await new Promise((o,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(ue.fromPortablePath(e),r,this.makeCallback(n=>o(n.map(U7)),a)):this.realFs.readdir(ue.fromPortablePath(e),r,this.makeCallback(n=>o(n.map(ue.toPortablePath)),a)):this.realFs.readdir(ue.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.readdir(ue.fromPortablePath(e),this.makeCallback(o,a))})}readdirSync(e,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(ue.fromPortablePath(e),r).map(U7):this.realFs.readdirSync(ue.fromPortablePath(e),r).map(ue.toPortablePath):this.realFs.readdirSync(ue.fromPortablePath(e),r):this.realFs.readdirSync(ue.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((r,o)=>{this.realFs.readlink(ue.fromPortablePath(e),this.makeCallback(r,o))}).then(r=>ue.toPortablePath(r))}readlinkSync(e){return ue.toPortablePath(this.realFs.readlinkSync(ue.fromPortablePath(e)))}async truncatePromise(e,r){return await new Promise((o,a)=>{this.realFs.truncate(ue.fromPortablePath(e),r,this.makeCallback(o,a))})}truncateSync(e,r){return this.realFs.truncateSync(ue.fromPortablePath(e),r)}async ftruncatePromise(e,r){return await new Promise((o,a)=>{this.realFs.ftruncate(e,r,this.makeCallback(o,a))})}ftruncateSync(e,r){return this.realFs.ftruncateSync(e,r)}watch(e,r,o){return this.realFs.watch(ue.fromPortablePath(e),r,o)}watchFile(e,r,o){return this.realFs.watchFile(ue.fromPortablePath(e),r,o)}unwatchFile(e,r){return this.realFs.unwatchFile(ue.fromPortablePath(e),r)}makeCallback(e,r){return(o,a)=>{o?r(o):e(a)}}}});var gn,H7=Et(()=>{O0();gf();Ia();gn=class extends bs{constructor(e,{baseFs:r=new Tn}={}){super(K),this.target=this.pathUtils.normalize(e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?K.normalize(e):this.baseFs.resolve(K.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}}});var q7,qu,j7=Et(()=>{O0();gf();Ia();q7=It.root,qu=class extends bs{constructor(e,{baseFs:r=new Tn}={}){super(K),this.target=this.pathUtils.resolve(It.root,e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(It.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){let r=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(q7,e));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(q7,this.pathUtils.relative(this.target,e))}}});var Gd,G7=Et(()=>{gf();Gd=class extends bs{constructor(r,o){super(o);this.instance=null;this.factory=r}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(r){this.instance=r}mapFromBase(r){return r}mapToBase(r){return r}}});var U0,Ba,Op,Y7=Et(()=>{U0=ve("fs");M0();O0();TR();oD();Ia();Ba=4278190080,Op=class extends _u{constructor({baseFs:r=new Tn,filter:o=null,magicByte:a=42,maxOpenFiles:n=1/0,useCache:u=!0,maxAge:A=5e3,typeCheck:p=U0.constants.S_IFREG,getMountPoint:h,factoryPromise:E,factorySync:I}){if(Math.floor(a)!==a||!(a>1&&a<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super();this.fdMap=new Map;this.nextFd=3;this.isMount=new Set;this.notMount=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.baseFs=r,this.mountInstances=u?new Map:null,this.factoryPromise=E,this.factorySync=I,this.filter=o,this.getMountPoint=h,this.magic=a<<24,this.maxAge=A,this.maxOpenFiles=n,this.typeCheck=p}getExtractHint(r){return this.baseFs.getExtractHint(r)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(N0(this),this.mountInstances)for(let[r,{childFs:o}]of this.mountInstances.entries())o.saveAndClose?.(),this.mountInstances.delete(r)}discardAndClose(){if(N0(this),this.mountInstances)for(let[r,{childFs:o}]of this.mountInstances.entries())o.discardAndClose?.(),this.mountInstances.delete(r)}resolve(r){return this.baseFs.resolve(r)}remapFd(r,o){let a=this.nextFd++|this.magic;return this.fdMap.set(a,[r,o]),a}async openPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.openPromise(r,o,a),async(n,{subPath:u})=>this.remapFd(n,await n.openPromise(u,o,a)))}openSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.openSync(r,o,a),(n,{subPath:u})=>this.remapFd(n,n.openSync(u,o,a)))}async opendirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.opendirPromise(r,o),async(a,{subPath:n})=>await a.opendirPromise(n,o),{requireSubpath:!1})}opendirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.opendirSync(r,o),(a,{subPath:n})=>a.opendirSync(n,o),{requireSubpath:!1})}async readPromise(r,o,a,n,u){if((r&Ba)!==this.magic)return await this.baseFs.readPromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("read");let[p,h]=A;return await p.readPromise(h,o,a,n,u)}readSync(r,o,a,n,u){if((r&Ba)!==this.magic)return this.baseFs.readSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("readSync");let[p,h]=A;return p.readSync(h,o,a,n,u)}async writePromise(r,o,a,n,u){if((r&Ba)!==this.magic)return typeof o=="string"?await this.baseFs.writePromise(r,o,a):await this.baseFs.writePromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("write");let[p,h]=A;return typeof o=="string"?await p.writePromise(h,o,a):await p.writePromise(h,o,a,n,u)}writeSync(r,o,a,n,u){if((r&Ba)!==this.magic)return typeof o=="string"?this.baseFs.writeSync(r,o,a):this.baseFs.writeSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("writeSync");let[p,h]=A;return typeof o=="string"?p.writeSync(h,o,a):p.writeSync(h,o,a,n,u)}async closePromise(r){if((r&Ba)!==this.magic)return await this.baseFs.closePromise(r);let o=this.fdMap.get(r);if(typeof o>"u")throw Io("close");this.fdMap.delete(r);let[a,n]=o;return await a.closePromise(n)}closeSync(r){if((r&Ba)!==this.magic)return this.baseFs.closeSync(r);let o=this.fdMap.get(r);if(typeof o>"u")throw Io("closeSync");this.fdMap.delete(r);let[a,n]=o;return a.closeSync(n)}createReadStream(r,o){return r===null?this.baseFs.createReadStream(r,o):this.makeCallSync(r,()=>this.baseFs.createReadStream(r,o),(a,{archivePath:n,subPath:u})=>{let A=a.createReadStream(u,o);return A.path=ue.fromPortablePath(this.pathUtils.join(n,u)),A})}createWriteStream(r,o){return r===null?this.baseFs.createWriteStream(r,o):this.makeCallSync(r,()=>this.baseFs.createWriteStream(r,o),(a,{subPath:n})=>a.createWriteStream(n,o))}async realpathPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.realpathPromise(r),async(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=await this.baseFs.realpathPromise(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(It.root,await o.realpathPromise(n)))})}realpathSync(r){return this.makeCallSync(r,()=>this.baseFs.realpathSync(r),(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=this.baseFs.realpathSync(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(It.root,o.realpathSync(n)))})}async existsPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.existsPromise(r),async(o,{subPath:a})=>await o.existsPromise(a))}existsSync(r){return this.makeCallSync(r,()=>this.baseFs.existsSync(r),(o,{subPath:a})=>o.existsSync(a))}async accessPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.accessPromise(r,o),async(a,{subPath:n})=>await a.accessPromise(n,o))}accessSync(r,o){return this.makeCallSync(r,()=>this.baseFs.accessSync(r,o),(a,{subPath:n})=>a.accessSync(n,o))}async statPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.statPromise(r,o),async(a,{subPath:n})=>await a.statPromise(n,o))}statSync(r,o){return this.makeCallSync(r,()=>this.baseFs.statSync(r,o),(a,{subPath:n})=>a.statSync(n,o))}async fstatPromise(r,o){if((r&Ba)!==this.magic)return this.baseFs.fstatPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fstat");let[n,u]=a;return n.fstatPromise(u,o)}fstatSync(r,o){if((r&Ba)!==this.magic)return this.baseFs.fstatSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fstatSync");let[n,u]=a;return n.fstatSync(u,o)}async lstatPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.lstatPromise(r,o),async(a,{subPath:n})=>await a.lstatPromise(n,o))}lstatSync(r,o){return this.makeCallSync(r,()=>this.baseFs.lstatSync(r,o),(a,{subPath:n})=>a.lstatSync(n,o))}async fchmodPromise(r,o){if((r&Ba)!==this.magic)return this.baseFs.fchmodPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fchmod");let[n,u]=a;return n.fchmodPromise(u,o)}fchmodSync(r,o){if((r&Ba)!==this.magic)return this.baseFs.fchmodSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fchmodSync");let[n,u]=a;return n.fchmodSync(u,o)}async chmodPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.chmodPromise(r,o),async(a,{subPath:n})=>await a.chmodPromise(n,o))}chmodSync(r,o){return this.makeCallSync(r,()=>this.baseFs.chmodSync(r,o),(a,{subPath:n})=>a.chmodSync(n,o))}async fchownPromise(r,o,a){if((r&Ba)!==this.magic)return this.baseFs.fchownPromise(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Io("fchown");let[u,A]=n;return u.fchownPromise(A,o,a)}fchownSync(r,o,a){if((r&Ba)!==this.magic)return this.baseFs.fchownSync(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Io("fchownSync");let[u,A]=n;return u.fchownSync(A,o,a)}async chownPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.chownPromise(r,o,a),async(n,{subPath:u})=>await n.chownPromise(u,o,a))}chownSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.chownSync(r,o,a),(n,{subPath:u})=>n.chownSync(u,o,a))}async renamePromise(r,o){return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.renamePromise(r,o),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(a,{subPath:n})=>await this.makeCallPromise(o,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await a.renamePromise(n,A)}))}renameSync(r,o){return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.renameSync(r,o),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(a,{subPath:n})=>this.makeCallSync(o,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return a.renameSync(n,A)}))}async copyFilePromise(r,o,a=0){let n=async(u,A,p,h)=>{if(a&U0.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&U0.constants.COPYFILE_EXCL&&await this.existsPromise(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let E;try{E=await u.readFilePromise(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}await p.writeFilePromise(h,E)};return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.copyFilePromise(r,o,a),async(u,{subPath:A})=>await n(this.baseFs,r,u,A)),async(u,{subPath:A})=>await this.makeCallPromise(o,async()=>await n(u,A,this.baseFs,o),async(p,{subPath:h})=>u!==p?await n(u,A,p,h):await u.copyFilePromise(A,h,a)))}copyFileSync(r,o,a=0){let n=(u,A,p,h)=>{if(a&U0.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&U0.constants.COPYFILE_EXCL&&this.existsSync(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let E;try{E=u.readFileSync(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}p.writeFileSync(h,E)};return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.copyFileSync(r,o,a),(u,{subPath:A})=>n(this.baseFs,r,u,A)),(u,{subPath:A})=>this.makeCallSync(o,()=>n(u,A,this.baseFs,o),(p,{subPath:h})=>u!==p?n(u,A,p,h):u.copyFileSync(A,h,a)))}async appendFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.appendFilePromise(r,o,a),async(n,{subPath:u})=>await n.appendFilePromise(u,o,a))}appendFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.appendFileSync(r,o,a),(n,{subPath:u})=>n.appendFileSync(u,o,a))}async writeFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.writeFilePromise(r,o,a),async(n,{subPath:u})=>await n.writeFilePromise(u,o,a))}writeFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.writeFileSync(r,o,a),(n,{subPath:u})=>n.writeFileSync(u,o,a))}async unlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.unlinkPromise(r),async(o,{subPath:a})=>await o.unlinkPromise(a))}unlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.unlinkSync(r),(o,{subPath:a})=>o.unlinkSync(a))}async utimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.utimesPromise(r,o,a),async(n,{subPath:u})=>await n.utimesPromise(u,o,a))}utimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.utimesSync(r,o,a),(n,{subPath:u})=>n.utimesSync(u,o,a))}async lutimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.lutimesPromise(r,o,a),async(n,{subPath:u})=>await n.lutimesPromise(u,o,a))}lutimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.lutimesSync(r,o,a),(n,{subPath:u})=>n.lutimesSync(u,o,a))}async mkdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.mkdirPromise(r,o),async(a,{subPath:n})=>await a.mkdirPromise(n,o))}mkdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.mkdirSync(r,o),(a,{subPath:n})=>a.mkdirSync(n,o))}async rmdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.rmdirPromise(r,o),async(a,{subPath:n})=>await a.rmdirPromise(n,o))}rmdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.rmdirSync(r,o),(a,{subPath:n})=>a.rmdirSync(n,o))}async rmPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.rmPromise(r,o),async(a,{subPath:n})=>await a.rmPromise(n,o))}rmSync(r,o){return this.makeCallSync(r,()=>this.baseFs.rmSync(r,o),(a,{subPath:n})=>a.rmSync(n,o))}async linkPromise(r,o){return await this.makeCallPromise(o,async()=>await this.baseFs.linkPromise(r,o),async(a,{subPath:n})=>await a.linkPromise(r,n))}linkSync(r,o){return this.makeCallSync(o,()=>this.baseFs.linkSync(r,o),(a,{subPath:n})=>a.linkSync(r,n))}async symlinkPromise(r,o,a){return await this.makeCallPromise(o,async()=>await this.baseFs.symlinkPromise(r,o,a),async(n,{subPath:u})=>await n.symlinkPromise(r,u))}symlinkSync(r,o,a){return this.makeCallSync(o,()=>this.baseFs.symlinkSync(r,o,a),(n,{subPath:u})=>n.symlinkSync(r,u))}async readFilePromise(r,o){return this.makeCallPromise(r,async()=>await this.baseFs.readFilePromise(r,o),async(a,{subPath:n})=>await a.readFilePromise(n,o))}readFileSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readFileSync(r,o),(a,{subPath:n})=>a.readFileSync(n,o))}async readdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.readdirPromise(r,o),async(a,{subPath:n})=>await a.readdirPromise(n,o),{requireSubpath:!1})}readdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readdirSync(r,o),(a,{subPath:n})=>a.readdirSync(n,o),{requireSubpath:!1})}async readlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.readlinkPromise(r),async(o,{subPath:a})=>await o.readlinkPromise(a))}readlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.readlinkSync(r),(o,{subPath:a})=>o.readlinkSync(a))}async truncatePromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.truncatePromise(r,o),async(a,{subPath:n})=>await a.truncatePromise(n,o))}truncateSync(r,o){return this.makeCallSync(r,()=>this.baseFs.truncateSync(r,o),(a,{subPath:n})=>a.truncateSync(n,o))}async ftruncatePromise(r,o){if((r&Ba)!==this.magic)return this.baseFs.ftruncatePromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("ftruncate");let[n,u]=a;return n.ftruncatePromise(u,o)}ftruncateSync(r,o){if((r&Ba)!==this.magic)return this.baseFs.ftruncateSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("ftruncateSync");let[n,u]=a;return n.ftruncateSync(u,o)}watch(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watch(r,o,a),(n,{subPath:u})=>n.watch(u,o,a))}watchFile(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watchFile(r,o,a),()=>jd(this,r,o,a))}unwatchFile(r,o){return this.makeCallSync(r,()=>this.baseFs.unwatchFile(r,o),()=>T0(this,r,o))}async makeCallPromise(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return await o();let u=this.resolve(r),A=this.findMount(u);return A?n&&A.subPath==="/"?await o():await this.getMountPromise(A.archivePath,async p=>await a(p,A)):await o()}makeCallSync(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return o();let u=this.resolve(r),A=this.findMount(u);return!A||n&&A.subPath==="/"?o():this.getMountSync(A.archivePath,p=>a(p,A))}findMount(r){if(this.filter&&!this.filter.test(r))return null;let o="";for(;;){let a=r.substring(o.length),n=this.getMountPoint(a,o);if(!n)return null;if(o=this.pathUtils.join(o,n),!this.isMount.has(o)){if(this.notMount.has(o))continue;try{if(this.typeCheck!==null&&(this.baseFs.lstatSync(o).mode&U0.constants.S_IFMT)!==this.typeCheck){this.notMount.add(o);continue}}catch{return null}this.isMount.add(o)}return{archivePath:o,subPath:this.pathUtils.join(It.root,r.substring(o.length))}}}limitOpenFiles(r){if(this.mountInstances===null)return;let o=Date.now(),a=o+this.maxAge,n=r===null?0:this.mountInstances.size-r;for(let[u,{childFs:A,expiresAt:p,refCount:h}]of this.mountInstances.entries())if(!(h!==0||A.hasOpenFileHandles?.())){if(o>=p){A.saveAndClose?.(),this.mountInstances.delete(u),n-=1;continue}else if(r===null||n<=0){a=p;break}A.saveAndClose?.(),this.mountInstances.delete(u),n-=1}this.limitOpenFilesTimeout===null&&(r===null&&this.mountInstances.size>0||r!==null)&&isFinite(a)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},a-o).unref())}async getMountPromise(r,o){if(this.mountInstances){let a=this.mountInstances.get(r);if(!a){let n=await this.factoryPromise(this.baseFs,r);a=this.mountInstances.get(r),a||(a={childFs:n(),expiresAt:0,refCount:0})}this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,a.refCount+=1;try{return await o(a.childFs)}finally{a.refCount-=1}}else{let a=(await this.factoryPromise(this.baseFs,r))();try{return await o(a)}finally{a.saveAndClose?.()}}}getMountSync(r,o){if(this.mountInstances){let a=this.mountInstances.get(r);return a||(a={childFs:this.factorySync(this.baseFs,r),expiresAt:0,refCount:0}),this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,o(a.childFs)}else{let a=this.factorySync(this.baseFs,r);try{return o(a)}finally{a.saveAndClose?.()}}}}});var Zt,pD,W7=Et(()=>{M0();Ia();Zt=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),pD=class t extends hf{static{this.instance=new t}constructor(){super(K)}getExtractHint(){throw Zt()}getRealPath(){throw Zt()}resolve(){throw Zt()}async openPromise(){throw Zt()}openSync(){throw Zt()}async opendirPromise(){throw Zt()}opendirSync(){throw Zt()}async readPromise(){throw Zt()}readSync(){throw Zt()}async writePromise(){throw Zt()}writeSync(){throw Zt()}async closePromise(){throw Zt()}closeSync(){throw Zt()}createWriteStream(){throw Zt()}createReadStream(){throw Zt()}async realpathPromise(){throw Zt()}realpathSync(){throw Zt()}async readdirPromise(){throw Zt()}readdirSync(){throw Zt()}async existsPromise(e){throw Zt()}existsSync(e){throw Zt()}async accessPromise(){throw Zt()}accessSync(){throw Zt()}async statPromise(){throw Zt()}statSync(){throw Zt()}async fstatPromise(e){throw Zt()}fstatSync(e){throw Zt()}async lstatPromise(e){throw Zt()}lstatSync(e){throw Zt()}async fchmodPromise(){throw Zt()}fchmodSync(){throw Zt()}async chmodPromise(){throw Zt()}chmodSync(){throw Zt()}async fchownPromise(){throw Zt()}fchownSync(){throw Zt()}async chownPromise(){throw Zt()}chownSync(){throw Zt()}async mkdirPromise(){throw Zt()}mkdirSync(){throw Zt()}async rmdirPromise(){throw Zt()}rmdirSync(){throw Zt()}async rmPromise(){throw Zt()}rmSync(){throw Zt()}async linkPromise(){throw Zt()}linkSync(){throw Zt()}async symlinkPromise(){throw Zt()}symlinkSync(){throw Zt()}async renamePromise(){throw Zt()}renameSync(){throw Zt()}async copyFilePromise(){throw Zt()}copyFileSync(){throw Zt()}async appendFilePromise(){throw Zt()}appendFileSync(){throw Zt()}async writeFilePromise(){throw Zt()}writeFileSync(){throw Zt()}async unlinkPromise(){throw Zt()}unlinkSync(){throw Zt()}async utimesPromise(){throw Zt()}utimesSync(){throw Zt()}async lutimesPromise(){throw Zt()}lutimesSync(){throw Zt()}async readFilePromise(){throw Zt()}readFileSync(){throw Zt()}async readlinkPromise(){throw Zt()}readlinkSync(){throw Zt()}async truncatePromise(){throw Zt()}truncateSync(){throw Zt()}async ftruncatePromise(e,r){throw Zt()}ftruncateSync(e,r){throw Zt()}watch(){throw Zt()}watchFile(){throw Zt()}unwatchFile(){throw Zt()}}});var Up,K7=Et(()=>{gf();Ia();Up=class extends bs{constructor(e){super(ue),this.baseFs=e}mapFromBase(e){return ue.fromPortablePath(e)}mapToBase(e){return ue.toPortablePath(e)}}});var F_e,NR,R_e,zs,V7=Et(()=>{O0();gf();Ia();F_e=/^[0-9]+$/,NR=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,R_e=/^([^/]+-)?[a-f0-9]+$/,zs=class t extends bs{static makeVirtualPath(e,r,o){if(K.basename(e)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!K.basename(r).match(R_e))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let n=K.relative(K.dirname(e),o).split("/"),u=0;for(;u<n.length&&n[u]==="..";)u+=1;let A=n.slice(u);return K.join(e,r,String(u),...A)}static resolveVirtual(e){let r=e.match(NR);if(!r||!r[3]&&r[5])return e;let o=K.dirname(r[1]);if(!r[3]||!r[4])return o;if(!F_e.test(r[4]))return e;let n=Number(r[4]),u="../".repeat(n),A=r[5]||".";return t.resolveVirtual(K.join(o,u,A))}constructor({baseFs:e=new Tn}={}){super(K),this.baseFs=e}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}realpathSync(e){let r=e.match(NR);if(!r)return this.baseFs.realpathSync(e);if(!r[5])return e;let o=this.baseFs.realpathSync(this.mapToBase(e));return t.makeVirtualPath(r[1],r[3],o)}async realpathPromise(e){let r=e.match(NR);if(!r)return await this.baseFs.realpathPromise(e);if(!r[5])return e;let o=await this.baseFs.realpathPromise(this.mapToBase(e));return t.makeVirtualPath(r[1],r[3],o)}mapToBase(e){if(e==="")return e;if(this.pathUtils.isAbsolute(e))return t.resolveVirtual(e);let r=t.resolveVirtual(this.baseFs.resolve(It.dot)),o=t.resolveVirtual(this.baseFs.resolve(e));return K.relative(r,o)||It.dot}mapFromBase(e){return e}}});function T_e(t,e){return typeof LR.default.isUtf8<"u"?LR.default.isUtf8(t):Buffer.byteLength(e)===t.byteLength}var LR,z7,J7,hD,X7=Et(()=>{LR=Ze(ve("buffer")),z7=ve("url"),J7=ve("util");gf();Ia();hD=class extends bs{constructor(e){super(ue),this.baseFs=e}mapFromBase(e){return e}mapToBase(e){if(typeof e=="string")return e;if(e instanceof URL)return(0,z7.fileURLToPath)(e);if(Buffer.isBuffer(e)){let r=e.toString();if(!T_e(e,r))throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return r}throw new Error(`Unsupported path type: ${(0,J7.inspect)(e)}`)}}});var rY,Bo,df,_p,gD,dD,Yd,Nc,Lc,Z7,$7,eY,tY,bw,nY=Et(()=>{rY=ve("readline"),Bo=Symbol("kBaseFs"),df=Symbol("kFd"),_p=Symbol("kClosePromise"),gD=Symbol("kCloseResolve"),dD=Symbol("kCloseReject"),Yd=Symbol("kRefs"),Nc=Symbol("kRef"),Lc=Symbol("kUnref"),bw=class{constructor(e,r){this[tY]=1;this[eY]=void 0;this[$7]=void 0;this[Z7]=void 0;this[Bo]=r,this[df]=e}get fd(){return this[df]}async appendFile(e,r){try{this[Nc](this.appendFile);let o=(typeof r=="string"?r:r?.encoding)??void 0;return await this[Bo].appendFilePromise(this.fd,e,o?{encoding:o}:void 0)}finally{this[Lc]()}}async chown(e,r){try{return this[Nc](this.chown),await this[Bo].fchownPromise(this.fd,e,r)}finally{this[Lc]()}}async chmod(e){try{return this[Nc](this.chmod),await this[Bo].fchmodPromise(this.fd,e)}finally{this[Lc]()}}createReadStream(e){return this[Bo].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Bo].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,r,o,a){try{this[Nc](this.read);let n;return Buffer.isBuffer(e)?n=e:(e??={},n=e.buffer??Buffer.alloc(16384),r=e.offset||0,o=e.length??n.byteLength,a=e.position??null),r??=0,o??=0,o===0?{bytesRead:o,buffer:n}:{bytesRead:await this[Bo].readPromise(this.fd,n,r,o,a),buffer:n}}finally{this[Lc]()}}async readFile(e){try{this[Nc](this.readFile);let r=(typeof e=="string"?e:e?.encoding)??void 0;return await this[Bo].readFilePromise(this.fd,r)}finally{this[Lc]()}}readLines(e){return(0,rY.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Nc](this.stat),await this[Bo].fstatPromise(this.fd,e)}finally{this[Lc]()}}async truncate(e){try{return this[Nc](this.truncate),await this[Bo].ftruncatePromise(this.fd,e)}finally{this[Lc]()}}utimes(e,r){throw new Error("Method not implemented.")}async writeFile(e,r){try{this[Nc](this.writeFile);let o=(typeof r=="string"?r:r?.encoding)??void 0;await this[Bo].writeFilePromise(this.fd,e,o)}finally{this[Lc]()}}async write(...e){try{if(this[Nc](this.write),ArrayBuffer.isView(e[0])){let[r,o,a,n]=e;return{bytesWritten:await this[Bo].writePromise(this.fd,r,o??void 0,a??void 0,n??void 0),buffer:r}}else{let[r,o,a]=e;return{bytesWritten:await this[Bo].writePromise(this.fd,r,o,a),buffer:r}}}finally{this[Lc]()}}async writev(e,r){try{this[Nc](this.writev);let o=0;if(typeof r<"u")for(let a of e){let n=await this.write(a,void 0,void 0,r);o+=n.bytesWritten,r+=n.bytesWritten}else for(let a of e){let n=await this.write(a);o+=n.bytesWritten}return{buffers:e,bytesWritten:o}}finally{this[Lc]()}}readv(e,r){throw new Error("Method not implemented.")}close(){if(this[df]===-1)return Promise.resolve();if(this[_p])return this[_p];if(this[Yd]--,this[Yd]===0){let e=this[df];this[df]=-1,this[_p]=this[Bo].closePromise(e).finally(()=>{this[_p]=void 0})}else this[_p]=new Promise((e,r)=>{this[gD]=e,this[dD]=r}).finally(()=>{this[_p]=void 0,this[dD]=void 0,this[gD]=void 0});return this[_p]}[(Bo,df,tY=Yd,eY=_p,$7=gD,Z7=dD,Nc)](e){if(this[df]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=e.name,r}this[Yd]++}[Lc](){if(this[Yd]--,this[Yd]===0){let e=this[df];this[df]=-1,this[Bo].closePromise(e).then(this[gD],this[dD])}}}});function xw(t,e){e=new hD(e);let r=(o,a,n)=>{let u=o[a];o[a]=n,typeof u?.[Wd.promisify.custom]<"u"&&(n[Wd.promisify.custom]=u[Wd.promisify.custom])};{r(t,"exists",(o,...a)=>{let u=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{e.existsPromise(o).then(A=>{u(A)},()=>{u(!1)})})}),r(t,"read",(...o)=>{let[a,n,u,A,p,h]=o;if(o.length<=3){let E={};o.length<3?h=o[1]:(E=o[1],h=o[2]),{buffer:n=Buffer.alloc(16384),offset:u=0,length:A=n.byteLength,position:p}=E}if(u==null&&(u=0),A|=0,A===0){process.nextTick(()=>{h(null,0,n)});return}p==null&&(p=-1),process.nextTick(()=>{e.readPromise(a,n,u,A,p).then(E=>{h(null,E,n)},E=>{h(E,0,n)})})});for(let o of iY){let a=o.replace(/Promise$/,"");if(typeof t[a]>"u")continue;let n=e[o];if(typeof n>"u")continue;r(t,a,(...A)=>{let h=typeof A[A.length-1]=="function"?A.pop():()=>{};process.nextTick(()=>{n.apply(e,A).then(E=>{h(null,E)},E=>{h(E)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",o=>{try{return e.existsSync(o)}catch{return!1}}),r(t,"readSync",(...o)=>{let[a,n,u,A,p]=o;return o.length<=3&&({offset:u=0,length:A=n.byteLength,position:p}=o[2]||{}),u==null&&(u=0),A|=0,A===0?0:(p==null&&(p=-1),e.readSync(a,n,u,A,p))});for(let o of N_e){let a=o;if(typeof t[a]>"u")continue;let n=e[o];typeof n>"u"||r(t,a,n.bind(e))}t.realpathSync.native=t.realpathSync}{let o=t.promises;for(let a of iY){let n=a.replace(/Promise$/,"");if(typeof o[n]>"u")continue;let u=e[a];typeof u>"u"||a!=="open"&&r(o,n,(A,...p)=>A instanceof bw?A[n].apply(A,p):u.call(e,A,...p))}r(o,"open",async(...a)=>{let n=await e.openPromise(...a);return new bw(n,e)})}t.read[Wd.promisify.custom]=async(o,a,...n)=>({bytesRead:await e.readPromise(o,a,...n),buffer:a}),t.write[Wd.promisify.custom]=async(o,a,...n)=>({bytesWritten:await e.writePromise(o,a,...n),buffer:a})}function mD(t,e){let r=Object.create(t);return xw(r,e),r}var Wd,N_e,iY,sY=Et(()=>{Wd=ve("util");X7();nY();N_e=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","rmSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),iY=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","rmPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"])});function oY(t){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${t}${e}`}function aY(){if(MR)return MR;let t=ue.toPortablePath(lY.default.tmpdir()),e=oe.realpathSync(t);return process.once("exit",()=>{oe.rmtempSync()}),MR={tmpdir:t,realTmpdir:e}}var lY,Mc,MR,oe,cY=Et(()=>{lY=Ze(ve("os"));O0();Ia();Mc=new Set,MR=null;oe=Object.assign(new Tn,{detachTemp(t){Mc.delete(t)},mktempSync(t){let{tmpdir:e,realTmpdir:r}=aY();for(;;){let o=oY("xfs-");try{this.mkdirSync(K.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=K.join(r,o);if(Mc.add(a),typeof t>"u")return a;try{return t(a)}finally{if(Mc.has(a)){Mc.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(t){let{tmpdir:e,realTmpdir:r}=aY();for(;;){let o=oY("xfs-");try{await this.mkdirPromise(K.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=K.join(r,o);if(Mc.add(a),typeof t>"u")return a;try{return await t(a)}finally{if(Mc.has(a)){Mc.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(Mc.values()).map(async t=>{try{await oe.removePromise(t,{maxRetries:0}),Mc.delete(t)}catch{}}))},rmtempSync(){for(let t of Mc)try{oe.removeSync(t),Mc.delete(t)}catch{}}})});var kw={};Vt(kw,{AliasFS:()=>Hu,BasePortableFakeFS:()=>_u,CustomDir:()=>Sw,CwdFS:()=>gn,FakeFS:()=>hf,Filename:()=>dr,JailFS:()=>qu,LazyFS:()=>Gd,MountFS:()=>Op,NoFS:()=>pD,NodeFS:()=>Tn,PortablePath:()=>It,PosixFS:()=>Up,ProxiedFS:()=>bs,VirtualFS:()=>zs,constants:()=>Bi,errors:()=>nr,extendFs:()=>mD,normalizeLineEndings:()=>L0,npath:()=>ue,opendir:()=>uD,patchFs:()=>xw,ppath:()=>K,setupCopyIndex:()=>cD,statUtils:()=>wa,unwatchAllFiles:()=>N0,unwatchFile:()=>T0,watchFile:()=>jd,xfs:()=>oe});var Pt=Et(()=>{P7();oD();kR();RR();F7();TR();M0();Ia();Ia();O7();M0();H7();j7();G7();Y7();W7();O0();K7();gf();V7();sY();cY()});var hY=_((fbt,pY)=>{pY.exports=fY;fY.sync=M_e;var uY=ve("fs");function L_e(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var o=0;o<r.length;o++){var a=r[o].toLowerCase();if(a&&t.substr(-a.length).toLowerCase()===a)return!0}return!1}function AY(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:L_e(e,r)}function fY(t,e,r){uY.stat(t,function(o,a){r(o,o?!1:AY(a,t,e))})}function M_e(t,e){return AY(uY.statSync(t),t,e)}});var EY=_((pbt,yY)=>{yY.exports=dY;dY.sync=O_e;var gY=ve("fs");function dY(t,e,r){gY.stat(t,function(o,a){r(o,o?!1:mY(a,e))})}function O_e(t,e){return mY(gY.statSync(t),e)}function mY(t,e){return t.isFile()&&U_e(t,e)}function U_e(t,e){var r=t.mode,o=t.uid,a=t.gid,n=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),u=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),A=parseInt("100",8),p=parseInt("010",8),h=parseInt("001",8),E=A|p,I=r&h||r&p&&a===u||r&A&&o===n||r&E&&n===0;return I}});var wY=_((gbt,CY)=>{var hbt=ve("fs"),yD;process.platform==="win32"||global.TESTING_WINDOWS?yD=hY():yD=EY();CY.exports=OR;OR.sync=__e;function OR(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(o,a){OR(t,e||{},function(n,u){n?a(n):o(u)})})}yD(t,e||{},function(o,a){o&&(o.code==="EACCES"||e&&e.ignoreErrors)&&(o=null,a=!1),r(o,a)})}function __e(t,e){try{return yD.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var bY=_((dbt,SY)=>{var Kd=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",IY=ve("path"),H_e=Kd?";":":",BY=wY(),vY=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),DY=(t,e)=>{let r=e.colon||H_e,o=t.match(/\//)||Kd&&t.match(/\\/)?[""]:[...Kd?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],a=Kd?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",n=Kd?a.split(r):[""];return Kd&&t.indexOf(".")!==-1&&n[0]!==""&&n.unshift(""),{pathEnv:o,pathExt:n,pathExtExe:a}},PY=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:o,pathExt:a,pathExtExe:n}=DY(t,e),u=[],A=h=>new Promise((E,I)=>{if(h===o.length)return e.all&&u.length?E(u):I(vY(t));let v=o[h],x=/^".*"$/.test(v)?v.slice(1,-1):v,C=IY.join(x,t),R=!x&&/^\.[\\\/]/.test(t)?t.slice(0,2)+C:C;E(p(R,h,0))}),p=(h,E,I)=>new Promise((v,x)=>{if(I===a.length)return v(A(E+1));let C=a[I];BY(h+C,{pathExt:n},(R,L)=>{if(!R&&L)if(e.all)u.push(h+C);else return v(h+C);return v(p(h,E,I+1))})});return r?A(0).then(h=>r(null,h),r):A(0)},q_e=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:o,pathExtExe:a}=DY(t,e),n=[];for(let u=0;u<r.length;u++){let A=r[u],p=/^".*"$/.test(A)?A.slice(1,-1):A,h=IY.join(p,t),E=!p&&/^\.[\\\/]/.test(t)?t.slice(0,2)+h:h;for(let I=0;I<o.length;I++){let v=E+o[I];try{if(BY.sync(v,{pathExt:a}))if(e.all)n.push(v);else return v}catch{}}}if(e.all&&n.length)return n;if(e.nothrow)return null;throw vY(t)};SY.exports=PY;PY.sync=q_e});var kY=_((mbt,UR)=>{"use strict";var xY=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(o=>o.toUpperCase()==="PATH")||"Path"};UR.exports=xY;UR.exports.default=xY});var TY=_((ybt,RY)=>{"use strict";var QY=ve("path"),j_e=bY(),G_e=kY();function FY(t,e){let r=t.options.env||process.env,o=process.cwd(),a=t.options.cwd!=null,n=a&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(t.options.cwd)}catch{}let u;try{u=j_e.sync(t.command,{path:r[G_e({env:r})],pathExt:e?QY.delimiter:void 0})}catch{}finally{n&&process.chdir(o)}return u&&(u=QY.resolve(a?t.options.cwd:"",u)),u}function Y_e(t){return FY(t)||FY(t,!0)}RY.exports=Y_e});var NY=_((Ebt,HR)=>{"use strict";var _R=/([()\][%!^"`<>&|;, *?])/g;function W_e(t){return t=t.replace(_R,"^$1"),t}function K_e(t,e){return t=`${t}`,t=t.replace(/(\\*)"/g,'$1$1\\"'),t=t.replace(/(\\*)$/,"$1$1"),t=`"${t}"`,t=t.replace(_R,"^$1"),e&&(t=t.replace(_R,"^$1")),t}HR.exports.command=W_e;HR.exports.argument=K_e});var MY=_((Cbt,LY)=>{"use strict";LY.exports=/^#!(.*)/});var UY=_((wbt,OY)=>{"use strict";var V_e=MY();OY.exports=(t="")=>{let e=t.match(V_e);if(!e)return null;let[r,o]=e[0].replace(/#! ?/,"").split(" "),a=r.split("/").pop();return a==="env"?o:o?`${a} ${o}`:a}});var HY=_((Ibt,_Y)=>{"use strict";var qR=ve("fs"),z_e=UY();function J_e(t){let r=Buffer.alloc(150),o;try{o=qR.openSync(t,"r"),qR.readSync(o,r,0,150,0),qR.closeSync(o)}catch{}return z_e(r.toString())}_Y.exports=J_e});var YY=_((Bbt,GY)=>{"use strict";var X_e=ve("path"),qY=TY(),jY=NY(),Z_e=HY(),$_e=process.platform==="win32",e8e=/\.(?:com|exe)$/i,t8e=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function r8e(t){t.file=qY(t);let e=t.file&&Z_e(t.file);return e?(t.args.unshift(t.file),t.command=e,qY(t)):t.file}function n8e(t){if(!$_e)return t;let e=r8e(t),r=!e8e.test(e);if(t.options.forceShell||r){let o=t8e.test(e);t.command=X_e.normalize(t.command),t.command=jY.command(t.command),t.args=t.args.map(n=>jY.argument(n,o));let a=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${a}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function i8e(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let o={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?o:n8e(o)}GY.exports=i8e});var VY=_((vbt,KY)=>{"use strict";var jR=process.platform==="win32";function GR(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function s8e(t,e){if(!jR)return;let r=t.emit;t.emit=function(o,a){if(o==="exit"){let n=WY(a,e,"spawn");if(n)return r.call(t,"error",n)}return r.apply(t,arguments)}}function WY(t,e){return jR&&t===1&&!e.file?GR(e.original,"spawn"):null}function o8e(t,e){return jR&&t===1&&!e.file?GR(e.original,"spawnSync"):null}KY.exports={hookChildProcess:s8e,verifyENOENT:WY,verifyENOENTSync:o8e,notFoundError:GR}});var KR=_((Dbt,Vd)=>{"use strict";var zY=ve("child_process"),YR=YY(),WR=VY();function JY(t,e,r){let o=YR(t,e,r),a=zY.spawn(o.command,o.args,o.options);return WR.hookChildProcess(a,o),a}function a8e(t,e,r){let o=YR(t,e,r),a=zY.spawnSync(o.command,o.args,o.options);return a.error=a.error||WR.verifyENOENTSync(a.status,o),a}Vd.exports=JY;Vd.exports.spawn=JY;Vd.exports.sync=a8e;Vd.exports._parse=YR;Vd.exports._enoent=WR});var ZY=_((Pbt,XY)=>{"use strict";function l8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function _0(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,_0)}l8e(_0,Error);_0.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I<h.parts.length;I++)E+=h.parts[I]instanceof Array?n(h.parts[I][0])+"-"+n(h.parts[I][1]):n(h.parts[I]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function o(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function u(h){return r[h.type](h)}function A(h){var E=new Array(h.length),I,v;for(I=0;I<h.length;I++)E[I]=u(h[I]);if(E.sort(),E.length>0){for(I=1,v=1;I<E.length;I++)E[I-1]!==E[I]&&(E[v]=E[I],v++);E.length=v}switch(E.length){case 1:return E[0];case 2:return E[0]+" or "+E[1];default:return E.slice(0,-1).join(", ")+", or "+E[E.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+A(t)+" but "+p(e)+" found."};function c8e(t,e){e=e!==void 0?e:{};var r={},o={Start:u0},a=u0,n=function(N){return N||[]},u=function(N,V,re){return[{command:N,type:V}].concat(re||[])},A=function(N,V){return[{command:N,type:V||";"}]},p=function(N){return N},h=";",E=Br(";",!1),I="&",v=Br("&",!1),x=function(N,V){return V?{chain:N,then:V}:{chain:N}},C=function(N,V){return{type:N,line:V}},R="&&",L=Br("&&",!1),U="||",z=Br("||",!1),te=function(N,V){return V?{...N,then:V}:N},ae=function(N,V){return{type:N,chain:V}},le="|&",ce=Br("|&",!1),Ce="|",de=Br("|",!1),Be="=",Ee=Br("=",!1),g=function(N,V){return{name:N,args:[V]}},me=function(N){return{name:N,args:[]}},we="(",Ae=Br("(",!1),ne=")",Z=Br(")",!1),xe=function(N,V){return{type:"subshell",subshell:N,args:V}},Ne="{",ht=Br("{",!1),H="}",rt=Br("}",!1),Te=function(N,V){return{type:"group",group:N,args:V}},Fe=function(N,V){return{type:"command",args:V,envs:N}},ke=function(N){return{type:"envs",envs:N}},Ye=function(N){return N},Se=function(N){return N},et=/^[0-9]/,Ue=Is([["0","9"]],!1,!1),b=function(N,V,re){return{type:"redirection",subtype:V,fd:N!==null?parseInt(N):null,args:[re]}},w=">>",S=Br(">>",!1),y=">&",F=Br(">&",!1),J=">",X=Br(">",!1),$="<<<",ie=Br("<<<",!1),be="<&",Re=Br("<&",!1),at="<",dt=Br("<",!1),jt=function(N){return{type:"argument",segments:[].concat(...N)}},tr=function(N){return N},St="$'",ln=Br("$'",!1),kr="'",mr=Br("'",!1),br=function(N){return[{type:"text",text:N}]},Kr='""',Kn=Br('""',!1),Ms=function(){return{type:"text",text:""}},Ri='"',gs=Br('"',!1),io=function(N){return N},Pi=function(N){return{type:"arithmetic",arithmetic:N,quoted:!0}},Os=function(N){return{type:"shell",shell:N,quoted:!0}},so=function(N){return{type:"variable",...N,quoted:!0}},uc=function(N){return{type:"text",text:N}},Au=function(N){return{type:"arithmetic",arithmetic:N,quoted:!1}},sp=function(N){return{type:"shell",shell:N,quoted:!1}},op=function(N){return{type:"variable",...N,quoted:!1}},Us=function(N){return{type:"glob",pattern:N}},Dn=/^[^']/,oo=Is(["'"],!0,!1),_s=function(N){return N.join("")},ml=/^[^$"]/,yl=Is(["$",'"'],!0,!1),ao=`\\ -`,Vn=Br(`\\ -`,!1),Mn=function(){return""},Ti="\\",On=Br("\\",!1),_i=/^[\\$"`]/,ir=Is(["\\","$",'"',"`"],!1,!1),Me=function(N){return N},ii="\\a",Ha=Br("\\a",!1),hr=function(){return"a"},Ac="\\b",fu=Br("\\b",!1),fc=function(){return"\b"},El=/^[Ee]/,vA=Is(["E","e"],!1,!1),pu=function(){return"\x1B"},Ie="\\f",Tt=Br("\\f",!1),pc=function(){return"\f"},Hi="\\n",hu=Br("\\n",!1),Yt=function(){return` -`},Cl="\\r",DA=Br("\\r",!1),ap=function(){return"\r"},hc="\\t",PA=Br("\\t",!1),Qn=function(){return" "},hi="\\v",gc=Br("\\v",!1),SA=function(){return"\v"},aa=/^[\\'"?]/,Ni=Is(["\\","'",'"',"?"],!1,!1),_o=function(N){return String.fromCharCode(parseInt(N,16))},Xe="\\x",lo=Br("\\x",!1),dc="\\u",gu=Br("\\u",!1),qi="\\U",du=Br("\\U",!1),bA=function(N){return String.fromCodePoint(parseInt(N,16))},qa=/^[0-7]/,mc=Is([["0","7"]],!1,!1),ds=/^[0-9a-fA-f]/,Ht=Is([["0","9"],["a","f"],["A","f"]],!1,!1),Fn=o0(),Ei="{}",la=Br("{}",!1),co=function(){return"{}"},Hs="-",ca=Br("-",!1),ua="+",Ho=Br("+",!1),Ci=".",ms=Br(".",!1),ys=function(N,V,re){return{type:"number",value:(N==="-"?-1:1)*parseFloat(V.join("")+"."+re.join(""))}},Es=function(N,V){return{type:"number",value:(N==="-"?-1:1)*parseInt(V.join(""))}},qs=function(N){return{type:"variable",...N}},Un=function(N){return{type:"variable",name:N}},Pn=function(N){return N},Cs="*",We=Br("*",!1),tt="/",Bt=Br("/",!1),or=function(N,V,re){return{type:V==="*"?"multiplication":"division",right:re}},ee=function(N,V){return V.reduce((re,he)=>({left:re,...he}),N)},ye=function(N,V,re){return{type:V==="+"?"addition":"subtraction",right:re}},Le="$((",ft=Br("$((",!1),pt="))",Nt=Br("))",!1),rr=function(N){return N},$r="$(",ji=Br("$(",!1),rs=function(N){return N},Si="${",qo=Br("${",!1),xA=":-",kA=Br(":-",!1),lp=function(N,V){return{name:N,defaultValue:V}},e0=":-}",mu=Br(":-}",!1),t0=function(N){return{name:N,defaultValue:[]}},yu=":+",uo=Br(":+",!1),QA=function(N,V){return{name:N,alternativeValue:V}},yc=":+}",Aa=Br(":+}",!1),r0=function(N){return{name:N,alternativeValue:[]}},Ec=function(N){return{name:N}},hd="$",n0=Br("$",!1),$n=function(N){return e.isGlobPattern(N)},cp=function(N){return N},i0=/^[a-zA-Z0-9_]/,FA=Is([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),js=function(){return s0()},Eu=/^[$@*?#a-zA-Z0-9_\-]/,ja=Is(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),Gi=/^[()}<>$|&; \t"']/,fa=Is(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),Cu=/^[<>&; \t"']/,ws=Is(["<",">","&",";"," "," ",'"',"'"],!1,!1),Cc=/^[ \t]/,wc=Is([" "," "],!1,!1),Y=0,Dt=0,wl=[{line:1,column:1}],bi=0,Ic=[],ct=0,wu;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function s0(){return t.substring(Dt,Y)}function tw(){return Bc(Dt,Y)}function RA(N,V){throw V=V!==void 0?V:Bc(Dt,Y),c0([l0(N)],t.substring(Dt,Y),V)}function up(N,V){throw V=V!==void 0?V:Bc(Dt,Y),gd(N,V)}function Br(N,V){return{type:"literal",text:N,ignoreCase:V}}function Is(N,V,re){return{type:"class",parts:N,inverted:V,ignoreCase:re}}function o0(){return{type:"any"}}function a0(){return{type:"end"}}function l0(N){return{type:"other",description:N}}function Ap(N){var V=wl[N],re;if(V)return V;for(re=N-1;!wl[re];)re--;for(V=wl[re],V={line:V.line,column:V.column};re<N;)t.charCodeAt(re)===10?(V.line++,V.column=1):V.column++,re++;return wl[N]=V,V}function Bc(N,V){var re=Ap(N),he=Ap(V);return{start:{offset:N,line:re.line,column:re.column},end:{offset:V,line:he.line,column:he.column}}}function Ct(N){Y<bi||(Y>bi&&(bi=Y,Ic=[]),Ic.push(N))}function gd(N,V){return new _0(N,null,null,V)}function c0(N,V,re){return new _0(_0.buildMessage(N,V),N,V,re)}function u0(){var N,V,re;for(N=Y,V=[],re=Qt();re!==r;)V.push(re),re=Qt();return V!==r?(re=Iu(),re===r&&(re=null),re!==r?(Dt=N,V=n(re),N=V):(Y=N,N=r)):(Y=N,N=r),N}function Iu(){var N,V,re,he,ze;if(N=Y,V=Bu(),V!==r){for(re=[],he=Qt();he!==r;)re.push(he),he=Qt();re!==r?(he=A0(),he!==r?(ze=dd(),ze===r&&(ze=null),ze!==r?(Dt=N,V=u(V,he,ze),N=V):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r)}else Y=N,N=r;if(N===r)if(N=Y,V=Bu(),V!==r){for(re=[],he=Qt();he!==r;)re.push(he),he=Qt();re!==r?(he=A0(),he===r&&(he=null),he!==r?(Dt=N,V=A(V,he),N=V):(Y=N,N=r)):(Y=N,N=r)}else Y=N,N=r;return N}function dd(){var N,V,re,he,ze;for(N=Y,V=[],re=Qt();re!==r;)V.push(re),re=Qt();if(V!==r)if(re=Iu(),re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();he!==r?(Dt=N,V=p(re),N=V):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r;return N}function A0(){var N;return t.charCodeAt(Y)===59?(N=h,Y++):(N=r,ct===0&&Ct(E)),N===r&&(t.charCodeAt(Y)===38?(N=I,Y++):(N=r,ct===0&&Ct(v))),N}function Bu(){var N,V,re;return N=Y,V=pa(),V!==r?(re=rw(),re===r&&(re=null),re!==r?(Dt=N,V=x(V,re),N=V):(Y=N,N=r)):(Y=N,N=r),N}function rw(){var N,V,re,he,ze,mt,fr;for(N=Y,V=[],re=Qt();re!==r;)V.push(re),re=Qt();if(V!==r)if(re=md(),re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();if(he!==r)if(ze=Bu(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();mt!==r?(Dt=N,V=C(re,ze),N=V):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;else Y=N,N=r;return N}function md(){var N;return t.substr(Y,2)===R?(N=R,Y+=2):(N=r,ct===0&&Ct(L)),N===r&&(t.substr(Y,2)===U?(N=U,Y+=2):(N=r,ct===0&&Ct(z))),N}function pa(){var N,V,re;return N=Y,V=f0(),V!==r?(re=vc(),re===r&&(re=null),re!==r?(Dt=N,V=te(V,re),N=V):(Y=N,N=r)):(Y=N,N=r),N}function vc(){var N,V,re,he,ze,mt,fr;for(N=Y,V=[],re=Qt();re!==r;)V.push(re),re=Qt();if(V!==r)if(re=Il(),re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();if(he!==r)if(ze=pa(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();mt!==r?(Dt=N,V=ae(re,ze),N=V):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;else Y=N,N=r;return N}function Il(){var N;return t.substr(Y,2)===le?(N=le,Y+=2):(N=r,ct===0&&Ct(ce)),N===r&&(t.charCodeAt(Y)===124?(N=Ce,Y++):(N=r,ct===0&&Ct(de))),N}function vu(){var N,V,re,he,ze,mt;if(N=Y,V=d0(),V!==r)if(t.charCodeAt(Y)===61?(re=Be,Y++):(re=r,ct===0&&Ct(Ee)),re!==r)if(he=jo(),he!==r){for(ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();ze!==r?(Dt=N,V=g(V,he),N=V):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r;else Y=N,N=r;if(N===r)if(N=Y,V=d0(),V!==r)if(t.charCodeAt(Y)===61?(re=Be,Y++):(re=r,ct===0&&Ct(Ee)),re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();he!==r?(Dt=N,V=me(V),N=V):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r;return N}function f0(){var N,V,re,he,ze,mt,fr,Cr,yn,oi,Li;for(N=Y,V=[],re=Qt();re!==r;)V.push(re),re=Qt();if(V!==r)if(t.charCodeAt(Y)===40?(re=we,Y++):(re=r,ct===0&&Ct(Ae)),re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();if(he!==r)if(ze=Iu(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();if(mt!==r)if(t.charCodeAt(Y)===41?(fr=ne,Y++):(fr=r,ct===0&&Ct(Z)),fr!==r){for(Cr=[],yn=Qt();yn!==r;)Cr.push(yn),yn=Qt();if(Cr!==r){for(yn=[],oi=Ga();oi!==r;)yn.push(oi),oi=Ga();if(yn!==r){for(oi=[],Li=Qt();Li!==r;)oi.push(Li),Li=Qt();oi!==r?(Dt=N,V=xe(ze,yn),N=V):(Y=N,N=r)}else Y=N,N=r}else Y=N,N=r}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;else Y=N,N=r;if(N===r){for(N=Y,V=[],re=Qt();re!==r;)V.push(re),re=Qt();if(V!==r)if(t.charCodeAt(Y)===123?(re=Ne,Y++):(re=r,ct===0&&Ct(ht)),re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();if(he!==r)if(ze=Iu(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();if(mt!==r)if(t.charCodeAt(Y)===125?(fr=H,Y++):(fr=r,ct===0&&Ct(rt)),fr!==r){for(Cr=[],yn=Qt();yn!==r;)Cr.push(yn),yn=Qt();if(Cr!==r){for(yn=[],oi=Ga();oi!==r;)yn.push(oi),oi=Ga();if(yn!==r){for(oi=[],Li=Qt();Li!==r;)oi.push(Li),Li=Qt();oi!==r?(Dt=N,V=Te(ze,yn),N=V):(Y=N,N=r)}else Y=N,N=r}else Y=N,N=r}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;else Y=N,N=r;if(N===r){for(N=Y,V=[],re=Qt();re!==r;)V.push(re),re=Qt();if(V!==r){for(re=[],he=vu();he!==r;)re.push(he),he=vu();if(re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();if(he!==r){if(ze=[],mt=fp(),mt!==r)for(;mt!==r;)ze.push(mt),mt=fp();else ze=r;if(ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();mt!==r?(Dt=N,V=Fe(re,ze),N=V):(Y=N,N=r)}else Y=N,N=r}else Y=N,N=r}else Y=N,N=r}else Y=N,N=r;if(N===r){for(N=Y,V=[],re=Qt();re!==r;)V.push(re),re=Qt();if(V!==r){if(re=[],he=vu(),he!==r)for(;he!==r;)re.push(he),he=vu();else re=r;if(re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();he!==r?(Dt=N,V=ke(re),N=V):(Y=N,N=r)}else Y=N,N=r}else Y=N,N=r}}}return N}function TA(){var N,V,re,he,ze;for(N=Y,V=[],re=Qt();re!==r;)V.push(re),re=Qt();if(V!==r){if(re=[],he=pp(),he!==r)for(;he!==r;)re.push(he),he=pp();else re=r;if(re!==r){for(he=[],ze=Qt();ze!==r;)he.push(ze),ze=Qt();he!==r?(Dt=N,V=Ye(re),N=V):(Y=N,N=r)}else Y=N,N=r}else Y=N,N=r;return N}function fp(){var N,V,re;for(N=Y,V=[],re=Qt();re!==r;)V.push(re),re=Qt();if(V!==r?(re=Ga(),re!==r?(Dt=N,V=Se(re),N=V):(Y=N,N=r)):(Y=N,N=r),N===r){for(N=Y,V=[],re=Qt();re!==r;)V.push(re),re=Qt();V!==r?(re=pp(),re!==r?(Dt=N,V=Se(re),N=V):(Y=N,N=r)):(Y=N,N=r)}return N}function Ga(){var N,V,re,he,ze;for(N=Y,V=[],re=Qt();re!==r;)V.push(re),re=Qt();return V!==r?(et.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(Ue)),re===r&&(re=null),re!==r?(he=p0(),he!==r?(ze=pp(),ze!==r?(Dt=N,V=b(re,he,ze),N=V):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N}function p0(){var N;return t.substr(Y,2)===w?(N=w,Y+=2):(N=r,ct===0&&Ct(S)),N===r&&(t.substr(Y,2)===y?(N=y,Y+=2):(N=r,ct===0&&Ct(F)),N===r&&(t.charCodeAt(Y)===62?(N=J,Y++):(N=r,ct===0&&Ct(X)),N===r&&(t.substr(Y,3)===$?(N=$,Y+=3):(N=r,ct===0&&Ct(ie)),N===r&&(t.substr(Y,2)===be?(N=be,Y+=2):(N=r,ct===0&&Ct(Re)),N===r&&(t.charCodeAt(Y)===60?(N=at,Y++):(N=r,ct===0&&Ct(dt))))))),N}function pp(){var N,V,re;for(N=Y,V=[],re=Qt();re!==r;)V.push(re),re=Qt();return V!==r?(re=jo(),re!==r?(Dt=N,V=Se(re),N=V):(Y=N,N=r)):(Y=N,N=r),N}function jo(){var N,V,re;if(N=Y,V=[],re=Bs(),re!==r)for(;re!==r;)V.push(re),re=Bs();else V=r;return V!==r&&(Dt=N,V=jt(V)),N=V,N}function Bs(){var N,V;return N=Y,V=wi(),V!==r&&(Dt=N,V=tr(V)),N=V,N===r&&(N=Y,V=yd(),V!==r&&(Dt=N,V=tr(V)),N=V,N===r&&(N=Y,V=Ed(),V!==r&&(Dt=N,V=tr(V)),N=V,N===r&&(N=Y,V=Go(),V!==r&&(Dt=N,V=tr(V)),N=V))),N}function wi(){var N,V,re,he;return N=Y,t.substr(Y,2)===St?(V=St,Y+=2):(V=r,ct===0&&Ct(ln)),V!==r?(re=cn(),re!==r?(t.charCodeAt(Y)===39?(he=kr,Y++):(he=r,ct===0&&Ct(mr)),he!==r?(Dt=N,V=br(re),N=V):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N}function yd(){var N,V,re,he;return N=Y,t.charCodeAt(Y)===39?(V=kr,Y++):(V=r,ct===0&&Ct(mr)),V!==r?(re=gp(),re!==r?(t.charCodeAt(Y)===39?(he=kr,Y++):(he=r,ct===0&&Ct(mr)),he!==r?(Dt=N,V=br(re),N=V):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N}function Ed(){var N,V,re,he;if(N=Y,t.substr(Y,2)===Kr?(V=Kr,Y+=2):(V=r,ct===0&&Ct(Kn)),V!==r&&(Dt=N,V=Ms()),N=V,N===r)if(N=Y,t.charCodeAt(Y)===34?(V=Ri,Y++):(V=r,ct===0&&Ct(gs)),V!==r){for(re=[],he=NA();he!==r;)re.push(he),he=NA();re!==r?(t.charCodeAt(Y)===34?(he=Ri,Y++):(he=r,ct===0&&Ct(gs)),he!==r?(Dt=N,V=io(re),N=V):(Y=N,N=r)):(Y=N,N=r)}else Y=N,N=r;return N}function Go(){var N,V,re;if(N=Y,V=[],re=hp(),re!==r)for(;re!==r;)V.push(re),re=hp();else V=r;return V!==r&&(Dt=N,V=io(V)),N=V,N}function NA(){var N,V;return N=Y,V=Yr(),V!==r&&(Dt=N,V=Pi(V)),N=V,N===r&&(N=Y,V=dp(),V!==r&&(Dt=N,V=Os(V)),N=V,N===r&&(N=Y,V=Pc(),V!==r&&(Dt=N,V=so(V)),N=V,N===r&&(N=Y,V=h0(),V!==r&&(Dt=N,V=uc(V)),N=V))),N}function hp(){var N,V;return N=Y,V=Yr(),V!==r&&(Dt=N,V=Au(V)),N=V,N===r&&(N=Y,V=dp(),V!==r&&(Dt=N,V=sp(V)),N=V,N===r&&(N=Y,V=Pc(),V!==r&&(Dt=N,V=op(V)),N=V,N===r&&(N=Y,V=nw(),V!==r&&(Dt=N,V=Us(V)),N=V,N===r&&(N=Y,V=ga(),V!==r&&(Dt=N,V=uc(V)),N=V)))),N}function gp(){var N,V,re;for(N=Y,V=[],Dn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(oo));re!==r;)V.push(re),Dn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(oo));return V!==r&&(Dt=N,V=_s(V)),N=V,N}function h0(){var N,V,re;if(N=Y,V=[],re=ha(),re===r&&(ml.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(yl))),re!==r)for(;re!==r;)V.push(re),re=ha(),re===r&&(ml.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(yl)));else V=r;return V!==r&&(Dt=N,V=_s(V)),N=V,N}function ha(){var N,V,re;return N=Y,t.substr(Y,2)===ao?(V=ao,Y+=2):(V=r,ct===0&&Ct(Vn)),V!==r&&(Dt=N,V=Mn()),N=V,N===r&&(N=Y,t.charCodeAt(Y)===92?(V=Ti,Y++):(V=r,ct===0&&Ct(On)),V!==r?(_i.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(ir)),re!==r?(Dt=N,V=Me(re),N=V):(Y=N,N=r)):(Y=N,N=r)),N}function cn(){var N,V,re;for(N=Y,V=[],re=Ao(),re===r&&(Dn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(oo)));re!==r;)V.push(re),re=Ao(),re===r&&(Dn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(oo)));return V!==r&&(Dt=N,V=_s(V)),N=V,N}function Ao(){var N,V,re;return N=Y,t.substr(Y,2)===ii?(V=ii,Y+=2):(V=r,ct===0&&Ct(Ha)),V!==r&&(Dt=N,V=hr()),N=V,N===r&&(N=Y,t.substr(Y,2)===Ac?(V=Ac,Y+=2):(V=r,ct===0&&Ct(fu)),V!==r&&(Dt=N,V=fc()),N=V,N===r&&(N=Y,t.charCodeAt(Y)===92?(V=Ti,Y++):(V=r,ct===0&&Ct(On)),V!==r?(El.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(vA)),re!==r?(Dt=N,V=pu(),N=V):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===Ie?(V=Ie,Y+=2):(V=r,ct===0&&Ct(Tt)),V!==r&&(Dt=N,V=pc()),N=V,N===r&&(N=Y,t.substr(Y,2)===Hi?(V=Hi,Y+=2):(V=r,ct===0&&Ct(hu)),V!==r&&(Dt=N,V=Yt()),N=V,N===r&&(N=Y,t.substr(Y,2)===Cl?(V=Cl,Y+=2):(V=r,ct===0&&Ct(DA)),V!==r&&(Dt=N,V=ap()),N=V,N===r&&(N=Y,t.substr(Y,2)===hc?(V=hc,Y+=2):(V=r,ct===0&&Ct(PA)),V!==r&&(Dt=N,V=Qn()),N=V,N===r&&(N=Y,t.substr(Y,2)===hi?(V=hi,Y+=2):(V=r,ct===0&&Ct(gc)),V!==r&&(Dt=N,V=SA()),N=V,N===r&&(N=Y,t.charCodeAt(Y)===92?(V=Ti,Y++):(V=r,ct===0&&Ct(On)),V!==r?(aa.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(Ni)),re!==r?(Dt=N,V=Me(re),N=V):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=LA()))))))))),N}function LA(){var N,V,re,he,ze,mt,fr,Cr,yn,oi,Li,y0;return N=Y,t.charCodeAt(Y)===92?(V=Ti,Y++):(V=r,ct===0&&Ct(On)),V!==r?(re=Ya(),re!==r?(Dt=N,V=_o(re),N=V):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===Xe?(V=Xe,Y+=2):(V=r,ct===0&&Ct(lo)),V!==r?(re=Y,he=Y,ze=Ya(),ze!==r?(mt=si(),mt!==r?(ze=[ze,mt],he=ze):(Y=he,he=r)):(Y=he,he=r),he===r&&(he=Ya()),he!==r?re=t.substring(re,Y):re=he,re!==r?(Dt=N,V=_o(re),N=V):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===dc?(V=dc,Y+=2):(V=r,ct===0&&Ct(gu)),V!==r?(re=Y,he=Y,ze=si(),ze!==r?(mt=si(),mt!==r?(fr=si(),fr!==r?(Cr=si(),Cr!==r?(ze=[ze,mt,fr,Cr],he=ze):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r),he!==r?re=t.substring(re,Y):re=he,re!==r?(Dt=N,V=_o(re),N=V):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===qi?(V=qi,Y+=2):(V=r,ct===0&&Ct(du)),V!==r?(re=Y,he=Y,ze=si(),ze!==r?(mt=si(),mt!==r?(fr=si(),fr!==r?(Cr=si(),Cr!==r?(yn=si(),yn!==r?(oi=si(),oi!==r?(Li=si(),Li!==r?(y0=si(),y0!==r?(ze=[ze,mt,fr,Cr,yn,oi,Li,y0],he=ze):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r)):(Y=he,he=r),he!==r?re=t.substring(re,Y):re=he,re!==r?(Dt=N,V=bA(re),N=V):(Y=N,N=r)):(Y=N,N=r)))),N}function Ya(){var N;return qa.test(t.charAt(Y))?(N=t.charAt(Y),Y++):(N=r,ct===0&&Ct(mc)),N}function si(){var N;return ds.test(t.charAt(Y))?(N=t.charAt(Y),Y++):(N=r,ct===0&&Ct(Ht)),N}function ga(){var N,V,re,he,ze;if(N=Y,V=[],re=Y,t.charCodeAt(Y)===92?(he=Ti,Y++):(he=r,ct===0&&Ct(On)),he!==r?(t.length>Y?(ze=t.charAt(Y),Y++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,he=Me(ze),re=he):(Y=re,re=r)):(Y=re,re=r),re===r&&(re=Y,t.substr(Y,2)===Ei?(he=Ei,Y+=2):(he=r,ct===0&&Ct(la)),he!==r&&(Dt=re,he=co()),re=he,re===r&&(re=Y,he=Y,ct++,ze=Cd(),ct--,ze===r?he=void 0:(Y=he,he=r),he!==r?(t.length>Y?(ze=t.charAt(Y),Y++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,he=Me(ze),re=he):(Y=re,re=r)):(Y=re,re=r))),re!==r)for(;re!==r;)V.push(re),re=Y,t.charCodeAt(Y)===92?(he=Ti,Y++):(he=r,ct===0&&Ct(On)),he!==r?(t.length>Y?(ze=t.charAt(Y),Y++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,he=Me(ze),re=he):(Y=re,re=r)):(Y=re,re=r),re===r&&(re=Y,t.substr(Y,2)===Ei?(he=Ei,Y+=2):(he=r,ct===0&&Ct(la)),he!==r&&(Dt=re,he=co()),re=he,re===r&&(re=Y,he=Y,ct++,ze=Cd(),ct--,ze===r?he=void 0:(Y=he,he=r),he!==r?(t.length>Y?(ze=t.charAt(Y),Y++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,he=Me(ze),re=he):(Y=re,re=r)):(Y=re,re=r)));else V=r;return V!==r&&(Dt=N,V=_s(V)),N=V,N}function Dc(){var N,V,re,he,ze,mt;if(N=Y,t.charCodeAt(Y)===45?(V=Hs,Y++):(V=r,ct===0&&Ct(ca)),V===r&&(t.charCodeAt(Y)===43?(V=ua,Y++):(V=r,ct===0&&Ct(Ho))),V===r&&(V=null),V!==r){if(re=[],et.test(t.charAt(Y))?(he=t.charAt(Y),Y++):(he=r,ct===0&&Ct(Ue)),he!==r)for(;he!==r;)re.push(he),et.test(t.charAt(Y))?(he=t.charAt(Y),Y++):(he=r,ct===0&&Ct(Ue));else re=r;if(re!==r)if(t.charCodeAt(Y)===46?(he=Ci,Y++):(he=r,ct===0&&Ct(ms)),he!==r){if(ze=[],et.test(t.charAt(Y))?(mt=t.charAt(Y),Y++):(mt=r,ct===0&&Ct(Ue)),mt!==r)for(;mt!==r;)ze.push(mt),et.test(t.charAt(Y))?(mt=t.charAt(Y),Y++):(mt=r,ct===0&&Ct(Ue));else ze=r;ze!==r?(Dt=N,V=ys(V,re,ze),N=V):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;if(N===r){if(N=Y,t.charCodeAt(Y)===45?(V=Hs,Y++):(V=r,ct===0&&Ct(ca)),V===r&&(t.charCodeAt(Y)===43?(V=ua,Y++):(V=r,ct===0&&Ct(Ho))),V===r&&(V=null),V!==r){if(re=[],et.test(t.charAt(Y))?(he=t.charAt(Y),Y++):(he=r,ct===0&&Ct(Ue)),he!==r)for(;he!==r;)re.push(he),et.test(t.charAt(Y))?(he=t.charAt(Y),Y++):(he=r,ct===0&&Ct(Ue));else re=r;re!==r?(Dt=N,V=Es(V,re),N=V):(Y=N,N=r)}else Y=N,N=r;if(N===r&&(N=Y,V=Pc(),V!==r&&(Dt=N,V=qs(V)),N=V,N===r&&(N=Y,V=Wa(),V!==r&&(Dt=N,V=Un(V)),N=V,N===r)))if(N=Y,t.charCodeAt(Y)===40?(V=we,Y++):(V=r,ct===0&&Ct(Ae)),V!==r){for(re=[],he=Qt();he!==r;)re.push(he),he=Qt();if(re!==r)if(he=ns(),he!==r){for(ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();ze!==r?(t.charCodeAt(Y)===41?(mt=ne,Y++):(mt=r,ct===0&&Ct(Z)),mt!==r?(Dt=N,V=Pn(he),N=V):(Y=N,N=r)):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r}return N}function Bl(){var N,V,re,he,ze,mt,fr,Cr;if(N=Y,V=Dc(),V!==r){for(re=[],he=Y,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(Y)===42?(mt=Cs,Y++):(mt=r,ct===0&&Ct(We)),mt===r&&(t.charCodeAt(Y)===47?(mt=tt,Y++):(mt=r,ct===0&&Ct(Bt))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=Dc(),Cr!==r?(Dt=he,ze=or(V,mt,Cr),he=ze):(Y=he,he=r)):(Y=he,he=r)}else Y=he,he=r;else Y=he,he=r;for(;he!==r;){for(re.push(he),he=Y,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(Y)===42?(mt=Cs,Y++):(mt=r,ct===0&&Ct(We)),mt===r&&(t.charCodeAt(Y)===47?(mt=tt,Y++):(mt=r,ct===0&&Ct(Bt))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=Dc(),Cr!==r?(Dt=he,ze=or(V,mt,Cr),he=ze):(Y=he,he=r)):(Y=he,he=r)}else Y=he,he=r;else Y=he,he=r}re!==r?(Dt=N,V=ee(V,re),N=V):(Y=N,N=r)}else Y=N,N=r;return N}function ns(){var N,V,re,he,ze,mt,fr,Cr;if(N=Y,V=Bl(),V!==r){for(re=[],he=Y,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(Y)===43?(mt=ua,Y++):(mt=r,ct===0&&Ct(Ho)),mt===r&&(t.charCodeAt(Y)===45?(mt=Hs,Y++):(mt=r,ct===0&&Ct(ca))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=Bl(),Cr!==r?(Dt=he,ze=ye(V,mt,Cr),he=ze):(Y=he,he=r)):(Y=he,he=r)}else Y=he,he=r;else Y=he,he=r;for(;he!==r;){for(re.push(he),he=Y,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(Y)===43?(mt=ua,Y++):(mt=r,ct===0&&Ct(Ho)),mt===r&&(t.charCodeAt(Y)===45?(mt=Hs,Y++):(mt=r,ct===0&&Ct(ca))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=Bl(),Cr!==r?(Dt=he,ze=ye(V,mt,Cr),he=ze):(Y=he,he=r)):(Y=he,he=r)}else Y=he,he=r;else Y=he,he=r}re!==r?(Dt=N,V=ee(V,re),N=V):(Y=N,N=r)}else Y=N,N=r;return N}function Yr(){var N,V,re,he,ze,mt;if(N=Y,t.substr(Y,3)===Le?(V=Le,Y+=3):(V=r,ct===0&&Ct(ft)),V!==r){for(re=[],he=Qt();he!==r;)re.push(he),he=Qt();if(re!==r)if(he=ns(),he!==r){for(ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();ze!==r?(t.substr(Y,2)===pt?(mt=pt,Y+=2):(mt=r,ct===0&&Ct(Nt)),mt!==r?(Dt=N,V=rr(he),N=V):(Y=N,N=r)):(Y=N,N=r)}else Y=N,N=r;else Y=N,N=r}else Y=N,N=r;return N}function dp(){var N,V,re,he;return N=Y,t.substr(Y,2)===$r?(V=$r,Y+=2):(V=r,ct===0&&Ct(ji)),V!==r?(re=Iu(),re!==r?(t.charCodeAt(Y)===41?(he=ne,Y++):(he=r,ct===0&&Ct(Z)),he!==r?(Dt=N,V=rs(re),N=V):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N}function Pc(){var N,V,re,he,ze,mt;return N=Y,t.substr(Y,2)===Si?(V=Si,Y+=2):(V=r,ct===0&&Ct(qo)),V!==r?(re=Wa(),re!==r?(t.substr(Y,2)===xA?(he=xA,Y+=2):(he=r,ct===0&&Ct(kA)),he!==r?(ze=TA(),ze!==r?(t.charCodeAt(Y)===125?(mt=H,Y++):(mt=r,ct===0&&Ct(rt)),mt!==r?(Dt=N,V=lp(re,ze),N=V):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===Si?(V=Si,Y+=2):(V=r,ct===0&&Ct(qo)),V!==r?(re=Wa(),re!==r?(t.substr(Y,3)===e0?(he=e0,Y+=3):(he=r,ct===0&&Ct(mu)),he!==r?(Dt=N,V=t0(re),N=V):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===Si?(V=Si,Y+=2):(V=r,ct===0&&Ct(qo)),V!==r?(re=Wa(),re!==r?(t.substr(Y,2)===yu?(he=yu,Y+=2):(he=r,ct===0&&Ct(uo)),he!==r?(ze=TA(),ze!==r?(t.charCodeAt(Y)===125?(mt=H,Y++):(mt=r,ct===0&&Ct(rt)),mt!==r?(Dt=N,V=QA(re,ze),N=V):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===Si?(V=Si,Y+=2):(V=r,ct===0&&Ct(qo)),V!==r?(re=Wa(),re!==r?(t.substr(Y,3)===yc?(he=yc,Y+=3):(he=r,ct===0&&Ct(Aa)),he!==r?(Dt=N,V=r0(re),N=V):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.substr(Y,2)===Si?(V=Si,Y+=2):(V=r,ct===0&&Ct(qo)),V!==r?(re=Wa(),re!==r?(t.charCodeAt(Y)===125?(he=H,Y++):(he=r,ct===0&&Ct(rt)),he!==r?(Dt=N,V=Ec(re),N=V):(Y=N,N=r)):(Y=N,N=r)):(Y=N,N=r),N===r&&(N=Y,t.charCodeAt(Y)===36?(V=hd,Y++):(V=r,ct===0&&Ct(n0)),V!==r?(re=Wa(),re!==r?(Dt=N,V=Ec(re),N=V):(Y=N,N=r)):(Y=N,N=r)))))),N}function nw(){var N,V,re;return N=Y,V=g0(),V!==r?(Dt=Y,re=$n(V),re?re=void 0:re=r,re!==r?(Dt=N,V=cp(V),N=V):(Y=N,N=r)):(Y=N,N=r),N}function g0(){var N,V,re,he,ze;if(N=Y,V=[],re=Y,he=Y,ct++,ze=m0(),ct--,ze===r?he=void 0:(Y=he,he=r),he!==r?(t.length>Y?(ze=t.charAt(Y),Y++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,he=Me(ze),re=he):(Y=re,re=r)):(Y=re,re=r),re!==r)for(;re!==r;)V.push(re),re=Y,he=Y,ct++,ze=m0(),ct--,ze===r?he=void 0:(Y=he,he=r),he!==r?(t.length>Y?(ze=t.charAt(Y),Y++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,he=Me(ze),re=he):(Y=re,re=r)):(Y=re,re=r);else V=r;return V!==r&&(Dt=N,V=_s(V)),N=V,N}function d0(){var N,V,re;if(N=Y,V=[],i0.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(FA)),re!==r)for(;re!==r;)V.push(re),i0.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(FA));else V=r;return V!==r&&(Dt=N,V=js()),N=V,N}function Wa(){var N,V,re;if(N=Y,V=[],Eu.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(ja)),re!==r)for(;re!==r;)V.push(re),Eu.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,ct===0&&Ct(ja));else V=r;return V!==r&&(Dt=N,V=js()),N=V,N}function Cd(){var N;return Gi.test(t.charAt(Y))?(N=t.charAt(Y),Y++):(N=r,ct===0&&Ct(fa)),N}function m0(){var N;return Cu.test(t.charAt(Y))?(N=t.charAt(Y),Y++):(N=r,ct===0&&Ct(ws)),N}function Qt(){var N,V;if(N=[],Cc.test(t.charAt(Y))?(V=t.charAt(Y),Y++):(V=r,ct===0&&Ct(wc)),V!==r)for(;V!==r;)N.push(V),Cc.test(t.charAt(Y))?(V=t.charAt(Y),Y++):(V=r,ct===0&&Ct(wc));else N=r;return N}if(wu=a(),wu!==r&&Y===t.length)return wu;throw wu!==r&&Y<t.length&&Ct(a0()),c0(Ic,bi<t.length?t.charAt(bi):null,bi<t.length?Bc(bi,bi+1):Bc(bi,bi))}XY.exports={SyntaxError:_0,parse:c8e}});function CD(t,e={isGlobPattern:()=>!1}){try{return(0,$Y.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function zd(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:o},a)=>`${wD(r)}${o===";"?a!==t.length-1||e?";":"":" &"}`).join(" ")}function wD(t){return`${Jd(t.chain)}${t.then?` ${VR(t.then)}`:""}`}function VR(t){return`${t.type} ${wD(t.line)}`}function Jd(t){return`${JR(t)}${t.then?` ${zR(t.then)}`:""}`}function zR(t){return`${t.type} ${Jd(t.chain)}`}function JR(t){switch(t.type){case"command":return`${t.envs.length>0?`${t.envs.map(e=>ED(e)).join(" ")} `:""}${t.args.map(e=>XR(e)).join(" ")}`;case"subshell":return`(${zd(t.subshell)})${t.args.length>0?` ${t.args.map(e=>Qw(e)).join(" ")}`:""}`;case"group":return`{ ${zd(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>Qw(e)).join(" ")}`:""}`;case"envs":return t.envs.map(e=>ED(e)).join(" ");default:throw new Error(`Unsupported command type: "${t.type}"`)}}function ED(t){return`${t.name}=${t.args[0]?H0(t.args[0]):""}`}function XR(t){switch(t.type){case"redirection":return Qw(t);case"argument":return H0(t);default:throw new Error(`Unsupported argument type: "${t.type}"`)}}function Qw(t){return`${t.subtype} ${t.args.map(e=>H0(e)).join(" ")}`}function H0(t){return t.segments.map(e=>ZR(e)).join("")}function ZR(t){let e=(o,a)=>a?`"${o}"`:o,r=o=>o===""?"''":o.match(/[()}<>$|&;"'\n\t ]/)?o.match(/['\t\p{C}]/u)?o.match(/'/)?`"${o.replace(/["$\t\p{C}]/u,A8e)}"`:`$'${o.replace(/[\t\p{C}]/u,tW)}'`:`'${o}'`:o;switch(t.type){case"text":return r(t.text);case"glob":return t.pattern;case"shell":return e(`$(${zd(t.shell)})`,t.quoted);case"variable":return e(typeof t.defaultValue>"u"?typeof t.alternativeValue>"u"?`\${${t.name}}`:t.alternativeValue.length===0?`\${${t.name}:+}`:`\${${t.name}:+${t.alternativeValue.map(o=>H0(o)).join(" ")}}`:t.defaultValue.length===0?`\${${t.name}:-}`:`\${${t.name}:-${t.defaultValue.map(o=>H0(o)).join(" ")}}`,t.quoted);case"arithmetic":return`$(( ${ID(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${t.type}"`)}}function ID(t){let e=a=>{switch(a){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${a}"`)}},r=(a,n)=>n?`( ${a} )`:a,o=a=>r(ID(a),!["number","variable"].includes(a.type));switch(t.type){case"number":return String(t.value);case"variable":return t.name;default:return`${o(t.left)} ${e(t.type)} ${o(t.right)}`}}var $Y,eW,u8e,tW,A8e,rW=Et(()=>{$Y=Ze(ZY());eW=new Map([["\f","\\f"],[` -`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),u8e=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(eW,([t,e])=>[t,`"$'${e}'"`])]),tW=t=>eW.get(t)??`\\x${t.charCodeAt(0).toString(16).padStart(2,"0")}`,A8e=t=>u8e.get(t)??`"$'${tW(t)}'"`});var iW=_((_bt,nW)=>{"use strict";function f8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function q0(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,q0)}f8e(q0,Error);q0.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I<h.parts.length;I++)E+=h.parts[I]instanceof Array?n(h.parts[I][0])+"-"+n(h.parts[I][1]):n(h.parts[I]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function o(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function u(h){return r[h.type](h)}function A(h){var E=new Array(h.length),I,v;for(I=0;I<h.length;I++)E[I]=u(h[I]);if(E.sort(),E.length>0){for(I=1,v=1;I<E.length;I++)E[I-1]!==E[I]&&(E[v]=E[I],v++);E.length=v}switch(E.length){case 1:return E[0];case 2:return E[0]+" or "+E[1];default:return E.slice(0,-1).join(", ")+", or "+E[E.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+A(t)+" but "+p(e)+" found."};function p8e(t,e){e=e!==void 0?e:{};var r={},o={resolution:Fe},a=Fe,n="/",u=we("/",!1),A=function(Ue,b){return{from:Ue,descriptor:b}},p=function(Ue){return{descriptor:Ue}},h="@",E=we("@",!1),I=function(Ue,b){return{fullName:Ue,description:b}},v=function(Ue){return{fullName:Ue}},x=function(){return Be()},C=/^[^\/@]/,R=Ae(["/","@"],!0,!1),L=/^[^\/]/,U=Ae(["/"],!0,!1),z=0,te=0,ae=[{line:1,column:1}],le=0,ce=[],Ce=0,de;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function Be(){return t.substring(te,z)}function Ee(){return ht(te,z)}function g(Ue,b){throw b=b!==void 0?b:ht(te,z),Te([xe(Ue)],t.substring(te,z),b)}function me(Ue,b){throw b=b!==void 0?b:ht(te,z),rt(Ue,b)}function we(Ue,b){return{type:"literal",text:Ue,ignoreCase:b}}function Ae(Ue,b,w){return{type:"class",parts:Ue,inverted:b,ignoreCase:w}}function ne(){return{type:"any"}}function Z(){return{type:"end"}}function xe(Ue){return{type:"other",description:Ue}}function Ne(Ue){var b=ae[Ue],w;if(b)return b;for(w=Ue-1;!ae[w];)w--;for(b=ae[w],b={line:b.line,column:b.column};w<Ue;)t.charCodeAt(w)===10?(b.line++,b.column=1):b.column++,w++;return ae[Ue]=b,b}function ht(Ue,b){var w=Ne(Ue),S=Ne(b);return{start:{offset:Ue,line:w.line,column:w.column},end:{offset:b,line:S.line,column:S.column}}}function H(Ue){z<le||(z>le&&(le=z,ce=[]),ce.push(Ue))}function rt(Ue,b){return new q0(Ue,null,null,b)}function Te(Ue,b,w){return new q0(q0.buildMessage(Ue,b),Ue,b,w)}function Fe(){var Ue,b,w,S;return Ue=z,b=ke(),b!==r?(t.charCodeAt(z)===47?(w=n,z++):(w=r,Ce===0&&H(u)),w!==r?(S=ke(),S!==r?(te=Ue,b=A(b,S),Ue=b):(z=Ue,Ue=r)):(z=Ue,Ue=r)):(z=Ue,Ue=r),Ue===r&&(Ue=z,b=ke(),b!==r&&(te=Ue,b=p(b)),Ue=b),Ue}function ke(){var Ue,b,w,S;return Ue=z,b=Ye(),b!==r?(t.charCodeAt(z)===64?(w=h,z++):(w=r,Ce===0&&H(E)),w!==r?(S=et(),S!==r?(te=Ue,b=I(b,S),Ue=b):(z=Ue,Ue=r)):(z=Ue,Ue=r)):(z=Ue,Ue=r),Ue===r&&(Ue=z,b=Ye(),b!==r&&(te=Ue,b=v(b)),Ue=b),Ue}function Ye(){var Ue,b,w,S,y;return Ue=z,t.charCodeAt(z)===64?(b=h,z++):(b=r,Ce===0&&H(E)),b!==r?(w=Se(),w!==r?(t.charCodeAt(z)===47?(S=n,z++):(S=r,Ce===0&&H(u)),S!==r?(y=Se(),y!==r?(te=Ue,b=x(),Ue=b):(z=Ue,Ue=r)):(z=Ue,Ue=r)):(z=Ue,Ue=r)):(z=Ue,Ue=r),Ue===r&&(Ue=z,b=Se(),b!==r&&(te=Ue,b=x()),Ue=b),Ue}function Se(){var Ue,b,w;if(Ue=z,b=[],C.test(t.charAt(z))?(w=t.charAt(z),z++):(w=r,Ce===0&&H(R)),w!==r)for(;w!==r;)b.push(w),C.test(t.charAt(z))?(w=t.charAt(z),z++):(w=r,Ce===0&&H(R));else b=r;return b!==r&&(te=Ue,b=x()),Ue=b,Ue}function et(){var Ue,b,w;if(Ue=z,b=[],L.test(t.charAt(z))?(w=t.charAt(z),z++):(w=r,Ce===0&&H(U)),w!==r)for(;w!==r;)b.push(w),L.test(t.charAt(z))?(w=t.charAt(z),z++):(w=r,Ce===0&&H(U));else b=r;return b!==r&&(te=Ue,b=x()),Ue=b,Ue}if(de=a(),de!==r&&z===t.length)return de;throw de!==r&&z<t.length&&H(Z()),Te(ce,le<t.length?t.charAt(le):null,le<t.length?ht(le,le+1):ht(le,le))}nW.exports={SyntaxError:q0,parse:p8e}});function BD(t){let e=t.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${t}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,sW.parse)(t)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function vD(t){let e="";return t.from&&(e+=t.from.fullName,t.from.description&&(e+=`@${t.from.description}`),e+="/"),e+=t.descriptor.fullName,t.descriptor.description&&(e+=`@${t.descriptor.description}`),e}var sW,oW=Et(()=>{sW=Ze(iW())});var G0=_((qbt,j0)=>{"use strict";function aW(t){return typeof t>"u"||t===null}function h8e(t){return typeof t=="object"&&t!==null}function g8e(t){return Array.isArray(t)?t:aW(t)?[]:[t]}function d8e(t,e){var r,o,a,n;if(e)for(n=Object.keys(e),r=0,o=n.length;r<o;r+=1)a=n[r],t[a]=e[a];return t}function m8e(t,e){var r="",o;for(o=0;o<e;o+=1)r+=t;return r}function y8e(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}j0.exports.isNothing=aW;j0.exports.isObject=h8e;j0.exports.toArray=g8e;j0.exports.repeat=m8e;j0.exports.isNegativeZero=y8e;j0.exports.extend=d8e});var Xd=_((jbt,lW)=>{"use strict";function Fw(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Fw.prototype=Object.create(Error.prototype);Fw.prototype.constructor=Fw;Fw.prototype.toString=function(e){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!e&&this.mark&&(r+=" "+this.mark.toString()),r};lW.exports=Fw});var AW=_((Gbt,uW)=>{"use strict";var cW=G0();function $R(t,e,r,o,a){this.name=t,this.buffer=e,this.position=r,this.line=o,this.column=a}$R.prototype.getSnippet=function(e,r){var o,a,n,u,A;if(!this.buffer)return null;for(e=e||4,r=r||75,o="",a=this.position;a>0&&`\0\r -\x85\u2028\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){o=" ... ",a+=5;break}for(n="",u=this.position;u<this.buffer.length&&`\0\r -\x85\u2028\u2029`.indexOf(this.buffer.charAt(u))===-1;)if(u+=1,u-this.position>r/2-1){n=" ... ",u-=5;break}return A=this.buffer.slice(a,u),cW.repeat(" ",e)+o+A+n+` -`+cW.repeat(" ",e+this.position-a+o.length)+"^"};$R.prototype.toString=function(e){var r,o="";return this.name&&(o+='in "'+this.name+'" '),o+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(o+=`: -`+r)),o};uW.exports=$R});var ls=_((Ybt,pW)=>{"use strict";var fW=Xd(),E8e=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],C8e=["scalar","sequence","mapping"];function w8e(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(o){e[String(o)]=r})}),e}function I8e(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(E8e.indexOf(r)===-1)throw new fW('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=w8e(e.styleAliases||null),C8e.indexOf(this.kind)===-1)throw new fW('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}pW.exports=I8e});var Y0=_((Wbt,gW)=>{"use strict";var hW=G0(),DD=Xd(),B8e=ls();function eT(t,e,r){var o=[];return t.include.forEach(function(a){r=eT(a,e,r)}),t[e].forEach(function(a){r.forEach(function(n,u){n.tag===a.tag&&n.kind===a.kind&&o.push(u)}),r.push(a)}),r.filter(function(a,n){return o.indexOf(n)===-1})}function v8e(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function o(a){t[a.kind][a.tag]=t.fallback[a.tag]=a}for(e=0,r=arguments.length;e<r;e+=1)arguments[e].forEach(o);return t}function Zd(t){this.include=t.include||[],this.implicit=t.implicit||[],this.explicit=t.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&e.loadKind!=="scalar")throw new DD("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=eT(this,"implicit",[]),this.compiledExplicit=eT(this,"explicit",[]),this.compiledTypeMap=v8e(this.compiledImplicit,this.compiledExplicit)}Zd.DEFAULT=null;Zd.create=function(){var e,r;switch(arguments.length){case 1:e=Zd.DEFAULT,r=arguments[0];break;case 2:e=arguments[0],r=arguments[1];break;default:throw new DD("Wrong number of arguments for Schema.create function")}if(e=hW.toArray(e),r=hW.toArray(r),!e.every(function(o){return o instanceof Zd}))throw new DD("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!r.every(function(o){return o instanceof B8e}))throw new DD("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new Zd({include:e,explicit:r})};gW.exports=Zd});var mW=_((Kbt,dW)=>{"use strict";var D8e=ls();dW.exports=new D8e("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var EW=_((Vbt,yW)=>{"use strict";var P8e=ls();yW.exports=new P8e("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var wW=_((zbt,CW)=>{"use strict";var S8e=ls();CW.exports=new S8e("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var PD=_((Jbt,IW)=>{"use strict";var b8e=Y0();IW.exports=new b8e({explicit:[mW(),EW(),wW()]})});var vW=_((Xbt,BW)=>{"use strict";var x8e=ls();function k8e(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function Q8e(){return null}function F8e(t){return t===null}BW.exports=new x8e("tag:yaml.org,2002:null",{kind:"scalar",resolve:k8e,construct:Q8e,predicate:F8e,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var PW=_((Zbt,DW)=>{"use strict";var R8e=ls();function T8e(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function N8e(t){return t==="true"||t==="True"||t==="TRUE"}function L8e(t){return Object.prototype.toString.call(t)==="[object Boolean]"}DW.exports=new R8e("tag:yaml.org,2002:bool",{kind:"scalar",resolve:T8e,construct:N8e,predicate:L8e,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var bW=_(($bt,SW)=>{"use strict";var M8e=G0(),O8e=ls();function U8e(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function _8e(t){return 48<=t&&t<=55}function H8e(t){return 48<=t&&t<=57}function q8e(t){if(t===null)return!1;var e=t.length,r=0,o=!1,a;if(!e)return!1;if(a=t[r],(a==="-"||a==="+")&&(a=t[++r]),a==="0"){if(r+1===e)return!0;if(a=t[++r],a==="b"){for(r++;r<e;r++)if(a=t[r],a!=="_"){if(a!=="0"&&a!=="1")return!1;o=!0}return o&&a!=="_"}if(a==="x"){for(r++;r<e;r++)if(a=t[r],a!=="_"){if(!U8e(t.charCodeAt(r)))return!1;o=!0}return o&&a!=="_"}for(;r<e;r++)if(a=t[r],a!=="_"){if(!_8e(t.charCodeAt(r)))return!1;o=!0}return o&&a!=="_"}if(a==="_")return!1;for(;r<e;r++)if(a=t[r],a!=="_"){if(a===":")break;if(!H8e(t.charCodeAt(r)))return!1;o=!0}return!o||a==="_"?!1:a!==":"?!0:/^(:[0-5]?[0-9])+$/.test(t.slice(r))}function j8e(t){var e=t,r=1,o,a,n=[];return e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),o=e[0],(o==="-"||o==="+")&&(o==="-"&&(r=-1),e=e.slice(1),o=e[0]),e==="0"?0:o==="0"?e[1]==="b"?r*parseInt(e.slice(2),2):e[1]==="x"?r*parseInt(e,16):r*parseInt(e,8):e.indexOf(":")!==-1?(e.split(":").forEach(function(u){n.unshift(parseInt(u,10))}),e=0,a=1,n.forEach(function(u){e+=u*a,a*=60}),r*e):r*parseInt(e,10)}function G8e(t){return Object.prototype.toString.call(t)==="[object Number]"&&t%1===0&&!M8e.isNegativeZero(t)}SW.exports=new O8e("tag:yaml.org,2002:int",{kind:"scalar",resolve:q8e,construct:j8e,predicate:G8e,represent:{binary:function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var QW=_((ext,kW)=>{"use strict";var xW=G0(),Y8e=ls(),W8e=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function K8e(t){return!(t===null||!W8e.test(t)||t[t.length-1]==="_")}function V8e(t){var e,r,o,a;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,a=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(n){a.unshift(parseFloat(n,10))}),e=0,o=1,a.forEach(function(n){e+=n*o,o*=60}),r*e):r*parseFloat(e,10)}var z8e=/^[-+]?[0-9]+e/;function J8e(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(xW.isNegativeZero(t))return"-0.0";return r=t.toString(10),z8e.test(r)?r.replace("e",".e"):r}function X8e(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||xW.isNegativeZero(t))}kW.exports=new Y8e("tag:yaml.org,2002:float",{kind:"scalar",resolve:K8e,construct:V8e,predicate:X8e,represent:J8e,defaultStyle:"lowercase"})});var tT=_((txt,FW)=>{"use strict";var Z8e=Y0();FW.exports=new Z8e({include:[PD()],implicit:[vW(),PW(),bW(),QW()]})});var rT=_((rxt,RW)=>{"use strict";var $8e=Y0();RW.exports=new $8e({include:[tT()]})});var MW=_((nxt,LW)=>{"use strict";var eHe=ls(),TW=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),NW=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function tHe(t){return t===null?!1:TW.exec(t)!==null||NW.exec(t)!==null}function rHe(t){var e,r,o,a,n,u,A,p=0,h=null,E,I,v;if(e=TW.exec(t),e===null&&(e=NW.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],o=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(r,o,a));if(n=+e[4],u=+e[5],A=+e[6],e[7]){for(p=e[7].slice(0,3);p.length<3;)p+="0";p=+p}return e[9]&&(E=+e[10],I=+(e[11]||0),h=(E*60+I)*6e4,e[9]==="-"&&(h=-h)),v=new Date(Date.UTC(r,o,a,n,u,A,p)),h&&v.setTime(v.getTime()-h),v}function nHe(t){return t.toISOString()}LW.exports=new eHe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:tHe,construct:rHe,instanceOf:Date,represent:nHe})});var UW=_((ixt,OW)=>{"use strict";var iHe=ls();function sHe(t){return t==="<<"||t===null}OW.exports=new iHe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:sHe})});var qW=_((sxt,HW)=>{"use strict";var W0;try{_W=ve,W0=_W("buffer").Buffer}catch{}var _W,oHe=ls(),nT=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function aHe(t){if(t===null)return!1;var e,r,o=0,a=t.length,n=nT;for(r=0;r<a;r++)if(e=n.indexOf(t.charAt(r)),!(e>64)){if(e<0)return!1;o+=6}return o%8===0}function lHe(t){var e,r,o=t.replace(/[\r\n=]/g,""),a=o.length,n=nT,u=0,A=[];for(e=0;e<a;e++)e%4===0&&e&&(A.push(u>>16&255),A.push(u>>8&255),A.push(u&255)),u=u<<6|n.indexOf(o.charAt(e));return r=a%4*6,r===0?(A.push(u>>16&255),A.push(u>>8&255),A.push(u&255)):r===18?(A.push(u>>10&255),A.push(u>>2&255)):r===12&&A.push(u>>4&255),W0?W0.from?W0.from(A):new W0(A):A}function cHe(t){var e="",r=0,o,a,n=t.length,u=nT;for(o=0;o<n;o++)o%3===0&&o&&(e+=u[r>>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]),r=(r<<8)+t[o];return a=n%3,a===0?(e+=u[r>>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]):a===2?(e+=u[r>>10&63],e+=u[r>>4&63],e+=u[r<<2&63],e+=u[64]):a===1&&(e+=u[r>>2&63],e+=u[r<<4&63],e+=u[64],e+=u[64]),e}function uHe(t){return W0&&W0.isBuffer(t)}HW.exports=new oHe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:aHe,construct:lHe,predicate:uHe,represent:cHe})});var GW=_((axt,jW)=>{"use strict";var AHe=ls(),fHe=Object.prototype.hasOwnProperty,pHe=Object.prototype.toString;function hHe(t){if(t===null)return!0;var e=[],r,o,a,n,u,A=t;for(r=0,o=A.length;r<o;r+=1){if(a=A[r],u=!1,pHe.call(a)!=="[object Object]")return!1;for(n in a)if(fHe.call(a,n))if(!u)u=!0;else return!1;if(!u)return!1;if(e.indexOf(n)===-1)e.push(n);else return!1}return!0}function gHe(t){return t!==null?t:[]}jW.exports=new AHe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:hHe,construct:gHe})});var WW=_((lxt,YW)=>{"use strict";var dHe=ls(),mHe=Object.prototype.toString;function yHe(t){if(t===null)return!0;var e,r,o,a,n,u=t;for(n=new Array(u.length),e=0,r=u.length;e<r;e+=1){if(o=u[e],mHe.call(o)!=="[object Object]"||(a=Object.keys(o),a.length!==1))return!1;n[e]=[a[0],o[a[0]]]}return!0}function EHe(t){if(t===null)return[];var e,r,o,a,n,u=t;for(n=new Array(u.length),e=0,r=u.length;e<r;e+=1)o=u[e],a=Object.keys(o),n[e]=[a[0],o[a[0]]];return n}YW.exports=new dHe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:yHe,construct:EHe})});var VW=_((cxt,KW)=>{"use strict";var CHe=ls(),wHe=Object.prototype.hasOwnProperty;function IHe(t){if(t===null)return!0;var e,r=t;for(e in r)if(wHe.call(r,e)&&r[e]!==null)return!1;return!0}function BHe(t){return t!==null?t:{}}KW.exports=new CHe("tag:yaml.org,2002:set",{kind:"mapping",resolve:IHe,construct:BHe})});var $d=_((uxt,zW)=>{"use strict";var vHe=Y0();zW.exports=new vHe({include:[rT()],implicit:[MW(),UW()],explicit:[qW(),GW(),WW(),VW()]})});var XW=_((Axt,JW)=>{"use strict";var DHe=ls();function PHe(){return!0}function SHe(){}function bHe(){return""}function xHe(t){return typeof t>"u"}JW.exports=new DHe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:PHe,construct:SHe,predicate:xHe,represent:bHe})});var $W=_((fxt,ZW)=>{"use strict";var kHe=ls();function QHe(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),o="";return!(e[0]==="/"&&(r&&(o=r[1]),o.length>3||e[e.length-o.length-1]!=="/"))}function FHe(t){var e=t,r=/\/([gim]*)$/.exec(t),o="";return e[0]==="/"&&(r&&(o=r[1]),e=e.slice(1,e.length-o.length-1)),new RegExp(e,o)}function RHe(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function THe(t){return Object.prototype.toString.call(t)==="[object RegExp]"}ZW.exports=new kHe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:QHe,construct:FHe,predicate:THe,represent:RHe})});var rK=_((pxt,tK)=>{"use strict";var SD;try{eK=ve,SD=eK("esprima")}catch{typeof window<"u"&&(SD=window.esprima)}var eK,NHe=ls();function LHe(t){if(t===null)return!1;try{var e="("+t+")",r=SD.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function MHe(t){var e="("+t+")",r=SD.parse(e,{range:!0}),o=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(n){o.push(n.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(o,e.slice(a[0]+1,a[1]-1)):new Function(o,"return "+e.slice(a[0],a[1]))}function OHe(t){return t.toString()}function UHe(t){return Object.prototype.toString.call(t)==="[object Function]"}tK.exports=new NHe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:LHe,construct:MHe,predicate:UHe,represent:OHe})});var Rw=_((gxt,iK)=>{"use strict";var nK=Y0();iK.exports=nK.DEFAULT=new nK({include:[$d()],explicit:[XW(),$W(),rK()]})});var BK=_((dxt,Tw)=>{"use strict";var mf=G0(),AK=Xd(),_He=AW(),fK=$d(),HHe=Rw(),qp=Object.prototype.hasOwnProperty,bD=1,pK=2,hK=3,xD=4,iT=1,qHe=2,sK=3,jHe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,GHe=/[\x85\u2028\u2029]/,YHe=/[,\[\]\{\}]/,gK=/^(?:!|!!|![a-z\-]+!)$/i,dK=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function oK(t){return Object.prototype.toString.call(t)}function ju(t){return t===10||t===13}function V0(t){return t===9||t===32}function va(t){return t===9||t===32||t===10||t===13}function em(t){return t===44||t===91||t===93||t===123||t===125}function WHe(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function KHe(t){return t===120?2:t===117?4:t===85?8:0}function VHe(t){return 48<=t&&t<=57?t-48:-1}function aK(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?` -`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function zHe(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var mK=new Array(256),yK=new Array(256);for(K0=0;K0<256;K0++)mK[K0]=aK(K0)?1:0,yK[K0]=aK(K0);var K0;function JHe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||HHe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function EK(t,e){return new AK(e,new _He(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function Sr(t,e){throw EK(t,e)}function kD(t,e){t.onWarning&&t.onWarning.call(null,EK(t,e))}var lK={YAML:function(e,r,o){var a,n,u;e.version!==null&&Sr(e,"duplication of %YAML directive"),o.length!==1&&Sr(e,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(o[0]),a===null&&Sr(e,"ill-formed argument of the YAML directive"),n=parseInt(a[1],10),u=parseInt(a[2],10),n!==1&&Sr(e,"unacceptable YAML version of the document"),e.version=o[0],e.checkLineBreaks=u<2,u!==1&&u!==2&&kD(e,"unsupported YAML version of the document")},TAG:function(e,r,o){var a,n;o.length!==2&&Sr(e,"TAG directive accepts exactly two arguments"),a=o[0],n=o[1],gK.test(a)||Sr(e,"ill-formed tag handle (first argument) of the TAG directive"),qp.call(e.tagMap,a)&&Sr(e,'there is a previously declared suffix for "'+a+'" tag handle'),dK.test(n)||Sr(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[a]=n}};function Hp(t,e,r,o){var a,n,u,A;if(e<r){if(A=t.input.slice(e,r),o)for(a=0,n=A.length;a<n;a+=1)u=A.charCodeAt(a),u===9||32<=u&&u<=1114111||Sr(t,"expected valid JSON character");else jHe.test(A)&&Sr(t,"the stream contains non-printable characters");t.result+=A}}function cK(t,e,r,o){var a,n,u,A;for(mf.isObject(r)||Sr(t,"cannot merge mappings; the provided source object is unacceptable"),a=Object.keys(r),u=0,A=a.length;u<A;u+=1)n=a[u],qp.call(e,n)||(e[n]=r[n],o[n]=!0)}function tm(t,e,r,o,a,n,u,A){var p,h;if(Array.isArray(a))for(a=Array.prototype.slice.call(a),p=0,h=a.length;p<h;p+=1)Array.isArray(a[p])&&Sr(t,"nested arrays are not supported inside keys"),typeof a=="object"&&oK(a[p])==="[object Object]"&&(a[p]="[object Object]");if(typeof a=="object"&&oK(a)==="[object Object]"&&(a="[object Object]"),a=String(a),e===null&&(e={}),o==="tag:yaml.org,2002:merge")if(Array.isArray(n))for(p=0,h=n.length;p<h;p+=1)cK(t,e,n[p],r);else cK(t,e,n,r);else!t.json&&!qp.call(r,a)&&qp.call(e,a)&&(t.line=u||t.line,t.position=A||t.position,Sr(t,"duplicated mapping key")),e[a]=n,delete r[a];return e}function sT(t){var e;e=t.input.charCodeAt(t.position),e===10?t.position++:e===13?(t.position++,t.input.charCodeAt(t.position)===10&&t.position++):Sr(t,"a line break is expected"),t.line+=1,t.lineStart=t.position}function Wi(t,e,r){for(var o=0,a=t.input.charCodeAt(t.position);a!==0;){for(;V0(a);)a=t.input.charCodeAt(++t.position);if(e&&a===35)do a=t.input.charCodeAt(++t.position);while(a!==10&&a!==13&&a!==0);if(ju(a))for(sT(t),a=t.input.charCodeAt(t.position),o++,t.lineIndent=0;a===32;)t.lineIndent++,a=t.input.charCodeAt(++t.position);else break}return r!==-1&&o!==0&&t.lineIndent<r&&kD(t,"deficient indentation"),o}function QD(t){var e=t.position,r;return r=t.input.charCodeAt(e),!!((r===45||r===46)&&r===t.input.charCodeAt(e+1)&&r===t.input.charCodeAt(e+2)&&(e+=3,r=t.input.charCodeAt(e),r===0||va(r)))}function oT(t,e){e===1?t.result+=" ":e>1&&(t.result+=mf.repeat(` -`,e-1))}function XHe(t,e,r){var o,a,n,u,A,p,h,E,I=t.kind,v=t.result,x;if(x=t.input.charCodeAt(t.position),va(x)||em(x)||x===35||x===38||x===42||x===33||x===124||x===62||x===39||x===34||x===37||x===64||x===96||(x===63||x===45)&&(a=t.input.charCodeAt(t.position+1),va(a)||r&&em(a)))return!1;for(t.kind="scalar",t.result="",n=u=t.position,A=!1;x!==0;){if(x===58){if(a=t.input.charCodeAt(t.position+1),va(a)||r&&em(a))break}else if(x===35){if(o=t.input.charCodeAt(t.position-1),va(o))break}else{if(t.position===t.lineStart&&QD(t)||r&&em(x))break;if(ju(x))if(p=t.line,h=t.lineStart,E=t.lineIndent,Wi(t,!1,-1),t.lineIndent>=e){A=!0,x=t.input.charCodeAt(t.position);continue}else{t.position=u,t.line=p,t.lineStart=h,t.lineIndent=E;break}}A&&(Hp(t,n,u,!1),oT(t,t.line-p),n=u=t.position,A=!1),V0(x)||(u=t.position+1),x=t.input.charCodeAt(++t.position)}return Hp(t,n,u,!1),t.result?!0:(t.kind=I,t.result=v,!1)}function ZHe(t,e){var r,o,a;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,o=a=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(Hp(t,o,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)o=t.position,t.position++,a=t.position;else return!0;else ju(r)?(Hp(t,o,a,!0),oT(t,Wi(t,!1,e)),o=a=t.position):t.position===t.lineStart&&QD(t)?Sr(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);Sr(t,"unexpected end of the stream within a single quoted scalar")}function $He(t,e){var r,o,a,n,u,A;if(A=t.input.charCodeAt(t.position),A!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=o=t.position;(A=t.input.charCodeAt(t.position))!==0;){if(A===34)return Hp(t,r,t.position,!0),t.position++,!0;if(A===92){if(Hp(t,r,t.position,!0),A=t.input.charCodeAt(++t.position),ju(A))Wi(t,!1,e);else if(A<256&&mK[A])t.result+=yK[A],t.position++;else if((u=KHe(A))>0){for(a=u,n=0;a>0;a--)A=t.input.charCodeAt(++t.position),(u=WHe(A))>=0?n=(n<<4)+u:Sr(t,"expected hexadecimal character");t.result+=zHe(n),t.position++}else Sr(t,"unknown escape sequence");r=o=t.position}else ju(A)?(Hp(t,r,o,!0),oT(t,Wi(t,!1,e)),r=o=t.position):t.position===t.lineStart&&QD(t)?Sr(t,"unexpected end of the document within a double quoted scalar"):(t.position++,o=t.position)}Sr(t,"unexpected end of the stream within a double quoted scalar")}function e6e(t,e){var r=!0,o,a=t.tag,n,u=t.anchor,A,p,h,E,I,v={},x,C,R,L;if(L=t.input.charCodeAt(t.position),L===91)p=93,I=!1,n=[];else if(L===123)p=125,I=!0,n={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),L=t.input.charCodeAt(++t.position);L!==0;){if(Wi(t,!0,e),L=t.input.charCodeAt(t.position),L===p)return t.position++,t.tag=a,t.anchor=u,t.kind=I?"mapping":"sequence",t.result=n,!0;r||Sr(t,"missed comma between flow collection entries"),C=x=R=null,h=E=!1,L===63&&(A=t.input.charCodeAt(t.position+1),va(A)&&(h=E=!0,t.position++,Wi(t,!0,e))),o=t.line,rm(t,e,bD,!1,!0),C=t.tag,x=t.result,Wi(t,!0,e),L=t.input.charCodeAt(t.position),(E||t.line===o)&&L===58&&(h=!0,L=t.input.charCodeAt(++t.position),Wi(t,!0,e),rm(t,e,bD,!1,!0),R=t.result),I?tm(t,n,v,C,x,R):h?n.push(tm(t,null,v,C,x,R)):n.push(x),Wi(t,!0,e),L=t.input.charCodeAt(t.position),L===44?(r=!0,L=t.input.charCodeAt(++t.position)):r=!1}Sr(t,"unexpected end of the stream within a flow collection")}function t6e(t,e){var r,o,a=iT,n=!1,u=!1,A=e,p=0,h=!1,E,I;if(I=t.input.charCodeAt(t.position),I===124)o=!1;else if(I===62)o=!0;else return!1;for(t.kind="scalar",t.result="";I!==0;)if(I=t.input.charCodeAt(++t.position),I===43||I===45)iT===a?a=I===43?sK:qHe:Sr(t,"repeat of a chomping mode identifier");else if((E=VHe(I))>=0)E===0?Sr(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?Sr(t,"repeat of an indentation width identifier"):(A=e+E-1,u=!0);else break;if(V0(I)){do I=t.input.charCodeAt(++t.position);while(V0(I));if(I===35)do I=t.input.charCodeAt(++t.position);while(!ju(I)&&I!==0)}for(;I!==0;){for(sT(t),t.lineIndent=0,I=t.input.charCodeAt(t.position);(!u||t.lineIndent<A)&&I===32;)t.lineIndent++,I=t.input.charCodeAt(++t.position);if(!u&&t.lineIndent>A&&(A=t.lineIndent),ju(I)){p++;continue}if(t.lineIndent<A){a===sK?t.result+=mf.repeat(` -`,n?1+p:p):a===iT&&n&&(t.result+=` -`);break}for(o?V0(I)?(h=!0,t.result+=mf.repeat(` -`,n?1+p:p)):h?(h=!1,t.result+=mf.repeat(` -`,p+1)):p===0?n&&(t.result+=" "):t.result+=mf.repeat(` -`,p):t.result+=mf.repeat(` -`,n?1+p:p),n=!0,u=!0,p=0,r=t.position;!ju(I)&&I!==0;)I=t.input.charCodeAt(++t.position);Hp(t,r,t.position,!1)}return!0}function uK(t,e){var r,o=t.tag,a=t.anchor,n=[],u,A=!1,p;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),p=t.input.charCodeAt(t.position);p!==0&&!(p!==45||(u=t.input.charCodeAt(t.position+1),!va(u)));){if(A=!0,t.position++,Wi(t,!0,-1)&&t.lineIndent<=e){n.push(null),p=t.input.charCodeAt(t.position);continue}if(r=t.line,rm(t,e,hK,!1,!0),n.push(t.result),Wi(t,!0,-1),p=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&p!==0)Sr(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break}return A?(t.tag=o,t.anchor=a,t.kind="sequence",t.result=n,!0):!1}function r6e(t,e,r){var o,a,n,u,A=t.tag,p=t.anchor,h={},E={},I=null,v=null,x=null,C=!1,R=!1,L;for(t.anchor!==null&&(t.anchorMap[t.anchor]=h),L=t.input.charCodeAt(t.position);L!==0;){if(o=t.input.charCodeAt(t.position+1),n=t.line,u=t.position,(L===63||L===58)&&va(o))L===63?(C&&(tm(t,h,E,I,v,null),I=v=x=null),R=!0,C=!0,a=!0):C?(C=!1,a=!0):Sr(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,L=o;else if(rm(t,r,pK,!1,!0))if(t.line===n){for(L=t.input.charCodeAt(t.position);V0(L);)L=t.input.charCodeAt(++t.position);if(L===58)L=t.input.charCodeAt(++t.position),va(L)||Sr(t,"a whitespace character is expected after the key-value separator within a block mapping"),C&&(tm(t,h,E,I,v,null),I=v=x=null),R=!0,C=!1,a=!1,I=t.tag,v=t.result;else if(R)Sr(t,"can not read an implicit mapping pair; a colon is missed");else return t.tag=A,t.anchor=p,!0}else if(R)Sr(t,"can not read a block mapping entry; a multiline key may not be an implicit key");else return t.tag=A,t.anchor=p,!0;else break;if((t.line===n||t.lineIndent>e)&&(rm(t,e,xD,!0,a)&&(C?v=t.result:x=t.result),C||(tm(t,h,E,I,v,x,n,u),I=v=x=null),Wi(t,!0,-1),L=t.input.charCodeAt(t.position)),t.lineIndent>e&&L!==0)Sr(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return C&&tm(t,h,E,I,v,null),R&&(t.tag=A,t.anchor=p,t.kind="mapping",t.result=h),R}function n6e(t){var e,r=!1,o=!1,a,n,u;if(u=t.input.charCodeAt(t.position),u!==33)return!1;if(t.tag!==null&&Sr(t,"duplication of a tag property"),u=t.input.charCodeAt(++t.position),u===60?(r=!0,u=t.input.charCodeAt(++t.position)):u===33?(o=!0,a="!!",u=t.input.charCodeAt(++t.position)):a="!",e=t.position,r){do u=t.input.charCodeAt(++t.position);while(u!==0&&u!==62);t.position<t.length?(n=t.input.slice(e,t.position),u=t.input.charCodeAt(++t.position)):Sr(t,"unexpected end of the stream within a verbatim tag")}else{for(;u!==0&&!va(u);)u===33&&(o?Sr(t,"tag suffix cannot contain exclamation marks"):(a=t.input.slice(e-1,t.position+1),gK.test(a)||Sr(t,"named tag handle cannot contain such characters"),o=!0,e=t.position+1)),u=t.input.charCodeAt(++t.position);n=t.input.slice(e,t.position),YHe.test(n)&&Sr(t,"tag suffix cannot contain flow indicator characters")}return n&&!dK.test(n)&&Sr(t,"tag name cannot contain such characters: "+n),r?t.tag=n:qp.call(t.tagMap,a)?t.tag=t.tagMap[a]+n:a==="!"?t.tag="!"+n:a==="!!"?t.tag="tag:yaml.org,2002:"+n:Sr(t,'undeclared tag handle "'+a+'"'),!0}function i6e(t){var e,r;if(r=t.input.charCodeAt(t.position),r!==38)return!1;for(t.anchor!==null&&Sr(t,"duplication of an anchor property"),r=t.input.charCodeAt(++t.position),e=t.position;r!==0&&!va(r)&&!em(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&Sr(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function s6e(t){var e,r,o;if(o=t.input.charCodeAt(t.position),o!==42)return!1;for(o=t.input.charCodeAt(++t.position),e=t.position;o!==0&&!va(o)&&!em(o);)o=t.input.charCodeAt(++t.position);return t.position===e&&Sr(t,"name of an alias node must contain at least one character"),r=t.input.slice(e,t.position),qp.call(t.anchorMap,r)||Sr(t,'unidentified alias "'+r+'"'),t.result=t.anchorMap[r],Wi(t,!0,-1),!0}function rm(t,e,r,o,a){var n,u,A,p=1,h=!1,E=!1,I,v,x,C,R;if(t.listener!==null&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,n=u=A=xD===r||hK===r,o&&Wi(t,!0,-1)&&(h=!0,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)),p===1)for(;n6e(t)||i6e(t);)Wi(t,!0,-1)?(h=!0,A=n,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)):A=!1;if(A&&(A=h||a),(p===1||xD===r)&&(bD===r||pK===r?C=e:C=e+1,R=t.position-t.lineStart,p===1?A&&(uK(t,R)||r6e(t,R,C))||e6e(t,C)?E=!0:(u&&t6e(t,C)||ZHe(t,C)||$He(t,C)?E=!0:s6e(t)?(E=!0,(t.tag!==null||t.anchor!==null)&&Sr(t,"alias node should not have any properties")):XHe(t,C,bD===r)&&(E=!0,t.tag===null&&(t.tag="?")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):p===0&&(E=A&&uK(t,R))),t.tag!==null&&t.tag!=="!")if(t.tag==="?"){for(t.result!==null&&t.kind!=="scalar"&&Sr(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),I=0,v=t.implicitTypes.length;I<v;I+=1)if(x=t.implicitTypes[I],x.resolve(t.result)){t.result=x.construct(t.result),t.tag=x.tag,t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);break}}else qp.call(t.typeMap[t.kind||"fallback"],t.tag)?(x=t.typeMap[t.kind||"fallback"][t.tag],t.result!==null&&x.kind!==t.kind&&Sr(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+x.kind+'", not "'+t.kind+'"'),x.resolve(t.result)?(t.result=x.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Sr(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):Sr(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||E}function o6e(t){var e=t.position,r,o,a,n=!1,u;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(u=t.input.charCodeAt(t.position))!==0&&(Wi(t,!0,-1),u=t.input.charCodeAt(t.position),!(t.lineIndent>0||u!==37));){for(n=!0,u=t.input.charCodeAt(++t.position),r=t.position;u!==0&&!va(u);)u=t.input.charCodeAt(++t.position);for(o=t.input.slice(r,t.position),a=[],o.length<1&&Sr(t,"directive name must not be less than one character in length");u!==0;){for(;V0(u);)u=t.input.charCodeAt(++t.position);if(u===35){do u=t.input.charCodeAt(++t.position);while(u!==0&&!ju(u));break}if(ju(u))break;for(r=t.position;u!==0&&!va(u);)u=t.input.charCodeAt(++t.position);a.push(t.input.slice(r,t.position))}u!==0&&sT(t),qp.call(lK,o)?lK[o](t,o,a):kD(t,'unknown document directive "'+o+'"')}if(Wi(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Wi(t,!0,-1)):n&&Sr(t,"directives end mark is expected"),rm(t,t.lineIndent-1,xD,!1,!0),Wi(t,!0,-1),t.checkLineBreaks&&GHe.test(t.input.slice(e,t.position))&&kD(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&QD(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Wi(t,!0,-1));return}if(t.position<t.length-1)Sr(t,"end of the stream or a document separator is expected");else return}function CK(t,e){t=String(t),e=e||{},t.length!==0&&(t.charCodeAt(t.length-1)!==10&&t.charCodeAt(t.length-1)!==13&&(t+=` -`),t.charCodeAt(0)===65279&&(t=t.slice(1)));var r=new JHe(t,e),o=t.indexOf("\0");for(o!==-1&&(r.position=o,Sr(r,"null byte is not allowed in input")),r.input+="\0";r.input.charCodeAt(r.position)===32;)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)o6e(r);return r.documents}function wK(t,e,r){e!==null&&typeof e=="object"&&typeof r>"u"&&(r=e,e=null);var o=CK(t,r);if(typeof e!="function")return o;for(var a=0,n=o.length;a<n;a+=1)e(o[a])}function IK(t,e){var r=CK(t,e);if(r.length!==0){if(r.length===1)return r[0];throw new AK("expected a single document in the stream, but found more")}}function a6e(t,e,r){return typeof e=="object"&&e!==null&&typeof r>"u"&&(r=e,e=null),wK(t,e,mf.extend({schema:fK},r))}function l6e(t,e){return IK(t,mf.extend({schema:fK},e))}Tw.exports.loadAll=wK;Tw.exports.load=IK;Tw.exports.safeLoadAll=a6e;Tw.exports.safeLoad=l6e});var WK=_((mxt,uT)=>{"use strict";var Lw=G0(),Mw=Xd(),c6e=Rw(),u6e=$d(),QK=Object.prototype.toString,FK=Object.prototype.hasOwnProperty,A6e=9,Nw=10,f6e=13,p6e=32,h6e=33,g6e=34,RK=35,d6e=37,m6e=38,y6e=39,E6e=42,TK=44,C6e=45,NK=58,w6e=61,I6e=62,B6e=63,v6e=64,LK=91,MK=93,D6e=96,OK=123,P6e=124,UK=125,vo={};vo[0]="\\0";vo[7]="\\a";vo[8]="\\b";vo[9]="\\t";vo[10]="\\n";vo[11]="\\v";vo[12]="\\f";vo[13]="\\r";vo[27]="\\e";vo[34]='\\"';vo[92]="\\\\";vo[133]="\\N";vo[160]="\\_";vo[8232]="\\L";vo[8233]="\\P";var S6e=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function b6e(t,e){var r,o,a,n,u,A,p;if(e===null)return{};for(r={},o=Object.keys(e),a=0,n=o.length;a<n;a+=1)u=o[a],A=String(e[u]),u.slice(0,2)==="!!"&&(u="tag:yaml.org,2002:"+u.slice(2)),p=t.compiledTypeMap.fallback[u],p&&FK.call(p.styleAliases,A)&&(A=p.styleAliases[A]),r[u]=A;return r}function vK(t){var e,r,o;if(e=t.toString(16).toUpperCase(),t<=255)r="x",o=2;else if(t<=65535)r="u",o=4;else if(t<=4294967295)r="U",o=8;else throw new Mw("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+Lw.repeat("0",o-e.length)+e}function x6e(t){this.schema=t.schema||c6e,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=Lw.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=b6e(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function DK(t,e){for(var r=Lw.repeat(" ",e),o=0,a=-1,n="",u,A=t.length;o<A;)a=t.indexOf(` -`,o),a===-1?(u=t.slice(o),o=A):(u=t.slice(o,a+1),o=a+1),u.length&&u!==` -`&&(n+=r),n+=u;return n}function aT(t,e){return` -`+Lw.repeat(" ",t.indent*e)}function k6e(t,e){var r,o,a;for(r=0,o=t.implicitTypes.length;r<o;r+=1)if(a=t.implicitTypes[r],a.resolve(e))return!0;return!1}function cT(t){return t===p6e||t===A6e}function nm(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==65279||65536<=t&&t<=1114111}function Q6e(t){return nm(t)&&!cT(t)&&t!==65279&&t!==f6e&&t!==Nw}function PK(t,e){return nm(t)&&t!==65279&&t!==TK&&t!==LK&&t!==MK&&t!==OK&&t!==UK&&t!==NK&&(t!==RK||e&&Q6e(e))}function F6e(t){return nm(t)&&t!==65279&&!cT(t)&&t!==C6e&&t!==B6e&&t!==NK&&t!==TK&&t!==LK&&t!==MK&&t!==OK&&t!==UK&&t!==RK&&t!==m6e&&t!==E6e&&t!==h6e&&t!==P6e&&t!==w6e&&t!==I6e&&t!==y6e&&t!==g6e&&t!==d6e&&t!==v6e&&t!==D6e}function _K(t){var e=/^\n* /;return e.test(t)}var HK=1,qK=2,jK=3,GK=4,FD=5;function R6e(t,e,r,o,a){var n,u,A,p=!1,h=!1,E=o!==-1,I=-1,v=F6e(t.charCodeAt(0))&&!cT(t.charCodeAt(t.length-1));if(e)for(n=0;n<t.length;n++){if(u=t.charCodeAt(n),!nm(u))return FD;A=n>0?t.charCodeAt(n-1):null,v=v&&PK(u,A)}else{for(n=0;n<t.length;n++){if(u=t.charCodeAt(n),u===Nw)p=!0,E&&(h=h||n-I-1>o&&t[I+1]!==" ",I=n);else if(!nm(u))return FD;A=n>0?t.charCodeAt(n-1):null,v=v&&PK(u,A)}h=h||E&&n-I-1>o&&t[I+1]!==" "}return!p&&!h?v&&!a(t)?HK:qK:r>9&&_K(t)?FD:h?GK:jK}function T6e(t,e,r,o){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&S6e.indexOf(e)!==-1)return"'"+e+"'";var a=t.indent*Math.max(1,r),n=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),u=o||t.flowLevel>-1&&r>=t.flowLevel;function A(p){return k6e(t,p)}switch(R6e(e,u,t.indent,n,A)){case HK:return e;case qK:return"'"+e.replace(/'/g,"''")+"'";case jK:return"|"+SK(e,t.indent)+bK(DK(e,a));case GK:return">"+SK(e,t.indent)+bK(DK(N6e(e,n),a));case FD:return'"'+L6e(e,n)+'"';default:throw new Mw("impossible error: invalid scalar style")}}()}function SK(t,e){var r=_K(t)?String(e):"",o=t[t.length-1]===` -`,a=o&&(t[t.length-2]===` -`||t===` -`),n=a?"+":o?"":"-";return r+n+` -`}function bK(t){return t[t.length-1]===` -`?t.slice(0,-1):t}function N6e(t,e){for(var r=/(\n+)([^\n]*)/g,o=function(){var h=t.indexOf(` -`);return h=h!==-1?h:t.length,r.lastIndex=h,xK(t.slice(0,h),e)}(),a=t[0]===` -`||t[0]===" ",n,u;u=r.exec(t);){var A=u[1],p=u[2];n=p[0]===" ",o+=A+(!a&&!n&&p!==""?` -`:"")+xK(p,e),a=n}return o}function xK(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,o,a=0,n,u=0,A=0,p="";o=r.exec(t);)A=o.index,A-a>e&&(n=u>a?u:A,p+=` -`+t.slice(a,n),a=n+1),u=A;return p+=` -`,t.length-a>e&&u>a?p+=t.slice(a,u)+` -`+t.slice(u+1):p+=t.slice(a),p.slice(1)}function L6e(t){for(var e="",r,o,a,n=0;n<t.length;n++){if(r=t.charCodeAt(n),r>=55296&&r<=56319&&(o=t.charCodeAt(n+1),o>=56320&&o<=57343)){e+=vK((r-55296)*1024+o-56320+65536),n++;continue}a=vo[r],e+=!a&&nm(r)?t[n]:a||vK(r)}return e}function M6e(t,e,r){var o="",a=t.tag,n,u;for(n=0,u=r.length;n<u;n+=1)z0(t,e,r[n],!1,!1)&&(n!==0&&(o+=","+(t.condenseFlow?"":" ")),o+=t.dump);t.tag=a,t.dump="["+o+"]"}function O6e(t,e,r,o){var a="",n=t.tag,u,A;for(u=0,A=r.length;u<A;u+=1)z0(t,e+1,r[u],!0,!0)&&((!o||u!==0)&&(a+=aT(t,e)),t.dump&&Nw===t.dump.charCodeAt(0)?a+="-":a+="- ",a+=t.dump);t.tag=n,t.dump=a||"[]"}function U6e(t,e,r){var o="",a=t.tag,n=Object.keys(r),u,A,p,h,E;for(u=0,A=n.length;u<A;u+=1)E="",u!==0&&(E+=", "),t.condenseFlow&&(E+='"'),p=n[u],h=r[p],z0(t,e,p,!1,!1)&&(t.dump.length>1024&&(E+="? "),E+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),z0(t,e,h,!1,!1)&&(E+=t.dump,o+=E));t.tag=a,t.dump="{"+o+"}"}function _6e(t,e,r,o){var a="",n=t.tag,u=Object.keys(r),A,p,h,E,I,v;if(t.sortKeys===!0)u.sort();else if(typeof t.sortKeys=="function")u.sort(t.sortKeys);else if(t.sortKeys)throw new Mw("sortKeys must be a boolean or a function");for(A=0,p=u.length;A<p;A+=1)v="",(!o||A!==0)&&(v+=aT(t,e)),h=u[A],E=r[h],z0(t,e+1,h,!0,!0,!0)&&(I=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,I&&(t.dump&&Nw===t.dump.charCodeAt(0)?v+="?":v+="? "),v+=t.dump,I&&(v+=aT(t,e)),z0(t,e+1,E,!0,I)&&(t.dump&&Nw===t.dump.charCodeAt(0)?v+=":":v+=": ",v+=t.dump,a+=v));t.tag=n,t.dump=a||"{}"}function kK(t,e,r){var o,a,n,u,A,p;for(a=r?t.explicitTypes:t.implicitTypes,n=0,u=a.length;n<u;n+=1)if(A=a[n],(A.instanceOf||A.predicate)&&(!A.instanceOf||typeof e=="object"&&e instanceof A.instanceOf)&&(!A.predicate||A.predicate(e))){if(t.tag=r?A.tag:"?",A.represent){if(p=t.styleMap[A.tag]||A.defaultStyle,QK.call(A.represent)==="[object Function]")o=A.represent(e,p);else if(FK.call(A.represent,p))o=A.represent[p](e,p);else throw new Mw("!<"+A.tag+'> tag resolver accepts not "'+p+'" style');t.dump=o}return!0}return!1}function z0(t,e,r,o,a,n){t.tag=null,t.dump=r,kK(t,r,!1)||kK(t,r,!0);var u=QK.call(t.dump);o&&(o=t.flowLevel<0||t.flowLevel>e);var A=u==="[object Object]"||u==="[object Array]",p,h;if(A&&(p=t.duplicates.indexOf(r),h=p!==-1),(t.tag!==null&&t.tag!=="?"||h||t.indent!==2&&e>0)&&(a=!1),h&&t.usedDuplicates[p])t.dump="*ref_"+p;else{if(A&&h&&!t.usedDuplicates[p]&&(t.usedDuplicates[p]=!0),u==="[object Object]")o&&Object.keys(t.dump).length!==0?(_6e(t,e,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(U6e(t,e,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump));else if(u==="[object Array]"){var E=t.noArrayIndent&&e>0?e-1:e;o&&t.dump.length!==0?(O6e(t,E,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(M6e(t,E,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump))}else if(u==="[object String]")t.tag!=="?"&&T6e(t,t.dump,e,n);else{if(t.skipInvalid)return!1;throw new Mw("unacceptable kind of an object to dump "+u)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function H6e(t,e){var r=[],o=[],a,n;for(lT(t,r,o),a=0,n=o.length;a<n;a+=1)e.duplicates.push(r[o[a]]);e.usedDuplicates=new Array(n)}function lT(t,e,r){var o,a,n;if(t!==null&&typeof t=="object")if(a=e.indexOf(t),a!==-1)r.indexOf(a)===-1&&r.push(a);else if(e.push(t),Array.isArray(t))for(a=0,n=t.length;a<n;a+=1)lT(t[a],e,r);else for(o=Object.keys(t),a=0,n=o.length;a<n;a+=1)lT(t[o[a]],e,r)}function YK(t,e){e=e||{};var r=new x6e(e);return r.noRefs||H6e(t,r),z0(r,0,t,!0,!0)?r.dump+` -`:""}function q6e(t,e){return YK(t,Lw.extend({schema:u6e},e))}uT.exports.dump=YK;uT.exports.safeDump=q6e});var VK=_((yxt,xi)=>{"use strict";var RD=BK(),KK=WK();function TD(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}xi.exports.Type=ls();xi.exports.Schema=Y0();xi.exports.FAILSAFE_SCHEMA=PD();xi.exports.JSON_SCHEMA=tT();xi.exports.CORE_SCHEMA=rT();xi.exports.DEFAULT_SAFE_SCHEMA=$d();xi.exports.DEFAULT_FULL_SCHEMA=Rw();xi.exports.load=RD.load;xi.exports.loadAll=RD.loadAll;xi.exports.safeLoad=RD.safeLoad;xi.exports.safeLoadAll=RD.safeLoadAll;xi.exports.dump=KK.dump;xi.exports.safeDump=KK.safeDump;xi.exports.YAMLException=Xd();xi.exports.MINIMAL_SCHEMA=PD();xi.exports.SAFE_SCHEMA=$d();xi.exports.DEFAULT_SCHEMA=Rw();xi.exports.scan=TD("scan");xi.exports.parse=TD("parse");xi.exports.compose=TD("compose");xi.exports.addConstructor=TD("addConstructor")});var JK=_((Ext,zK)=>{"use strict";var j6e=VK();zK.exports=j6e});var ZK=_((Cxt,XK)=>{"use strict";function G6e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function J0(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,J0)}G6e(J0,Error);J0.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I<h.parts.length;I++)E+=h.parts[I]instanceof Array?n(h.parts[I][0])+"-"+n(h.parts[I][1]):n(h.parts[I]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function o(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function u(h){return r[h.type](h)}function A(h){var E=new Array(h.length),I,v;for(I=0;I<h.length;I++)E[I]=u(h[I]);if(E.sort(),E.length>0){for(I=1,v=1;I<E.length;I++)E[I-1]!==E[I]&&(E[v]=E[I],v++);E.length=v}switch(E.length){case 1:return E[0];case 2:return E[0]+" or "+E[1];default:return E.slice(0,-1).join(", ")+", or "+E[E.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+A(t)+" but "+p(e)+" found."};function Y6e(t,e){e=e!==void 0?e:{};var r={},o={Start:gu},a=gu,n=function(ee){return[].concat(...ee)},u="-",A=Qn("-",!1),p=function(ee){return ee},h=function(ee){return Object.assign({},...ee)},E="#",I=Qn("#",!1),v=gc(),x=function(){return{}},C=":",R=Qn(":",!1),L=function(ee,ye){return{[ee]:ye}},U=",",z=Qn(",",!1),te=function(ee,ye){return ye},ae=function(ee,ye,Le){return Object.assign({},...[ee].concat(ye).map(ft=>({[ft]:Le})))},le=function(ee){return ee},ce=function(ee){return ee},Ce=aa("correct indentation"),de=" ",Be=Qn(" ",!1),Ee=function(ee){return ee.length===or*Bt},g=function(ee){return ee.length===(or+1)*Bt},me=function(){return or++,!0},we=function(){return or--,!0},Ae=function(){return DA()},ne=aa("pseudostring"),Z=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,xe=hi(["\r",` -`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Ne=/^[^\r\n\t ,\][{}:#"']/,ht=hi(["\r",` -`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),H=function(){return DA().replace(/^ *| *$/g,"")},rt="--",Te=Qn("--",!1),Fe=/^[a-zA-Z\/0-9]/,ke=hi([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),Ye=/^[^\r\n\t :,]/,Se=hi(["\r",` -`," "," ",":",","],!0,!1),et="null",Ue=Qn("null",!1),b=function(){return null},w="true",S=Qn("true",!1),y=function(){return!0},F="false",J=Qn("false",!1),X=function(){return!1},$=aa("string"),ie='"',be=Qn('"',!1),Re=function(){return""},at=function(ee){return ee},dt=function(ee){return ee.join("")},jt=/^[^"\\\0-\x1F\x7F]/,tr=hi(['"',"\\",["\0",""],"\x7F"],!0,!1),St='\\"',ln=Qn('\\"',!1),kr=function(){return'"'},mr="\\\\",br=Qn("\\\\",!1),Kr=function(){return"\\"},Kn="\\/",Ms=Qn("\\/",!1),Ri=function(){return"/"},gs="\\b",io=Qn("\\b",!1),Pi=function(){return"\b"},Os="\\f",so=Qn("\\f",!1),uc=function(){return"\f"},Au="\\n",sp=Qn("\\n",!1),op=function(){return` -`},Us="\\r",Dn=Qn("\\r",!1),oo=function(){return"\r"},_s="\\t",ml=Qn("\\t",!1),yl=function(){return" "},ao="\\u",Vn=Qn("\\u",!1),Mn=function(ee,ye,Le,ft){return String.fromCharCode(parseInt(`0x${ee}${ye}${Le}${ft}`))},Ti=/^[0-9a-fA-F]/,On=hi([["0","9"],["a","f"],["A","F"]],!1,!1),_i=aa("blank space"),ir=/^[ \t]/,Me=hi([" "," "],!1,!1),ii=aa("white space"),Ha=/^[ \t\n\r]/,hr=hi([" "," ",` -`,"\r"],!1,!1),Ac=`\r -`,fu=Qn(`\r -`,!1),fc=` -`,El=Qn(` -`,!1),vA="\r",pu=Qn("\r",!1),Ie=0,Tt=0,pc=[{line:1,column:1}],Hi=0,hu=[],Yt=0,Cl;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function DA(){return t.substring(Tt,Ie)}function ap(){return _o(Tt,Ie)}function hc(ee,ye){throw ye=ye!==void 0?ye:_o(Tt,Ie),dc([aa(ee)],t.substring(Tt,Ie),ye)}function PA(ee,ye){throw ye=ye!==void 0?ye:_o(Tt,Ie),lo(ee,ye)}function Qn(ee,ye){return{type:"literal",text:ee,ignoreCase:ye}}function hi(ee,ye,Le){return{type:"class",parts:ee,inverted:ye,ignoreCase:Le}}function gc(){return{type:"any"}}function SA(){return{type:"end"}}function aa(ee){return{type:"other",description:ee}}function Ni(ee){var ye=pc[ee],Le;if(ye)return ye;for(Le=ee-1;!pc[Le];)Le--;for(ye=pc[Le],ye={line:ye.line,column:ye.column};Le<ee;)t.charCodeAt(Le)===10?(ye.line++,ye.column=1):ye.column++,Le++;return pc[ee]=ye,ye}function _o(ee,ye){var Le=Ni(ee),ft=Ni(ye);return{start:{offset:ee,line:Le.line,column:Le.column},end:{offset:ye,line:ft.line,column:ft.column}}}function Xe(ee){Ie<Hi||(Ie>Hi&&(Hi=Ie,hu=[]),hu.push(ee))}function lo(ee,ye){return new J0(ee,null,null,ye)}function dc(ee,ye,Le){return new J0(J0.buildMessage(ee,ye),ee,ye,Le)}function gu(){var ee;return ee=bA(),ee}function qi(){var ee,ye,Le;for(ee=Ie,ye=[],Le=du();Le!==r;)ye.push(Le),Le=du();return ye!==r&&(Tt=ee,ye=n(ye)),ee=ye,ee}function du(){var ee,ye,Le,ft,pt;return ee=Ie,ye=ds(),ye!==r?(t.charCodeAt(Ie)===45?(Le=u,Ie++):(Le=r,Yt===0&&Xe(A)),Le!==r?(ft=Pn(),ft!==r?(pt=mc(),pt!==r?(Tt=ee,ye=p(pt),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee}function bA(){var ee,ye,Le;for(ee=Ie,ye=[],Le=qa();Le!==r;)ye.push(Le),Le=qa();return ye!==r&&(Tt=ee,ye=h(ye)),ee=ye,ee}function qa(){var ee,ye,Le,ft,pt,Nt,rr,$r,ji;if(ee=Ie,ye=Pn(),ye===r&&(ye=null),ye!==r){if(Le=Ie,t.charCodeAt(Ie)===35?(ft=E,Ie++):(ft=r,Yt===0&&Xe(I)),ft!==r){if(pt=[],Nt=Ie,rr=Ie,Yt++,$r=tt(),Yt--,$r===r?rr=void 0:(Ie=rr,rr=r),rr!==r?(t.length>Ie?($r=t.charAt(Ie),Ie++):($r=r,Yt===0&&Xe(v)),$r!==r?(rr=[rr,$r],Nt=rr):(Ie=Nt,Nt=r)):(Ie=Nt,Nt=r),Nt!==r)for(;Nt!==r;)pt.push(Nt),Nt=Ie,rr=Ie,Yt++,$r=tt(),Yt--,$r===r?rr=void 0:(Ie=rr,rr=r),rr!==r?(t.length>Ie?($r=t.charAt(Ie),Ie++):($r=r,Yt===0&&Xe(v)),$r!==r?(rr=[rr,$r],Nt=rr):(Ie=Nt,Nt=r)):(Ie=Nt,Nt=r);else pt=r;pt!==r?(ft=[ft,pt],Le=ft):(Ie=Le,Le=r)}else Ie=Le,Le=r;if(Le===r&&(Le=null),Le!==r){if(ft=[],pt=We(),pt!==r)for(;pt!==r;)ft.push(pt),pt=We();else ft=r;ft!==r?(Tt=ee,ye=x(),ee=ye):(Ie=ee,ee=r)}else Ie=ee,ee=r}else Ie=ee,ee=r;if(ee===r&&(ee=Ie,ye=ds(),ye!==r?(Le=la(),Le!==r?(ft=Pn(),ft===r&&(ft=null),ft!==r?(t.charCodeAt(Ie)===58?(pt=C,Ie++):(pt=r,Yt===0&&Xe(R)),pt!==r?(Nt=Pn(),Nt===r&&(Nt=null),Nt!==r?(rr=mc(),rr!==r?(Tt=ee,ye=L(Le,rr),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee===r&&(ee=Ie,ye=ds(),ye!==r?(Le=co(),Le!==r?(ft=Pn(),ft===r&&(ft=null),ft!==r?(t.charCodeAt(Ie)===58?(pt=C,Ie++):(pt=r,Yt===0&&Xe(R)),pt!==r?(Nt=Pn(),Nt===r&&(Nt=null),Nt!==r?(rr=mc(),rr!==r?(Tt=ee,ye=L(Le,rr),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee===r))){if(ee=Ie,ye=ds(),ye!==r)if(Le=co(),Le!==r)if(ft=Pn(),ft!==r)if(pt=ca(),pt!==r){if(Nt=[],rr=We(),rr!==r)for(;rr!==r;)Nt.push(rr),rr=We();else Nt=r;Nt!==r?(Tt=ee,ye=L(Le,pt),ee=ye):(Ie=ee,ee=r)}else Ie=ee,ee=r;else Ie=ee,ee=r;else Ie=ee,ee=r;else Ie=ee,ee=r;if(ee===r)if(ee=Ie,ye=ds(),ye!==r)if(Le=co(),Le!==r){if(ft=[],pt=Ie,Nt=Pn(),Nt===r&&(Nt=null),Nt!==r?(t.charCodeAt(Ie)===44?(rr=U,Ie++):(rr=r,Yt===0&&Xe(z)),rr!==r?($r=Pn(),$r===r&&($r=null),$r!==r?(ji=co(),ji!==r?(Tt=pt,Nt=te(Le,ji),pt=Nt):(Ie=pt,pt=r)):(Ie=pt,pt=r)):(Ie=pt,pt=r)):(Ie=pt,pt=r),pt!==r)for(;pt!==r;)ft.push(pt),pt=Ie,Nt=Pn(),Nt===r&&(Nt=null),Nt!==r?(t.charCodeAt(Ie)===44?(rr=U,Ie++):(rr=r,Yt===0&&Xe(z)),rr!==r?($r=Pn(),$r===r&&($r=null),$r!==r?(ji=co(),ji!==r?(Tt=pt,Nt=te(Le,ji),pt=Nt):(Ie=pt,pt=r)):(Ie=pt,pt=r)):(Ie=pt,pt=r)):(Ie=pt,pt=r);else ft=r;ft!==r?(pt=Pn(),pt===r&&(pt=null),pt!==r?(t.charCodeAt(Ie)===58?(Nt=C,Ie++):(Nt=r,Yt===0&&Xe(R)),Nt!==r?(rr=Pn(),rr===r&&(rr=null),rr!==r?($r=mc(),$r!==r?(Tt=ee,ye=ae(Le,ft,$r),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)}else Ie=ee,ee=r;else Ie=ee,ee=r}return ee}function mc(){var ee,ye,Le,ft,pt,Nt,rr;if(ee=Ie,ye=Ie,Yt++,Le=Ie,ft=tt(),ft!==r?(pt=Ht(),pt!==r?(t.charCodeAt(Ie)===45?(Nt=u,Ie++):(Nt=r,Yt===0&&Xe(A)),Nt!==r?(rr=Pn(),rr!==r?(ft=[ft,pt,Nt,rr],Le=ft):(Ie=Le,Le=r)):(Ie=Le,Le=r)):(Ie=Le,Le=r)):(Ie=Le,Le=r),Yt--,Le!==r?(Ie=ye,ye=void 0):ye=r,ye!==r?(Le=We(),Le!==r?(ft=Fn(),ft!==r?(pt=qi(),pt!==r?(Nt=Ei(),Nt!==r?(Tt=ee,ye=le(pt),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee===r&&(ee=Ie,ye=tt(),ye!==r?(Le=Fn(),Le!==r?(ft=bA(),ft!==r?(pt=Ei(),pt!==r?(Tt=ee,ye=le(ft),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee===r))if(ee=Ie,ye=Hs(),ye!==r){if(Le=[],ft=We(),ft!==r)for(;ft!==r;)Le.push(ft),ft=We();else Le=r;Le!==r?(Tt=ee,ye=ce(ye),ee=ye):(Ie=ee,ee=r)}else Ie=ee,ee=r;return ee}function ds(){var ee,ye,Le;for(Yt++,ee=Ie,ye=[],t.charCodeAt(Ie)===32?(Le=de,Ie++):(Le=r,Yt===0&&Xe(Be));Le!==r;)ye.push(Le),t.charCodeAt(Ie)===32?(Le=de,Ie++):(Le=r,Yt===0&&Xe(Be));return ye!==r?(Tt=Ie,Le=Ee(ye),Le?Le=void 0:Le=r,Le!==r?(ye=[ye,Le],ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r),Yt--,ee===r&&(ye=r,Yt===0&&Xe(Ce)),ee}function Ht(){var ee,ye,Le;for(ee=Ie,ye=[],t.charCodeAt(Ie)===32?(Le=de,Ie++):(Le=r,Yt===0&&Xe(Be));Le!==r;)ye.push(Le),t.charCodeAt(Ie)===32?(Le=de,Ie++):(Le=r,Yt===0&&Xe(Be));return ye!==r?(Tt=Ie,Le=g(ye),Le?Le=void 0:Le=r,Le!==r?(ye=[ye,Le],ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee}function Fn(){var ee;return Tt=Ie,ee=me(),ee?ee=void 0:ee=r,ee}function Ei(){var ee;return Tt=Ie,ee=we(),ee?ee=void 0:ee=r,ee}function la(){var ee;return ee=ys(),ee===r&&(ee=ua()),ee}function co(){var ee,ye,Le;if(ee=ys(),ee===r){if(ee=Ie,ye=[],Le=Ho(),Le!==r)for(;Le!==r;)ye.push(Le),Le=Ho();else ye=r;ye!==r&&(Tt=ee,ye=Ae()),ee=ye}return ee}function Hs(){var ee;return ee=Ci(),ee===r&&(ee=ms(),ee===r&&(ee=ys(),ee===r&&(ee=ua()))),ee}function ca(){var ee;return ee=Ci(),ee===r&&(ee=ys(),ee===r&&(ee=Ho())),ee}function ua(){var ee,ye,Le,ft,pt,Nt;if(Yt++,ee=Ie,Z.test(t.charAt(Ie))?(ye=t.charAt(Ie),Ie++):(ye=r,Yt===0&&Xe(xe)),ye!==r){for(Le=[],ft=Ie,pt=Pn(),pt===r&&(pt=null),pt!==r?(Ne.test(t.charAt(Ie))?(Nt=t.charAt(Ie),Ie++):(Nt=r,Yt===0&&Xe(ht)),Nt!==r?(pt=[pt,Nt],ft=pt):(Ie=ft,ft=r)):(Ie=ft,ft=r);ft!==r;)Le.push(ft),ft=Ie,pt=Pn(),pt===r&&(pt=null),pt!==r?(Ne.test(t.charAt(Ie))?(Nt=t.charAt(Ie),Ie++):(Nt=r,Yt===0&&Xe(ht)),Nt!==r?(pt=[pt,Nt],ft=pt):(Ie=ft,ft=r)):(Ie=ft,ft=r);Le!==r?(Tt=ee,ye=H(),ee=ye):(Ie=ee,ee=r)}else Ie=ee,ee=r;return Yt--,ee===r&&(ye=r,Yt===0&&Xe(ne)),ee}function Ho(){var ee,ye,Le,ft,pt;if(ee=Ie,t.substr(Ie,2)===rt?(ye=rt,Ie+=2):(ye=r,Yt===0&&Xe(Te)),ye===r&&(ye=null),ye!==r)if(Fe.test(t.charAt(Ie))?(Le=t.charAt(Ie),Ie++):(Le=r,Yt===0&&Xe(ke)),Le!==r){for(ft=[],Ye.test(t.charAt(Ie))?(pt=t.charAt(Ie),Ie++):(pt=r,Yt===0&&Xe(Se));pt!==r;)ft.push(pt),Ye.test(t.charAt(Ie))?(pt=t.charAt(Ie),Ie++):(pt=r,Yt===0&&Xe(Se));ft!==r?(Tt=ee,ye=H(),ee=ye):(Ie=ee,ee=r)}else Ie=ee,ee=r;else Ie=ee,ee=r;return ee}function Ci(){var ee,ye;return ee=Ie,t.substr(Ie,4)===et?(ye=et,Ie+=4):(ye=r,Yt===0&&Xe(Ue)),ye!==r&&(Tt=ee,ye=b()),ee=ye,ee}function ms(){var ee,ye;return ee=Ie,t.substr(Ie,4)===w?(ye=w,Ie+=4):(ye=r,Yt===0&&Xe(S)),ye!==r&&(Tt=ee,ye=y()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,5)===F?(ye=F,Ie+=5):(ye=r,Yt===0&&Xe(J)),ye!==r&&(Tt=ee,ye=X()),ee=ye),ee}function ys(){var ee,ye,Le,ft;return Yt++,ee=Ie,t.charCodeAt(Ie)===34?(ye=ie,Ie++):(ye=r,Yt===0&&Xe(be)),ye!==r?(t.charCodeAt(Ie)===34?(Le=ie,Ie++):(Le=r,Yt===0&&Xe(be)),Le!==r?(Tt=ee,ye=Re(),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r),ee===r&&(ee=Ie,t.charCodeAt(Ie)===34?(ye=ie,Ie++):(ye=r,Yt===0&&Xe(be)),ye!==r?(Le=Es(),Le!==r?(t.charCodeAt(Ie)===34?(ft=ie,Ie++):(ft=r,Yt===0&&Xe(be)),ft!==r?(Tt=ee,ye=at(Le),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)),Yt--,ee===r&&(ye=r,Yt===0&&Xe($)),ee}function Es(){var ee,ye,Le;if(ee=Ie,ye=[],Le=qs(),Le!==r)for(;Le!==r;)ye.push(Le),Le=qs();else ye=r;return ye!==r&&(Tt=ee,ye=dt(ye)),ee=ye,ee}function qs(){var ee,ye,Le,ft,pt,Nt;return jt.test(t.charAt(Ie))?(ee=t.charAt(Ie),Ie++):(ee=r,Yt===0&&Xe(tr)),ee===r&&(ee=Ie,t.substr(Ie,2)===St?(ye=St,Ie+=2):(ye=r,Yt===0&&Xe(ln)),ye!==r&&(Tt=ee,ye=kr()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===mr?(ye=mr,Ie+=2):(ye=r,Yt===0&&Xe(br)),ye!==r&&(Tt=ee,ye=Kr()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===Kn?(ye=Kn,Ie+=2):(ye=r,Yt===0&&Xe(Ms)),ye!==r&&(Tt=ee,ye=Ri()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===gs?(ye=gs,Ie+=2):(ye=r,Yt===0&&Xe(io)),ye!==r&&(Tt=ee,ye=Pi()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===Os?(ye=Os,Ie+=2):(ye=r,Yt===0&&Xe(so)),ye!==r&&(Tt=ee,ye=uc()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===Au?(ye=Au,Ie+=2):(ye=r,Yt===0&&Xe(sp)),ye!==r&&(Tt=ee,ye=op()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===Us?(ye=Us,Ie+=2):(ye=r,Yt===0&&Xe(Dn)),ye!==r&&(Tt=ee,ye=oo()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===_s?(ye=_s,Ie+=2):(ye=r,Yt===0&&Xe(ml)),ye!==r&&(Tt=ee,ye=yl()),ee=ye,ee===r&&(ee=Ie,t.substr(Ie,2)===ao?(ye=ao,Ie+=2):(ye=r,Yt===0&&Xe(Vn)),ye!==r?(Le=Un(),Le!==r?(ft=Un(),ft!==r?(pt=Un(),pt!==r?(Nt=Un(),Nt!==r?(Tt=ee,ye=Mn(Le,ft,pt,Nt),ee=ye):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)):(Ie=ee,ee=r)))))))))),ee}function Un(){var ee;return Ti.test(t.charAt(Ie))?(ee=t.charAt(Ie),Ie++):(ee=r,Yt===0&&Xe(On)),ee}function Pn(){var ee,ye;if(Yt++,ee=[],ir.test(t.charAt(Ie))?(ye=t.charAt(Ie),Ie++):(ye=r,Yt===0&&Xe(Me)),ye!==r)for(;ye!==r;)ee.push(ye),ir.test(t.charAt(Ie))?(ye=t.charAt(Ie),Ie++):(ye=r,Yt===0&&Xe(Me));else ee=r;return Yt--,ee===r&&(ye=r,Yt===0&&Xe(_i)),ee}function Cs(){var ee,ye;if(Yt++,ee=[],Ha.test(t.charAt(Ie))?(ye=t.charAt(Ie),Ie++):(ye=r,Yt===0&&Xe(hr)),ye!==r)for(;ye!==r;)ee.push(ye),Ha.test(t.charAt(Ie))?(ye=t.charAt(Ie),Ie++):(ye=r,Yt===0&&Xe(hr));else ee=r;return Yt--,ee===r&&(ye=r,Yt===0&&Xe(ii)),ee}function We(){var ee,ye,Le,ft,pt,Nt;if(ee=Ie,ye=tt(),ye!==r){for(Le=[],ft=Ie,pt=Pn(),pt===r&&(pt=null),pt!==r?(Nt=tt(),Nt!==r?(pt=[pt,Nt],ft=pt):(Ie=ft,ft=r)):(Ie=ft,ft=r);ft!==r;)Le.push(ft),ft=Ie,pt=Pn(),pt===r&&(pt=null),pt!==r?(Nt=tt(),Nt!==r?(pt=[pt,Nt],ft=pt):(Ie=ft,ft=r)):(Ie=ft,ft=r);Le!==r?(ye=[ye,Le],ee=ye):(Ie=ee,ee=r)}else Ie=ee,ee=r;return ee}function tt(){var ee;return t.substr(Ie,2)===Ac?(ee=Ac,Ie+=2):(ee=r,Yt===0&&Xe(fu)),ee===r&&(t.charCodeAt(Ie)===10?(ee=fc,Ie++):(ee=r,Yt===0&&Xe(El)),ee===r&&(t.charCodeAt(Ie)===13?(ee=vA,Ie++):(ee=r,Yt===0&&Xe(pu)))),ee}let Bt=2,or=0;if(Cl=a(),Cl!==r&&Ie===t.length)return Cl;throw Cl!==r&&Ie<t.length&&Xe(SA()),dc(hu,Hi<t.length?t.charAt(Hi):null,Hi<t.length?_o(Hi,Hi+1):_o(Hi,Hi))}XK.exports={SyntaxError:J0,parse:Y6e}});function eV(t){return t.match(W6e)?t:JSON.stringify(t)}function rV(t){return typeof t>"u"?!0:typeof t=="object"&&t!==null&&!Array.isArray(t)?Object.keys(t).every(e=>rV(t[e])):!1}function AT(t,e,r){if(t===null)return`null -`;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()} -`;if(typeof t=="string")return`${eV(t)} -`;if(Array.isArray(t)){if(t.length===0)return`[] -`;let o=" ".repeat(e);return` -${t.map(n=>`${o}- ${AT(n,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let[o,a]=t instanceof ND?[t.data,!1]:[t,!0],n=" ".repeat(e),u=Object.keys(o);a&&u.sort((p,h)=>{let E=$K.indexOf(p),I=$K.indexOf(h);return E===-1&&I===-1?p<h?-1:p>h?1:0:E!==-1&&I===-1?-1:E===-1&&I!==-1?1:E-I});let A=u.filter(p=>!rV(o[p])).map((p,h)=>{let E=o[p],I=eV(p),v=AT(E,e+1,!0),x=h>0||r?n:"",C=I.length>1024?`? ${I} -${x}:`:`${I}:`,R=v.startsWith(` -`)?v:` ${v}`;return`${x}${C}${R}`}).join(e===0?` -`:"")||` -`;return r?` -${A}`:`${A}`}throw new Error(`Unsupported value type (${t})`)}function Da(t){try{let e=AT(t,0,!1);return e!==` -`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function K6e(t){return t.endsWith(` -`)||(t+=` -`),(0,tV.parse)(t)}function z6e(t){if(V6e.test(t))return K6e(t);let e=(0,LD.safeLoad)(t,{schema:LD.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Ki(t){return z6e(t)}var LD,tV,W6e,$K,ND,V6e,nV=Et(()=>{LD=Ze(JK()),tV=Ze(ZK()),W6e=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,$K=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],ND=class{constructor(e){this.data=e}};Da.PreserveOrdering=ND;V6e=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i});var Ow={};Vt(Ow,{parseResolution:()=>BD,parseShell:()=>CD,parseSyml:()=>Ki,stringifyArgument:()=>XR,stringifyArgumentSegment:()=>ZR,stringifyArithmeticExpression:()=>ID,stringifyCommand:()=>JR,stringifyCommandChain:()=>Jd,stringifyCommandChainThen:()=>zR,stringifyCommandLine:()=>wD,stringifyCommandLineThen:()=>VR,stringifyEnvSegment:()=>ED,stringifyRedirectArgument:()=>Qw,stringifyResolution:()=>vD,stringifyShell:()=>zd,stringifyShellLine:()=>zd,stringifySyml:()=>Da,stringifyValueArgument:()=>H0});var Nl=Et(()=>{rW();oW();nV()});var sV=_((Dxt,fT)=>{"use strict";var J6e=t=>{let e=!1,r=!1,o=!1;for(let a=0;a<t.length;a++){let n=t[a];e&&/[a-zA-Z]/.test(n)&&n.toUpperCase()===n?(t=t.slice(0,a)+"-"+t.slice(a),e=!1,o=r,r=!0,a++):r&&o&&/[a-zA-Z]/.test(n)&&n.toLowerCase()===n?(t=t.slice(0,a-1)+"-"+t.slice(a-1),o=r,r=!1,e=!0):(e=n.toLowerCase()===n&&n.toUpperCase()!==n,o=r,r=n.toUpperCase()===n&&n.toLowerCase()!==n)}return t},iV=(t,e)=>{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=a=>e.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(t)?t=t.map(a=>a.trim()).filter(a=>a.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=J6e(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,n)=>n.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(t))};fT.exports=iV;fT.exports.default=iV});var oV=_((Pxt,X6e)=>{X6e.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vela",constant:"VELA",env:"VELA",pr:{VELA_PULL_REQUEST:"1"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]},pr:"VERCEL_GIT_PULL_REQUEST_ID"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var X0=_($a=>{"use strict";var lV=oV(),cs=process.env;Object.defineProperty($a,"_vendors",{value:lV.map(function(t){return t.constant})});$a.name=null;$a.isPR=null;lV.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(o){return aV(o)});if($a[t.constant]=r,!!r)switch($a.name=t.name,typeof t.pr){case"string":$a.isPR=!!cs[t.pr];break;case"object":"env"in t.pr?$a.isPR=t.pr.env in cs&&cs[t.pr.env]!==t.pr.ne:"any"in t.pr?$a.isPR=t.pr.any.some(function(o){return!!cs[o]}):$a.isPR=aV(t.pr);break;default:$a.isPR=null}});$a.isCI=!!(cs.CI!=="false"&&(cs.BUILD_ID||cs.BUILD_NUMBER||cs.CI||cs.CI_APP_ID||cs.CI_BUILD_ID||cs.CI_BUILD_NUMBER||cs.CI_NAME||cs.CONTINUOUS_INTEGRATION||cs.RUN_ID||$a.name));function aV(t){return typeof t=="string"?!!cs[t]:"env"in t?cs[t.env]&&cs[t.env].includes(t.includes):"any"in t?t.any.some(function(e){return!!cs[e]}):Object.keys(t).every(function(e){return cs[e]===t[e]})}});var Hn,un,Z0,pT,MD,cV,hT,gT,OD=Et(()=>{(function(t){t.StartOfInput="\0",t.EndOfInput="",t.EndOfPartialInput=""})(Hn||(Hn={}));(function(t){t[t.InitialNode=0]="InitialNode",t[t.SuccessNode=1]="SuccessNode",t[t.ErrorNode=2]="ErrorNode",t[t.CustomNode=3]="CustomNode"})(un||(un={}));Z0=-1,pT=/^(-h|--help)(?:=([0-9]+))?$/,MD=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,cV=/^-[a-zA-Z]{2,}$/,hT=/^([^=]+)=([\s\S]*)$/,gT=process.env.DEBUG_CLI==="1"});var st,im,UD,dT,_D=Et(()=>{OD();st=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},im=class extends Error{constructor(e,r){if(super(),this.input=e,this.candidates=r,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(o=>o.reason!==null&&o.reason===r[0].reason)){let[{reason:o}]=this.candidates;this.message=`${o} - -${this.candidates.map(({usage:a})=>`$ ${a}`).join(` -`)}`}else if(this.candidates.length===1){let[{usage:o}]=this.candidates;this.message=`Command not found; did you mean: - -$ ${o} -${dT(e)}`}else this.message=`Command not found; did you mean one of: - -${this.candidates.map(({usage:o},a)=>`${`${a}.`.padStart(4)} ${o}`).join(` -`)} - -${dT(e)}`}},UD=class extends Error{constructor(e,r){super(),this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: - -${this.usages.map((o,a)=>`${`${a}.`.padStart(4)} ${o}`).join(` -`)} - -${dT(e)}`}},dT=t=>`While running ${t.filter(e=>e!==Hn.EndOfInput&&e!==Hn.EndOfPartialInput).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`});function Z6e(t){let e=t.split(` -`),r=e.filter(a=>a.match(/\S/)),o=r.length>0?r.reduce((a,n)=>Math.min(a,n.length-n.trimStart().length),Number.MAX_VALUE):0;return e.map(a=>a.slice(o).trimRight()).join(` -`)}function Do(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,` -`),t=Z6e(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 - -`),t=t.replace(/\n(\n)?\n*/g,(o,a)=>a||" "),r&&(t=t.split(/\n/).map(o=>{let a=o.match(/^\s*[*-][\t ]+(.*)/);if(!a)return o.match(/(.{1,80})(?: |$)/g).join(` -`);let n=o.length-o.trimStart().length;return a[1].match(new RegExp(`(.{1,${78-n}})(?: |$)`,"g")).map((u,A)=>" ".repeat(n)+(A===0?"- ":" ")+u).join(` -`)}).join(` - -`)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(o,a,n)=>e.code(a+n+a)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(o,a,n)=>e.bold(a+n+a)),t?`${t} -`:""}var mT,uV,AV,yT=Et(()=>{mT=Array(80).fill("\u2501");for(let t=0;t<=24;++t)mT[mT.length-t]=`\x1B[38;5;${232+t}m\u2501`;uV={header:t=>`\x1B[1m\u2501\u2501\u2501 ${t}${t.length<75?` ${mT.slice(t.length+5).join("")}`:":"}\x1B[0m`,bold:t=>`\x1B[1m${t}\x1B[22m`,error:t=>`\x1B[31m\x1B[1m${t}\x1B[22m\x1B[39m`,code:t=>`\x1B[36m${t}\x1B[39m`},AV={header:t=>t,bold:t=>t,error:t=>t,code:t=>t}});function Ko(t){return{...t,[Uw]:!0}}function Gu(t,e){return typeof t>"u"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function HD(t,{mergeName:e=!1}={}){let r=t.match(/^([^:]+): (.*)$/m);if(!r)return"validation failed";let[,o,a]=r;return e&&(a=a[0].toLowerCase()+a.slice(1)),a=o!=="."||!e?`${o.replace(/^\.(\[|$)/,"$1")}: ${a}`:`: ${a}`,a}function _w(t,e){return e.length===1?new st(`${t}${HD(e[0],{mergeName:!0})}`):new st(`${t}: -${e.map(r=>` -- ${HD(r)}`).join("")}`)}function $0(t,e,r){if(typeof r>"u")return e;let o=[],a=[],n=A=>{let p=e;return e=A,n.bind(null,p)};if(!r(e,{errors:o,coercions:a,coercion:n}))throw _w(`Invalid value for ${t}`,o);for(let[,A]of a)A();return e}var Uw,yf=Et(()=>{_D();Uw=Symbol("clipanion/isOption")});var Vo={};Vt(Vo,{KeyRelationship:()=>Yu,TypeAssertionError:()=>Gp,applyCascade:()=>jw,as:()=>mqe,assert:()=>hqe,assertWithErrors:()=>gqe,cascade:()=>YD,fn:()=>yqe,hasAtLeastOneKey:()=>DT,hasExactLength:()=>dV,hasForbiddenKeys:()=>Mqe,hasKeyRelationship:()=>Yw,hasMaxLength:()=>Cqe,hasMinLength:()=>Eqe,hasMutuallyExclusiveKeys:()=>Oqe,hasRequiredKeys:()=>Lqe,hasUniqueItems:()=>wqe,isArray:()=>qD,isAtLeast:()=>BT,isAtMost:()=>vqe,isBase64:()=>Fqe,isBoolean:()=>oqe,isDate:()=>lqe,isDict:()=>Aqe,isEnum:()=>Js,isHexColor:()=>Qqe,isISO8601:()=>kqe,isInExclusiveRange:()=>Pqe,isInInclusiveRange:()=>Dqe,isInstanceOf:()=>pqe,isInteger:()=>vT,isJSON:()=>Rqe,isLiteral:()=>pV,isLowerCase:()=>Sqe,isMap:()=>uqe,isNegative:()=>Iqe,isNullable:()=>Nqe,isNumber:()=>wT,isObject:()=>hV,isOneOf:()=>IT,isOptional:()=>Tqe,isPartial:()=>fqe,isPayload:()=>aqe,isPositive:()=>Bqe,isRecord:()=>GD,isSet:()=>cqe,isString:()=>om,isTuple:()=>jD,isUUID4:()=>xqe,isUnknown:()=>CT,isUpperCase:()=>bqe,makeTrait:()=>gV,makeValidator:()=>Hr,matchesRegExp:()=>qw,softAssert:()=>dqe});function qn(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":typeof t=="symbol"?`<${t.toString()}>`:Array.isArray(t)?"an array":JSON.stringify(t)}function sm(t,e){if(t.length===0)return"nothing";if(t.length===1)return qn(t[0]);let r=t.slice(0,-1),o=t[t.length-1],a=t.length>2?`, ${e} `:` ${e} `;return`${r.map(n=>qn(n)).join(", ")}${a}${qn(o)}`}function jp(t,e){var r,o,a;return typeof e=="number"?`${(r=t?.p)!==null&&r!==void 0?r:"."}[${e}]`:$6e.test(e)?`${(o=t?.p)!==null&&o!==void 0?o:""}.${e}`:`${(a=t?.p)!==null&&a!==void 0?a:"."}[${JSON.stringify(e)}]`}function ET(t,e,r){return t===1?e:r}function pr({errors:t,p:e}={},r){return t?.push(`${e??"."}: ${r}`),!1}function iqe(t,e){return r=>{t[e]=r}}function Wu(t,e){return r=>{let o=t[e];return t[e]=r,Wu(t,e).bind(null,o)}}function Hw(t,e,r){let o=()=>(t(r()),a),a=()=>(t(e),o);return o}function CT(){return Hr({test:(t,e)=>!0})}function pV(t){return Hr({test:(e,r)=>e!==t?pr(r,`Expected ${qn(t)} (got ${qn(e)})`):!0})}function om(){return Hr({test:(t,e)=>typeof t!="string"?pr(e,`Expected a string (got ${qn(t)})`):!0})}function Js(t){let e=Array.isArray(t)?t:Object.values(t),r=e.every(a=>typeof a=="string"||typeof a=="number"),o=new Set(e);return o.size===1?pV([...o][0]):Hr({test:(a,n)=>o.has(a)?!0:r?pr(n,`Expected one of ${sm(e,"or")} (got ${qn(a)})`):pr(n,`Expected a valid enumeration value (got ${qn(a)})`)})}function oqe(){return Hr({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o=sqe.get(t);if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a boolean (got ${qn(t)})`)}return!0}})}function wT(){return Hr({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o;if(typeof t=="string"){let a;try{a=JSON.parse(t)}catch{}if(typeof a=="number")if(JSON.stringify(a)===t)o=a;else return pr(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a number (got ${qn(t)})`)}return!0}})}function aqe(t){return Hr({test:(e,r)=>{var o;if(typeof r?.coercions>"u")return pr(r,"The isPayload predicate can only be used with coercion enabled");if(typeof r.coercion>"u")return pr(r,"Unbound coercion result");if(typeof e!="string")return pr(r,`Expected a string (got ${qn(e)})`);let a;try{a=JSON.parse(e)}catch{return pr(r,`Expected a JSON string (got ${qn(e)})`)}let n={value:a};return t(a,Object.assign(Object.assign({},r),{coercion:Wu(n,"value")}))?(r.coercions.push([(o=r.p)!==null&&o!==void 0?o:".",r.coercion.bind(null,n.value)]),!0):!1}})}function lqe(){return Hr({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o;if(typeof t=="string"&&fV.test(t))o=new Date(t);else{let a;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch{}typeof n=="number"&&(a=n)}else typeof t=="number"&&(a=t);if(typeof a<"u")if(Number.isSafeInteger(a)||!Number.isSafeInteger(a*1e3))o=new Date(a*1e3);else return pr(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a date (got ${qn(t)})`)}return!0}})}function qD(t,{delimiter:e}={}){return Hr({test:(r,o)=>{var a;let n=r;if(typeof r=="string"&&typeof e<"u"&&typeof o?.coercions<"u"){if(typeof o?.coercion>"u")return pr(o,"Unbound coercion result");r=r.split(e)}if(!Array.isArray(r))return pr(o,`Expected an array (got ${qn(r)})`);let u=!0;for(let A=0,p=r.length;A<p&&(u=t(r[A],Object.assign(Object.assign({},o),{p:jp(o,A),coercion:Wu(r,A)}))&&u,!(!u&&o?.errors==null));++A);return r!==n&&o.coercions.push([(a=o.p)!==null&&a!==void 0?a:".",o.coercion.bind(null,r)]),u}})}function cqe(t,{delimiter:e}={}){let r=qD(t,{delimiter:e});return Hr({test:(o,a)=>{var n,u;if(Object.getPrototypeOf(o).toString()==="[object Set]")if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");let A=[...o],p=[...o];if(!r(p,Object.assign(Object.assign({},a),{coercion:void 0})))return!1;let h=()=>p.some((E,I)=>E!==A[I])?new Set(p):o;return a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",Hw(a.coercion,o,h)]),!0}else{let A=!0;for(let p of o)if(A=t(p,Object.assign({},a))&&A,!A&&a?.errors==null)break;return A}if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");let A={value:o};return r(o,Object.assign(Object.assign({},a),{coercion:Wu(A,"value")}))?(a.coercions.push([(u=a.p)!==null&&u!==void 0?u:".",Hw(a.coercion,o,()=>new Set(A.value))]),!0):!1}return pr(a,`Expected a set (got ${qn(o)})`)}})}function uqe(t,e){let r=qD(jD([t,e])),o=GD(e,{keys:t});return Hr({test:(a,n)=>{var u,A,p;if(Object.getPrototypeOf(a).toString()==="[object Map]")if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return pr(n,"Unbound coercion result");let h=[...a],E=[...a];if(!r(E,Object.assign(Object.assign({},n),{coercion:void 0})))return!1;let I=()=>E.some((v,x)=>v[0]!==h[x][0]||v[1]!==h[x][1])?new Map(E):a;return n.coercions.push([(u=n.p)!==null&&u!==void 0?u:".",Hw(n.coercion,a,I)]),!0}else{let h=!0;for(let[E,I]of a)if(h=t(E,Object.assign({},n))&&h,!h&&n?.errors==null||(h=e(I,Object.assign(Object.assign({},n),{p:jp(n,E)}))&&h,!h&&n?.errors==null))break;return h}if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return pr(n,"Unbound coercion result");let h={value:a};return Array.isArray(a)?r(a,Object.assign(Object.assign({},n),{coercion:void 0}))?(n.coercions.push([(A=n.p)!==null&&A!==void 0?A:".",Hw(n.coercion,a,()=>new Map(h.value))]),!0):!1:o(a,Object.assign(Object.assign({},n),{coercion:Wu(h,"value")}))?(n.coercions.push([(p=n.p)!==null&&p!==void 0?p:".",Hw(n.coercion,a,()=>new Map(Object.entries(h.value)))]),!0):!1}return pr(n,`Expected a map (got ${qn(a)})`)}})}function jD(t,{delimiter:e}={}){let r=dV(t.length);return Hr({test:(o,a)=>{var n;if(typeof o=="string"&&typeof e<"u"&&typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");o=o.split(e),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,o)])}if(!Array.isArray(o))return pr(a,`Expected a tuple (got ${qn(o)})`);let u=r(o,Object.assign({},a));for(let A=0,p=o.length;A<p&&A<t.length&&(u=t[A](o[A],Object.assign(Object.assign({},a),{p:jp(a,A),coercion:Wu(o,A)}))&&u,!(!u&&a?.errors==null));++A);return u}})}function GD(t,{keys:e=null}={}){let r=qD(jD([e??om(),t]));return Hr({test:(o,a)=>{var n;if(Array.isArray(o)&&typeof a?.coercions<"u")return typeof a?.coercion>"u"?pr(a,"Unbound coercion result"):r(o,Object.assign(Object.assign({},a),{coercion:void 0}))?(o=Object.fromEntries(o),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,o)]),!0):!1;if(typeof o!="object"||o===null)return pr(a,`Expected an object (got ${qn(o)})`);let u=Object.keys(o),A=!0;for(let p=0,h=u.length;p<h&&(A||a?.errors!=null);++p){let E=u[p],I=o[E];if(E==="__proto__"||E==="constructor"){A=pr(Object.assign(Object.assign({},a),{p:jp(a,E)}),"Unsafe property name");continue}if(e!==null&&!e(E,a)){A=!1;continue}if(!t(I,Object.assign(Object.assign({},a),{p:jp(a,E),coercion:Wu(o,E)}))){A=!1;continue}}return A}})}function Aqe(t,e={}){return GD(t,e)}function hV(t,{extra:e=null}={}){let r=Object.keys(t),o=Hr({test:(a,n)=>{if(typeof a!="object"||a===null)return pr(n,`Expected an object (got ${qn(a)})`);let u=new Set([...r,...Object.keys(a)]),A={},p=!0;for(let h of u){if(h==="constructor"||h==="__proto__")p=pr(Object.assign(Object.assign({},n),{p:jp(n,h)}),"Unsafe property name");else{let E=Object.prototype.hasOwnProperty.call(t,h)?t[h]:void 0,I=Object.prototype.hasOwnProperty.call(a,h)?a[h]:void 0;typeof E<"u"?p=E(I,Object.assign(Object.assign({},n),{p:jp(n,h),coercion:Wu(a,h)}))&&p:e===null?p=pr(Object.assign(Object.assign({},n),{p:jp(n,h)}),`Extraneous property (got ${qn(I)})`):Object.defineProperty(A,h,{enumerable:!0,get:()=>I,set:iqe(a,h)})}if(!p&&n?.errors==null)break}return e!==null&&(p||n?.errors!=null)&&(p=e(A,n)&&p),p}});return Object.assign(o,{properties:t})}function fqe(t){return hV(t,{extra:GD(CT())})}function gV(t){return()=>t}function Hr({test:t}){return gV(t)()}function hqe(t,e){if(!e(t))throw new Gp}function gqe(t,e){let r=[];if(!e(t,{errors:r}))throw new Gp({errors:r})}function dqe(t,e){}function mqe(t,e,{coerce:r=!1,errors:o,throw:a}={}){let n=o?[]:void 0;if(!r){if(e(t,{errors:n}))return a?t:{value:t,errors:void 0};if(a)throw new Gp({errors:n});return{value:void 0,errors:n??!0}}let u={value:t},A=Wu(u,"value"),p=[];if(!e(t,{errors:n,coercion:A,coercions:p})){if(a)throw new Gp({errors:n});return{value:void 0,errors:n??!0}}for(let[,h]of p)h();return a?u.value:{value:u.value,errors:void 0}}function yqe(t,e){let r=jD(t);return(...o)=>{if(!r(o))throw new Gp;return e(...o)}}function Eqe(t){return Hr({test:(e,r)=>e.length>=t?!0:pr(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)})}function Cqe(t){return Hr({test:(e,r)=>e.length<=t?!0:pr(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)})}function dV(t){return Hr({test:(e,r)=>e.length!==t?pr(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0})}function wqe({map:t}={}){return Hr({test:(e,r)=>{let o=new Set,a=new Set;for(let n=0,u=e.length;n<u;++n){let A=e[n],p=typeof t<"u"?t(A):A;if(o.has(p)){if(a.has(p))continue;pr(r,`Expected to contain unique elements; got a duplicate with ${qn(e)}`),a.add(p)}else o.add(p)}return a.size===0}})}function Iqe(){return Hr({test:(t,e)=>t<=0?!0:pr(e,`Expected to be negative (got ${t})`)})}function Bqe(){return Hr({test:(t,e)=>t>=0?!0:pr(e,`Expected to be positive (got ${t})`)})}function BT(t){return Hr({test:(e,r)=>e>=t?!0:pr(r,`Expected to be at least ${t} (got ${e})`)})}function vqe(t){return Hr({test:(e,r)=>e<=t?!0:pr(r,`Expected to be at most ${t} (got ${e})`)})}function Dqe(t,e){return Hr({test:(r,o)=>r>=t&&r<=e?!0:pr(o,`Expected to be in the [${t}; ${e}] range (got ${r})`)})}function Pqe(t,e){return Hr({test:(r,o)=>r>=t&&r<e?!0:pr(o,`Expected to be in the [${t}; ${e}[ range (got ${r})`)})}function vT({unsafe:t=!1}={}){return Hr({test:(e,r)=>e!==Math.round(e)?pr(r,`Expected to be an integer (got ${e})`):!t&&!Number.isSafeInteger(e)?pr(r,`Expected to be a safe integer (got ${e})`):!0})}function qw(t){return Hr({test:(e,r)=>t.test(e)?!0:pr(r,`Expected to match the pattern ${t.toString()} (got ${qn(e)})`)})}function Sqe(){return Hr({test:(t,e)=>t!==t.toLowerCase()?pr(e,`Expected to be all-lowercase (got ${t})`):!0})}function bqe(){return Hr({test:(t,e)=>t!==t.toUpperCase()?pr(e,`Expected to be all-uppercase (got ${t})`):!0})}function xqe(){return Hr({test:(t,e)=>nqe.test(t)?!0:pr(e,`Expected to be a valid UUID v4 (got ${qn(t)})`)})}function kqe(){return Hr({test:(t,e)=>fV.test(t)?!0:pr(e,`Expected to be a valid ISO 8601 date string (got ${qn(t)})`)})}function Qqe({alpha:t=!1}){return Hr({test:(e,r)=>(t?eqe.test(e):tqe.test(e))?!0:pr(r,`Expected to be a valid hexadecimal color string (got ${qn(e)})`)})}function Fqe(){return Hr({test:(t,e)=>rqe.test(t)?!0:pr(e,`Expected to be a valid base 64 string (got ${qn(t)})`)})}function Rqe(t=CT()){return Hr({test:(e,r)=>{let o;try{o=JSON.parse(e)}catch{return pr(r,`Expected to be a valid JSON string (got ${qn(e)})`)}return t(o,r)}})}function YD(t,...e){let r=Array.isArray(e[0])?e[0]:e;return Hr({test:(o,a)=>{var n,u;let A={value:o},p=typeof a?.coercions<"u"?Wu(A,"value"):void 0,h=typeof a?.coercions<"u"?[]:void 0;if(!t(o,Object.assign(Object.assign({},a),{coercion:p,coercions:h})))return!1;let E=[];if(typeof h<"u")for(let[,I]of h)E.push(I());try{if(typeof a?.coercions<"u"){if(A.value!==o){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,A.value)])}(u=a?.coercions)===null||u===void 0||u.push(...h)}return r.every(I=>I(A.value,a))}finally{for(let I of E)I()}}})}function jw(t,...e){let r=Array.isArray(e[0])?e[0]:e;return YD(t,r)}function Tqe(t){return Hr({test:(e,r)=>typeof e>"u"?!0:t(e,r)})}function Nqe(t){return Hr({test:(e,r)=>e===null?!0:t(e,r)})}function Lqe(t,e){var r;let o=new Set(t),a=Gw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)||p.push(h);return p.length>0?pr(u,`Missing required ${ET(p.length,"property","properties")} ${sm(p,"and")}`):!0}})}function DT(t,e){var r;let o=new Set(t),a=Gw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>Object.keys(n).some(h=>a(o,h,n))?!0:pr(u,`Missing at least one property from ${sm(Array.from(o),"or")}`)})}function Mqe(t,e){var r;let o=new Set(t),a=Gw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)&&p.push(h);return p.length>0?pr(u,`Forbidden ${ET(p.length,"property","properties")} ${sm(p,"and")}`):!0}})}function Oqe(t,e){var r;let o=new Set(t),a=Gw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)&&p.push(h);return p.length>1?pr(u,`Mutually exclusive properties ${sm(p,"and")}`):!0}})}function Yw(t,e,r,o){var a,n;let u=new Set((a=o?.ignore)!==null&&a!==void 0?a:[]),A=Gw[(n=o?.missingIf)!==null&&n!==void 0?n:"missing"],p=new Set(r),h=Uqe[e],E=e===Yu.Forbids?"or":"and";return Hr({test:(I,v)=>{let x=new Set(Object.keys(I));if(!A(x,t,I)||u.has(I[t]))return!0;let C=[];for(let R of p)(A(x,R,I)&&!u.has(I[R]))!==h.expect&&C.push(R);return C.length>=1?pr(v,`Property "${t}" ${h.message} ${ET(C.length,"property","properties")} ${sm(C,E)}`):!0}})}var $6e,eqe,tqe,rqe,nqe,fV,sqe,pqe,IT,Gp,Gw,Yu,Uqe,el=Et(()=>{$6e=/^[a-zA-Z_][a-zA-Z0-9_]*$/;eqe=/^#[0-9a-f]{6}$/i,tqe=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,rqe=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,nqe=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,fV=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/;sqe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]);pqe=t=>Hr({test:(e,r)=>e instanceof t?!0:pr(r,`Expected an instance of ${t.name} (got ${qn(e)})`)}),IT=(t,{exclusive:e=!1}={})=>Hr({test:(r,o)=>{var a,n,u;let A=[],p=typeof o?.errors<"u"?[]:void 0;for(let h=0,E=t.length;h<E;++h){let I=typeof o?.errors<"u"?[]:void 0,v=typeof o?.coercions<"u"?[]:void 0;if(t[h](r,Object.assign(Object.assign({},o),{errors:I,coercions:v,p:`${(a=o?.p)!==null&&a!==void 0?a:"."}#${h+1}`}))){if(A.push([`#${h+1}`,v]),!e)break}else p?.push(I[0])}if(A.length===1){let[,h]=A[0];return typeof h<"u"&&((n=o?.coercions)===null||n===void 0||n.push(...h)),!0}return A.length>1?pr(o,`Expected to match exactly a single predicate (matched ${A.join(", ")})`):(u=o?.errors)===null||u===void 0||u.push(...p),!1}});Gp=class extends Error{constructor({errors:e}={}){let r="Type mismatch";if(e&&e.length>0){r+=` -`;for(let o of e)r+=` -- ${o}`}super(r)}};Gw={missing:(t,e)=>t.has(e),undefined:(t,e,r)=>t.has(e)&&typeof r[e]<"u",nil:(t,e,r)=>t.has(e)&&r[e]!=null,falsy:(t,e,r)=>t.has(e)&&!!r[e]};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(Yu||(Yu={}));Uqe={[Yu.Forbids]:{expect:!1,message:"forbids using"},[Yu.Requires]:{expect:!0,message:"requires using"}}});var it,Yp=Et(()=>{yf();it=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:a,isUnknown:n,applyCascade:u}=await Promise.resolve().then(()=>(el(),Vo)),A=u(a(n()),r),p=[],h=[];if(!A(this,{errors:p,coercions:h}))throw _w("Invalid option schema",p);for(let[,I]of h)I()}else if(r!=null)throw new Error("Invalid command schema");let o=await this.execute();return typeof o<"u"?o:0}};it.isOption=Uw;it.Default=[]});function Pa(t){gT&&console.log(t)}function yV(){let t={nodes:[]};for(let e=0;e<un.CustomNode;++e)t.nodes.push(tl());return t}function _qe(t){let e=yV(),r=[],o=e.nodes.length;for(let a of t){r.push(o);for(let n=0;n<a.nodes.length;++n)CV(n)||e.nodes.push(Vqe(a.nodes[n],o));o+=a.nodes.length-un.CustomNode+1}for(let a of r)am(e,un.InitialNode,a);return e}function Oc(t,e){return t.nodes.push(e),t.nodes.length-1}function Hqe(t){let e=new Set,r=o=>{if(e.has(o))return;e.add(o);let a=t.nodes[o];for(let u of Object.values(a.statics))for(let{to:A}of u)r(A);for(let[,{to:u}]of a.dynamics)r(u);for(let{to:u}of a.shortcuts)r(u);let n=new Set(a.shortcuts.map(({to:u})=>u));for(;a.shortcuts.length>0;){let{to:u}=a.shortcuts.shift(),A=t.nodes[u];for(let[p,h]of Object.entries(A.statics)){let E=Object.prototype.hasOwnProperty.call(a.statics,p)?a.statics[p]:a.statics[p]=[];for(let I of h)E.some(({to:v})=>I.to===v)||E.push(I)}for(let[p,h]of A.dynamics)a.dynamics.some(([E,{to:I}])=>p===E&&h.to===I)||a.dynamics.push([p,h]);for(let p of A.shortcuts)n.has(p.to)||(a.shortcuts.push(p),n.add(p.to))}};r(un.InitialNode)}function qqe(t,{prefix:e=""}={}){if(gT){Pa(`${e}Nodes are:`);for(let r=0;r<t.nodes.length;++r)Pa(`${e} ${r}: ${JSON.stringify(t.nodes[r])}`)}}function jqe(t,e,r=!1){Pa(`Running a vm on ${JSON.stringify(e)}`);let o=[{node:un.InitialNode,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null,partial:!1,tokens:[]}}];qqe(t,{prefix:" "});let a=[Hn.StartOfInput,...e];for(let n=0;n<a.length;++n){let u=a[n],A=u===Hn.EndOfInput||u===Hn.EndOfPartialInput,p=n-1;Pa(` Processing ${JSON.stringify(u)}`);let h=[];for(let{node:E,state:I}of o){Pa(` Current node is ${E}`);let v=t.nodes[E];if(E===un.ErrorNode){h.push({node:E,state:I});continue}console.assert(v.shortcuts.length===0,"Shortcuts should have been eliminated by now");let x=Object.prototype.hasOwnProperty.call(v.statics,u);if(!r||n<a.length-1||x)if(x){let C=v.statics[u];for(let{to:R,reducer:L}of C)h.push({node:R,state:typeof L<"u"?WD(ST,L,I,u,p):I}),Pa(` Static transition to ${R} found`)}else Pa(" No static transition found");else{let C=!1;for(let R of Object.keys(v.statics))if(R.startsWith(u)){if(u===R)for(let{to:L,reducer:U}of v.statics[R])h.push({node:L,state:typeof U<"u"?WD(ST,U,I,u,p):I}),Pa(` Static transition to ${L} found`);else for(let{to:L}of v.statics[R])h.push({node:L,state:{...I,remainder:R.slice(u.length)}}),Pa(` Static transition to ${L} found (partial match)`);C=!0}C||Pa(" No partial static transition found")}if(!A)for(let[C,{to:R,reducer:L}]of v.dynamics)WD(zqe,C,I,u,p)&&(h.push({node:R,state:typeof L<"u"?WD(ST,L,I,u,p):I}),Pa(` Dynamic transition to ${R} found (via ${C})`))}if(h.length===0&&A&&e.length===1)return[{node:un.InitialNode,state:mV}];if(h.length===0)throw new im(e,o.filter(({node:E})=>E!==un.ErrorNode).map(({state:E})=>({usage:E.candidateUsage,reason:null})));if(h.every(({node:E})=>E===un.ErrorNode))throw new im(e,h.map(({state:E})=>({usage:E.candidateUsage,reason:E.errorMessage})));o=Yqe(h)}if(o.length>0){Pa(" Results:");for(let n of o)Pa(` - ${n.node} -> ${JSON.stringify(n.state)}`)}else Pa(" No results");return o}function Gqe(t,e,{endToken:r=Hn.EndOfInput}={}){let o=jqe(t,[...e,r]);return Wqe(e,o.map(({state:a})=>a))}function Yqe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function Wqe(t,e){let r=e.filter(v=>v.selectedIndex!==null),o=r.filter(v=>!v.partial);if(o.length>0&&(r=o),r.length===0)throw new Error;let a=r.filter(v=>v.selectedIndex===Z0||v.requiredOptions.every(x=>x.some(C=>v.options.find(R=>R.name===C))));if(a.length===0)throw new im(t,r.map(v=>({usage:v.candidateUsage,reason:null})));let n=0;for(let v of a)v.path.length>n&&(n=v.path.length);let u=a.filter(v=>v.path.length===n),A=v=>v.positionals.filter(({extra:x})=>!x).length+v.options.length,p=u.map(v=>({state:v,positionalCount:A(v)})),h=0;for(let{positionalCount:v}of p)v>h&&(h=v);let E=p.filter(({positionalCount:v})=>v===h).map(({state:v})=>v),I=Kqe(E);if(I.length>1)throw new UD(t,I.map(v=>v.candidateUsage));return I[0]}function Kqe(t){let e=[],r=[];for(let o of t)o.selectedIndex===Z0?r.push(o):e.push(o);return r.length>0&&e.push({...mV,path:EV(...r.map(o=>o.path)),options:r.reduce((o,a)=>o.concat(a.options),[])}),e}function EV(t,e,...r){return e===void 0?Array.from(t):EV(t.filter((o,a)=>o===e[a]),...r)}function tl(){return{dynamics:[],shortcuts:[],statics:{}}}function CV(t){return t===un.SuccessNode||t===un.ErrorNode}function PT(t,e=0){return{to:CV(t.to)?t.to:t.to>=un.CustomNode?t.to+e-un.CustomNode+1:t.to+e,reducer:t.reducer}}function Vqe(t,e=0){let r=tl();for(let[o,a]of t.dynamics)r.dynamics.push([o,PT(a,e)]);for(let o of t.shortcuts)r.shortcuts.push(PT(o,e));for(let[o,a]of Object.entries(t.statics))r.statics[o]=a.map(n=>PT(n,e));return r}function xs(t,e,r,o,a){t.nodes[e].dynamics.push([r,{to:o,reducer:a}])}function am(t,e,r,o){t.nodes[e].shortcuts.push({to:r,reducer:o})}function zo(t,e,r,o,a){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:o,reducer:a})}function WD(t,e,r,o,a){if(Array.isArray(e)){let[n,...u]=e;return t[n](r,o,a,...u)}else return t[e](r,o,a)}var mV,zqe,ST,rl,bT,KD,VD=Et(()=>{OD();_D();mV={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:Z0,partial:!1,tokens:[]};zqe={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(t,e)=>t.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(t,e,r,o)=>!t.ignoreOptions&&e===o,isBatchOption:(t,e,r,o)=>!t.ignoreOptions&&cV.test(e)&&[...e.slice(1)].every(a=>o.has(`-${a}`)),isBoundOption:(t,e,r,o,a)=>{let n=e.match(hT);return!t.ignoreOptions&&!!n&&MD.test(n[1])&&o.has(n[1])&&a.filter(u=>u.nameSet.includes(n[1])).every(u=>u.allowBinding)},isNegatedOption:(t,e,r,o)=>!t.ignoreOptions&&e===`--no-${o.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&pT.test(e),isUnsupportedOption:(t,e,r,o)=>!t.ignoreOptions&&e.startsWith("-")&&MD.test(e)&&!o.has(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith("-")&&!MD.test(e)},ST={setCandidateState:(t,e,r,o)=>({...t,...o}),setSelectedIndex:(t,e,r,o)=>({...t,selectedIndex:o}),setPartialIndex:(t,e,r,o)=>({...t,selectedIndex:o,partial:!0}),pushBatch:(t,e,r,o)=>{let a=t.options.slice(),n=t.tokens.slice();for(let u=1;u<e.length;++u){let A=o.get(`-${e[u]}`),p=u===1?[0,2]:[u,u+1];a.push({name:A,value:!0}),n.push({segmentIndex:r,type:"option",option:A,slice:p})}return{...t,options:a,tokens:n}},pushBound:(t,e,r)=>{let[,o,a]=e.match(hT),n=t.options.concat({name:o,value:a}),u=t.tokens.concat([{segmentIndex:r,type:"option",slice:[0,o.length],option:o},{segmentIndex:r,type:"assign",slice:[o.length,o.length+1]},{segmentIndex:r,type:"value",slice:[o.length+1,o.length+a.length+1]}]);return{...t,options:n,tokens:u}},pushPath:(t,e,r)=>{let o=t.path.concat(e),a=t.tokens.concat({segmentIndex:r,type:"path"});return{...t,path:o,tokens:a}},pushPositional:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:!1}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushExtra:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:!0}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushExtraNoLimits:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:rl}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushTrue:(t,e,r,o)=>{let a=t.options.concat({name:o,value:!0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:o});return{...t,options:a,tokens:n}},pushFalse:(t,e,r,o)=>{let a=t.options.concat({name:o,value:!1}),n=t.tokens.concat({segmentIndex:r,type:"option",option:o});return{...t,options:a,tokens:n}},pushUndefined:(t,e,r,o)=>{let a=t.options.concat({name:e,value:void 0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:e});return{...t,options:a,tokens:n}},pushStringValue:(t,e,r)=>{var o;let a=t.options[t.options.length-1],n=t.options.slice(),u=t.tokens.concat({segmentIndex:r,type:"value"});return a.value=((o=a.value)!==null&&o!==void 0?o:[]).concat([e]),{...t,options:n,tokens:u}},setStringValue:(t,e,r)=>{let o=t.options[t.options.length-1],a=t.options.slice(),n=t.tokens.concat({segmentIndex:r,type:"value"});return o.value=e,{...t,options:a,tokens:n}},inhibateOptions:t=>({...t,ignoreOptions:!0}),useHelp:(t,e,r,o)=>{let[,,a]=e.match(pT);return typeof a<"u"?{...t,options:[{name:"-c",value:String(o)},{name:"-i",value:a}]}:{...t,options:[{name:"-c",value:String(o)}]}},setError:(t,e,r,o)=>e===Hn.EndOfInput||e===Hn.EndOfPartialInput?{...t,errorMessage:`${o}.`}:{...t,errorMessage:`${o} ("${e}").`},setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return{...t,errorMessage:`Not enough arguments to option ${r.name}.`}}},rl=Symbol(),bT=class{constructor(e,r){this.allOptionNames=new Map,this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:o=this.arity.extra,proxy:a=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:o,proxy:a})}addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra===rl)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!r&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!r&&this.arity.extra!==rl?this.arity.extra.push(e):this.arity.extra!==rl&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===rl)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let o=0;o<r;++o)this.addPositional({name:e});this.arity.extra=rl}addProxy({required:e=0}={}){this.addRest({required:e}),this.arity.proxy=!0}addOption({names:e,description:r,arity:o=0,hidden:a=!1,required:n=!1,allowBinding:u=!0}){if(!u&&o>1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(o))throw new Error(`The arity must be an integer, got ${o}`);if(o<0)throw new Error(`The arity must be positive, got ${o}`);let A=e.reduce((p,h)=>h.length>p.length?h:p,"");for(let p of e)this.allOptionNames.set(p,A);this.options.push({preferredName:A,nameSet:e,description:r,arity:o,hidden:a,required:n,allowBinding:u})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let o=[this.cliOpts.binaryName],a=[];if(this.paths.length>0&&o.push(...this.paths[0]),e){for(let{preferredName:u,nameSet:A,arity:p,hidden:h,description:E,required:I}of this.options){if(h)continue;let v=[];for(let C=0;C<p;++C)v.push(` #${C}`);let x=`${A.join(",")}${v.join("")}`;!r&&E?a.push({preferredName:u,nameSet:A,definition:x,description:E,required:I}):o.push(I?`<${x}>`:`[${x}]`)}o.push(...this.arity.leading.map(u=>`<${u}>`)),this.arity.extra===rl?o.push("..."):o.push(...this.arity.extra.map(u=>`[${u}]`)),o.push(...this.arity.trailing.map(u=>`<${u}>`))}return{usage:o.join(" "),options:a}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=yV(),r=un.InitialNode,o=this.usage().usage,a=this.options.filter(A=>A.required).map(A=>A.nameSet);r=Oc(e,tl()),zo(e,un.InitialNode,Hn.StartOfInput,r,["setCandidateState",{candidateUsage:o,requiredOptions:a}]);let n=this.arity.proxy?"always":"isNotOptionLike",u=this.paths.length>0?this.paths:[[]];for(let A of u){let p=r;if(A.length>0){let v=Oc(e,tl());am(e,p,v),this.registerOptions(e,v),p=v}for(let v=0;v<A.length;++v){let x=Oc(e,tl());zo(e,p,A[v],x,"pushPath"),p=x}if(this.arity.leading.length>0||!this.arity.proxy){let v=Oc(e,tl());xs(e,p,"isHelp",v,["useHelp",this.cliIndex]),xs(e,v,"always",v,"pushExtra"),zo(e,v,Hn.EndOfInput,un.SuccessNode,["setSelectedIndex",Z0]),this.registerOptions(e,p)}this.arity.leading.length>0&&(zo(e,p,Hn.EndOfInput,un.ErrorNode,["setError","Not enough positional arguments"]),zo(e,p,Hn.EndOfPartialInput,un.SuccessNode,["setPartialIndex",this.cliIndex]));let h=p;for(let v=0;v<this.arity.leading.length;++v){let x=Oc(e,tl());(!this.arity.proxy||v+1!==this.arity.leading.length)&&this.registerOptions(e,x),(this.arity.trailing.length>0||v+1!==this.arity.leading.length)&&(zo(e,x,Hn.EndOfInput,un.ErrorNode,["setError","Not enough positional arguments"]),zo(e,x,Hn.EndOfPartialInput,un.SuccessNode,["setPartialIndex",this.cliIndex])),xs(e,h,"isNotOptionLike",x,"pushPositional"),h=x}let E=h;if(this.arity.extra===rl||this.arity.extra.length>0){let v=Oc(e,tl());if(am(e,h,v),this.arity.extra===rl){let x=Oc(e,tl());this.arity.proxy||this.registerOptions(e,x),xs(e,h,n,x,"pushExtraNoLimits"),xs(e,x,n,x,"pushExtraNoLimits"),am(e,x,v)}else for(let x=0;x<this.arity.extra.length;++x){let C=Oc(e,tl());(!this.arity.proxy||x>0)&&this.registerOptions(e,C),xs(e,E,n,C,"pushExtra"),am(e,C,v),E=C}E=v}this.arity.trailing.length>0&&(zo(e,E,Hn.EndOfInput,un.ErrorNode,["setError","Not enough positional arguments"]),zo(e,E,Hn.EndOfPartialInput,un.SuccessNode,["setPartialIndex",this.cliIndex]));let I=E;for(let v=0;v<this.arity.trailing.length;++v){let x=Oc(e,tl());this.arity.proxy||this.registerOptions(e,x),v+1<this.arity.trailing.length&&(zo(e,x,Hn.EndOfInput,un.ErrorNode,["setError","Not enough positional arguments"]),zo(e,x,Hn.EndOfPartialInput,un.SuccessNode,["setPartialIndex",this.cliIndex])),xs(e,I,"isNotOptionLike",x,"pushPositional"),I=x}xs(e,I,n,un.ErrorNode,["setError","Extraneous positional argument"]),zo(e,I,Hn.EndOfInput,un.SuccessNode,["setSelectedIndex",this.cliIndex]),zo(e,I,Hn.EndOfPartialInput,un.SuccessNode,["setSelectedIndex",this.cliIndex])}return{machine:e,context:this.context}}registerOptions(e,r){xs(e,r,["isOption","--"],r,"inhibateOptions"),xs(e,r,["isBatchOption",this.allOptionNames],r,["pushBatch",this.allOptionNames]),xs(e,r,["isBoundOption",this.allOptionNames,this.options],r,"pushBound"),xs(e,r,["isUnsupportedOption",this.allOptionNames],un.ErrorNode,["setError","Unsupported option name"]),xs(e,r,["isInvalidOption"],un.ErrorNode,["setError","Invalid option name"]);for(let o of this.options)if(o.arity===0)for(let a of o.nameSet)xs(e,r,["isOption",a],r,["pushTrue",o.preferredName]),a.startsWith("--")&&!a.startsWith("--no-")&&xs(e,r,["isNegatedOption",a],r,["pushFalse",o.preferredName]);else{let a=Oc(e,tl());for(let n of o.nameSet)xs(e,r,["isOption",n],a,["pushUndefined",o.preferredName]);for(let n=0;n<o.arity;++n){let u=Oc(e,tl());zo(e,a,Hn.EndOfInput,un.ErrorNode,"setOptionArityError"),zo(e,a,Hn.EndOfPartialInput,un.ErrorNode,"setOptionArityError"),xs(e,a,"isOptionLike",un.ErrorNode,"setOptionArityError");let A=o.arity===1?"setStringValue":"pushStringValue";xs(e,a,"isNotOptionLike",u,A),a=u}am(e,a,r)}}},KD=class t{constructor({binaryName:e="..."}={}){this.builders=[],this.opts={binaryName:e}}static build(e,r={}){return new t(r).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${e})`);return this.builders[e]}commands(e){for(let r of e)r(this.command());return this}command(){let e=new bT(this.builders.length,this.opts);return this.builders.push(e),e}compile(){let e=[],r=[];for(let a of this.builders){let{machine:n,context:u}=a.compile();e.push(n),r.push(u)}let o=_qe(e);return Hqe(o),{machine:o,contexts:r,process:(a,{partial:n}={})=>{let u=n?Hn.EndOfPartialInput:Hn.EndOfInput;return Gqe(o,a,{endToken:u})}}}}});function IV(){return zD.default&&"getColorDepth"in zD.default.WriteStream.prototype?zD.default.WriteStream.prototype.getColorDepth():process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}function BV(t){let e=wV;if(typeof e>"u"){if(t.stdout===process.stdout&&t.stderr===process.stderr)return null;let{AsyncLocalStorage:r}=ve("async_hooks");e=wV=new r;let o=process.stdout._write;process.stdout._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?o.call(this,n,u,A):p.stdout.write(n,u,A)};let a=process.stderr._write;process.stderr._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?a.call(this,n,u,A):p.stderr.write(n,u,A)}}return r=>e.run(t,r)}var zD,wV,vV=Et(()=>{zD=Ze(ve("tty"),1)});var JD,DV=Et(()=>{Yp();JD=class t extends it{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,r){let o=new t(r);o.path=e.path;for(let a of e.options)switch(a.name){case"-c":o.commands.push(Number(a.value));break;case"-i":o.index=Number(a.value);break}return o}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index<e.length&&(e=[e[this.index]]),e.length===0)this.context.stdout.write(this.cli.usage());else if(e.length===1)this.context.stdout.write(this.cli.usage(this.contexts[e[0]].commandClass,{detailed:!0}));else if(e.length>1){this.context.stdout.write(`Multiple commands match your selection: -`),this.context.stdout.write(` -`);let r=0;for(let o of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[o].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(` -`),this.context.stdout.write(`Run again with -h=<index> to see the longer details of any of those commands. -`)}}}});async function bV(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=kV(t);return Jo.from(r,e).runExit(o,a)}async function xV(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=kV(t);return Jo.from(r,e).run(o,a)}function kV(t){let e,r,o,a;switch(typeof process<"u"&&typeof process.argv<"u"&&(o=process.argv.slice(2)),t.length){case 1:r=t[0];break;case 2:t[0]&&t[0].prototype instanceof it||Array.isArray(t[0])?(r=t[0],Array.isArray(t[1])?o=t[1]:a=t[1]):(e=t[0],r=t[1]);break;case 3:Array.isArray(t[2])?(e=t[0],r=t[1],o=t[2]):t[0]&&t[0].prototype instanceof it||Array.isArray(t[0])?(r=t[0],o=t[1],a=t[2]):(e=t[0],r=t[1],a=t[2]);break;default:e=t[0],r=t[1],o=t[2],a=t[3];break}if(typeof o>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}}function SV(t){return t()}var PV,Jo,QV=Et(()=>{OD();VD();yT();vV();Yp();DV();PV=Symbol("clipanion/errorCommand");Jo=class t{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:o,enableCapture:a=!1,enableColors:n}={}){this.registrations=new Map,this.builder=new KD({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=o,this.enableCapture=a,this.enableColors=n}static from(e,r={}){let o=new t(r),a=Array.isArray(e)?e:[e];for(let n of a)o.register(n);return o}register(e){var r;let o=new Map,a=new e;for(let p in a){let h=a[p];typeof h=="object"&&h!==null&&h[it.isOption]&&o.set(p,h)}let n=this.builder.command(),u=n.cliIndex,A=(r=e.paths)!==null&&r!==void 0?r:a.paths;if(typeof A<"u")for(let p of A)n.addPath(p);this.registrations.set(e,{specs:o,builder:n,index:u});for(let[p,{definition:h}]of o.entries())h(n,p);n.setContext({commandClass:e})}process(e,r){let{input:o,context:a,partial:n}=typeof e=="object"&&Array.isArray(e)?{input:e,context:r}:e,{contexts:u,process:A}=this.builder.compile(),p=A(o,{partial:n}),h={...t.defaultContext,...a};switch(p.selectedIndex){case Z0:{let E=JD.from(p,u);return E.context=h,E.tokens=p.tokens,E}default:{let{commandClass:E}=u[p.selectedIndex],I=this.registrations.get(E);if(typeof I>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let v=new E;v.context=h,v.tokens=p.tokens,v.path=p.path;try{for(let[x,{transformer:C}]of I.specs.entries())v[x]=C(I.builder,x,p,h);return v}catch(x){throw x[PV]=v,x}}break}}async run(e,r){var o,a;let n,u={...t.defaultContext,...r},A=(o=this.enableColors)!==null&&o!==void 0?o:u.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e,u)}catch(E){return u.stdout.write(this.error(E,{colored:A})),1}if(n.help)return u.stdout.write(this.usage(n,{colored:A,detailed:!0})),0;n.context=u,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),definition:E=>this.definition(E),error:(E,I)=>this.error(E,I),format:E=>this.format(E),process:(E,I)=>this.process(E,{...u,...I}),run:(E,I)=>this.run(E,{...u,...I}),usage:(E,I)=>this.usage(E,I)};let p=this.enableCapture&&(a=BV(u))!==null&&a!==void 0?a:SV,h;try{h=await p(()=>n.validateAndExecute().catch(E=>n.catch(E).then(()=>0)))}catch(E){return u.stdout.write(this.error(E,{colored:A,command:n})),1}return h}async runExit(e,r){process.exitCode=await this.run(e,r)}definition(e,{colored:r=!1}={}){if(!e.usage)return null;let{usage:o}=this.getUsageByRegistration(e,{detailed:!1}),{usage:a,options:n}=this.getUsageByRegistration(e,{detailed:!0,inlineOptions:!1}),u=typeof e.usage.category<"u"?Do(e.usage.category,{format:this.format(r),paragraphs:!1}):void 0,A=typeof e.usage.description<"u"?Do(e.usage.description,{format:this.format(r),paragraphs:!1}):void 0,p=typeof e.usage.details<"u"?Do(e.usage.details,{format:this.format(r),paragraphs:!0}):void 0,h=typeof e.usage.examples<"u"?e.usage.examples.map(([E,I])=>[Do(E,{format:this.format(r),paragraphs:!1}),I.replace(/\$0/g,this.binaryName)]):void 0;return{path:o,usage:a,category:u,description:A,details:p,examples:h,options:n}}definitions({colored:e=!1}={}){let r=[];for(let o of this.registrations.keys()){let a=this.definition(o,{colored:e});a&&r.push(a)}return r}usage(e=null,{colored:r,detailed:o=!1,prefix:a="$ "}={}){var n;if(e===null){for(let p of this.registrations.keys()){let h=p.paths,E=typeof p.usage<"u";if(!h||h.length===0||h.length===1&&h[0].length===0||((n=h?.some(x=>x.length===0))!==null&&n!==void 0?n:!1))if(e){e=null;break}else e=p;else if(E){e=null;continue}}e&&(o=!0)}let u=e!==null&&e instanceof it?e.constructor:e,A="";if(u)if(o){let{description:p="",details:h="",examples:E=[]}=u.usage||{};p!==""&&(A+=Do(p,{format:this.format(r),paragraphs:!1}).replace(/^./,x=>x.toUpperCase()),A+=` -`),(h!==""||E.length>0)&&(A+=`${this.format(r).header("Usage")} -`,A+=` -`);let{usage:I,options:v}=this.getUsageByRegistration(u,{inlineOptions:!1});if(A+=`${this.format(r).bold(a)}${I} -`,v.length>0){A+=` -`,A+=`${this.format(r).header("Options")} -`;let x=v.reduce((C,R)=>Math.max(C,R.definition.length),0);A+=` -`;for(let{definition:C,description:R}of v)A+=` ${this.format(r).bold(C.padEnd(x))} ${Do(R,{format:this.format(r),paragraphs:!1})}`}if(h!==""&&(A+=` -`,A+=`${this.format(r).header("Details")} -`,A+=` -`,A+=Do(h,{format:this.format(r),paragraphs:!0})),E.length>0){A+=` -`,A+=`${this.format(r).header("Examples")} -`;for(let[x,C]of E)A+=` -`,A+=Do(x,{format:this.format(r),paragraphs:!1}),A+=`${C.replace(/^/m,` ${this.format(r).bold(a)}`).replace(/\$0/g,this.binaryName)} -`}}else{let{usage:p}=this.getUsageByRegistration(u);A+=`${this.format(r).bold(a)}${p} -`}else{let p=new Map;for(let[v,{index:x}]of this.registrations.entries()){if(typeof v.usage>"u")continue;let C=typeof v.usage.category<"u"?Do(v.usage.category,{format:this.format(r),paragraphs:!1}):null,R=p.get(C);typeof R>"u"&&p.set(C,R=[]);let{usage:L}=this.getUsageByIndex(x);R.push({commandClass:v,usage:L})}let h=Array.from(p.keys()).sort((v,x)=>v===null?-1:x===null?1:v.localeCompare(x,"en",{usage:"sort",caseFirst:"upper"})),E=typeof this.binaryLabel<"u",I=typeof this.binaryVersion<"u";E||I?(E&&I?A+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)} - -`:E?A+=`${this.format(r).header(`${this.binaryLabel}`)} -`:A+=`${this.format(r).header(`${this.binaryVersion}`)} -`,A+=` ${this.format(r).bold(a)}${this.binaryName} <command> -`):A+=`${this.format(r).bold(a)}${this.binaryName} <command> -`;for(let v of h){let x=p.get(v).slice().sort((R,L)=>R.usage.localeCompare(L.usage,"en",{usage:"sort",caseFirst:"upper"})),C=v!==null?v.trim():"General commands";A+=` -`,A+=`${this.format(r).header(`${C}`)} -`;for(let{commandClass:R,usage:L}of x){let U=R.usage.description||"undocumented";A+=` -`,A+=` ${this.format(r).bold(L)} -`,A+=` ${Do(U,{format:this.format(r),paragraphs:!1})}`}}A+=` -`,A+=Do("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return A}error(e,r){var o,{colored:a,command:n=(o=e[PV])!==null&&o!==void 0?o:null}=r===void 0?{}:r;(!e||typeof e!="object"||!("stack"in e))&&(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let u="",A=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");A==="Error"&&(A="Internal Error"),u+=`${this.format(a).error(A)}: ${e.message} -`;let p=e.clipanion;return typeof p<"u"?p.type==="usage"&&(u+=` -`,u+=this.usage(n)):e.stack&&(u+=`${e.stack.replace(/^.*\n/,"")} -`),u}format(e){var r;return((r=e??this.enableColors)!==null&&r!==void 0?r:t.defaultContext.colorDepth>1)?uV:AV}getUsageByRegistration(e,r){let o=this.registrations.get(e);if(typeof o>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(o.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};Jo.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:IV()}});var Ww,FV=Et(()=>{Yp();Ww=class extends it{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} -`)}};Ww.paths=[["--clipanion=definitions"]]});var Kw,RV=Et(()=>{Yp();Kw=class extends it{async execute(){this.context.stdout.write(this.cli.usage())}};Kw.paths=[["-h"],["--help"]]});function XD(t={}){return Ko({definition(e,r){var o;e.addProxy({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){return o.positionals.map(({value:a})=>a)}})}var xT=Et(()=>{yf()});var Vw,TV=Et(()=>{Yp();xT();Vw=class extends it{constructor(){super(...arguments),this.args=XD()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)} -`)}};Vw.paths=[["--clipanion=tokens"]]});var zw,NV=Et(()=>{Yp();zw=class extends it{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:"<unknown>"} -`)}};zw.paths=[["-v"],["--version"]]});var kT={};Vt(kT,{DefinitionsCommand:()=>Ww,HelpCommand:()=>Kw,TokensCommand:()=>Vw,VersionCommand:()=>zw});var LV=Et(()=>{FV();RV();TV();NV()});function MV(t,e,r){let[o,a]=Gu(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Ko({definition(p){p.addOption({names:u,arity:n,hidden:a?.hidden,description:a?.description,required:a.required})},transformer(p,h,E){let I,v=typeof o<"u"?[...o]:void 0;for(let{name:x,value:C}of E.options)A.has(x)&&(I=x,v=v??[],v.push(C));return typeof v<"u"?$0(I??h,v,a.validator):v}})}var OV=Et(()=>{yf()});function UV(t,e,r){let[o,a]=Gu(e,r??{}),n=t.split(","),u=new Set(n);return Ko({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:I,value:v}of h.options)u.has(I)&&(E=v);return E}})}var _V=Et(()=>{yf()});function HV(t,e,r){let[o,a]=Gu(e,r??{}),n=t.split(","),u=new Set(n);return Ko({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:I,value:v}of h.options)u.has(I)&&(E??(E=0),v?E+=1:E=0);return E}})}var qV=Et(()=>{yf()});function jV(t={}){return Ko({definition(e,r){var o;e.addRest({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){let a=u=>{let A=o.positionals[u];return A.extra===rl||A.extra===!1&&u<e.arity.leading.length},n=0;for(;n<o.positionals.length&&a(n);)n+=1;return o.positionals.splice(0,n).map(({value:u})=>u)}})}var GV=Et(()=>{VD();yf()});function Jqe(t,e,r){let[o,a]=Gu(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Ko({definition(p){p.addOption({names:u,arity:a.tolerateBoolean?0:n,hidden:a.hidden,description:a.description,required:a.required})},transformer(p,h,E,I){let v,x=o;typeof a.env<"u"&&I.env[a.env]&&(v=a.env,x=I.env[a.env]);for(let{name:C,value:R}of E.options)A.has(C)&&(v=C,x=R);return typeof x=="string"?$0(v??h,x,a.validator):x}})}function Xqe(t={}){let{required:e=!0}=t;return Ko({definition(r,o){var a;r.addPositional({name:(a=t.name)!==null&&a!==void 0?a:o,required:t.required})},transformer(r,o,a){var n;for(let u=0;u<a.positionals.length;++u){if(a.positionals[u].extra===rl||e&&a.positionals[u].extra===!0||!e&&a.positionals[u].extra===!1)continue;let[A]=a.positionals.splice(u,1);return $0((n=t.name)!==null&&n!==void 0?n:o,A.value,t.validator)}}})}function YV(t,...e){return typeof t=="string"?Jqe(t,...e):Xqe(t)}var WV=Et(()=>{VD();yf()});var ge={};Vt(ge,{Array:()=>MV,Boolean:()=>UV,Counter:()=>HV,Proxy:()=>XD,Rest:()=>jV,String:()=>YV,applyValidator:()=>$0,cleanValidationError:()=>HD,formatError:()=>_w,isOptionSymbol:()=>Uw,makeCommandOption:()=>Ko,rerouteArguments:()=>Gu});var KV=Et(()=>{yf();xT();OV();_V();qV();GV();WV()});var Jw={};Vt(Jw,{Builtins:()=>kT,Cli:()=>Jo,Command:()=>it,Option:()=>ge,UsageError:()=>st,formatMarkdownish:()=>Do,run:()=>xV,runExit:()=>bV});var qt=Et(()=>{_D();yT();Yp();QV();LV();KV()});var VV=_((Rkt,Zqe)=>{Zqe.exports={name:"dotenv",version:"16.3.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://github.com/motdotla/dotenv?sponsor=1",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var ZV=_((Tkt,Ef)=>{var zV=ve("fs"),FT=ve("path"),$qe=ve("os"),eje=ve("crypto"),tje=VV(),RT=tje.version,rje=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function nje(t){let e={},r=t.toString();r=r.replace(/\r\n?/mg,` -`);let o;for(;(o=rje.exec(r))!=null;){let a=o[1],n=o[2]||"";n=n.trim();let u=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),u==='"'&&(n=n.replace(/\\n/g,` -`),n=n.replace(/\\r/g,"\r")),e[a]=n}return e}function ije(t){let e=XV(t),r=ks.configDotenv({path:e});if(!r.parsed)throw new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);let o=JV(t).split(","),a=o.length,n;for(let u=0;u<a;u++)try{let A=o[u].trim(),p=aje(r,A);n=ks.decrypt(p.ciphertext,p.key);break}catch(A){if(u+1>=a)throw A}return ks.parse(n)}function sje(t){console.log(`[dotenv@${RT}][INFO] ${t}`)}function oje(t){console.log(`[dotenv@${RT}][WARN] ${t}`)}function QT(t){console.log(`[dotenv@${RT}][DEBUG] ${t}`)}function JV(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function aje(t,e){let r;try{r=new URL(e)}catch(A){throw A.code==="ERR_INVALID_URL"?new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development"):A}let o=r.password;if(!o)throw new Error("INVALID_DOTENV_KEY: Missing key part");let a=r.searchParams.get("environment");if(!a)throw new Error("INVALID_DOTENV_KEY: Missing environment part");let n=`DOTENV_VAULT_${a.toUpperCase()}`,u=t.parsed[n];if(!u)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${n} in your .env.vault file.`);return{ciphertext:u,key:o}}function XV(t){let e=FT.resolve(process.cwd(),".env");return t&&t.path&&t.path.length>0&&(e=t.path),e.endsWith(".vault")?e:`${e}.vault`}function lje(t){return t[0]==="~"?FT.join($qe.homedir(),t.slice(1)):t}function cje(t){sje("Loading env from encrypted .env.vault");let e=ks._parseVault(t),r=process.env;return t&&t.processEnv!=null&&(r=t.processEnv),ks.populate(r,e,t),{parsed:e}}function uje(t){let e=FT.resolve(process.cwd(),".env"),r="utf8",o=!!(t&&t.debug);t&&(t.path!=null&&(e=lje(t.path)),t.encoding!=null&&(r=t.encoding));try{let a=ks.parse(zV.readFileSync(e,{encoding:r})),n=process.env;return t&&t.processEnv!=null&&(n=t.processEnv),ks.populate(n,a,t),{parsed:a}}catch(a){return o&&QT(`Failed to load ${e} ${a.message}`),{error:a}}}function Aje(t){let e=XV(t);return JV(t).length===0?ks.configDotenv(t):zV.existsSync(e)?ks._configVault(t):(oje(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),ks.configDotenv(t))}function fje(t,e){let r=Buffer.from(e.slice(-64),"hex"),o=Buffer.from(t,"base64"),a=o.slice(0,12),n=o.slice(-16);o=o.slice(12,-16);try{let u=eje.createDecipheriv("aes-256-gcm",r,a);return u.setAuthTag(n),`${u.update(o)}${u.final()}`}catch(u){let A=u instanceof RangeError,p=u.message==="Invalid key length",h=u.message==="Unsupported state or unable to authenticate data";if(A||p){let E="INVALID_DOTENV_KEY: It must be 64 characters long (or more)";throw new Error(E)}else if(h){let E="DECRYPTION_FAILED: Please check your DOTENV_KEY";throw new Error(E)}else throw console.error("Error: ",u.code),console.error("Error: ",u.message),u}}function pje(t,e,r={}){let o=!!(r&&r.debug),a=!!(r&&r.override);if(typeof e!="object")throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");for(let n of Object.keys(e))Object.prototype.hasOwnProperty.call(t,n)?(a===!0&&(t[n]=e[n]),o&&QT(a===!0?`"${n}" is already defined and WAS overwritten`:`"${n}" is already defined and was NOT overwritten`)):t[n]=e[n]}var ks={configDotenv:uje,_configVault:cje,_parseVault:ije,config:Aje,decrypt:fje,parse:nje,populate:pje};Ef.exports.configDotenv=ks.configDotenv;Ef.exports._configVault=ks._configVault;Ef.exports._parseVault=ks._parseVault;Ef.exports.config=ks.config;Ef.exports.decrypt=ks.decrypt;Ef.exports.parse=ks.parse;Ef.exports.populate=ks.populate;Ef.exports=ks});var ez=_((Nkt,$V)=>{"use strict";$V.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var eg=_((Lkt,TT)=>{"use strict";var hje=ez(),tz=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,o=()=>{r--,e.length>0&&e.shift()()},a=(A,p,...h)=>{r++;let E=hje(A,...h);p(E),E.then(o,o)},n=(A,p,...h)=>{r<t?a(A,p,...h):e.push(a.bind(null,A,p,...h))},u=(A,...p)=>new Promise(h=>n(A,h,...p));return Object.defineProperties(u,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),u};TT.exports=tz;TT.exports.default=tz});function Ku(t){return`YN${t.toString(10).padStart(4,"0")}`}function ZD(t){let e=Number(t.slice(2));if(typeof wr[e]>"u")throw new Error(`Unknown message name: "${t}"`);return e}var wr,$D=Et(()=>{wr=(Me=>(Me[Me.UNNAMED=0]="UNNAMED",Me[Me.EXCEPTION=1]="EXCEPTION",Me[Me.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",Me[Me.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",Me[Me.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",Me[Me.BUILD_DISABLED=5]="BUILD_DISABLED",Me[Me.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",Me[Me.MUST_BUILD=7]="MUST_BUILD",Me[Me.MUST_REBUILD=8]="MUST_REBUILD",Me[Me.BUILD_FAILED=9]="BUILD_FAILED",Me[Me.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",Me[Me.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",Me[Me.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",Me[Me.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",Me[Me.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",Me[Me.REMOTE_INVALID=15]="REMOTE_INVALID",Me[Me.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",Me[Me.RESOLUTION_PACK=17]="RESOLUTION_PACK",Me[Me.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",Me[Me.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",Me[Me.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",Me[Me.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",Me[Me.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",Me[Me.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",Me[Me.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",Me[Me.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",Me[Me.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",Me[Me.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",Me[Me.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",Me[Me.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",Me[Me.FETCH_FAILED=30]="FETCH_FAILED",Me[Me.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",Me[Me.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",Me[Me.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",Me[Me.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",Me[Me.NETWORK_ERROR=35]="NETWORK_ERROR",Me[Me.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",Me[Me.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",Me[Me.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",Me[Me.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",Me[Me.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",Me[Me.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",Me[Me.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",Me[Me.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",Me[Me.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",Me[Me.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",Me[Me.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",Me[Me.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",Me[Me.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",Me[Me.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",Me[Me.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",Me[Me.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",Me[Me.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",Me[Me.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",Me[Me.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",Me[Me.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",Me[Me.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",Me[Me.INVALID_MANIFEST=57]="INVALID_MANIFEST",Me[Me.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",Me[Me.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",Me[Me.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",Me[Me.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",Me[Me.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",Me[Me.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",Me[Me.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",Me[Me.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",Me[Me.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",Me[Me.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",Me[Me.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",Me[Me.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",Me[Me.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",Me[Me.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",Me[Me.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",Me[Me.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",Me[Me.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",Me[Me.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",Me[Me.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",Me[Me.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",Me[Me.RESOLUTION_MISMATCH=78]="RESOLUTION_MISMATCH",Me[Me.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",Me[Me.NETWORK_DISABLED=80]="NETWORK_DISABLED",Me[Me.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",Me[Me.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",Me[Me.AUTOMERGE_GIT_ERROR=83]="AUTOMERGE_GIT_ERROR",Me[Me.CONSTRAINTS_CHECK_FAILED=84]="CONSTRAINTS_CHECK_FAILED",Me[Me.UPDATED_RESOLUTION_RECORD=85]="UPDATED_RESOLUTION_RECORD",Me[Me.EXPLAIN_PEER_DEPENDENCIES_CTA=86]="EXPLAIN_PEER_DEPENDENCIES_CTA",Me[Me.MIGRATION_SUCCESS=87]="MIGRATION_SUCCESS",Me[Me.VERSION_NOTICE=88]="VERSION_NOTICE",Me[Me.TIPS_NOTICE=89]="TIPS_NOTICE",Me[Me.OFFLINE_MODE_ENABLED=90]="OFFLINE_MODE_ENABLED",Me))(wr||{})});var Xw=_((Okt,rz)=>{var gje="2.0.0",dje=Number.MAX_SAFE_INTEGER||9007199254740991,mje=16,yje=250,Eje=["major","premajor","minor","preminor","patch","prepatch","prerelease"];rz.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:mje,MAX_SAFE_BUILD_LENGTH:yje,MAX_SAFE_INTEGER:dje,RELEASE_TYPES:Eje,SEMVER_SPEC_VERSION:gje,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Zw=_((Ukt,nz)=>{var Cje=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};nz.exports=Cje});var lm=_((Cf,iz)=>{var{MAX_SAFE_COMPONENT_LENGTH:NT,MAX_SAFE_BUILD_LENGTH:wje,MAX_LENGTH:Ije}=Xw(),Bje=Zw();Cf=iz.exports={};var vje=Cf.re=[],Dje=Cf.safeRe=[],$t=Cf.src=[],er=Cf.t={},Pje=0,LT="[a-zA-Z0-9-]",Sje=[["\\s",1],["\\d",Ije],[LT,wje]],bje=t=>{for(let[e,r]of Sje)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},jr=(t,e,r)=>{let o=bje(e),a=Pje++;Bje(t,a,e),er[t]=a,$t[a]=e,vje[a]=new RegExp(e,r?"g":void 0),Dje[a]=new RegExp(o,r?"g":void 0)};jr("NUMERICIDENTIFIER","0|[1-9]\\d*");jr("NUMERICIDENTIFIERLOOSE","\\d+");jr("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${LT}*`);jr("MAINVERSION",`(${$t[er.NUMERICIDENTIFIER]})\\.(${$t[er.NUMERICIDENTIFIER]})\\.(${$t[er.NUMERICIDENTIFIER]})`);jr("MAINVERSIONLOOSE",`(${$t[er.NUMERICIDENTIFIERLOOSE]})\\.(${$t[er.NUMERICIDENTIFIERLOOSE]})\\.(${$t[er.NUMERICIDENTIFIERLOOSE]})`);jr("PRERELEASEIDENTIFIER",`(?:${$t[er.NUMERICIDENTIFIER]}|${$t[er.NONNUMERICIDENTIFIER]})`);jr("PRERELEASEIDENTIFIERLOOSE",`(?:${$t[er.NUMERICIDENTIFIERLOOSE]}|${$t[er.NONNUMERICIDENTIFIER]})`);jr("PRERELEASE",`(?:-(${$t[er.PRERELEASEIDENTIFIER]}(?:\\.${$t[er.PRERELEASEIDENTIFIER]})*))`);jr("PRERELEASELOOSE",`(?:-?(${$t[er.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$t[er.PRERELEASEIDENTIFIERLOOSE]})*))`);jr("BUILDIDENTIFIER",`${LT}+`);jr("BUILD",`(?:\\+(${$t[er.BUILDIDENTIFIER]}(?:\\.${$t[er.BUILDIDENTIFIER]})*))`);jr("FULLPLAIN",`v?${$t[er.MAINVERSION]}${$t[er.PRERELEASE]}?${$t[er.BUILD]}?`);jr("FULL",`^${$t[er.FULLPLAIN]}$`);jr("LOOSEPLAIN",`[v=\\s]*${$t[er.MAINVERSIONLOOSE]}${$t[er.PRERELEASELOOSE]}?${$t[er.BUILD]}?`);jr("LOOSE",`^${$t[er.LOOSEPLAIN]}$`);jr("GTLT","((?:<|>)?=?)");jr("XRANGEIDENTIFIERLOOSE",`${$t[er.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);jr("XRANGEIDENTIFIER",`${$t[er.NUMERICIDENTIFIER]}|x|X|\\*`);jr("XRANGEPLAIN",`[v=\\s]*(${$t[er.XRANGEIDENTIFIER]})(?:\\.(${$t[er.XRANGEIDENTIFIER]})(?:\\.(${$t[er.XRANGEIDENTIFIER]})(?:${$t[er.PRERELEASE]})?${$t[er.BUILD]}?)?)?`);jr("XRANGEPLAINLOOSE",`[v=\\s]*(${$t[er.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$t[er.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$t[er.XRANGEIDENTIFIERLOOSE]})(?:${$t[er.PRERELEASELOOSE]})?${$t[er.BUILD]}?)?)?`);jr("XRANGE",`^${$t[er.GTLT]}\\s*${$t[er.XRANGEPLAIN]}$`);jr("XRANGELOOSE",`^${$t[er.GTLT]}\\s*${$t[er.XRANGEPLAINLOOSE]}$`);jr("COERCEPLAIN",`(^|[^\\d])(\\d{1,${NT}})(?:\\.(\\d{1,${NT}}))?(?:\\.(\\d{1,${NT}}))?`);jr("COERCE",`${$t[er.COERCEPLAIN]}(?:$|[^\\d])`);jr("COERCEFULL",$t[er.COERCEPLAIN]+`(?:${$t[er.PRERELEASE]})?(?:${$t[er.BUILD]})?(?:$|[^\\d])`);jr("COERCERTL",$t[er.COERCE],!0);jr("COERCERTLFULL",$t[er.COERCEFULL],!0);jr("LONETILDE","(?:~>?)");jr("TILDETRIM",`(\\s*)${$t[er.LONETILDE]}\\s+`,!0);Cf.tildeTrimReplace="$1~";jr("TILDE",`^${$t[er.LONETILDE]}${$t[er.XRANGEPLAIN]}$`);jr("TILDELOOSE",`^${$t[er.LONETILDE]}${$t[er.XRANGEPLAINLOOSE]}$`);jr("LONECARET","(?:\\^)");jr("CARETTRIM",`(\\s*)${$t[er.LONECARET]}\\s+`,!0);Cf.caretTrimReplace="$1^";jr("CARET",`^${$t[er.LONECARET]}${$t[er.XRANGEPLAIN]}$`);jr("CARETLOOSE",`^${$t[er.LONECARET]}${$t[er.XRANGEPLAINLOOSE]}$`);jr("COMPARATORLOOSE",`^${$t[er.GTLT]}\\s*(${$t[er.LOOSEPLAIN]})$|^$`);jr("COMPARATOR",`^${$t[er.GTLT]}\\s*(${$t[er.FULLPLAIN]})$|^$`);jr("COMPARATORTRIM",`(\\s*)${$t[er.GTLT]}\\s*(${$t[er.LOOSEPLAIN]}|${$t[er.XRANGEPLAIN]})`,!0);Cf.comparatorTrimReplace="$1$2$3";jr("HYPHENRANGE",`^\\s*(${$t[er.XRANGEPLAIN]})\\s+-\\s+(${$t[er.XRANGEPLAIN]})\\s*$`);jr("HYPHENRANGELOOSE",`^\\s*(${$t[er.XRANGEPLAINLOOSE]})\\s+-\\s+(${$t[er.XRANGEPLAINLOOSE]})\\s*$`);jr("STAR","(<|>)?=?\\s*\\*");jr("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");jr("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var eP=_((_kt,sz)=>{var xje=Object.freeze({loose:!0}),kje=Object.freeze({}),Qje=t=>t?typeof t!="object"?xje:t:kje;sz.exports=Qje});var MT=_((Hkt,lz)=>{var oz=/^[0-9]+$/,az=(t,e)=>{let r=oz.test(t),o=oz.test(e);return r&&o&&(t=+t,e=+e),t===e?0:r&&!o?-1:o&&!r?1:t<e?-1:1},Fje=(t,e)=>az(e,t);lz.exports={compareIdentifiers:az,rcompareIdentifiers:Fje}});var Po=_((qkt,fz)=>{var tP=Zw(),{MAX_LENGTH:cz,MAX_SAFE_INTEGER:rP}=Xw(),{safeRe:uz,t:Az}=lm(),Rje=eP(),{compareIdentifiers:cm}=MT(),OT=class t{constructor(e,r){if(r=Rje(r),e instanceof t){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>cz)throw new TypeError(`version is longer than ${cz} characters`);tP("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let o=e.trim().match(r.loose?uz[Az.LOOSE]:uz[Az.FULL]);if(!o)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>rP||this.major<0)throw new TypeError("Invalid major version");if(this.minor>rP||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>rP||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let n=+a;if(n>=0&&n<rP)return n}return a}):this.prerelease=[],this.build=o[5]?o[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(tP("SemVer.compare",this.version,this.options,e),!(e instanceof t)){if(typeof e=="string"&&e===this.version)return 0;e=new t(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof t||(e=new t(e,this.options)),cm(this.major,e.major)||cm(this.minor,e.minor)||cm(this.patch,e.patch)}comparePre(e){if(e instanceof t||(e=new t(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{let o=this.prerelease[r],a=e.prerelease[r];if(tP("prerelease compare",r,o,a),o===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(o===void 0)return-1;if(o===a)continue;return cm(o,a)}while(++r)}compareBuild(e){e instanceof t||(e=new t(e,this.options));let r=0;do{let o=this.build[r],a=e.build[r];if(tP("prerelease compare",r,o,a),o===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(o===void 0)return-1;if(o===a)continue;return cm(o,a)}while(++r)}inc(e,r,o){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,o);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,o);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,o),this.inc("pre",r,o);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,o),this.inc("pre",r,o);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let a=Number(o)?1:0;if(!r&&o===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[a];else{let n=this.prerelease.length;for(;--n>=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(r===this.prerelease.join(".")&&o===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(a)}}if(r){let n=[r,a];o===!1&&(n=[r]),cm(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};fz.exports=OT});var tg=_((jkt,hz)=>{var pz=Po(),Tje=(t,e,r=!1)=>{if(t instanceof pz)return t;try{return new pz(t,e)}catch(o){if(!r)return null;throw o}};hz.exports=Tje});var dz=_((Gkt,gz)=>{var Nje=tg(),Lje=(t,e)=>{let r=Nje(t,e);return r?r.version:null};gz.exports=Lje});var yz=_((Ykt,mz)=>{var Mje=tg(),Oje=(t,e)=>{let r=Mje(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};mz.exports=Oje});var wz=_((Wkt,Cz)=>{var Ez=Po(),Uje=(t,e,r,o,a)=>{typeof r=="string"&&(a=o,o=r,r=void 0);try{return new Ez(t instanceof Ez?t.version:t,r).inc(e,o,a).version}catch{return null}};Cz.exports=Uje});var vz=_((Kkt,Bz)=>{var Iz=tg(),_je=(t,e)=>{let r=Iz(t,null,!0),o=Iz(e,null,!0),a=r.compare(o);if(a===0)return null;let n=a>0,u=n?r:o,A=n?o:r,p=!!u.prerelease.length;if(!!A.prerelease.length&&!p)return!A.patch&&!A.minor?"major":u.patch?"patch":u.minor?"minor":"major";let E=p?"pre":"";return r.major!==o.major?E+"major":r.minor!==o.minor?E+"minor":r.patch!==o.patch?E+"patch":"prerelease"};Bz.exports=_je});var Pz=_((Vkt,Dz)=>{var Hje=Po(),qje=(t,e)=>new Hje(t,e).major;Dz.exports=qje});var bz=_((zkt,Sz)=>{var jje=Po(),Gje=(t,e)=>new jje(t,e).minor;Sz.exports=Gje});var kz=_((Jkt,xz)=>{var Yje=Po(),Wje=(t,e)=>new Yje(t,e).patch;xz.exports=Wje});var Fz=_((Xkt,Qz)=>{var Kje=tg(),Vje=(t,e)=>{let r=Kje(t,e);return r&&r.prerelease.length?r.prerelease:null};Qz.exports=Vje});var Ll=_((Zkt,Tz)=>{var Rz=Po(),zje=(t,e,r)=>new Rz(t,r).compare(new Rz(e,r));Tz.exports=zje});var Lz=_(($kt,Nz)=>{var Jje=Ll(),Xje=(t,e,r)=>Jje(e,t,r);Nz.exports=Xje});var Oz=_((eQt,Mz)=>{var Zje=Ll(),$je=(t,e)=>Zje(t,e,!0);Mz.exports=$je});var nP=_((tQt,_z)=>{var Uz=Po(),e5e=(t,e,r)=>{let o=new Uz(t,r),a=new Uz(e,r);return o.compare(a)||o.compareBuild(a)};_z.exports=e5e});var qz=_((rQt,Hz)=>{var t5e=nP(),r5e=(t,e)=>t.sort((r,o)=>t5e(r,o,e));Hz.exports=r5e});var Gz=_((nQt,jz)=>{var n5e=nP(),i5e=(t,e)=>t.sort((r,o)=>n5e(o,r,e));jz.exports=i5e});var $w=_((iQt,Yz)=>{var s5e=Ll(),o5e=(t,e,r)=>s5e(t,e,r)>0;Yz.exports=o5e});var iP=_((sQt,Wz)=>{var a5e=Ll(),l5e=(t,e,r)=>a5e(t,e,r)<0;Wz.exports=l5e});var UT=_((oQt,Kz)=>{var c5e=Ll(),u5e=(t,e,r)=>c5e(t,e,r)===0;Kz.exports=u5e});var _T=_((aQt,Vz)=>{var A5e=Ll(),f5e=(t,e,r)=>A5e(t,e,r)!==0;Vz.exports=f5e});var sP=_((lQt,zz)=>{var p5e=Ll(),h5e=(t,e,r)=>p5e(t,e,r)>=0;zz.exports=h5e});var oP=_((cQt,Jz)=>{var g5e=Ll(),d5e=(t,e,r)=>g5e(t,e,r)<=0;Jz.exports=d5e});var HT=_((uQt,Xz)=>{var m5e=UT(),y5e=_T(),E5e=$w(),C5e=sP(),w5e=iP(),I5e=oP(),B5e=(t,e,r,o)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return m5e(t,r,o);case"!=":return y5e(t,r,o);case">":return E5e(t,r,o);case">=":return C5e(t,r,o);case"<":return w5e(t,r,o);case"<=":return I5e(t,r,o);default:throw new TypeError(`Invalid operator: ${e}`)}};Xz.exports=B5e});var $z=_((AQt,Zz)=>{var v5e=Po(),D5e=tg(),{safeRe:aP,t:lP}=lm(),P5e=(t,e)=>{if(t instanceof v5e)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?aP[lP.COERCEFULL]:aP[lP.COERCE]);else{let p=e.includePrerelease?aP[lP.COERCERTLFULL]:aP[lP.COERCERTL],h;for(;(h=p.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||h.index+h[0].length!==r.index+r[0].length)&&(r=h),p.lastIndex=h.index+h[1].length+h[2].length;p.lastIndex=-1}if(r===null)return null;let o=r[2],a=r[3]||"0",n=r[4]||"0",u=e.includePrerelease&&r[5]?`-${r[5]}`:"",A=e.includePrerelease&&r[6]?`+${r[6]}`:"";return D5e(`${o}.${a}.${n}${u}${A}`,e)};Zz.exports=P5e});var tJ=_((fQt,eJ)=>{"use strict";eJ.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var cP=_((pQt,rJ)=>{"use strict";rJ.exports=Cn;Cn.Node=rg;Cn.create=Cn;function Cn(t){var e=this;if(e instanceof Cn||(e=new Cn),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(a){e.push(a)});else if(arguments.length>0)for(var r=0,o=arguments.length;r<o;r++)e.push(arguments[r]);return e}Cn.prototype.removeNode=function(t){if(t.list!==this)throw new Error("removing node which does not belong to this list");var e=t.next,r=t.prev;return e&&(e.prev=r),r&&(r.next=e),t===this.head&&(this.head=e),t===this.tail&&(this.tail=r),t.list.length--,t.next=null,t.prev=null,t.list=null,e};Cn.prototype.unshiftNode=function(t){if(t!==this.head){t.list&&t.list.removeNode(t);var e=this.head;t.list=this,t.next=e,e&&(e.prev=t),this.head=t,this.tail||(this.tail=t),this.length++}};Cn.prototype.pushNode=function(t){if(t!==this.tail){t.list&&t.list.removeNode(t);var e=this.tail;t.list=this,t.prev=e,e&&(e.next=t),this.tail=t,this.head||(this.head=t),this.length++}};Cn.prototype.push=function(){for(var t=0,e=arguments.length;t<e;t++)b5e(this,arguments[t]);return this.length};Cn.prototype.unshift=function(){for(var t=0,e=arguments.length;t<e;t++)x5e(this,arguments[t]);return this.length};Cn.prototype.pop=function(){if(this.tail){var t=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,t}};Cn.prototype.shift=function(){if(this.head){var t=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,t}};Cn.prototype.forEach=function(t,e){e=e||this;for(var r=this.head,o=0;r!==null;o++)t.call(e,r.value,o,this),r=r.next};Cn.prototype.forEachReverse=function(t,e){e=e||this;for(var r=this.tail,o=this.length-1;r!==null;o--)t.call(e,r.value,o,this),r=r.prev};Cn.prototype.get=function(t){for(var e=0,r=this.head;r!==null&&e<t;e++)r=r.next;if(e===t&&r!==null)return r.value};Cn.prototype.getReverse=function(t){for(var e=0,r=this.tail;r!==null&&e<t;e++)r=r.prev;if(e===t&&r!==null)return r.value};Cn.prototype.map=function(t,e){e=e||this;for(var r=new Cn,o=this.head;o!==null;)r.push(t.call(e,o.value,this)),o=o.next;return r};Cn.prototype.mapReverse=function(t,e){e=e||this;for(var r=new Cn,o=this.tail;o!==null;)r.push(t.call(e,o.value,this)),o=o.prev;return r};Cn.prototype.reduce=function(t,e){var r,o=this.head;if(arguments.length>1)r=e;else if(this.head)o=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;o!==null;a++)r=t(r,o.value,a),o=o.next;return r};Cn.prototype.reduceReverse=function(t,e){var r,o=this.tail;if(arguments.length>1)r=e;else if(this.tail)o=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=this.length-1;o!==null;a--)r=t(r,o.value,a),o=o.prev;return r};Cn.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};Cn.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};Cn.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new Cn;if(e<t||e<0)return r;t<0&&(t=0),e>this.length&&(e=this.length);for(var o=0,a=this.head;a!==null&&o<t;o++)a=a.next;for(;a!==null&&o<e;o++,a=a.next)r.push(a.value);return r};Cn.prototype.sliceReverse=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new Cn;if(e<t||e<0)return r;t<0&&(t=0),e>this.length&&(e=this.length);for(var o=this.length,a=this.tail;a!==null&&o>e;o--)a=a.prev;for(;a!==null&&o>t;o--,a=a.prev)r.push(a.value);return r};Cn.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var o=0,a=this.head;a!==null&&o<t;o++)a=a.next;for(var n=[],o=0;a&&o<e;o++)n.push(a.value),a=this.removeNode(a);a===null&&(a=this.tail),a!==this.head&&a!==this.tail&&(a=a.prev);for(var o=0;o<r.length;o++)a=S5e(this,a,r[o]);return n};Cn.prototype.reverse=function(){for(var t=this.head,e=this.tail,r=t;r!==null;r=r.prev){var o=r.prev;r.prev=r.next,r.next=o}return this.head=e,this.tail=t,this};function S5e(t,e,r){var o=e===t.head?new rg(r,null,e,t):new rg(r,e,e.next,t);return o.next===null&&(t.tail=o),o.prev===null&&(t.head=o),t.length++,o}function b5e(t,e){t.tail=new rg(e,t.tail,null,t),t.head||(t.head=t.tail),t.length++}function x5e(t,e){t.head=new rg(e,null,t.head,t),t.tail||(t.tail=t.head),t.length++}function rg(t,e,r,o){if(!(this instanceof rg))return new rg(t,e,r,o);this.list=o,this.value=t,e?(e.next=this,this.prev=e):this.prev=null,r?(r.prev=this,this.next=r):this.next=null}try{tJ()(Cn)}catch{}});var aJ=_((hQt,oJ)=>{"use strict";var k5e=cP(),ng=Symbol("max"),If=Symbol("length"),um=Symbol("lengthCalculator"),tI=Symbol("allowStale"),ig=Symbol("maxAge"),wf=Symbol("dispose"),nJ=Symbol("noDisposeOnSet"),Qs=Symbol("lruList"),Uc=Symbol("cache"),sJ=Symbol("updateAgeOnGet"),qT=()=>1,GT=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let r=this[ng]=e.max||1/0,o=e.length||qT;if(this[um]=typeof o!="function"?qT:o,this[tI]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[ig]=e.maxAge||0,this[wf]=e.dispose,this[nJ]=e.noDisposeOnSet||!1,this[sJ]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[ng]=e||1/0,eI(this)}get max(){return this[ng]}set allowStale(e){this[tI]=!!e}get allowStale(){return this[tI]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[ig]=e,eI(this)}get maxAge(){return this[ig]}set lengthCalculator(e){typeof e!="function"&&(e=qT),e!==this[um]&&(this[um]=e,this[If]=0,this[Qs].forEach(r=>{r.length=this[um](r.value,r.key),this[If]+=r.length})),eI(this)}get lengthCalculator(){return this[um]}get length(){return this[If]}get itemCount(){return this[Qs].length}rforEach(e,r){r=r||this;for(let o=this[Qs].tail;o!==null;){let a=o.prev;iJ(this,e,o,r),o=a}}forEach(e,r){r=r||this;for(let o=this[Qs].head;o!==null;){let a=o.next;iJ(this,e,o,r),o=a}}keys(){return this[Qs].toArray().map(e=>e.key)}values(){return this[Qs].toArray().map(e=>e.value)}reset(){this[wf]&&this[Qs]&&this[Qs].length&&this[Qs].forEach(e=>this[wf](e.key,e.value)),this[Uc]=new Map,this[Qs]=new k5e,this[If]=0}dump(){return this[Qs].map(e=>uP(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Qs]}set(e,r,o){if(o=o||this[ig],o&&typeof o!="number")throw new TypeError("maxAge must be a number");let a=o?Date.now():0,n=this[um](r,e);if(this[Uc].has(e)){if(n>this[ng])return Am(this,this[Uc].get(e)),!1;let p=this[Uc].get(e).value;return this[wf]&&(this[nJ]||this[wf](e,p.value)),p.now=a,p.maxAge=o,p.value=r,this[If]+=n-p.length,p.length=n,this.get(e),eI(this),!0}let u=new YT(e,r,n,a,o);return u.length>this[ng]?(this[wf]&&this[wf](e,r),!1):(this[If]+=u.length,this[Qs].unshift(u),this[Uc].set(e,this[Qs].head),eI(this),!0)}has(e){if(!this[Uc].has(e))return!1;let r=this[Uc].get(e).value;return!uP(this,r)}get(e){return jT(this,e,!0)}peek(e){return jT(this,e,!1)}pop(){let e=this[Qs].tail;return e?(Am(this,e),e.value):null}del(e){Am(this,this[Uc].get(e))}load(e){this.reset();let r=Date.now();for(let o=e.length-1;o>=0;o--){let a=e[o],n=a.e||0;if(n===0)this.set(a.k,a.v);else{let u=n-r;u>0&&this.set(a.k,a.v,u)}}}prune(){this[Uc].forEach((e,r)=>jT(this,r,!1))}},jT=(t,e,r)=>{let o=t[Uc].get(e);if(o){let a=o.value;if(uP(t,a)){if(Am(t,o),!t[tI])return}else r&&(t[sJ]&&(o.value.now=Date.now()),t[Qs].unshiftNode(o));return a.value}},uP=(t,e)=>{if(!e||!e.maxAge&&!t[ig])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[ig]&&r>t[ig]},eI=t=>{if(t[If]>t[ng])for(let e=t[Qs].tail;t[If]>t[ng]&&e!==null;){let r=e.prev;Am(t,e),e=r}},Am=(t,e)=>{if(e){let r=e.value;t[wf]&&t[wf](r.key,r.value),t[If]-=r.length,t[Uc].delete(r.key),t[Qs].removeNode(e)}},YT=class{constructor(e,r,o,a,n){this.key=e,this.value=r,this.length=o,this.now=a,this.maxAge=n||0}},iJ=(t,e,r,o)=>{let a=r.value;uP(t,a)&&(Am(t,r),t[tI]||(a=void 0)),a&&e.call(o,a.value,a.key,t)};oJ.exports=GT});var Ml=_((gQt,AJ)=>{var WT=class t{constructor(e,r){if(r=F5e(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof KT)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(o=>this.parseRange(o.trim())).filter(o=>o.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let o=this.set[0];if(this.set=this.set.filter(a=>!cJ(a[0])),this.set.length===0)this.set=[o];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&U5e(a[0])){this.set=[a];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){let o=((this.options.includePrerelease&&M5e)|(this.options.loose&&O5e))+":"+e,a=lJ.get(o);if(a)return a;let n=this.options.loose,u=n?Sa[Xo.HYPHENRANGELOOSE]:Sa[Xo.HYPHENRANGE];e=e.replace(u,z5e(this.options.includePrerelease)),ci("hyphen replace",e),e=e.replace(Sa[Xo.COMPARATORTRIM],T5e),ci("comparator trim",e),e=e.replace(Sa[Xo.TILDETRIM],N5e),ci("tilde trim",e),e=e.replace(Sa[Xo.CARETTRIM],L5e),ci("caret trim",e);let A=e.split(" ").map(I=>_5e(I,this.options)).join(" ").split(/\s+/).map(I=>V5e(I,this.options));n&&(A=A.filter(I=>(ci("loose invalid filter",I,this.options),!!I.match(Sa[Xo.COMPARATORLOOSE])))),ci("range list",A);let p=new Map,h=A.map(I=>new KT(I,this.options));for(let I of h){if(cJ(I))return[I];p.set(I.value,I)}p.size>1&&p.has("")&&p.delete("");let E=[...p.values()];return lJ.set(o,E),E}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(o=>uJ(o,r)&&e.set.some(a=>uJ(a,r)&&o.every(n=>a.every(u=>n.intersects(u,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new R5e(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(J5e(this.set[r],e,this.options))return!0;return!1}};AJ.exports=WT;var Q5e=aJ(),lJ=new Q5e({max:1e3}),F5e=eP(),KT=rI(),ci=Zw(),R5e=Po(),{safeRe:Sa,t:Xo,comparatorTrimReplace:T5e,tildeTrimReplace:N5e,caretTrimReplace:L5e}=lm(),{FLAG_INCLUDE_PRERELEASE:M5e,FLAG_LOOSE:O5e}=Xw(),cJ=t=>t.value==="<0.0.0-0",U5e=t=>t.value==="",uJ=(t,e)=>{let r=!0,o=t.slice(),a=o.pop();for(;r&&o.length;)r=o.every(n=>a.intersects(n,e)),a=o.pop();return r},_5e=(t,e)=>(ci("comp",t,e),t=j5e(t,e),ci("caret",t),t=H5e(t,e),ci("tildes",t),t=Y5e(t,e),ci("xrange",t),t=K5e(t,e),ci("stars",t),t),Zo=t=>!t||t.toLowerCase()==="x"||t==="*",H5e=(t,e)=>t.trim().split(/\s+/).map(r=>q5e(r,e)).join(" "),q5e=(t,e)=>{let r=e.loose?Sa[Xo.TILDELOOSE]:Sa[Xo.TILDE];return t.replace(r,(o,a,n,u,A)=>{ci("tilde",t,o,a,n,u,A);let p;return Zo(a)?p="":Zo(n)?p=`>=${a}.0.0 <${+a+1}.0.0-0`:Zo(u)?p=`>=${a}.${n}.0 <${a}.${+n+1}.0-0`:A?(ci("replaceTilde pr",A),p=`>=${a}.${n}.${u}-${A} <${a}.${+n+1}.0-0`):p=`>=${a}.${n}.${u} <${a}.${+n+1}.0-0`,ci("tilde return",p),p})},j5e=(t,e)=>t.trim().split(/\s+/).map(r=>G5e(r,e)).join(" "),G5e=(t,e)=>{ci("caret",t,e);let r=e.loose?Sa[Xo.CARETLOOSE]:Sa[Xo.CARET],o=e.includePrerelease?"-0":"";return t.replace(r,(a,n,u,A,p)=>{ci("caret",t,a,n,u,A,p);let h;return Zo(n)?h="":Zo(u)?h=`>=${n}.0.0${o} <${+n+1}.0.0-0`:Zo(A)?n==="0"?h=`>=${n}.${u}.0${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.0${o} <${+n+1}.0.0-0`:p?(ci("replaceCaret pr",p),n==="0"?u==="0"?h=`>=${n}.${u}.${A}-${p} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}-${p} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A}-${p} <${+n+1}.0.0-0`):(ci("no pr"),n==="0"?u==="0"?h=`>=${n}.${u}.${A}${o} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A} <${+n+1}.0.0-0`),ci("caret return",h),h})},Y5e=(t,e)=>(ci("replaceXRanges",t,e),t.split(/\s+/).map(r=>W5e(r,e)).join(" ")),W5e=(t,e)=>{t=t.trim();let r=e.loose?Sa[Xo.XRANGELOOSE]:Sa[Xo.XRANGE];return t.replace(r,(o,a,n,u,A,p)=>{ci("xRange",t,o,a,n,u,A,p);let h=Zo(n),E=h||Zo(u),I=E||Zo(A),v=I;return a==="="&&v&&(a=""),p=e.includePrerelease?"-0":"",h?a===">"||a==="<"?o="<0.0.0-0":o="*":a&&v?(E&&(u=0),A=0,a===">"?(a=">=",E?(n=+n+1,u=0,A=0):(u=+u+1,A=0)):a==="<="&&(a="<",E?n=+n+1:u=+u+1),a==="<"&&(p="-0"),o=`${a+n}.${u}.${A}${p}`):E?o=`>=${n}.0.0${p} <${+n+1}.0.0-0`:I&&(o=`>=${n}.${u}.0${p} <${n}.${+u+1}.0-0`),ci("xRange return",o),o})},K5e=(t,e)=>(ci("replaceStars",t,e),t.trim().replace(Sa[Xo.STAR],"")),V5e=(t,e)=>(ci("replaceGTE0",t,e),t.trim().replace(Sa[e.includePrerelease?Xo.GTE0PRE:Xo.GTE0],"")),z5e=t=>(e,r,o,a,n,u,A,p,h,E,I,v,x)=>(Zo(o)?r="":Zo(a)?r=`>=${o}.0.0${t?"-0":""}`:Zo(n)?r=`>=${o}.${a}.0${t?"-0":""}`:u?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,Zo(h)?p="":Zo(E)?p=`<${+h+1}.0.0-0`:Zo(I)?p=`<${h}.${+E+1}.0-0`:v?p=`<=${h}.${E}.${I}-${v}`:t?p=`<${h}.${E}.${+I+1}-0`:p=`<=${p}`,`${r} ${p}`.trim()),J5e=(t,e,r)=>{for(let o=0;o<t.length;o++)if(!t[o].test(e))return!1;if(e.prerelease.length&&!r.includePrerelease){for(let o=0;o<t.length;o++)if(ci(t[o].semver),t[o].semver!==KT.ANY&&t[o].semver.prerelease.length>0){let a=t[o].semver;if(a.major===e.major&&a.minor===e.minor&&a.patch===e.patch)return!0}return!1}return!0}});var rI=_((dQt,mJ)=>{var nI=Symbol("SemVer ANY"),JT=class t{static get ANY(){return nI}constructor(e,r){if(r=fJ(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),zT("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===nI?this.value="":this.value=this.operator+this.semver.version,zT("comp",this)}parse(e){let r=this.options.loose?pJ[hJ.COMPARATORLOOSE]:pJ[hJ.COMPARATOR],o=e.match(r);if(!o)throw new TypeError(`Invalid comparator: ${e}`);this.operator=o[1]!==void 0?o[1]:"",this.operator==="="&&(this.operator=""),o[2]?this.semver=new gJ(o[2],this.options.loose):this.semver=nI}toString(){return this.value}test(e){if(zT("Comparator.test",e,this.options.loose),this.semver===nI||e===nI)return!0;if(typeof e=="string")try{e=new gJ(e,this.options)}catch{return!1}return VT(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new dJ(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new dJ(this.value,r).test(e.semver):(r=fJ(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||VT(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||VT(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};mJ.exports=JT;var fJ=eP(),{safeRe:pJ,t:hJ}=lm(),VT=HT(),zT=Zw(),gJ=Po(),dJ=Ml()});var iI=_((mQt,yJ)=>{var X5e=Ml(),Z5e=(t,e,r)=>{try{e=new X5e(e,r)}catch{return!1}return e.test(t)};yJ.exports=Z5e});var CJ=_((yQt,EJ)=>{var $5e=Ml(),eGe=(t,e)=>new $5e(t,e).set.map(r=>r.map(o=>o.value).join(" ").trim().split(" "));EJ.exports=eGe});var IJ=_((EQt,wJ)=>{var tGe=Po(),rGe=Ml(),nGe=(t,e,r)=>{let o=null,a=null,n=null;try{n=new rGe(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===-1)&&(o=u,a=new tGe(o,r))}),o};wJ.exports=nGe});var vJ=_((CQt,BJ)=>{var iGe=Po(),sGe=Ml(),oGe=(t,e,r)=>{let o=null,a=null,n=null;try{n=new sGe(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===1)&&(o=u,a=new iGe(o,r))}),o};BJ.exports=oGe});var SJ=_((wQt,PJ)=>{var XT=Po(),aGe=Ml(),DJ=$w(),lGe=(t,e)=>{t=new aGe(t,e);let r=new XT("0.0.0");if(t.test(r)||(r=new XT("0.0.0-0"),t.test(r)))return r;r=null;for(let o=0;o<t.set.length;++o){let a=t.set[o],n=null;a.forEach(u=>{let A=new XT(u.semver.version);switch(u.operator){case">":A.prerelease.length===0?A.patch++:A.prerelease.push(0),A.raw=A.format();case"":case">=":(!n||DJ(A,n))&&(n=A);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${u.operator}`)}}),n&&(!r||DJ(r,n))&&(r=n)}return r&&t.test(r)?r:null};PJ.exports=lGe});var xJ=_((IQt,bJ)=>{var cGe=Ml(),uGe=(t,e)=>{try{return new cGe(t,e).range||"*"}catch{return null}};bJ.exports=uGe});var AP=_((BQt,RJ)=>{var AGe=Po(),FJ=rI(),{ANY:fGe}=FJ,pGe=Ml(),hGe=iI(),kJ=$w(),QJ=iP(),gGe=oP(),dGe=sP(),mGe=(t,e,r,o)=>{t=new AGe(t,o),e=new pGe(e,o);let a,n,u,A,p;switch(r){case">":a=kJ,n=gGe,u=QJ,A=">",p=">=";break;case"<":a=QJ,n=dGe,u=kJ,A="<",p="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(hGe(t,e,o))return!1;for(let h=0;h<e.set.length;++h){let E=e.set[h],I=null,v=null;if(E.forEach(x=>{x.semver===fGe&&(x=new FJ(">=0.0.0")),I=I||x,v=v||x,a(x.semver,I.semver,o)?I=x:u(x.semver,v.semver,o)&&(v=x)}),I.operator===A||I.operator===p||(!v.operator||v.operator===A)&&n(t,v.semver))return!1;if(v.operator===p&&u(t,v.semver))return!1}return!0};RJ.exports=mGe});var NJ=_((vQt,TJ)=>{var yGe=AP(),EGe=(t,e,r)=>yGe(t,e,">",r);TJ.exports=EGe});var MJ=_((DQt,LJ)=>{var CGe=AP(),wGe=(t,e,r)=>CGe(t,e,"<",r);LJ.exports=wGe});var _J=_((PQt,UJ)=>{var OJ=Ml(),IGe=(t,e,r)=>(t=new OJ(t,r),e=new OJ(e,r),t.intersects(e,r));UJ.exports=IGe});var qJ=_((SQt,HJ)=>{var BGe=iI(),vGe=Ll();HJ.exports=(t,e,r)=>{let o=[],a=null,n=null,u=t.sort((E,I)=>vGe(E,I,r));for(let E of u)BGe(E,e,r)?(n=E,a||(a=E)):(n&&o.push([a,n]),n=null,a=null);a&&o.push([a,null]);let A=[];for(let[E,I]of o)E===I?A.push(E):!I&&E===u[0]?A.push("*"):I?E===u[0]?A.push(`<=${I}`):A.push(`${E} - ${I}`):A.push(`>=${E}`);let p=A.join(" || "),h=typeof e.raw=="string"?e.raw:String(e);return p.length<h.length?p:e}});var VJ=_((bQt,KJ)=>{var jJ=Ml(),$T=rI(),{ANY:ZT}=$T,sI=iI(),eN=Ll(),DGe=(t,e,r={})=>{if(t===e)return!0;t=new jJ(t,r),e=new jJ(e,r);let o=!1;e:for(let a of t.set){for(let n of e.set){let u=SGe(a,n,r);if(o=o||u!==null,u)continue e}if(o)return!1}return!0},PGe=[new $T(">=0.0.0-0")],GJ=[new $T(">=0.0.0")],SGe=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===ZT){if(e.length===1&&e[0].semver===ZT)return!0;r.includePrerelease?t=PGe:t=GJ}if(e.length===1&&e[0].semver===ZT){if(r.includePrerelease)return!0;e=GJ}let o=new Set,a,n;for(let x of t)x.operator===">"||x.operator===">="?a=YJ(a,x,r):x.operator==="<"||x.operator==="<="?n=WJ(n,x,r):o.add(x.semver);if(o.size>1)return null;let u;if(a&&n){if(u=eN(a.semver,n.semver,r),u>0)return null;if(u===0&&(a.operator!==">="||n.operator!=="<="))return null}for(let x of o){if(a&&!sI(x,String(a),r)||n&&!sI(x,String(n),r))return null;for(let C of e)if(!sI(x,String(C),r))return!1;return!0}let A,p,h,E,I=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1,v=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;I&&I.prerelease.length===1&&n.operator==="<"&&I.prerelease[0]===0&&(I=!1);for(let x of e){if(E=E||x.operator===">"||x.operator===">=",h=h||x.operator==="<"||x.operator==="<=",a){if(v&&x.semver.prerelease&&x.semver.prerelease.length&&x.semver.major===v.major&&x.semver.minor===v.minor&&x.semver.patch===v.patch&&(v=!1),x.operator===">"||x.operator===">="){if(A=YJ(a,x,r),A===x&&A!==a)return!1}else if(a.operator===">="&&!sI(a.semver,String(x),r))return!1}if(n){if(I&&x.semver.prerelease&&x.semver.prerelease.length&&x.semver.major===I.major&&x.semver.minor===I.minor&&x.semver.patch===I.patch&&(I=!1),x.operator==="<"||x.operator==="<="){if(p=WJ(n,x,r),p===x&&p!==n)return!1}else if(n.operator==="<="&&!sI(n.semver,String(x),r))return!1}if(!x.operator&&(n||a)&&u!==0)return!1}return!(a&&h&&!n&&u!==0||n&&E&&!a&&u!==0||v||I)},YJ=(t,e,r)=>{if(!t)return e;let o=eN(t.semver,e.semver,r);return o>0?t:o<0||e.operator===">"&&t.operator===">="?e:t},WJ=(t,e,r)=>{if(!t)return e;let o=eN(t.semver,e.semver,r);return o<0?t:o>0||e.operator==="<"&&t.operator==="<="?e:t};KJ.exports=DGe});var Jn=_((xQt,XJ)=>{var tN=lm(),zJ=Xw(),bGe=Po(),JJ=MT(),xGe=tg(),kGe=dz(),QGe=yz(),FGe=wz(),RGe=vz(),TGe=Pz(),NGe=bz(),LGe=kz(),MGe=Fz(),OGe=Ll(),UGe=Lz(),_Ge=Oz(),HGe=nP(),qGe=qz(),jGe=Gz(),GGe=$w(),YGe=iP(),WGe=UT(),KGe=_T(),VGe=sP(),zGe=oP(),JGe=HT(),XGe=$z(),ZGe=rI(),$Ge=Ml(),e9e=iI(),t9e=CJ(),r9e=IJ(),n9e=vJ(),i9e=SJ(),s9e=xJ(),o9e=AP(),a9e=NJ(),l9e=MJ(),c9e=_J(),u9e=qJ(),A9e=VJ();XJ.exports={parse:xGe,valid:kGe,clean:QGe,inc:FGe,diff:RGe,major:TGe,minor:NGe,patch:LGe,prerelease:MGe,compare:OGe,rcompare:UGe,compareLoose:_Ge,compareBuild:HGe,sort:qGe,rsort:jGe,gt:GGe,lt:YGe,eq:WGe,neq:KGe,gte:VGe,lte:zGe,cmp:JGe,coerce:XGe,Comparator:ZGe,Range:$Ge,satisfies:e9e,toComparators:t9e,maxSatisfying:r9e,minSatisfying:n9e,minVersion:i9e,validRange:s9e,outside:o9e,gtr:a9e,ltr:l9e,intersects:c9e,simplifyRange:u9e,subset:A9e,SemVer:bGe,re:tN.re,src:tN.src,tokens:tN.t,SEMVER_SPEC_VERSION:zJ.SEMVER_SPEC_VERSION,RELEASE_TYPES:zJ.RELEASE_TYPES,compareIdentifiers:JJ.compareIdentifiers,rcompareIdentifiers:JJ.rcompareIdentifiers}});var $J=_((kQt,ZJ)=>{"use strict";function f9e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function sg(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,sg)}f9e(sg,Error);sg.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I<h.parts.length;I++)E+=h.parts[I]instanceof Array?n(h.parts[I][0])+"-"+n(h.parts[I][1]):n(h.parts[I]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function o(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+o(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+o(E)})}function u(h){return r[h.type](h)}function A(h){var E=new Array(h.length),I,v;for(I=0;I<h.length;I++)E[I]=u(h[I]);if(E.sort(),E.length>0){for(I=1,v=1;I<E.length;I++)E[I-1]!==E[I]&&(E[v]=E[I],v++);E.length=v}switch(E.length){case 1:return E[0];case 2:return E[0]+" or "+E[1];default:return E.slice(0,-1).join(", ")+", or "+E[E.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+A(t)+" but "+p(e)+" found."};function p9e(t,e){e=e!==void 0?e:{};var r={},o={Expression:y},a=y,n="|",u=Te("|",!1),A="&",p=Te("&",!1),h="^",E=Te("^",!1),I=function($,ie){return!!ie.reduce((be,Re)=>{switch(Re[1]){case"|":return be|Re[3];case"&":return be&Re[3];case"^":return be^Re[3]}},$)},v="!",x=Te("!",!1),C=function($){return!$},R="(",L=Te("(",!1),U=")",z=Te(")",!1),te=function($){return $},ae=/^[^ \t\n\r()!|&\^]/,le=Fe([" "," ",` -`,"\r","(",")","!","|","&","^"],!0,!1),ce=function($){return e.queryPattern.test($)},Ce=function($){return e.checkFn($)},de=Se("whitespace"),Be=/^[ \t\n\r]/,Ee=Fe([" "," ",` -`,"\r"],!1,!1),g=0,me=0,we=[{line:1,column:1}],Ae=0,ne=[],Z=0,xe;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function Ne(){return t.substring(me,g)}function ht(){return Ue(me,g)}function H($,ie){throw ie=ie!==void 0?ie:Ue(me,g),S([Se($)],t.substring(me,g),ie)}function rt($,ie){throw ie=ie!==void 0?ie:Ue(me,g),w($,ie)}function Te($,ie){return{type:"literal",text:$,ignoreCase:ie}}function Fe($,ie,be){return{type:"class",parts:$,inverted:ie,ignoreCase:be}}function ke(){return{type:"any"}}function Ye(){return{type:"end"}}function Se($){return{type:"other",description:$}}function et($){var ie=we[$],be;if(ie)return ie;for(be=$-1;!we[be];)be--;for(ie=we[be],ie={line:ie.line,column:ie.column};be<$;)t.charCodeAt(be)===10?(ie.line++,ie.column=1):ie.column++,be++;return we[$]=ie,ie}function Ue($,ie){var be=et($),Re=et(ie);return{start:{offset:$,line:be.line,column:be.column},end:{offset:ie,line:Re.line,column:Re.column}}}function b($){g<Ae||(g>Ae&&(Ae=g,ne=[]),ne.push($))}function w($,ie){return new sg($,null,null,ie)}function S($,ie,be){return new sg(sg.buildMessage($,ie),$,ie,be)}function y(){var $,ie,be,Re,at,dt,jt,tr;if($=g,ie=F(),ie!==r){for(be=[],Re=g,at=X(),at!==r?(t.charCodeAt(g)===124?(dt=n,g++):(dt=r,Z===0&&b(u)),dt===r&&(t.charCodeAt(g)===38?(dt=A,g++):(dt=r,Z===0&&b(p)),dt===r&&(t.charCodeAt(g)===94?(dt=h,g++):(dt=r,Z===0&&b(E)))),dt!==r?(jt=X(),jt!==r?(tr=F(),tr!==r?(at=[at,dt,jt,tr],Re=at):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r);Re!==r;)be.push(Re),Re=g,at=X(),at!==r?(t.charCodeAt(g)===124?(dt=n,g++):(dt=r,Z===0&&b(u)),dt===r&&(t.charCodeAt(g)===38?(dt=A,g++):(dt=r,Z===0&&b(p)),dt===r&&(t.charCodeAt(g)===94?(dt=h,g++):(dt=r,Z===0&&b(E)))),dt!==r?(jt=X(),jt!==r?(tr=F(),tr!==r?(at=[at,dt,jt,tr],Re=at):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r)):(g=Re,Re=r);be!==r?(me=$,ie=I(ie,be),$=ie):(g=$,$=r)}else g=$,$=r;return $}function F(){var $,ie,be,Re,at,dt;return $=g,t.charCodeAt(g)===33?(ie=v,g++):(ie=r,Z===0&&b(x)),ie!==r?(be=F(),be!==r?(me=$,ie=C(be),$=ie):(g=$,$=r)):(g=$,$=r),$===r&&($=g,t.charCodeAt(g)===40?(ie=R,g++):(ie=r,Z===0&&b(L)),ie!==r?(be=X(),be!==r?(Re=y(),Re!==r?(at=X(),at!==r?(t.charCodeAt(g)===41?(dt=U,g++):(dt=r,Z===0&&b(z)),dt!==r?(me=$,ie=te(Re),$=ie):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r),$===r&&($=J())),$}function J(){var $,ie,be,Re,at;if($=g,ie=X(),ie!==r){if(be=g,Re=[],ae.test(t.charAt(g))?(at=t.charAt(g),g++):(at=r,Z===0&&b(le)),at!==r)for(;at!==r;)Re.push(at),ae.test(t.charAt(g))?(at=t.charAt(g),g++):(at=r,Z===0&&b(le));else Re=r;Re!==r?be=t.substring(be,g):be=Re,be!==r?(me=g,Re=ce(be),Re?Re=void 0:Re=r,Re!==r?(me=$,ie=Ce(be),$=ie):(g=$,$=r)):(g=$,$=r)}else g=$,$=r;return $}function X(){var $,ie;for(Z++,$=[],Be.test(t.charAt(g))?(ie=t.charAt(g),g++):(ie=r,Z===0&&b(Ee));ie!==r;)$.push(ie),Be.test(t.charAt(g))?(ie=t.charAt(g),g++):(ie=r,Z===0&&b(Ee));return Z--,$===r&&(ie=r,Z===0&&b(de)),$}if(xe=a(),xe!==r&&g===t.length)return xe;throw xe!==r&&g<t.length&&b(Ye()),S(ne,Ae<t.length?t.charAt(Ae):null,Ae<t.length?Ue(Ae,Ae+1):Ue(Ae,Ae))}ZJ.exports={SyntaxError:sg,parse:p9e}});var eX=_(fP=>{var{parse:h9e}=$J();fP.makeParser=(t=/[a-z]+/)=>(e,r)=>h9e(e,{queryPattern:t,checkFn:r});fP.parse=fP.makeParser()});var rX=_((FQt,tX)=>{"use strict";tX.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var rN=_((RQt,iX)=>{var oI=rX(),nX={};for(let t of Object.keys(oI))nX[oI[t]]=t;var Ar={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};iX.exports=Ar;for(let t of Object.keys(Ar)){if(!("channels"in Ar[t]))throw new Error("missing channels property: "+t);if(!("labels"in Ar[t]))throw new Error("missing channel labels property: "+t);if(Ar[t].labels.length!==Ar[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=Ar[t];delete Ar[t].channels,delete Ar[t].labels,Object.defineProperty(Ar[t],"channels",{value:e}),Object.defineProperty(Ar[t],"labels",{value:r})}Ar.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(e,r,o),n=Math.max(e,r,o),u=n-a,A,p;n===a?A=0:e===n?A=(r-o)/u:r===n?A=2+(o-e)/u:o===n&&(A=4+(e-r)/u),A=Math.min(A*60,360),A<0&&(A+=360);let h=(a+n)/2;return n===a?p=0:h<=.5?p=u/(n+a):p=u/(2-n-a),[A,p*100,h*100]};Ar.rgb.hsv=function(t){let e,r,o,a,n,u=t[0]/255,A=t[1]/255,p=t[2]/255,h=Math.max(u,A,p),E=h-Math.min(u,A,p),I=function(v){return(h-v)/6/E+1/2};return E===0?(a=0,n=0):(n=E/h,e=I(u),r=I(A),o=I(p),u===h?a=o-r:A===h?a=1/3+e-o:p===h&&(a=2/3+r-e),a<0?a+=1:a>1&&(a-=1)),[a*360,n*100,h*100]};Ar.rgb.hwb=function(t){let e=t[0],r=t[1],o=t[2],a=Ar.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(r,o));return o=1-1/255*Math.max(e,Math.max(r,o)),[a,n*100,o*100]};Ar.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(1-e,1-r,1-o),n=(1-e-a)/(1-a)||0,u=(1-r-a)/(1-a)||0,A=(1-o-a)/(1-a)||0;return[n*100,u*100,A*100,a*100]};function g9e(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}Ar.rgb.keyword=function(t){let e=nX[t];if(e)return e;let r=1/0,o;for(let a of Object.keys(oI)){let n=oI[a],u=g9e(t,n);u<r&&(r=u,o=a)}return o};Ar.keyword.rgb=function(t){return oI[t]};Ar.rgb.xyz=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92;let a=e*.4124+r*.3576+o*.1805,n=e*.2126+r*.7152+o*.0722,u=e*.0193+r*.1192+o*.9505;return[a*100,n*100,u*100]};Ar.rgb.lab=function(t){let e=Ar.rgb.xyz(t),r=e[0],o=e[1],a=e[2];r/=95.047,o/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let n=116*o-16,u=500*(r-o),A=200*(o-a);return[n,u,A]};Ar.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a,n,u;if(r===0)return u=o*255,[u,u,u];o<.5?a=o*(1+r):a=o+r-o*r;let A=2*o-a,p=[0,0,0];for(let h=0;h<3;h++)n=e+1/3*-(h-1),n<0&&n++,n>1&&n--,6*n<1?u=A+(a-A)*6*n:2*n<1?u=a:3*n<2?u=A+(a-A)*(2/3-n)*6:u=A,p[h]=u*255;return p};Ar.hsl.hsv=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=r,n=Math.max(o,.01);o*=2,r*=o<=1?o:2-o,a*=n<=1?n:2-n;let u=(o+r)/2,A=o===0?2*a/(n+a):2*r/(o+r);return[e,A*100,u*100]};Ar.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,o=t[2]/100,a=Math.floor(e)%6,n=e-Math.floor(e),u=255*o*(1-r),A=255*o*(1-r*n),p=255*o*(1-r*(1-n));switch(o*=255,a){case 0:return[o,p,u];case 1:return[A,o,u];case 2:return[u,o,p];case 3:return[u,A,o];case 4:return[p,u,o];case 5:return[o,u,A]}};Ar.hsv.hsl=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=Math.max(o,.01),n,u;u=(2-r)*o;let A=(2-r)*a;return n=r*a,n/=A<=1?A:2-A,n=n||0,u/=2,[e,n*100,u*100]};Ar.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a=r+o,n;a>1&&(r/=a,o/=a);let u=Math.floor(6*e),A=1-o;n=6*e-u,u&1&&(n=1-n);let p=r+n*(A-r),h,E,I;switch(u){default:case 6:case 0:h=A,E=p,I=r;break;case 1:h=p,E=A,I=r;break;case 2:h=r,E=A,I=p;break;case 3:h=r,E=p,I=A;break;case 4:h=p,E=r,I=A;break;case 5:h=A,E=r,I=p;break}return[h*255,E*255,I*255]};Ar.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a=t[3]/100,n=1-Math.min(1,e*(1-a)+a),u=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,o*(1-a)+a);return[n*255,u*255,A*255]};Ar.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a,n,u;return a=e*3.2406+r*-1.5372+o*-.4986,n=e*-.9689+r*1.8758+o*.0415,u=e*.0557+r*-.204+o*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,a=Math.min(Math.max(0,a),1),n=Math.min(Math.max(0,n),1),u=Math.min(Math.max(0,u),1),[a*255,n*255,u*255]};Ar.xyz.lab=function(t){let e=t[0],r=t[1],o=t[2];e/=95.047,r/=100,o/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let a=116*r-16,n=500*(e-r),u=200*(r-o);return[a,n,u]};Ar.lab.xyz=function(t){let e=t[0],r=t[1],o=t[2],a,n,u;n=(e+16)/116,a=r/500+n,u=n-o/200;let A=n**3,p=a**3,h=u**3;return n=A>.008856?A:(n-16/116)/7.787,a=p>.008856?p:(a-16/116)/7.787,u=h>.008856?h:(u-16/116)/7.787,a*=95.047,n*=100,u*=108.883,[a,n,u]};Ar.lab.lch=function(t){let e=t[0],r=t[1],o=t[2],a;a=Math.atan2(o,r)*360/2/Math.PI,a<0&&(a+=360);let u=Math.sqrt(r*r+o*o);return[e,u,a]};Ar.lch.lab=function(t){let e=t[0],r=t[1],a=t[2]/360*2*Math.PI,n=r*Math.cos(a),u=r*Math.sin(a);return[e,n,u]};Ar.rgb.ansi16=function(t,e=null){let[r,o,a]=t,n=e===null?Ar.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),n===0)return 30;let u=30+(Math.round(a/255)<<2|Math.round(o/255)<<1|Math.round(r/255));return n===2&&(u+=60),u};Ar.hsv.ansi16=function(t){return Ar.rgb.ansi16(Ar.hsv.rgb(t),t[2])};Ar.rgb.ansi256=function(t){let e=t[0],r=t[1],o=t[2];return e===r&&r===o?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(o/255*5)};Ar.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,o=(e&1)*r*255,a=(e>>1&1)*r*255,n=(e>>2&1)*r*255;return[o,a,n]};Ar.ansi256.rgb=function(t){if(t>=232){let n=(t-232)*10+8;return[n,n,n]}t-=16;let e,r=Math.floor(t/36)/5*255,o=Math.floor((e=t%36)/6)/5*255,a=e%6/5*255;return[r,o,a]};Ar.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};Ar.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(A=>A+A).join(""));let o=parseInt(r,16),a=o>>16&255,n=o>>8&255,u=o&255;return[a,n,u]};Ar.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.max(Math.max(e,r),o),n=Math.min(Math.min(e,r),o),u=a-n,A,p;return u<1?A=n/(1-u):A=0,u<=0?p=0:a===e?p=(r-o)/u%6:a===r?p=2+(o-e)/u:p=4+(e-r)/u,p/=6,p%=1,[p*360,u*100,A*100]};Ar.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=r<.5?2*e*r:2*e*(1-r),a=0;return o<1&&(a=(r-.5*o)/(1-o)),[t[0],o*100,a*100]};Ar.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=e*r,a=0;return o<1&&(a=(r-o)/(1-o)),[t[0],o*100,a*100]};Ar.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100;if(r===0)return[o*255,o*255,o*255];let a=[0,0,0],n=e%1*6,u=n%1,A=1-u,p=0;switch(Math.floor(n)){case 0:a[0]=1,a[1]=u,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=u;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=u,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return p=(1-r)*o,[(r*a[0]+p)*255,(r*a[1]+p)*255,(r*a[2]+p)*255]};Ar.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e),a=0;return o>0&&(a=e/o),[t[0],a*100,o*100]};Ar.hcg.hsl=function(t){let e=t[1]/100,o=t[2]/100*(1-e)+.5*e,a=0;return o>0&&o<.5?a=e/(2*o):o>=.5&&o<1&&(a=e/(2*(1-o))),[t[0],a*100,o*100]};Ar.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e);return[t[0],(o-e)*100,(1-o)*100]};Ar.hwb.hcg=function(t){let e=t[1]/100,o=1-t[2]/100,a=o-e,n=0;return a<1&&(n=(o-a)/(1-a)),[t[0],a*100,n*100]};Ar.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};Ar.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};Ar.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};Ar.gray.hsl=function(t){return[0,0,t[0]]};Ar.gray.hsv=Ar.gray.hsl;Ar.gray.hwb=function(t){return[0,100,t[0]]};Ar.gray.cmyk=function(t){return[0,0,0,t[0]]};Ar.gray.lab=function(t){return[t[0],0,0]};Ar.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,o=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(o.length)+o};Ar.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var oX=_((TQt,sX)=>{var pP=rN();function d9e(){let t={},e=Object.keys(pP);for(let r=e.length,o=0;o<r;o++)t[e[o]]={distance:-1,parent:null};return t}function m9e(t){let e=d9e(),r=[t];for(e[t].distance=0;r.length;){let o=r.pop(),a=Object.keys(pP[o]);for(let n=a.length,u=0;u<n;u++){let A=a[u],p=e[A];p.distance===-1&&(p.distance=e[o].distance+1,p.parent=o,r.unshift(A))}}return e}function y9e(t,e){return function(r){return e(t(r))}}function E9e(t,e){let r=[e[t].parent,t],o=pP[e[t].parent][t],a=e[t].parent;for(;e[a].parent;)r.unshift(e[a].parent),o=y9e(pP[e[a].parent][a],o),a=e[a].parent;return o.conversion=r,o}sX.exports=function(t){let e=m9e(t),r={},o=Object.keys(e);for(let a=o.length,n=0;n<a;n++){let u=o[n];e[u].parent!==null&&(r[u]=E9e(u,e))}return r}});var lX=_((NQt,aX)=>{var nN=rN(),C9e=oX(),fm={},w9e=Object.keys(nN);function I9e(t){let e=function(...r){let o=r[0];return o==null?o:(o.length>1&&(r=o),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function B9e(t){let e=function(...r){let o=r[0];if(o==null)return o;o.length>1&&(r=o);let a=t(r);if(typeof a=="object")for(let n=a.length,u=0;u<n;u++)a[u]=Math.round(a[u]);return a};return"conversion"in t&&(e.conversion=t.conversion),e}w9e.forEach(t=>{fm[t]={},Object.defineProperty(fm[t],"channels",{value:nN[t].channels}),Object.defineProperty(fm[t],"labels",{value:nN[t].labels});let e=C9e(t);Object.keys(e).forEach(o=>{let a=e[o];fm[t][o]=B9e(a),fm[t][o].raw=I9e(a)})});aX.exports=fm});var aI=_((LQt,pX)=>{"use strict";var cX=(t,e)=>(...r)=>`\x1B[${t(...r)+e}m`,uX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};5;${o}m`},AX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};2;${o[0]};${o[1]};${o[2]}m`},hP=t=>t,fX=(t,e,r)=>[t,e,r],pm=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let o=r();return Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0}),o},enumerable:!0,configurable:!0})},iN,hm=(t,e,r,o)=>{iN===void 0&&(iN=lX());let a=o?10:0,n={};for(let[u,A]of Object.entries(iN)){let p=u==="ansi16"?"ansi":u;u===e?n[p]=t(r,a):typeof A=="object"&&(n[p]=t(A[e],a))}return n};function v9e(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,o]of Object.entries(e)){for(let[a,n]of Object.entries(o))e[a]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},o[a]=e[a],t.set(n[0],n[1]);Object.defineProperty(e,r,{value:o,enumerable:!1})}return Object.defineProperty(e,"codes",{value:t,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",pm(e.color,"ansi",()=>hm(cX,"ansi16",hP,!1)),pm(e.color,"ansi256",()=>hm(uX,"ansi256",hP,!1)),pm(e.color,"ansi16m",()=>hm(AX,"rgb",fX,!1)),pm(e.bgColor,"ansi",()=>hm(cX,"ansi16",hP,!0)),pm(e.bgColor,"ansi256",()=>hm(uX,"ansi256",hP,!0)),pm(e.bgColor,"ansi16m",()=>hm(AX,"rgb",fX,!0)),e}Object.defineProperty(pX,"exports",{enumerable:!0,get:v9e})});var gX=_((MQt,hX)=>{"use strict";hX.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",o=e.indexOf(r+t),a=e.indexOf("--");return o!==-1&&(a===-1||o<a)}});var aN=_((OQt,mX)=>{"use strict";var D9e=ve("os"),dX=ve("tty"),Ol=gX(),{env:us}=process,Wp;Ol("no-color")||Ol("no-colors")||Ol("color=false")||Ol("color=never")?Wp=0:(Ol("color")||Ol("colors")||Ol("color=true")||Ol("color=always"))&&(Wp=1);"FORCE_COLOR"in us&&(us.FORCE_COLOR==="true"?Wp=1:us.FORCE_COLOR==="false"?Wp=0:Wp=us.FORCE_COLOR.length===0?1:Math.min(parseInt(us.FORCE_COLOR,10),3));function sN(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function oN(t,e){if(Wp===0)return 0;if(Ol("color=16m")||Ol("color=full")||Ol("color=truecolor"))return 3;if(Ol("color=256"))return 2;if(t&&!e&&Wp===void 0)return 0;let r=Wp||0;if(us.TERM==="dumb")return r;if(process.platform==="win32"){let o=D9e.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in us)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(o=>o in us)||us.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in us)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(us.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in us)return 1;if(us.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in us){let o=parseInt((us.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(us.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(us.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(us.TERM)||"COLORTERM"in us?1:r}function P9e(t){let e=oN(t,t&&t.isTTY);return sN(e)}mX.exports={supportsColor:P9e,stdout:sN(oN(!0,dX.isatty(1))),stderr:sN(oN(!0,dX.isatty(2)))}});var EX=_((UQt,yX)=>{"use strict";var S9e=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},b9e=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r -`:` -`)+r,a=o+1,o=t.indexOf(` -`,a)}while(o!==-1);return n+=t.substr(a),n};yX.exports={stringReplaceAll:S9e,stringEncaseCRLFWithFirstIndex:b9e}});var vX=_((_Qt,BX)=>{"use strict";var x9e=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,CX=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,k9e=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Q9e=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,F9e=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function IX(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):F9e.get(t)||t}function R9e(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(k9e))r.push(a[2].replace(Q9e,(A,p,h)=>p?IX(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function T9e(t){CX.lastIndex=0;let e=[],r;for(;(r=CX.exec(t))!==null;){let o=r[1];if(r[2]){let a=R9e(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function wX(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}BX.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(x9e,(n,u,A,p,h,E)=>{if(u)a.push(IX(u));else if(p){let I=a.join("");a=[],o.push(r.length===0?I:wX(t,r)(I)),r.push({inverse:A,styles:T9e(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(wX(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var pN=_((HQt,bX)=>{"use strict";var lI=aI(),{stdout:cN,stderr:uN}=aN(),{stringReplaceAll:N9e,stringEncaseCRLFWithFirstIndex:L9e}=EX(),DX=["ansi","ansi","ansi256","ansi16m"],gm=Object.create(null),M9e=(t,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let r=cN?cN.level:0;t.level=e.level===void 0?r:e.level},AN=class{constructor(e){return PX(e)}},PX=t=>{let e={};return M9e(e,t),e.template=(...r)=>_9e(e.template,...r),Object.setPrototypeOf(e,gP.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=AN,e.template};function gP(t){return PX(t)}for(let[t,e]of Object.entries(lI))gm[t]={get(){let r=dP(this,fN(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};gm.visible={get(){let t=dP(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var SX=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of SX)gm[t]={get(){let{level:e}=this;return function(...r){let o=fN(lI.color[DX[e]][t](...r),lI.color.close,this._styler);return dP(this,o,this._isEmpty)}}};for(let t of SX){let e="bg"+t[0].toUpperCase()+t.slice(1);gm[e]={get(){let{level:r}=this;return function(...o){let a=fN(lI.bgColor[DX[r]][t](...o),lI.bgColor.close,this._styler);return dP(this,a,this._isEmpty)}}}}var O9e=Object.defineProperties(()=>{},{...gm,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),fN=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},dP=(t,e,r)=>{let o=(...a)=>U9e(o,a.length===1?""+a[0]:a.join(" "));return o.__proto__=O9e,o._generator=t,o._styler=e,o._isEmpty=r,o},U9e=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=N9e(e,r.close,r.open),r=r.parent;let n=e.indexOf(` -`);return n!==-1&&(e=L9e(e,a,o,n)),o+e+a},lN,_9e=(t,...e)=>{let[r]=e;if(!Array.isArray(r))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n<r.length;n++)a.push(String(o[n-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[n]));return lN===void 0&&(lN=vX()),lN(t,a.join(""))};Object.defineProperties(gP.prototype,gm);var cI=gP();cI.supportsColor=cN;cI.stderr=gP({level:uN?uN.level:0});cI.stderr.supportsColor=uN;cI.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"};bX.exports=cI});var mP=_(Ul=>{"use strict";Ul.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;Ul.find=(t,e)=>t.nodes.find(r=>r.type===e);Ul.exceedsLimit=(t,e,r=1,o)=>o===!1||!Ul.isInteger(t)||!Ul.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=o;Ul.escapeNode=(t,e=0,r)=>{let o=t.nodes[e];o&&(r&&o.type===r||o.type==="open"||o.type==="close")&&o.escaped!==!0&&(o.value="\\"+o.value,o.escaped=!0)};Ul.encloseBrace=t=>t.type!=="brace"||t.commas>>0+t.ranges>>0?!1:(t.invalid=!0,!0);Ul.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:!(t.commas>>0+t.ranges>>0)||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;Ul.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;Ul.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);Ul.flatten=(...t)=>{let e=[],r=o=>{for(let a=0;a<o.length;a++){let n=o[a];Array.isArray(n)?r(n,e):n!==void 0&&e.push(n)}return e};return r(t),e}});var yP=_((jQt,kX)=>{"use strict";var xX=mP();kX.exports=(t,e={})=>{let r=(o,a={})=>{let n=e.escapeInvalid&&xX.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A="";if(o.value)return(n||u)&&xX.isOpenOrClose(o)?"\\"+o.value:o.value;if(o.value)return o.value;if(o.nodes)for(let p of o.nodes)A+=r(p);return A};return r(t)}});var FX=_((GQt,QX)=>{"use strict";QX.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var HX=_((YQt,_X)=>{"use strict";var RX=FX(),og=(t,e,r)=>{if(RX(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(RX(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let o={relaxZeros:!0,...r};typeof o.strictZeros=="boolean"&&(o.relaxZeros=o.strictZeros===!1);let a=String(o.relaxZeros),n=String(o.shorthand),u=String(o.capture),A=String(o.wrap),p=t+":"+e+"="+a+n+u+A;if(og.cache.hasOwnProperty(p))return og.cache[p].result;let h=Math.min(t,e),E=Math.max(t,e);if(Math.abs(h-E)===1){let R=t+"|"+e;return o.capture?`(${R})`:o.wrap===!1?R:`(?:${R})`}let I=UX(t)||UX(e),v={min:t,max:e,a:h,b:E},x=[],C=[];if(I&&(v.isPadded=I,v.maxLen=String(v.max).length),h<0){let R=E<0?Math.abs(E):1;C=TX(R,Math.abs(h),v,o),h=v.a=0}return E>=0&&(x=TX(h,E,v,o)),v.negatives=C,v.positives=x,v.result=H9e(C,x,o),o.capture===!0?v.result=`(${v.result})`:o.wrap!==!1&&x.length+C.length>1&&(v.result=`(?:${v.result})`),og.cache[p]=v,v.result};function H9e(t,e,r){let o=hN(t,e,"-",!1,r)||[],a=hN(e,t,"",!1,r)||[],n=hN(t,e,"-?",!0,r)||[];return o.concat(n).concat(a).join("|")}function q9e(t,e){let r=1,o=1,a=LX(t,r),n=new Set([e]);for(;t<=a&&a<=e;)n.add(a),r+=1,a=LX(t,r);for(a=MX(e+1,o)-1;t<a&&a<=e;)n.add(a),o+=1,a=MX(e+1,o)-1;return n=[...n],n.sort(Y9e),n}function j9e(t,e,r){if(t===e)return{pattern:t,count:[],digits:0};let o=G9e(t,e),a=o.length,n="",u=0;for(let A=0;A<a;A++){let[p,h]=o[A];p===h?n+=p:p!=="0"||h!=="9"?n+=W9e(p,h,r):u++}return u&&(n+=r.shorthand===!0?"\\d":"[0-9]"),{pattern:n,count:[u],digits:a}}function TX(t,e,r,o){let a=q9e(t,e),n=[],u=t,A;for(let p=0;p<a.length;p++){let h=a[p],E=j9e(String(u),String(h),o),I="";if(!r.isPadded&&A&&A.pattern===E.pattern){A.count.length>1&&A.count.pop(),A.count.push(E.count[0]),A.string=A.pattern+OX(A.count),u=h+1;continue}r.isPadded&&(I=K9e(h,r,o)),E.string=I+E.pattern+OX(E.count),n.push(E),u=h+1,A=E}return n}function hN(t,e,r,o,a){let n=[];for(let u of t){let{string:A}=u;!o&&!NX(e,"string",A)&&n.push(r+A),o&&NX(e,"string",A)&&n.push(r+A)}return n}function G9e(t,e){let r=[];for(let o=0;o<t.length;o++)r.push([t[o],e[o]]);return r}function Y9e(t,e){return t>e?1:e>t?-1:0}function NX(t,e,r){return t.some(o=>o[e]===r)}function LX(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function MX(t,e){return t-t%Math.pow(10,e)}function OX(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function W9e(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function UX(t){return/^-?(0+)\d/.test(t)}function K9e(t,e,r){if(!e.isPadded)return t;let o=Math.abs(e.maxLen-String(t).length),a=r.relaxZeros!==!1;switch(o){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${o}}`:`0{${o}}`}}og.cache={};og.clearCache=()=>og.cache={};_X.exports=og});var mN=_((WQt,zX)=>{"use strict";var V9e=ve("util"),GX=HX(),qX=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),z9e=t=>e=>t===!0?Number(e):String(e),gN=t=>typeof t=="number"||typeof t=="string"&&t!=="",uI=t=>Number.isInteger(+t),dN=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},J9e=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,X9e=(t,e,r)=>{if(e>0){let o=t[0]==="-"?"-":"";o&&(t=t.slice(1)),t=o+t.padStart(o?e-1:e,"0")}return r===!1?String(t):t},jX=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length<e;)t="0"+t;return r?"-"+t:t},Z9e=(t,e)=>{t.negatives.sort((u,A)=>u<A?-1:u>A?1:0),t.positives.sort((u,A)=>u<A?-1:u>A?1:0);let r=e.capture?"":"?:",o="",a="",n;return t.positives.length&&(o=t.positives.join("|")),t.negatives.length&&(a=`-(${r}${t.negatives.join("|")})`),o&&a?n=`${o}|${a}`:n=o||a,e.wrap?`(${r}${n})`:n},YX=(t,e,r,o)=>{if(r)return GX(t,e,{wrap:!1,...o});let a=String.fromCharCode(t);if(t===e)return a;let n=String.fromCharCode(e);return`[${a}-${n}]`},WX=(t,e,r)=>{if(Array.isArray(t)){let o=r.wrap===!0,a=r.capture?"":"?:";return o?`(${a}${t.join("|")})`:t.join("|")}return GX(t,e,r)},KX=(...t)=>new RangeError("Invalid range arguments: "+V9e.inspect(...t)),VX=(t,e,r)=>{if(r.strictRanges===!0)throw KX([t,e]);return[]},$9e=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},e7e=(t,e,r=1,o={})=>{let a=Number(t),n=Number(e);if(!Number.isInteger(a)||!Number.isInteger(n)){if(o.strictRanges===!0)throw KX([t,e]);return[]}a===0&&(a=0),n===0&&(n=0);let u=a>n,A=String(t),p=String(e),h=String(r);r=Math.max(Math.abs(r),1);let E=dN(A)||dN(p)||dN(h),I=E?Math.max(A.length,p.length,h.length):0,v=E===!1&&J9e(t,e,o)===!1,x=o.transform||z9e(v);if(o.toRegex&&r===1)return YX(jX(t,I),jX(e,I),!0,o);let C={negatives:[],positives:[]},R=z=>C[z<0?"negatives":"positives"].push(Math.abs(z)),L=[],U=0;for(;u?a>=n:a<=n;)o.toRegex===!0&&r>1?R(a):L.push(X9e(x(a,U),I,v)),a=u?a-r:a+r,U++;return o.toRegex===!0?r>1?Z9e(C,o):WX(L,null,{wrap:!1,...o}):L},t7e=(t,e,r=1,o={})=>{if(!uI(t)&&t.length>1||!uI(e)&&e.length>1)return VX(t,e,o);let a=o.transform||(v=>String.fromCharCode(v)),n=`${t}`.charCodeAt(0),u=`${e}`.charCodeAt(0),A=n>u,p=Math.min(n,u),h=Math.max(n,u);if(o.toRegex&&r===1)return YX(p,h,!1,o);let E=[],I=0;for(;A?n>=u:n<=u;)E.push(a(n,I)),n=A?n-r:n+r,I++;return o.toRegex===!0?WX(E,null,{wrap:!1,options:o}):E},EP=(t,e,r,o={})=>{if(e==null&&gN(t))return[t];if(!gN(t)||!gN(e))return VX(t,e,o);if(typeof r=="function")return EP(t,e,1,{transform:r});if(qX(r))return EP(t,e,0,r);let a={...o};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,uI(r)?uI(t)&&uI(e)?e7e(t,e,r,a):t7e(t,e,Math.max(Math.abs(r),1),a):r!=null&&!qX(r)?$9e(r,a):EP(t,e,1,r)};zX.exports=EP});var ZX=_((KQt,XX)=>{"use strict";var r7e=mN(),JX=mP(),n7e=(t,e={})=>{let r=(o,a={})=>{let n=JX.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A=n===!0||u===!0,p=e.escapeInvalid===!0?"\\":"",h="";if(o.isOpen===!0||o.isClose===!0)return p+o.value;if(o.type==="open")return A?p+o.value:"(";if(o.type==="close")return A?p+o.value:")";if(o.type==="comma")return o.prev.type==="comma"?"":A?o.value:"|";if(o.value)return o.value;if(o.nodes&&o.ranges>0){let E=JX.reduce(o.nodes),I=r7e(...E,{...e,wrap:!1,toRegex:!0});if(I.length!==0)return E.length>1&&I.length>1?`(${I})`:I}if(o.nodes)for(let E of o.nodes)h+=r(E,o);return h};return r(t)};XX.exports=n7e});var tZ=_((VQt,eZ)=>{"use strict";var i7e=mN(),$X=yP(),dm=mP(),ag=(t="",e="",r=!1)=>{let o=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?dm.flatten(e).map(a=>`{${a}}`):e;for(let a of t)if(Array.isArray(a))for(let n of a)o.push(ag(n,e,r));else for(let n of e)r===!0&&typeof n=="string"&&(n=`{${n}}`),o.push(Array.isArray(n)?ag(a,n,r):a+n);return dm.flatten(o)},s7e=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,o=(a,n={})=>{a.queue=[];let u=n,A=n.queue;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,A=u.queue;if(a.invalid||a.dollar){A.push(ag(A.pop(),$X(a,e)));return}if(a.type==="brace"&&a.invalid!==!0&&a.nodes.length===2){A.push(ag(A.pop(),["{}"]));return}if(a.nodes&&a.ranges>0){let I=dm.reduce(a.nodes);if(dm.exceedsLimit(...I,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let v=i7e(...I,e);v.length===0&&(v=$X(a,e)),A.push(ag(A.pop(),v)),a.nodes=[];return}let p=dm.encloseBrace(a),h=a.queue,E=a;for(;E.type!=="brace"&&E.type!=="root"&&E.parent;)E=E.parent,h=E.queue;for(let I=0;I<a.nodes.length;I++){let v=a.nodes[I];if(v.type==="comma"&&a.type==="brace"){I===1&&h.push(""),h.push("");continue}if(v.type==="close"){A.push(ag(A.pop(),h,p));continue}if(v.value&&v.type!=="open"){h.push(ag(h.pop(),v.value));continue}v.nodes&&o(v,a)}return h};return dm.flatten(o(t))};eZ.exports=s7e});var nZ=_((zQt,rZ)=>{"use strict";rZ.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var lZ=_((JQt,aZ)=>{"use strict";var o7e=yP(),{MAX_LENGTH:iZ,CHAR_BACKSLASH:yN,CHAR_BACKTICK:a7e,CHAR_COMMA:l7e,CHAR_DOT:c7e,CHAR_LEFT_PARENTHESES:u7e,CHAR_RIGHT_PARENTHESES:A7e,CHAR_LEFT_CURLY_BRACE:f7e,CHAR_RIGHT_CURLY_BRACE:p7e,CHAR_LEFT_SQUARE_BRACKET:sZ,CHAR_RIGHT_SQUARE_BRACKET:oZ,CHAR_DOUBLE_QUOTE:h7e,CHAR_SINGLE_QUOTE:g7e,CHAR_NO_BREAK_SPACE:d7e,CHAR_ZERO_WIDTH_NOBREAK_SPACE:m7e}=nZ(),y7e=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},o=typeof r.maxLength=="number"?Math.min(iZ,r.maxLength):iZ;if(t.length>o)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${o})`);let a={type:"root",input:t,nodes:[]},n=[a],u=a,A=a,p=0,h=t.length,E=0,I=0,v,x={},C=()=>t[E++],R=L=>{if(L.type==="text"&&A.type==="dot"&&(A.type="text"),A&&A.type==="text"&&L.type==="text"){A.value+=L.value;return}return u.nodes.push(L),L.parent=u,L.prev=A,A=L,L};for(R({type:"bos"});E<h;)if(u=n[n.length-1],v=C(),!(v===m7e||v===d7e)){if(v===yN){R({type:"text",value:(e.keepEscaping?v:"")+C()});continue}if(v===oZ){R({type:"text",value:"\\"+v});continue}if(v===sZ){p++;let L=!0,U;for(;E<h&&(U=C());){if(v+=U,U===sZ){p++;continue}if(U===yN){v+=C();continue}if(U===oZ&&(p--,p===0))break}R({type:"text",value:v});continue}if(v===u7e){u=R({type:"paren",nodes:[]}),n.push(u),R({type:"text",value:v});continue}if(v===A7e){if(u.type!=="paren"){R({type:"text",value:v});continue}u=n.pop(),R({type:"text",value:v}),u=n[n.length-1];continue}if(v===h7e||v===g7e||v===a7e){let L=v,U;for(e.keepQuotes!==!0&&(v="");E<h&&(U=C());){if(U===yN){v+=U+C();continue}if(U===L){e.keepQuotes===!0&&(v+=U);break}v+=U}R({type:"text",value:v});continue}if(v===f7e){I++;let U={type:"brace",open:!0,close:!1,dollar:A.value&&A.value.slice(-1)==="$"||u.dollar===!0,depth:I,commas:0,ranges:0,nodes:[]};u=R(U),n.push(u),R({type:"open",value:v});continue}if(v===p7e){if(u.type!=="brace"){R({type:"text",value:v});continue}let L="close";u=n.pop(),u.close=!0,R({type:L,value:v}),I--,u=n[n.length-1];continue}if(v===l7e&&I>0){if(u.ranges>0){u.ranges=0;let L=u.nodes.shift();u.nodes=[L,{type:"text",value:o7e(u)}]}R({type:"comma",value:v}),u.commas++;continue}if(v===c7e&&I>0&&u.commas===0){let L=u.nodes;if(I===0||L.length===0){R({type:"text",value:v});continue}if(A.type==="dot"){if(u.range=[],A.value+=v,A.type="range",u.nodes.length!==3&&u.nodes.length!==5){u.invalid=!0,u.ranges=0,A.type="text";continue}u.ranges++,u.args=[];continue}if(A.type==="range"){L.pop();let U=L[L.length-1];U.value+=A.value+v,A=U,u.ranges--;continue}R({type:"dot",value:v});continue}R({type:"text",value:v})}do if(u=n.pop(),u.type!=="root"){u.nodes.forEach(z=>{z.nodes||(z.type==="open"&&(z.isOpen=!0),z.type==="close"&&(z.isClose=!0),z.nodes||(z.type="text"),z.invalid=!0)});let L=n[n.length-1],U=L.nodes.indexOf(u);L.nodes.splice(U,1,...u.nodes)}while(n.length>0);return R({type:"eos"}),a};aZ.exports=y7e});var AZ=_((XQt,uZ)=>{"use strict";var cZ=yP(),E7e=ZX(),C7e=tZ(),w7e=lZ(),nl=(t,e={})=>{let r=[];if(Array.isArray(t))for(let o of t){let a=nl.create(o,e);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(nl.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};nl.parse=(t,e={})=>w7e(t,e);nl.stringify=(t,e={})=>cZ(typeof t=="string"?nl.parse(t,e):t,e);nl.compile=(t,e={})=>(typeof t=="string"&&(t=nl.parse(t,e)),E7e(t,e));nl.expand=(t,e={})=>{typeof t=="string"&&(t=nl.parse(t,e));let r=C7e(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};nl.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?nl.compile(t,e):nl.expand(t,e);uZ.exports=nl});var AI=_((ZQt,dZ)=>{"use strict";var I7e=ve("path"),Vu="\\\\/",fZ=`[^${Vu}]`,Bf="\\.",B7e="\\+",v7e="\\?",CP="\\/",D7e="(?=.)",pZ="[^/]",EN=`(?:${CP}|$)`,hZ=`(?:^|${CP})`,CN=`${Bf}{1,2}${EN}`,P7e=`(?!${Bf})`,S7e=`(?!${hZ}${CN})`,b7e=`(?!${Bf}{0,1}${EN})`,x7e=`(?!${CN})`,k7e=`[^.${CP}]`,Q7e=`${pZ}*?`,gZ={DOT_LITERAL:Bf,PLUS_LITERAL:B7e,QMARK_LITERAL:v7e,SLASH_LITERAL:CP,ONE_CHAR:D7e,QMARK:pZ,END_ANCHOR:EN,DOTS_SLASH:CN,NO_DOT:P7e,NO_DOTS:S7e,NO_DOT_SLASH:b7e,NO_DOTS_SLASH:x7e,QMARK_NO_DOT:k7e,STAR:Q7e,START_ANCHOR:hZ},F7e={...gZ,SLASH_LITERAL:`[${Vu}]`,QMARK:fZ,STAR:`${fZ}*?`,DOTS_SLASH:`${Bf}{1,2}(?:[${Vu}]|$)`,NO_DOT:`(?!${Bf})`,NO_DOTS:`(?!(?:^|[${Vu}])${Bf}{1,2}(?:[${Vu}]|$))`,NO_DOT_SLASH:`(?!${Bf}{0,1}(?:[${Vu}]|$))`,NO_DOTS_SLASH:`(?!${Bf}{1,2}(?:[${Vu}]|$))`,QMARK_NO_DOT:`[^.${Vu}]`,START_ANCHOR:`(?:^|[${Vu}])`,END_ANCHOR:`(?:[${Vu}]|$)`},R7e={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};dZ.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:R7e,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:I7e.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?F7e:gZ}}});var fI=_(ba=>{"use strict";var T7e=ve("path"),N7e=process.platform==="win32",{REGEX_BACKSLASH:L7e,REGEX_REMOVE_BACKSLASH:M7e,REGEX_SPECIAL_CHARS:O7e,REGEX_SPECIAL_CHARS_GLOBAL:U7e}=AI();ba.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);ba.hasRegexChars=t=>O7e.test(t);ba.isRegexChar=t=>t.length===1&&ba.hasRegexChars(t);ba.escapeRegex=t=>t.replace(U7e,"\\$1");ba.toPosixSlashes=t=>t.replace(L7e,"/");ba.removeBackslashes=t=>t.replace(M7e,e=>e==="\\"?"":e);ba.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};ba.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:N7e===!0||T7e.sep==="\\";ba.escapeLast=(t,e,r)=>{let o=t.lastIndexOf(e,r);return o===-1?t:t[o-1]==="\\"?ba.escapeLast(t,e,o-1):`${t.slice(0,o)}\\${t.slice(o)}`};ba.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};ba.wrapOutput=(t,e={},r={})=>{let o=r.contains?"":"^",a=r.contains?"":"$",n=`${o}(?:${t})${a}`;return e.negated===!0&&(n=`(?:^(?!${n}).*$)`),n}});var vZ=_((eFt,BZ)=>{"use strict";var mZ=fI(),{CHAR_ASTERISK:wN,CHAR_AT:_7e,CHAR_BACKWARD_SLASH:pI,CHAR_COMMA:H7e,CHAR_DOT:IN,CHAR_EXCLAMATION_MARK:BN,CHAR_FORWARD_SLASH:IZ,CHAR_LEFT_CURLY_BRACE:vN,CHAR_LEFT_PARENTHESES:DN,CHAR_LEFT_SQUARE_BRACKET:q7e,CHAR_PLUS:j7e,CHAR_QUESTION_MARK:yZ,CHAR_RIGHT_CURLY_BRACE:G7e,CHAR_RIGHT_PARENTHESES:EZ,CHAR_RIGHT_SQUARE_BRACKET:Y7e}=AI(),CZ=t=>t===IZ||t===pI,wZ=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},W7e=(t,e)=>{let r=e||{},o=t.length-1,a=r.parts===!0||r.scanToEnd===!0,n=[],u=[],A=[],p=t,h=-1,E=0,I=0,v=!1,x=!1,C=!1,R=!1,L=!1,U=!1,z=!1,te=!1,ae=!1,le=!1,ce=0,Ce,de,Be={value:"",depth:0,isGlob:!1},Ee=()=>h>=o,g=()=>p.charCodeAt(h+1),me=()=>(Ce=de,p.charCodeAt(++h));for(;h<o;){de=me();let xe;if(de===pI){z=Be.backslashes=!0,de=me(),de===vN&&(U=!0);continue}if(U===!0||de===vN){for(ce++;Ee()!==!0&&(de=me());){if(de===pI){z=Be.backslashes=!0,me();continue}if(de===vN){ce++;continue}if(U!==!0&&de===IN&&(de=me())===IN){if(v=Be.isBrace=!0,C=Be.isGlob=!0,le=!0,a===!0)continue;break}if(U!==!0&&de===H7e){if(v=Be.isBrace=!0,C=Be.isGlob=!0,le=!0,a===!0)continue;break}if(de===G7e&&(ce--,ce===0)){U=!1,v=Be.isBrace=!0,le=!0;break}}if(a===!0)continue;break}if(de===IZ){if(n.push(h),u.push(Be),Be={value:"",depth:0,isGlob:!1},le===!0)continue;if(Ce===IN&&h===E+1){E+=2;continue}I=h+1;continue}if(r.noext!==!0&&(de===j7e||de===_7e||de===wN||de===yZ||de===BN)===!0&&g()===DN){if(C=Be.isGlob=!0,R=Be.isExtglob=!0,le=!0,de===BN&&h===E&&(ae=!0),a===!0){for(;Ee()!==!0&&(de=me());){if(de===pI){z=Be.backslashes=!0,de=me();continue}if(de===EZ){C=Be.isGlob=!0,le=!0;break}}continue}break}if(de===wN){if(Ce===wN&&(L=Be.isGlobstar=!0),C=Be.isGlob=!0,le=!0,a===!0)continue;break}if(de===yZ){if(C=Be.isGlob=!0,le=!0,a===!0)continue;break}if(de===q7e){for(;Ee()!==!0&&(xe=me());){if(xe===pI){z=Be.backslashes=!0,me();continue}if(xe===Y7e){x=Be.isBracket=!0,C=Be.isGlob=!0,le=!0;break}}if(a===!0)continue;break}if(r.nonegate!==!0&&de===BN&&h===E){te=Be.negated=!0,E++;continue}if(r.noparen!==!0&&de===DN){if(C=Be.isGlob=!0,a===!0){for(;Ee()!==!0&&(de=me());){if(de===DN){z=Be.backslashes=!0,de=me();continue}if(de===EZ){le=!0;break}}continue}break}if(C===!0){if(le=!0,a===!0)continue;break}}r.noext===!0&&(R=!1,C=!1);let we=p,Ae="",ne="";E>0&&(Ae=p.slice(0,E),p=p.slice(E),I-=E),we&&C===!0&&I>0?(we=p.slice(0,I),ne=p.slice(I)):C===!0?(we="",ne=p):we=p,we&&we!==""&&we!=="/"&&we!==p&&CZ(we.charCodeAt(we.length-1))&&(we=we.slice(0,-1)),r.unescape===!0&&(ne&&(ne=mZ.removeBackslashes(ne)),we&&z===!0&&(we=mZ.removeBackslashes(we)));let Z={prefix:Ae,input:t,start:E,base:we,glob:ne,isBrace:v,isBracket:x,isGlob:C,isExtglob:R,isGlobstar:L,negated:te,negatedExtglob:ae};if(r.tokens===!0&&(Z.maxDepth=0,CZ(de)||u.push(Be),Z.tokens=u),r.parts===!0||r.tokens===!0){let xe;for(let Ne=0;Ne<n.length;Ne++){let ht=xe?xe+1:E,H=n[Ne],rt=t.slice(ht,H);r.tokens&&(Ne===0&&E!==0?(u[Ne].isPrefix=!0,u[Ne].value=Ae):u[Ne].value=rt,wZ(u[Ne]),Z.maxDepth+=u[Ne].depth),(Ne!==0||rt!=="")&&A.push(rt),xe=H}if(xe&&xe+1<t.length){let Ne=t.slice(xe+1);A.push(Ne),r.tokens&&(u[u.length-1].value=Ne,wZ(u[u.length-1]),Z.maxDepth+=u[u.length-1].depth)}Z.slashes=n,Z.parts=A}return Z};BZ.exports=W7e});var SZ=_((tFt,PZ)=>{"use strict";var wP=AI(),il=fI(),{MAX_LENGTH:IP,POSIX_REGEX_SOURCE:K7e,REGEX_NON_SPECIAL_CHARS:V7e,REGEX_SPECIAL_CHARS_BACKREF:z7e,REPLACEMENTS:DZ}=wP,J7e=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch{return t.map(a=>il.escapeRegex(a)).join("..")}return r},mm=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,PN=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=DZ[t]||t;let r={...e},o=typeof r.maxLength=="number"?Math.min(IP,r.maxLength):IP,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);let n={type:"bos",value:"",output:r.prepend||""},u=[n],A=r.capture?"":"?:",p=il.isWindows(e),h=wP.globChars(p),E=wP.extglobChars(h),{DOT_LITERAL:I,PLUS_LITERAL:v,SLASH_LITERAL:x,ONE_CHAR:C,DOTS_SLASH:R,NO_DOT:L,NO_DOT_SLASH:U,NO_DOTS_SLASH:z,QMARK:te,QMARK_NO_DOT:ae,STAR:le,START_ANCHOR:ce}=h,Ce=b=>`(${A}(?:(?!${ce}${b.dot?R:I}).)*?)`,de=r.dot?"":L,Be=r.dot?te:ae,Ee=r.bash===!0?Ce(r):le;r.capture&&(Ee=`(${Ee})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let g={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:u};t=il.removePrefix(t,g),a=t.length;let me=[],we=[],Ae=[],ne=n,Z,xe=()=>g.index===a-1,Ne=g.peek=(b=1)=>t[g.index+b],ht=g.advance=()=>t[++g.index]||"",H=()=>t.slice(g.index+1),rt=(b="",w=0)=>{g.consumed+=b,g.index+=w},Te=b=>{g.output+=b.output!=null?b.output:b.value,rt(b.value)},Fe=()=>{let b=1;for(;Ne()==="!"&&(Ne(2)!=="("||Ne(3)==="?");)ht(),g.start++,b++;return b%2===0?!1:(g.negated=!0,g.start++,!0)},ke=b=>{g[b]++,Ae.push(b)},Ye=b=>{g[b]--,Ae.pop()},Se=b=>{if(ne.type==="globstar"){let w=g.braces>0&&(b.type==="comma"||b.type==="brace"),S=b.extglob===!0||me.length&&(b.type==="pipe"||b.type==="paren");b.type!=="slash"&&b.type!=="paren"&&!w&&!S&&(g.output=g.output.slice(0,-ne.output.length),ne.type="star",ne.value="*",ne.output=Ee,g.output+=ne.output)}if(me.length&&b.type!=="paren"&&(me[me.length-1].inner+=b.value),(b.value||b.output)&&Te(b),ne&&ne.type==="text"&&b.type==="text"){ne.value+=b.value,ne.output=(ne.output||"")+b.value;return}b.prev=ne,u.push(b),ne=b},et=(b,w)=>{let S={...E[w],conditions:1,inner:""};S.prev=ne,S.parens=g.parens,S.output=g.output;let y=(r.capture?"(":"")+S.open;ke("parens"),Se({type:b,value:w,output:g.output?"":C}),Se({type:"paren",extglob:!0,value:ht(),output:y}),me.push(S)},Ue=b=>{let w=b.close+(r.capture?")":""),S;if(b.type==="negate"){let y=Ee;if(b.inner&&b.inner.length>1&&b.inner.includes("/")&&(y=Ce(r)),(y!==Ee||xe()||/^\)+$/.test(H()))&&(w=b.close=`)$))${y}`),b.inner.includes("*")&&(S=H())&&/^\.[^\\/.]+$/.test(S)){let F=PN(S,{...e,fastpaths:!1}).output;w=b.close=`)${F})${y})`}b.prev.type==="bos"&&(g.negatedExtglob=!0)}Se({type:"paren",extglob:!0,value:Z,output:w}),Ye("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let b=!1,w=t.replace(z7e,(S,y,F,J,X,$)=>J==="\\"?(b=!0,S):J==="?"?y?y+J+(X?te.repeat(X.length):""):$===0?Be+(X?te.repeat(X.length):""):te.repeat(F.length):J==="."?I.repeat(F.length):J==="*"?y?y+J+(X?Ee:""):Ee:y?S:`\\${S}`);return b===!0&&(r.unescape===!0?w=w.replace(/\\/g,""):w=w.replace(/\\+/g,S=>S.length%2===0?"\\\\":S?"\\":"")),w===t&&r.contains===!0?(g.output=t,g):(g.output=il.wrapOutput(w,g,e),g)}for(;!xe();){if(Z=ht(),Z==="\0")continue;if(Z==="\\"){let S=Ne();if(S==="/"&&r.bash!==!0||S==="."||S===";")continue;if(!S){Z+="\\",Se({type:"text",value:Z});continue}let y=/^\\+/.exec(H()),F=0;if(y&&y[0].length>2&&(F=y[0].length,g.index+=F,F%2!==0&&(Z+="\\")),r.unescape===!0?Z=ht():Z+=ht(),g.brackets===0){Se({type:"text",value:Z});continue}}if(g.brackets>0&&(Z!=="]"||ne.value==="["||ne.value==="[^")){if(r.posix!==!1&&Z===":"){let S=ne.value.slice(1);if(S.includes("[")&&(ne.posix=!0,S.includes(":"))){let y=ne.value.lastIndexOf("["),F=ne.value.slice(0,y),J=ne.value.slice(y+2),X=K7e[J];if(X){ne.value=F+X,g.backtrack=!0,ht(),!n.output&&u.indexOf(ne)===1&&(n.output=C);continue}}}(Z==="["&&Ne()!==":"||Z==="-"&&Ne()==="]")&&(Z=`\\${Z}`),Z==="]"&&(ne.value==="["||ne.value==="[^")&&(Z=`\\${Z}`),r.posix===!0&&Z==="!"&&ne.value==="["&&(Z="^"),ne.value+=Z,Te({value:Z});continue}if(g.quotes===1&&Z!=='"'){Z=il.escapeRegex(Z),ne.value+=Z,Te({value:Z});continue}if(Z==='"'){g.quotes=g.quotes===1?0:1,r.keepQuotes===!0&&Se({type:"text",value:Z});continue}if(Z==="("){ke("parens"),Se({type:"paren",value:Z});continue}if(Z===")"){if(g.parens===0&&r.strictBrackets===!0)throw new SyntaxError(mm("opening","("));let S=me[me.length-1];if(S&&g.parens===S.parens+1){Ue(me.pop());continue}Se({type:"paren",value:Z,output:g.parens?")":"\\)"}),Ye("parens");continue}if(Z==="["){if(r.nobracket===!0||!H().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(mm("closing","]"));Z=`\\${Z}`}else ke("brackets");Se({type:"bracket",value:Z});continue}if(Z==="]"){if(r.nobracket===!0||ne&&ne.type==="bracket"&&ne.value.length===1){Se({type:"text",value:Z,output:`\\${Z}`});continue}if(g.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(mm("opening","["));Se({type:"text",value:Z,output:`\\${Z}`});continue}Ye("brackets");let S=ne.value.slice(1);if(ne.posix!==!0&&S[0]==="^"&&!S.includes("/")&&(Z=`/${Z}`),ne.value+=Z,Te({value:Z}),r.literalBrackets===!1||il.hasRegexChars(S))continue;let y=il.escapeRegex(ne.value);if(g.output=g.output.slice(0,-ne.value.length),r.literalBrackets===!0){g.output+=y,ne.value=y;continue}ne.value=`(${A}${y}|${ne.value})`,g.output+=ne.value;continue}if(Z==="{"&&r.nobrace!==!0){ke("braces");let S={type:"brace",value:Z,output:"(",outputIndex:g.output.length,tokensIndex:g.tokens.length};we.push(S),Se(S);continue}if(Z==="}"){let S=we[we.length-1];if(r.nobrace===!0||!S){Se({type:"text",value:Z,output:Z});continue}let y=")";if(S.dots===!0){let F=u.slice(),J=[];for(let X=F.length-1;X>=0&&(u.pop(),F[X].type!=="brace");X--)F[X].type!=="dots"&&J.unshift(F[X].value);y=J7e(J,r),g.backtrack=!0}if(S.comma!==!0&&S.dots!==!0){let F=g.output.slice(0,S.outputIndex),J=g.tokens.slice(S.tokensIndex);S.value=S.output="\\{",Z=y="\\}",g.output=F;for(let X of J)g.output+=X.output||X.value}Se({type:"brace",value:Z,output:y}),Ye("braces"),we.pop();continue}if(Z==="|"){me.length>0&&me[me.length-1].conditions++,Se({type:"text",value:Z});continue}if(Z===","){let S=Z,y=we[we.length-1];y&&Ae[Ae.length-1]==="braces"&&(y.comma=!0,S="|"),Se({type:"comma",value:Z,output:S});continue}if(Z==="/"){if(ne.type==="dot"&&g.index===g.start+1){g.start=g.index+1,g.consumed="",g.output="",u.pop(),ne=n;continue}Se({type:"slash",value:Z,output:x});continue}if(Z==="."){if(g.braces>0&&ne.type==="dot"){ne.value==="."&&(ne.output=I);let S=we[we.length-1];ne.type="dots",ne.output+=Z,ne.value+=Z,S.dots=!0;continue}if(g.braces+g.parens===0&&ne.type!=="bos"&&ne.type!=="slash"){Se({type:"text",value:Z,output:I});continue}Se({type:"dot",value:Z,output:I});continue}if(Z==="?"){if(!(ne&&ne.value==="(")&&r.noextglob!==!0&&Ne()==="("&&Ne(2)!=="?"){et("qmark",Z);continue}if(ne&&ne.type==="paren"){let y=Ne(),F=Z;if(y==="<"&&!il.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(ne.value==="("&&!/[!=<:]/.test(y)||y==="<"&&!/<([!=]|\w+>)/.test(H()))&&(F=`\\${Z}`),Se({type:"text",value:Z,output:F});continue}if(r.dot!==!0&&(ne.type==="slash"||ne.type==="bos")){Se({type:"qmark",value:Z,output:ae});continue}Se({type:"qmark",value:Z,output:te});continue}if(Z==="!"){if(r.noextglob!==!0&&Ne()==="("&&(Ne(2)!=="?"||!/[!=<:]/.test(Ne(3)))){et("negate",Z);continue}if(r.nonegate!==!0&&g.index===0){Fe();continue}}if(Z==="+"){if(r.noextglob!==!0&&Ne()==="("&&Ne(2)!=="?"){et("plus",Z);continue}if(ne&&ne.value==="("||r.regex===!1){Se({type:"plus",value:Z,output:v});continue}if(ne&&(ne.type==="bracket"||ne.type==="paren"||ne.type==="brace")||g.parens>0){Se({type:"plus",value:Z});continue}Se({type:"plus",value:v});continue}if(Z==="@"){if(r.noextglob!==!0&&Ne()==="("&&Ne(2)!=="?"){Se({type:"at",extglob:!0,value:Z,output:""});continue}Se({type:"text",value:Z});continue}if(Z!=="*"){(Z==="$"||Z==="^")&&(Z=`\\${Z}`);let S=V7e.exec(H());S&&(Z+=S[0],g.index+=S[0].length),Se({type:"text",value:Z});continue}if(ne&&(ne.type==="globstar"||ne.star===!0)){ne.type="star",ne.star=!0,ne.value+=Z,ne.output=Ee,g.backtrack=!0,g.globstar=!0,rt(Z);continue}let b=H();if(r.noextglob!==!0&&/^\([^?]/.test(b)){et("star",Z);continue}if(ne.type==="star"){if(r.noglobstar===!0){rt(Z);continue}let S=ne.prev,y=S.prev,F=S.type==="slash"||S.type==="bos",J=y&&(y.type==="star"||y.type==="globstar");if(r.bash===!0&&(!F||b[0]&&b[0]!=="/")){Se({type:"star",value:Z,output:""});continue}let X=g.braces>0&&(S.type==="comma"||S.type==="brace"),$=me.length&&(S.type==="pipe"||S.type==="paren");if(!F&&S.type!=="paren"&&!X&&!$){Se({type:"star",value:Z,output:""});continue}for(;b.slice(0,3)==="/**";){let ie=t[g.index+4];if(ie&&ie!=="/")break;b=b.slice(3),rt("/**",3)}if(S.type==="bos"&&xe()){ne.type="globstar",ne.value+=Z,ne.output=Ce(r),g.output=ne.output,g.globstar=!0,rt(Z);continue}if(S.type==="slash"&&S.prev.type!=="bos"&&!J&&xe()){g.output=g.output.slice(0,-(S.output+ne.output).length),S.output=`(?:${S.output}`,ne.type="globstar",ne.output=Ce(r)+(r.strictSlashes?")":"|$)"),ne.value+=Z,g.globstar=!0,g.output+=S.output+ne.output,rt(Z);continue}if(S.type==="slash"&&S.prev.type!=="bos"&&b[0]==="/"){let ie=b[1]!==void 0?"|$":"";g.output=g.output.slice(0,-(S.output+ne.output).length),S.output=`(?:${S.output}`,ne.type="globstar",ne.output=`${Ce(r)}${x}|${x}${ie})`,ne.value+=Z,g.output+=S.output+ne.output,g.globstar=!0,rt(Z+ht()),Se({type:"slash",value:"/",output:""});continue}if(S.type==="bos"&&b[0]==="/"){ne.type="globstar",ne.value+=Z,ne.output=`(?:^|${x}|${Ce(r)}${x})`,g.output=ne.output,g.globstar=!0,rt(Z+ht()),Se({type:"slash",value:"/",output:""});continue}g.output=g.output.slice(0,-ne.output.length),ne.type="globstar",ne.output=Ce(r),ne.value+=Z,g.output+=ne.output,g.globstar=!0,rt(Z);continue}let w={type:"star",value:Z,output:Ee};if(r.bash===!0){w.output=".*?",(ne.type==="bos"||ne.type==="slash")&&(w.output=de+w.output),Se(w);continue}if(ne&&(ne.type==="bracket"||ne.type==="paren")&&r.regex===!0){w.output=Z,Se(w);continue}(g.index===g.start||ne.type==="slash"||ne.type==="dot")&&(ne.type==="dot"?(g.output+=U,ne.output+=U):r.dot===!0?(g.output+=z,ne.output+=z):(g.output+=de,ne.output+=de),Ne()!=="*"&&(g.output+=C,ne.output+=C)),Se(w)}for(;g.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(mm("closing","]"));g.output=il.escapeLast(g.output,"["),Ye("brackets")}for(;g.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(mm("closing",")"));g.output=il.escapeLast(g.output,"("),Ye("parens")}for(;g.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(mm("closing","}"));g.output=il.escapeLast(g.output,"{"),Ye("braces")}if(r.strictSlashes!==!0&&(ne.type==="star"||ne.type==="bracket")&&Se({type:"maybe_slash",value:"",output:`${x}?`}),g.backtrack===!0){g.output="";for(let b of g.tokens)g.output+=b.output!=null?b.output:b.value,b.suffix&&(g.output+=b.suffix)}return g};PN.fastpaths=(t,e)=>{let r={...e},o=typeof r.maxLength=="number"?Math.min(IP,r.maxLength):IP,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);t=DZ[t]||t;let n=il.isWindows(e),{DOT_LITERAL:u,SLASH_LITERAL:A,ONE_CHAR:p,DOTS_SLASH:h,NO_DOT:E,NO_DOTS:I,NO_DOTS_SLASH:v,STAR:x,START_ANCHOR:C}=wP.globChars(n),R=r.dot?I:E,L=r.dot?v:E,U=r.capture?"":"?:",z={negated:!1,prefix:""},te=r.bash===!0?".*?":x;r.capture&&(te=`(${te})`);let ae=de=>de.noglobstar===!0?te:`(${U}(?:(?!${C}${de.dot?h:u}).)*?)`,le=de=>{switch(de){case"*":return`${R}${p}${te}`;case".*":return`${u}${p}${te}`;case"*.*":return`${R}${te}${u}${p}${te}`;case"*/*":return`${R}${te}${A}${p}${L}${te}`;case"**":return R+ae(r);case"**/*":return`(?:${R}${ae(r)}${A})?${L}${p}${te}`;case"**/*.*":return`(?:${R}${ae(r)}${A})?${L}${te}${u}${p}${te}`;case"**/.*":return`(?:${R}${ae(r)}${A})?${u}${p}${te}`;default:{let Be=/^(.*?)\.(\w+)$/.exec(de);if(!Be)return;let Ee=le(Be[1]);return Ee?Ee+u+Be[2]:void 0}}},ce=il.removePrefix(t,z),Ce=le(ce);return Ce&&r.strictSlashes!==!0&&(Ce+=`${A}?`),Ce};PZ.exports=PN});var xZ=_((rFt,bZ)=>{"use strict";var X7e=ve("path"),Z7e=vZ(),SN=SZ(),bN=fI(),$7e=AI(),eYe=t=>t&&typeof t=="object"&&!Array.isArray(t),Mi=(t,e,r=!1)=>{if(Array.isArray(t)){let E=t.map(v=>Mi(v,e,r));return v=>{for(let x of E){let C=x(v);if(C)return C}return!1}}let o=eYe(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!o)throw new TypeError("Expected pattern to be a non-empty string");let a=e||{},n=bN.isWindows(e),u=o?Mi.compileRe(t,e):Mi.makeRe(t,e,!1,!0),A=u.state;delete u.state;let p=()=>!1;if(a.ignore){let E={...e,ignore:null,onMatch:null,onResult:null};p=Mi(a.ignore,E,r)}let h=(E,I=!1)=>{let{isMatch:v,match:x,output:C}=Mi.test(E,u,e,{glob:t,posix:n}),R={glob:t,state:A,regex:u,posix:n,input:E,output:C,match:x,isMatch:v};return typeof a.onResult=="function"&&a.onResult(R),v===!1?(R.isMatch=!1,I?R:!1):p(E)?(typeof a.onIgnore=="function"&&a.onIgnore(R),R.isMatch=!1,I?R:!1):(typeof a.onMatch=="function"&&a.onMatch(R),I?R:!0)};return r&&(h.state=A),h};Mi.test=(t,e,r,{glob:o,posix:a}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let n=r||{},u=n.format||(a?bN.toPosixSlashes:null),A=t===o,p=A&&u?u(t):t;return A===!1&&(p=u?u(t):t,A=p===o),(A===!1||n.capture===!0)&&(n.matchBase===!0||n.basename===!0?A=Mi.matchBase(t,e,r,a):A=e.exec(p)),{isMatch:!!A,match:A,output:p}};Mi.matchBase=(t,e,r,o=bN.isWindows(r))=>(e instanceof RegExp?e:Mi.makeRe(e,r)).test(X7e.basename(t));Mi.isMatch=(t,e,r)=>Mi(e,r)(t);Mi.parse=(t,e)=>Array.isArray(t)?t.map(r=>Mi.parse(r,e)):SN(t,{...e,fastpaths:!1});Mi.scan=(t,e)=>Z7e(t,e);Mi.compileRe=(t,e,r=!1,o=!1)=>{if(r===!0)return t.output;let a=e||{},n=a.contains?"":"^",u=a.contains?"":"$",A=`${n}(?:${t.output})${u}`;t&&t.negated===!0&&(A=`^(?!${A}).*$`);let p=Mi.toRegex(A,e);return o===!0&&(p.state=t),p};Mi.makeRe=(t,e={},r=!1,o=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(a.output=SN.fastpaths(t,e)),a.output||(a=SN(t,e)),Mi.compileRe(a,e,r,o)};Mi.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};Mi.constants=$7e;bZ.exports=Mi});var QZ=_((nFt,kZ)=>{"use strict";kZ.exports=xZ()});var $o=_((iFt,NZ)=>{"use strict";var RZ=ve("util"),TZ=AZ(),zu=QZ(),xN=fI(),FZ=t=>t===""||t==="./",mi=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let o=new Set,a=new Set,n=new Set,u=0,A=E=>{n.add(E.output),r&&r.onResult&&r.onResult(E)};for(let E=0;E<e.length;E++){let I=zu(String(e[E]),{...r,onResult:A},!0),v=I.state.negated||I.state.negatedExtglob;v&&u++;for(let x of t){let C=I(x,!0);(v?!C.isMatch:C.isMatch)&&(v?o.add(C.output):(o.delete(C.output),a.add(C.output)))}}let h=(u===e.length?[...n]:[...a]).filter(E=>!o.has(E));if(r&&h.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(E=>E.replace(/\\/g,"")):e}return h};mi.match=mi;mi.matcher=(t,e)=>zu(t,e);mi.isMatch=(t,e,r)=>zu(e,r)(t);mi.any=mi.isMatch;mi.not=(t,e,r={})=>{e=[].concat(e).map(String);let o=new Set,a=[],n=A=>{r.onResult&&r.onResult(A),a.push(A.output)},u=new Set(mi(t,e,{...r,onResult:n}));for(let A of a)u.has(A)||o.add(A);return[...o]};mi.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${RZ.inspect(t)}"`);if(Array.isArray(e))return e.some(o=>mi.contains(t,o,r));if(typeof e=="string"){if(FZ(t)||FZ(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return mi.isMatch(t,e,{...r,contains:!0})};mi.matchKeys=(t,e,r)=>{if(!xN.isObject(t))throw new TypeError("Expected the first argument to be an object");let o=mi(Object.keys(t),e,r),a={};for(let n of o)a[n]=t[n];return a};mi.some=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=zu(String(a),r);if(o.some(u=>n(u)))return!0}return!1};mi.every=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=zu(String(a),r);if(!o.every(u=>n(u)))return!1}return!0};mi.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${RZ.inspect(t)}"`);return[].concat(e).every(o=>zu(o,r)(t))};mi.capture=(t,e,r)=>{let o=xN.isWindows(r),n=zu.makeRe(String(t),{...r,capture:!0}).exec(o?xN.toPosixSlashes(e):e);if(n)return n.slice(1).map(u=>u===void 0?"":u)};mi.makeRe=(...t)=>zu.makeRe(...t);mi.scan=(...t)=>zu.scan(...t);mi.parse=(t,e)=>{let r=[];for(let o of[].concat(t||[]))for(let a of TZ(String(o),e))r.push(zu.parse(a,e));return r};mi.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(t)?[t]:TZ(t,e)};mi.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return mi.braces(t,{...e,expand:!0})};NZ.exports=mi});var MZ=_((sFt,LZ)=>{"use strict";LZ.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var BP=_((oFt,OZ)=>{"use strict";var tYe=MZ();OZ.exports=t=>typeof t=="string"?t.replace(tYe(),""):t});var _Z=_((aFt,UZ)=>{function rYe(){this.__data__=[],this.size=0}UZ.exports=rYe});var ym=_((lFt,HZ)=>{function nYe(t,e){return t===e||t!==t&&e!==e}HZ.exports=nYe});var hI=_((cFt,qZ)=>{var iYe=ym();function sYe(t,e){for(var r=t.length;r--;)if(iYe(t[r][0],e))return r;return-1}qZ.exports=sYe});var GZ=_((uFt,jZ)=>{var oYe=hI(),aYe=Array.prototype,lYe=aYe.splice;function cYe(t){var e=this.__data__,r=oYe(e,t);if(r<0)return!1;var o=e.length-1;return r==o?e.pop():lYe.call(e,r,1),--this.size,!0}jZ.exports=cYe});var WZ=_((AFt,YZ)=>{var uYe=hI();function AYe(t){var e=this.__data__,r=uYe(e,t);return r<0?void 0:e[r][1]}YZ.exports=AYe});var VZ=_((fFt,KZ)=>{var fYe=hI();function pYe(t){return fYe(this.__data__,t)>-1}KZ.exports=pYe});var JZ=_((pFt,zZ)=>{var hYe=hI();function gYe(t,e){var r=this.__data__,o=hYe(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}zZ.exports=gYe});var gI=_((hFt,XZ)=>{var dYe=_Z(),mYe=GZ(),yYe=WZ(),EYe=VZ(),CYe=JZ();function Em(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}Em.prototype.clear=dYe;Em.prototype.delete=mYe;Em.prototype.get=yYe;Em.prototype.has=EYe;Em.prototype.set=CYe;XZ.exports=Em});var $Z=_((gFt,ZZ)=>{var wYe=gI();function IYe(){this.__data__=new wYe,this.size=0}ZZ.exports=IYe});var t$=_((dFt,e$)=>{function BYe(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}e$.exports=BYe});var n$=_((mFt,r$)=>{function vYe(t){return this.__data__.get(t)}r$.exports=vYe});var s$=_((yFt,i$)=>{function DYe(t){return this.__data__.has(t)}i$.exports=DYe});var kN=_((EFt,o$)=>{var PYe=typeof global=="object"&&global&&global.Object===Object&&global;o$.exports=PYe});var _l=_((CFt,a$)=>{var SYe=kN(),bYe=typeof self=="object"&&self&&self.Object===Object&&self,xYe=SYe||bYe||Function("return this")();a$.exports=xYe});var lg=_((wFt,l$)=>{var kYe=_l(),QYe=kYe.Symbol;l$.exports=QYe});var f$=_((IFt,A$)=>{var c$=lg(),u$=Object.prototype,FYe=u$.hasOwnProperty,RYe=u$.toString,dI=c$?c$.toStringTag:void 0;function TYe(t){var e=FYe.call(t,dI),r=t[dI];try{t[dI]=void 0;var o=!0}catch{}var a=RYe.call(t);return o&&(e?t[dI]=r:delete t[dI]),a}A$.exports=TYe});var h$=_((BFt,p$)=>{var NYe=Object.prototype,LYe=NYe.toString;function MYe(t){return LYe.call(t)}p$.exports=MYe});var cg=_((vFt,m$)=>{var g$=lg(),OYe=f$(),UYe=h$(),_Ye="[object Null]",HYe="[object Undefined]",d$=g$?g$.toStringTag:void 0;function qYe(t){return t==null?t===void 0?HYe:_Ye:d$&&d$ in Object(t)?OYe(t):UYe(t)}m$.exports=qYe});var sl=_((DFt,y$)=>{function jYe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}y$.exports=jYe});var vP=_((PFt,E$)=>{var GYe=cg(),YYe=sl(),WYe="[object AsyncFunction]",KYe="[object Function]",VYe="[object GeneratorFunction]",zYe="[object Proxy]";function JYe(t){if(!YYe(t))return!1;var e=GYe(t);return e==KYe||e==VYe||e==WYe||e==zYe}E$.exports=JYe});var w$=_((SFt,C$)=>{var XYe=_l(),ZYe=XYe["__core-js_shared__"];C$.exports=ZYe});var v$=_((bFt,B$)=>{var QN=w$(),I$=function(){var t=/[^.]+$/.exec(QN&&QN.keys&&QN.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function $Ye(t){return!!I$&&I$ in t}B$.exports=$Ye});var FN=_((xFt,D$)=>{var eWe=Function.prototype,tWe=eWe.toString;function rWe(t){if(t!=null){try{return tWe.call(t)}catch{}try{return t+""}catch{}}return""}D$.exports=rWe});var S$=_((kFt,P$)=>{var nWe=vP(),iWe=v$(),sWe=sl(),oWe=FN(),aWe=/[\\^$.*+?()[\]{}|]/g,lWe=/^\[object .+?Constructor\]$/,cWe=Function.prototype,uWe=Object.prototype,AWe=cWe.toString,fWe=uWe.hasOwnProperty,pWe=RegExp("^"+AWe.call(fWe).replace(aWe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function hWe(t){if(!sWe(t)||iWe(t))return!1;var e=nWe(t)?pWe:lWe;return e.test(oWe(t))}P$.exports=hWe});var x$=_((QFt,b$)=>{function gWe(t,e){return t?.[e]}b$.exports=gWe});var Kp=_((FFt,k$)=>{var dWe=S$(),mWe=x$();function yWe(t,e){var r=mWe(t,e);return dWe(r)?r:void 0}k$.exports=yWe});var DP=_((RFt,Q$)=>{var EWe=Kp(),CWe=_l(),wWe=EWe(CWe,"Map");Q$.exports=wWe});var mI=_((TFt,F$)=>{var IWe=Kp(),BWe=IWe(Object,"create");F$.exports=BWe});var N$=_((NFt,T$)=>{var R$=mI();function vWe(){this.__data__=R$?R$(null):{},this.size=0}T$.exports=vWe});var M$=_((LFt,L$)=>{function DWe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}L$.exports=DWe});var U$=_((MFt,O$)=>{var PWe=mI(),SWe="__lodash_hash_undefined__",bWe=Object.prototype,xWe=bWe.hasOwnProperty;function kWe(t){var e=this.__data__;if(PWe){var r=e[t];return r===SWe?void 0:r}return xWe.call(e,t)?e[t]:void 0}O$.exports=kWe});var H$=_((OFt,_$)=>{var QWe=mI(),FWe=Object.prototype,RWe=FWe.hasOwnProperty;function TWe(t){var e=this.__data__;return QWe?e[t]!==void 0:RWe.call(e,t)}_$.exports=TWe});var j$=_((UFt,q$)=>{var NWe=mI(),LWe="__lodash_hash_undefined__";function MWe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=NWe&&e===void 0?LWe:e,this}q$.exports=MWe});var Y$=_((_Ft,G$)=>{var OWe=N$(),UWe=M$(),_We=U$(),HWe=H$(),qWe=j$();function Cm(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}Cm.prototype.clear=OWe;Cm.prototype.delete=UWe;Cm.prototype.get=_We;Cm.prototype.has=HWe;Cm.prototype.set=qWe;G$.exports=Cm});var V$=_((HFt,K$)=>{var W$=Y$(),jWe=gI(),GWe=DP();function YWe(){this.size=0,this.__data__={hash:new W$,map:new(GWe||jWe),string:new W$}}K$.exports=YWe});var J$=_((qFt,z$)=>{function WWe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}z$.exports=WWe});var yI=_((jFt,X$)=>{var KWe=J$();function VWe(t,e){var r=t.__data__;return KWe(e)?r[typeof e=="string"?"string":"hash"]:r.map}X$.exports=VWe});var $$=_((GFt,Z$)=>{var zWe=yI();function JWe(t){var e=zWe(this,t).delete(t);return this.size-=e?1:0,e}Z$.exports=JWe});var tee=_((YFt,eee)=>{var XWe=yI();function ZWe(t){return XWe(this,t).get(t)}eee.exports=ZWe});var nee=_((WFt,ree)=>{var $We=yI();function eKe(t){return $We(this,t).has(t)}ree.exports=eKe});var see=_((KFt,iee)=>{var tKe=yI();function rKe(t,e){var r=tKe(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}iee.exports=rKe});var PP=_((VFt,oee)=>{var nKe=V$(),iKe=$$(),sKe=tee(),oKe=nee(),aKe=see();function wm(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var o=t[e];this.set(o[0],o[1])}}wm.prototype.clear=nKe;wm.prototype.delete=iKe;wm.prototype.get=sKe;wm.prototype.has=oKe;wm.prototype.set=aKe;oee.exports=wm});var lee=_((zFt,aee)=>{var lKe=gI(),cKe=DP(),uKe=PP(),AKe=200;function fKe(t,e){var r=this.__data__;if(r instanceof lKe){var o=r.__data__;if(!cKe||o.length<AKe-1)return o.push([t,e]),this.size=++r.size,this;r=this.__data__=new uKe(o)}return r.set(t,e),this.size=r.size,this}aee.exports=fKe});var SP=_((JFt,cee)=>{var pKe=gI(),hKe=$Z(),gKe=t$(),dKe=n$(),mKe=s$(),yKe=lee();function Im(t){var e=this.__data__=new pKe(t);this.size=e.size}Im.prototype.clear=hKe;Im.prototype.delete=gKe;Im.prototype.get=dKe;Im.prototype.has=mKe;Im.prototype.set=yKe;cee.exports=Im});var Aee=_((XFt,uee)=>{var EKe="__lodash_hash_undefined__";function CKe(t){return this.__data__.set(t,EKe),this}uee.exports=CKe});var pee=_((ZFt,fee)=>{function wKe(t){return this.__data__.has(t)}fee.exports=wKe});var gee=_(($Ft,hee)=>{var IKe=PP(),BKe=Aee(),vKe=pee();function bP(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new IKe;++e<r;)this.add(t[e])}bP.prototype.add=bP.prototype.push=BKe;bP.prototype.has=vKe;hee.exports=bP});var mee=_((eRt,dee)=>{function DKe(t,e){for(var r=-1,o=t==null?0:t.length;++r<o;)if(e(t[r],r,t))return!0;return!1}dee.exports=DKe});var Eee=_((tRt,yee)=>{function PKe(t,e){return t.has(e)}yee.exports=PKe});var RN=_((rRt,Cee)=>{var SKe=gee(),bKe=mee(),xKe=Eee(),kKe=1,QKe=2;function FKe(t,e,r,o,a,n){var u=r&kKe,A=t.length,p=e.length;if(A!=p&&!(u&&p>A))return!1;var h=n.get(t),E=n.get(e);if(h&&E)return h==e&&E==t;var I=-1,v=!0,x=r&QKe?new SKe:void 0;for(n.set(t,e),n.set(e,t);++I<A;){var C=t[I],R=e[I];if(o)var L=u?o(R,C,I,e,t,n):o(C,R,I,t,e,n);if(L!==void 0){if(L)continue;v=!1;break}if(x){if(!bKe(e,function(U,z){if(!xKe(x,z)&&(C===U||a(C,U,r,o,n)))return x.push(z)})){v=!1;break}}else if(!(C===R||a(C,R,r,o,n))){v=!1;break}}return n.delete(t),n.delete(e),v}Cee.exports=FKe});var TN=_((nRt,wee)=>{var RKe=_l(),TKe=RKe.Uint8Array;wee.exports=TKe});var Bee=_((iRt,Iee)=>{function NKe(t){var e=-1,r=Array(t.size);return t.forEach(function(o,a){r[++e]=[a,o]}),r}Iee.exports=NKe});var Dee=_((sRt,vee)=>{function LKe(t){var e=-1,r=Array(t.size);return t.forEach(function(o){r[++e]=o}),r}vee.exports=LKe});var kee=_((oRt,xee)=>{var Pee=lg(),See=TN(),MKe=ym(),OKe=RN(),UKe=Bee(),_Ke=Dee(),HKe=1,qKe=2,jKe="[object Boolean]",GKe="[object Date]",YKe="[object Error]",WKe="[object Map]",KKe="[object Number]",VKe="[object RegExp]",zKe="[object Set]",JKe="[object String]",XKe="[object Symbol]",ZKe="[object ArrayBuffer]",$Ke="[object DataView]",bee=Pee?Pee.prototype:void 0,NN=bee?bee.valueOf:void 0;function eVe(t,e,r,o,a,n,u){switch(r){case $Ke:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case ZKe:return!(t.byteLength!=e.byteLength||!n(new See(t),new See(e)));case jKe:case GKe:case KKe:return MKe(+t,+e);case YKe:return t.name==e.name&&t.message==e.message;case VKe:case JKe:return t==e+"";case WKe:var A=UKe;case zKe:var p=o&HKe;if(A||(A=_Ke),t.size!=e.size&&!p)return!1;var h=u.get(t);if(h)return h==e;o|=qKe,u.set(t,e);var E=OKe(A(t),A(e),o,a,n,u);return u.delete(t),E;case XKe:if(NN)return NN.call(t)==NN.call(e)}return!1}xee.exports=eVe});var xP=_((aRt,Qee)=>{function tVe(t,e){for(var r=-1,o=e.length,a=t.length;++r<o;)t[a+r]=e[r];return t}Qee.exports=tVe});var Hl=_((lRt,Fee)=>{var rVe=Array.isArray;Fee.exports=rVe});var LN=_((cRt,Ree)=>{var nVe=xP(),iVe=Hl();function sVe(t,e,r){var o=e(t);return iVe(t)?o:nVe(o,r(t))}Ree.exports=sVe});var Nee=_((uRt,Tee)=>{function oVe(t,e){for(var r=-1,o=t==null?0:t.length,a=0,n=[];++r<o;){var u=t[r];e(u,r,t)&&(n[a++]=u)}return n}Tee.exports=oVe});var MN=_((ARt,Lee)=>{function aVe(){return[]}Lee.exports=aVe});var kP=_((fRt,Oee)=>{var lVe=Nee(),cVe=MN(),uVe=Object.prototype,AVe=uVe.propertyIsEnumerable,Mee=Object.getOwnPropertySymbols,fVe=Mee?function(t){return t==null?[]:(t=Object(t),lVe(Mee(t),function(e){return AVe.call(t,e)}))}:cVe;Oee.exports=fVe});var _ee=_((pRt,Uee)=>{function pVe(t,e){for(var r=-1,o=Array(t);++r<t;)o[r]=e(r);return o}Uee.exports=pVe});var Ju=_((hRt,Hee)=>{function hVe(t){return t!=null&&typeof t=="object"}Hee.exports=hVe});var jee=_((gRt,qee)=>{var gVe=cg(),dVe=Ju(),mVe="[object Arguments]";function yVe(t){return dVe(t)&&gVe(t)==mVe}qee.exports=yVe});var EI=_((dRt,Wee)=>{var Gee=jee(),EVe=Ju(),Yee=Object.prototype,CVe=Yee.hasOwnProperty,wVe=Yee.propertyIsEnumerable,IVe=Gee(function(){return arguments}())?Gee:function(t){return EVe(t)&&CVe.call(t,"callee")&&!wVe.call(t,"callee")};Wee.exports=IVe});var Vee=_((mRt,Kee)=>{function BVe(){return!1}Kee.exports=BVe});var wI=_((CI,Bm)=>{var vVe=_l(),DVe=Vee(),Xee=typeof CI=="object"&&CI&&!CI.nodeType&&CI,zee=Xee&&typeof Bm=="object"&&Bm&&!Bm.nodeType&&Bm,PVe=zee&&zee.exports===Xee,Jee=PVe?vVe.Buffer:void 0,SVe=Jee?Jee.isBuffer:void 0,bVe=SVe||DVe;Bm.exports=bVe});var II=_((yRt,Zee)=>{var xVe=9007199254740991,kVe=/^(?:0|[1-9]\d*)$/;function QVe(t,e){var r=typeof t;return e=e??xVe,!!e&&(r=="number"||r!="symbol"&&kVe.test(t))&&t>-1&&t%1==0&&t<e}Zee.exports=QVe});var QP=_((ERt,$ee)=>{var FVe=9007199254740991;function RVe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=FVe}$ee.exports=RVe});var tte=_((CRt,ete)=>{var TVe=cg(),NVe=QP(),LVe=Ju(),MVe="[object Arguments]",OVe="[object Array]",UVe="[object Boolean]",_Ve="[object Date]",HVe="[object Error]",qVe="[object Function]",jVe="[object Map]",GVe="[object Number]",YVe="[object Object]",WVe="[object RegExp]",KVe="[object Set]",VVe="[object String]",zVe="[object WeakMap]",JVe="[object ArrayBuffer]",XVe="[object DataView]",ZVe="[object Float32Array]",$Ve="[object Float64Array]",eze="[object Int8Array]",tze="[object Int16Array]",rze="[object Int32Array]",nze="[object Uint8Array]",ize="[object Uint8ClampedArray]",sze="[object Uint16Array]",oze="[object Uint32Array]",ui={};ui[ZVe]=ui[$Ve]=ui[eze]=ui[tze]=ui[rze]=ui[nze]=ui[ize]=ui[sze]=ui[oze]=!0;ui[MVe]=ui[OVe]=ui[JVe]=ui[UVe]=ui[XVe]=ui[_Ve]=ui[HVe]=ui[qVe]=ui[jVe]=ui[GVe]=ui[YVe]=ui[WVe]=ui[KVe]=ui[VVe]=ui[zVe]=!1;function aze(t){return LVe(t)&&NVe(t.length)&&!!ui[TVe(t)]}ete.exports=aze});var FP=_((wRt,rte)=>{function lze(t){return function(e){return t(e)}}rte.exports=lze});var RP=_((BI,vm)=>{var cze=kN(),nte=typeof BI=="object"&&BI&&!BI.nodeType&&BI,vI=nte&&typeof vm=="object"&&vm&&!vm.nodeType&&vm,uze=vI&&vI.exports===nte,ON=uze&&cze.process,Aze=function(){try{var t=vI&&vI.require&&vI.require("util").types;return t||ON&&ON.binding&&ON.binding("util")}catch{}}();vm.exports=Aze});var TP=_((IRt,ote)=>{var fze=tte(),pze=FP(),ite=RP(),ste=ite&&ite.isTypedArray,hze=ste?pze(ste):fze;ote.exports=hze});var UN=_((BRt,ate)=>{var gze=_ee(),dze=EI(),mze=Hl(),yze=wI(),Eze=II(),Cze=TP(),wze=Object.prototype,Ize=wze.hasOwnProperty;function Bze(t,e){var r=mze(t),o=!r&&dze(t),a=!r&&!o&&yze(t),n=!r&&!o&&!a&&Cze(t),u=r||o||a||n,A=u?gze(t.length,String):[],p=A.length;for(var h in t)(e||Ize.call(t,h))&&!(u&&(h=="length"||a&&(h=="offset"||h=="parent")||n&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Eze(h,p)))&&A.push(h);return A}ate.exports=Bze});var NP=_((vRt,lte)=>{var vze=Object.prototype;function Dze(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||vze;return t===r}lte.exports=Dze});var _N=_((DRt,cte)=>{function Pze(t,e){return function(r){return t(e(r))}}cte.exports=Pze});var Ate=_((PRt,ute)=>{var Sze=_N(),bze=Sze(Object.keys,Object);ute.exports=bze});var pte=_((SRt,fte)=>{var xze=NP(),kze=Ate(),Qze=Object.prototype,Fze=Qze.hasOwnProperty;function Rze(t){if(!xze(t))return kze(t);var e=[];for(var r in Object(t))Fze.call(t,r)&&r!="constructor"&&e.push(r);return e}fte.exports=Rze});var DI=_((bRt,hte)=>{var Tze=vP(),Nze=QP();function Lze(t){return t!=null&&Nze(t.length)&&!Tze(t)}hte.exports=Lze});var LP=_((xRt,gte)=>{var Mze=UN(),Oze=pte(),Uze=DI();function _ze(t){return Uze(t)?Mze(t):Oze(t)}gte.exports=_ze});var HN=_((kRt,dte)=>{var Hze=LN(),qze=kP(),jze=LP();function Gze(t){return Hze(t,jze,qze)}dte.exports=Gze});var Ete=_((QRt,yte)=>{var mte=HN(),Yze=1,Wze=Object.prototype,Kze=Wze.hasOwnProperty;function Vze(t,e,r,o,a,n){var u=r&Yze,A=mte(t),p=A.length,h=mte(e),E=h.length;if(p!=E&&!u)return!1;for(var I=p;I--;){var v=A[I];if(!(u?v in e:Kze.call(e,v)))return!1}var x=n.get(t),C=n.get(e);if(x&&C)return x==e&&C==t;var R=!0;n.set(t,e),n.set(e,t);for(var L=u;++I<p;){v=A[I];var U=t[v],z=e[v];if(o)var te=u?o(z,U,v,e,t,n):o(U,z,v,t,e,n);if(!(te===void 0?U===z||a(U,z,r,o,n):te)){R=!1;break}L||(L=v=="constructor")}if(R&&!L){var ae=t.constructor,le=e.constructor;ae!=le&&"constructor"in t&&"constructor"in e&&!(typeof ae=="function"&&ae instanceof ae&&typeof le=="function"&&le instanceof le)&&(R=!1)}return n.delete(t),n.delete(e),R}yte.exports=Vze});var wte=_((FRt,Cte)=>{var zze=Kp(),Jze=_l(),Xze=zze(Jze,"DataView");Cte.exports=Xze});var Bte=_((RRt,Ite)=>{var Zze=Kp(),$ze=_l(),eJe=Zze($ze,"Promise");Ite.exports=eJe});var Dte=_((TRt,vte)=>{var tJe=Kp(),rJe=_l(),nJe=tJe(rJe,"Set");vte.exports=nJe});var Ste=_((NRt,Pte)=>{var iJe=Kp(),sJe=_l(),oJe=iJe(sJe,"WeakMap");Pte.exports=oJe});var PI=_((LRt,Tte)=>{var qN=wte(),jN=DP(),GN=Bte(),YN=Dte(),WN=Ste(),Rte=cg(),Dm=FN(),bte="[object Map]",aJe="[object Object]",xte="[object Promise]",kte="[object Set]",Qte="[object WeakMap]",Fte="[object DataView]",lJe=Dm(qN),cJe=Dm(jN),uJe=Dm(GN),AJe=Dm(YN),fJe=Dm(WN),ug=Rte;(qN&&ug(new qN(new ArrayBuffer(1)))!=Fte||jN&&ug(new jN)!=bte||GN&&ug(GN.resolve())!=xte||YN&&ug(new YN)!=kte||WN&&ug(new WN)!=Qte)&&(ug=function(t){var e=Rte(t),r=e==aJe?t.constructor:void 0,o=r?Dm(r):"";if(o)switch(o){case lJe:return Fte;case cJe:return bte;case uJe:return xte;case AJe:return kte;case fJe:return Qte}return e});Tte.exports=ug});var qte=_((MRt,Hte)=>{var KN=SP(),pJe=RN(),hJe=kee(),gJe=Ete(),Nte=PI(),Lte=Hl(),Mte=wI(),dJe=TP(),mJe=1,Ote="[object Arguments]",Ute="[object Array]",MP="[object Object]",yJe=Object.prototype,_te=yJe.hasOwnProperty;function EJe(t,e,r,o,a,n){var u=Lte(t),A=Lte(e),p=u?Ute:Nte(t),h=A?Ute:Nte(e);p=p==Ote?MP:p,h=h==Ote?MP:h;var E=p==MP,I=h==MP,v=p==h;if(v&&Mte(t)){if(!Mte(e))return!1;u=!0,E=!1}if(v&&!E)return n||(n=new KN),u||dJe(t)?pJe(t,e,r,o,a,n):hJe(t,e,p,r,o,a,n);if(!(r&mJe)){var x=E&&_te.call(t,"__wrapped__"),C=I&&_te.call(e,"__wrapped__");if(x||C){var R=x?t.value():t,L=C?e.value():e;return n||(n=new KN),a(R,L,r,o,n)}}return v?(n||(n=new KN),gJe(t,e,r,o,a,n)):!1}Hte.exports=EJe});var Wte=_((ORt,Yte)=>{var CJe=qte(),jte=Ju();function Gte(t,e,r,o,a){return t===e?!0:t==null||e==null||!jte(t)&&!jte(e)?t!==t&&e!==e:CJe(t,e,r,o,Gte,a)}Yte.exports=Gte});var Vte=_((URt,Kte)=>{var wJe=Wte();function IJe(t,e){return wJe(t,e)}Kte.exports=IJe});var VN=_((_Rt,zte)=>{var BJe=Kp(),vJe=function(){try{var t=BJe(Object,"defineProperty");return t({},"",{}),t}catch{}}();zte.exports=vJe});var OP=_((HRt,Xte)=>{var Jte=VN();function DJe(t,e,r){e=="__proto__"&&Jte?Jte(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}Xte.exports=DJe});var zN=_((qRt,Zte)=>{var PJe=OP(),SJe=ym();function bJe(t,e,r){(r!==void 0&&!SJe(t[e],r)||r===void 0&&!(e in t))&&PJe(t,e,r)}Zte.exports=bJe});var ere=_((jRt,$te)=>{function xJe(t){return function(e,r,o){for(var a=-1,n=Object(e),u=o(e),A=u.length;A--;){var p=u[t?A:++a];if(r(n[p],p,n)===!1)break}return e}}$te.exports=xJe});var rre=_((GRt,tre)=>{var kJe=ere(),QJe=kJe();tre.exports=QJe});var JN=_((SI,Pm)=>{var FJe=_l(),ore=typeof SI=="object"&&SI&&!SI.nodeType&&SI,nre=ore&&typeof Pm=="object"&&Pm&&!Pm.nodeType&&Pm,RJe=nre&&nre.exports===ore,ire=RJe?FJe.Buffer:void 0,sre=ire?ire.allocUnsafe:void 0;function TJe(t,e){if(e)return t.slice();var r=t.length,o=sre?sre(r):new t.constructor(r);return t.copy(o),o}Pm.exports=TJe});var UP=_((YRt,lre)=>{var are=TN();function NJe(t){var e=new t.constructor(t.byteLength);return new are(e).set(new are(t)),e}lre.exports=NJe});var XN=_((WRt,cre)=>{var LJe=UP();function MJe(t,e){var r=e?LJe(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}cre.exports=MJe});var _P=_((KRt,ure)=>{function OJe(t,e){var r=-1,o=t.length;for(e||(e=Array(o));++r<o;)e[r]=t[r];return e}ure.exports=OJe});var pre=_((VRt,fre)=>{var UJe=sl(),Are=Object.create,_Je=function(){function t(){}return function(e){if(!UJe(e))return{};if(Are)return Are(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();fre.exports=_Je});var HP=_((zRt,hre)=>{var HJe=_N(),qJe=HJe(Object.getPrototypeOf,Object);hre.exports=qJe});var ZN=_((JRt,gre)=>{var jJe=pre(),GJe=HP(),YJe=NP();function WJe(t){return typeof t.constructor=="function"&&!YJe(t)?jJe(GJe(t)):{}}gre.exports=WJe});var mre=_((XRt,dre)=>{var KJe=DI(),VJe=Ju();function zJe(t){return VJe(t)&&KJe(t)}dre.exports=zJe});var $N=_((ZRt,Ere)=>{var JJe=cg(),XJe=HP(),ZJe=Ju(),$Je="[object Object]",eXe=Function.prototype,tXe=Object.prototype,yre=eXe.toString,rXe=tXe.hasOwnProperty,nXe=yre.call(Object);function iXe(t){if(!ZJe(t)||JJe(t)!=$Je)return!1;var e=XJe(t);if(e===null)return!0;var r=rXe.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&yre.call(r)==nXe}Ere.exports=iXe});var eL=_(($Rt,Cre)=>{function sXe(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}Cre.exports=sXe});var qP=_((eTt,wre)=>{var oXe=OP(),aXe=ym(),lXe=Object.prototype,cXe=lXe.hasOwnProperty;function uXe(t,e,r){var o=t[e];(!(cXe.call(t,e)&&aXe(o,r))||r===void 0&&!(e in t))&&oXe(t,e,r)}wre.exports=uXe});var Ag=_((tTt,Ire)=>{var AXe=qP(),fXe=OP();function pXe(t,e,r,o){var a=!r;r||(r={});for(var n=-1,u=e.length;++n<u;){var A=e[n],p=o?o(r[A],t[A],A,r,t):void 0;p===void 0&&(p=t[A]),a?fXe(r,A,p):AXe(r,A,p)}return r}Ire.exports=pXe});var vre=_((rTt,Bre)=>{function hXe(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}Bre.exports=hXe});var Pre=_((nTt,Dre)=>{var gXe=sl(),dXe=NP(),mXe=vre(),yXe=Object.prototype,EXe=yXe.hasOwnProperty;function CXe(t){if(!gXe(t))return mXe(t);var e=dXe(t),r=[];for(var o in t)o=="constructor"&&(e||!EXe.call(t,o))||r.push(o);return r}Dre.exports=CXe});var Sm=_((iTt,Sre)=>{var wXe=UN(),IXe=Pre(),BXe=DI();function vXe(t){return BXe(t)?wXe(t,!0):IXe(t)}Sre.exports=vXe});var xre=_((sTt,bre)=>{var DXe=Ag(),PXe=Sm();function SXe(t){return DXe(t,PXe(t))}bre.exports=SXe});var Nre=_((oTt,Tre)=>{var kre=zN(),bXe=JN(),xXe=XN(),kXe=_P(),QXe=ZN(),Qre=EI(),Fre=Hl(),FXe=mre(),RXe=wI(),TXe=vP(),NXe=sl(),LXe=$N(),MXe=TP(),Rre=eL(),OXe=xre();function UXe(t,e,r,o,a,n,u){var A=Rre(t,r),p=Rre(e,r),h=u.get(p);if(h){kre(t,r,h);return}var E=n?n(A,p,r+"",t,e,u):void 0,I=E===void 0;if(I){var v=Fre(p),x=!v&&RXe(p),C=!v&&!x&&MXe(p);E=p,v||x||C?Fre(A)?E=A:FXe(A)?E=kXe(A):x?(I=!1,E=bXe(p,!0)):C?(I=!1,E=xXe(p,!0)):E=[]:LXe(p)||Qre(p)?(E=A,Qre(A)?E=OXe(A):(!NXe(A)||TXe(A))&&(E=QXe(p))):I=!1}I&&(u.set(p,E),a(E,p,o,n,u),u.delete(p)),kre(t,r,E)}Tre.exports=UXe});var Ore=_((aTt,Mre)=>{var _Xe=SP(),HXe=zN(),qXe=rre(),jXe=Nre(),GXe=sl(),YXe=Sm(),WXe=eL();function Lre(t,e,r,o,a){t!==e&&qXe(e,function(n,u){if(a||(a=new _Xe),GXe(n))jXe(t,e,u,r,Lre,o,a);else{var A=o?o(WXe(t,u),n,u+"",t,e,a):void 0;A===void 0&&(A=n),HXe(t,u,A)}},YXe)}Mre.exports=Lre});var tL=_((lTt,Ure)=>{function KXe(t){return t}Ure.exports=KXe});var Hre=_((cTt,_re)=>{function VXe(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}_re.exports=VXe});var rL=_((uTt,jre)=>{var zXe=Hre(),qre=Math.max;function JXe(t,e,r){return e=qre(e===void 0?t.length-1:e,0),function(){for(var o=arguments,a=-1,n=qre(o.length-e,0),u=Array(n);++a<n;)u[a]=o[e+a];a=-1;for(var A=Array(e+1);++a<e;)A[a]=o[a];return A[e]=r(u),zXe(t,this,A)}}jre.exports=JXe});var Yre=_((ATt,Gre)=>{function XXe(t){return function(){return t}}Gre.exports=XXe});var Vre=_((fTt,Kre)=>{var ZXe=Yre(),Wre=VN(),$Xe=tL(),eZe=Wre?function(t,e){return Wre(t,"toString",{configurable:!0,enumerable:!1,value:ZXe(e),writable:!0})}:$Xe;Kre.exports=eZe});var Jre=_((pTt,zre)=>{var tZe=800,rZe=16,nZe=Date.now;function iZe(t){var e=0,r=0;return function(){var o=nZe(),a=rZe-(o-r);if(r=o,a>0){if(++e>=tZe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}zre.exports=iZe});var nL=_((hTt,Xre)=>{var sZe=Vre(),oZe=Jre(),aZe=oZe(sZe);Xre.exports=aZe});var $re=_((gTt,Zre)=>{var lZe=tL(),cZe=rL(),uZe=nL();function AZe(t,e){return uZe(cZe(t,e,lZe),t+"")}Zre.exports=AZe});var tne=_((dTt,ene)=>{var fZe=ym(),pZe=DI(),hZe=II(),gZe=sl();function dZe(t,e,r){if(!gZe(r))return!1;var o=typeof e;return(o=="number"?pZe(r)&&hZe(e,r.length):o=="string"&&e in r)?fZe(r[e],t):!1}ene.exports=dZe});var nne=_((mTt,rne)=>{var mZe=$re(),yZe=tne();function EZe(t){return mZe(function(e,r){var o=-1,a=r.length,n=a>1?r[a-1]:void 0,u=a>2?r[2]:void 0;for(n=t.length>3&&typeof n=="function"?(a--,n):void 0,u&&yZe(r[0],r[1],u)&&(n=a<3?void 0:n,a=1),e=Object(e);++o<a;){var A=r[o];A&&t(e,A,o,n)}return e})}rne.exports=EZe});var sne=_((yTt,ine)=>{var CZe=Ore(),wZe=nne(),IZe=wZe(function(t,e,r,o){CZe(t,e,r,o)});ine.exports=IZe});var He={};Vt(He,{AsyncActions:()=>oL,BufferStream:()=>sL,CachingStrategy:()=>mne,DefaultStream:()=>aL,allSettledSafe:()=>_c,assertNever:()=>cL,bufferStream:()=>km,buildIgnorePattern:()=>xZe,convertMapsToIndexableObjects:()=>GP,dynamicRequire:()=>vf,escapeRegExp:()=>vZe,getArrayWithDefault:()=>xI,getFactoryWithDefault:()=>al,getMapWithDefault:()=>kI,getSetWithDefault:()=>bm,groupBy:()=>FZe,isIndexableObject:()=>iL,isPathLike:()=>kZe,isTaggedYarnVersion:()=>BZe,makeDeferred:()=>hne,mapAndFilter:()=>ol,mapAndFind:()=>Vp,mergeIntoTarget:()=>Ene,overrideType:()=>DZe,parseBoolean:()=>QI,parseInt:()=>Qm,parseOptionalBoolean:()=>yne,plural:()=>jP,prettifyAsyncErrors:()=>xm,prettifySyncErrors:()=>uL,releaseAfterUseAsync:()=>SZe,replaceEnvVariables:()=>YP,sortMap:()=>Fs,toMerged:()=>QZe,tryParseOptionalBoolean:()=>AL,validateEnum:()=>PZe});function BZe(t){return!!(Ane.default.valid(t)&&t.match(/^[^-]+(-rc\.[0-9]+)?$/))}function jP(t,{one:e,more:r,zero:o=r}){return t===0?o:t===1?e:r}function vZe(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function DZe(t){}function cL(t){throw new Error(`Assertion failed: Unexpected object '${t}'`)}function PZe(t,e){let r=Object.values(t);if(!r.includes(e))throw new st(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${r.map(o=>JSON.stringify(o)).join(", ")})`);return e}function ol(t,e){let r=[];for(let o of t){let a=e(o);a!==fne&&r.push(a)}return r}function Vp(t,e){for(let r of t){let o=e(r);if(o!==pne)return o}}function iL(t){return typeof t=="object"&&t!==null}async function _c(t){let e=await Promise.allSettled(t),r=[];for(let o of e){if(o.status==="rejected")throw o.reason;r.push(o.value)}return r}function GP(t){if(t instanceof Map&&(t=Object.fromEntries(t)),iL(t))for(let e of Object.keys(t)){let r=t[e];iL(r)&&(t[e]=GP(r))}return t}function al(t,e,r){let o=t.get(e);return typeof o>"u"&&t.set(e,o=r()),o}function xI(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=[]),r}function bm(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Set),r}function kI(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Map),r}async function SZe(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function xm(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function uL(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function km(t){return await new Promise((e,r)=>{let o=[];t.on("error",a=>{r(a)}),t.on("data",a=>{o.push(a)}),t.on("end",()=>{e(Buffer.concat(o))})})}function hne(){let t,e;return{promise:new Promise((o,a)=>{t=o,e=a}),resolve:t,reject:e}}function gne(t){return bI(ue.fromPortablePath(t))}function dne(path){let physicalPath=ue.fromPortablePath(path),currentCacheEntry=bI.cache[physicalPath];delete bI.cache[physicalPath];let result;try{result=gne(physicalPath);let freshCacheEntry=bI.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{bI.cache[physicalPath]=currentCacheEntry}return result}function bZe(t){let e=one.get(t),r=oe.statSync(t);if(e?.mtime===r.mtimeMs)return e.instance;let o=dne(t);return one.set(t,{mtime:r.mtimeMs,instance:o}),o}function vf(t,{cachingStrategy:e=2}={}){switch(e){case 0:return dne(t);case 1:return bZe(t);case 2:return gne(t);default:throw new Error("Unsupported caching strategy")}}function Fs(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]<A[u]?-1:A[n]>A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function xZe(t){return t.length===0?null:t.map(e=>`(${cne.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function YP(t,{env:e}){let r=/\${(?<variableName>[\d\w_]+)(?<colon>:)?(?:-(?<fallback>[^}]*))?}/g;return t.replace(r,(...o)=>{let{variableName:a,colon:n,fallback:u}=o[o.length-1],A=Object.hasOwn(e,a),p=e[a];if(p||A&&!n)return p;if(u!=null)return u;throw new st(`Environment variable not found (${a})`)})}function QI(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${t}" as a boolean`)}}function yne(t){return typeof t>"u"?t:QI(t)}function AL(t){try{return yne(t)}catch{return null}}function kZe(t){return!!(ue.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}function Ene(t,...e){let r=u=>({value:u}),o=r(t),a=e.map(u=>r(u)),{value:n}=(0,lne.default)(o,...a,(u,A)=>{if(Array.isArray(u)&&Array.isArray(A)){for(let p of A)u.find(h=>(0,ane.default)(h,p))||u.push(p);return u}});return n}function QZe(...t){return Ene({},...t)}function FZe(t,e){let r=Object.create(null);for(let o of t){let a=o[e];r[a]??=[],r[a].push(o)}return r}function Qm(t){return typeof t=="string"?Number.parseInt(t,10):t}var ane,lne,cne,une,Ane,lL,fne,pne,sL,oL,aL,bI,one,mne,ql=Et(()=>{Pt();qt();ane=Ze(Vte()),lne=Ze(sne()),cne=Ze($o()),une=Ze(eg()),Ane=Ze(Jn()),lL=ve("stream");fne=Symbol();ol.skip=fne;pne=Symbol();Vp.skip=pne;sL=class extends lL.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(r),a(null,null)}_flush(r){r(null,Buffer.concat(this.chunks))}};oL=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,une.default)(e)}set(e,r){let o=this.deferred.get(e);typeof o>"u"&&this.deferred.set(e,o=hne());let a=this.limit(()=>r());return this.promises.set(e,a),a.then(()=>{this.promises.get(e)===a&&o.resolve()},n=>{this.promises.get(e)===a&&o.reject(n)}),o.promise}reduce(e,r){let o=this.promises.get(e)??Promise.resolve();this.set(e,()=>r(o))}async wait(){await Promise.all(this.promises.values())}},aL=class extends lL.Transform{constructor(r=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=r}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,a(null,r)}_flush(r){this.active&&this.ifEmpty.length>0?r(null,this.ifEmpty):r(null)}},bI=eval("require");one=new Map;mne=(o=>(o[o.NoCache=0]="NoCache",o[o.FsTime=1]="FsTime",o[o.Node=2]="Node",o))(mne||{})});var Fm,fL,pL,Cne=Et(()=>{Fm=(r=>(r.HARD="HARD",r.SOFT="SOFT",r))(Fm||{}),fL=(o=>(o.Dependency="Dependency",o.PeerDependency="PeerDependency",o.PeerDependencyMeta="PeerDependencyMeta",o))(fL||{}),pL=(o=>(o.Inactive="inactive",o.Redundant="redundant",o.Active="active",o))(pL||{})});var pe={};Vt(pe,{LogLevel:()=>JP,Style:()=>KP,Type:()=>yt,addLogFilterSupport:()=>TI,applyColor:()=>Xs,applyHyperlink:()=>Tm,applyStyle:()=>fg,json:()=>pg,jsonOrPretty:()=>NZe,mark:()=>yL,pretty:()=>Ot,prettyField:()=>Xu,prettyList:()=>mL,prettyTruncatedLocatorList:()=>zP,stripAnsi:()=>Rm.default,supportsColor:()=>VP,supportsHyperlinks:()=>dL,tuple:()=>Hc});function wne(t){let e=["KiB","MiB","GiB","TiB"],r=e.length;for(;r>1&&t<1024**r;)r-=1;let o=1024**r;return`${Math.floor(t*100/o)/100} ${e[r-1]}`}function Hc(t,e){return[e,t]}function fg(t,e,r){return t.get("enableColors")&&r&2&&(e=RI.default.bold(e)),e}function Xs(t,e,r){if(!t.get("enableColors"))return e;let o=RZe.get(r);if(o===null)return e;let a=typeof o>"u"?r:gL.level>=3?o[0]:o[1],n=typeof a=="number"?hL.ansi256(a):a.startsWith("#")?hL.hex(a):hL[a];if(typeof n!="function")throw new Error(`Invalid format type ${a}`);return n(e)}function Tm(t,e,r){return t.get("enableHyperlinks")?TZe?`\x1B]8;;${r}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${r}\x07${e}\x1B]8;;\x07`:e}function Ot(t,e,r){if(e===null)return Xs(t,"null",yt.NULL);if(Object.hasOwn(WP,r))return WP[r].pretty(t,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Xs(t,e,r)}function mL(t,e,r,{separator:o=", "}={}){return[...e].map(a=>Ot(t,a,r)).join(o)}function pg(t,e){if(t===null)return null;if(Object.hasOwn(WP,e))return WP[e].json(t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function NZe(t,e,[r,o]){return t?pg(r,o):Ot(e,r,o)}function yL(t){return{Check:Xs(t,"\u2713","green"),Cross:Xs(t,"\u2718","red"),Question:Xs(t,"?","cyan")}}function Xu(t,{label:e,value:[r,o]}){return`${Ot(t,e,yt.CODE)}: ${Ot(t,r,o)}`}function zP(t,e,r){let o=[],a=[...e],n=r;for(;a.length>0;){let h=a[0],E=`${qr(t,h)}, `,I=EL(h).length+2;if(o.length>0&&n<I)break;o.push([E,I]),n-=I,a.shift()}if(a.length===0)return o.map(([h])=>h).join("").slice(0,-2);let u="X".repeat(a.length.toString().length),A=`and ${u} more.`,p=a.length;for(;o.length>1&&n<A.length;)n+=o[o.length-1][1],p+=1,o.pop();return[o.map(([h])=>h).join(""),A.replace(u,Ot(t,p,yt.NUMBER))].join("")}function TI(t,{configuration:e}){let r=e.get("logFilters"),o=new Map,a=new Map,n=[];for(let I of r){let v=I.get("level");if(typeof v>"u")continue;let x=I.get("code");typeof x<"u"&&o.set(x,v);let C=I.get("text");typeof C<"u"&&a.set(C,v);let R=I.get("pattern");typeof R<"u"&&n.push([Ine.default.matcher(R,{contains:!0}),v])}n.reverse();let u=(I,v,x)=>{if(I===null||I===0)return x;let C=a.size>0||n.length>0?(0,Rm.default)(v):v;if(a.size>0){let R=a.get(C);if(typeof R<"u")return R??x}if(n.length>0){for(let[R,L]of n)if(R(C))return L??x}if(o.size>0){let R=o.get(Ku(I));if(typeof R<"u")return R??x}return x},A=t.reportInfo,p=t.reportWarning,h=t.reportError,E=function(I,v,x,C){switch(u(v,x,C)){case"info":A.call(I,v,x);break;case"warning":p.call(I,v??0,x);break;case"error":h.call(I,v??0,x);break}};t.reportInfo=function(...I){return E(this,...I,"info")},t.reportWarning=function(...I){return E(this,...I,"warning")},t.reportError=function(...I){return E(this,...I,"error")}}var RI,FI,Ine,Rm,Bne,yt,KP,gL,VP,dL,hL,RZe,So,WP,TZe,JP,jl=Et(()=>{Pt();RI=Ze(pN()),FI=Ze(X0());qt();Ine=Ze($o()),Rm=Ze(BP()),Bne=ve("util");$D();bo();yt={NO_HINT:"NO_HINT",ID:"ID",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",INSPECT:"INSPECT",DURATION:"DURATION",SIZE:"SIZE",SIZE_DIFF:"SIZE_DIFF",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN",MARKDOWN_INLINE:"MARKDOWN_INLINE"},KP=(e=>(e[e.BOLD=2]="BOLD",e))(KP||{}),gL=FI.default.GITHUB_ACTIONS?{level:2}:RI.default.supportsColor?{level:RI.default.supportsColor.level}:{level:0},VP=gL.level!==0,dL=VP&&!FI.default.GITHUB_ACTIONS&&!FI.default.CIRCLE&&!FI.default.GITLAB,hL=new RI.default.Instance(gL),RZe=new Map([[yt.NO_HINT,null],[yt.NULL,["#a853b5",129]],[yt.SCOPE,["#d75f00",166]],[yt.NAME,["#d7875f",173]],[yt.RANGE,["#00afaf",37]],[yt.REFERENCE,["#87afff",111]],[yt.NUMBER,["#ffd700",220]],[yt.PATH,["#d75fd7",170]],[yt.URL,["#d75fd7",170]],[yt.ADDED,["#5faf00",70]],[yt.REMOVED,["#ff3131",160]],[yt.CODE,["#87afff",111]],[yt.SIZE,["#ffd700",220]]]),So=t=>t;WP={[yt.ID]:So({pretty:(t,e)=>typeof e=="number"?Xs(t,`${e}`,yt.NUMBER):Xs(t,e,yt.CODE),json:t=>t}),[yt.INSPECT]:So({pretty:(t,e)=>(0,Bne.inspect)(e,{depth:1/0,colors:t.get("enableColors"),compact:!0,breakLength:1/0}),json:t=>t}),[yt.NUMBER]:So({pretty:(t,e)=>Xs(t,`${e}`,yt.NUMBER),json:t=>t}),[yt.IDENT]:So({pretty:(t,e)=>Oi(t,e),json:t=>rn(t)}),[yt.LOCATOR]:So({pretty:(t,e)=>qr(t,e),json:t=>ka(t)}),[yt.DESCRIPTOR]:So({pretty:(t,e)=>jn(t,e),json:t=>xa(t)}),[yt.RESOLUTION]:So({pretty:(t,{descriptor:e,locator:r})=>NI(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:xa(t),locator:e!==null?ka(e):null})}),[yt.DEPENDENT]:So({pretty:(t,{locator:e,descriptor:r})=>CL(t,e,r),json:({locator:t,descriptor:e})=>({locator:ka(t),descriptor:xa(e)})}),[yt.PACKAGE_EXTENSION]:So({pretty:(t,e)=>{switch(e.type){case"Dependency":return`${Oi(t,e.parentDescriptor)} \u27A4 ${Xs(t,"dependencies",yt.CODE)} \u27A4 ${Oi(t,e.descriptor)}`;case"PeerDependency":return`${Oi(t,e.parentDescriptor)} \u27A4 ${Xs(t,"peerDependencies",yt.CODE)} \u27A4 ${Oi(t,e.descriptor)}`;case"PeerDependencyMeta":return`${Oi(t,e.parentDescriptor)} \u27A4 ${Xs(t,"peerDependenciesMeta",yt.CODE)} \u27A4 ${Oi(t,ea(e.selector))} \u27A4 ${Xs(t,e.key,yt.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case"Dependency":return`${rn(t.parentDescriptor)} > ${rn(t.descriptor)}`;case"PeerDependency":return`${rn(t.parentDescriptor)} >> ${rn(t.descriptor)}`;case"PeerDependencyMeta":return`${rn(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[yt.SETTING]:So({pretty:(t,e)=>(t.get(e),Tm(t,Xs(t,e,yt.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[yt.DURATION]:So({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),o=Math.ceil((e-r*60*1e3)/1e3);return o===0?`${r}m`:`${r}m ${o}s`}else{let r=Math.floor(e/1e3),o=e-r*1e3;return o===0?`${r}s`:`${r}s ${o}ms`}},json:t=>t}),[yt.SIZE]:So({pretty:(t,e)=>Xs(t,wne(e),yt.NUMBER),json:t=>t}),[yt.SIZE_DIFF]:So({pretty:(t,e)=>{let r=e>=0?"+":"-",o=r==="+"?yt.REMOVED:yt.ADDED;return Xs(t,`${r} ${wne(Math.max(Math.abs(e),1))}`,o)},json:t=>t}),[yt.PATH]:So({pretty:(t,e)=>Xs(t,ue.fromPortablePath(e),yt.PATH),json:t=>ue.fromPortablePath(t)}),[yt.MARKDOWN]:So({pretty:(t,{text:e,format:r,paragraphs:o})=>Do(e,{format:r,paragraphs:o}),json:({text:t})=>t}),[yt.MARKDOWN_INLINE]:So({pretty:(t,e)=>(e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(r,o,a)=>Ot(t,o+a+o,yt.CODE)),e=e.replace(/(\*\*)((?:.|[\n])*?)\1/g,(r,o,a)=>fg(t,a,2)),e),json:t=>t})};TZe=!!process.env.KONSOLE_VERSION;JP=(a=>(a.Error="error",a.Warning="warning",a.Info="info",a.Discard="discard",a))(JP||{})});var vne=_(Nm=>{"use strict";Object.defineProperty(Nm,"__esModule",{value:!0});Nm.splitWhen=Nm.flatten=void 0;function LZe(t){return t.reduce((e,r)=>[].concat(e,r),[])}Nm.flatten=LZe;function MZe(t,e){let r=[[]],o=0;for(let a of t)e(a)?(o++,r[o]=[]):r[o].push(a);return r}Nm.splitWhen=MZe});var Dne=_(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});XP.isEnoentCodeError=void 0;function OZe(t){return t.code==="ENOENT"}XP.isEnoentCodeError=OZe});var Pne=_(ZP=>{"use strict";Object.defineProperty(ZP,"__esModule",{value:!0});ZP.createDirentFromStats=void 0;var wL=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function UZe(t,e){return new wL(t,e)}ZP.createDirentFromStats=UZe});var kne=_(Vi=>{"use strict";Object.defineProperty(Vi,"__esModule",{value:!0});Vi.convertPosixPathToPattern=Vi.convertWindowsPathToPattern=Vi.convertPathToPattern=Vi.escapePosixPath=Vi.escapeWindowsPath=Vi.escape=Vi.removeLeadingDotSegment=Vi.makeAbsolute=Vi.unixify=void 0;var _Ze=ve("os"),HZe=ve("path"),Sne=_Ze.platform()==="win32",qZe=2,jZe=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g,GZe=/(\\?)([()[\]{}]|^!|[!+@](?=\())/g,YZe=/^\\\\([.?])/,WZe=/\\(?![!()+@[\]{}])/g;function KZe(t){return t.replace(/\\/g,"/")}Vi.unixify=KZe;function VZe(t,e){return HZe.resolve(t,e)}Vi.makeAbsolute=VZe;function zZe(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e==="\\")return t.slice(qZe)}return t}Vi.removeLeadingDotSegment=zZe;Vi.escape=Sne?IL:BL;function IL(t){return t.replace(GZe,"\\$2")}Vi.escapeWindowsPath=IL;function BL(t){return t.replace(jZe,"\\$2")}Vi.escapePosixPath=BL;Vi.convertPathToPattern=Sne?bne:xne;function bne(t){return IL(t).replace(YZe,"//$1").replace(WZe,"/")}Vi.convertWindowsPathToPattern=bne;function xne(t){return BL(t)}Vi.convertPosixPathToPattern=xne});var Fne=_((RTt,Qne)=>{Qne.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var Nne=_((TTt,Tne)=>{var JZe=Fne(),Rne={"{":"}","(":")","[":"]"},XZe=function(t){if(t[0]==="!")return!0;for(var e=0,r=-2,o=-2,a=-2,n=-2,u=-2;e<t.length;){if(t[e]==="*"||t[e+1]==="?"&&/[\].+)]/.test(t[e])||o!==-1&&t[e]==="["&&t[e+1]!=="]"&&(o<e&&(o=t.indexOf("]",e)),o>e&&(u===-1||u>o||(u=t.indexOf("\\",e),u===-1||u>o)))||a!==-1&&t[e]==="{"&&t[e+1]!=="}"&&(a=t.indexOf("}",e),a>e&&(u=t.indexOf("\\",e),u===-1||u>a))||n!==-1&&t[e]==="("&&t[e+1]==="?"&&/[:!=]/.test(t[e+2])&&t[e+3]!==")"&&(n=t.indexOf(")",e),n>e&&(u=t.indexOf("\\",e),u===-1||u>n))||r!==-1&&t[e]==="("&&t[e+1]!=="|"&&(r<e&&(r=t.indexOf("|",e)),r!==-1&&t[r+1]!==")"&&(n=t.indexOf(")",r),n>r&&(u=t.indexOf("\\",r),u===-1||u>n))))return!0;if(t[e]==="\\"){var A=t[e+1];e+=2;var p=Rne[A];if(p){var h=t.indexOf(p,e);h!==-1&&(e=h+1)}if(t[e]==="!")return!0}else e++}return!1},ZZe=function(t){if(t[0]==="!")return!0;for(var e=0;e<t.length;){if(/[*?{}()[\]]/.test(t[e]))return!0;if(t[e]==="\\"){var r=t[e+1];e+=2;var o=Rne[r];if(o){var a=t.indexOf(o,e);a!==-1&&(e=a+1)}if(t[e]==="!")return!0}else e++}return!1};Tne.exports=function(e,r){if(typeof e!="string"||e==="")return!1;if(JZe(e))return!0;var o=XZe;return r&&r.strict===!1&&(o=ZZe),o(e)}});var Mne=_((NTt,Lne)=>{"use strict";var $Ze=Nne(),e$e=ve("path").posix.dirname,t$e=ve("os").platform()==="win32",vL="/",r$e=/\\/g,n$e=/[\{\[].*[\}\]]$/,i$e=/(^|[^\\])([\{\[]|\([^\)]+$)/,s$e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;Lne.exports=function(e,r){var o=Object.assign({flipBackslashes:!0},r);o.flipBackslashes&&t$e&&e.indexOf(vL)<0&&(e=e.replace(r$e,vL)),n$e.test(e)&&(e+=vL),e+="a";do e=e$e(e);while($Ze(e)||i$e.test(e));return e.replace(s$e,"$1")}});var Yne=_(Nr=>{"use strict";Object.defineProperty(Nr,"__esModule",{value:!0});Nr.removeDuplicateSlashes=Nr.matchAny=Nr.convertPatternsToRe=Nr.makeRe=Nr.getPatternParts=Nr.expandBraceExpansion=Nr.expandPatternsWithBraceExpansion=Nr.isAffectDepthOfReadingPattern=Nr.endsWithSlashGlobStar=Nr.hasGlobStar=Nr.getBaseDirectory=Nr.isPatternRelatedToParentDirectory=Nr.getPatternsOutsideCurrentDirectory=Nr.getPatternsInsideCurrentDirectory=Nr.getPositivePatterns=Nr.getNegativePatterns=Nr.isPositivePattern=Nr.isNegativePattern=Nr.convertToNegativePattern=Nr.convertToPositivePattern=Nr.isDynamicPattern=Nr.isStaticPattern=void 0;var o$e=ve("path"),a$e=Mne(),DL=$o(),One="**",l$e="\\",c$e=/[*?]|^!/,u$e=/\[[^[]*]/,A$e=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,f$e=/[!*+?@]\([^(]*\)/,p$e=/,|\.\./,h$e=/(?!^)\/{2,}/g;function Une(t,e={}){return!_ne(t,e)}Nr.isStaticPattern=Une;function _ne(t,e={}){return t===""?!1:!!(e.caseSensitiveMatch===!1||t.includes(l$e)||c$e.test(t)||u$e.test(t)||A$e.test(t)||e.extglob!==!1&&f$e.test(t)||e.braceExpansion!==!1&&g$e(t))}Nr.isDynamicPattern=_ne;function g$e(t){let e=t.indexOf("{");if(e===-1)return!1;let r=t.indexOf("}",e+1);if(r===-1)return!1;let o=t.slice(e,r);return p$e.test(o)}function d$e(t){return $P(t)?t.slice(1):t}Nr.convertToPositivePattern=d$e;function m$e(t){return"!"+t}Nr.convertToNegativePattern=m$e;function $P(t){return t.startsWith("!")&&t[1]!=="("}Nr.isNegativePattern=$P;function Hne(t){return!$P(t)}Nr.isPositivePattern=Hne;function y$e(t){return t.filter($P)}Nr.getNegativePatterns=y$e;function E$e(t){return t.filter(Hne)}Nr.getPositivePatterns=E$e;function C$e(t){return t.filter(e=>!PL(e))}Nr.getPatternsInsideCurrentDirectory=C$e;function w$e(t){return t.filter(PL)}Nr.getPatternsOutsideCurrentDirectory=w$e;function PL(t){return t.startsWith("..")||t.startsWith("./..")}Nr.isPatternRelatedToParentDirectory=PL;function I$e(t){return a$e(t,{flipBackslashes:!1})}Nr.getBaseDirectory=I$e;function B$e(t){return t.includes(One)}Nr.hasGlobStar=B$e;function qne(t){return t.endsWith("/"+One)}Nr.endsWithSlashGlobStar=qne;function v$e(t){let e=o$e.basename(t);return qne(t)||Une(e)}Nr.isAffectDepthOfReadingPattern=v$e;function D$e(t){return t.reduce((e,r)=>e.concat(jne(r)),[])}Nr.expandPatternsWithBraceExpansion=D$e;function jne(t){let e=DL.braces(t,{expand:!0,nodupes:!0,keepEscaping:!0});return e.sort((r,o)=>r.length-o.length),e.filter(r=>r!=="")}Nr.expandBraceExpansion=jne;function P$e(t,e){let{parts:r}=DL.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.length===0&&(r=[t]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}Nr.getPatternParts=P$e;function Gne(t,e){return DL.makeRe(t,e)}Nr.makeRe=Gne;function S$e(t,e){return t.map(r=>Gne(r,e))}Nr.convertPatternsToRe=S$e;function b$e(t,e){return e.some(r=>r.test(t))}Nr.matchAny=b$e;function x$e(t){return t.replace(h$e,"/")}Nr.removeDuplicateSlashes=x$e});var zne=_((MTt,Vne)=>{"use strict";var k$e=ve("stream"),Wne=k$e.PassThrough,Q$e=Array.prototype.slice;Vne.exports=F$e;function F$e(){let t=[],e=Q$e.call(arguments),r=!1,o=e[e.length-1];o&&!Array.isArray(o)&&o.pipe==null?e.pop():o={};let a=o.end!==!1,n=o.pipeError===!0;o.objectMode==null&&(o.objectMode=!0),o.highWaterMark==null&&(o.highWaterMark=64*1024);let u=Wne(o);function A(){for(let E=0,I=arguments.length;E<I;E++)t.push(Kne(arguments[E],o));return p(),this}function p(){if(r)return;r=!0;let E=t.shift();if(!E){process.nextTick(h);return}Array.isArray(E)||(E=[E]);let I=E.length+1;function v(){--I>0||(r=!1,p())}function x(C){function R(){C.removeListener("merge2UnpipeEnd",R),C.removeListener("end",R),n&&C.removeListener("error",L),v()}function L(U){u.emit("error",U)}if(C._readableState.endEmitted)return v();C.on("merge2UnpipeEnd",R),C.on("end",R),n&&C.on("error",L),C.pipe(u,{end:!1}),C.resume()}for(let C=0;C<E.length;C++)x(E[C]);v()}function h(){r=!1,u.emit("queueDrain"),a&&u.end()}return u.setMaxListeners(0),u.add=A,u.on("unpipe",function(E){E.emit("merge2UnpipeEnd")}),e.length&&A.apply(null,e),u}function Kne(t,e){if(Array.isArray(t))for(let r=0,o=t.length;r<o;r++)t[r]=Kne(t[r],e);else{if(!t._readableState&&t.pipe&&(t=t.pipe(Wne(e))),!t._readableState||!t.pause||!t.pipe)throw new Error("Only readable stream can be merged.");t.pause()}return t}});var Xne=_(eS=>{"use strict";Object.defineProperty(eS,"__esModule",{value:!0});eS.merge=void 0;var R$e=zne();function T$e(t){let e=R$e(t);return t.forEach(r=>{r.once("error",o=>e.emit("error",o))}),e.once("close",()=>Jne(t)),e.once("end",()=>Jne(t)),e}eS.merge=T$e;function Jne(t){t.forEach(e=>e.emit("close"))}});var Zne=_(Lm=>{"use strict";Object.defineProperty(Lm,"__esModule",{value:!0});Lm.isEmpty=Lm.isString=void 0;function N$e(t){return typeof t=="string"}Lm.isString=N$e;function L$e(t){return t===""}Lm.isEmpty=L$e});var Df=_(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.string=xo.stream=xo.pattern=xo.path=xo.fs=xo.errno=xo.array=void 0;var M$e=vne();xo.array=M$e;var O$e=Dne();xo.errno=O$e;var U$e=Pne();xo.fs=U$e;var _$e=kne();xo.path=_$e;var H$e=Yne();xo.pattern=H$e;var q$e=Xne();xo.stream=q$e;var j$e=Zne();xo.string=j$e});var rie=_(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.convertPatternGroupToTask=ko.convertPatternGroupsToTasks=ko.groupPatternsByBaseDirectory=ko.getNegativePatternsAsPositive=ko.getPositivePatterns=ko.convertPatternsToTasks=ko.generate=void 0;var qc=Df();function G$e(t,e){let r=$ne(t,e),o=$ne(e.ignore,e),a=eie(r),n=tie(r,o),u=a.filter(E=>qc.pattern.isStaticPattern(E,e)),A=a.filter(E=>qc.pattern.isDynamicPattern(E,e)),p=SL(u,n,!1),h=SL(A,n,!0);return p.concat(h)}ko.generate=G$e;function $ne(t,e){let r=t;return e.braceExpansion&&(r=qc.pattern.expandPatternsWithBraceExpansion(r)),e.baseNameMatch&&(r=r.map(o=>o.includes("/")?o:`**/${o}`)),r.map(o=>qc.pattern.removeDuplicateSlashes(o))}function SL(t,e,r){let o=[],a=qc.pattern.getPatternsOutsideCurrentDirectory(t),n=qc.pattern.getPatternsInsideCurrentDirectory(t),u=bL(a),A=bL(n);return o.push(...xL(u,e,r)),"."in A?o.push(kL(".",n,e,r)):o.push(...xL(A,e,r)),o}ko.convertPatternsToTasks=SL;function eie(t){return qc.pattern.getPositivePatterns(t)}ko.getPositivePatterns=eie;function tie(t,e){return qc.pattern.getNegativePatterns(t).concat(e).map(qc.pattern.convertToPositivePattern)}ko.getNegativePatternsAsPositive=tie;function bL(t){let e={};return t.reduce((r,o)=>{let a=qc.pattern.getBaseDirectory(o);return a in r?r[a].push(o):r[a]=[o],r},e)}ko.groupPatternsByBaseDirectory=bL;function xL(t,e,r){return Object.keys(t).map(o=>kL(o,t[o],e,r))}ko.convertPatternGroupsToTasks=xL;function kL(t,e,r,o){return{dynamic:o,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(qc.pattern.convertToNegativePattern))}}ko.convertPatternGroupToTask=kL});var iie=_(tS=>{"use strict";Object.defineProperty(tS,"__esModule",{value:!0});tS.read=void 0;function Y$e(t,e,r){e.fs.lstat(t,(o,a)=>{if(o!==null){nie(r,o);return}if(!a.isSymbolicLink()||!e.followSymbolicLink){QL(r,a);return}e.fs.stat(t,(n,u)=>{if(n!==null){if(e.throwErrorOnBrokenSymbolicLink){nie(r,n);return}QL(r,a);return}e.markSymbolicLink&&(u.isSymbolicLink=()=>!0),QL(r,u)})})}tS.read=Y$e;function nie(t,e){t(e)}function QL(t,e){t(null,e)}});var sie=_(rS=>{"use strict";Object.defineProperty(rS,"__esModule",{value:!0});rS.read=void 0;function W$e(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let o=e.fs.statSync(t);return e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),o}catch(o){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw o}}rS.read=W$e});var oie=_(zp=>{"use strict";Object.defineProperty(zp,"__esModule",{value:!0});zp.createFileSystemAdapter=zp.FILE_SYSTEM_ADAPTER=void 0;var nS=ve("fs");zp.FILE_SYSTEM_ADAPTER={lstat:nS.lstat,stat:nS.stat,lstatSync:nS.lstatSync,statSync:nS.statSync};function K$e(t){return t===void 0?zp.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},zp.FILE_SYSTEM_ADAPTER),t)}zp.createFileSystemAdapter=K$e});var aie=_(RL=>{"use strict";Object.defineProperty(RL,"__esModule",{value:!0});var V$e=oie(),FL=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=V$e.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e??r}};RL.default=FL});var hg=_(Jp=>{"use strict";Object.defineProperty(Jp,"__esModule",{value:!0});Jp.statSync=Jp.stat=Jp.Settings=void 0;var lie=iie(),z$e=sie(),TL=aie();Jp.Settings=TL.default;function J$e(t,e,r){if(typeof e=="function"){lie.read(t,NL(),e);return}lie.read(t,NL(e),r)}Jp.stat=J$e;function X$e(t,e){let r=NL(e);return z$e.read(t,r)}Jp.statSync=X$e;function NL(t={}){return t instanceof TL.default?t:new TL.default(t)}});var Aie=_((KTt,uie)=>{var cie;uie.exports=typeof queueMicrotask=="function"?queueMicrotask.bind(typeof window<"u"?window:global):t=>(cie||(cie=Promise.resolve())).then(t).catch(e=>setTimeout(()=>{throw e},0))});var pie=_((VTt,fie)=>{fie.exports=$$e;var Z$e=Aie();function $$e(t,e){let r,o,a,n=!0;Array.isArray(t)?(r=[],o=t.length):(a=Object.keys(t),r={},o=a.length);function u(p){function h(){e&&e(p,r),e=null}n?Z$e(h):h()}function A(p,h,E){r[p]=E,(--o===0||h)&&u(h)}o?a?a.forEach(function(p){t[p](function(h,E){A(p,h,E)})}):t.forEach(function(p,h){p(function(E,I){A(h,E,I)})}):u(null),n=!1}});var LL=_(sS=>{"use strict";Object.defineProperty(sS,"__esModule",{value:!0});sS.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var iS=process.versions.node.split(".");if(iS[0]===void 0||iS[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var hie=Number.parseInt(iS[0],10),eet=Number.parseInt(iS[1],10),gie=10,tet=10,ret=hie>gie,net=hie===gie&&eet>=tet;sS.IS_SUPPORT_READDIR_WITH_FILE_TYPES=ret||net});var die=_(oS=>{"use strict";Object.defineProperty(oS,"__esModule",{value:!0});oS.createDirentFromStats=void 0;var ML=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function iet(t,e){return new ML(t,e)}oS.createDirentFromStats=iet});var OL=_(aS=>{"use strict";Object.defineProperty(aS,"__esModule",{value:!0});aS.fs=void 0;var set=die();aS.fs=set});var UL=_(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0});lS.joinPathSegments=void 0;function oet(t,e,r){return t.endsWith(r)?t+e:t+r+e}lS.joinPathSegments=oet});var Iie=_(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});Xp.readdir=Xp.readdirWithFileTypes=Xp.read=void 0;var aet=hg(),mie=pie(),cet=LL(),yie=OL(),Eie=UL();function uet(t,e,r){if(!e.stats&&cet.IS_SUPPORT_READDIR_WITH_FILE_TYPES){Cie(t,e,r);return}wie(t,e,r)}Xp.read=uet;function Cie(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(o,a)=>{if(o!==null){cS(r,o);return}let n=a.map(A=>({dirent:A,name:A.name,path:Eie.joinPathSegments(t,A.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){_L(r,n);return}let u=n.map(A=>Aet(A,e));mie(u,(A,p)=>{if(A!==null){cS(r,A);return}_L(r,p)})})}Xp.readdirWithFileTypes=Cie;function Aet(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(o,a)=>{if(o!==null){if(e.throwErrorOnBrokenSymbolicLink){r(o);return}r(null,t);return}t.dirent=yie.fs.createDirentFromStats(t.name,a),r(null,t)})}}function wie(t,e,r){e.fs.readdir(t,(o,a)=>{if(o!==null){cS(r,o);return}let n=a.map(u=>{let A=Eie.joinPathSegments(t,u,e.pathSegmentSeparator);return p=>{aet.stat(A,e.fsStatSettings,(h,E)=>{if(h!==null){p(h);return}let I={name:u,path:A,dirent:yie.fs.createDirentFromStats(u,E)};e.stats&&(I.stats=E),p(null,I)})}});mie(n,(u,A)=>{if(u!==null){cS(r,u);return}_L(r,A)})})}Xp.readdir=wie;function cS(t,e){t(e)}function _L(t,e){t(null,e)}});var Sie=_(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});Zp.readdir=Zp.readdirWithFileTypes=Zp.read=void 0;var fet=hg(),pet=LL(),Bie=OL(),vie=UL();function het(t,e){return!e.stats&&pet.IS_SUPPORT_READDIR_WITH_FILE_TYPES?Die(t,e):Pie(t,e)}Zp.read=het;function Die(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(o=>{let a={dirent:o,name:o.name,path:vie.joinPathSegments(t,o.name,e.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let n=e.fs.statSync(a.path);a.dirent=Bie.fs.createDirentFromStats(a.name,n)}catch(n){if(e.throwErrorOnBrokenSymbolicLink)throw n}return a})}Zp.readdirWithFileTypes=Die;function Pie(t,e){return e.fs.readdirSync(t).map(o=>{let a=vie.joinPathSegments(t,o,e.pathSegmentSeparator),n=fet.statSync(a,e.fsStatSettings),u={name:o,path:a,dirent:Bie.fs.createDirentFromStats(o,n)};return e.stats&&(u.stats=n),u})}Zp.readdir=Pie});var bie=_($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});$p.createFileSystemAdapter=$p.FILE_SYSTEM_ADAPTER=void 0;var Mm=ve("fs");$p.FILE_SYSTEM_ADAPTER={lstat:Mm.lstat,stat:Mm.stat,lstatSync:Mm.lstatSync,statSync:Mm.statSync,readdir:Mm.readdir,readdirSync:Mm.readdirSync};function get(t){return t===void 0?$p.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},$p.FILE_SYSTEM_ADAPTER),t)}$p.createFileSystemAdapter=get});var xie=_(qL=>{"use strict";Object.defineProperty(qL,"__esModule",{value:!0});var det=ve("path"),met=hg(),yet=bie(),HL=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=yet.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,det.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new met.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};qL.default=HL});var uS=_(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});eh.Settings=eh.scandirSync=eh.scandir=void 0;var kie=Iie(),Eet=Sie(),jL=xie();eh.Settings=jL.default;function Cet(t,e,r){if(typeof e=="function"){kie.read(t,YL(),e);return}kie.read(t,YL(e),r)}eh.scandir=Cet;function wet(t,e){let r=YL(e);return Eet.read(t,r)}eh.scandirSync=wet;function YL(t={}){return t instanceof jL.default?t:new jL.default(t)}});var Fie=_((iNt,Qie)=>{"use strict";function Iet(t){var e=new t,r=e;function o(){var n=e;return n.next?e=n.next:(e=new t,r=e),n.next=null,n}function a(n){r.next=n,r=n}return{get:o,release:a}}Qie.exports=Iet});var Tie=_((sNt,WL)=>{"use strict";var Bet=Fie();function Rie(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),!(r>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var o=Bet(vet),a=null,n=null,u=0,A=null,p={push:R,drain:Gl,saturated:Gl,pause:E,paused:!1,get concurrency(){return r},set concurrency(le){if(!(le>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(r=le,!p.paused)for(;a&&u<r;)u++,U()},running:h,resume:x,idle:C,length:I,getQueue:v,unshift:L,empty:Gl,kill:z,killAndDrain:te,error:ae};return p;function h(){return u}function E(){p.paused=!0}function I(){for(var le=a,ce=0;le;)le=le.next,ce++;return ce}function v(){for(var le=a,ce=[];le;)ce.push(le.value),le=le.next;return ce}function x(){if(p.paused){if(p.paused=!1,a===null){u++,U();return}for(;a&&u<r;)u++,U()}}function C(){return u===0&&p.length()===0}function R(le,ce){var Ce=o.get();Ce.context=t,Ce.release=U,Ce.value=le,Ce.callback=ce||Gl,Ce.errorHandler=A,u>=r||p.paused?n?(n.next=Ce,n=Ce):(a=Ce,n=Ce,p.saturated()):(u++,e.call(t,Ce.value,Ce.worked))}function L(le,ce){var Ce=o.get();Ce.context=t,Ce.release=U,Ce.value=le,Ce.callback=ce||Gl,Ce.errorHandler=A,u>=r||p.paused?a?(Ce.next=a,a=Ce):(a=Ce,n=Ce,p.saturated()):(u++,e.call(t,Ce.value,Ce.worked))}function U(le){le&&o.release(le);var ce=a;ce&&u<=r?p.paused?u--:(n===a&&(n=null),a=ce.next,ce.next=null,e.call(t,ce.value,ce.worked),n===null&&p.empty()):--u===0&&p.drain()}function z(){a=null,n=null,p.drain=Gl}function te(){a=null,n=null,p.drain(),p.drain=Gl}function ae(le){A=le}}function Gl(){}function vet(){this.value=null,this.callback=Gl,this.next=null,this.release=Gl,this.context=null,this.errorHandler=null;var t=this;this.worked=function(r,o){var a=t.callback,n=t.errorHandler,u=t.value;t.value=null,t.callback=Gl,t.errorHandler&&n(r,u),a.call(t.context,r,o),t.release(t)}}function Det(t,e,r){typeof t=="function"&&(r=e,e=t,t=null);function o(E,I){e.call(this,E).then(function(v){I(null,v)},I)}var a=Rie(t,o,r),n=a.push,u=a.unshift;return a.push=A,a.unshift=p,a.drained=h,a;function A(E){var I=new Promise(function(v,x){n(E,function(C,R){if(C){x(C);return}v(R)})});return I.catch(Gl),I}function p(E){var I=new Promise(function(v,x){u(E,function(C,R){if(C){x(C);return}v(R)})});return I.catch(Gl),I}function h(){if(a.idle())return new Promise(function(v){v()});var E=a.drain,I=new Promise(function(v){a.drain=function(){E(),v()}});return I}}WL.exports=Rie;WL.exports.promise=Det});var AS=_(Zu=>{"use strict";Object.defineProperty(Zu,"__esModule",{value:!0});Zu.joinPathSegments=Zu.replacePathSegmentSeparator=Zu.isAppliedFilter=Zu.isFatalError=void 0;function Pet(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}Zu.isFatalError=Pet;function bet(t,e){return t===null||t(e)}Zu.isAppliedFilter=bet;function xet(t,e){return t.split(/[/\\]/).join(e)}Zu.replacePathSegmentSeparator=xet;function ket(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}Zu.joinPathSegments=ket});var zL=_(VL=>{"use strict";Object.defineProperty(VL,"__esModule",{value:!0});var Qet=AS(),KL=class{constructor(e,r){this._root=e,this._settings=r,this._root=Qet.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};VL.default=KL});var ZL=_(XL=>{"use strict";Object.defineProperty(XL,"__esModule",{value:!0});var Fet=ve("events"),Ret=uS(),Tet=Tie(),fS=AS(),Net=zL(),JL=class extends Net.default{constructor(e,r){super(e,r),this._settings=r,this._scandir=Ret.scandir,this._emitter=new Fet.EventEmitter,this._queue=Tet(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,r){let o={directory:e,base:r};this._queue.push(o,a=>{a!==null&&this._handleError(a)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(o,a)=>{if(o!==null){r(o,void 0);return}for(let n of a)this._handleEntry(n,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!fS.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let o=e.path;r!==void 0&&(e.path=fS.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),fS.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&fS.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,r===void 0?void 0:e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};XL.default=JL});var Nie=_(eM=>{"use strict";Object.defineProperty(eM,"__esModule",{value:!0});var Let=ZL(),$L=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new Let.default(this._root,this._settings),this._storage=[]}read(e){this._reader.onError(r=>{Met(e,r)}),this._reader.onEntry(r=>{this._storage.push(r)}),this._reader.onEnd(()=>{Oet(e,this._storage)}),this._reader.read()}};eM.default=$L;function Met(t,e){t(e)}function Oet(t,e){t(null,e)}});var Lie=_(rM=>{"use strict";Object.defineProperty(rM,"__esModule",{value:!0});var Uet=ve("stream"),_et=ZL(),tM=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new _et.default(this._root,this._settings),this._stream=new Uet.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};rM.default=tM});var Mie=_(iM=>{"use strict";Object.defineProperty(iM,"__esModule",{value:!0});var Het=uS(),pS=AS(),qet=zL(),nM=class extends qet.default{constructor(){super(...arguments),this._scandir=Het.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let o=this._scandir(e,this._settings.fsScandirSettings);for(let a of o)this._handleEntry(a,r)}catch(o){this._handleError(o)}}_handleError(e){if(pS.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let o=e.path;r!==void 0&&(e.path=pS.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),pS.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&pS.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,r===void 0?void 0:e.path)}_pushToStorage(e){this._storage.push(e)}};iM.default=nM});var Oie=_(oM=>{"use strict";Object.defineProperty(oM,"__esModule",{value:!0});var jet=Mie(),sM=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new jet.default(this._root,this._settings)}read(){return this._reader.read()}};oM.default=sM});var Uie=_(lM=>{"use strict";Object.defineProperty(lM,"__esModule",{value:!0});var Get=ve("path"),Yet=uS(),aM=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,Get.sep),this.fsScandirSettings=new Yet.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};lM.default=aM});var gS=_($u=>{"use strict";Object.defineProperty($u,"__esModule",{value:!0});$u.Settings=$u.walkStream=$u.walkSync=$u.walk=void 0;var _ie=Nie(),Wet=Lie(),Ket=Oie(),cM=Uie();$u.Settings=cM.default;function Vet(t,e,r){if(typeof e=="function"){new _ie.default(t,hS()).read(e);return}new _ie.default(t,hS(e)).read(r)}$u.walk=Vet;function zet(t,e){let r=hS(e);return new Ket.default(t,r).read()}$u.walkSync=zet;function Jet(t,e){let r=hS(e);return new Wet.default(t,r).read()}$u.walkStream=Jet;function hS(t={}){return t instanceof cM.default?t:new cM.default(t)}});var dS=_(AM=>{"use strict";Object.defineProperty(AM,"__esModule",{value:!0});var Xet=ve("path"),Zet=hg(),Hie=Df(),uM=class{constructor(e){this._settings=e,this._fsStatSettings=new Zet.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return Xet.resolve(this._settings.cwd,e)}_makeEntry(e,r){let o={name:r,path:r,dirent:Hie.fs.createDirentFromStats(r,e)};return this._settings.stats&&(o.stats=e),o}_isFatalError(e){return!Hie.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};AM.default=uM});var hM=_(pM=>{"use strict";Object.defineProperty(pM,"__esModule",{value:!0});var $et=ve("stream"),ett=hg(),ttt=gS(),rtt=dS(),fM=class extends rtt.default{constructor(){super(...arguments),this._walkStream=ttt.walkStream,this._stat=ett.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let o=e.map(this._getFullEntryPath,this),a=new $et.PassThrough({objectMode:!0});a._write=(n,u,A)=>this._getEntry(o[n],e[n],r).then(p=>{p!==null&&r.entryFilter(p)&&a.push(p),n===o.length-1&&a.end(),A()}).catch(A);for(let n=0;n<o.length;n++)a.write(n);return a}_getEntry(e,r,o){return this._getStat(e).then(a=>this._makeEntry(a,r)).catch(a=>{if(o.errorFilter(a))return null;throw a})}_getStat(e){return new Promise((r,o)=>{this._stat(e,this._fsStatSettings,(a,n)=>a===null?r(n):o(a))})}};pM.default=fM});var qie=_(dM=>{"use strict";Object.defineProperty(dM,"__esModule",{value:!0});var ntt=gS(),itt=dS(),stt=hM(),gM=class extends itt.default{constructor(){super(...arguments),this._walkAsync=ntt.walk,this._readerStream=new stt.default(this._settings)}dynamic(e,r){return new Promise((o,a)=>{this._walkAsync(e,r,(n,u)=>{n===null?o(u):a(n)})})}async static(e,r){let o=[],a=this._readerStream.static(e,r);return new Promise((n,u)=>{a.once("error",u),a.on("data",A=>o.push(A)),a.once("end",()=>n(o))})}};dM.default=gM});var jie=_(yM=>{"use strict";Object.defineProperty(yM,"__esModule",{value:!0});var LI=Df(),mM=class{constructor(e,r,o){this._patterns=e,this._settings=r,this._micromatchOptions=o,this._storage=[],this._fillStorage()}_fillStorage(){for(let e of this._patterns){let r=this._getPatternSegments(e),o=this._splitSegmentsIntoSections(r);this._storage.push({complete:o.length<=1,pattern:e,segments:r,sections:o})}}_getPatternSegments(e){return LI.pattern.getPatternParts(e,this._micromatchOptions).map(o=>LI.pattern.isDynamicPattern(o,this._settings)?{dynamic:!0,pattern:o,patternRe:LI.pattern.makeRe(o,this._micromatchOptions)}:{dynamic:!1,pattern:o})}_splitSegmentsIntoSections(e){return LI.array.splitWhen(e,r=>r.dynamic&&LI.pattern.hasGlobStar(r.pattern))}};yM.default=mM});var Gie=_(CM=>{"use strict";Object.defineProperty(CM,"__esModule",{value:!0});var ott=jie(),EM=class extends ott.default{match(e){let r=e.split("/"),o=r.length,a=this._storage.filter(n=>!n.complete||n.segments.length>o);for(let n of a){let u=n.sections[0];if(!n.complete&&o>u.length||r.every((p,h)=>{let E=n.segments[h];return!!(E.dynamic&&E.patternRe.test(p)||!E.dynamic&&E.pattern===p)}))return!0}return!1}};CM.default=EM});var Yie=_(IM=>{"use strict";Object.defineProperty(IM,"__esModule",{value:!0});var mS=Df(),att=Gie(),wM=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,o){let a=this._getMatcher(r),n=this._getNegativePatternsRe(o);return u=>this._filter(e,u,a,n)}_getMatcher(e){return new att.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(mS.pattern.isAffectDepthOfReadingPattern);return mS.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,o,a){if(this._isSkippedByDeep(e,r.path)||this._isSkippedSymbolicLink(r))return!1;let n=mS.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(n,o)?!1:this._isSkippedByNegativePatterns(n,a)}_isSkippedByDeep(e,r){return this._settings.deep===1/0?!1:this._getEntryLevel(e,r)>=this._settings.deep}_getEntryLevel(e,r){let o=r.split("/").length;if(e==="")return o;let a=e.split("/").length;return o-a}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!mS.pattern.matchAny(e,r)}};IM.default=wM});var Wie=_(vM=>{"use strict";Object.defineProperty(vM,"__esModule",{value:!0});var gg=Df(),BM=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let o=gg.pattern.convertPatternsToRe(e,this._micromatchOptions),a=gg.pattern.convertPatternsToRe(r,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0}));return n=>this._filter(n,o,a)}_filter(e,r,o){let a=gg.path.removeLeadingDotSegment(e.path);if(this._settings.unique&&this._isDuplicateEntry(a)||this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(a,o))return!1;let n=e.dirent.isDirectory(),u=this._isMatchToPatterns(a,r,n)&&!this._isMatchToPatterns(a,o,n);return this._settings.unique&&u&&this._createIndexRecord(a),u}_isDuplicateEntry(e){return this.index.has(e)}_createIndexRecord(e){this.index.set(e,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let o=gg.path.makeAbsolute(this._settings.cwd,e);return gg.pattern.matchAny(o,r)}_isMatchToPatterns(e,r,o){let a=gg.pattern.matchAny(e,r);return!a&&o?gg.pattern.matchAny(e+"/",r):a}};vM.default=BM});var Kie=_(PM=>{"use strict";Object.defineProperty(PM,"__esModule",{value:!0});var ltt=Df(),DM=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return ltt.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};PM.default=DM});var zie=_(bM=>{"use strict";Object.defineProperty(bM,"__esModule",{value:!0});var Vie=Df(),SM=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=Vie.path.makeAbsolute(this._settings.cwd,r),r=Vie.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};bM.default=SM});var yS=_(kM=>{"use strict";Object.defineProperty(kM,"__esModule",{value:!0});var ctt=ve("path"),utt=Yie(),Att=Wie(),ftt=Kie(),ptt=zie(),xM=class{constructor(e){this._settings=e,this.errorFilter=new ftt.default(this._settings),this.entryFilter=new Att.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new utt.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new ptt.default(this._settings)}_getRootDirectory(e){return ctt.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};kM.default=xM});var Jie=_(FM=>{"use strict";Object.defineProperty(FM,"__esModule",{value:!0});var htt=qie(),gtt=yS(),QM=class extends gtt.default{constructor(){super(...arguments),this._reader=new htt.default(this._settings)}async read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return(await this.api(r,e,o)).map(n=>o.transform(n))}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};FM.default=QM});var Xie=_(TM=>{"use strict";Object.defineProperty(TM,"__esModule",{value:!0});var dtt=ve("stream"),mtt=hM(),ytt=yS(),RM=class extends ytt.default{constructor(){super(...arguments),this._reader=new mtt.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e),a=this.api(r,e,o),n=new dtt.Readable({objectMode:!0,read:()=>{}});return a.once("error",u=>n.emit("error",u)).on("data",u=>n.emit("data",o.transform(u))).once("end",()=>n.emit("end")),n.once("close",()=>a.destroy()),n}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};TM.default=RM});var Zie=_(LM=>{"use strict";Object.defineProperty(LM,"__esModule",{value:!0});var Ett=hg(),Ctt=gS(),wtt=dS(),NM=class extends wtt.default{constructor(){super(...arguments),this._walkSync=Ctt.walkSync,this._statSync=Ett.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let o=[];for(let a of e){let n=this._getFullEntryPath(a),u=this._getEntry(n,a,r);u===null||!r.entryFilter(u)||o.push(u)}return o}_getEntry(e,r,o){try{let a=this._getStat(e);return this._makeEntry(a,r)}catch(a){if(o.errorFilter(a))return null;throw a}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};LM.default=NM});var $ie=_(OM=>{"use strict";Object.defineProperty(OM,"__esModule",{value:!0});var Itt=Zie(),Btt=yS(),MM=class extends Btt.default{constructor(){super(...arguments),this._reader=new Itt.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return this.api(r,e,o).map(o.transform)}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};OM.default=MM});var ese=_(Um=>{"use strict";Object.defineProperty(Um,"__esModule",{value:!0});Um.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var Om=ve("fs"),vtt=ve("os"),Dtt=Math.max(vtt.cpus().length,1);Um.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Om.lstat,lstatSync:Om.lstatSync,stat:Om.stat,statSync:Om.statSync,readdir:Om.readdir,readdirSync:Om.readdirSync};var UM=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,Dtt),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0),this.ignore=[].concat(this.ignore)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},Um.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};Um.default=UM});var ES=_((kNt,rse)=>{"use strict";var tse=rie(),Ptt=Jie(),Stt=Xie(),btt=$ie(),_M=ese(),Yl=Df();async function HM(t,e){jc(t);let r=qM(t,Ptt.default,e),o=await Promise.all(r);return Yl.array.flatten(o)}(function(t){t.glob=t,t.globSync=e,t.globStream=r,t.async=t;function e(h,E){jc(h);let I=qM(h,btt.default,E);return Yl.array.flatten(I)}t.sync=e;function r(h,E){jc(h);let I=qM(h,Stt.default,E);return Yl.stream.merge(I)}t.stream=r;function o(h,E){jc(h);let I=[].concat(h),v=new _M.default(E);return tse.generate(I,v)}t.generateTasks=o;function a(h,E){jc(h);let I=new _M.default(E);return Yl.pattern.isDynamicPattern(h,I)}t.isDynamicPattern=a;function n(h){return jc(h),Yl.path.escape(h)}t.escapePath=n;function u(h){return jc(h),Yl.path.convertPathToPattern(h)}t.convertPathToPattern=u;let A;(function(h){function E(v){return jc(v),Yl.path.escapePosixPath(v)}h.escapePath=E;function I(v){return jc(v),Yl.path.convertPosixPathToPattern(v)}h.convertPathToPattern=I})(A=t.posix||(t.posix={}));let p;(function(h){function E(v){return jc(v),Yl.path.escapeWindowsPath(v)}h.escapePath=E;function I(v){return jc(v),Yl.path.convertWindowsPathToPattern(v)}h.convertPathToPattern=I})(p=t.win32||(t.win32={}))})(HM||(HM={}));function qM(t,e,r){let o=[].concat(t),a=new _M.default(r),n=tse.generate(o,a),u=new e(a);return n.map(u.read,u)}function jc(t){if(![].concat(t).every(o=>Yl.string.isString(o)&&!Yl.string.isEmpty(o)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}rse.exports=HM});var wn={};Vt(wn,{checksumFile:()=>wS,checksumPattern:()=>IS,makeHash:()=>zi});function zi(...t){let e=(0,CS.createHash)("sha512"),r="";for(let o of t)typeof o=="string"?r+=o:o&&(r&&(e.update(r),r=""),e.update(o));return r&&e.update(r),e.digest("hex")}async function wS(t,{baseFs:e,algorithm:r}={baseFs:oe,algorithm:"sha512"}){let o=await e.openPromise(t,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,CS.createHash)(r),A=0;for(;(A=await e.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await e.closePromise(o)}}async function IS(t,{cwd:e}){let o=(await(0,jM.default)(t,{cwd:ue.fromPortablePath(e),onlyDirectories:!0})).map(A=>`${A}/**/*`),a=await(0,jM.default)([t,...o],{cwd:ue.fromPortablePath(e),onlyFiles:!1});a.sort();let n=await Promise.all(a.map(async A=>{let p=[Buffer.from(A)],h=K.join(e,ue.toPortablePath(A)),E=await oe.lstatPromise(h);return E.isSymbolicLink()?p.push(Buffer.from(await oe.readlinkPromise(h))):E.isFile()&&p.push(await oe.readFilePromise(h)),p.join("\0")})),u=(0,CS.createHash)("sha512");for(let A of n)u.update(A);return u.digest("hex")}var CS,jM,th=Et(()=>{Pt();CS=ve("crypto"),jM=Ze(ES())});var G={};Vt(G,{allPeerRequests:()=>WI,areDescriptorsEqual:()=>ase,areIdentsEqual:()=>HI,areLocatorsEqual:()=>qI,areVirtualPackagesEquivalent:()=>Mtt,bindDescriptor:()=>Ntt,bindLocator:()=>Ltt,convertDescriptorToLocator:()=>BS,convertLocatorToDescriptor:()=>YM,convertPackageToLocator:()=>Ftt,convertToIdent:()=>Qtt,convertToManifestRange:()=>Ktt,copyPackage:()=>OI,devirtualizeDescriptor:()=>UI,devirtualizeLocator:()=>_I,ensureDevirtualizedDescriptor:()=>Rtt,ensureDevirtualizedLocator:()=>Ttt,getIdentVendorPath:()=>zM,isPackageCompatible:()=>bS,isVirtualDescriptor:()=>Pf,isVirtualLocator:()=>Gc,makeDescriptor:()=>In,makeIdent:()=>eA,makeLocator:()=>Rs,makeRange:()=>PS,parseDescriptor:()=>rh,parseFileStyleRange:()=>Ytt,parseIdent:()=>ea,parseLocator:()=>Sf,parseRange:()=>dg,prettyDependent:()=>CL,prettyDescriptor:()=>jn,prettyIdent:()=>Oi,prettyLocator:()=>qr,prettyLocatorNoColors:()=>EL,prettyRange:()=>qm,prettyReference:()=>GI,prettyResolution:()=>NI,prettyWorkspace:()=>YI,renamePackage:()=>WM,slugifyIdent:()=>GM,slugifyLocator:()=>Hm,sortDescriptors:()=>jm,stringifyDescriptor:()=>xa,stringifyIdent:()=>rn,stringifyLocator:()=>ka,tryParseDescriptor:()=>jI,tryParseIdent:()=>lse,tryParseLocator:()=>DS,tryParseRange:()=>Gtt,virtualizeDescriptor:()=>KM,virtualizePackage:()=>VM});function eA(t,e){if(t?.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:zi(t,e),scope:t,name:e}}function In(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:zi(t.identHash,e),range:e}}function Rs(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:zi(t.identHash,e),reference:e}}function Qtt(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function BS(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function YM(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function Ftt(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function WM(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function OI(t){return WM(t,t)}function KM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return In(t,`virtual:${e}#${t.range}`)}function VM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return WM(t,Rs(t,`virtual:${e}#${t.reference}`))}function Pf(t){return t.range.startsWith(MI)}function Gc(t){return t.reference.startsWith(MI)}function UI(t){if(!Pf(t))throw new Error("Not a virtual descriptor");return In(t,t.range.replace(vS,""))}function _I(t){if(!Gc(t))throw new Error("Not a virtual descriptor");return Rs(t,t.reference.replace(vS,""))}function Rtt(t){return Pf(t)?In(t,t.range.replace(vS,"")):t}function Ttt(t){return Gc(t)?Rs(t,t.reference.replace(vS,"")):t}function Ntt(t,e){return t.range.includes("::")?t:In(t,`${t.range}::${_m.default.stringify(e)}`)}function Ltt(t,e){return t.reference.includes("::")?t:Rs(t,`${t.reference}::${_m.default.stringify(e)}`)}function HI(t,e){return t.identHash===e.identHash}function ase(t,e){return t.descriptorHash===e.descriptorHash}function qI(t,e){return t.locatorHash===e.locatorHash}function Mtt(t,e){if(!Gc(t))throw new Error("Invalid package type");if(!Gc(e))throw new Error("Invalid package type");if(!HI(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let o=e.dependencies.get(r.identHash);if(!o||!ase(r,o))return!1}return!0}function ea(t){let e=lse(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function lse(t){let e=t.match(Ott);if(!e)return null;let[,r,o]=e;return eA(typeof r<"u"?r:null,o)}function rh(t,e=!1){let r=jI(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function jI(t,e=!1){let r=e?t.match(Utt):t.match(_tt);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid range (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return In(eA(u,a),A)}function Sf(t,e=!1){let r=DS(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function DS(t,e=!1){let r=e?t.match(Htt):t.match(qtt);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid reference (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return Rs(eA(u,a),A)}function dg(t,e){let r=t.match(jtt);if(r===null)throw new Error(`Invalid range (${t})`);let o=typeof r[1]<"u"?r[1]:null;if(typeof e?.requireProtocol=="string"&&o!==e.requireProtocol)throw new Error(`Invalid protocol (${o})`);if(e?.requireProtocol&&o===null)throw new Error(`Missing protocol (${o})`);let a=typeof r[3]<"u"?decodeURIComponent(r[2]):null;if(e?.requireSource&&a===null)throw new Error(`Missing source (${t})`);let n=typeof r[3]<"u"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),u=e?.parseSelector?_m.default.parse(n):n,A=typeof r[4]<"u"?_m.default.parse(r[4]):null;return{protocol:o,source:a,selector:u,params:A}}function Gtt(t,e){try{return dg(t,e)}catch{return null}}function Ytt(t,{protocol:e}){let{selector:r,params:o}=dg(t,{requireProtocol:e,requireBindings:!0});if(typeof o.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:Sf(o.locator,!0),path:r}}function nse(t){return t=t.replaceAll("%","%25"),t=t.replaceAll(":","%3A"),t=t.replaceAll("#","%23"),t}function Wtt(t){return t===null?!1:Object.entries(t).length>0}function PS({protocol:t,source:e,selector:r,params:o}){let a="";return t!==null&&(a+=`${t}`),e!==null&&(a+=`${nse(e)}#`),a+=nse(r),Wtt(o)&&(a+=`::${_m.default.stringify(o)}`),a}function Ktt(t){let{params:e,protocol:r,source:o,selector:a}=dg(t);for(let n in e)n.startsWith("__")&&delete e[n];return PS({protocol:r,source:o,params:e,selector:a})}function rn(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function xa(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function ka(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function GM(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function Hm(t){let{protocol:e,selector:r}=dg(t.reference),o=e!==null?e.replace(Vtt,""):"exotic",a=ise.default.valid(r),n=a!==null?`${o}-${a}`:`${o}`,u=10;return t.scope?`${GM(t)}-${n}-${t.locatorHash.slice(0,u)}`:`${GM(t)}-${n}-${t.locatorHash.slice(0,u)}`}function Oi(t,e){return e.scope?`${Ot(t,`@${e.scope}/`,yt.SCOPE)}${Ot(t,e.name,yt.NAME)}`:`${Ot(t,e.name,yt.NAME)}`}function SS(t){if(t.startsWith(MI)){let e=SS(t.substring(t.indexOf("#")+1)),r=t.substring(MI.length,MI.length+xtt);return`${e} [${r}]`}else return t.replace(ztt,"?[...]")}function qm(t,e){return`${Ot(t,SS(e),yt.RANGE)}`}function jn(t,e){return`${Oi(t,e)}${Ot(t,"@",yt.RANGE)}${qm(t,e.range)}`}function GI(t,e){return`${Ot(t,SS(e),yt.REFERENCE)}`}function qr(t,e){return`${Oi(t,e)}${Ot(t,"@",yt.REFERENCE)}${GI(t,e.reference)}`}function EL(t){return`${rn(t)}@${SS(t.reference)}`}function jm(t){return Fs(t,[e=>rn(e),e=>e.range])}function YI(t,e){return Oi(t,e.anchoredLocator)}function NI(t,e,r){let o=Pf(e)?UI(e):e;return r===null?`${jn(t,o)} \u2192 ${yL(t).Cross}`:o.identHash===r.identHash?`${jn(t,o)} \u2192 ${GI(t,r.reference)}`:`${jn(t,o)} \u2192 ${qr(t,r)}`}function CL(t,e,r){return r===null?`${qr(t,e)}`:`${qr(t,e)} (via ${qm(t,r.range)})`}function zM(t){return`node_modules/${rn(t)}`}function bS(t,e){return t.conditions?ktt(t.conditions,r=>{let[,o,a]=r.match(ose),n=e[o];return n?n.includes(a):!0}):!0}function WI(t){let e=new Set;if("children"in t)e.add(t);else for(let r of t.requests.values())e.add(r);for(let r of e)for(let o of r.children.values())e.add(o);return e}var _m,ise,sse,MI,xtt,ose,ktt,vS,Ott,Utt,_tt,Htt,qtt,jtt,Vtt,ztt,bo=Et(()=>{_m=Ze(ve("querystring")),ise=Ze(Jn()),sse=Ze(eX());jl();th();ql();bo();MI="virtual:",xtt=5,ose=/(os|cpu|libc)=([a-z0-9_-]+)/,ktt=(0,sse.makeParser)(ose);vS=/^[^#]*#/;Ott=/^(?:@([^/]+?)\/)?([^@/]+)$/;Utt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,_tt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;Htt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,qtt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;jtt=/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/;Vtt=/:$/;ztt=/\?.*/});var cse,use=Et(()=>{bo();cse={hooks:{reduceDependency:(t,e,r,o,{resolver:a,resolveOptions:n})=>{for(let{pattern:u,reference:A}of e.topLevelWorkspace.manifest.resolutions){if(u.from&&(u.from.fullName!==rn(r)||e.configuration.normalizeLocator(Rs(ea(u.from.fullName),u.from.description??r.reference)).locatorHash!==r.locatorHash)||u.descriptor.fullName!==rn(t)||e.configuration.normalizeDependency(In(Sf(u.descriptor.fullName),u.descriptor.description??t.range)).descriptorHash!==t.descriptorHash)continue;return a.bindDescriptor(e.configuration.normalizeDependency(In(t,A)),e.topLevelWorkspace.anchoredLocator,n)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let o=YI(t.configuration,r);await t.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,n)=>e.reportWarning(a,`${o}: ${n}`),reportError:(a,n)=>e.reportError(a,`${o}: ${n}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let o of r.errors)e.reportWarning(57,o.message)}}}});var ei,mg=Et(()=>{ei=class t{static{this.protocol="workspace:"}supportsDescriptor(e,r){return!!(e.range.startsWith(t.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith(t.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[o.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.getWorkspaceByCwd(e.reference.slice(t.protocol.length));return{...e,version:o.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...o.manifest.dependencies,...o.manifest.devDependencies])),peerDependencies:new Map([...o.manifest.peerDependencies]),dependenciesMeta:o.manifest.dependenciesMeta,peerDependenciesMeta:o.manifest.peerDependenciesMeta,bin:o.manifest.bin}}}});var Lr={};Vt(Lr,{SemVer:()=>gse.SemVer,clean:()=>Xtt,getComparator:()=>pse,mergeComparators:()=>JM,satisfiesWithPrereleases:()=>tA,simplifyRanges:()=>XM,stringifyComparator:()=>hse,validRange:()=>Qa});function tA(t,e,r=!1){if(!t)return!1;let o=`${e}${r}`,a=Ase.get(o);if(typeof a>"u")try{a=new nh.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{Ase.set(o,a||null)}else if(a===null)return!1;let n;try{n=new nh.default.SemVer(t,a)}catch{return!1}return a.test(n)?!0:(n.prerelease&&(n.prerelease=[]),a.set.some(u=>{for(let A of u)A.semver.prerelease&&(A.semver.prerelease=[]);return u.every(A=>A.test(n))}))}function Qa(t){if(t.indexOf(":")!==-1)return null;let e=fse.get(t);if(typeof e<"u")return e;try{e=new nh.default.Range(t)}catch{e=null}return fse.set(t,e),e}function Xtt(t){let e=Jtt.exec(t);return e?e[1]:null}function pse(t){if(t.semver===nh.default.Comparator.ANY)return{gt:null,lt:null};switch(t.operator){case"":return{gt:[">=",t.semver],lt:["<=",t.semver]};case">":case">=":return{gt:[t.operator,t.semver],lt:null};case"<":case"<=":return{gt:null,lt:[t.operator,t.semver]};default:throw new Error(`Assertion failed: Unexpected comparator operator (${t.operator})`)}}function JM(t){if(t.length===0)return null;let e=null,r=null;for(let o of t){if(o.gt){let a=e!==null?nh.default.compare(o.gt[1],e[1]):null;(a===null||a>0||a===0&&o.gt[0]===">")&&(e=o.gt)}if(o.lt){let a=r!==null?nh.default.compare(o.lt[1],r[1]):null;(a===null||a<0||a===0&&o.lt[0]==="<")&&(r=o.lt)}}if(e&&r){let o=nh.default.compare(e[1],r[1]);if(o===0&&(e[0]===">"||r[0]==="<")||o>0)return null}return{gt:e,lt:r}}function hse(t){if(t.gt&&t.lt){if(t.gt[0]===">="&&t.lt[0]==="<="&&t.gt[1].version===t.lt[1].version)return t.gt[1].version;if(t.gt[0]===">="&&t.lt[0]==="<"){if(t.lt[1].version===`${t.gt[1].major+1}.0.0-0`)return`^${t.gt[1].version}`;if(t.lt[1].version===`${t.gt[1].major}.${t.gt[1].minor+1}.0-0`)return`~${t.gt[1].version}`}}let e=[];return t.gt&&e.push(t.gt[0]+t.gt[1].version),t.lt&&e.push(t.lt[0]+t.lt[1].version),e.length?e.join(" "):"*"}function XM(t){let e=t.map(o=>Qa(o).set.map(a=>a.map(n=>pse(n)))),r=e.shift().map(o=>JM(o)).filter(o=>o!==null);for(let o of e){let a=[];for(let n of r)for(let u of o){let A=JM([n,...u]);A!==null&&a.push(A)}r=a}return r.length===0?null:r.map(o=>hse(o)).join(" || ")}var nh,gse,Ase,fse,Jtt,bf=Et(()=>{nh=Ze(Jn()),gse=Ze(Jn()),Ase=new Map;fse=new Map;Jtt=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/});function dse(t){let e=t.match(/^[ \t]+/m);return e?e[0]:" "}function mse(t){return t.charCodeAt(0)===65279?t.slice(1):t}function ta(t){return t.replace(/\\/g,"/")}function xS(t,{yamlCompatibilityMode:e}){return e?AL(t):typeof t>"u"||typeof t=="boolean"?t:null}function yse(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let o=r%2===0?"":"!",a=e.slice(r);return`${o}${t}=${a}`}function ZM(t,e){return e.length===1?yse(t,e[0]):`(${e.map(r=>yse(t,r)).join(" | ")})`}var Ese,Ut,Gm=Et(()=>{Pt();Nl();Ese=Ze(Jn());mg();ql();bf();bo();Ut=class t{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static{this.fileName="package.json"}static{this.allDependencies=["dependencies","devDependencies","peerDependencies"]}static{this.hardDependencies=["dependencies","devDependencies"]}static async tryFind(e,{baseFs:r=new Tn}={}){let o=K.join(e,"package.json");try{return await t.fromFile(o,{baseFs:r})}catch(a){if(a.code==="ENOENT")return null;throw a}}static async find(e,{baseFs:r}={}){let o=await t.tryFind(e,{baseFs:r});if(o===null)throw new Error("Manifest not found");return o}static async fromFile(e,{baseFs:r=new Tn}={}){let o=new t;return await o.loadFile(e,{baseFs:r}),o}static fromText(e){let r=new t;return r.loadFromText(e),r}loadFromText(e){let r;try{r=JSON.parse(mse(e)||"{}")}catch(o){throw o.message+=` (when parsing ${e})`,o}this.load(r),this.indent=dse(e)}async loadFile(e,{baseFs:r=new Tn}){let o=await r.readFilePromise(e,"utf8"),a;try{a=JSON.parse(mse(o)||"{}")}catch(n){throw n.message+=` (when parsing ${e})`,n}this.load(a),this.indent=dse(o)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let o=[];if(this.name=null,typeof e.name=="string")try{this.name=ea(e.name)}catch{o.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let n=[];this.os=n;for(let u of e.os)typeof u!="string"?o.push(new Error("Parsing failed for the 'os' field")):n.push(u)}else this.os=null;if(Array.isArray(e.cpu)){let n=[];this.cpu=n;for(let u of e.cpu)typeof u!="string"?o.push(new Error("Parsing failed for the 'cpu' field")):n.push(u)}else this.cpu=null;if(Array.isArray(e.libc)){let n=[];this.libc=n;for(let u of e.libc)typeof u!="string"?o.push(new Error("Parsing failed for the 'libc' field")):n.push(u)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=ta(e.main):this.main=null,typeof e.module=="string"?this.module=ta(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=ta(e.browser);else{this.browser=new Map;for(let[n,u]of Object.entries(e.browser))this.browser.set(ta(n),typeof u=="string"?ta(u):u)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?o.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,ta(e.bin)):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[n,u]of Object.entries(e.bin)){if(typeof u!="string"||u.trim()===""){o.push(new Error(`Invalid bin definition for '${n}'`));continue}let A=ea(n);this.bin.set(A.name,ta(u))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[n,u]of Object.entries(e.scripts)){if(typeof u!="string"){o.push(new Error(`Invalid script definition for '${n}'`));continue}this.scripts.set(n,u)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[n,u]of Object.entries(e.dependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=ea(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=In(A,u);this.dependencies.set(p.identHash,p)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[n,u]of Object.entries(e.devDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=ea(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=In(A,u);this.devDependencies.set(p.identHash,p)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[n,u]of Object.entries(e.peerDependencies)){let A;try{A=ea(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}(typeof u!="string"||!u.startsWith(ei.protocol)&&!Qa(u))&&(o.push(new Error(`Invalid dependency range for '${n}'`)),u="*");let p=In(A,u);this.peerDependencies.set(p.identHash,p)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&o.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let a=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let n of a){if(typeof n!="string"){o.push(new Error(`Invalid workspace definition for '${n}'`));continue}this.workspaceDefinitions.push({pattern:n})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[n,u]of Object.entries(e.dependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}`));continue}let A=rh(n),p=this.ensureDependencyMeta(A),h=xS(u.built,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid built meta field for '${n}'`));continue}let E=xS(u.optional,{yamlCompatibilityMode:r});if(E===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}let I=xS(u.unplugged,{yamlCompatibilityMode:r});if(I===null){o.push(new Error(`Invalid unplugged meta field for '${n}'`));continue}Object.assign(p,{built:h,optional:E,unplugged:I})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[n,u]of Object.entries(e.peerDependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}'`));continue}let A=rh(n),p=this.ensurePeerDependencyMeta(A),h=xS(u.optional,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}Object.assign(p,{optional:h})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[n,u]of Object.entries(e.resolutions)){if(typeof u!="string"){o.push(new Error(`Invalid resolution entry for '${n}'`));continue}try{this.resolutions.push({pattern:BD(n),reference:u})}catch(A){o.push(A);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let n of e.files){if(typeof n!="string"){o.push(new Error(`Invalid files entry for '${n}'`));continue}this.files.add(n)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=ta(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=ta(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=ta(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[n,u]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(ta(n),typeof u=="string"?ta(u):u)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,ta(e.publishConfig.bin)]]):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[n,u]of Object.entries(e.publishConfig.bin)){if(typeof u!="string"){o.push(new Error(`Invalid bin definition for '${n}'`));continue}this.publishConfig.bin.set(n,ta(u))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let n of e.publishConfig.executableFiles){if(typeof n!="string"){o.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(ta(n))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let n of Object.keys(e.installConfig))n==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:o.push(new Error("Invalid hoisting limits definition")):n=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:o.push(new Error("Invalid selfReferences definition, must be a boolean value")):o.push(new Error(`Unrecognized installConfig key: ${n}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[n,u]of Object.entries(e.optionalDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=ea(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=In(A,u);this.dependencies.set(p.identHash,p);let h=In(A,"unknown"),E=this.ensureDependencyMeta(h);Object.assign(E,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=o}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(ZM("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(ZM("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(ZM("libc",this.libc)),e.length>0?e.join(" & "):null}ensureDependencyMeta(e){if(e.range!=="unknown"&&!Ese.default.valid(e.range))throw new Error(`Invalid meta field range for '${xa(e)}'`);let r=rn(e),o=e.range!=="unknown"?e.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let n=a.get(o);return n||a.set(o,n={}),n}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${xa(e)}'`);let r=rn(e),o=this.peerDependenciesMeta.get(r);return o||this.peerDependenciesMeta.set(r,o={}),o}setRawField(e,r,{after:o=[]}={}){let a=new Set(o.filter(n=>Object.hasOwn(this.raw,n)));if(a.size===0||Object.hasOwn(this.raw,e))this.raw[e]=r;else{let n=this.raw,u=this.raw={},A=!1;for(let p of Object.keys(n))u[p]=n[p],A||(a.delete(p),a.size===0&&(u[e]=r,A=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){if(Object.assign(e,this.raw),this.name!==null?e.name=rn(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let n=this.browser;typeof n=="string"?e.browser=n:n instanceof Map&&(e.browser=Object.assign({},...Array.from(n.keys()).sort().map(u=>({[u]:n.get(u)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(n=>({[n]:this.bin.get(n)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:n})=>n)}:e.workspaces=this.workspaceDefinitions.map(({pattern:n})=>n):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let o=[],a=[];for(let n of this.dependencies.values()){let u=this.dependenciesMeta.get(rn(n)),A=!1;if(r&&u){let p=u.get(null);p&&p.optional&&(A=!0)}A?a.push(n):o.push(n)}o.length>0?e.dependencies=Object.assign({},...jm(o).map(n=>({[rn(n)]:n.range}))):delete e.dependencies,a.length>0?e.optionalDependencies=Object.assign({},...jm(a).map(n=>({[rn(n)]:n.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...jm(this.devDependencies.values()).map(n=>({[rn(n)]:n.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...jm(this.peerDependencies.values()).map(n=>({[rn(n)]:n.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[n,u]of Fs(this.dependenciesMeta.entries(),([A,p])=>A))for(let[A,p]of Fs(u.entries(),([h,E])=>h!==null?`0${h}`:"1")){let h=A!==null?xa(In(ea(n),A)):n,E={...p};r&&A===null&&delete E.optional,Object.keys(E).length!==0&&(e.dependenciesMeta[h]=E)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...Fs(this.peerDependenciesMeta.entries(),([n,u])=>n).map(([n,u])=>({[n]:u}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:n,reference:u})=>({[vD(n)]:u}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){e.scripts??={};for(let n of Object.keys(e.scripts))this.scripts.has(n)||delete e.scripts[n];for(let[n,u]of this.scripts.entries())e.scripts[n]=u}else delete e.scripts;return e}}});var wse=_((YNt,Cse)=>{var Ztt=_l(),$tt=function(){return Ztt.Date.now()};Cse.exports=$tt});var Bse=_((WNt,Ise)=>{var ert=/\s/;function trt(t){for(var e=t.length;e--&&ert.test(t.charAt(e)););return e}Ise.exports=trt});var Dse=_((KNt,vse)=>{var rrt=Bse(),nrt=/^\s+/;function irt(t){return t&&t.slice(0,rrt(t)+1).replace(nrt,"")}vse.exports=irt});var Ym=_((VNt,Pse)=>{var srt=cg(),ort=Ju(),art="[object Symbol]";function lrt(t){return typeof t=="symbol"||ort(t)&&srt(t)==art}Pse.exports=lrt});var kse=_((zNt,xse)=>{var crt=Dse(),Sse=sl(),urt=Ym(),bse=NaN,Art=/^[-+]0x[0-9a-f]+$/i,frt=/^0b[01]+$/i,prt=/^0o[0-7]+$/i,hrt=parseInt;function grt(t){if(typeof t=="number")return t;if(urt(t))return bse;if(Sse(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Sse(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=crt(t);var r=frt.test(t);return r||prt.test(t)?hrt(t.slice(2),r?2:8):Art.test(t)?bse:+t}xse.exports=grt});var Rse=_((JNt,Fse)=>{var drt=sl(),$M=wse(),Qse=kse(),mrt="Expected a function",yrt=Math.max,Ert=Math.min;function Crt(t,e,r){var o,a,n,u,A,p,h=0,E=!1,I=!1,v=!0;if(typeof t!="function")throw new TypeError(mrt);e=Qse(e)||0,drt(r)&&(E=!!r.leading,I="maxWait"in r,n=I?yrt(Qse(r.maxWait)||0,e):n,v="trailing"in r?!!r.trailing:v);function x(ce){var Ce=o,de=a;return o=a=void 0,h=ce,u=t.apply(de,Ce),u}function C(ce){return h=ce,A=setTimeout(U,e),E?x(ce):u}function R(ce){var Ce=ce-p,de=ce-h,Be=e-Ce;return I?Ert(Be,n-de):Be}function L(ce){var Ce=ce-p,de=ce-h;return p===void 0||Ce>=e||Ce<0||I&&de>=n}function U(){var ce=$M();if(L(ce))return z(ce);A=setTimeout(U,R(ce))}function z(ce){return A=void 0,v&&o?x(ce):(o=a=void 0,u)}function te(){A!==void 0&&clearTimeout(A),h=0,o=p=a=A=void 0}function ae(){return A===void 0?u:z($M())}function le(){var ce=$M(),Ce=L(ce);if(o=arguments,a=this,p=ce,Ce){if(A===void 0)return C(p);if(I)return clearTimeout(A),A=setTimeout(U,e),x(p)}return A===void 0&&(A=setTimeout(U,e)),u}return le.cancel=te,le.flush=ae,le}Fse.exports=Crt});var eO=_((XNt,Tse)=>{var wrt=Rse(),Irt=sl(),Brt="Expected a function";function vrt(t,e,r){var o=!0,a=!0;if(typeof t!="function")throw new TypeError(Brt);return Irt(r)&&(o="leading"in r?!!r.leading:o,a="trailing"in r?!!r.trailing:a),wrt(t,e,{leading:o,maxWait:e,trailing:a})}Tse.exports=vrt});function Prt(t){return typeof t.reportCode<"u"}var Nse,Lse,Mse,Drt,Jt,Zs,Wl=Et(()=>{Nse=Ze(eO()),Lse=ve("stream"),Mse=ve("string_decoder"),Drt=15,Jt=class extends Error{constructor(r,o,a){super(o);this.reportExtra=a;this.reportCode=r}};Zs=class{constructor(){this.cacheHits=new Set;this.cacheMisses=new Set;this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}getRecommendedLength(){return 180}reportCacheHit(e){this.cacheHits.add(e.locatorHash)}reportCacheMiss(e,r){this.cacheMisses.add(e.locatorHash)}static progressViaCounter(e){let r=0,o,a=new Promise(p=>{o=p}),n=p=>{let h=o;a=new Promise(E=>{o=E}),r=p,h()},u=(p=0)=>{n(r+1)},A=async function*(){for(;r<e;)await a,yield{progress:r/e}}();return{[Symbol.asyncIterator](){return A},hasProgress:!0,hasTitle:!1,set:n,tick:u}}static progressViaTitle(){let e,r,o=new Promise(u=>{r=u}),a=(0,Nse.default)(u=>{let A=r;o=new Promise(p=>{r=p}),e=u,A()},1e3/Drt),n=async function*(){for(;;)await o,yield{title:e}}();return{[Symbol.asyncIterator](){return n},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(e,r){let o=this.reportProgress(e);try{return await r(e)}finally{o.stop()}}startProgressSync(e,r){let o=this.reportProgress(e);try{return r(e)}finally{o.stop()}}reportInfoOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(e,r),o?.reportExtra?.(this))}reportWarningOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(e,r),o?.reportExtra?.(this))}reportErrorOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(e,r),o?.reportExtra?.(this))}reportExceptionOnce(e){Prt(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let r=new Lse.PassThrough,o=new Mse.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(` -`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",e!==null?this.reportInfo(null,`${e} ${p}`):this.reportInfo(null,p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&(e!==null?this.reportInfo(null,`${e} ${n}`):this.reportInfo(null,n))}),r}}});var Wm,tO=Et(()=>{Wl();bo();Wm=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));return o||null}getFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));if(!o)throw new Jt(11,`${qr(r.project.configuration,e)} isn't supported by any available fetcher`);return o}}});var yg,rO=Et(()=>{bo();yg=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.getResolverByDescriptor(e,o).bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,o){return await this.getResolverByDescriptor(e,o).getCandidates(e,r,o)}async getSatisfying(e,r,o,a){return this.getResolverByDescriptor(e,a).getSatisfying(e,r,o,a)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));return o||null}getResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));if(!o)throw new Error(`${jn(r.project.configuration,e)} isn't supported by any available resolver`);return o}tryResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));return o||null}getResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));if(!o)throw new Error(`${qr(r.project.configuration,e)} isn't supported by any available resolver`);return o}}});var Km,nO=Et(()=>{Pt();bo();Km=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=Rs(e,a);return r.fetcher.getLocalPath(n,r)}async fetch(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=Rs(e,a),u=await r.fetcher.fetch(n,r);return await this.ensureVirtualLink(e,u,r)}getLocatorFilename(e){return Hm(e)}async ensureVirtualLink(e,r,o){let a=r.packageFs.getRealPath(),n=o.project.configuration.get("virtualFolder"),u=this.getLocatorFilename(e),A=zs.makeVirtualPath(n,u,a),p=new Hu(A,{baseFs:r.packageFs,pathUtils:K});return{...r,packageFs:p}}}});var kS,Ose=Et(()=>{kS=class t{static{this.protocol="virtual:"}static isVirtualDescriptor(e){return!!e.range.startsWith(t.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(t.protocol)}supportsDescriptor(e,r){return t.isVirtualDescriptor(e)}supportsLocator(e,r){return t.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,o){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,o,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}}});var Vm,iO=Et(()=>{Pt();mg();Vm=class{supports(e){return!!e.reference.startsWith(ei.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let o=this.getWorkspace(e,r).cwd;return{packageFs:new gn(o),prefixPath:It.dot,localPath:o}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(ei.protocol.length))}}});function KI(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Use(t){return typeof t>"u"?3:KI(t)?0:Array.isArray(t)?1:2}function aO(t,e){return Object.hasOwn(t,e)}function brt(t){return KI(t)&&aO(t,"onConflict")&&typeof t.onConflict=="string"}function xrt(t){if(typeof t>"u")return{onConflict:"default",value:t};if(!brt(t))return{onConflict:"default",value:t};if(aO(t,"value"))return t;let{onConflict:e,...r}=t;return{onConflict:e,value:r}}function _se(t,e){let r=KI(t)&&aO(t,e)?t[e]:void 0;return xrt(r)}function zm(t,e){return[t,e,Hse]}function lO(t){return Array.isArray(t)?t[2]===Hse:!1}function sO(t,e){if(KI(t)){let r={};for(let o of Object.keys(t))r[o]=sO(t[o],e);return zm(e,r)}return Array.isArray(t)?zm(e,t.map(r=>sO(r,e))):zm(e,t)}function oO(t,e,r,o,a){let n,u=[],A=a,p=0;for(let E=a-1;E>=o;--E){let[I,v]=t[E],{onConflict:x,value:C}=_se(v,r),R=Use(C);if(R!==3){if(n??=R,R!==n||x==="hardReset"){p=A;break}if(R===2)return zm(I,C);if(u.unshift([I,C]),x==="reset"){p=E;break}x==="extend"&&E===o&&(o=0),A=E}}if(typeof n>"u")return null;let h=u.map(([E])=>E).join(", ");switch(n){case 1:return zm(h,new Array().concat(...u.map(([E,I])=>I.map(v=>sO(v,E)))));case 0:{let E=Object.assign({},...u.map(([,R])=>R)),I=Object.keys(E),v={},x=t.map(([R,L])=>[R,_se(L,r).value]),C=Srt(x,([R,L])=>{let U=Use(L);return U!==0&&U!==3});if(C!==-1){let R=x.slice(C+1);for(let L of I)v[L]=oO(R,e,L,0,R.length)}else for(let R of I)v[R]=oO(x,e,R,p,x.length);return zm(h,v)}default:throw new Error("Assertion failed: Non-extendable value type")}}function qse(t){return oO(t.map(([e,r])=>[e,{".":r}]),[],".",0,t.length)}function VI(t){return lO(t)?t[1]:t}function QS(t){let e=lO(t)?t[1]:t;if(Array.isArray(e))return e.map(r=>QS(r));if(KI(e)){let r={};for(let[o,a]of Object.entries(e))r[o]=QS(a);return r}return e}function cO(t){return lO(t)?t[0]:null}var Srt,Hse,jse=Et(()=>{Srt=(t,e,r)=>{let o=[...t];return o.reverse(),o.findIndex(e,r)};Hse=Symbol()});var RS={};Vt(RS,{getDefaultGlobalFolder:()=>AO,getHomeFolder:()=>Jm,isFolderInside:()=>fO});function AO(){if(process.platform==="win32"){let t=ue.toPortablePath(process.env.LOCALAPPDATA||ue.join((0,uO.homedir)(),"AppData","Local"));return K.resolve(t,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let t=ue.toPortablePath(process.env.XDG_DATA_HOME);return K.resolve(t,"yarn/berry")}return K.resolve(Jm(),".yarn/berry")}function Jm(){return ue.toPortablePath((0,uO.homedir)()||"/usr/local/share")}function fO(t,e){let r=K.relative(e,t);return r&&!r.startsWith("..")&&!K.isAbsolute(r)}var uO,TS=Et(()=>{Pt();uO=ve("os")});var Kse=_(Xm=>{"use strict";var uLt=ve("net"),Qrt=ve("tls"),pO=ve("http"),Gse=ve("https"),Frt=ve("events"),ALt=ve("assert"),Rrt=ve("util");Xm.httpOverHttp=Trt;Xm.httpsOverHttp=Nrt;Xm.httpOverHttps=Lrt;Xm.httpsOverHttps=Mrt;function Trt(t){var e=new xf(t);return e.request=pO.request,e}function Nrt(t){var e=new xf(t);return e.request=pO.request,e.createSocket=Yse,e.defaultPort=443,e}function Lrt(t){var e=new xf(t);return e.request=Gse.request,e}function Mrt(t){var e=new xf(t);return e.request=Gse.request,e.createSocket=Yse,e.defaultPort=443,e}function xf(t){var e=this;e.options=t||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||pO.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(o,a,n,u){for(var A=Wse(a,n,u),p=0,h=e.requests.length;p<h;++p){var E=e.requests[p];if(E.host===A.host&&E.port===A.port){e.requests.splice(p,1),E.request.onSocket(o);return}}o.destroy(),e.removeSocket(o)})}Rrt.inherits(xf,Frt.EventEmitter);xf.prototype.addRequest=function(e,r,o,a){var n=this,u=hO({request:e},n.options,Wse(r,o,a));if(n.sockets.length>=this.maxSockets){n.requests.push(u);return}n.createSocket(u,function(A){A.on("free",p),A.on("close",h),A.on("agentRemove",h),e.onSocket(A);function p(){n.emit("free",A,u)}function h(E){n.removeSocket(A),A.removeListener("free",p),A.removeListener("close",h),A.removeListener("agentRemove",h)}})};xf.prototype.createSocket=function(e,r){var o=this,a={};o.sockets.push(a);var n=hO({},o.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(n.localAddress=e.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),ih("making CONNECT request");var u=o.request(n);u.useChunkedEncodingByDefault=!1,u.once("response",A),u.once("upgrade",p),u.once("connect",h),u.once("error",E),u.end();function A(I){I.upgrade=!0}function p(I,v,x){process.nextTick(function(){h(I,v,x)})}function h(I,v,x){if(u.removeAllListeners(),v.removeAllListeners(),I.statusCode!==200){ih("tunneling socket could not be established, statusCode=%d",I.statusCode),v.destroy();var C=new Error("tunneling socket could not be established, statusCode="+I.statusCode);C.code="ECONNRESET",e.request.emit("error",C),o.removeSocket(a);return}if(x.length>0){ih("got illegal response body from proxy"),v.destroy();var C=new Error("got illegal response body from proxy");C.code="ECONNRESET",e.request.emit("error",C),o.removeSocket(a);return}return ih("tunneling connection has established"),o.sockets[o.sockets.indexOf(a)]=v,r(v)}function E(I){u.removeAllListeners(),ih(`tunneling socket could not be established, cause=%s -`,I.message,I.stack);var v=new Error("tunneling socket could not be established, cause="+I.message);v.code="ECONNRESET",e.request.emit("error",v),o.removeSocket(a)}};xf.prototype.removeSocket=function(e){var r=this.sockets.indexOf(e);if(r!==-1){this.sockets.splice(r,1);var o=this.requests.shift();o&&this.createSocket(o,function(a){o.request.onSocket(a)})}};function Yse(t,e){var r=this;xf.prototype.createSocket.call(r,t,function(o){var a=t.request.getHeader("host"),n=hO({},r.options,{socket:o,servername:a?a.replace(/:.*$/,""):t.host}),u=Qrt.connect(0,n);r.sockets[r.sockets.indexOf(o)]=u,e(u)})}function Wse(t,e,r){return typeof t=="string"?{host:t,port:e,localAddress:r}:t}function hO(t){for(var e=1,r=arguments.length;e<r;++e){var o=arguments[e];if(typeof o=="object")for(var a=Object.keys(o),n=0,u=a.length;n<u;++n){var A=a[n];o[A]!==void 0&&(t[A]=o[A])}}return t}var ih;process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?ih=function(){var t=Array.prototype.slice.call(arguments);typeof t[0]=="string"?t[0]="TUNNEL: "+t[0]:t.unshift("TUNNEL:"),console.error.apply(console,t)}:ih=function(){};Xm.debug=ih});var zse=_((pLt,Vse)=>{Vse.exports=Kse()});var Qf=_((kf,NS)=>{"use strict";Object.defineProperty(kf,"__esModule",{value:!0});var Jse=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Ort(t){return Jse.includes(t)}var Urt=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Blob","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Jse];function _rt(t){return Urt.includes(t)}var Hrt=["null","undefined","string","number","bigint","boolean","symbol"];function qrt(t){return Hrt.includes(t)}function Zm(t){return e=>typeof e===t}var{toString:Xse}=Object.prototype,zI=t=>{let e=Xse.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&Pe.domElement(t))return"HTMLElement";if(_rt(e))return e},Xn=t=>e=>zI(e)===t;function Pe(t){if(t===null)return"null";switch(typeof t){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(Pe.observable(t))return"Observable";if(Pe.array(t))return"Array";if(Pe.buffer(t))return"Buffer";let e=zI(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}Pe.undefined=Zm("undefined");Pe.string=Zm("string");var jrt=Zm("number");Pe.number=t=>jrt(t)&&!Pe.nan(t);Pe.bigint=Zm("bigint");Pe.function_=Zm("function");Pe.null_=t=>t===null;Pe.class_=t=>Pe.function_(t)&&t.toString().startsWith("class ");Pe.boolean=t=>t===!0||t===!1;Pe.symbol=Zm("symbol");Pe.numericString=t=>Pe.string(t)&&!Pe.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));Pe.array=(t,e)=>Array.isArray(t)?Pe.function_(e)?t.every(e):!0:!1;Pe.buffer=t=>{var e,r,o,a;return(a=(o=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||o===void 0?void 0:o.call(r,t))!==null&&a!==void 0?a:!1};Pe.blob=t=>Xn("Blob")(t);Pe.nullOrUndefined=t=>Pe.null_(t)||Pe.undefined(t);Pe.object=t=>!Pe.null_(t)&&(typeof t=="object"||Pe.function_(t));Pe.iterable=t=>{var e;return Pe.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};Pe.asyncIterable=t=>{var e;return Pe.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};Pe.generator=t=>{var e,r;return Pe.iterable(t)&&Pe.function_((e=t)===null||e===void 0?void 0:e.next)&&Pe.function_((r=t)===null||r===void 0?void 0:r.throw)};Pe.asyncGenerator=t=>Pe.asyncIterable(t)&&Pe.function_(t.next)&&Pe.function_(t.throw);Pe.nativePromise=t=>Xn("Promise")(t);var Grt=t=>{var e,r;return Pe.function_((e=t)===null||e===void 0?void 0:e.then)&&Pe.function_((r=t)===null||r===void 0?void 0:r.catch)};Pe.promise=t=>Pe.nativePromise(t)||Grt(t);Pe.generatorFunction=Xn("GeneratorFunction");Pe.asyncGeneratorFunction=t=>zI(t)==="AsyncGeneratorFunction";Pe.asyncFunction=t=>zI(t)==="AsyncFunction";Pe.boundFunction=t=>Pe.function_(t)&&!t.hasOwnProperty("prototype");Pe.regExp=Xn("RegExp");Pe.date=Xn("Date");Pe.error=Xn("Error");Pe.map=t=>Xn("Map")(t);Pe.set=t=>Xn("Set")(t);Pe.weakMap=t=>Xn("WeakMap")(t);Pe.weakSet=t=>Xn("WeakSet")(t);Pe.int8Array=Xn("Int8Array");Pe.uint8Array=Xn("Uint8Array");Pe.uint8ClampedArray=Xn("Uint8ClampedArray");Pe.int16Array=Xn("Int16Array");Pe.uint16Array=Xn("Uint16Array");Pe.int32Array=Xn("Int32Array");Pe.uint32Array=Xn("Uint32Array");Pe.float32Array=Xn("Float32Array");Pe.float64Array=Xn("Float64Array");Pe.bigInt64Array=Xn("BigInt64Array");Pe.bigUint64Array=Xn("BigUint64Array");Pe.arrayBuffer=Xn("ArrayBuffer");Pe.sharedArrayBuffer=Xn("SharedArrayBuffer");Pe.dataView=Xn("DataView");Pe.enumCase=(t,e)=>Object.values(e).includes(t);Pe.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;Pe.urlInstance=t=>Xn("URL")(t);Pe.urlString=t=>{if(!Pe.string(t))return!1;try{return new URL(t),!0}catch{return!1}};Pe.truthy=t=>!!t;Pe.falsy=t=>!t;Pe.nan=t=>Number.isNaN(t);Pe.primitive=t=>Pe.null_(t)||qrt(typeof t);Pe.integer=t=>Number.isInteger(t);Pe.safeInteger=t=>Number.isSafeInteger(t);Pe.plainObject=t=>{if(Xse.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};Pe.typedArray=t=>Ort(zI(t));var Yrt=t=>Pe.safeInteger(t)&&t>=0;Pe.arrayLike=t=>!Pe.nullOrUndefined(t)&&!Pe.function_(t)&&Yrt(t.length);Pe.inRange=(t,e)=>{if(Pe.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(Pe.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var Wrt=1,Krt=["innerHTML","ownerDocument","style","attributes","nodeValue"];Pe.domElement=t=>Pe.object(t)&&t.nodeType===Wrt&&Pe.string(t.nodeName)&&!Pe.plainObject(t)&&Krt.every(e=>e in t);Pe.observable=t=>{var e,r,o,a;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((a=(o=t)["@@observable"])===null||a===void 0?void 0:a.call(o)):!1};Pe.nodeStream=t=>Pe.object(t)&&Pe.function_(t.pipe)&&!Pe.observable(t);Pe.infinite=t=>t===1/0||t===-1/0;var Zse=t=>e=>Pe.integer(e)&&Math.abs(e%2)===t;Pe.evenInteger=Zse(0);Pe.oddInteger=Zse(1);Pe.emptyArray=t=>Pe.array(t)&&t.length===0;Pe.nonEmptyArray=t=>Pe.array(t)&&t.length>0;Pe.emptyString=t=>Pe.string(t)&&t.length===0;var Vrt=t=>Pe.string(t)&&!/\S/.test(t);Pe.emptyStringOrWhitespace=t=>Pe.emptyString(t)||Vrt(t);Pe.nonEmptyString=t=>Pe.string(t)&&t.length>0;Pe.nonEmptyStringAndNotWhitespace=t=>Pe.string(t)&&!Pe.emptyStringOrWhitespace(t);Pe.emptyObject=t=>Pe.object(t)&&!Pe.map(t)&&!Pe.set(t)&&Object.keys(t).length===0;Pe.nonEmptyObject=t=>Pe.object(t)&&!Pe.map(t)&&!Pe.set(t)&&Object.keys(t).length>0;Pe.emptySet=t=>Pe.set(t)&&t.size===0;Pe.nonEmptySet=t=>Pe.set(t)&&t.size>0;Pe.emptyMap=t=>Pe.map(t)&&t.size===0;Pe.nonEmptyMap=t=>Pe.map(t)&&t.size>0;Pe.propertyKey=t=>Pe.any([Pe.string,Pe.number,Pe.symbol],t);Pe.formData=t=>Xn("FormData")(t);Pe.urlSearchParams=t=>Xn("URLSearchParams")(t);var $se=(t,e,r)=>{if(!Pe.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError("Invalid number of values");return t.call(r,e)};Pe.any=(t,...e)=>(Pe.array(t)?t:[t]).some(o=>$se(Array.prototype.some,o,e));Pe.all=(t,...e)=>$se(Array.prototype.every,t,e);var Mt=(t,e,r,o={})=>{if(!t){let{multipleValues:a}=o,n=a?`received values of types ${[...new Set(r.map(u=>`\`${Pe(u)}\``))].join(", ")}`:`received value of type \`${Pe(r)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${n}.`)}};kf.assert={undefined:t=>Mt(Pe.undefined(t),"undefined",t),string:t=>Mt(Pe.string(t),"string",t),number:t=>Mt(Pe.number(t),"number",t),bigint:t=>Mt(Pe.bigint(t),"bigint",t),function_:t=>Mt(Pe.function_(t),"Function",t),null_:t=>Mt(Pe.null_(t),"null",t),class_:t=>Mt(Pe.class_(t),"Class",t),boolean:t=>Mt(Pe.boolean(t),"boolean",t),symbol:t=>Mt(Pe.symbol(t),"symbol",t),numericString:t=>Mt(Pe.numericString(t),"string with a number",t),array:(t,e)=>{Mt(Pe.array(t),"Array",t),e&&t.forEach(e)},buffer:t=>Mt(Pe.buffer(t),"Buffer",t),blob:t=>Mt(Pe.blob(t),"Blob",t),nullOrUndefined:t=>Mt(Pe.nullOrUndefined(t),"null or undefined",t),object:t=>Mt(Pe.object(t),"Object",t),iterable:t=>Mt(Pe.iterable(t),"Iterable",t),asyncIterable:t=>Mt(Pe.asyncIterable(t),"AsyncIterable",t),generator:t=>Mt(Pe.generator(t),"Generator",t),asyncGenerator:t=>Mt(Pe.asyncGenerator(t),"AsyncGenerator",t),nativePromise:t=>Mt(Pe.nativePromise(t),"native Promise",t),promise:t=>Mt(Pe.promise(t),"Promise",t),generatorFunction:t=>Mt(Pe.generatorFunction(t),"GeneratorFunction",t),asyncGeneratorFunction:t=>Mt(Pe.asyncGeneratorFunction(t),"AsyncGeneratorFunction",t),asyncFunction:t=>Mt(Pe.asyncFunction(t),"AsyncFunction",t),boundFunction:t=>Mt(Pe.boundFunction(t),"Function",t),regExp:t=>Mt(Pe.regExp(t),"RegExp",t),date:t=>Mt(Pe.date(t),"Date",t),error:t=>Mt(Pe.error(t),"Error",t),map:t=>Mt(Pe.map(t),"Map",t),set:t=>Mt(Pe.set(t),"Set",t),weakMap:t=>Mt(Pe.weakMap(t),"WeakMap",t),weakSet:t=>Mt(Pe.weakSet(t),"WeakSet",t),int8Array:t=>Mt(Pe.int8Array(t),"Int8Array",t),uint8Array:t=>Mt(Pe.uint8Array(t),"Uint8Array",t),uint8ClampedArray:t=>Mt(Pe.uint8ClampedArray(t),"Uint8ClampedArray",t),int16Array:t=>Mt(Pe.int16Array(t),"Int16Array",t),uint16Array:t=>Mt(Pe.uint16Array(t),"Uint16Array",t),int32Array:t=>Mt(Pe.int32Array(t),"Int32Array",t),uint32Array:t=>Mt(Pe.uint32Array(t),"Uint32Array",t),float32Array:t=>Mt(Pe.float32Array(t),"Float32Array",t),float64Array:t=>Mt(Pe.float64Array(t),"Float64Array",t),bigInt64Array:t=>Mt(Pe.bigInt64Array(t),"BigInt64Array",t),bigUint64Array:t=>Mt(Pe.bigUint64Array(t),"BigUint64Array",t),arrayBuffer:t=>Mt(Pe.arrayBuffer(t),"ArrayBuffer",t),sharedArrayBuffer:t=>Mt(Pe.sharedArrayBuffer(t),"SharedArrayBuffer",t),dataView:t=>Mt(Pe.dataView(t),"DataView",t),enumCase:(t,e)=>Mt(Pe.enumCase(t,e),"EnumCase",t),urlInstance:t=>Mt(Pe.urlInstance(t),"URL",t),urlString:t=>Mt(Pe.urlString(t),"string with a URL",t),truthy:t=>Mt(Pe.truthy(t),"truthy",t),falsy:t=>Mt(Pe.falsy(t),"falsy",t),nan:t=>Mt(Pe.nan(t),"NaN",t),primitive:t=>Mt(Pe.primitive(t),"primitive",t),integer:t=>Mt(Pe.integer(t),"integer",t),safeInteger:t=>Mt(Pe.safeInteger(t),"integer",t),plainObject:t=>Mt(Pe.plainObject(t),"plain object",t),typedArray:t=>Mt(Pe.typedArray(t),"TypedArray",t),arrayLike:t=>Mt(Pe.arrayLike(t),"array-like",t),domElement:t=>Mt(Pe.domElement(t),"HTMLElement",t),observable:t=>Mt(Pe.observable(t),"Observable",t),nodeStream:t=>Mt(Pe.nodeStream(t),"Node.js Stream",t),infinite:t=>Mt(Pe.infinite(t),"infinite number",t),emptyArray:t=>Mt(Pe.emptyArray(t),"empty array",t),nonEmptyArray:t=>Mt(Pe.nonEmptyArray(t),"non-empty array",t),emptyString:t=>Mt(Pe.emptyString(t),"empty string",t),emptyStringOrWhitespace:t=>Mt(Pe.emptyStringOrWhitespace(t),"empty string or whitespace",t),nonEmptyString:t=>Mt(Pe.nonEmptyString(t),"non-empty string",t),nonEmptyStringAndNotWhitespace:t=>Mt(Pe.nonEmptyStringAndNotWhitespace(t),"non-empty string and not whitespace",t),emptyObject:t=>Mt(Pe.emptyObject(t),"empty object",t),nonEmptyObject:t=>Mt(Pe.nonEmptyObject(t),"non-empty object",t),emptySet:t=>Mt(Pe.emptySet(t),"empty set",t),nonEmptySet:t=>Mt(Pe.nonEmptySet(t),"non-empty set",t),emptyMap:t=>Mt(Pe.emptyMap(t),"empty map",t),nonEmptyMap:t=>Mt(Pe.nonEmptyMap(t),"non-empty map",t),propertyKey:t=>Mt(Pe.propertyKey(t),"PropertyKey",t),formData:t=>Mt(Pe.formData(t),"FormData",t),urlSearchParams:t=>Mt(Pe.urlSearchParams(t),"URLSearchParams",t),evenInteger:t=>Mt(Pe.evenInteger(t),"even integer",t),oddInteger:t=>Mt(Pe.oddInteger(t),"odd integer",t),directInstanceOf:(t,e)=>Mt(Pe.directInstanceOf(t,e),"T",t),inRange:(t,e)=>Mt(Pe.inRange(t,e),"in range",t),any:(t,...e)=>Mt(Pe.any(t,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(t,...e)=>Mt(Pe.all(t,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(Pe,{class:{value:Pe.class_},function:{value:Pe.function_},null:{value:Pe.null_}});Object.defineProperties(kf.assert,{class:{value:kf.assert.class_},function:{value:kf.assert.function_},null:{value:kf.assert.null_}});kf.default=Pe;NS.exports=Pe;NS.exports.default=Pe;NS.exports.assert=kf.assert});var eoe=_((hLt,gO)=>{"use strict";var LS=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},MS=class t{static fn(e){return(...r)=>new t((o,a,n)=>{r.push(n),e(...r).then(o,a)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,o)=>{this._reject=o;let a=A=>{this._isPending=!1,r(A)},n=A=>{this._isPending=!1,o(A)},u=A=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(A)};return Object.defineProperties(u,{shouldReject:{get:()=>this._rejectOnCancel,set:A=>{this._rejectOnCancel=A}}}),e(a,n,u)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new LS(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(MS.prototype,Promise.prototype);gO.exports=MS;gO.exports.CancelError=LS});var toe=_((mO,yO)=>{"use strict";Object.defineProperty(mO,"__esModule",{value:!0});function zrt(t){return t.encrypted}var dO=(t,e)=>{let r;typeof e=="function"?r={connect:e}:r=e;let o=typeof r.connect=="function",a=typeof r.secureConnect=="function",n=typeof r.close=="function",u=()=>{o&&r.connect(),zrt(t)&&a&&(t.authorized?r.secureConnect():t.authorizationError||t.once("secureConnect",r.secureConnect)),n&&t.once("close",r.close)};t.writable&&!t.connecting?u():t.connecting?t.once("connect",u):t.destroyed&&n&&r.close(t._hadError)};mO.default=dO;yO.exports=dO;yO.exports.default=dO});var roe=_((CO,wO)=>{"use strict";Object.defineProperty(CO,"__esModule",{value:!0});var Jrt=toe(),Xrt=Number(process.versions.node.split(".")[0]),EO=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=u=>{let A=u.emit.bind(u);u.emit=(p,...h)=>(p==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,u.emit=A),A(p,...h))};r(t),t.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||Xrt>=13)&&(e.phases.total=Date.now()-e.start)});let o=u=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let A=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};u.prependOnceListener("lookup",A),Jrt.default(u,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(u.removeListener("lookup",A),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?o(t.socket):t.prependOnceListener("socket",o);let a=()=>{var u;e.upload=Date.now(),e.phases.request=e.upload-(u=e.secureConnect,u??e.connect)};return(typeof t.writableFinished=="boolean"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))?a():t.prependOnceListener("finish",a),t.prependOnceListener("response",u=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,u.timings=e,r(u),u.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};CO.default=EO;wO.exports=EO;wO.exports.default=EO});var coe=_((gLt,vO)=>{"use strict";var{V4MAPPED:Zrt,ADDRCONFIG:$rt,ALL:loe,promises:{Resolver:noe},lookup:ent}=ve("dns"),{promisify:IO}=ve("util"),tnt=ve("os"),$m=Symbol("cacheableLookupCreateConnection"),BO=Symbol("cacheableLookupInstance"),ioe=Symbol("expires"),rnt=typeof loe=="number",soe=t=>{if(!(t&&typeof t.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},nnt=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},ooe=()=>{let t=!1,e=!1;for(let r of Object.values(tnt.networkInterfaces()))for(let o of r)if(!o.internal&&(o.family==="IPv6"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},int=t=>Symbol.iterator in t,aoe={ttl:!0},snt={all:!0},OS=class{constructor({cache:e=new Map,maxTtl:r=1/0,fallbackDuration:o=3600,errorTtl:a=.15,resolver:n=new noe,lookup:u=ent}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=e,this._resolver=n,this._dnsLookup=IO(u),this._resolver instanceof noe?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=IO(this._resolver.resolve4.bind(this._resolver)),this._resolve6=IO(this._resolver.resolve6.bind(this._resolver))),this._iface=ooe(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,o<1)this._fallback=!1;else{this._fallback=!0;let A=setInterval(()=>{this._hostnamesToFallback.clear()},o*1e3);A.unref&&A.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,o){if(typeof r=="function"?(o=r,r={}):typeof r=="number"&&(r={family:r}),!o)throw new Error("Callback must be a function.");this.lookupAsync(e,r).then(a=>{r.all?o(null,a):o(null,a.address,a.family,a.expires,a.ttl)},o)}async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let o=await this.query(e);if(r.family===6){let a=o.filter(n=>n.family===6);r.hints&Zrt&&(rnt&&r.hints&loe||a.length===0)?nnt(o):o=a}else r.family===4&&(o=o.filter(a=>a.family===4));if(r.hints&$rt){let{_iface:a}=this;o=o.filter(n=>n.family===6?a.has6:a.has4)}if(o.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${e}`);throw a.code="ENOTFOUND",a.hostname=e,a}return r.all?o:o[0]}async query(e){let r=await this._cache.get(e);if(!r){let o=this._pending[e];if(o)r=await o;else{let a=this.queryAndCache(e);this._pending[e]=a,r=await a}}return r=r.map(o=>({...o})),r}async _resolve(e){let r=async h=>{try{return await h}catch(E){if(E.code==="ENODATA"||E.code==="ENOTFOUND")return[];throw E}},[o,a]=await Promise.all([this._resolve4(e,aoe),this._resolve6(e,aoe)].map(h=>r(h))),n=0,u=0,A=0,p=Date.now();for(let h of o)h.family=4,h.expires=p+h.ttl*1e3,n=Math.max(n,h.ttl);for(let h of a)h.family=6,h.expires=p+h.ttl*1e3,u=Math.max(u,h.ttl);return o.length>0?a.length>0?A=Math.min(n,u):A=n:A=u,{entries:[...o,...a],cacheTtl:A}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,r,o){if(this.maxTtl>0&&o>0){o=Math.min(o,this.maxTtl)*1e3,r[ioe]=Date.now()+o;try{await this._cache.set(e,r,o)}catch(a){this.lookupAsync=async()=>{let n=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw n.cause=a,n}}int(this._cache)&&this._tick(o)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,snt);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let o=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,o),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e<r)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let o=1/0,a=Date.now();for(let[n,u]of this._cache){let A=u[ioe];a>=A?this._cache.delete(n):A<o&&(o=A)}o!==1/0&&this._tick(o-a)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(soe(e),$m in e)throw new Error("CacheableLookup has been already installed");e[$m]=e.createConnection,e[BO]=this,e.createConnection=(r,o)=>("lookup"in r||(r.lookup=this.lookup),e[$m](r,o))}uninstall(e){if(soe(e),e[$m]){if(e[BO]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[$m],delete e[$m],delete e[BO]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=ooe(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};vO.exports=OS;vO.exports.default=OS});var foe=_((dLt,DO)=>{"use strict";var ont=typeof URL>"u"?ve("url").URL:URL,ant="text/plain",lnt="us-ascii",uoe=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),cnt=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let o=r[1].split(";"),a=r[2],n=e?"":r[3],u=!1;o[o.length-1]==="base64"&&(o.pop(),u=!0);let A=(o.shift()||"").toLowerCase(),h=[...o.map(E=>{let[I,v=""]=E.split("=").map(x=>x.trim());return I==="charset"&&(v=v.toLowerCase(),v===lnt)?"":`${I}${v?`=${v}`:""}`}).filter(Boolean)];return u&&h.push("base64"),(h.length!==0||A&&A!==ant)&&h.unshift(A),`data:${h.join(";")},${u?a.trim():a}${n?`#${n}`:""}`},Aoe=(t,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(t=t.trim(),/^data:/i.test(t))return cnt(t,e);let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new ont(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash&&(a.hash=""),a.pathname&&(a.pathname=a.pathname.replace(/((?!:).|^)\/{2,}/g,(n,u)=>/^(?!\/)/g.test(u)?`${u}/`:"/")),a.pathname&&(a.pathname=decodeURI(a.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let n=a.pathname.split("/"),u=n[n.length-1];uoe(u,e.removeDirectoryIndex)&&(n=n.slice(0,n.length-1),a.pathname=n.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let n of[...a.searchParams.keys()])uoe(n,e.removeQueryParameters)&&a.searchParams.delete(n);return e.sortQueryParameters&&a.searchParams.sort(),e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,"")),t=a.toString(),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};DO.exports=Aoe;DO.exports.default=Aoe});var goe=_((mLt,hoe)=>{hoe.exports=poe;function poe(t,e){if(t&&e)return poe(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(o){r[o]=t[o]}),r;function r(){for(var o=new Array(arguments.length),a=0;a<o.length;a++)o[a]=arguments[a];var n=t.apply(this,o),u=o[o.length-1];return typeof n=="function"&&n!==u&&Object.keys(u).forEach(function(A){n[A]=u[A]}),n}}});var SO=_((yLt,PO)=>{var doe=goe();PO.exports=doe(US);PO.exports.strict=doe(moe);US.proto=US(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return US(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return moe(this)},configurable:!0})});function US(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function moe(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}});var bO=_((ELt,Eoe)=>{var unt=SO(),Ant=function(){},fnt=function(t){return t.setHeader&&typeof t.abort=="function"},pnt=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},yoe=function(t,e,r){if(typeof e=="function")return yoe(t,null,e);e||(e={}),r=unt(r||Ant);var o=t._writableState,a=t._readableState,n=e.readable||e.readable!==!1&&t.readable,u=e.writable||e.writable!==!1&&t.writable,A=function(){t.writable||p()},p=function(){u=!1,n||r.call(t)},h=function(){n=!1,u||r.call(t)},E=function(C){r.call(t,C?new Error("exited with error code: "+C):null)},I=function(C){r.call(t,C)},v=function(){if(n&&!(a&&a.ended))return r.call(t,new Error("premature close"));if(u&&!(o&&o.ended))return r.call(t,new Error("premature close"))},x=function(){t.req.on("finish",p)};return fnt(t)?(t.on("complete",p),t.on("abort",v),t.req?x():t.on("request",x)):u&&!o&&(t.on("end",A),t.on("close",A)),pnt(t)&&t.on("exit",E),t.on("end",h),t.on("finish",p),e.error!==!1&&t.on("error",I),t.on("close",v),function(){t.removeListener("complete",p),t.removeListener("abort",v),t.removeListener("request",x),t.req&&t.req.removeListener("finish",p),t.removeListener("end",A),t.removeListener("close",A),t.removeListener("finish",p),t.removeListener("exit",E),t.removeListener("end",h),t.removeListener("error",I),t.removeListener("close",v)}};Eoe.exports=yoe});var Ioe=_((CLt,woe)=>{var hnt=SO(),gnt=bO(),xO=ve("fs"),JI=function(){},dnt=/^v?\.0/.test(process.version),_S=function(t){return typeof t=="function"},mnt=function(t){return!dnt||!xO?!1:(t instanceof(xO.ReadStream||JI)||t instanceof(xO.WriteStream||JI))&&_S(t.close)},ynt=function(t){return t.setHeader&&_S(t.abort)},Ent=function(t,e,r,o){o=hnt(o);var a=!1;t.on("close",function(){a=!0}),gnt(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,mnt(t))return t.close(JI);if(ynt(t))return t.abort();if(_S(t.destroy))return t.destroy();o(u||new Error("stream was destroyed"))}}},Coe=function(t){t()},Cnt=function(t,e){return t.pipe(e)},wnt=function(){var t=Array.prototype.slice.call(arguments),e=_S(t[t.length-1]||JI)&&t.pop()||JI;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var r,o=t.map(function(a,n){var u=n<t.length-1,A=n>0;return Ent(a,u,A,function(p){r||(r=p),p&&o.forEach(Coe),!u&&(o.forEach(Coe),e(r))})});return t.reduce(Cnt)};woe.exports=wnt});var voe=_((wLt,Boe)=>{"use strict";var{PassThrough:Int}=ve("stream");Boe.exports=t=>{t={...t};let{array:e}=t,{encoding:r}=t,o=r==="buffer",a=!1;e?a=!(r||o):r=r||"utf8",o&&(r=null);let n=new Int({objectMode:a});r&&n.setEncoding(r);let u=0,A=[];return n.on("data",p=>{A.push(p),a?u=A.length:u+=p.length}),n.getBufferedValue=()=>e?A:o?Buffer.concat(A,u):A.join(""),n.getBufferedLength=()=>u,n}});var Doe=_((ILt,ey)=>{"use strict";var Bnt=Ioe(),vnt=voe(),HS=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function qS(t,e){if(!t)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:r}=e,o;return await new Promise((a,n)=>{let u=A=>{A&&(A.bufferedData=o.getBufferedValue()),n(A)};o=Bnt(t,vnt(e),A=>{if(A){u(A);return}a()}),o.on("data",()=>{o.getBufferedLength()>r&&u(new HS)})}),o.getBufferedValue()}ey.exports=qS;ey.exports.default=qS;ey.exports.buffer=(t,e)=>qS(t,{...e,encoding:"buffer"});ey.exports.array=(t,e)=>qS(t,{...e,array:!0});ey.exports.MaxBufferError=HS});var Soe=_((vLt,Poe)=>{"use strict";var Dnt=new Set([200,203,204,206,300,301,308,404,405,410,414,501]),Pnt=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Snt=new Set([500,502,503,504]),bnt={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},xnt={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Eg(t){let e=parseInt(t,10);return isFinite(e)?e:0}function knt(t){return t?Snt.has(t.status):!0}function kO(t){let e={};if(!t)return e;let r=t.trim().split(/,/);for(let o of r){let[a,n]=o.split(/=/,2);e[a.trim()]=n===void 0?!0:n.trim().replace(/^"|"$/g,"")}return e}function Qnt(t){let e=[];for(let r in t){let o=t[r];e.push(o===!0?r:r+"="+o)}if(e.length)return e.join(", ")}Poe.exports=class{constructor(e,r,{shared:o,cacheHeuristic:a,immutableMinTimeToLive:n,ignoreCargoCult:u,_fromObject:A}={}){if(A){this._fromObject(A);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=o!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=n!==void 0?n:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=kO(r.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=kO(e.headers["cache-control"]),u&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":Qnt(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Pnt.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||Dnt.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=kO(e.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(e.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let o of r)if(e.headers[o]!==this._reqHeaders[o])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let o in e)bnt[o]||(r[o]=e[o]);if(e.connection){let o=e.connection.trim().split(/\s*,\s*/);for(let a of o)delete r[a]}if(r.warning){let o=r.warning.split(/,/).filter(a=>!/^\s*1[0-9][0-9]/.test(a));o.length?r.warning=o.join(",").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){return Eg(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Eg(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Eg(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let o=Date.parse(this._resHeaders.expires);return Number.isNaN(o)||o<r?0:Math.max(e,(o-r)/1e3)}if(this._resHeaders["last-modified"]){let o=Date.parse(this._resHeaders["last-modified"]);if(isFinite(o)&&r>o)return Math.max(e,(r-o)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),r=e+Eg(this._rescc["stale-if-error"]),o=e+Eg(this._rescc["stale-while-revalidate"]);return Math.max(0,e,r,o)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Eg(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Eg(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let a=r["if-none-match"].split(/,/).filter(n=>!/^\s*W\//.test(n));a.length?r["if-none-match"]=a.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&knt(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let o=!1;if(r.status!==void 0&&r.status!=304?o=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?o=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?o=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?o=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(o=!0),!o)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let a={};for(let u in this._resHeaders)a[u]=u in r.headers&&!xnt[u]?r.headers[u]:this._resHeaders[u];let n=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(e,n,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var jS=_((DLt,boe)=>{"use strict";boe.exports=t=>{let e={};for(let[r,o]of Object.entries(t))e[r.toLowerCase()]=o;return e}});var koe=_((PLt,xoe)=>{"use strict";var Fnt=ve("stream").Readable,Rnt=jS(),QO=class extends Fnt{constructor(e,r,o,a){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(o instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof a!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=Rnt(r),this.body=o,this.url=a}_read(){this.push(this.body),this.push(null)}};xoe.exports=QO});var Foe=_((SLt,Qoe)=>{"use strict";var Tnt=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];Qoe.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(Tnt));for(let o of r)o in e||(e[o]=typeof t[o]=="function"?t[o].bind(t):t[o])}});var Toe=_((bLt,Roe)=>{"use strict";var Nnt=ve("stream").PassThrough,Lnt=Foe(),Mnt=t=>{if(!(t&&t.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new Nnt;return Lnt(t,e),t.pipe(e)};Roe.exports=Mnt});var Noe=_(FO=>{FO.stringify=function t(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var r="",o=Array.isArray(e);r=o?"[":"{";var a=!0;for(var n in e){var u=typeof e[n]=="function"||!o&&typeof e[n]>"u";Object.hasOwnProperty.call(e,n)&&!u&&(a||(r+=","),a=!1,o?e[n]==null?r+="null":r+=t(e[n]):e[n]!==void 0&&(r+=t(n)+":"+t(e[n])))}return r+=o?"]":"}",r}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};FO.parse=function(t){return JSON.parse(t,function(e,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var Uoe=_((kLt,Ooe)=>{"use strict";var Ont=ve("events"),Loe=Noe(),Unt=t=>{let e={redis:"@keyv/redis",rediss:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql",etcd:"@keyv/etcd",offline:"@keyv/offline",tiered:"@keyv/tiered"};if(t.adapter||t.uri){let r=t.adapter||/^[^:+]*/.exec(t.uri)[0];return new(ve(e[r]))(t)}return new Map},Moe=["sqlite","postgres","mysql","mongo","redis","tiered"],RO=class extends Ont{constructor(e,{emitErrors:r=!0,...o}={}){if(super(),this.opts={namespace:"keyv",serialize:Loe.stringify,deserialize:Loe.parse,...typeof e=="string"?{uri:e}:e,...o},!this.opts.store){let n={...this.opts};this.opts.store=Unt(n)}if(this.opts.compression){let n=this.opts.compression;this.opts.serialize=n.serialize.bind(n),this.opts.deserialize=n.deserialize.bind(n)}typeof this.opts.store.on=="function"&&r&&this.opts.store.on("error",n=>this.emit("error",n)),this.opts.store.namespace=this.opts.namespace;let a=n=>async function*(){for await(let[u,A]of typeof n=="function"?n(this.opts.store.namespace):n){let p=await this.opts.deserialize(A);if(!(this.opts.store.namespace&&!u.includes(this.opts.store.namespace))){if(typeof p.expires=="number"&&Date.now()>p.expires){this.delete(u);continue}yield[this._getKeyUnprefix(u),p.value]}}};typeof this.opts.store[Symbol.iterator]=="function"&&this.opts.store instanceof Map?this.iterator=a(this.opts.store):typeof this.opts.store.iterator=="function"&&this.opts.store.opts&&this._checkIterableAdaptar()&&(this.iterator=a(this.opts.store.iterator.bind(this.opts.store)))}_checkIterableAdaptar(){return Moe.includes(this.opts.store.opts.dialect)||Moe.findIndex(e=>this.opts.store.opts.url.includes(e))>=0}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}_getKeyPrefixArray(e){return e.map(r=>`${this.opts.namespace}:${r}`)}_getKeyUnprefix(e){return e.split(":").splice(1).join(":")}get(e,r){let{store:o}=this.opts,a=Array.isArray(e),n=a?this._getKeyPrefixArray(e):this._getKeyPrefix(e);if(a&&o.getMany===void 0){let u=[];for(let A of n)u.push(Promise.resolve().then(()=>o.get(A)).then(p=>typeof p=="string"?this.opts.deserialize(p):this.opts.compression?this.opts.deserialize(p):p).then(p=>{if(p!=null)return typeof p.expires=="number"&&Date.now()>p.expires?this.delete(A).then(()=>{}):r&&r.raw?p:p.value}));return Promise.allSettled(u).then(A=>{let p=[];for(let h of A)p.push(h.value);return p})}return Promise.resolve().then(()=>a?o.getMany(n):o.get(n)).then(u=>typeof u=="string"?this.opts.deserialize(u):this.opts.compression?this.opts.deserialize(u):u).then(u=>{if(u!=null)return a?u.map((A,p)=>{if(typeof A=="string"&&(A=this.opts.deserialize(A)),A!=null){if(typeof A.expires=="number"&&Date.now()>A.expires){this.delete(e[p]).then(()=>{});return}return r&&r.raw?A:A.value}}):typeof u.expires=="number"&&Date.now()>u.expires?this.delete(e).then(()=>{}):r&&r.raw?u:u.value})}set(e,r,o){let a=this._getKeyPrefix(e);typeof o>"u"&&(o=this.opts.ttl),o===0&&(o=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let u=typeof o=="number"?Date.now()+o:null;return typeof r=="symbol"&&this.emit("error","symbol cannot be serialized"),r={value:r,expires:u},this.opts.serialize(r)}).then(u=>n.set(a,u,o)).then(()=>!0)}delete(e){let{store:r}=this.opts;if(Array.isArray(e)){let a=this._getKeyPrefixArray(e);if(r.deleteMany===void 0){let n=[];for(let u of a)n.push(r.delete(u));return Promise.allSettled(n).then(u=>u.every(A=>A.value===!0))}return Promise.resolve().then(()=>r.deleteMany(a))}let o=this._getKeyPrefix(e);return Promise.resolve().then(()=>r.delete(o))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}has(e){let r=this._getKeyPrefix(e),{store:o}=this.opts;return Promise.resolve().then(async()=>typeof o.has=="function"?o.has(r):await o.get(r)!==void 0)}disconnect(){let{store:e}=this.opts;if(typeof e.disconnect=="function")return e.disconnect()}};Ooe.exports=RO});var qoe=_((FLt,Hoe)=>{"use strict";var _nt=ve("events"),GS=ve("url"),Hnt=foe(),qnt=Doe(),TO=Soe(),_oe=koe(),jnt=jS(),Gnt=Toe(),Ynt=Uoe(),XI=class t{constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Ynt({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,o)=>{let a;if(typeof r=="string")a=NO(GS.parse(r)),r={};else if(r instanceof GS.URL)a=NO(GS.parse(r.toString())),r={};else{let[I,...v]=(r.path||"").split("?"),x=v.length>0?`?${v.join("?")}`:"";a=NO({...r,pathname:I,search:x})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...Wnt(a)},r.headers=jnt(r.headers);let n=new _nt,u=Hnt(GS.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),A=`${r.method}:${u}`,p=!1,h=!1,E=I=>{h=!0;let v=!1,x,C=new Promise(L=>{x=()=>{v||(v=!0,L())}}),R=L=>{if(p&&!I.forceRefresh){L.status=L.statusCode;let z=TO.fromObject(p.cachePolicy).revalidatedPolicy(I,L);if(!z.modified){let te=z.policy.responseHeaders();L=new _oe(p.statusCode,te,p.body,p.url),L.cachePolicy=z.policy,L.fromCache=!0}}L.fromCache||(L.cachePolicy=new TO(I,L,I),L.fromCache=!1);let U;I.cache&&L.cachePolicy.storable()?(U=Gnt(L),(async()=>{try{let z=qnt.buffer(L);if(await Promise.race([C,new Promise(ce=>L.once("end",ce))]),v)return;let te=await z,ae={cachePolicy:L.cachePolicy.toObject(),url:L.url,statusCode:L.fromCache?p.statusCode:L.statusCode,body:te},le=I.strictTtl?L.cachePolicy.timeToLive():void 0;I.maxTtl&&(le=le?Math.min(le,I.maxTtl):I.maxTtl),await this.cache.set(A,ae,le)}catch(z){n.emit("error",new t.CacheError(z))}})()):I.cache&&p&&(async()=>{try{await this.cache.delete(A)}catch(z){n.emit("error",new t.CacheError(z))}})(),n.emit("response",U||L),typeof o=="function"&&o(U||L)};try{let L=e(I,R);L.once("error",x),L.once("abort",x),n.emit("request",L)}catch(L){n.emit("error",new t.RequestError(L))}};return(async()=>{let I=async x=>{await Promise.resolve();let C=x.cache?await this.cache.get(A):void 0;if(typeof C>"u")return E(x);let R=TO.fromObject(C.cachePolicy);if(R.satisfiesWithoutRevalidation(x)&&!x.forceRefresh){let L=R.responseHeaders(),U=new _oe(C.statusCode,L,C.body,C.url);U.cachePolicy=R,U.fromCache=!0,n.emit("response",U),typeof o=="function"&&o(U)}else p=C,x.headers=R.revalidationHeaders(x),E(x)},v=x=>n.emit("error",new t.CacheError(x));this.cache.once("error",v),n.on("response",()=>this.cache.removeListener("error",v));try{await I(r)}catch(x){r.automaticFailover&&!h&&E(r),n.emit("error",new t.CacheError(x))}})(),n}}};function Wnt(t){let e={...t};return e.path=`${t.pathname||"/"}${t.search||""}`,delete e.pathname,delete e.search,e}function NO(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||"localhost",port:t.port,pathname:t.pathname,search:t.search}}XI.RequestError=class extends Error{constructor(t){super(t.message),this.name="RequestError",Object.assign(this,t)}};XI.CacheError=class extends Error{constructor(t){super(t.message),this.name="CacheError",Object.assign(this,t)}};Hoe.exports=XI});var Goe=_((NLt,joe)=>{"use strict";var Knt=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];joe.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(t).concat(Knt)),o={};for(let a of r)a in e||(o[a]={get(){let n=t[a];return typeof n=="function"?n.bind(t):n},set(n){t[a]=n},enumerable:!0,configurable:!1});return Object.defineProperties(e,o),t.once("aborted",()=>{e.destroy(),e.emit("aborted")}),t.once("close",()=>{t.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var Woe=_((LLt,Yoe)=>{"use strict";var{Transform:Vnt,PassThrough:znt}=ve("stream"),LO=ve("zlib"),Jnt=Goe();Yoe.exports=t=>{let e=(t.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return t;let r=e==="br";if(r&&typeof LO.createBrotliDecompress!="function")return t.destroy(new Error("Brotli is not supported on Node.js < 12")),t;let o=!0,a=new Vnt({transform(A,p,h){o=!1,h(null,A)},flush(A){A()}}),n=new znt({autoDestroy:!1,destroy(A,p){t.destroy(),p(A)}}),u=r?LO.createBrotliDecompress():LO.createUnzip();return u.once("error",A=>{if(o&&!t.readable){n.end();return}n.destroy(A)}),Jnt(t,n),t.pipe(a).pipe(u).pipe(n),n}});var OO=_((MLt,Koe)=>{"use strict";var MO=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[o,a]of this.oldCache.entries())this.onEviction(o,a);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};Koe.exports=MO});var _O=_((OLt,Xoe)=>{"use strict";var Xnt=ve("events"),Znt=ve("tls"),$nt=ve("http2"),eit=OO(),ra=Symbol("currentStreamsCount"),Voe=Symbol("request"),Kl=Symbol("cachedOriginSet"),ty=Symbol("gracefullyClosing"),tit=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],rit=(t,e,r)=>{let o=0,a=t.length;for(;o<a;){let n=o+a>>>1;r(t[n],e)?o=n+1:a=n}return o},nit=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,UO=(t,e)=>{for(let r of t)r[Kl].length<e[Kl].length&&r[Kl].every(o=>e[Kl].includes(o))&&r[ra]+e[ra]<=e.remoteSettings.maxConcurrentStreams&&Joe(r)},iit=(t,e)=>{for(let r of t)e[Kl].length<r[Kl].length&&e[Kl].every(o=>r[Kl].includes(o))&&e[ra]+r[ra]<=r.remoteSettings.maxConcurrentStreams&&Joe(e)},zoe=({agent:t,isFree:e})=>{let r={};for(let o in t.sessions){let n=t.sessions[o].filter(u=>{let A=u[Cg.kCurrentStreamsCount]<u.remoteSettings.maxConcurrentStreams;return e?A:!A});n.length!==0&&(r[o]=n)}return r},Joe=t=>{t[ty]=!0,t[ra]===0&&t.close()},Cg=class t extends Xnt{constructor({timeout:e=6e4,maxSessions:r=1/0,maxFreeSessions:o=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=o,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new eit({maxSize:a})}static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r="";if(e)for(let o of tit)e[o]&&(r+=`:${e[o]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let o=this.queue[e][r];this._sessionsCount<this.maxSessions&&!o.completed&&(o.completed=!0,o())}getSession(e,r,o){return new Promise((a,n)=>{Array.isArray(o)?(o=[...o],a()):o=[{resolve:a,reject:n}];let u=this.normalizeOptions(r),A=t.normalizeOrigin(e,r&&r.servername);if(A===void 0){for(let{reject:E}of o)E(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(u in this.sessions){let E=this.sessions[u],I=-1,v=-1,x;for(let C of E){let R=C.remoteSettings.maxConcurrentStreams;if(R<I)break;if(C[Kl].includes(A)){let L=C[ra];if(L>=R||C[ty]||C.destroyed)continue;x||(I=R),L>v&&(x=C,v=L)}}if(x){if(o.length!==1){for(let{reject:C}of o){let R=new Error(`Expected the length of listeners to be 1, got ${o.length}. -Please report this to https://github.com/szmarczak/http2-wrapper/`);C(R)}return}o[0].resolve(x);return}}if(u in this.queue){if(A in this.queue[u]){this.queue[u][A].listeners.push(...o),this._tryToCreateNewSession(u,A);return}}else this.queue[u]={};let p=()=>{u in this.queue&&this.queue[u][A]===h&&(delete this.queue[u][A],Object.keys(this.queue[u]).length===0&&delete this.queue[u])},h=()=>{let E=`${A}:${u}`,I=!1;try{let v=$nt.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(E),...r});v[ra]=0,v[ty]=!1;let x=()=>v[ra]<v.remoteSettings.maxConcurrentStreams,C=!0;v.socket.once("session",L=>{this.tlsSessionCache.set(E,L)}),v.once("error",L=>{for(let{reject:U}of o)U(L);this.tlsSessionCache.delete(E)}),v.setTimeout(this.timeout,()=>{v.destroy()}),v.once("close",()=>{if(I){C&&this._freeSessionsCount--,this._sessionsCount--;let L=this.sessions[u];L.splice(L.indexOf(v),1),L.length===0&&delete this.sessions[u]}else{let L=new Error("Session closed without receiving a SETTINGS frame");L.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:U}of o)U(L);p()}this._tryToCreateNewSession(u,A)});let R=()=>{if(!(!(u in this.queue)||!x())){for(let L of v[Kl])if(L in this.queue[u]){let{listeners:U}=this.queue[u][L];for(;U.length!==0&&x();)U.shift().resolve(v);let z=this.queue[u];if(z[L].listeners.length===0&&(delete z[L],Object.keys(z).length===0)){delete this.queue[u];break}if(!x())break}}};v.on("origin",()=>{v[Kl]=v.originSet,x()&&(R(),UO(this.sessions[u],v))}),v.once("remoteSettings",()=>{if(v.ref(),v.unref(),this._sessionsCount++,h.destroyed){let L=new Error("Agent has been destroyed");for(let U of o)U.reject(L);v.destroy();return}v[Kl]=v.originSet;{let L=this.sessions;if(u in L){let U=L[u];U.splice(rit(U,v,nit),0,v)}else L[u]=[v]}this._freeSessionsCount+=1,I=!0,this.emit("session",v),R(),p(),v[ra]===0&&this._freeSessionsCount>this.maxFreeSessions&&v.close(),o.length!==0&&(this.getSession(A,r,o),o.length=0),v.on("remoteSettings",()=>{R(),UO(this.sessions[u],v)})}),v[Voe]=v.request,v.request=(L,U)=>{if(v[ty])throw new Error("The session is gracefully closing. No new streams are allowed.");let z=v[Voe](L,U);return v.ref(),++v[ra],v[ra]===v.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,z.once("close",()=>{if(C=x(),--v[ra],!v.destroyed&&!v.closed&&(iit(this.sessions[u],v),x()&&!v.closed)){C||(this._freeSessionsCount++,C=!0);let te=v[ra]===0;te&&v.unref(),te&&(this._freeSessionsCount>this.maxFreeSessions||v[ty])?v.close():(UO(this.sessions[u],v),R())}}),z}}catch(v){for(let x of o)x.reject(v);p()}};h.listeners=o,h.completed=!1,h.destroyed=!1,this.queue[u][A]=h,this._tryToCreateNewSession(u,A)})}request(e,r,o,a){return new Promise((n,u)=>{this.getSession(e,r,[{reject:u,resolve:A=>{try{n(A.request(o,a))}catch(p){u(p)}}}])})}createConnection(e,r){return t.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let o=e.port||443,a=e.hostname||e.host;return typeof r.servername>"u"&&(r.servername=a),Znt.connect(o,a,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[ra]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let o of r)o.destroy(e);for(let r of Object.values(this.queue))for(let o of Object.values(r))o.destroyed=!0;this.queue={}}get freeSessions(){return zoe({agent:this,isFree:!0})}get busySessions(){return zoe({agent:this,isFree:!1})}};Cg.kCurrentStreamsCount=ra;Cg.kGracefullyClosing=ty;Xoe.exports={Agent:Cg,globalAgent:new Cg}});var qO=_((ULt,Zoe)=>{"use strict";var{Readable:sit}=ve("stream"),HO=class extends sit{constructor(e,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Zoe.exports=HO});var jO=_((_Lt,$oe)=>{"use strict";$oe.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var tae=_((HLt,eae)=>{"use strict";eae.exports=(t,e,r)=>{for(let o of r)t.on(o,(...a)=>e.emit(o,...a))}});var nae=_((qLt,rae)=>{"use strict";rae.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var sae=_((GLt,iae)=>{"use strict";var ry=(t,e,r)=>{iae.exports[e]=class extends t{constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.name} [${e}]`,this.code=e}}};ry(TypeError,"ERR_INVALID_ARG_TYPE",t=>{let e=t[0].includes(".")?"property":"argument",r=t[1],o=Array.isArray(r);return o&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${t[0]}" ${e} must be ${o?"one of":"of"} type ${r}. Received ${typeof t[2]}`});ry(TypeError,"ERR_INVALID_PROTOCOL",t=>`Protocol "${t[0]}" not supported. Expected "${t[1]}"`);ry(Error,"ERR_HTTP_HEADERS_SENT",t=>`Cannot ${t[0]} headers after they are sent to the client`);ry(TypeError,"ERR_INVALID_HTTP_TOKEN",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);ry(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",t=>`Invalid value "${t[0]} for header "${t[1]}"`);ry(TypeError,"ERR_INVALID_CHAR",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var VO=_((YLt,fae)=>{"use strict";var oit=ve("http2"),{Writable:ait}=ve("stream"),{Agent:oae,globalAgent:lit}=_O(),cit=qO(),uit=jO(),Ait=tae(),fit=nae(),{ERR_INVALID_ARG_TYPE:GO,ERR_INVALID_PROTOCOL:pit,ERR_HTTP_HEADERS_SENT:aae,ERR_INVALID_HTTP_TOKEN:hit,ERR_HTTP_INVALID_HEADER_VALUE:git,ERR_INVALID_CHAR:dit}=sae(),{HTTP2_HEADER_STATUS:lae,HTTP2_HEADER_METHOD:cae,HTTP2_HEADER_PATH:uae,HTTP2_METHOD_CONNECT:mit}=oit.constants,Qo=Symbol("headers"),YO=Symbol("origin"),WO=Symbol("session"),Aae=Symbol("options"),YS=Symbol("flushedHeaders"),ZI=Symbol("jobs"),yit=/^[\^`\-\w!#$%&*+.|~]+$/,Eit=/[^\t\u0020-\u007E\u0080-\u00FF]/,KO=class extends ait{constructor(e,r,o){super({autoDestroy:!1});let a=typeof e=="string"||e instanceof URL;if(a&&(e=uit(e instanceof URL?e:new URL(e))),typeof r=="function"||r===void 0?(o=r,r=a?e:{...e}):r={...e,...r},r.h2session)this[WO]=r.h2session;else if(r.agent===!1)this.agent=new oae({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new oae({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=lit;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new GO("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new pit(r.protocol,"https:");let n=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,u=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:A}=r;if(r.timeout=void 0,this[Qo]=Object.create(null),this[ZI]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[p,h]of Object.entries(r.headers))this.setHeader(p,h);r.auth&&!("authorization"in this[Qo])&&(this[Qo].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[Aae]=r,n===443?(this[YO]=`https://${u}`,":authority"in this[Qo]||(this[Qo][":authority"]=u)):(this[YO]=`https://${u}:${n}`,":authority"in this[Qo]||(this[Qo][":authority"]=`${u}:${n}`)),A&&this.setTimeout(A),o&&this.once("response",o),this[YS]=!1}get method(){return this[Qo][cae]}set method(e){e&&(this[Qo][cae]=e.toUpperCase())}get path(){return this[Qo][uae]}set path(e){e&&(this[Qo][uae]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,r,o){if(this._mustNotHaveABody){o(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let a=()=>this._request.write(e,r,o);this._request?a():this[ZI].push(a)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[ZI].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[YS]||this.destroyed)return;this[YS]=!0;let e=this.method===mit,r=o=>{if(this._request=o,this.destroyed){o.destroy();return}e||Ait(o,this,["timeout","continue","close","error"]);let a=u=>(...A)=>{!this.writable&&!this.destroyed?u(...A):this.once("finish",()=>{u(...A)})};o.once("response",a((u,A,p)=>{let h=new cit(this.socket,o.readableHighWaterMark);this.res=h,h.req=this,h.statusCode=u[lae],h.headers=u,h.rawHeaders=p,h.once("end",()=>{this.aborted?(h.aborted=!0,h.emit("aborted")):(h.complete=!0,h.socket=null,h.connection=null)}),e?(h.upgrade=!0,this.emit("connect",h,o,Buffer.alloc(0))?this.emit("close"):o.destroy()):(o.on("data",E=>{!h._dumped&&!h.push(E)&&o.pause()}),o.once("end",()=>{h.push(null)}),this.emit("response",h)||h._dump())})),o.once("headers",a(u=>this.emit("information",{statusCode:u[lae]}))),o.once("trailers",a((u,A,p)=>{let{res:h}=this;h.trailers=u,h.rawTrailers=p}));let{socket:n}=o.session;this.socket=n,this.connection=n;for(let u of this[ZI])u();this.emit("socket",this.socket)};if(this[WO])try{r(this[WO].request(this[Qo]))}catch(o){this.emit("error",o)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[YO],this[Aae],this[Qo]))}catch(o){this.emit("error",o)}}}getHeader(e){if(typeof e!="string")throw new GO("name","string",e);return this[Qo][e.toLowerCase()]}get headersSent(){return this[YS]}removeHeader(e){if(typeof e!="string")throw new GO("name","string",e);if(this.headersSent)throw new aae("remove");delete this[Qo][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new aae("set");if(typeof e!="string"||!yit.test(e)&&!fit(e))throw new hit("Header name",e);if(typeof r>"u")throw new git(r,e);if(Eit.test(r))throw new dit("header content",e);this[Qo][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let o=()=>this._request.setTimeout(e,r);return this._request?o():this[ZI].push(o),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};fae.exports=KO});var hae=_((WLt,pae)=>{"use strict";var Cit=ve("tls");pae.exports=(t={},e=Cit.connect)=>new Promise((r,o)=>{let a=!1,n,u=async()=>{await p,n.off("timeout",A),n.off("error",o),t.resolveSocket?(r({alpnProtocol:n.alpnProtocol,socket:n,timeout:a}),a&&(await Promise.resolve(),n.emit("timeout"))):(n.destroy(),r({alpnProtocol:n.alpnProtocol,timeout:a}))},A=async()=>{a=!0,u()},p=(async()=>{try{n=await e(t,u),n.on("error",o),n.once("timeout",A)}catch(h){o(h)}})()})});var dae=_((KLt,gae)=>{"use strict";var wit=ve("net");gae.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?e=r:e=r.slice(1,-1):e=r.split(":",1)[0]),wit.isIP(e)?"":e}});var Eae=_((VLt,JO)=>{"use strict";var mae=ve("http"),zO=ve("https"),Iit=hae(),Bit=OO(),vit=VO(),Dit=dae(),Pit=jO(),WS=new Bit({maxSize:100}),$I=new Map,yae=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let o=()=>{t.emit("free",e,r)};e.on("free",o);let a=()=>{t.removeSocket(e,r)};e.on("close",a);let n=()=>{t.removeSocket(e,r),e.off("close",a),e.off("free",o),e.off("agentRemove",n)};e.on("agentRemove",n),t.emit("free",e,r)},Sit=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!WS.has(e)){if($I.has(e))return(await $I.get(e)).alpnProtocol;let{path:r,agent:o}=t;t.path=t.socketPath;let a=Iit(t);$I.set(e,a);try{let{socket:n,alpnProtocol:u}=await a;if(WS.set(e,u),t.path=r,u==="h2")n.destroy();else{let{globalAgent:A}=zO,p=zO.Agent.prototype.createConnection;o?o.createConnection===p?yae(o,n,t):n.destroy():A.createConnection===p?yae(A,n,t):n.destroy()}return $I.delete(e),u}catch(n){throw $I.delete(e),n}}return WS.get(e)};JO.exports=async(t,e,r)=>{if((typeof t=="string"||t instanceof URL)&&(t=Pit(new URL(t))),typeof e=="function"&&(r=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...t,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let o=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||Dit(e),e.port=e.port||(o?443:80),e._defaultAgent=o?zO.globalAgent:mae.globalAgent;let a=e.agent;if(a){if(a.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=a[o?"https":"http"]}return o&&await Sit(e)==="h2"?(a&&(e.agent=a.http2),new vit(e,r)):mae.request(e,r)};JO.exports.protocolCache=WS});var wae=_((zLt,Cae)=>{"use strict";var bit=ve("http2"),xit=_O(),XO=VO(),kit=qO(),Qit=Eae(),Fit=(t,e,r)=>new XO(t,e,r),Rit=(t,e,r)=>{let o=new XO(t,e,r);return o.end(),o};Cae.exports={...bit,ClientRequest:XO,IncomingMessage:kit,...xit,request:Fit,get:Rit,auto:Qit}});var $O=_(ZO=>{"use strict";Object.defineProperty(ZO,"__esModule",{value:!0});var Iae=Qf();ZO.default=t=>Iae.default.nodeStream(t)&&Iae.default.function_(t.getBoundary)});var Pae=_(e4=>{"use strict";Object.defineProperty(e4,"__esModule",{value:!0});var vae=ve("fs"),Dae=ve("util"),Bae=Qf(),Tit=$O(),Nit=Dae.promisify(vae.stat);e4.default=async(t,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!t)return 0;if(Bae.default.string(t))return Buffer.byteLength(t);if(Bae.default.buffer(t))return t.length;if(Tit.default(t))return Dae.promisify(t.getLength.bind(t))();if(t instanceof vae.ReadStream){let{size:r}=await Nit(t.path);return r===0?void 0:r}}});var r4=_(t4=>{"use strict";Object.defineProperty(t4,"__esModule",{value:!0});function Lit(t,e,r){let o={};for(let a of r)o[a]=(...n)=>{e.emit(a,...n)},t.on(a,o[a]);return()=>{for(let a of r)t.off(a,o[a])}}t4.default=Lit});var Sae=_(n4=>{"use strict";Object.defineProperty(n4,"__esModule",{value:!0});n4.default=()=>{let t=[];return{once(e,r,o){e.once(r,o),t.push({origin:e,event:r,fn:o})},unhandleAll(){for(let e of t){let{origin:r,event:o,fn:a}=e;r.removeListener(o,a)}t.length=0}}}});var xae=_(e1=>{"use strict";Object.defineProperty(e1,"__esModule",{value:!0});e1.TimeoutError=void 0;var Mit=ve("net"),Oit=Sae(),bae=Symbol("reentry"),Uit=()=>{},KS=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};e1.TimeoutError=KS;e1.default=(t,e,r)=>{if(bae in t)return Uit;t[bae]=!0;let o=[],{once:a,unhandleAll:n}=Oit.default(),u=(I,v,x)=>{var C;let R=setTimeout(v,I,I,x);(C=R.unref)===null||C===void 0||C.call(R);let L=()=>{clearTimeout(R)};return o.push(L),L},{host:A,hostname:p}=r,h=(I,v)=>{t.destroy(new KS(I,v))},E=()=>{for(let I of o)I();n()};if(t.once("error",I=>{if(E(),t.listenerCount("error")===0)throw I}),t.once("close",E),a(t,"response",I=>{a(I,"end",E)}),typeof e.request<"u"&&u(e.request,h,"request"),typeof e.socket<"u"){let I=()=>{h(e.socket,"socket")};t.setTimeout(e.socket,I),o.push(()=>{t.removeListener("timeout",I)})}return a(t,"socket",I=>{var v;let{socketPath:x}=t;if(I.connecting){let C=!!(x??Mit.isIP((v=p??A)!==null&&v!==void 0?v:"")!==0);if(typeof e.lookup<"u"&&!C&&typeof I.address().address>"u"){let R=u(e.lookup,h,"lookup");a(I,"lookup",R)}if(typeof e.connect<"u"){let R=()=>u(e.connect,h,"connect");C?a(I,"connect",R()):a(I,"lookup",L=>{L===null&&a(I,"connect",R())})}typeof e.secureConnect<"u"&&r.protocol==="https:"&&a(I,"connect",()=>{let R=u(e.secureConnect,h,"secureConnect");a(I,"secureConnect",R)})}if(typeof e.send<"u"){let C=()=>u(e.send,h,"send");I.connecting?a(I,"connect",()=>{a(t,"upload-complete",C())}):a(t,"upload-complete",C())}}),typeof e.response<"u"&&a(t,"upload-complete",()=>{let I=u(e.response,h,"response");a(t,"response",I)}),E}});var Qae=_(i4=>{"use strict";Object.defineProperty(i4,"__esModule",{value:!0});var kae=Qf();i4.default=t=>{t=t;let e={protocol:t.protocol,hostname:kae.default.string(t.hostname)&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return kae.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var Fae=_(s4=>{"use strict";Object.defineProperty(s4,"__esModule",{value:!0});var _it=ve("url"),Hit=["protocol","host","hostname","port","pathname","search"];s4.default=(t,e)=>{var r,o;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!t){if(!e.protocol)throw new TypeError("No URL protocol specified");t=`${e.protocol}//${(o=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&o!==void 0?o:""}`}let a=new _it.URL(t);if(e.path){let n=e.path.indexOf("?");n===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,n),e.search=e.path.slice(n+1)),delete e.path}for(let n of Hit)e[n]&&(a[n]=e[n].toString());return a}});var Rae=_(a4=>{"use strict";Object.defineProperty(a4,"__esModule",{value:!0});var o4=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};a4.default=o4});var c4=_(l4=>{"use strict";Object.defineProperty(l4,"__esModule",{value:!0});var qit=async t=>{let e=[],r=0;for await(let o of t)e.push(o),r+=Buffer.byteLength(o);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(""))};l4.default=qit});var Nae=_(wg=>{"use strict";Object.defineProperty(wg,"__esModule",{value:!0});wg.dnsLookupIpVersionToFamily=wg.isDnsLookupIpVersion=void 0;var Tae={auto:0,ipv4:4,ipv6:6};wg.isDnsLookupIpVersion=t=>t in Tae;wg.dnsLookupIpVersionToFamily=t=>{if(wg.isDnsLookupIpVersion(t))return Tae[t];throw new Error("Invalid DNS lookup IP version")}});var u4=_(VS=>{"use strict";Object.defineProperty(VS,"__esModule",{value:!0});VS.isResponseOk=void 0;VS.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var Mae=_(A4=>{"use strict";Object.defineProperty(A4,"__esModule",{value:!0});var Lae=new Set;A4.default=t=>{Lae.has(t)||(Lae.add(t),process.emitWarning(`Got: ${t}`,{type:"DeprecationWarning"}))}});var Oae=_(f4=>{"use strict";Object.defineProperty(f4,"__esModule",{value:!0});var Ai=Qf(),jit=(t,e)=>{if(Ai.default.null_(t.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");Ai.assert.any([Ai.default.string,Ai.default.undefined],t.encoding),Ai.assert.any([Ai.default.boolean,Ai.default.undefined],t.resolveBodyOnly),Ai.assert.any([Ai.default.boolean,Ai.default.undefined],t.methodRewriting),Ai.assert.any([Ai.default.boolean,Ai.default.undefined],t.isStream),Ai.assert.any([Ai.default.string,Ai.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType="text");let{retry:r}=t;if(e?t.retry={...e.retry}:t.retry={calculateDelay:o=>o.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},Ai.default.object(r)?(t.retry={...t.retry,...r},t.retry.methods=[...new Set(t.retry.methods.map(o=>o.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):Ai.default.number(r)&&(t.retry.limit=r),Ai.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(Ai.default.number))),Ai.default.object(t.pagination)){e&&(t.pagination={...e.pagination,...t.pagination});let{pagination:o}=t;if(!Ai.default.function_(o.transform))throw new Error("`options.pagination.transform` must be implemented");if(!Ai.default.function_(o.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!Ai.default.function_(o.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!Ai.default.function_(o.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return t.responseType==="json"&&t.headers.accept===void 0&&(t.headers.accept="application/json"),t};f4.default=jit});var Uae=_(t1=>{"use strict";Object.defineProperty(t1,"__esModule",{value:!0});t1.retryAfterStatusCodes=void 0;t1.retryAfterStatusCodes=new Set([413,429,503]);var Git=({attemptCount:t,retryOptions:e,error:r,retryAfter:o})=>{if(t>e.limit)return 0;let a=e.methods.includes(r.options.method),n=e.errorCodes.includes(r.code),u=r.response&&e.statusCodes.includes(r.response.statusCode);if(!a||!n&&!u)return 0;if(r.response){if(o)return e.maxRetryAfter===void 0||o>e.maxRetryAfter?0:o;if(r.response.statusCode===413)return 0}let A=Math.random()*100;return 2**(t-1)*1e3+A};t1.default=Git});var i1=_(Bn=>{"use strict";Object.defineProperty(Bn,"__esModule",{value:!0});Bn.UnsupportedProtocolError=Bn.ReadError=Bn.TimeoutError=Bn.UploadError=Bn.CacheError=Bn.HTTPError=Bn.MaxRedirectsError=Bn.RequestError=Bn.setNonEnumerableProperties=Bn.knownHookEvents=Bn.withoutBody=Bn.kIsNormalizedAlready=void 0;var _ae=ve("util"),Hae=ve("stream"),Yit=ve("fs"),sh=ve("url"),qae=ve("http"),p4=ve("http"),Wit=ve("https"),Kit=roe(),Vit=coe(),jae=qoe(),zit=Woe(),Jit=wae(),Xit=jS(),ot=Qf(),Zit=Pae(),Gae=$O(),$it=r4(),Yae=xae(),est=Qae(),Wae=Fae(),tst=Rae(),rst=c4(),Kae=Nae(),nst=u4(),oh=Mae(),ist=Oae(),sst=Uae(),h4,$s=Symbol("request"),XS=Symbol("response"),ny=Symbol("responseSize"),iy=Symbol("downloadedSize"),sy=Symbol("bodySize"),oy=Symbol("uploadedSize"),zS=Symbol("serverResponsesPiped"),Vae=Symbol("unproxyEvents"),zae=Symbol("isFromCache"),g4=Symbol("cancelTimeouts"),Jae=Symbol("startedReading"),ay=Symbol("stopReading"),JS=Symbol("triggerRead"),ah=Symbol("body"),r1=Symbol("jobs"),Xae=Symbol("originalResponse"),Zae=Symbol("retryTimeout");Bn.kIsNormalizedAlready=Symbol("isNormalizedAlready");var ost=ot.default.string(process.versions.brotli);Bn.withoutBody=new Set(["GET","HEAD"]);Bn.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function ast(t){for(let e in t){let r=t[e];if(!ot.default.string(r)&&!ot.default.number(r)&&!ot.default.boolean(r)&&!ot.default.null_(r)&&!ot.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function lst(t){return ot.default.object(t)&&!("statusCode"in t)}var d4=new tst.default,cst=async t=>new Promise((e,r)=>{let o=a=>{r(a)};t.pending||e(),t.once("error",o),t.once("ready",()=>{t.off("error",o),e()})}),ust=new Set([300,301,302,303,304,307,308]),Ast=["context","body","json","form"];Bn.setNonEnumerableProperties=(t,e)=>{let r={};for(let o of t)if(o)for(let a of Ast)a in o&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:o[a]});Object.defineProperties(e,r)};var Ji=class extends Error{constructor(e,r,o){var a;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=r.code,o instanceof ib?(Object.defineProperty(this,"request",{enumerable:!1,value:o}),Object.defineProperty(this,"response",{enumerable:!1,value:o[XS]}),Object.defineProperty(this,"options",{enumerable:!1,value:o.options})):Object.defineProperty(this,"options",{enumerable:!1,value:o}),this.timings=(a=this.request)===null||a===void 0?void 0:a.timings,ot.default.string(r.stack)&&ot.default.string(this.stack)){let n=this.stack.indexOf(this.message)+this.message.length,u=this.stack.slice(n).split(` -`).reverse(),A=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` -`).reverse();for(;A.length!==0&&A[0]===u[0];)u.shift();this.stack=`${this.stack.slice(0,n)}${u.reverse().join(` -`)}${A.reverse().join(` -`)}`}}};Bn.RequestError=Ji;var ZS=class extends Ji{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Bn.MaxRedirectsError=ZS;var $S=class extends Ji{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Bn.HTTPError=$S;var eb=class extends Ji{constructor(e,r){super(e.message,e,r),this.name="CacheError"}};Bn.CacheError=eb;var tb=class extends Ji{constructor(e,r){super(e.message,e,r),this.name="UploadError"}};Bn.UploadError=tb;var rb=class extends Ji{constructor(e,r,o){super(e.message,e,o),this.name="TimeoutError",this.event=e.event,this.timings=r}};Bn.TimeoutError=rb;var n1=class extends Ji{constructor(e,r){super(e.message,e,r),this.name="ReadError"}};Bn.ReadError=n1;var nb=class extends Ji{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Bn.UnsupportedProtocolError=nb;var fst=["socket","connect","continue","information","upgrade","timeout"],ib=class extends Hae.Duplex{constructor(e,r={},o){super({autoDestroy:!1,highWaterMark:0}),this[iy]=0,this[oy]=0,this.requestInitialized=!1,this[zS]=new Set,this.redirects=[],this[ay]=!1,this[JS]=!1,this[r1]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),n=()=>this._lockWrite();this.on("pipe",h=>{h.prependListener("data",a),h.on("data",n),h.prependListener("end",a),h.on("end",n)}),this.on("unpipe",h=>{h.off("data",a),h.off("data",n),h.off("end",a),h.off("end",n)}),this.on("pipe",h=>{h instanceof p4.IncomingMessage&&(this.options.headers={...h.headers,...this.options.headers})});let{json:u,body:A,form:p}=r;if((u||A||p)&&this._lockWrite(),Bn.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,o)}catch(h){ot.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(h);return}(async()=>{var h;try{this.options.body instanceof Yit.ReadStream&&await cst(this.options.body);let{url:E}=this.options;if(!E)throw new TypeError("Missing `url` property");if(this.requestUrl=E.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(h=this[$s])===null||h===void 0||h.destroy();return}for(let I of this[r1])I();this[r1].length=0,this.requestInitialized=!0}catch(E){if(E instanceof Ji){this._beforeError(E);return}this.destroyed||this.destroy(E)}})()}static normalizeArguments(e,r,o){var a,n,u,A,p;let h=r;if(ot.default.object(e)&&!ot.default.urlInstance(e))r={...o,...e,...r};else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...o,...r},e!==void 0&&(r.url=e),ot.default.urlInstance(r.url)&&(r.url=new sh.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),ot.assert.any([ot.default.string,ot.default.undefined],r.method),ot.assert.any([ot.default.object,ot.default.undefined],r.headers),ot.assert.any([ot.default.string,ot.default.urlInstance,ot.default.undefined],r.prefixUrl),ot.assert.any([ot.default.object,ot.default.undefined],r.cookieJar),ot.assert.any([ot.default.object,ot.default.string,ot.default.undefined],r.searchParams),ot.assert.any([ot.default.object,ot.default.string,ot.default.undefined],r.cache),ot.assert.any([ot.default.object,ot.default.number,ot.default.undefined],r.timeout),ot.assert.any([ot.default.object,ot.default.undefined],r.context),ot.assert.any([ot.default.object,ot.default.undefined],r.hooks),ot.assert.any([ot.default.boolean,ot.default.undefined],r.decompress),ot.assert.any([ot.default.boolean,ot.default.undefined],r.ignoreInvalidCookies),ot.assert.any([ot.default.boolean,ot.default.undefined],r.followRedirect),ot.assert.any([ot.default.number,ot.default.undefined],r.maxRedirects),ot.assert.any([ot.default.boolean,ot.default.undefined],r.throwHttpErrors),ot.assert.any([ot.default.boolean,ot.default.undefined],r.http2),ot.assert.any([ot.default.boolean,ot.default.undefined],r.allowGetBody),ot.assert.any([ot.default.string,ot.default.undefined],r.localAddress),ot.assert.any([Kae.isDnsLookupIpVersion,ot.default.undefined],r.dnsLookupIpVersion),ot.assert.any([ot.default.object,ot.default.undefined],r.https),ot.assert.any([ot.default.boolean,ot.default.undefined],r.rejectUnauthorized),r.https&&(ot.assert.any([ot.default.boolean,ot.default.undefined],r.https.rejectUnauthorized),ot.assert.any([ot.default.function_,ot.default.undefined],r.https.checkServerIdentity),ot.assert.any([ot.default.string,ot.default.object,ot.default.array,ot.default.undefined],r.https.certificateAuthority),ot.assert.any([ot.default.string,ot.default.object,ot.default.array,ot.default.undefined],r.https.key),ot.assert.any([ot.default.string,ot.default.object,ot.default.array,ot.default.undefined],r.https.certificate),ot.assert.any([ot.default.string,ot.default.undefined],r.https.passphrase),ot.assert.any([ot.default.string,ot.default.buffer,ot.default.array,ot.default.undefined],r.https.pfx)),ot.assert.any([ot.default.object,ot.default.undefined],r.cacheOptions),ot.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===o?.headers?r.headers={...r.headers}:r.headers=Xit({...o?.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==o?.searchParams){let x;if(ot.default.string(r.searchParams)||r.searchParams instanceof sh.URLSearchParams)x=new sh.URLSearchParams(r.searchParams);else{ast(r.searchParams),x=new sh.URLSearchParams;for(let C in r.searchParams){let R=r.searchParams[C];R===null?x.append(C,""):R!==void 0&&x.append(C,R)}}(a=o?.searchParams)===null||a===void 0||a.forEach((C,R)=>{x.has(R)||x.append(R,C)}),r.searchParams=x}if(r.username=(n=r.username)!==null&&n!==void 0?n:"",r.password=(u=r.password)!==null&&u!==void 0?u:"",ot.default.undefined(r.prefixUrl)?r.prefixUrl=(A=o?.prefixUrl)!==null&&A!==void 0?A:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),ot.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=Wae.default(r.prefixUrl+r.url,r)}else(ot.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=Wae.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:x}=r;Object.defineProperty(r,"prefixUrl",{set:R=>{let L=r.url;if(!L.href.startsWith(R))throw new Error(`Cannot change \`prefixUrl\` from ${x} to ${R}: ${L.href}`);r.url=new sh.URL(R+L.href.slice(x.length)),x=R},get:()=>x});let{protocol:C}=r.url;if(C==="unix:"&&(C="http:",r.url=new sh.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),C!=="http:"&&C!=="https:")throw new nb(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:E}=r;if(E){let{setCookie:x,getCookieString:C}=E;ot.assert.function_(x),ot.assert.function_(C),x.length===4&&C.length===0&&(x=_ae.promisify(x.bind(r.cookieJar)),C=_ae.promisify(C.bind(r.cookieJar)),r.cookieJar={setCookie:x,getCookieString:C})}let{cache:I}=r;if(I&&(d4.has(I)||d4.set(I,new jae((x,C)=>{let R=x[$s](x,C);return ot.default.promise(R)&&(R.once=(L,U)=>{if(L==="error")R.catch(U);else if(L==="abort")(async()=>{try{(await R).once("abort",U)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${L}`);return R}),R},I))),r.cacheOptions={...r.cacheOptions},r.dnsCache===!0)h4||(h4=new Vit.default),r.dnsCache=h4;else if(!ot.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${ot.default(r.dnsCache)}`);ot.default.number(r.timeout)?r.timeout={request:r.timeout}:o&&r.timeout!==o.timeout?r.timeout={...o.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});let v=r.hooks===o?.hooks;r.hooks={...r.hooks};for(let x of Bn.knownHookEvents)if(x in r.hooks)if(ot.default.array(r.hooks[x]))r.hooks[x]=[...r.hooks[x]];else throw new TypeError(`Parameter \`${x}\` must be an Array, got ${ot.default(r.hooks[x])}`);else r.hooks[x]=[];if(o&&!v)for(let x of Bn.knownHookEvents)o.hooks[x].length>0&&(r.hooks[x]=[...o.hooks[x],...r.hooks[x]]);if("family"in r&&oh.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),o?.https&&(r.https={...o.https,...r.https}),"rejectUnauthorized"in r&&oh.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&oh.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&oh.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&oh.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&oh.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&oh.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&oh.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let x in r.agent)if(x!=="http"&&x!=="https"&&x!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${x}\``)}return r.maxRedirects=(p=r.maxRedirects)!==null&&p!==void 0?p:0,Bn.setNonEnumerableProperties([o,h],r),ist.default(r,o)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,o=!ot.default.undefined(e.form),a=!ot.default.undefined(e.json),n=!ot.default.undefined(e.body),u=o||a||n,A=Bn.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=A,u){if(A)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([n,o,a].filter(p=>p).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(n&&!(e.body instanceof Hae.Readable)&&!ot.default.string(e.body)&&!ot.default.buffer(e.body)&&!Gae.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(o&&!ot.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let p=!ot.default.string(r["content-type"]);n?(Gae.default(e.body)&&p&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[ah]=e.body):o?(p&&(r["content-type"]="application/x-www-form-urlencoded"),this[ah]=new sh.URLSearchParams(e.form).toString()):(p&&(r["content-type"]="application/json"),this[ah]=e.stringifyJson(e.json));let h=await Zit.default(this[ah],e.headers);ot.default.undefined(r["content-length"])&&ot.default.undefined(r["transfer-encoding"])&&!A&&!ot.default.undefined(h)&&(r["content-length"]=String(h))}}else A?this._lockWrite():this._unlockWrite();this[sy]=Number(r["content-length"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:o}=r;this[Xae]=e,r.decompress&&(e=zit(e));let a=e.statusCode,n=e;n.statusMessage=n.statusMessage?n.statusMessage:qae.STATUS_CODES[a],n.url=r.url.toString(),n.requestUrl=this.requestUrl,n.redirectUrls=this.redirects,n.request=this,n.isFromCache=e.fromCache||!1,n.ip=this.ip,n.retryCount=this.retryCount,this[zae]=n.isFromCache,this[ny]=Number(e.headers["content-length"])||void 0,this[XS]=e,e.once("end",()=>{this[ny]=this[iy],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",A=>{e.destroy(),this._beforeError(new n1(A,this))}),e.once("aborted",()=>{this._beforeError(new n1({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let u=e.headers["set-cookie"];if(ot.default.object(r.cookieJar)&&u){let A=u.map(async p=>r.cookieJar.setCookie(p,o.toString()));r.ignoreInvalidCookies&&(A=A.map(async p=>p.catch(()=>{})));try{await Promise.all(A)}catch(p){this._beforeError(p);return}}if(r.followRedirect&&e.headers.location&&ust.has(a)){if(e.resume(),this[$s]&&(this[g4](),delete this[$s],this[Vae]()),(a===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[ah]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new ZS(this));return}try{let p=Buffer.from(e.headers.location,"binary").toString(),h=new sh.URL(p,o),E=h.toString();decodeURI(E),h.hostname!==o.hostname||h.port!==o.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(h.username=r.username,h.password=r.password),this.redirects.push(E),r.url=h;for(let I of r.hooks.beforeRedirect)await I(r,n);this.emit("redirect",n,r),await this._makeRequest()}catch(p){this._beforeError(p);return}return}if(r.isStream&&r.throwHttpErrors&&!nst.isResponseOk(n)){this._beforeError(new $S(n));return}e.on("readable",()=>{this[JS]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let A of this[zS])if(!A.headersSent){for(let p in e.headers){let h=r.decompress?p!=="content-encoding":!0,E=e.headers[p];h&&A.setHeader(p,E)}A.statusCode=a}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:o,url:a}=r;Kit.default(e),this[g4]=Yae.default(e,o,a);let n=r.cache?"cacheableResponse":"response";e.once(n,p=>{this._onResponse(p)}),e.once("error",p=>{var h;e.destroy(),(h=e.res)===null||h===void 0||h.removeAllListeners("end"),p=p instanceof Yae.TimeoutError?new rb(p,this.timings,this):new Ji(p.message,p,this),this._beforeError(p)}),this[Vae]=$it.default(e,this,fst),this[$s]=e,this.emit("uploadProgress",this.uploadProgress);let u=this[ah],A=this.redirects.length===0?this:e;ot.default.nodeStream(u)?(u.pipe(A),u.once("error",p=>{this._beforeError(new tb(p,this))})):(this._unlockWrite(),ot.default.undefined(u)?(this._cannotHaveBody||this._noPipe)&&(A.end(),this._lockWrite()):(this._writeRequest(u,void 0,()=>{}),A.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,r){return new Promise((o,a)=>{Object.assign(r,est.default(e)),delete r.url;let n,u=d4.get(r.cache)(r,async A=>{A._readableState.autoDestroy=!1,n&&(await n).emit("cacheableResponse",A),o(A)});r.url=e,u.once("error",a),u.once("request",async A=>{n=A,o(n)})})}async _makeRequest(){var e,r,o,a,n;let{options:u}=this,{headers:A}=u;for(let U in A)if(ot.default.undefined(A[U]))delete A[U];else if(ot.default.null_(A[U]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${U}\` header`);if(u.decompress&&ot.default.undefined(A["accept-encoding"])&&(A["accept-encoding"]=ost?"gzip, deflate, br":"gzip, deflate"),u.cookieJar){let U=await u.cookieJar.getCookieString(u.url.toString());ot.default.nonEmptyString(U)&&(u.headers.cookie=U)}for(let U of u.hooks.beforeRequest){let z=await U(u);if(!ot.default.undefined(z)){u.request=()=>z;break}}u.body&&this[ah]!==u.body&&(this[ah]=u.body);let{agent:p,request:h,timeout:E,url:I}=u;if(u.dnsCache&&!("lookup"in u)&&(u.lookup=u.dnsCache.lookup),I.hostname==="unix"){let U=/(?<socketPath>.+?):(?<path>.+)/.exec(`${I.pathname}${I.search}`);if(U?.groups){let{socketPath:z,path:te}=U.groups;Object.assign(u,{socketPath:z,path:te,host:""})}}let v=I.protocol==="https:",x;u.http2?x=Jit.auto:x=v?Wit.request:qae.request;let C=(e=u.request)!==null&&e!==void 0?e:x,R=u.cache?this._createCacheableRequest:C;p&&!u.http2&&(u.agent=p[v?"https":"http"]),u[$s]=C,delete u.request,delete u.timeout;let L=u;if(L.shared=(r=u.cacheOptions)===null||r===void 0?void 0:r.shared,L.cacheHeuristic=(o=u.cacheOptions)===null||o===void 0?void 0:o.cacheHeuristic,L.immutableMinTimeToLive=(a=u.cacheOptions)===null||a===void 0?void 0:a.immutableMinTimeToLive,L.ignoreCargoCult=(n=u.cacheOptions)===null||n===void 0?void 0:n.ignoreCargoCult,u.dnsLookupIpVersion!==void 0)try{L.family=Kae.dnsLookupIpVersionToFamily(u.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}u.https&&("rejectUnauthorized"in u.https&&(L.rejectUnauthorized=u.https.rejectUnauthorized),u.https.checkServerIdentity&&(L.checkServerIdentity=u.https.checkServerIdentity),u.https.certificateAuthority&&(L.ca=u.https.certificateAuthority),u.https.certificate&&(L.cert=u.https.certificate),u.https.key&&(L.key=u.https.key),u.https.passphrase&&(L.passphrase=u.https.passphrase),u.https.pfx&&(L.pfx=u.https.pfx));try{let U=await R(I,L);ot.default.undefined(U)&&(U=x(I,L)),u.request=h,u.timeout=E,u.agent=p,u.https&&("rejectUnauthorized"in u.https&&delete L.rejectUnauthorized,u.https.checkServerIdentity&&delete L.checkServerIdentity,u.https.certificateAuthority&&delete L.ca,u.https.certificate&&delete L.cert,u.https.key&&delete L.key,u.https.passphrase&&delete L.passphrase,u.https.pfx&&delete L.pfx),lst(U)?this._onRequest(U):this.writable?(this.once("finish",()=>{this._onResponse(U)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(U)}catch(U){throw U instanceof jae.CacheError?new eb(U,this):new Ji(U.message,U,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new Ji(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[ay])return;let{options:r}=this,o=this.retryCount+1;this[ay]=!0,e instanceof Ji||(e=new Ji(e.message,e,this));let a=e,{response:n}=a;(async()=>{if(n&&!n.body){n.setEncoding(this._readableState.encoding);try{n.rawBody=await rst.default(n),n.body=n.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let u;try{let A;n&&"retry-after"in n.headers&&(A=Number(n.headers["retry-after"]),Number.isNaN(A)?(A=Date.parse(n.headers["retry-after"])-Date.now(),A<=0&&(A=1)):A*=1e3),u=await r.retry.calculateDelay({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:sst.default({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:0})})}catch(A){this._error(new Ji(A.message,A,this));return}if(u){let A=async()=>{try{for(let p of this.options.hooks.beforeRetry)await p(this.options,a,o)}catch(p){this._error(new Ji(p.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",o,e))};this[Zae]=setTimeout(A,u);return}}this._error(a)})()}_read(){this[JS]=!0;let e=this[XS];if(e&&!this[ay]){e.readableLength&&(this[JS]=!1);let r;for(;(r=e.read())!==null;){this[iy]+=r.length,this[Jae]=!0;let o=this.downloadProgress;o.percent<1&&this.emit("downloadProgress",o),this.push(r)}}}_write(e,r,o){let a=()=>{this._writeRequest(e,r,o)};this.requestInitialized?a():this[r1].push(a)}_writeRequest(e,r,o){this[$s].destroyed||(this._progressCallbacks.push(()=>{this[oy]+=Buffer.byteLength(e,r);let a=this.uploadProgress;a.percent<1&&this.emit("uploadProgress",a)}),this[$s].write(e,r,a=>{!a&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),o(a)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!($s in this)){e();return}if(this[$s].destroyed){e();return}this[$s].end(o=>{o||(this[sy]=this[oy],this.emit("uploadProgress",this.uploadProgress),this[$s].emit("upload-complete")),e(o)})};this.requestInitialized?r():this[r1].push(r)}_destroy(e,r){var o;this[ay]=!0,clearTimeout(this[Zae]),$s in this&&(this[g4](),!((o=this[XS])===null||o===void 0)&&o.complete||this[$s].destroy()),e!==null&&!ot.default.undefined(e)&&!(e instanceof Ji)&&(e=new Ji(e.message,e,this)),r(e)}get _isAboutToError(){return this[ay]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,o;return((r=(e=this[$s])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!(!((o=this[Xae])===null||o===void 0)&&o.complete)}get socket(){var e,r;return(r=(e=this[$s])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[ny]?e=this[iy]/this[ny]:this[ny]===this[iy]?e=1:e=0,{percent:e,transferred:this[iy],total:this[ny]}}get uploadProgress(){let e;return this[sy]?e=this[oy]/this[sy]:this[sy]===this[oy]?e=1:e=0,{percent:e,transferred:this[oy],total:this[sy]}}get timings(){var e;return(e=this[$s])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[zae]}pipe(e,r){if(this[Jae])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof p4.ServerResponse&&this[zS].add(e),super.pipe(e,r)}unpipe(e){return e instanceof p4.ServerResponse&&this[zS].delete(e),super.unpipe(e),this}};Bn.default=ib});var s1=_(Yc=>{"use strict";var pst=Yc&&Yc.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),hst=Yc&&Yc.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&pst(e,t,r)};Object.defineProperty(Yc,"__esModule",{value:!0});Yc.CancelError=Yc.ParseError=void 0;var $ae=i1(),m4=class extends $ae.RequestError{constructor(e,r){let{options:o}=r.request;super(`${e.message} in "${o.url.toString()}"`,e,r.request),this.name="ParseError"}};Yc.ParseError=m4;var y4=class extends $ae.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};Yc.CancelError=y4;hst(i1(),Yc)});var tle=_(E4=>{"use strict";Object.defineProperty(E4,"__esModule",{value:!0});var ele=s1(),gst=(t,e,r,o)=>{let{rawBody:a}=t;try{if(e==="text")return a.toString(o);if(e==="json")return a.length===0?"":r(a.toString());if(e==="buffer")return a;throw new ele.ParseError({message:`Unknown body type '${e}'`,name:"Error"},t)}catch(n){throw new ele.ParseError(n,t)}};E4.default=gst});var C4=_(lh=>{"use strict";var dst=lh&&lh.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),mst=lh&&lh.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&dst(e,t,r)};Object.defineProperty(lh,"__esModule",{value:!0});var yst=ve("events"),Est=Qf(),Cst=eoe(),sb=s1(),rle=tle(),nle=i1(),wst=r4(),Ist=c4(),ile=u4(),Bst=["request","response","redirect","uploadProgress","downloadProgress"];function sle(t){let e,r,o=new yst.EventEmitter,a=new Cst((u,A,p)=>{let h=E=>{let I=new nle.default(void 0,t);I.retryCount=E,I._noPipe=!0,p(()=>I.destroy()),p.shouldReject=!1,p(()=>A(new sb.CancelError(I))),e=I,I.once("response",async C=>{var R;if(C.retryCount=E,C.request.aborted)return;let L;try{L=await Ist.default(I),C.rawBody=L}catch{return}if(I._isAboutToError)return;let U=((R=C.headers["content-encoding"])!==null&&R!==void 0?R:"").toLowerCase(),z=["gzip","deflate","br"].includes(U),{options:te}=I;if(z&&!te.decompress)C.body=L;else try{C.body=rle.default(C,te.responseType,te.parseJson,te.encoding)}catch(ae){if(C.body=L.toString(),ile.isResponseOk(C)){I._beforeError(ae);return}}try{for(let[ae,le]of te.hooks.afterResponse.entries())C=await le(C,async ce=>{let Ce=nle.default.normalizeArguments(void 0,{...ce,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},te);Ce.hooks.afterResponse=Ce.hooks.afterResponse.slice(0,ae);for(let Be of Ce.hooks.beforeRetry)await Be(Ce);let de=sle(Ce);return p(()=>{de.catch(()=>{}),de.cancel()}),de})}catch(ae){I._beforeError(new sb.RequestError(ae.message,ae,I));return}if(!ile.isResponseOk(C)){I._beforeError(new sb.HTTPError(C));return}r=C,u(I.options.resolveBodyOnly?C.body:C)});let v=C=>{if(a.isCanceled)return;let{options:R}=I;if(C instanceof sb.HTTPError&&!R.throwHttpErrors){let{response:L}=C;u(I.options.resolveBodyOnly?L.body:L);return}A(C)};I.once("error",v);let x=I.options.body;I.once("retry",(C,R)=>{var L,U;if(x===((L=R.request)===null||L===void 0?void 0:L.options.body)&&Est.default.nodeStream((U=R.request)===null||U===void 0?void 0:U.options.body)){v(R);return}h(C)}),wst.default(I,o,Bst)};h(0)});a.on=(u,A)=>(o.on(u,A),a);let n=u=>{let A=(async()=>{await a;let{options:p}=r.request;return rle.default(r,u,p.parseJson,p.encoding)})();return Object.defineProperties(A,Object.getOwnPropertyDescriptors(a)),A};return a.json=()=>{let{headers:u}=e.options;return!e.writableFinished&&u.accept===void 0&&(u.accept="application/json"),n("json")},a.buffer=()=>n("buffer"),a.text=()=>n("text"),a}lh.default=sle;mst(s1(),lh)});var ole=_(w4=>{"use strict";Object.defineProperty(w4,"__esModule",{value:!0});var vst=s1();function Dst(t,...e){let r=(async()=>{if(t instanceof vst.RequestError)try{for(let a of e)if(a)for(let n of a)t=await n(t)}catch(a){t=a}throw t})(),o=()=>r;return r.json=o,r.text=o,r.buffer=o,r.on=o,r}w4.default=Dst});var cle=_(I4=>{"use strict";Object.defineProperty(I4,"__esModule",{value:!0});var ale=Qf();function lle(t){for(let e of Object.values(t))(ale.default.plainObject(e)||ale.default.array(e))&&lle(e);return Object.freeze(t)}I4.default=lle});var Ale=_(ule=>{"use strict";Object.defineProperty(ule,"__esModule",{value:!0})});var B4=_(zl=>{"use strict";var Pst=zl&&zl.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),Sst=zl&&zl.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Pst(e,t,r)};Object.defineProperty(zl,"__esModule",{value:!0});zl.defaultHandler=void 0;var fle=Qf(),Vl=C4(),bst=ole(),ab=i1(),xst=cle(),kst={RequestError:Vl.RequestError,CacheError:Vl.CacheError,ReadError:Vl.ReadError,HTTPError:Vl.HTTPError,MaxRedirectsError:Vl.MaxRedirectsError,TimeoutError:Vl.TimeoutError,ParseError:Vl.ParseError,CancelError:Vl.CancelError,UnsupportedProtocolError:Vl.UnsupportedProtocolError,UploadError:Vl.UploadError},Qst=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:ob}=ab.default,ple=(...t)=>{let e;for(let r of t)e=ob(void 0,r,e);return e},Fst=t=>t.isStream?new ab.default(void 0,t):Vl.default(t),Rst=t=>"defaults"in t&&"options"in t.defaults,Tst=["get","post","put","patch","head","delete"];zl.defaultHandler=(t,e)=>e(t);var hle=(t,e)=>{if(t)for(let r of t)r(e)},gle=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(o=>(a,n)=>{let u,A=o(a,p=>(u=n(p),u));if(A!==u&&!a.isStream&&u){let p=A,{then:h,catch:E,finally:I}=p;Object.setPrototypeOf(p,Object.getPrototypeOf(u)),Object.defineProperties(p,Object.getOwnPropertyDescriptors(u)),p.then=h,p.catch=E,p.finally=I}return A});let e=(o,a={},n)=>{var u,A;let p=0,h=E=>t.handlers[p++](E,p===t.handlers.length?Fst:h);if(fle.default.plainObject(o)){let E={...o,...a};ab.setNonEnumerableProperties([o,a],E),a=E,o=void 0}try{let E;try{hle(t.options.hooks.init,a),hle((u=a.hooks)===null||u===void 0?void 0:u.init,a)}catch(v){E=v}let I=ob(o,a,n??t.options);if(I[ab.kIsNormalizedAlready]=!0,E)throw new Vl.RequestError(E.message,E,I);return h(I)}catch(E){if(a.isStream)throw E;return bst.default(E,t.options.hooks.beforeError,(A=a.hooks)===null||A===void 0?void 0:A.beforeError)}};e.extend=(...o)=>{let a=[t.options],n=[...t._rawHandlers],u;for(let A of o)Rst(A)?(a.push(A.defaults.options),n.push(...A.defaults._rawHandlers),u=A.defaults.mutableDefaults):(a.push(A),"handlers"in A&&n.push(...A.handlers),u=A.mutableDefaults);return n=n.filter(A=>A!==zl.defaultHandler),n.length===0&&n.push(zl.defaultHandler),gle({options:ple(...a),handlers:n,mutableDefaults:!!u})};let r=async function*(o,a){let n=ob(o,a,t.options);n.resolveBodyOnly=!1;let u=n.pagination;if(!fle.default.object(u))throw new TypeError("`options.pagination` must be implemented");let A=[],{countLimit:p}=u,h=0;for(;h<u.requestLimit;){h!==0&&await Qst(u.backoff);let E=await e(void 0,void 0,n),I=await u.transform(E),v=[];for(let C of I)if(u.filter(C,A,v)&&(!u.shouldContinue(C,A,v)||(yield C,u.stackAllItems&&A.push(C),v.push(C),--p<=0)))return;let x=u.paginate(E,A,v);if(x===!1)return;x===E.request.options?n=E.request.options:x!==void 0&&(n=ob(void 0,x,n)),h++}};e.paginate=r,e.paginate.all=async(o,a)=>{let n=[];for await(let u of r(o,a))n.push(u);return n},e.paginate.each=r,e.stream=(o,a)=>e(o,{...a,isStream:!0});for(let o of Tst)e[o]=(a,n)=>e(a,{...n,method:o}),e.stream[o]=(a,n)=>e(a,{...n,method:o,isStream:!0});return Object.assign(e,kst),Object.defineProperty(e,"defaults",{value:t.mutableDefaults?t:xst.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=ple,e};zl.default=gle;Sst(Ale(),zl)});var yle=_((Ff,lb)=>{"use strict";var Nst=Ff&&Ff.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),dle=Ff&&Ff.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Nst(e,t,r)};Object.defineProperty(Ff,"__esModule",{value:!0});var Lst=ve("url"),mle=B4(),Mst={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType==="json"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,"link"))return!1;let e=t.headers.link.split(","),r;for(let o of e){let a=o.split(";");if(a[1].includes("next")){r=a[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new Lst.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[mle.defaultHandler],mutableDefaults:!1},v4=mle.default(Mst);Ff.default=v4;lb.exports=v4;lb.exports.default=v4;lb.exports.__esModule=!0;dle(B4(),Ff);dle(C4(),Ff)});var sn={};Vt(sn,{Method:()=>Dle,del:()=>qst,get:()=>b4,getNetworkSettings:()=>vle,post:()=>x4,put:()=>Hst,request:()=>o1});function wle(t){let e=new URL(t),r={host:e.hostname,headers:{}};return e.port&&(r.port=Number(e.port)),e.username&&e.password&&(r.proxyAuth=`${e.username}:${e.password}`),{proxy:r}}async function D4(t){return al(Cle,t,()=>oe.readFilePromise(t).then(e=>(Cle.set(t,e),e)))}function _st({statusCode:t,statusMessage:e},r){let o=Ot(r,t,yt.NUMBER),a=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return Tm(r,`${o}${e?` (${e})`:""}`,a)}async function ub(t,{configuration:e,customErrorMessage:r}){try{return await t}catch(o){if(o.name!=="HTTPError")throw o;let a=r?.(o,e)??o.response.body?.error;a==null&&(o.message.startsWith("Response code")?a="The remote server failed to provide the requested resource":a=o.message),o.code==="ETIMEDOUT"&&o.event==="socket"&&(a+=`(can be increased via ${Ot(e,"httpTimeout",yt.SETTING)})`);let n=new Jt(35,a,u=>{o.response&&u.reportError(35,` ${Xu(e,{label:"Response Code",value:Hc(yt.NO_HINT,_st(o.response,e))})}`),o.request&&(u.reportError(35,` ${Xu(e,{label:"Request Method",value:Hc(yt.NO_HINT,o.request.options.method)})}`),u.reportError(35,` ${Xu(e,{label:"Request URL",value:Hc(yt.URL,o.request.requestUrl)})}`)),o.request.redirects.length>0&&u.reportError(35,` ${Xu(e,{label:"Request Redirects",value:Hc(yt.NO_HINT,mL(e,o.request.redirects,yt.URL))})}`),o.request.retryCount===o.request.options.retry.limit&&u.reportError(35,` ${Xu(e,{label:"Request Retry Count",value:Hc(yt.NO_HINT,`${Ot(e,o.request.retryCount,yt.NUMBER)} (can be increased via ${Ot(e,"httpRetry",yt.SETTING)})`)})}`)});throw n.originalError=o,n}}function vle(t,e){let r=[...e.configuration.get("networkSettings")].sort(([u],[A])=>A.length-u.length),o={enableNetwork:void 0,httpsCaFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},a=Object.keys(o),n=typeof t=="string"?new URL(t):t;for(let[u,A]of r)if(S4.default.isMatch(n.hostname,u))for(let p of a){let h=A.get(p);h!==null&&typeof o[p]>"u"&&(o[p]=h)}for(let u of a)typeof o[u]>"u"&&(o[u]=e.configuration.get(u));return o}async function o1(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET",wrapNetworkRequest:A}){let p={target:t,body:e,configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u},h=async()=>await jst(t,e,p),E=typeof A<"u"?await A(h,p):h;return await(await r.reduceHook(v=>v.wrapNetworkRequest,E,p))()}async function b4(t,{configuration:e,jsonResponse:r,customErrorMessage:o,wrapNetworkRequest:a,...n}){let u=()=>ub(o1(t,null,{configuration:e,wrapNetworkRequest:a,...n}),{configuration:e,customErrorMessage:o}).then(p=>p.body),A=await(typeof a<"u"?u():al(Ele,t,()=>u().then(p=>(Ele.set(t,p),p))));return r?JSON.parse(A.toString()):A}async function Hst(t,e,{customErrorMessage:r,...o}){return(await ub(o1(t,e,{...o,method:"PUT"}),{customErrorMessage:r,configuration:o.configuration})).body}async function x4(t,e,{customErrorMessage:r,...o}){return(await ub(o1(t,e,{...o,method:"POST"}),{customErrorMessage:r,configuration:o.configuration})).body}async function qst(t,{customErrorMessage:e,...r}){return(await ub(o1(t,null,{...r,method:"DELETE"}),{customErrorMessage:e,configuration:r.configuration})).body}async function jst(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET"}){let A=typeof t=="string"?new URL(t):t,p=vle(A,{configuration:r});if(p.enableNetwork===!1)throw new Jt(80,`Request to '${A.href}' has been blocked because of your configuration settings`);if(A.protocol==="http:"&&!S4.default.isMatch(A.hostname,r.get("unsafeHttpWhitelist")))throw new Jt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${A.hostname})`);let E={agent:{http:p.httpProxy?P4.default.httpOverHttp(wle(p.httpProxy)):Ost,https:p.httpsProxy?P4.default.httpsOverHttp(wle(p.httpsProxy)):Ust},headers:o,method:u};E.responseType=n?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!a&&typeof e=="string"?E.body=e:E.json=e);let I=r.get("httpTimeout"),v=r.get("httpRetry"),x=r.get("enableStrictSsl"),C=p.httpsCaFilePath,R=p.httpsCertFilePath,L=p.httpsKeyFilePath,{default:U}=await Promise.resolve().then(()=>Ze(yle())),z=C?await D4(C):void 0,te=R?await D4(R):void 0,ae=L?await D4(L):void 0,le=U.extend({timeout:{socket:I},retry:v,https:{rejectUnauthorized:x,certificateAuthority:z,certificate:te,key:ae},...E});return r.getLimit("networkConcurrency")(()=>le(A))}var Ile,Ble,S4,P4,Ele,Cle,Ost,Ust,Dle,Ab=Et(()=>{Pt();Ile=ve("https"),Ble=ve("http"),S4=Ze($o()),P4=Ze(zse());Wl();jl();ql();Ele=new Map,Cle=new Map,Ost=new Ble.Agent({keepAlive:!0}),Ust=new Ile.Agent({keepAlive:!0});Dle=(a=>(a.GET="GET",a.PUT="PUT",a.POST="POST",a.DELETE="DELETE",a))(Dle||{})});var Xi={};Vt(Xi,{availableParallelism:()=>Q4,getArchitecture:()=>a1,getArchitectureName:()=>Vst,getArchitectureSet:()=>k4,getCaller:()=>Zst,major:()=>Gst,openUrl:()=>Yst});function Kst(){if(process.platform==="darwin"||process.platform==="win32")return null;let t;try{t=oe.readFileSync(Wst)}catch{}if(typeof t<"u"){if(t&&(t.includes("GLIBC")||t.includes("libc")))return"glibc";if(t&&t.includes("musl"))return"musl"}let r=(process.report?.getReport()??{}).sharedObjects??[],o=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return Vp(r,a=>{let n=a.match(o);if(!n)return Vp.skip;if(n[1])return"glibc";if(n[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")})??null}function a1(){return Sle=Sle??{os:process.platform,cpu:process.arch,libc:Kst()}}function Vst(t=a1()){return t.libc?`${t.os}-${t.cpu}-${t.libc}`:`${t.os}-${t.cpu}`}function k4(){let t=a1();return ble=ble??{os:[t.os],cpu:[t.cpu],libc:t.libc?[t.libc]:[]}}function Xst(t){let e=zst.exec(t);if(!e)return null;let r=e[2]&&e[2].indexOf("native")===0,o=e[2]&&e[2].indexOf("eval")===0,a=Jst.exec(e[2]);return o&&a!=null&&(e[2]=a[1],e[3]=a[2],e[4]=a[3]),{file:r?null:e[2],methodName:e[1]||"<unknown>",arguments:r?[e[2]]:[],line:e[3]?+e[3]:null,column:e[4]?+e[4]:null}}function Zst(){let e=new Error().stack.split(` -`)[3];return Xst(e)}function Q4(){return typeof fb.default.availableParallelism<"u"?fb.default.availableParallelism():Math.max(1,fb.default.cpus().length)}var fb,Gst,Ple,Yst,Wst,Sle,ble,zst,Jst,pb=Et(()=>{Pt();fb=Ze(ve("os"));hb();ql();Gst=Number(process.versions.node.split(".")[0]),Ple=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Yst=typeof Ple<"u"?async t=>{try{return await F4(Ple,[t],{cwd:K.cwd()}),!0}catch{return!1}}:void 0,Wst="/usr/bin/ldd";zst=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Jst=/\((\S*)(?::(\d+))(?::(\d+))\)/});function M4(t,e,r,o,a){let n=VI(r);if(o.isArray||o.type==="ANY"&&Array.isArray(n))return Array.isArray(n)?n.map((u,A)=>R4(t,`${e}[${A}]`,u,o,a)):String(n).split(/,/).map(u=>R4(t,e,u,o,a));if(Array.isArray(n))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return R4(t,e,r,o,a)}function R4(t,e,r,o,a){let n=VI(r);switch(o.type){case"ANY":return QS(n);case"SHAPE":return rot(t,e,r,o,a);case"MAP":return not(t,e,r,o,a)}if(n===null&&!o.isNullable&&o.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if(o.values?.includes(n))return n;let A=(()=>{if(o.type==="BOOLEAN"&&typeof n!="string")return QI(n);if(typeof n!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof n}`);let p=YP(n,{env:t.env});switch(o.type){case"ABSOLUTE_PATH":{let h=a,E=cO(r);return E&&E[0]!=="<"&&(h=K.dirname(E)),K.resolve(h,ue.toPortablePath(p))}case"LOCATOR_LOOSE":return Sf(p,!1);case"NUMBER":return parseInt(p);case"LOCATOR":return Sf(p);case"BOOLEAN":return QI(p);default:return p}})();if(o.values&&!o.values.includes(A))throw new Error(`Invalid value, expected one of ${o.values.join(", ")}`);return A}function rot(t,e,r,o,a){let n=VI(r);if(typeof n!="object"||Array.isArray(n))throw new st(`Object configuration settings "${e}" must be an object`);let u=O4(t,o,{ignoreArrays:!0});if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=`${e}.${A}`;if(!o.properties[A])throw new st(`Unrecognized configuration settings found: ${e}.${A} - run "yarn config -v" to see the list of settings supported in Yarn`);u.set(A,M4(t,h,p,o.properties[A],a))}return u}function not(t,e,r,o,a){let n=VI(r),u=new Map;if(typeof n!="object"||Array.isArray(n))throw new st(`Map configuration settings "${e}" must be an object`);if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=o.normalizeKeys?o.normalizeKeys(A):A,E=`${e}['${h}']`,I=o.valueDefinition;u.set(h,M4(t,E,p,I,a))}return u}function O4(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!r)return[];let o=new Map;for(let[a,n]of Object.entries(e.properties))o.set(a,O4(t,n));return o}case"MAP":return e.isArray&&!r?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:t.projectCwd===null?Array.isArray(e.default)?e.default.map(o=>K.normalize(o)):K.isAbsolute(e.default)?K.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(o=>K.resolve(t.projectCwd,o)):K.resolve(t.projectCwd,e.default);default:return e.default}}function db(t,e,r){if(e.type==="SECRET"&&typeof t=="string"&&r.hideSecrets)return tot;if(e.type==="ABSOLUTE_PATH"&&typeof t=="string"&&r.getNativePaths)return ue.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let o=[];for(let a of t)o.push(db(a,e,r));return o}if(e.type==="MAP"&&t instanceof Map){if(t.size===0)return;let o=new Map;for(let[a,n]of t.entries()){let u=db(n,e.valueDefinition,r);typeof u<"u"&&o.set(a,u)}return o}if(e.type==="SHAPE"&&t instanceof Map){if(t.size===0)return;let o=new Map;for(let[a,n]of t.entries()){let u=e.properties[a],A=db(n,u,r);typeof A<"u"&&o.set(a,A)}return o}return t}function iot(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(mb)&&(e=(0,kle.default)(e.slice(mb.length)),t[e]=r);return t}function N4(){let t=`${mb}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return L4}async function xle(t){try{return await oe.readFilePromise(t)}catch{return Buffer.of()}}async function sot(t,e){return Buffer.compare(...await Promise.all([xle(t),xle(e)]))===0}async function oot(t,e){let[r,o]=await Promise.all([oe.statPromise(t),oe.statPromise(e)]);return r.dev===o.dev&&r.ino===o.ino}async function lot({configuration:t,selfPath:e}){let r=t.get("yarnPath");return t.get("ignorePath")||r===null||r===e||await aot(r,e)?null:r}var kle,Rf,Qle,Fle,Rle,T4,$st,l1,eot,ly,mb,L4,tot,c1,Tle,yb,gb,aot,Ke,u1=Et(()=>{Pt();Nl();kle=Ze(sV()),Rf=Ze(X0());qt();Qle=Ze(ZV()),Fle=ve("module"),Rle=Ze(eg()),T4=ve("stream");use();Gm();tO();rO();nO();Ose();iO();mg();jse();TS();jl();th();Ab();ql();pb();bf();bo();$st=function(){if(!Rf.GITHUB_ACTIONS||!process.env.GITHUB_EVENT_PATH)return!1;let t=ue.toPortablePath(process.env.GITHUB_EVENT_PATH),e;try{e=oe.readJsonSync(t)}catch{return!1}return!(!("repository"in e)||!e.repository||(e.repository.private??!0))}(),l1=new Set(["@yarnpkg/plugin-constraints","@yarnpkg/plugin-exec","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]),eot=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","zipDataEpilogue","cacheCheckpointOverride","cacheVersionOverride","lockfileVersionOverride","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry","ignoreCwd"]),ly=/^(?!v)[a-z0-9._-]+$/i,mb="yarn_",L4=".yarnrc.yml",tot="********",c1=(E=>(E.ANY="ANY",E.BOOLEAN="BOOLEAN",E.ABSOLUTE_PATH="ABSOLUTE_PATH",E.LOCATOR="LOCATOR",E.LOCATOR_LOOSE="LOCATOR_LOOSE",E.NUMBER="NUMBER",E.STRING="STRING",E.SECRET="SECRET",E.SHAPE="SHAPE",E.MAP="MAP",E))(c1||{}),Tle=yt,yb=(r=>(r.JUNCTIONS="junctions",r.SYMLINKS="symlinks",r))(yb||{}),gb={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:AO()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:0},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:N4()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!0},cacheMigrationMode:{description:"Defines the conditions under which Yarn upgrades should cause the cache archives to be regenerated.",type:"STRING",values:["always","match-spec","required-only"],default:"always"},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:VP,defaultText:"<dynamic>"},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:dL,defaultText:"<dynamic>"},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Rf.isCI,defaultText:"<dynamic>"},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Rf.isCI,defaultText:"<dynamic>"},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},enableTips:{description:"If true, installs will print a helpful message every day of the week",type:"BOOLEAN",default:!Rf.isCI,defaultText:"<dynamic>"},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:"<dynamic>"},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, Yarn will refuse to use the network if required to",type:"BOOLEAN",default:!0},enableOfflineMode:{description:"If true, Yarn will attempt to retrieve files and metadata from the global cache rather than the network",type:"BOOLEAN",default:!1},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},taskPoolConcurrency:{description:"Maximal amount of concurrent heavy task processing",type:"NUMBER",default:Q4()},taskPoolMode:{description:"Execution strategy for heavy tasks",type:"STRING",values:["async","workers"],default:"workers"},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{httpsCaFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},httpsCaFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(JP),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableHardenedMode:{description:"If true, automatically enable --check-resolutions --refresh-lockfile on installs",type:"BOOLEAN",default:Rf.isPR&&$st,defaultText:"<true on public PRs>"},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},injectEnvironmentFiles:{description:"List of all the environment files that Yarn should inject inside the process when it starts",type:"ABSOLUTE_PATH",default:[".env.yarn?"],isArray:!0},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};aot=process.platform==="win32"?sot:oot;Ke=class t{constructor(e){this.isCI=Rf.isCI;this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.env={};this.limits=new Map;this.packageExtensions=null;this.startingCwd=e}static{this.deleteProperty=Symbol()}static{this.telemetry=null}static create(e,r,o){let a=new t(e);typeof r<"u"&&!(r instanceof Map)&&(a.projectCwd=r),a.importSettings(gb);let n=typeof o<"u"?o:r instanceof Map?r:new Map;for(let[u,A]of n)a.activatePlugin(u,A);return a}static async find(e,r,{strict:o=!0,usePathCheck:a=null,useRc:n=!0}={}){let u=iot();delete u.rcFilename;let A=new t(e),p=await t.findRcFiles(e),h=await t.findFolderRcFile(Jm());h&&(p.find(Ce=>Ce.path===h.path)||p.unshift(h));let E=qse(p.map(ce=>[ce.path,ce.data])),I=It.dot,v=new Set(Object.keys(gb)),x=({yarnPath:ce,ignorePath:Ce,injectEnvironmentFiles:de})=>({yarnPath:ce,ignorePath:Ce,injectEnvironmentFiles:de}),C=({yarnPath:ce,ignorePath:Ce,injectEnvironmentFiles:de,...Be})=>{let Ee={};for(let[g,me]of Object.entries(Be))v.has(g)&&(Ee[g]=me);return Ee},R=({yarnPath:ce,ignorePath:Ce,...de})=>{let Be={};for(let[Ee,g]of Object.entries(de))v.has(Ee)||(Be[Ee]=g);return Be};if(A.importSettings(x(gb)),A.useWithSource("<environment>",x(u),e,{strict:!1}),E){let[ce,Ce]=E;A.useWithSource(ce,x(Ce),I,{strict:!1})}if(a){if(await lot({configuration:A,selfPath:a})!==null)return A;A.useWithSource("<override>",{ignorePath:!0},e,{strict:!1,overwrite:!0})}let L=await t.findProjectCwd(e);A.startingCwd=e,A.projectCwd=L;let U=Object.assign(Object.create(null),process.env);A.env=U;let z=await Promise.all(A.get("injectEnvironmentFiles").map(async ce=>{let Ce=ce.endsWith("?")?await oe.readFilePromise(ce.slice(0,-1),"utf8").catch(()=>""):await oe.readFilePromise(ce,"utf8");return(0,Qle.parse)(Ce)}));for(let ce of z)for(let[Ce,de]of Object.entries(ce))A.env[Ce]=YP(de,{env:U});if(A.importSettings(C(gb)),A.useWithSource("<environment>",C(u),e,{strict:o}),E){let[ce,Ce]=E;A.useWithSource(ce,C(Ce),I,{strict:o})}let te=ce=>"default"in ce?ce.default:ce,ae=new Map([["@@core",cse]]);if(r!==null)for(let ce of r.plugins.keys())ae.set(ce,te(r.modules.get(ce)));for(let[ce,Ce]of ae)A.activatePlugin(ce,Ce);let le=new Map([]);if(r!==null){let ce=new Map;for(let Be of Fle.builtinModules)ce.set(Be,()=>vf(Be));for(let[Be,Ee]of r.modules)ce.set(Be,()=>Ee);let Ce=new Set,de=async(Be,Ee)=>{let{factory:g,name:me}=vf(Be);if(!g||Ce.has(me))return;let we=new Map(ce),Ae=Z=>{if(we.has(Z))return we.get(Z)();throw new st(`This plugin cannot access the package referenced via ${Z} which is neither a builtin, nor an exposed entry`)},ne=await xm(async()=>te(await g(Ae)),Z=>`${Z} (when initializing ${me}, defined in ${Ee})`);ce.set(me,()=>ne),Ce.add(me),le.set(me,ne)};if(u.plugins)for(let Be of u.plugins.split(";")){let Ee=K.resolve(e,ue.toPortablePath(Be));await de(Ee,"<environment>")}for(let{path:Be,cwd:Ee,data:g}of p)if(n&&Array.isArray(g.plugins))for(let me of g.plugins){let we=typeof me!="string"?me.path:me,Ae=me?.spec??"",ne=me?.checksum??"";if(l1.has(Ae))continue;let Z=K.resolve(Ee,ue.toPortablePath(we));if(!await oe.existsPromise(Z)){if(!Ae){let ht=Ot(A,K.basename(Z,".cjs"),yt.NAME),H=Ot(A,".gitignore",yt.NAME),rt=Ot(A,A.values.get("rcFilename"),yt.NAME),Te=Ot(A,"https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored",yt.URL);throw new st(`Missing source for the ${ht} plugin - please try to remove the plugin from ${rt} then reinstall it manually. This error usually occurs because ${H} is incorrect, check ${Te} to make sure your plugin folder isn't gitignored.`)}if(!Ae.match(/^https?:/)){let ht=Ot(A,K.basename(Z,".cjs"),yt.NAME),H=Ot(A,A.values.get("rcFilename"),yt.NAME);throw new st(`Failed to recognize the source for the ${ht} plugin - please try to delete the plugin from ${H} then reinstall it manually.`)}let xe=await b4(Ae,{configuration:A}),Ne=zi(xe);if(ne&&ne!==Ne){let ht=Ot(A,K.basename(Z,".cjs"),yt.NAME),H=Ot(A,A.values.get("rcFilename"),yt.NAME),rt=Ot(A,`yarn plugin import ${Ae}`,yt.CODE);throw new st(`Failed to fetch the ${ht} plugin from its remote location: its checksum seems to have changed. If this is expected, please remove the plugin from ${H} then run ${rt} to reimport it.`)}await oe.mkdirPromise(K.dirname(Z),{recursive:!0}),await oe.writeFilePromise(Z,xe)}await de(Z,Be)}}for(let[ce,Ce]of le)A.activatePlugin(ce,Ce);if(A.useWithSource("<environment>",R(u),e,{strict:o}),E){let[ce,Ce]=E;A.useWithSource(ce,R(Ce),I,{strict:o})}return A.get("enableGlobalCache")&&(A.values.set("cacheFolder",`${A.get("globalFolder")}/cache`),A.sources.set("cacheFolder","<internal>")),A}static async findRcFiles(e){let r=N4(),o=[],a=e,n=null;for(;a!==n;){n=a;let u=K.join(n,r);if(oe.existsSync(u)){let A=await oe.readFilePromise(u,"utf8"),p;try{p=Ki(A)}catch{let E="";throw A.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(E=" (in particular, make sure you list the colons after each key name)"),new st(`Parse error when loading ${u}; please check it's proper Yaml${E}`)}o.unshift({path:u,cwd:n,data:p})}a=K.dirname(n)}return o}static async findFolderRcFile(e){let r=K.join(e,dr.rc),o;try{o=await oe.readFilePromise(r,"utf8")}catch(n){if(n.code==="ENOENT")return null;throw n}let a=Ki(o);return{path:r,cwd:e,data:a}}static async findProjectCwd(e){let r=null,o=e,a=null;for(;o!==a;){if(a=o,oe.existsSync(K.join(a,dr.lockfile)))return a;oe.existsSync(K.join(a,dr.manifest))&&(r=a),o=K.dirname(a)}return r}static async updateConfiguration(e,r,o={}){let a=N4(),n=K.join(e,a),u=oe.existsSync(n)?Ki(await oe.readFilePromise(n,"utf8")):{},A=!1,p;if(typeof r=="function"){try{p=r(u)}catch{p=r({})}if(p===u)return!1}else{p=u;for(let h of Object.keys(r)){let E=u[h],I=r[h],v;if(typeof I=="function")try{v=I(E)}catch{v=I(void 0)}else v=I;E!==v&&(v===t.deleteProperty?delete p[h]:p[h]=v,A=!0)}if(!A)return!1}return await oe.changeFilePromise(n,Da(p),{automaticNewlines:!0}),!0}static async addPlugin(e,r){r.length!==0&&await t.updateConfiguration(e,o=>{let a=o.plugins??[];if(a.length===0)return{...o,plugins:r};let n=[],u=[...r];for(let A of a){let p=typeof A!="string"?A.path:A,h=u.find(E=>E.path===p);h?(n.push(h),u=u.filter(E=>E!==h)):n.push(A)}return n.push(...u),{...o,plugins:n}})}static async updateHomeConfiguration(e){let r=Jm();return await t.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration<"u"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,o]of Object.entries(e))if(o!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings "${r}"`);this.settings.set(r,o),this.values.set(r,O4(this,o))}}useWithSource(e,r,o,a){try{this.use(e,r,o,a)}catch(n){throw n.message+=` (in ${Ot(this,e,yt.PATH)})`,n}}use(e,r,o,{strict:a=!0,overwrite:n=!1}={}){a=a&&this.get("enableStrictSettings");for(let u of["enableStrictSettings",...Object.keys(r)]){let A=r[u],p=cO(A);if(p&&(e=p),typeof A>"u"||u==="plugins"||e==="<environment>"&&eot.has(u))continue;if(u==="rcFilename")throw new st(`The rcFilename settings can only be set via ${`${mb}RC_FILENAME`.toUpperCase()}, not via a rc file`);let h=this.settings.get(u);if(!h){let I=Jm(),v=e[0]!=="<"?K.dirname(e):null;if(a&&!(v!==null?I===v:!1))throw new st(`Unrecognized or legacy configuration settings found: ${u} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(u,e);continue}if(this.sources.has(u)&&!(n||h.type==="MAP"||h.isArray&&h.concatenateValues))continue;let E;try{E=M4(this,u,A,h,o)}catch(I){throw I.message+=` in ${Ot(this,e,yt.PATH)}`,I}if(u==="enableStrictSettings"&&e!=="<environment>"){a=E;continue}if(h.type==="MAP"){let I=this.values.get(u);this.values.set(u,new Map(n?[...I,...E]:[...E,...I])),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else if(h.isArray&&h.concatenateValues){let I=this.values.get(u);this.values.set(u,n?[...I,...E]:[...E,...I]),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else this.values.set(u,E),this.sources.set(u,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:o=!1}){let a=this.get(e),n=this.settings.get(e);if(typeof n>"u")throw new st(`Couldn't find a configuration settings named "${e}"`);return db(a,n,{hideSecrets:r,getNativePaths:o})}getSubprocessStreams(e,{header:r,prefix:o,report:a}){let n,u,A=oe.createWriteStream(e);if(this.get("enableInlineBuilds")){let p=a.createStreamReporter(`${o} ${Ot(this,"STDOUT","green")}`),h=a.createStreamReporter(`${o} ${Ot(this,"STDERR","red")}`);n=new T4.PassThrough,n.pipe(p),n.pipe(A),u=new T4.PassThrough,u.pipe(h),u.pipe(A)}else n=A,u=A,typeof r<"u"&&n.write(`${r} -`);return{stdout:n,stderr:u}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let o of r.resolvers||[])e.push(new o);return new yg([new kS,new ei,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let o of r.fetchers||[])e.push(new o);return new Wm([new Km,new Vm,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let o of r.linkers||[])e.push(new o);return e}getSupportedArchitectures(){let e=a1(),r=this.get("supportedArchitectures"),o=r.get("os");o!==null&&(o=o.map(u=>u==="current"?e.os:u));let a=r.get("cpu");a!==null&&(a=a.map(u=>u==="current"?e.cpu:u));let n=r.get("libc");return n!==null&&(n=ol(n,u=>u==="current"?e.libc??ol.skip:u)),{os:o,cpu:a,libc:n}}isInteractive({interactive:e,stdout:r}){return r.isTTY?e??this.get("preferInteractive"):!1}async getPackageExtensions(){if(this.packageExtensions!==null)return this.packageExtensions;this.packageExtensions=new Map;let e=this.packageExtensions,r=(o,a,{userProvided:n=!1}={})=>{if(!Qa(o.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let u=new Ut;u.load(a,{yamlCompatibilityMode:!0});let A=xI(e,o.identHash),p=[];A.push([o.range,p]);let h={status:"inactive",userProvided:n,parentDescriptor:o};for(let E of u.dependencies.values())p.push({...h,type:"Dependency",descriptor:E});for(let E of u.peerDependencies.values())p.push({...h,type:"PeerDependency",descriptor:E});for(let[E,I]of u.peerDependenciesMeta)for(let[v,x]of Object.entries(I))p.push({...h,type:"PeerDependencyMeta",selector:E,key:v,value:x})};await this.triggerHook(o=>o.registerPackageExtensions,this,r);for(let[o,a]of this.get("packageExtensions"))r(rh(o,!0),GP(a),{userProvided:!0});return e}normalizeLocator(e){return Qa(e.reference)?Rs(e,`${this.get("defaultProtocol")}${e.reference}`):ly.test(e.reference)?Rs(e,`${this.get("defaultProtocol")}${e.reference}`):e}normalizeDependency(e){return Qa(e.range)?In(e,`${this.get("defaultProtocol")}${e.range}`):ly.test(e.range)?In(e,`${this.get("defaultProtocol")}${e.range}`):e}normalizeDependencyMap(e){return new Map([...e].map(([r,o])=>[r,this.normalizeDependency(o)]))}normalizePackage(e,{packageExtensions:r}){let o=OI(e),a=r.get(e.identHash);if(typeof a<"u"){let u=e.version;if(u!==null){for(let[A,p]of a)if(tA(u,A))for(let h of p)switch(h.status==="inactive"&&(h.status="redundant"),h.type){case"Dependency":typeof o.dependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",o.dependencies.set(h.descriptor.identHash,this.normalizeDependency(h.descriptor)));break;case"PeerDependency":typeof o.peerDependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",o.peerDependencies.set(h.descriptor.identHash,h.descriptor));break;case"PeerDependencyMeta":{let E=o.peerDependenciesMeta.get(h.selector);(typeof E>"u"||!Object.hasOwn(E,h.key)||E[h.key]!==h.value)&&(h.status="active",al(o.peerDependenciesMeta,h.selector,()=>({}))[h.key]=h.value)}break;default:cL(h)}}}let n=u=>u.scope?`${u.scope}__${u.name}`:`${u.name}`;for(let u of o.peerDependenciesMeta.keys()){let A=ea(u);o.peerDependencies.has(A.identHash)||o.peerDependencies.set(A.identHash,In(A,"*"))}for(let u of o.peerDependencies.values()){if(u.scope==="types")continue;let A=n(u),p=eA("types",A),h=rn(p);o.peerDependencies.has(p.identHash)||o.peerDependenciesMeta.has(h)||(o.peerDependencies.set(p.identHash,In(p,"*")),o.peerDependenciesMeta.set(h,{optional:!0}))}return o.dependencies=new Map(Fs(o.dependencies,([,u])=>xa(u))),o.peerDependencies=new Map(Fs(o.peerDependencies,([,u])=>xa(u))),o}getLimit(e){return al(this.limits,e,()=>(0,Rle.default)(this.get(e)))}async triggerHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);n&&await n(...r)}}async triggerMultipleHooks(e,r){for(let o of r)await this.triggerHook(e,...o)}async reduceHook(e,r,...o){let a=r;for(let n of this.plugins.values()){let u=n.hooks;if(!u)continue;let A=e(u);A&&(a=await A(a,...o))}return a}async firstHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);if(!n)continue;let u=await n(...r);if(typeof u<"u")return u}return null}}});var Ur={};Vt(Ur,{EndStrategy:()=>q4,ExecError:()=>Eb,PipeError:()=>A1,execvp:()=>F4,pipevp:()=>Wc});function Ig(t){return t!==null&&typeof t.fd=="number"}function U4(){}function _4(){for(let t of Bg)t.kill()}async function Wc(t,e,{cwd:r,env:o=process.env,strict:a=!1,stdin:n=null,stdout:u,stderr:A,end:p=2}){let h=["pipe","pipe","pipe"];n===null?h[0]="ignore":Ig(n)&&(h[0]=n),Ig(u)&&(h[1]=u),Ig(A)&&(h[2]=A);let E=(0,H4.default)(t,e,{cwd:ue.fromPortablePath(r),env:{...o,PWD:ue.fromPortablePath(r)},stdio:h});Bg.add(E),Bg.size===1&&(process.on("SIGINT",U4),process.on("SIGTERM",_4)),!Ig(n)&&n!==null&&n.pipe(E.stdin),Ig(u)||E.stdout.pipe(u,{end:!1}),Ig(A)||E.stderr.pipe(A,{end:!1});let I=()=>{for(let v of new Set([u,A]))Ig(v)||v.end()};return new Promise((v,x)=>{E.on("error",C=>{Bg.delete(E),Bg.size===0&&(process.off("SIGINT",U4),process.off("SIGTERM",_4)),(p===2||p===1)&&I(),x(C)}),E.on("close",(C,R)=>{Bg.delete(E),Bg.size===0&&(process.off("SIGINT",U4),process.off("SIGTERM",_4)),(p===2||p===1&&C!==0)&&I(),C===0||!a?v({code:j4(C,R)}):x(new A1({fileName:t,code:C,signal:R}))})})}async function F4(t,e,{cwd:r,env:o=process.env,encoding:a="utf8",strict:n=!1}){let u=["ignore","pipe","pipe"],A=[],p=[],h=ue.fromPortablePath(r);typeof o.PWD<"u"&&(o={...o,PWD:h});let E=(0,H4.default)(t,e,{cwd:h,env:o,stdio:u});return E.stdout.on("data",I=>{A.push(I)}),E.stderr.on("data",I=>{p.push(I)}),await new Promise((I,v)=>{E.on("error",x=>{let C=Ke.create(r),R=Ot(C,t,yt.PATH);v(new Jt(1,`Process ${R} failed to spawn`,L=>{L.reportError(1,` ${Xu(C,{label:"Thrown Error",value:Hc(yt.NO_HINT,x.message)})}`)}))}),E.on("close",(x,C)=>{let R=a==="buffer"?Buffer.concat(A):Buffer.concat(A).toString(a),L=a==="buffer"?Buffer.concat(p):Buffer.concat(p).toString(a);x===0||!n?I({code:j4(x,C),stdout:R,stderr:L}):v(new Eb({fileName:t,code:x,signal:C,stdout:R,stderr:L}))})})}function j4(t,e){let r=cot.get(e);return typeof r<"u"?128+r:t??1}function uot(t,e,{configuration:r,report:o}){o.reportError(1,` ${Xu(r,t!==null?{label:"Exit Code",value:Hc(yt.NUMBER,t)}:{label:"Exit Signal",value:Hc(yt.CODE,e)})}`)}var H4,q4,A1,Eb,Bg,cot,hb=Et(()=>{Pt();H4=Ze(KR());u1();Wl();jl();q4=(o=>(o[o.Never=0]="Never",o[o.ErrorCode=1]="ErrorCode",o[o.Always=2]="Always",o))(q4||{}),A1=class extends Jt{constructor({fileName:e,code:r,signal:o}){let a=Ke.create(K.cwd()),n=Ot(a,e,yt.PATH);super(1,`Child ${n} reported an error`,u=>{uot(r,o,{configuration:a,report:u})}),this.code=j4(r,o)}},Eb=class extends A1{constructor({fileName:e,code:r,signal:o,stdout:a,stderr:n}){super({fileName:e,code:r,signal:o}),this.stdout=a,this.stderr=n}};Bg=new Set;cot=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]])});function Lle(t){Nle=t}function f1(){return typeof G4>"u"&&(G4=Nle()),G4}var G4,Nle,Y4=Et(()=>{Nle=()=>{throw new Error("Assertion failed: No libzip instance is available, and no factory was configured")}});var Mle=_((Cb,K4)=>{var Aot=Object.assign({},ve("fs")),W4=function(){var t=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(t=t||__filename),function(e){e=e||{};var r=typeof e<"u"?e:{},o,a;r.ready=new Promise(function(We,tt){o=We,a=tt});var n={},u;for(u in r)r.hasOwnProperty(u)&&(n[u]=r[u]);var A=[],p="./this.program",h=function(We,tt){throw tt},E=!1,I=!0,v="";function x(We){return r.locateFile?r.locateFile(We,v):v+We}var C,R,L,U;I&&(E?v=ve("path").dirname(v)+"/":v=__dirname+"/",C=function(tt,Bt){var or=ii(tt);return or?Bt?or:or.toString():(L||(L=Aot),U||(U=ve("path")),tt=U.normalize(tt),L.readFileSync(tt,Bt?null:"utf8"))},R=function(tt){var Bt=C(tt,!0);return Bt.buffer||(Bt=new Uint8Array(Bt)),me(Bt.buffer),Bt},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),A=process.argv.slice(2),h=function(We){process.exit(We)},r.inspect=function(){return"[Emscripten Module object]"});var z=r.print||console.log.bind(console),te=r.printErr||console.warn.bind(console);for(u in n)n.hasOwnProperty(u)&&(r[u]=n[u]);n=null,r.arguments&&(A=r.arguments),r.thisProgram&&(p=r.thisProgram),r.quit&&(h=r.quit);var ae=0,le=function(We){ae=We},ce;r.wasmBinary&&(ce=r.wasmBinary);var Ce=r.noExitRuntime||!0;typeof WebAssembly!="object"&&Ri("no native wasm support detected");function de(We,tt,Bt){switch(tt=tt||"i8",tt.charAt(tt.length-1)==="*"&&(tt="i32"),tt){case"i1":return Ye[We>>0];case"i8":return Ye[We>>0];case"i16":return op((We>>1)*2);case"i32":return Us((We>>2)*4);case"i64":return Us((We>>2)*4);case"float":return Au((We>>2)*4);case"double":return sp((We>>3)*8);default:Ri("invalid type for getValue: "+tt)}return null}var Be,Ee=!1,g;function me(We,tt){We||Ri("Assertion failed: "+tt)}function we(We){var tt=r["_"+We];return me(tt,"Cannot call unknown function "+We+", make sure it is exported"),tt}function Ae(We,tt,Bt,or,ee){var ye={string:function(rs){var Si=0;if(rs!=null&&rs!==0){var qo=(rs.length<<2)+1;Si=Un(qo),ht(rs,Si,qo)}return Si},array:function(rs){var Si=Un(rs.length);return Te(rs,Si),Si}};function Le(rs){return tt==="string"?xe(rs):tt==="boolean"?!!rs:rs}var ft=we(We),pt=[],Nt=0;if(or)for(var rr=0;rr<or.length;rr++){var $r=ye[Bt[rr]];$r?(Nt===0&&(Nt=Es()),pt[rr]=$r(or[rr])):pt[rr]=or[rr]}var ji=ft.apply(null,pt);return ji=Le(ji),Nt!==0&&qs(Nt),ji}function ne(We,tt,Bt,or){Bt=Bt||[];var ee=Bt.every(function(Le){return Le==="number"}),ye=tt!=="string";return ye&&ee&&!or?we(We):function(){return Ae(We,tt,Bt,arguments,or)}}var Z=new TextDecoder("utf8");function xe(We,tt){if(!We)return"";for(var Bt=We+tt,or=We;!(or>=Bt)&&Se[or];)++or;return Z.decode(Se.subarray(We,or))}function Ne(We,tt,Bt,or){if(!(or>0))return 0;for(var ee=Bt,ye=Bt+or-1,Le=0;Le<We.length;++Le){var ft=We.charCodeAt(Le);if(ft>=55296&&ft<=57343){var pt=We.charCodeAt(++Le);ft=65536+((ft&1023)<<10)|pt&1023}if(ft<=127){if(Bt>=ye)break;tt[Bt++]=ft}else if(ft<=2047){if(Bt+1>=ye)break;tt[Bt++]=192|ft>>6,tt[Bt++]=128|ft&63}else if(ft<=65535){if(Bt+2>=ye)break;tt[Bt++]=224|ft>>12,tt[Bt++]=128|ft>>6&63,tt[Bt++]=128|ft&63}else{if(Bt+3>=ye)break;tt[Bt++]=240|ft>>18,tt[Bt++]=128|ft>>12&63,tt[Bt++]=128|ft>>6&63,tt[Bt++]=128|ft&63}}return tt[Bt]=0,Bt-ee}function ht(We,tt,Bt){return Ne(We,Se,tt,Bt)}function H(We){for(var tt=0,Bt=0;Bt<We.length;++Bt){var or=We.charCodeAt(Bt);or>=55296&&or<=57343&&(or=65536+((or&1023)<<10)|We.charCodeAt(++Bt)&1023),or<=127?++tt:or<=2047?tt+=2:or<=65535?tt+=3:tt+=4}return tt}function rt(We){var tt=H(We)+1,Bt=Ni(tt);return Bt&&Ne(We,Ye,Bt,tt),Bt}function Te(We,tt){Ye.set(We,tt)}function Fe(We,tt){return We%tt>0&&(We+=tt-We%tt),We}var ke,Ye,Se,et,Ue,b,w,S,y,F;function J(We){ke=We,r.HEAP_DATA_VIEW=F=new DataView(We),r.HEAP8=Ye=new Int8Array(We),r.HEAP16=et=new Int16Array(We),r.HEAP32=b=new Int32Array(We),r.HEAPU8=Se=new Uint8Array(We),r.HEAPU16=Ue=new Uint16Array(We),r.HEAPU32=w=new Uint32Array(We),r.HEAPF32=S=new Float32Array(We),r.HEAPF64=y=new Float64Array(We)}var X=r.INITIAL_MEMORY||16777216,$,ie=[],be=[],Re=[],at=!1;function dt(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)St(r.preRun.shift());oo(ie)}function jt(){at=!0,oo(be)}function tr(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)kr(r.postRun.shift());oo(Re)}function St(We){ie.unshift(We)}function ln(We){be.unshift(We)}function kr(We){Re.unshift(We)}var mr=0,br=null,Kr=null;function Kn(We){mr++,r.monitorRunDependencies&&r.monitorRunDependencies(mr)}function Ms(We){if(mr--,r.monitorRunDependencies&&r.monitorRunDependencies(mr),mr==0&&(br!==null&&(clearInterval(br),br=null),Kr)){var tt=Kr;Kr=null,tt()}}r.preloadedImages={},r.preloadedAudios={};function Ri(We){r.onAbort&&r.onAbort(We),We+="",te(We),Ee=!0,g=1,We="abort("+We+"). Build with -s ASSERTIONS=1 for more info.";var tt=new WebAssembly.RuntimeError(We);throw a(tt),tt}var gs="data:application/octet-stream;base64,";function io(We){return We.startsWith(gs)}var Pi="data:application/octet-stream;base64,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QCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQ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KAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASEL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NgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsi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CyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYg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DCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcN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DCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQL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bGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRl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UgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkA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SXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w==";io(Pi)||(Pi=x(Pi));function Os(We){try{if(We==Pi&&ce)return new Uint8Array(ce);var tt=ii(We);if(tt)return tt;if(R)return R(We);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(Bt){Ri(Bt)}}function so(We,tt){var Bt,or,ee;try{ee=Os(We),or=new WebAssembly.Module(ee),Bt=new WebAssembly.Instance(or,tt)}catch(Le){var ye=Le.toString();throw te("failed to compile wasm module: "+ye),(ye.includes("imported Memory")||ye.includes("memory import"))&&te("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),Le}return[Bt,or]}function uc(){var We={a:Ha};function tt(ee,ye){var Le=ee.exports;r.asm=Le,Be=r.asm.g,J(Be.buffer),$=r.asm.W,ln(r.asm.h),Ms("wasm-instantiate")}if(Kn("wasm-instantiate"),r.instantiateWasm)try{var Bt=r.instantiateWasm(We,tt);return Bt}catch(ee){return te("Module.instantiateWasm callback failed with error: "+ee),!1}var or=so(Pi,We);return tt(or[0]),r.asm}function Au(We){return F.getFloat32(We,!0)}function sp(We){return F.getFloat64(We,!0)}function op(We){return F.getInt16(We,!0)}function Us(We){return F.getInt32(We,!0)}function Dn(We,tt){F.setInt32(We,tt,!0)}function oo(We){for(;We.length>0;){var tt=We.shift();if(typeof tt=="function"){tt(r);continue}var Bt=tt.func;typeof Bt=="number"?tt.arg===void 0?$.get(Bt)():$.get(Bt)(tt.arg):Bt(tt.arg===void 0?null:tt.arg)}}function _s(We,tt){var Bt=new Date(Us((We>>2)*4)*1e3);Dn((tt>>2)*4,Bt.getUTCSeconds()),Dn((tt+4>>2)*4,Bt.getUTCMinutes()),Dn((tt+8>>2)*4,Bt.getUTCHours()),Dn((tt+12>>2)*4,Bt.getUTCDate()),Dn((tt+16>>2)*4,Bt.getUTCMonth()),Dn((tt+20>>2)*4,Bt.getUTCFullYear()-1900),Dn((tt+24>>2)*4,Bt.getUTCDay()),Dn((tt+36>>2)*4,0),Dn((tt+32>>2)*4,0);var or=Date.UTC(Bt.getUTCFullYear(),0,1,0,0,0,0),ee=(Bt.getTime()-or)/(1e3*60*60*24)|0;return Dn((tt+28>>2)*4,ee),_s.GMTString||(_s.GMTString=rt("GMT")),Dn((tt+40>>2)*4,_s.GMTString),tt}function ml(We,tt){return _s(We,tt)}function yl(We,tt,Bt){Se.copyWithin(We,tt,tt+Bt)}function ao(We){try{return Be.grow(We-ke.byteLength+65535>>>16),J(Be.buffer),1}catch{}}function Vn(We){var tt=Se.length;We=We>>>0;var Bt=2147483648;if(We>Bt)return!1;for(var or=1;or<=4;or*=2){var ee=tt*(1+.2/or);ee=Math.min(ee,We+100663296);var ye=Math.min(Bt,Fe(Math.max(We,ee),65536)),Le=ao(ye);if(Le)return!0}return!1}function Mn(We){le(We)}function Ti(We){var tt=Date.now()/1e3|0;return We&&Dn((We>>2)*4,tt),tt}function On(){if(On.called)return;On.called=!0;var We=new Date().getFullYear(),tt=new Date(We,0,1),Bt=new Date(We,6,1),or=tt.getTimezoneOffset(),ee=Bt.getTimezoneOffset(),ye=Math.max(or,ee);Dn((ys()>>2)*4,ye*60),Dn((ms()>>2)*4,+(or!=ee));function Le($r){var ji=$r.toTimeString().match(/\(([A-Za-z ]+)\)$/);return ji?ji[1]:"GMT"}var ft=Le(tt),pt=Le(Bt),Nt=rt(ft),rr=rt(pt);ee<or?(Dn((Ci()>>2)*4,Nt),Dn((Ci()+4>>2)*4,rr)):(Dn((Ci()>>2)*4,rr),Dn((Ci()+4>>2)*4,Nt))}function _i(We){On();var tt=Date.UTC(Us((We+20>>2)*4)+1900,Us((We+16>>2)*4),Us((We+12>>2)*4),Us((We+8>>2)*4),Us((We+4>>2)*4),Us((We>>2)*4),0),Bt=new Date(tt);Dn((We+24>>2)*4,Bt.getUTCDay());var or=Date.UTC(Bt.getUTCFullYear(),0,1,0,0,0,0),ee=(Bt.getTime()-or)/(1e3*60*60*24)|0;return Dn((We+28>>2)*4,ee),Bt.getTime()/1e3|0}var ir=typeof atob=="function"?atob:function(We){var tt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Bt="",or,ee,ye,Le,ft,pt,Nt,rr=0;We=We.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Le=tt.indexOf(We.charAt(rr++)),ft=tt.indexOf(We.charAt(rr++)),pt=tt.indexOf(We.charAt(rr++)),Nt=tt.indexOf(We.charAt(rr++)),or=Le<<2|ft>>4,ee=(ft&15)<<4|pt>>2,ye=(pt&3)<<6|Nt,Bt=Bt+String.fromCharCode(or),pt!==64&&(Bt=Bt+String.fromCharCode(ee)),Nt!==64&&(Bt=Bt+String.fromCharCode(ye));while(rr<We.length);return Bt};function Me(We){if(typeof I=="boolean"&&I){var tt;try{tt=Buffer.from(We,"base64")}catch{tt=new Buffer(We,"base64")}return new Uint8Array(tt.buffer,tt.byteOffset,tt.byteLength)}try{for(var Bt=ir(We),or=new Uint8Array(Bt.length),ee=0;ee<Bt.length;++ee)or[ee]=Bt.charCodeAt(ee);return or}catch{throw new Error("Converting base64 string to bytes failed.")}}function ii(We){if(io(We))return Me(We.slice(gs.length))}var Ha={e:ml,c:yl,d:Vn,a:Mn,b:Ti,f:_i},hr=uc(),Ac=r.___wasm_call_ctors=hr.h,fu=r._zip_ext_count_symlinks=hr.i,fc=r._zip_file_get_external_attributes=hr.j,El=r._zipstruct_statS=hr.k,vA=r._zipstruct_stat_size=hr.l,pu=r._zipstruct_stat_mtime=hr.m,Ie=r._zipstruct_stat_crc=hr.n,Tt=r._zipstruct_errorS=hr.o,pc=r._zipstruct_error_code_zip=hr.p,Hi=r._zipstruct_stat_comp_size=hr.q,hu=r._zipstruct_stat_comp_method=hr.r,Yt=r._zip_close=hr.s,Cl=r._zip_delete=hr.t,DA=r._zip_dir_add=hr.u,ap=r._zip_discard=hr.v,hc=r._zip_error_init_with_code=hr.w,PA=r._zip_get_error=hr.x,Qn=r._zip_file_get_error=hr.y,hi=r._zip_error_strerror=hr.z,gc=r._zip_fclose=hr.A,SA=r._zip_file_add=hr.B,aa=r._free=hr.C,Ni=r._malloc=hr.D,_o=r._zip_source_error=hr.E,Xe=r._zip_source_seek=hr.F,lo=r._zip_file_set_external_attributes=hr.G,dc=r._zip_file_set_mtime=hr.H,gu=r._zip_fopen_index=hr.I,qi=r._zip_fread=hr.J,du=r._zip_get_name=hr.K,bA=r._zip_get_num_entries=hr.L,qa=r._zip_source_read=hr.M,mc=r._zip_name_locate=hr.N,ds=r._zip_open_from_source=hr.O,Ht=r._zip_set_file_compression=hr.P,Fn=r._zip_source_buffer=hr.Q,Ei=r._zip_source_buffer_create=hr.R,la=r._zip_source_close=hr.S,co=r._zip_source_free=hr.T,Hs=r._zip_source_keep=hr.U,ca=r._zip_source_open=hr.V,ua=r._zip_source_tell=hr.X,Ho=r._zip_stat_index=hr.Y,Ci=r.__get_tzname=hr.Z,ms=r.__get_daylight=hr._,ys=r.__get_timezone=hr.$,Es=r.stackSave=hr.aa,qs=r.stackRestore=hr.ba,Un=r.stackAlloc=hr.ca;r.cwrap=ne,r.getValue=de;var Pn;Kr=function We(){Pn||Cs(),Pn||(Kr=We)};function Cs(We){if(We=We||A,mr>0||(dt(),mr>0))return;function tt(){Pn||(Pn=!0,r.calledRun=!0,!Ee&&(jt(),o(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),tr()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),tt()},1)):tt()}if(r.run=Cs,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return Cs(),e}}();typeof Cb=="object"&&typeof K4=="object"?K4.exports=W4:typeof define=="function"&&define.amd?define([],function(){return W4}):typeof Cb=="object"&&(Cb.createModule=W4)});var Tf,Ole,Ule,_le=Et(()=>{Tf=["number","number"],Ole=(Z=>(Z[Z.ZIP_ER_OK=0]="ZIP_ER_OK",Z[Z.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",Z[Z.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",Z[Z.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",Z[Z.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",Z[Z.ZIP_ER_READ=5]="ZIP_ER_READ",Z[Z.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",Z[Z.ZIP_ER_CRC=7]="ZIP_ER_CRC",Z[Z.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",Z[Z.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",Z[Z.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",Z[Z.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",Z[Z.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",Z[Z.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",Z[Z.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",Z[Z.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",Z[Z.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",Z[Z.ZIP_ER_EOF=17]="ZIP_ER_EOF",Z[Z.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",Z[Z.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",Z[Z.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",Z[Z.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",Z[Z.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",Z[Z.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",Z[Z.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",Z[Z.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",Z[Z.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",Z[Z.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",Z[Z.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",Z[Z.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",Z[Z.ZIP_ER_TELL=30]="ZIP_ER_TELL",Z[Z.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",Z))(Ole||{}),Ule=t=>({get HEAPU8(){return t.HEAPU8},errors:Ole,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_EXCL:2,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint32S:t._malloc(4),malloc:t._malloc,free:t._free,getValue:t.getValue,openFromSource:t.cwrap("zip_open_from_source","number",["number","number","number"]),close:t.cwrap("zip_close","number",["number"]),discard:t.cwrap("zip_discard",null,["number"]),getError:t.cwrap("zip_get_error","number",["number"]),getName:t.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:t.cwrap("zip_get_num_entries","number",["number","number"]),delete:t.cwrap("zip_delete","number",["number","number"]),statIndex:t.cwrap("zip_stat_index","number",["number",...Tf,"number","number"]),fopenIndex:t.cwrap("zip_fopen_index","number",["number",...Tf,"number"]),fread:t.cwrap("zip_fread","number",["number","number","number","number"]),fclose:t.cwrap("zip_fclose","number",["number"]),dir:{add:t.cwrap("zip_dir_add","number",["number","string"])},file:{add:t.cwrap("zip_file_add","number",["number","string","number","number"]),getError:t.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:t.cwrap("zip_file_get_external_attributes","number",["number",...Tf,"number","number","number"]),setExternalAttributes:t.cwrap("zip_file_set_external_attributes","number",["number",...Tf,"number","number","number"]),setMtime:t.cwrap("zip_file_set_mtime","number",["number",...Tf,"number","number"]),setCompression:t.cwrap("zip_set_file_compression","number",["number",...Tf,"number","number"])},ext:{countSymlinks:t.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:t.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:t.cwrap("zip_error_strerror","string",["number"])},name:{locate:t.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:t.cwrap("zip_source_buffer_create","number",["number",...Tf,"number","number"]),fromBuffer:t.cwrap("zip_source_buffer","number",["number","number",...Tf,"number"]),free:t.cwrap("zip_source_free",null,["number"]),keep:t.cwrap("zip_source_keep",null,["number"]),open:t.cwrap("zip_source_open","number",["number"]),close:t.cwrap("zip_source_close","number",["number"]),seek:t.cwrap("zip_source_seek","number",["number",...Tf,"number"]),tell:t.cwrap("zip_source_tell","number",["number"]),read:t.cwrap("zip_source_read","number",["number","number","number"]),error:t.cwrap("zip_source_error","number",["number"])},struct:{statS:t.cwrap("zipstruct_statS","number",[]),statSize:t.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:t.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:t.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:t.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:t.cwrap("zipstruct_stat_crc","number",["number"]),errorS:t.cwrap("zipstruct_errorS","number",[]),errorCodeZip:t.cwrap("zipstruct_error_code_zip","number",["number"])}})});function V4(t,e){let r=t.indexOf(e);if(r<=0)return null;let o=r;for(;r>=0&&(o=r+e.length,t[o]!==K.sep);){if(t[r-1]===K.sep)return null;r=t.indexOf(e,o)}return t.length>o&&t[o]!==K.sep?null:t.slice(0,o)}var rA,Hle=Et(()=>{Pt();Pt();nA();rA=class t extends Op{static async openPromise(e,r){let o=new t(r);try{return await e(o)}finally{o.saveAndClose()}}constructor(e={}){let r=e.fileExtensions,o=e.readOnlyArchives,a=typeof r>"u"?A=>V4(A,".zip"):A=>{for(let p of r){let h=V4(A,p);if(h)return h}return null},n=(A,p)=>new Zi(p,{baseFs:A,readOnly:o,stats:A.statSync(p)}),u=async(A,p)=>{let h={baseFs:A,readOnly:o,stats:await A.statPromise(p)};return()=>new Zi(p,h)};super({...e,factorySync:n,factoryPromise:u,getMountPoint:a})}}});function fot(t){if(typeof t=="string"&&String(+t)===t)return+t;if(typeof t=="number"&&Number.isFinite(t))return t<0?Date.now()/1e3:t;if(qle.types.isDate(t))return t.getTime()/1e3;throw new Error("Invalid time")}function wb(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var na,z4,qle,J4,jle,Ib,Zi,X4=Et(()=>{Pt();Pt();Pt();Pt();Pt();Pt();na=ve("fs"),z4=ve("stream"),qle=ve("util"),J4=Ze(ve("zlib"));Y4();jle="mixed";Ib=class extends Error{constructor(e,r){super(e),this.name="Libzip Error",this.code=r}},Zi=class extends _u{constructor(r,o={}){super();this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;let a=o;if(this.level=typeof a.level<"u"?a.level:jle,r??=wb(),typeof r=="string"){let{baseFs:A=new Tn}=a;this.baseFs=A,this.path=r}else this.path=null,this.baseFs=null;if(o.stats)this.stats=o.stats;else if(typeof r=="string")try{this.stats=this.baseFs.statSync(r)}catch(A){if(A.code==="ENOENT"&&a.create)this.stats=wa.makeDefaultStats();else throw A}else this.stats=wa.makeDefaultStats();this.libzip=f1();let n=this.libzip.malloc(4);try{let A=0;o.readOnly&&(A|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof r=="string"&&(r=a.create?wb():this.baseFs.readFileSync(r));let p=this.allocateUnattachedSource(r);try{this.zip=this.libzip.openFromSource(p,A,n),this.lzSource=p}catch(h){throw this.libzip.source.free(p),h}if(this.zip===0){let h=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(h,this.libzip.getValue(n,"i32")),this.makeLibzipError(h)}}finally{this.libzip.free(n)}this.listings.set(It.root,new Set);let u=this.libzip.getNumEntries(this.zip,0);for(let A=0;A<u;++A){let p=this.libzip.getName(this.zip,A,0);if(K.isAbsolute(p))continue;let h=K.resolve(It.root,p);this.registerEntry(h,A),p.endsWith("/")&&this.registerListing(h)}if(this.symlinkCount=this.libzip.ext.countSymlinks(this.zip),this.symlinkCount===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.ready=!0}makeLibzipError(r){let o=this.libzip.struct.errorCodeZip(r),a=this.libzip.error.strerror(r),n=new Ib(a,this.libzip.errors[o]);if(o===this.libzip.errors.ZIP_ER_CHANGED)throw new Error(`Assertion failed: Unexpected libzip error: ${n.message}`);return n}getExtractHint(r){for(let o of this.entries.keys()){let a=this.pathUtils.extname(o);if(r.relevantExtensions.has(a))return!0}return!1}getAllFiles(){return Array.from(this.entries.keys())}getRealPath(){if(!this.path)throw new Error("ZipFS don't have real paths when loaded from a buffer");return this.path}prepareClose(){if(!this.ready)throw nr.EBUSY("archive closed, close");N0(this)}getBufferAndClose(){if(this.prepareClose(),this.entries.size===0)return this.discardAndClose(),wb();try{if(this.libzip.source.keep(this.lzSource),this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.libzip.source.open(this.lzSource)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_END)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let r=this.libzip.source.tell(this.lzSource);if(r===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_SET)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let o=this.libzip.malloc(r);if(!o)throw new Error("Couldn't allocate enough memory");try{let a=this.libzip.source.read(this.lzSource,o,r);if(a===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(a<r)throw new Error("Incomplete read");if(a>r)throw new Error("Overread");let n=Buffer.from(this.libzip.HEAPU8.subarray(o,o+r));return process.env.YARN_IS_TEST_ENV&&process.env.YARN_ZIP_DATA_EPILOGUE&&(n=Buffer.concat([n,Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)])),n}finally{this.libzip.free(o)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.readOnly){this.discardAndClose();return}let r=this.baseFs.existsSync(this.path)||this.stats.mode===wa.DEFAULT_MODE?void 0:this.stats.mode;this.baseFs.writeFileSync(this.path,this.getBufferAndClose(),{mode:r}),this.ready=!1}resolve(r){return K.resolve(It.root,r)}async openPromise(r,o,a){return this.openSync(r,o,a)}openSync(r,o,a){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:r}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(r,o){return this.opendirSync(r,o)}opendirSync(r,o={}){let a=this.resolveFilename(`opendir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw nr.ENOENT(`opendir '${r}'`);let n=this.listings.get(a);if(!n)throw nr.ENOTDIR(`opendir '${r}'`);let u=[...n],A=this.openSync(a,"r");return uD(this,a,u,{onClose:()=>{this.closeSync(A)}})}async readPromise(r,o,a,n,u){return this.readSync(r,o,a,n,u)}readSync(r,o,a=0,n=o.byteLength,u=-1){let A=this.fds.get(r);if(typeof A>"u")throw nr.EBADF("read");let p=u===-1||u===null?A.cursor:u,h=this.readFileSync(A.p);h.copy(o,a,p,p+n);let E=Math.max(0,Math.min(h.length-p,n));return(u===-1||u===null)&&(A.cursor+=E),E}async writePromise(r,o,a,n,u){return typeof o=="string"?this.writeSync(r,o,u):this.writeSync(r,o,a,n,u)}writeSync(r,o,a,n,u){throw typeof this.fds.get(r)>"u"?nr.EBADF("read"):new Error("Unimplemented")}async closePromise(r){return this.closeSync(r)}closeSync(r){if(typeof this.fds.get(r)>"u")throw nr.EBADF("read");this.fds.delete(r)}createReadStream(r,{encoding:o}={}){if(r===null)throw new Error("Unimplemented");let a=this.openSync(r,"r"),n=Object.assign(new z4.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(A,p)=>{clearImmediate(u),this.closeSync(a),p(A)}}),{close(){n.destroy()},bytesRead:0,path:r,pending:!1}),u=setImmediate(async()=>{try{let A=await this.readFilePromise(r,o);n.bytesRead=A.length,n.end(A)}catch(A){n.destroy(A)}});return n}createWriteStream(r,{encoding:o}={}){if(this.readOnly)throw nr.EROFS(`open '${r}'`);if(r===null)throw new Error("Unimplemented");let a=[],n=this.openSync(r,"w"),u=Object.assign(new z4.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(A,p)=>{try{A?p(A):(this.writeFileSync(r,Buffer.concat(a),o),p(null))}catch(h){p(h)}finally{this.closeSync(n)}}}),{close(){u.destroy()},bytesWritten:0,path:r,pending:!1});return u.on("data",A=>{let p=Buffer.from(A);u.bytesWritten+=p.length,a.push(p)}),u}async realpathPromise(r){return this.realpathSync(r)}realpathSync(r){let o=this.resolveFilename(`lstat '${r}'`,r);if(!this.entries.has(o)&&!this.listings.has(o))throw nr.ENOENT(`lstat '${r}'`);return o}async existsPromise(r){return this.existsSync(r)}existsSync(r){if(!this.ready)throw nr.EBUSY(`archive closed, existsSync '${r}'`);if(this.symlinkCount===0){let a=K.resolve(It.root,r);return this.entries.has(a)||this.listings.has(a)}let o;try{o=this.resolveFilename(`stat '${r}'`,r,void 0,!1)}catch{return!1}return o===void 0?!1:this.entries.has(o)||this.listings.has(o)}async accessPromise(r,o){return this.accessSync(r,o)}accessSync(r,o=na.constants.F_OK){let a=this.resolveFilename(`access '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw nr.ENOENT(`access '${r}'`);if(this.readOnly&&o&na.constants.W_OK)throw nr.EROFS(`access '${r}'`)}async statPromise(r,o={bigint:!1}){return o.bigint?this.statSync(r,{bigint:!0}):this.statSync(r)}statSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`stat '${r}'`,r,void 0,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw nr.ENOENT(`stat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw nr.ENOTDIR(`stat '${r}'`);return this.statImpl(`stat '${r}'`,a,o)}}async fstatPromise(r,o){return this.fstatSync(r,o)}fstatSync(r,o){let a=this.fds.get(r);if(typeof a>"u")throw nr.EBADF("fstatSync");let{p:n}=a,u=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(u)&&!this.listings.has(u))throw nr.ENOENT(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(u))throw nr.ENOTDIR(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,u,o)}async lstatPromise(r,o={bigint:!1}){return o.bigint?this.lstatSync(r,{bigint:!0}):this.lstatSync(r)}lstatSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`lstat '${r}'`,r,!1,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw nr.ENOENT(`lstat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw nr.ENOTDIR(`lstat '${r}'`);return this.statImpl(`lstat '${r}'`,a,o)}}statImpl(r,o,a={}){let n=this.entries.get(o);if(typeof n<"u"){let u=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,n,0,0,u)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let p=this.stats.uid,h=this.stats.gid,E=this.libzip.struct.statSize(u)>>>0,I=512,v=Math.ceil(E/I),x=(this.libzip.struct.statMtime(u)>>>0)*1e3,C=x,R=x,L=x,U=new Date(C),z=new Date(R),te=new Date(L),ae=new Date(x),le=this.listings.has(o)?na.constants.S_IFDIR:this.isSymbolicLink(n)?na.constants.S_IFLNK:na.constants.S_IFREG,ce=le===na.constants.S_IFDIR?493:420,Ce=le|this.getUnixMode(n,ce)&511,de=this.libzip.struct.statCrc(u),Be=Object.assign(new wa.StatEntry,{uid:p,gid:h,size:E,blksize:I,blocks:v,atime:U,birthtime:z,ctime:te,mtime:ae,atimeMs:C,birthtimeMs:R,ctimeMs:L,mtimeMs:x,mode:Ce,crc:de});return a.bigint===!0?wa.convertToBigIntStats(Be):Be}if(this.listings.has(o)){let u=this.stats.uid,A=this.stats.gid,p=0,h=512,E=0,I=this.stats.mtimeMs,v=this.stats.mtimeMs,x=this.stats.mtimeMs,C=this.stats.mtimeMs,R=new Date(I),L=new Date(v),U=new Date(x),z=new Date(C),te=na.constants.S_IFDIR|493,le=Object.assign(new wa.StatEntry,{uid:u,gid:A,size:p,blksize:h,blocks:E,atime:R,birthtime:L,ctime:U,mtime:z,atimeMs:I,birthtimeMs:v,ctimeMs:x,mtimeMs:C,mode:te,crc:0});return a.bigint===!0?wa.convertToBigIntStats(le):le}throw new Error("Unreachable")}getUnixMode(r,o){if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?o:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(r){let o=this.listings.get(r);if(o)return o;this.registerListing(K.dirname(r)).add(K.basename(r));let n=new Set;return this.listings.set(r,n),n}registerEntry(r,o){this.registerListing(K.dirname(r)).add(K.basename(r)),this.entries.set(r,o)}unregisterListing(r){this.listings.delete(r),this.listings.get(K.dirname(r))?.delete(K.basename(r))}unregisterEntry(r){this.unregisterListing(r);let o=this.entries.get(r);this.entries.delete(r),!(typeof o>"u")&&(this.fileSources.delete(o),this.isSymbolicLink(o)&&this.symlinkCount--)}deleteEntry(r,o){if(this.unregisterEntry(r),this.libzip.delete(this.zip,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(r,o,a=!0,n=!0){if(!this.ready)throw nr.EBUSY(`archive closed, ${r}`);let u=K.resolve(It.root,o);if(u==="/")return It.root;let A=this.entries.get(u);if(a&&A!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(A)){let p=this.getFileSource(A).toString();return this.resolveFilename(r,K.resolve(K.dirname(u),p),!0,n)}else return u;for(;;){let p=this.resolveFilename(r,K.dirname(u),!0,n);if(p===void 0)return p;let h=this.listings.has(p),E=this.entries.has(p);if(!h&&!E){if(n===!1)return;throw nr.ENOENT(r)}if(!h)throw nr.ENOTDIR(r);if(u=K.resolve(p,K.basename(u)),!a||this.symlinkCount===0)break;let I=this.libzip.name.locate(this.zip,u.slice(1),0);if(I===-1)break;if(this.isSymbolicLink(I)){let v=this.getFileSource(I).toString();u=K.resolve(K.dirname(u),v)}else break}return u}allocateBuffer(r){Buffer.isBuffer(r)||(r=Buffer.from(r));let o=this.libzip.malloc(r.byteLength);if(!o)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,o,r.byteLength).set(r),{buffer:o,byteLength:r.byteLength}}allocateUnattachedSource(r){let o=this.libzip.struct.errorS(),{buffer:a,byteLength:n}=this.allocateBuffer(r),u=this.libzip.source.fromUnattachedBuffer(a,n,0,1,o);if(u===0)throw this.libzip.free(o),this.makeLibzipError(o);return u}allocateSource(r){let{buffer:o,byteLength:a}=this.allocateBuffer(r),n=this.libzip.source.fromBuffer(this.zip,o,a,0,1);if(n===0)throw this.libzip.free(o),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(r,o){let a=Buffer.isBuffer(o)?o:Buffer.from(o),n=K.relative(It.root,r),u=this.allocateSource(o);try{let A=this.libzip.file.add(this.zip,n,u,this.libzip.ZIP_FL_OVERWRITE);if(A===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let p=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,A,0,p,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(A,a),A}catch(A){throw this.libzip.source.free(u),A}}isSymbolicLink(r){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&na.constants.S_IFMT)===na.constants.S_IFLNK}getFileSource(r,o={asyncDecompress:!1}){let a=this.fileSources.get(r);if(typeof a<"u")return a;let n=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,r,0,0,n)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let A=this.libzip.struct.statCompSize(n),p=this.libzip.struct.statCompMethod(n),h=this.libzip.malloc(A);try{let E=this.libzip.fopenIndex(this.zip,r,0,this.libzip.ZIP_FL_COMPRESSED);if(E===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let I=this.libzip.fread(E,h,A,0);if(I===-1)throw this.makeLibzipError(this.libzip.file.getError(E));if(I<A)throw new Error("Incomplete read");if(I>A)throw new Error("Overread");let v=this.libzip.HEAPU8.subarray(h,h+A),x=Buffer.from(v);if(p===0)return this.fileSources.set(r,x),x;if(o.asyncDecompress)return new Promise((C,R)=>{J4.default.inflateRaw(x,(L,U)=>{L?R(L):(this.fileSources.set(r,U),C(U))})});{let C=J4.default.inflateRawSync(x);return this.fileSources.set(r,C),C}}finally{this.libzip.fclose(E)}}finally{this.libzip.free(h)}}async fchmodPromise(r,o){return this.chmodPromise(this.fdToPath(r,"fchmod"),o)}fchmodSync(r,o){return this.chmodSync(this.fdToPath(r,"fchmodSync"),o)}async chmodPromise(r,o){return this.chmodSync(r,o)}chmodSync(r,o){if(this.readOnly)throw nr.EROFS(`chmod '${r}'`);o&=493;let a=this.resolveFilename(`chmod '${r}'`,r,!1),n=this.entries.get(a);if(typeof n>"u")throw new Error(`Assertion failed: The entry should have been registered (${a})`);let A=this.getUnixMode(n,na.constants.S_IFREG|0)&-512|o;if(this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,A<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(r,o,a){return this.chownPromise(this.fdToPath(r,"fchown"),o,a)}fchownSync(r,o,a){return this.chownSync(this.fdToPath(r,"fchownSync"),o,a)}async chownPromise(r,o,a){return this.chownSync(r,o,a)}chownSync(r,o,a){throw new Error("Unimplemented")}async renamePromise(r,o){return this.renameSync(r,o)}renameSync(r,o){throw new Error("Unimplemented")}async copyFilePromise(r,o,a){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=await this.getFileSource(n,{asyncDecompress:!0}),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}copyFileSync(r,o,a=0){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=this.getFileSource(n),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}prepareCopyFile(r,o,a=0){if(this.readOnly)throw nr.EROFS(`copyfile '${r} -> '${o}'`);if(a&na.constants.COPYFILE_FICLONE_FORCE)throw nr.ENOSYS("unsupported clone operation",`copyfile '${r}' -> ${o}'`);let n=this.resolveFilename(`copyfile '${r} -> ${o}'`,r),u=this.entries.get(n);if(typeof u>"u")throw nr.EINVAL(`copyfile '${r}' -> '${o}'`);let A=this.resolveFilename(`copyfile '${r}' -> ${o}'`,o),p=this.entries.get(A);if(a&(na.constants.COPYFILE_EXCL|na.constants.COPYFILE_FICLONE_FORCE)&&typeof p<"u")throw nr.EEXIST(`copyfile '${r}' -> '${o}'`);return{indexSource:u,resolvedDestP:A,indexDest:p}}async appendFilePromise(r,o,a){if(this.readOnly)throw nr.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFilePromise(r,o,a)}appendFileSync(r,o,a={}){if(this.readOnly)throw nr.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFileSync(r,o,a)}fdToPath(r,o){let a=this.fds.get(r)?.p;if(typeof a>"u")throw nr.EBADF(o);return a}async writeFilePromise(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([await this.getFileSource(A,{asyncDecompress:!0}),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&await this.chmodPromise(p,u)}writeFileSync(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([this.getFileSource(A),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&this.chmodSync(p,u)}prepareWriteFile(r,o){if(typeof r=="number"&&(r=this.fdToPath(r,"read")),this.readOnly)throw nr.EROFS(`open '${r}'`);let a=this.resolveFilename(`open '${r}'`,r);if(this.listings.has(a))throw nr.EISDIR(`open '${r}'`);let n=null,u=null;typeof o=="string"?n=o:typeof o=="object"&&({encoding:n=null,mode:u=null}=o);let A=this.entries.get(a);return{encoding:n,mode:u,resolvedP:a,index:A}}async unlinkPromise(r){return this.unlinkSync(r)}unlinkSync(r){if(this.readOnly)throw nr.EROFS(`unlink '${r}'`);let o=this.resolveFilename(`unlink '${r}'`,r);if(this.listings.has(o))throw nr.EISDIR(`unlink '${r}'`);let a=this.entries.get(o);if(typeof a>"u")throw nr.EINVAL(`unlink '${r}'`);this.deleteEntry(o,a)}async utimesPromise(r,o,a){return this.utimesSync(r,o,a)}utimesSync(r,o,a){if(this.readOnly)throw nr.EROFS(`utimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r);this.utimesImpl(n,a)}async lutimesPromise(r,o,a){return this.lutimesSync(r,o,a)}lutimesSync(r,o,a){if(this.readOnly)throw nr.EROFS(`lutimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r,!1);this.utimesImpl(n,a)}utimesImpl(r,o){this.listings.has(r)&&(this.entries.has(r)||this.hydrateDirectory(r));let a=this.entries.get(r);if(a===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,a,0,fot(o),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(r,o){return this.mkdirSync(r,o)}mkdirSync(r,{mode:o=493,recursive:a=!1}={}){if(a)return this.mkdirpSync(r,{chmod:o});if(this.readOnly)throw nr.EROFS(`mkdir '${r}'`);let n=this.resolveFilename(`mkdir '${r}'`,r);if(this.entries.has(n)||this.listings.has(n))throw nr.EEXIST(`mkdir '${r}'`);this.hydrateDirectory(n),this.chmodSync(n,o)}async rmdirPromise(r,o){return this.rmdirSync(r,o)}rmdirSync(r,{recursive:o=!1}={}){if(this.readOnly)throw nr.EROFS(`rmdir '${r}'`);if(o){this.removeSync(r);return}let a=this.resolveFilename(`rmdir '${r}'`,r),n=this.listings.get(a);if(!n)throw nr.ENOTDIR(`rmdir '${r}'`);if(n.size>0)throw nr.ENOTEMPTY(`rmdir '${r}'`);let u=this.entries.get(a);if(typeof u>"u")throw nr.EINVAL(`rmdir '${r}'`);this.deleteEntry(r,u)}async rmPromise(r,o){return this.rmSync(r,o)}rmSync(r,{recursive:o=!1}={}){if(this.readOnly)throw nr.EROFS(`rm '${r}'`);if(o){this.removeSync(r);return}let a=this.resolveFilename(`rm '${r}'`,r),n=this.listings.get(a);if(!n)throw nr.ENOTDIR(`rm '${r}'`);if(n.size>0)throw nr.ENOTEMPTY(`rm '${r}'`);let u=this.entries.get(a);if(typeof u>"u")throw nr.EINVAL(`rm '${r}'`);this.deleteEntry(r,u)}hydrateDirectory(r){let o=this.libzip.dir.add(this.zip,K.relative(It.root,r));if(o===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(r),this.registerEntry(r,o),o}async linkPromise(r,o){return this.linkSync(r,o)}linkSync(r,o){throw nr.EOPNOTSUPP(`link '${r}' -> '${o}'`)}async symlinkPromise(r,o){return this.symlinkSync(r,o)}symlinkSync(r,o){if(this.readOnly)throw nr.EROFS(`symlink '${r}' -> '${o}'`);let a=this.resolveFilename(`symlink '${r}' -> '${o}'`,o);if(this.listings.has(a))throw nr.EISDIR(`symlink '${r}' -> '${o}'`);if(this.entries.has(a))throw nr.EEXIST(`symlink '${r}' -> '${o}'`);let n=this.setFileSource(a,r);if(this.registerEntry(a,n),this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(na.constants.S_IFLNK|511)<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=await this.readFileBuffer(r,{asyncDecompress:!0});return o?a.toString(o):a}readFileSync(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=this.readFileBuffer(r);return o?a.toString(o):a}readFileBuffer(r,o={asyncDecompress:!1}){typeof r=="number"&&(r=this.fdToPath(r,"read"));let a=this.resolveFilename(`open '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw nr.ENOENT(`open '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(a))throw nr.ENOTDIR(`open '${r}'`);if(this.listings.has(a))throw nr.EISDIR("read");let n=this.entries.get(a);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,o)}async readdirPromise(r,o){return this.readdirSync(r,o)}readdirSync(r,o){let a=this.resolveFilename(`scandir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw nr.ENOENT(`scandir '${r}'`);let n=this.listings.get(a);if(!n)throw nr.ENOTDIR(`scandir '${r}'`);if(o?.recursive)if(o?.withFileTypes){let u=Array.from(n,A=>Object.assign(this.statImpl("lstat",K.join(r,A)),{name:A,path:It.dot}));for(let A of u){if(!A.isDirectory())continue;let p=K.join(A.path,A.name),h=this.listings.get(K.join(a,p));for(let E of h)u.push(Object.assign(this.statImpl("lstat",K.join(r,p,E)),{name:E,path:p}))}return u}else{let u=[...n];for(let A of u){let p=this.listings.get(K.join(a,A));if(!(typeof p>"u"))for(let h of p)u.push(K.join(A,h))}return u}else return o?.withFileTypes?Array.from(n,u=>Object.assign(this.statImpl("lstat",K.join(r,u)),{name:u,path:void 0})):[...n]}async readlinkPromise(r){let o=this.prepareReadlink(r);return(await this.getFileSource(o,{asyncDecompress:!0})).toString()}readlinkSync(r){let o=this.prepareReadlink(r);return this.getFileSource(o).toString()}prepareReadlink(r){let o=this.resolveFilename(`readlink '${r}'`,r,!1);if(!this.entries.has(o)&&!this.listings.has(o))throw nr.ENOENT(`readlink '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(o))throw nr.ENOTDIR(`open '${r}'`);if(this.listings.has(o))throw nr.EINVAL(`readlink '${r}'`);let a=this.entries.get(o);if(a===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(a))throw nr.EINVAL(`readlink '${r}'`);return a}async truncatePromise(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw nr.EINVAL(`open '${r}'`);let u=await this.getFileSource(n,{asyncDecompress:!0}),A=Buffer.alloc(o,0);return u.copy(A),await this.writeFilePromise(r,A)}truncateSync(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw nr.EINVAL(`open '${r}'`);let u=this.getFileSource(n),A=Buffer.alloc(o,0);return u.copy(A),this.writeFileSync(r,A)}async ftruncatePromise(r,o){return this.truncatePromise(this.fdToPath(r,"ftruncate"),o)}ftruncateSync(r,o){return this.truncateSync(this.fdToPath(r,"ftruncateSync"),o)}watch(r,o,a){let n;switch(typeof o){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=o);break}if(!n)return{on:()=>{},close:()=>{}};let u=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(u)}}}watchFile(r,o,a){let n=K.resolve(It.root,r);return jd(this,n,o,a)}unwatchFile(r,o){let a=K.resolve(It.root,r);return T0(this,a,o)}}});function Yle(t,e,r=Buffer.alloc(0),o){let a=new Zi(r),n=I=>I===e||I.startsWith(`${e}/`)?I.slice(0,e.length):null,u=async(I,v)=>()=>a,A=(I,v)=>a,p={...t},h=new Tn(p),E=new Op({baseFs:h,getMountPoint:n,factoryPromise:u,factorySync:A,magicByte:21,maxAge:1/0,typeCheck:o?.typeCheck});return xw(Gle.default,new Up(E)),a}var Gle,Wle=Et(()=>{Pt();Gle=Ze(ve("fs"));X4()});var Kle=Et(()=>{Hle();X4();Wle()});var p1={};Vt(p1,{DEFAULT_COMPRESSION_LEVEL:()=>jle,LibzipError:()=>Ib,ZipFS:()=>Zi,ZipOpenFS:()=>rA,getArchivePart:()=>V4,getLibzipPromise:()=>hot,getLibzipSync:()=>pot,makeEmptyArchive:()=>wb,mountMemoryDrive:()=>Yle});function pot(){return f1()}async function hot(){return f1()}var Vle,nA=Et(()=>{Y4();Vle=Ze(Mle());_le();Kle();Lle(()=>{let t=(0,Vle.default)();return Ule(t)})});var h1,zle=Et(()=>{Pt();qt();g1();h1=class extends it{constructor(){super(...arguments);this.cwd=ge.String("--cwd",process.cwd(),{description:"The directory to run the command in"});this.commandName=ge.String();this.args=ge.Proxy()}static{this.usage={description:"run a command using yarn's portable shell",details:` - This command will run a command using Yarn's portable shell. - - Make sure to escape glob patterns, redirections, and other features that might be expanded by your own shell. - - Note: To escape something from Yarn's shell, you might have to escape it twice, the first time from your own shell. - - Note: Don't use this command in Yarn scripts, as Yarn's shell is automatically used. - - For a list of features, visit: https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-shell/README.md. - `,examples:[["Run a simple command","$0 echo Hello"],["Run a command with a glob pattern","$0 echo '*.js'"],["Run a command with a redirection","$0 echo Hello World '>' hello.txt"],["Run a command with an escaped glob pattern (The double escape is needed in Unix shells)",`$0 echo '"*.js"'`],["Run a command with a variable (Double quotes are needed in Unix shells, to prevent them from expanding the variable)",'$0 "GREETING=Hello echo $GREETING World"']]}}async execute(){let r=this.args.length>0?`${this.commandName} ${this.args.join(" ")}`:this.commandName;return await cy(r,[],{cwd:ue.toPortablePath(this.cwd),stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}}});var ll,Jle=Et(()=>{ll=class extends Error{constructor(e){super(e),this.name="ShellError"}}});var Db={};Vt(Db,{fastGlobOptions:()=>$le,isBraceExpansion:()=>Z4,isGlobPattern:()=>got,match:()=>dot,micromatchOptions:()=>vb});function got(t){if(!Bb.default.scan(t,vb).isGlob)return!1;try{Bb.default.parse(t,vb)}catch{return!1}return!0}function dot(t,{cwd:e,baseFs:r}){return(0,Xle.default)(t,{...$le,cwd:ue.fromPortablePath(e),fs:mD(Zle.default,new Up(r))})}function Z4(t){return Bb.default.scan(t,vb).isBrace}var Xle,Zle,Bb,vb,$le,ece=Et(()=>{Pt();Xle=Ze(ES()),Zle=Ze(ve("fs")),Bb=Ze($o()),vb={strictBrackets:!0},$le={onlyDirectories:!1,onlyFiles:!1}});function $4(){}function eU(){for(let t of vg)t.kill()}function ice(t,e,r,o){return a=>{let n=a[0]instanceof iA.Transform?"pipe":a[0],u=a[1]instanceof iA.Transform?"pipe":a[1],A=a[2]instanceof iA.Transform?"pipe":a[2],p=(0,rce.default)(t,e,{...o,stdio:[n,u,A]});return vg.add(p),vg.size===1&&(process.on("SIGINT",$4),process.on("SIGTERM",eU)),a[0]instanceof iA.Transform&&a[0].pipe(p.stdin),a[1]instanceof iA.Transform&&p.stdout.pipe(a[1],{end:!1}),a[2]instanceof iA.Transform&&p.stderr.pipe(a[2],{end:!1}),{stdin:p.stdin,promise:new Promise(h=>{p.on("error",E=>{switch(vg.delete(p),vg.size===0&&(process.off("SIGINT",$4),process.off("SIGTERM",eU)),E.code){case"ENOENT":a[2].write(`command not found: ${t} -`),h(127);break;case"EACCES":a[2].write(`permission denied: ${t} -`),h(128);break;default:a[2].write(`uncaught error: ${E.message} -`),h(1);break}}),p.on("close",E=>{vg.delete(p),vg.size===0&&(process.off("SIGINT",$4),process.off("SIGTERM",eU)),h(E!==null?E:129)})})}}}function sce(t){return e=>{let r=e[0]==="pipe"?new iA.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}function Pb(t,e){return rU.start(t,e)}function tce(t,e=null){let r=new iA.PassThrough,o=new nce.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(` -`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",t(e!==null?`${e} ${p}`:p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&t(e!==null?`${e} ${n}`:n)}),r}function oce(t,{prefix:e}){return{stdout:tce(r=>t.stdout.write(`${r} -`),t.stdout.isTTY?e:null),stderr:tce(r=>t.stderr.write(`${r} -`),t.stderr.isTTY?e:null)}}var rce,iA,nce,vg,Jl,tU,rU,nU=Et(()=>{rce=Ze(KR()),iA=ve("stream"),nce=ve("string_decoder"),vg=new Set;Jl=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},tU=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},rU=class t{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:o,stderr:a}){let n=new t(null,e);return n.stdin=r,n.stdout=o,n.stderr=a,n}pipeTo(e,r=1){let o=new t(this,e),a=new tU;return o.pipe=a,o.stdout=this.stdout,o.stderr=this.stderr,(r&1)===1?this.stdout=a:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)===2?this.stderr=a:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),o}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let o;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");o=this.stderr,e[2]=o.get();let a=this.implementation(e);return this.pipe&&this.pipe.attach(a.stdin),await a.promise.then(n=>(r.close(),o.close(),n))}async run(){let e=[];for(let o=this;o;o=o.ancestor)e.push(o.exec());return(await Promise.all(e))[0]}}});var E1={};Vt(E1,{EntryCommand:()=>h1,ShellError:()=>ll,execute:()=>cy,globUtils:()=>Db});function ace(t,e,r){let o=new cl.PassThrough({autoDestroy:!0});switch(t){case 0:(e&1)===1&&r.stdin.pipe(o,{end:!1}),(e&2)===2&&r.stdin instanceof cl.Writable&&o.pipe(r.stdin,{end:!1});break;case 1:(e&1)===1&&r.stdout.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stdout,{end:!1});break;case 2:(e&1)===1&&r.stderr.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stderr,{end:!1});break;default:throw new ll(`Bad file descriptor: "${t}"`)}return o}function bb(t,e={}){let r={...t,...e};return r.environment={...t.environment,...e.environment},r.variables={...t.variables,...e.variables},r}async function yot(t,e,r){let o=[],a=new cl.PassThrough;return a.on("data",n=>o.push(n)),await xb(t,e,bb(r,{stdout:a})),Buffer.concat(o).toString().replace(/[\r\n]+$/,"")}async function lce(t,e,r){let o=t.map(async n=>{let u=await Dg(n.args,e,r);return{name:n.name,value:u.join(" ")}});return(await Promise.all(o)).reduce((n,u)=>(n[u.name]=u.value,n),{})}function Sb(t){return t.match(/[^ \r\n\t]+/g)||[]}async function hce(t,e,r,o,a=o){switch(t.name){case"$":o(String(process.pid));break;case"#":o(String(e.args.length));break;case"@":if(t.quoted)for(let n of e.args)a(n);else for(let n of e.args){let u=Sb(n);for(let A=0;A<u.length-1;++A)a(u[A]);o(u[u.length-1])}break;case"*":{let n=e.args.join(" ");if(t.quoted)o(n);else for(let u of Sb(n))a(u)}break;case"PPID":o(String(process.ppid));break;case"RANDOM":o(String(Math.floor(Math.random()*32768)));break;default:{let n=parseInt(t.name,10),u,A=Number.isFinite(n);if(A?n>=0&&n<e.args.length&&(u=e.args[n]):Object.hasOwn(r.variables,t.name)?u=r.variables[t.name]:Object.hasOwn(r.environment,t.name)&&(u=r.environment[t.name]),typeof u<"u"&&t.alternativeValue?u=(await Dg(t.alternativeValue,e,r)).join(" "):typeof u>"u"&&(t.defaultValue?u=(await Dg(t.defaultValue,e,r)).join(" "):t.alternativeValue&&(u="")),typeof u>"u")throw A?new ll(`Unbound argument #${n}`):new ll(`Unbound variable "${t.name}"`);if(t.quoted)o(u);else{let p=Sb(u);for(let E=0;E<p.length-1;++E)a(p[E]);let h=p[p.length-1];typeof h<"u"&&o(h)}}break}}async function d1(t,e,r){if(t.type==="number"){if(Number.isInteger(t.value))return t.value;throw new Error(`Invalid number: "${t.value}", only integers are allowed`)}else if(t.type==="variable"){let o=[];await hce({...t,quoted:!0},e,r,n=>o.push(n));let a=Number(o.join(" "));return Number.isNaN(a)?d1({type:"variable",name:o.join(" ")},e,r):d1({type:"number",value:a},e,r)}else return Eot[t.type](await d1(t.left,e,r),await d1(t.right,e,r))}async function Dg(t,e,r){let o=new Map,a=[],n=[],u=E=>{n.push(E)},A=()=>{n.length>0&&a.push(n.join("")),n=[]},p=E=>{u(E),A()},h=(E,I,v)=>{let x=JSON.stringify({type:E,fd:I}),C=o.get(x);typeof C>"u"&&o.set(x,C=[]),C.push(v)};for(let E of t){let I=!1;switch(E.type){case"redirection":{let v=await Dg(E.args,e,r);for(let x of v)h(E.subtype,E.fd,x)}break;case"argument":for(let v of E.segments)switch(v.type){case"text":u(v.text);break;case"glob":u(v.pattern),I=!0;break;case"shell":{let x=await yot(v.shell,e,r);if(v.quoted)u(x);else{let C=Sb(x);for(let R=0;R<C.length-1;++R)p(C[R]);u(C[C.length-1])}}break;case"variable":await hce(v,e,r,u,p);break;case"arithmetic":u(String(await d1(v.arithmetic,e,r)));break}break}if(A(),I){let v=a.pop();if(typeof v>"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let x=await e.glob.match(v,{cwd:r.cwd,baseFs:e.baseFs});if(x.length===0){let C=Z4(v)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new ll(`No matches found: "${v}"${C}`)}for(let C of x.sort())p(C)}}if(o.size>0){let E=[];for(let[I,v]of o.entries())E.splice(E.length,0,I,String(v.length),...v);a.splice(0,0,"__ysh_set_redirects",...E,"--")}return a}function m1(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let o=ue.fromPortablePath(r.cwd),a=r.environment;typeof a.PWD<"u"&&(a={...a,PWD:o});let[n,...u]=t;if(n==="command")return ice(u[0],u.slice(1),e,{cwd:o,env:a});let A=e.builtins.get(n);if(typeof A>"u")throw new Error(`Assertion failed: A builtin should exist for "${n}"`);return sce(async({stdin:p,stdout:h,stderr:E})=>{let{stdin:I,stdout:v,stderr:x}=r;r.stdin=p,r.stdout=h,r.stderr=E;try{return await A(u,e,r)}finally{r.stdin=I,r.stdout=v,r.stderr=x}})}function Cot(t,e,r){return o=>{let a=new cl.PassThrough,n=xb(t,e,bb(r,{stdin:a}));return{stdin:a,promise:n}}}function wot(t,e,r){return o=>{let a=new cl.PassThrough,n=xb(t,e,r);return{stdin:a,promise:n}}}function cce(t,e,r,o){if(e.length===0)return t;{let a;do a=String(Math.random());while(Object.hasOwn(o.procedures,a));return o.procedures={...o.procedures},o.procedures[a]=t,m1([...e,"__ysh_run_procedure",a],r,o)}}async function uce(t,e,r){let o=t,a=null,n=null;for(;o;){let u=o.then?{...r}:r,A;switch(o.type){case"command":{let p=await Dg(o.args,e,r),h=await lce(o.envs,e,r);A=o.envs.length?m1(p,e,bb(u,{environment:h})):m1(p,e,u)}break;case"subshell":{let p=await Dg(o.args,e,r),h=Cot(o.subshell,e,u);A=cce(h,p,e,u)}break;case"group":{let p=await Dg(o.args,e,r),h=wot(o.group,e,u);A=cce(h,p,e,u)}break;case"envs":{let p=await lce(o.envs,e,r);u.environment={...u.environment,...p},A=m1(["true"],e,u)}break}if(typeof A>"u")throw new Error("Assertion failed: An action should have been generated");if(a===null)n=Pb(A,{stdin:new Jl(u.stdin),stdout:new Jl(u.stdout),stderr:new Jl(u.stderr)});else{if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(a){case"|":n=n.pipeTo(A,1);break;case"|&":n=n.pipeTo(A,3);break}}o.then?(a=o.then.type,o=o.then.chain):o=null}if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await n.run()}async function Iot(t,e,r,{background:o=!1}={}){function a(n){let u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[n%u.length];return Ace.default.hex(A)}if(o){let n=r.nextBackgroundJobIndex++,u=a(n),A=`[${n}]`,p=u(A),{stdout:h,stderr:E}=oce(r,{prefix:p});return r.backgroundJobs.push(uce(t,e,bb(r,{stdout:h,stderr:E})).catch(I=>E.write(`${I.message} -`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${p}, '${u(Jd(t))}' has ended -`)})),0}return await uce(t,e,r)}async function Bot(t,e,r,{background:o=!1}={}){let a,n=A=>{a=A,r.variables["?"]=String(A)},u=async A=>{try{return await Iot(A.chain,e,r,{background:o&&typeof A.then>"u"})}catch(p){if(!(p instanceof ll))throw p;return r.stderr.write(`${p.message} -`),1}};for(n(await u(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":a===0&&n(await u(t.then.line));break;case"||":a!==0&&n(await u(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return a}async function xb(t,e,r){let o=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:n,type:u}of t){if(a=await Bot(n,e,r,{background:u==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=o,a}function gce(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>y1(e))||"alternativeValue"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>y1(e));case"arithmetic":return iU(t.arithmetic);case"shell":return sU(t.shell);default:return!1}}function y1(t){switch(t.type){case"redirection":return t.args.some(e=>y1(e));case"argument":return t.segments.some(e=>gce(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function iU(t){switch(t.type){case"variable":return gce(t);case"number":return!1;default:return iU(t.left)||iU(t.right)}}function sU(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let o;switch(r.type){case"subshell":o=sU(r.subshell);break;case"command":o=r.envs.some(a=>a.args.some(n=>y1(n)))||r.args.some(a=>y1(a));break}if(o)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function cy(t,e=[],{baseFs:r=new Tn,builtins:o={},cwd:a=ue.toPortablePath(process.cwd()),env:n=process.env,stdin:u=process.stdin,stdout:A=process.stdout,stderr:p=process.stderr,variables:h={},glob:E=Db}={}){let I={};for(let[C,R]of Object.entries(n))typeof R<"u"&&(I[C]=R);let v=new Map(mot);for(let[C,R]of Object.entries(o))v.set(C,R);u===null&&(u=new cl.PassThrough,u.end());let x=CD(t,E);if(!sU(x)&&x.length>0&&e.length>0){let{command:C}=x[x.length-1];for(;C.then;)C=C.then.line;let R=C.chain;for(;R.then;)R=R.then.chain;R.type==="command"&&(R.args=R.args.concat(e.map(L=>({type:"argument",segments:[{type:"text",text:L}]}))))}return await xb(x,{args:e,baseFs:r,builtins:v,initialStdin:u,initialStdout:A,initialStderr:p,glob:E},{cwd:a,environment:I,exitCode:null,procedures:{},stdin:u,stdout:A,stderr:p,variables:Object.assign({},h,{"?":0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var Ace,fce,cl,pce,mot,Eot,g1=Et(()=>{Pt();Nl();Ace=Ze(pN()),fce=ve("os"),cl=ve("stream"),pce=ve("timers/promises");zle();Jle();ece();nU();nU();mot=new Map([["cd",async([t=(0,fce.homedir)(),...e],r,o)=>{let a=K.resolve(o.cwd,ue.toPortablePath(t));if(!(await r.baseFs.statPromise(a).catch(u=>{throw u.code==="ENOENT"?new ll(`cd: no such file or directory: ${t}`):u})).isDirectory())throw new ll(`cd: not a directory: ${t}`);return o.cwd=a,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${ue.fromPortablePath(r.cwd)} -`),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,o)=>o.exitCode=parseInt(t??o.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")} -`),0)],["sleep",async([t],e,r)=>{if(typeof t>"u")throw new ll("sleep: missing operand");let o=Number(t);if(Number.isNaN(o))throw new ll(`sleep: invalid time interval '${t}'`);return await(0,pce.setTimeout)(1e3*o,0)}],["__ysh_run_procedure",async(t,e,r)=>{let o=r.procedures[t[0]];return await Pb(o,{stdin:new Jl(r.stdin),stdout:new Jl(r.stdout),stderr:new Jl(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let o=r.stdin,a=r.stdout,n=r.stderr,u=[],A=[],p=[],h=0;for(;t[h]!=="--";){let I=t[h++],{type:v,fd:x}=JSON.parse(I),C=z=>{switch(x){case null:case 0:u.push(z);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},R=z=>{switch(x){case null:case 1:A.push(z);break;case 2:p.push(z);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},L=Number(t[h++]),U=h+L;for(let z=h;z<U;++h,++z)switch(v){case"<":C(()=>e.baseFs.createReadStream(K.resolve(r.cwd,ue.toPortablePath(t[z]))));break;case"<<<":C(()=>{let te=new cl.PassThrough;return process.nextTick(()=>{te.write(`${t[z]} -`),te.end()}),te});break;case"<&":C(()=>ace(Number(t[z]),1,r));break;case">":case">>":{let te=K.resolve(r.cwd,ue.toPortablePath(t[z]));R(te==="/dev/null"?new cl.Writable({autoDestroy:!0,emitClose:!0,write(ae,le,ce){setImmediate(ce)}}):e.baseFs.createWriteStream(te,v===">>"?{flags:"a"}:void 0))}break;case">&":R(ace(Number(t[z]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${v}"`)}}if(u.length>0){let I=new cl.PassThrough;o=I;let v=x=>{if(x===u.length)I.end();else{let C=u[x]();C.pipe(I,{end:!1}),C.on("end",()=>{v(x+1)})}};v(0)}if(A.length>0){let I=new cl.PassThrough;a=I;for(let v of A)I.pipe(v)}if(p.length>0){let I=new cl.PassThrough;n=I;for(let v of p)I.pipe(v)}let E=await Pb(m1(t.slice(h+1),e,r),{stdin:new Jl(o),stdout:new Jl(a),stderr:new Jl(n)}).run();return await Promise.all(A.map(I=>new Promise((v,x)=>{I.on("error",C=>{x(C)}),I.on("close",()=>{v()}),I.end()}))),await Promise.all(p.map(I=>new Promise((v,x)=>{I.on("error",C=>{x(C)}),I.on("close",()=>{v()}),I.end()}))),E}]]);Eot={addition:(t,e)=>t+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)}});var kb=_((l4t,dce)=>{function vot(t,e){for(var r=-1,o=t==null?0:t.length,a=Array(o);++r<o;)a[r]=e(t[r],r,t);return a}dce.exports=vot});var Ice=_((c4t,wce)=>{var mce=lg(),Dot=kb(),Pot=Hl(),Sot=Ym(),bot=1/0,yce=mce?mce.prototype:void 0,Ece=yce?yce.toString:void 0;function Cce(t){if(typeof t=="string")return t;if(Pot(t))return Dot(t,Cce)+"";if(Sot(t))return Ece?Ece.call(t):"";var e=t+"";return e=="0"&&1/t==-bot?"-0":e}wce.exports=Cce});var C1=_((u4t,Bce)=>{var xot=Ice();function kot(t){return t==null?"":xot(t)}Bce.exports=kot});var oU=_((A4t,vce)=>{function Qot(t,e,r){var o=-1,a=t.length;e<0&&(e=-e>a?0:a+e),r=r>a?a:r,r<0&&(r+=a),a=e>r?0:r-e>>>0,e>>>=0;for(var n=Array(a);++o<a;)n[o]=t[o+e];return n}vce.exports=Qot});var Pce=_((f4t,Dce)=>{var Fot=oU();function Rot(t,e,r){var o=t.length;return r=r===void 0?o:r,!e&&r>=o?t:Fot(t,e,r)}Dce.exports=Rot});var aU=_((p4t,Sce)=>{var Tot="\\ud800-\\udfff",Not="\\u0300-\\u036f",Lot="\\ufe20-\\ufe2f",Mot="\\u20d0-\\u20ff",Oot=Not+Lot+Mot,Uot="\\ufe0e\\ufe0f",_ot="\\u200d",Hot=RegExp("["+_ot+Tot+Oot+Uot+"]");function qot(t){return Hot.test(t)}Sce.exports=qot});var xce=_((h4t,bce)=>{function jot(t){return t.split("")}bce.exports=jot});var Mce=_((g4t,Lce)=>{var kce="\\ud800-\\udfff",Got="\\u0300-\\u036f",Yot="\\ufe20-\\ufe2f",Wot="\\u20d0-\\u20ff",Kot=Got+Yot+Wot,Vot="\\ufe0e\\ufe0f",zot="["+kce+"]",lU="["+Kot+"]",cU="\\ud83c[\\udffb-\\udfff]",Jot="(?:"+lU+"|"+cU+")",Qce="[^"+kce+"]",Fce="(?:\\ud83c[\\udde6-\\uddff]){2}",Rce="[\\ud800-\\udbff][\\udc00-\\udfff]",Xot="\\u200d",Tce=Jot+"?",Nce="["+Vot+"]?",Zot="(?:"+Xot+"(?:"+[Qce,Fce,Rce].join("|")+")"+Nce+Tce+")*",$ot=Nce+Tce+Zot,eat="(?:"+[Qce+lU+"?",lU,Fce,Rce,zot].join("|")+")",tat=RegExp(cU+"(?="+cU+")|"+eat+$ot,"g");function rat(t){return t.match(tat)||[]}Lce.exports=rat});var Uce=_((d4t,Oce)=>{var nat=xce(),iat=aU(),sat=Mce();function oat(t){return iat(t)?sat(t):nat(t)}Oce.exports=oat});var Hce=_((m4t,_ce)=>{var aat=Pce(),lat=aU(),cat=Uce(),uat=C1();function Aat(t){return function(e){e=uat(e);var r=lat(e)?cat(e):void 0,o=r?r[0]:e.charAt(0),a=r?aat(r,1).join(""):e.slice(1);return o[t]()+a}}_ce.exports=Aat});var jce=_((y4t,qce)=>{var fat=Hce(),pat=fat("toUpperCase");qce.exports=pat});var uU=_((E4t,Gce)=>{var hat=C1(),gat=jce();function dat(t){return gat(hat(t).toLowerCase())}Gce.exports=dat});var Yce=_((C4t,Qb)=>{function mat(){var t=0,e=1,r=2,o=3,a=4,n=5,u=6,A=7,p=8,h=9,E=10,I=11,v=12,x=13,C=14,R=15,L=16,U=17,z=0,te=1,ae=2,le=3,ce=4;function Ce(g,me){return 55296<=g.charCodeAt(me)&&g.charCodeAt(me)<=56319&&56320<=g.charCodeAt(me+1)&&g.charCodeAt(me+1)<=57343}function de(g,me){me===void 0&&(me=0);var we=g.charCodeAt(me);if(55296<=we&&we<=56319&&me<g.length-1){var Ae=we,ne=g.charCodeAt(me+1);return 56320<=ne&&ne<=57343?(Ae-55296)*1024+(ne-56320)+65536:Ae}if(56320<=we&&we<=57343&&me>=1){var Ae=g.charCodeAt(me-1),ne=we;return 55296<=Ae&&Ae<=56319?(Ae-55296)*1024+(ne-56320)+65536:ne}return we}function Be(g,me,we){var Ae=[g].concat(me).concat([we]),ne=Ae[Ae.length-2],Z=we,xe=Ae.lastIndexOf(C);if(xe>1&&Ae.slice(1,xe).every(function(H){return H==o})&&[o,x,U].indexOf(g)==-1)return ae;var Ne=Ae.lastIndexOf(a);if(Ne>0&&Ae.slice(1,Ne).every(function(H){return H==a})&&[v,a].indexOf(ne)==-1)return Ae.filter(function(H){return H==a}).length%2==1?le:ce;if(ne==t&&Z==e)return z;if(ne==r||ne==t||ne==e)return Z==C&&me.every(function(H){return H==o})?ae:te;if(Z==r||Z==t||Z==e)return te;if(ne==u&&(Z==u||Z==A||Z==h||Z==E))return z;if((ne==h||ne==A)&&(Z==A||Z==p))return z;if((ne==E||ne==p)&&Z==p)return z;if(Z==o||Z==R)return z;if(Z==n)return z;if(ne==v)return z;var ht=Ae.indexOf(o)!=-1?Ae.lastIndexOf(o)-1:Ae.length-2;return[x,U].indexOf(Ae[ht])!=-1&&Ae.slice(ht+1,-1).every(function(H){return H==o})&&Z==C||ne==R&&[L,U].indexOf(Z)!=-1?z:me.indexOf(a)!=-1?ae:ne==a&&Z==a?z:te}this.nextBreak=function(g,me){if(me===void 0&&(me=0),me<0)return 0;if(me>=g.length-1)return g.length;for(var we=Ee(de(g,me)),Ae=[],ne=me+1;ne<g.length;ne++)if(!Ce(g,ne-1)){var Z=Ee(de(g,ne));if(Be(we,Ae,Z))return ne;Ae.push(Z)}return g.length},this.splitGraphemes=function(g){for(var me=[],we=0,Ae;(Ae=this.nextBreak(g,we))<g.length;)me.push(g.slice(we,Ae)),we=Ae;return we<g.length&&me.push(g.slice(we)),me},this.iterateGraphemes=function(g){var me=0,we={next:function(){var Ae,ne;return(ne=this.nextBreak(g,me))<g.length?(Ae=g.slice(me,ne),me=ne,{value:Ae,done:!1}):me<g.length?(Ae=g.slice(me),me=g.length,{value:Ae,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(we[Symbol.iterator]=function(){return we}),we},this.countGraphemes=function(g){for(var me=0,we=0,Ae;(Ae=this.nextBreak(g,we))<g.length;)we=Ae,me++;return we<g.length&&me++,me};function Ee(g){return 1536<=g&&g<=1541||g==1757||g==1807||g==2274||g==3406||g==69821||70082<=g&&g<=70083||g==72250||72326<=g&&g<=72329||g==73030?v:g==13?t:g==10?e:0<=g&&g<=9||11<=g&&g<=12||14<=g&&g<=31||127<=g&&g<=159||g==173||g==1564||g==6158||g==8203||8206<=g&&g<=8207||g==8232||g==8233||8234<=g&&g<=8238||8288<=g&&g<=8292||g==8293||8294<=g&&g<=8303||55296<=g&&g<=57343||g==65279||65520<=g&&g<=65528||65529<=g&&g<=65531||113824<=g&&g<=113827||119155<=g&&g<=119162||g==917504||g==917505||917506<=g&&g<=917535||917632<=g&&g<=917759||918e3<=g&&g<=921599?r:768<=g&&g<=879||1155<=g&&g<=1159||1160<=g&&g<=1161||1425<=g&&g<=1469||g==1471||1473<=g&&g<=1474||1476<=g&&g<=1477||g==1479||1552<=g&&g<=1562||1611<=g&&g<=1631||g==1648||1750<=g&&g<=1756||1759<=g&&g<=1764||1767<=g&&g<=1768||1770<=g&&g<=1773||g==1809||1840<=g&&g<=1866||1958<=g&&g<=1968||2027<=g&&g<=2035||2070<=g&&g<=2073||2075<=g&&g<=2083||2085<=g&&g<=2087||2089<=g&&g<=2093||2137<=g&&g<=2139||2260<=g&&g<=2273||2275<=g&&g<=2306||g==2362||g==2364||2369<=g&&g<=2376||g==2381||2385<=g&&g<=2391||2402<=g&&g<=2403||g==2433||g==2492||g==2494||2497<=g&&g<=2500||g==2509||g==2519||2530<=g&&g<=2531||2561<=g&&g<=2562||g==2620||2625<=g&&g<=2626||2631<=g&&g<=2632||2635<=g&&g<=2637||g==2641||2672<=g&&g<=2673||g==2677||2689<=g&&g<=2690||g==2748||2753<=g&&g<=2757||2759<=g&&g<=2760||g==2765||2786<=g&&g<=2787||2810<=g&&g<=2815||g==2817||g==2876||g==2878||g==2879||2881<=g&&g<=2884||g==2893||g==2902||g==2903||2914<=g&&g<=2915||g==2946||g==3006||g==3008||g==3021||g==3031||g==3072||3134<=g&&g<=3136||3142<=g&&g<=3144||3146<=g&&g<=3149||3157<=g&&g<=3158||3170<=g&&g<=3171||g==3201||g==3260||g==3263||g==3266||g==3270||3276<=g&&g<=3277||3285<=g&&g<=3286||3298<=g&&g<=3299||3328<=g&&g<=3329||3387<=g&&g<=3388||g==3390||3393<=g&&g<=3396||g==3405||g==3415||3426<=g&&g<=3427||g==3530||g==3535||3538<=g&&g<=3540||g==3542||g==3551||g==3633||3636<=g&&g<=3642||3655<=g&&g<=3662||g==3761||3764<=g&&g<=3769||3771<=g&&g<=3772||3784<=g&&g<=3789||3864<=g&&g<=3865||g==3893||g==3895||g==3897||3953<=g&&g<=3966||3968<=g&&g<=3972||3974<=g&&g<=3975||3981<=g&&g<=3991||3993<=g&&g<=4028||g==4038||4141<=g&&g<=4144||4146<=g&&g<=4151||4153<=g&&g<=4154||4157<=g&&g<=4158||4184<=g&&g<=4185||4190<=g&&g<=4192||4209<=g&&g<=4212||g==4226||4229<=g&&g<=4230||g==4237||g==4253||4957<=g&&g<=4959||5906<=g&&g<=5908||5938<=g&&g<=5940||5970<=g&&g<=5971||6002<=g&&g<=6003||6068<=g&&g<=6069||6071<=g&&g<=6077||g==6086||6089<=g&&g<=6099||g==6109||6155<=g&&g<=6157||6277<=g&&g<=6278||g==6313||6432<=g&&g<=6434||6439<=g&&g<=6440||g==6450||6457<=g&&g<=6459||6679<=g&&g<=6680||g==6683||g==6742||6744<=g&&g<=6750||g==6752||g==6754||6757<=g&&g<=6764||6771<=g&&g<=6780||g==6783||6832<=g&&g<=6845||g==6846||6912<=g&&g<=6915||g==6964||6966<=g&&g<=6970||g==6972||g==6978||7019<=g&&g<=7027||7040<=g&&g<=7041||7074<=g&&g<=7077||7080<=g&&g<=7081||7083<=g&&g<=7085||g==7142||7144<=g&&g<=7145||g==7149||7151<=g&&g<=7153||7212<=g&&g<=7219||7222<=g&&g<=7223||7376<=g&&g<=7378||7380<=g&&g<=7392||7394<=g&&g<=7400||g==7405||g==7412||7416<=g&&g<=7417||7616<=g&&g<=7673||7675<=g&&g<=7679||g==8204||8400<=g&&g<=8412||8413<=g&&g<=8416||g==8417||8418<=g&&g<=8420||8421<=g&&g<=8432||11503<=g&&g<=11505||g==11647||11744<=g&&g<=11775||12330<=g&&g<=12333||12334<=g&&g<=12335||12441<=g&&g<=12442||g==42607||42608<=g&&g<=42610||42612<=g&&g<=42621||42654<=g&&g<=42655||42736<=g&&g<=42737||g==43010||g==43014||g==43019||43045<=g&&g<=43046||43204<=g&&g<=43205||43232<=g&&g<=43249||43302<=g&&g<=43309||43335<=g&&g<=43345||43392<=g&&g<=43394||g==43443||43446<=g&&g<=43449||g==43452||g==43493||43561<=g&&g<=43566||43569<=g&&g<=43570||43573<=g&&g<=43574||g==43587||g==43596||g==43644||g==43696||43698<=g&&g<=43700||43703<=g&&g<=43704||43710<=g&&g<=43711||g==43713||43756<=g&&g<=43757||g==43766||g==44005||g==44008||g==44013||g==64286||65024<=g&&g<=65039||65056<=g&&g<=65071||65438<=g&&g<=65439||g==66045||g==66272||66422<=g&&g<=66426||68097<=g&&g<=68099||68101<=g&&g<=68102||68108<=g&&g<=68111||68152<=g&&g<=68154||g==68159||68325<=g&&g<=68326||g==69633||69688<=g&&g<=69702||69759<=g&&g<=69761||69811<=g&&g<=69814||69817<=g&&g<=69818||69888<=g&&g<=69890||69927<=g&&g<=69931||69933<=g&&g<=69940||g==70003||70016<=g&&g<=70017||70070<=g&&g<=70078||70090<=g&&g<=70092||70191<=g&&g<=70193||g==70196||70198<=g&&g<=70199||g==70206||g==70367||70371<=g&&g<=70378||70400<=g&&g<=70401||g==70460||g==70462||g==70464||g==70487||70502<=g&&g<=70508||70512<=g&&g<=70516||70712<=g&&g<=70719||70722<=g&&g<=70724||g==70726||g==70832||70835<=g&&g<=70840||g==70842||g==70845||70847<=g&&g<=70848||70850<=g&&g<=70851||g==71087||71090<=g&&g<=71093||71100<=g&&g<=71101||71103<=g&&g<=71104||71132<=g&&g<=71133||71219<=g&&g<=71226||g==71229||71231<=g&&g<=71232||g==71339||g==71341||71344<=g&&g<=71349||g==71351||71453<=g&&g<=71455||71458<=g&&g<=71461||71463<=g&&g<=71467||72193<=g&&g<=72198||72201<=g&&g<=72202||72243<=g&&g<=72248||72251<=g&&g<=72254||g==72263||72273<=g&&g<=72278||72281<=g&&g<=72283||72330<=g&&g<=72342||72344<=g&&g<=72345||72752<=g&&g<=72758||72760<=g&&g<=72765||g==72767||72850<=g&&g<=72871||72874<=g&&g<=72880||72882<=g&&g<=72883||72885<=g&&g<=72886||73009<=g&&g<=73014||g==73018||73020<=g&&g<=73021||73023<=g&&g<=73029||g==73031||92912<=g&&g<=92916||92976<=g&&g<=92982||94095<=g&&g<=94098||113821<=g&&g<=113822||g==119141||119143<=g&&g<=119145||119150<=g&&g<=119154||119163<=g&&g<=119170||119173<=g&&g<=119179||119210<=g&&g<=119213||119362<=g&&g<=119364||121344<=g&&g<=121398||121403<=g&&g<=121452||g==121461||g==121476||121499<=g&&g<=121503||121505<=g&&g<=121519||122880<=g&&g<=122886||122888<=g&&g<=122904||122907<=g&&g<=122913||122915<=g&&g<=122916||122918<=g&&g<=122922||125136<=g&&g<=125142||125252<=g&&g<=125258||917536<=g&&g<=917631||917760<=g&&g<=917999?o:127462<=g&&g<=127487?a:g==2307||g==2363||2366<=g&&g<=2368||2377<=g&&g<=2380||2382<=g&&g<=2383||2434<=g&&g<=2435||2495<=g&&g<=2496||2503<=g&&g<=2504||2507<=g&&g<=2508||g==2563||2622<=g&&g<=2624||g==2691||2750<=g&&g<=2752||g==2761||2763<=g&&g<=2764||2818<=g&&g<=2819||g==2880||2887<=g&&g<=2888||2891<=g&&g<=2892||g==3007||3009<=g&&g<=3010||3014<=g&&g<=3016||3018<=g&&g<=3020||3073<=g&&g<=3075||3137<=g&&g<=3140||3202<=g&&g<=3203||g==3262||3264<=g&&g<=3265||3267<=g&&g<=3268||3271<=g&&g<=3272||3274<=g&&g<=3275||3330<=g&&g<=3331||3391<=g&&g<=3392||3398<=g&&g<=3400||3402<=g&&g<=3404||3458<=g&&g<=3459||3536<=g&&g<=3537||3544<=g&&g<=3550||3570<=g&&g<=3571||g==3635||g==3763||3902<=g&&g<=3903||g==3967||g==4145||4155<=g&&g<=4156||4182<=g&&g<=4183||g==4228||g==6070||6078<=g&&g<=6085||6087<=g&&g<=6088||6435<=g&&g<=6438||6441<=g&&g<=6443||6448<=g&&g<=6449||6451<=g&&g<=6456||6681<=g&&g<=6682||g==6741||g==6743||6765<=g&&g<=6770||g==6916||g==6965||g==6971||6973<=g&&g<=6977||6979<=g&&g<=6980||g==7042||g==7073||7078<=g&&g<=7079||g==7082||g==7143||7146<=g&&g<=7148||g==7150||7154<=g&&g<=7155||7204<=g&&g<=7211||7220<=g&&g<=7221||g==7393||7410<=g&&g<=7411||g==7415||43043<=g&&g<=43044||g==43047||43136<=g&&g<=43137||43188<=g&&g<=43203||43346<=g&&g<=43347||g==43395||43444<=g&&g<=43445||43450<=g&&g<=43451||43453<=g&&g<=43456||43567<=g&&g<=43568||43571<=g&&g<=43572||g==43597||g==43755||43758<=g&&g<=43759||g==43765||44003<=g&&g<=44004||44006<=g&&g<=44007||44009<=g&&g<=44010||g==44012||g==69632||g==69634||g==69762||69808<=g&&g<=69810||69815<=g&&g<=69816||g==69932||g==70018||70067<=g&&g<=70069||70079<=g&&g<=70080||70188<=g&&g<=70190||70194<=g&&g<=70195||g==70197||70368<=g&&g<=70370||70402<=g&&g<=70403||g==70463||70465<=g&&g<=70468||70471<=g&&g<=70472||70475<=g&&g<=70477||70498<=g&&g<=70499||70709<=g&&g<=70711||70720<=g&&g<=70721||g==70725||70833<=g&&g<=70834||g==70841||70843<=g&&g<=70844||g==70846||g==70849||71088<=g&&g<=71089||71096<=g&&g<=71099||g==71102||71216<=g&&g<=71218||71227<=g&&g<=71228||g==71230||g==71340||71342<=g&&g<=71343||g==71350||71456<=g&&g<=71457||g==71462||72199<=g&&g<=72200||g==72249||72279<=g&&g<=72280||g==72343||g==72751||g==72766||g==72873||g==72881||g==72884||94033<=g&&g<=94078||g==119142||g==119149?n:4352<=g&&g<=4447||43360<=g&&g<=43388?u:4448<=g&&g<=4519||55216<=g&&g<=55238?A:4520<=g&&g<=4607||55243<=g&&g<=55291?p:g==44032||g==44060||g==44088||g==44116||g==44144||g==44172||g==44200||g==44228||g==44256||g==44284||g==44312||g==44340||g==44368||g==44396||g==44424||g==44452||g==44480||g==44508||g==44536||g==44564||g==44592||g==44620||g==44648||g==44676||g==44704||g==44732||g==44760||g==44788||g==44816||g==44844||g==44872||g==44900||g==44928||g==44956||g==44984||g==45012||g==45040||g==45068||g==45096||g==45124||g==45152||g==45180||g==45208||g==45236||g==45264||g==45292||g==45320||g==45348||g==45376||g==45404||g==45432||g==45460||g==45488||g==45516||g==45544||g==45572||g==45600||g==45628||g==45656||g==45684||g==45712||g==45740||g==45768||g==45796||g==45824||g==45852||g==45880||g==45908||g==45936||g==45964||g==45992||g==46020||g==46048||g==46076||g==46104||g==46132||g==46160||g==46188||g==46216||g==46244||g==46272||g==46300||g==46328||g==46356||g==46384||g==46412||g==46440||g==46468||g==46496||g==46524||g==46552||g==46580||g==46608||g==46636||g==46664||g==46692||g==46720||g==46748||g==46776||g==46804||g==46832||g==46860||g==46888||g==46916||g==46944||g==46972||g==47e3||g==47028||g==47056||g==47084||g==47112||g==47140||g==47168||g==47196||g==47224||g==47252||g==47280||g==47308||g==47336||g==47364||g==47392||g==47420||g==47448||g==47476||g==47504||g==47532||g==47560||g==47588||g==47616||g==47644||g==47672||g==47700||g==47728||g==47756||g==47784||g==47812||g==47840||g==47868||g==47896||g==47924||g==47952||g==47980||g==48008||g==48036||g==48064||g==48092||g==48120||g==48148||g==48176||g==48204||g==48232||g==48260||g==48288||g==48316||g==48344||g==48372||g==48400||g==48428||g==48456||g==48484||g==48512||g==48540||g==48568||g==48596||g==48624||g==48652||g==48680||g==48708||g==48736||g==48764||g==48792||g==48820||g==48848||g==48876||g==48904||g==48932||g==48960||g==48988||g==49016||g==49044||g==49072||g==49100||g==49128||g==49156||g==49184||g==49212||g==49240||g==49268||g==49296||g==49324||g==49352||g==49380||g==49408||g==49436||g==49464||g==49492||g==49520||g==49548||g==49576||g==49604||g==49632||g==49660||g==49688||g==49716||g==49744||g==49772||g==49800||g==49828||g==49856||g==49884||g==49912||g==49940||g==49968||g==49996||g==50024||g==50052||g==50080||g==50108||g==50136||g==50164||g==50192||g==50220||g==50248||g==50276||g==50304||g==50332||g==50360||g==50388||g==50416||g==50444||g==50472||g==50500||g==50528||g==50556||g==50584||g==50612||g==50640||g==50668||g==50696||g==50724||g==50752||g==50780||g==50808||g==50836||g==50864||g==50892||g==50920||g==50948||g==50976||g==51004||g==51032||g==51060||g==51088||g==51116||g==51144||g==51172||g==51200||g==51228||g==51256||g==51284||g==51312||g==51340||g==51368||g==51396||g==51424||g==51452||g==51480||g==51508||g==51536||g==51564||g==51592||g==51620||g==51648||g==51676||g==51704||g==51732||g==51760||g==51788||g==51816||g==51844||g==51872||g==51900||g==51928||g==51956||g==51984||g==52012||g==52040||g==52068||g==52096||g==52124||g==52152||g==52180||g==52208||g==52236||g==52264||g==52292||g==52320||g==52348||g==52376||g==52404||g==52432||g==52460||g==52488||g==52516||g==52544||g==52572||g==52600||g==52628||g==52656||g==52684||g==52712||g==52740||g==52768||g==52796||g==52824||g==52852||g==52880||g==52908||g==52936||g==52964||g==52992||g==53020||g==53048||g==53076||g==53104||g==53132||g==53160||g==53188||g==53216||g==53244||g==53272||g==53300||g==53328||g==53356||g==53384||g==53412||g==53440||g==53468||g==53496||g==53524||g==53552||g==53580||g==53608||g==53636||g==53664||g==53692||g==53720||g==53748||g==53776||g==53804||g==53832||g==53860||g==53888||g==53916||g==53944||g==53972||g==54e3||g==54028||g==54056||g==54084||g==54112||g==54140||g==54168||g==54196||g==54224||g==54252||g==54280||g==54308||g==54336||g==54364||g==54392||g==54420||g==54448||g==54476||g==54504||g==54532||g==54560||g==54588||g==54616||g==54644||g==54672||g==54700||g==54728||g==54756||g==54784||g==54812||g==54840||g==54868||g==54896||g==54924||g==54952||g==54980||g==55008||g==55036||g==55064||g==55092||g==55120||g==55148||g==55176?h:44033<=g&&g<=44059||44061<=g&&g<=44087||44089<=g&&g<=44115||44117<=g&&g<=44143||44145<=g&&g<=44171||44173<=g&&g<=44199||44201<=g&&g<=44227||44229<=g&&g<=44255||44257<=g&&g<=44283||44285<=g&&g<=44311||44313<=g&&g<=44339||44341<=g&&g<=44367||44369<=g&&g<=44395||44397<=g&&g<=44423||44425<=g&&g<=44451||44453<=g&&g<=44479||44481<=g&&g<=44507||44509<=g&&g<=44535||44537<=g&&g<=44563||44565<=g&&g<=44591||44593<=g&&g<=44619||44621<=g&&g<=44647||44649<=g&&g<=44675||44677<=g&&g<=44703||44705<=g&&g<=44731||44733<=g&&g<=44759||44761<=g&&g<=44787||44789<=g&&g<=44815||44817<=g&&g<=44843||44845<=g&&g<=44871||44873<=g&&g<=44899||44901<=g&&g<=44927||44929<=g&&g<=44955||44957<=g&&g<=44983||44985<=g&&g<=45011||45013<=g&&g<=45039||45041<=g&&g<=45067||45069<=g&&g<=45095||45097<=g&&g<=45123||45125<=g&&g<=45151||45153<=g&&g<=45179||45181<=g&&g<=45207||45209<=g&&g<=45235||45237<=g&&g<=45263||45265<=g&&g<=45291||45293<=g&&g<=45319||45321<=g&&g<=45347||45349<=g&&g<=45375||45377<=g&&g<=45403||45405<=g&&g<=45431||45433<=g&&g<=45459||45461<=g&&g<=45487||45489<=g&&g<=45515||45517<=g&&g<=45543||45545<=g&&g<=45571||45573<=g&&g<=45599||45601<=g&&g<=45627||45629<=g&&g<=45655||45657<=g&&g<=45683||45685<=g&&g<=45711||45713<=g&&g<=45739||45741<=g&&g<=45767||45769<=g&&g<=45795||45797<=g&&g<=45823||45825<=g&&g<=45851||45853<=g&&g<=45879||45881<=g&&g<=45907||45909<=g&&g<=45935||45937<=g&&g<=45963||45965<=g&&g<=45991||45993<=g&&g<=46019||46021<=g&&g<=46047||46049<=g&&g<=46075||46077<=g&&g<=46103||46105<=g&&g<=46131||46133<=g&&g<=46159||46161<=g&&g<=46187||46189<=g&&g<=46215||46217<=g&&g<=46243||46245<=g&&g<=46271||46273<=g&&g<=46299||46301<=g&&g<=46327||46329<=g&&g<=46355||46357<=g&&g<=46383||46385<=g&&g<=46411||46413<=g&&g<=46439||46441<=g&&g<=46467||46469<=g&&g<=46495||46497<=g&&g<=46523||46525<=g&&g<=46551||46553<=g&&g<=46579||46581<=g&&g<=46607||46609<=g&&g<=46635||46637<=g&&g<=46663||46665<=g&&g<=46691||46693<=g&&g<=46719||46721<=g&&g<=46747||46749<=g&&g<=46775||46777<=g&&g<=46803||46805<=g&&g<=46831||46833<=g&&g<=46859||46861<=g&&g<=46887||46889<=g&&g<=46915||46917<=g&&g<=46943||46945<=g&&g<=46971||46973<=g&&g<=46999||47001<=g&&g<=47027||47029<=g&&g<=47055||47057<=g&&g<=47083||47085<=g&&g<=47111||47113<=g&&g<=47139||47141<=g&&g<=47167||47169<=g&&g<=47195||47197<=g&&g<=47223||47225<=g&&g<=47251||47253<=g&&g<=47279||47281<=g&&g<=47307||47309<=g&&g<=47335||47337<=g&&g<=47363||47365<=g&&g<=47391||47393<=g&&g<=47419||47421<=g&&g<=47447||47449<=g&&g<=47475||47477<=g&&g<=47503||47505<=g&&g<=47531||47533<=g&&g<=47559||47561<=g&&g<=47587||47589<=g&&g<=47615||47617<=g&&g<=47643||47645<=g&&g<=47671||47673<=g&&g<=47699||47701<=g&&g<=47727||47729<=g&&g<=47755||47757<=g&&g<=47783||47785<=g&&g<=47811||47813<=g&&g<=47839||47841<=g&&g<=47867||47869<=g&&g<=47895||47897<=g&&g<=47923||47925<=g&&g<=47951||47953<=g&&g<=47979||47981<=g&&g<=48007||48009<=g&&g<=48035||48037<=g&&g<=48063||48065<=g&&g<=48091||48093<=g&&g<=48119||48121<=g&&g<=48147||48149<=g&&g<=48175||48177<=g&&g<=48203||48205<=g&&g<=48231||48233<=g&&g<=48259||48261<=g&&g<=48287||48289<=g&&g<=48315||48317<=g&&g<=48343||48345<=g&&g<=48371||48373<=g&&g<=48399||48401<=g&&g<=48427||48429<=g&&g<=48455||48457<=g&&g<=48483||48485<=g&&g<=48511||48513<=g&&g<=48539||48541<=g&&g<=48567||48569<=g&&g<=48595||48597<=g&&g<=48623||48625<=g&&g<=48651||48653<=g&&g<=48679||48681<=g&&g<=48707||48709<=g&&g<=48735||48737<=g&&g<=48763||48765<=g&&g<=48791||48793<=g&&g<=48819||48821<=g&&g<=48847||48849<=g&&g<=48875||48877<=g&&g<=48903||48905<=g&&g<=48931||48933<=g&&g<=48959||48961<=g&&g<=48987||48989<=g&&g<=49015||49017<=g&&g<=49043||49045<=g&&g<=49071||49073<=g&&g<=49099||49101<=g&&g<=49127||49129<=g&&g<=49155||49157<=g&&g<=49183||49185<=g&&g<=49211||49213<=g&&g<=49239||49241<=g&&g<=49267||49269<=g&&g<=49295||49297<=g&&g<=49323||49325<=g&&g<=49351||49353<=g&&g<=49379||49381<=g&&g<=49407||49409<=g&&g<=49435||49437<=g&&g<=49463||49465<=g&&g<=49491||49493<=g&&g<=49519||49521<=g&&g<=49547||49549<=g&&g<=49575||49577<=g&&g<=49603||49605<=g&&g<=49631||49633<=g&&g<=49659||49661<=g&&g<=49687||49689<=g&&g<=49715||49717<=g&&g<=49743||49745<=g&&g<=49771||49773<=g&&g<=49799||49801<=g&&g<=49827||49829<=g&&g<=49855||49857<=g&&g<=49883||49885<=g&&g<=49911||49913<=g&&g<=49939||49941<=g&&g<=49967||49969<=g&&g<=49995||49997<=g&&g<=50023||50025<=g&&g<=50051||50053<=g&&g<=50079||50081<=g&&g<=50107||50109<=g&&g<=50135||50137<=g&&g<=50163||50165<=g&&g<=50191||50193<=g&&g<=50219||50221<=g&&g<=50247||50249<=g&&g<=50275||50277<=g&&g<=50303||50305<=g&&g<=50331||50333<=g&&g<=50359||50361<=g&&g<=50387||50389<=g&&g<=50415||50417<=g&&g<=50443||50445<=g&&g<=50471||50473<=g&&g<=50499||50501<=g&&g<=50527||50529<=g&&g<=50555||50557<=g&&g<=50583||50585<=g&&g<=50611||50613<=g&&g<=50639||50641<=g&&g<=50667||50669<=g&&g<=50695||50697<=g&&g<=50723||50725<=g&&g<=50751||50753<=g&&g<=50779||50781<=g&&g<=50807||50809<=g&&g<=50835||50837<=g&&g<=50863||50865<=g&&g<=50891||50893<=g&&g<=50919||50921<=g&&g<=50947||50949<=g&&g<=50975||50977<=g&&g<=51003||51005<=g&&g<=51031||51033<=g&&g<=51059||51061<=g&&g<=51087||51089<=g&&g<=51115||51117<=g&&g<=51143||51145<=g&&g<=51171||51173<=g&&g<=51199||51201<=g&&g<=51227||51229<=g&&g<=51255||51257<=g&&g<=51283||51285<=g&&g<=51311||51313<=g&&g<=51339||51341<=g&&g<=51367||51369<=g&&g<=51395||51397<=g&&g<=51423||51425<=g&&g<=51451||51453<=g&&g<=51479||51481<=g&&g<=51507||51509<=g&&g<=51535||51537<=g&&g<=51563||51565<=g&&g<=51591||51593<=g&&g<=51619||51621<=g&&g<=51647||51649<=g&&g<=51675||51677<=g&&g<=51703||51705<=g&&g<=51731||51733<=g&&g<=51759||51761<=g&&g<=51787||51789<=g&&g<=51815||51817<=g&&g<=51843||51845<=g&&g<=51871||51873<=g&&g<=51899||51901<=g&&g<=51927||51929<=g&&g<=51955||51957<=g&&g<=51983||51985<=g&&g<=52011||52013<=g&&g<=52039||52041<=g&&g<=52067||52069<=g&&g<=52095||52097<=g&&g<=52123||52125<=g&&g<=52151||52153<=g&&g<=52179||52181<=g&&g<=52207||52209<=g&&g<=52235||52237<=g&&g<=52263||52265<=g&&g<=52291||52293<=g&&g<=52319||52321<=g&&g<=52347||52349<=g&&g<=52375||52377<=g&&g<=52403||52405<=g&&g<=52431||52433<=g&&g<=52459||52461<=g&&g<=52487||52489<=g&&g<=52515||52517<=g&&g<=52543||52545<=g&&g<=52571||52573<=g&&g<=52599||52601<=g&&g<=52627||52629<=g&&g<=52655||52657<=g&&g<=52683||52685<=g&&g<=52711||52713<=g&&g<=52739||52741<=g&&g<=52767||52769<=g&&g<=52795||52797<=g&&g<=52823||52825<=g&&g<=52851||52853<=g&&g<=52879||52881<=g&&g<=52907||52909<=g&&g<=52935||52937<=g&&g<=52963||52965<=g&&g<=52991||52993<=g&&g<=53019||53021<=g&&g<=53047||53049<=g&&g<=53075||53077<=g&&g<=53103||53105<=g&&g<=53131||53133<=g&&g<=53159||53161<=g&&g<=53187||53189<=g&&g<=53215||53217<=g&&g<=53243||53245<=g&&g<=53271||53273<=g&&g<=53299||53301<=g&&g<=53327||53329<=g&&g<=53355||53357<=g&&g<=53383||53385<=g&&g<=53411||53413<=g&&g<=53439||53441<=g&&g<=53467||53469<=g&&g<=53495||53497<=g&&g<=53523||53525<=g&&g<=53551||53553<=g&&g<=53579||53581<=g&&g<=53607||53609<=g&&g<=53635||53637<=g&&g<=53663||53665<=g&&g<=53691||53693<=g&&g<=53719||53721<=g&&g<=53747||53749<=g&&g<=53775||53777<=g&&g<=53803||53805<=g&&g<=53831||53833<=g&&g<=53859||53861<=g&&g<=53887||53889<=g&&g<=53915||53917<=g&&g<=53943||53945<=g&&g<=53971||53973<=g&&g<=53999||54001<=g&&g<=54027||54029<=g&&g<=54055||54057<=g&&g<=54083||54085<=g&&g<=54111||54113<=g&&g<=54139||54141<=g&&g<=54167||54169<=g&&g<=54195||54197<=g&&g<=54223||54225<=g&&g<=54251||54253<=g&&g<=54279||54281<=g&&g<=54307||54309<=g&&g<=54335||54337<=g&&g<=54363||54365<=g&&g<=54391||54393<=g&&g<=54419||54421<=g&&g<=54447||54449<=g&&g<=54475||54477<=g&&g<=54503||54505<=g&&g<=54531||54533<=g&&g<=54559||54561<=g&&g<=54587||54589<=g&&g<=54615||54617<=g&&g<=54643||54645<=g&&g<=54671||54673<=g&&g<=54699||54701<=g&&g<=54727||54729<=g&&g<=54755||54757<=g&&g<=54783||54785<=g&&g<=54811||54813<=g&&g<=54839||54841<=g&&g<=54867||54869<=g&&g<=54895||54897<=g&&g<=54923||54925<=g&&g<=54951||54953<=g&&g<=54979||54981<=g&&g<=55007||55009<=g&&g<=55035||55037<=g&&g<=55063||55065<=g&&g<=55091||55093<=g&&g<=55119||55121<=g&&g<=55147||55149<=g&&g<=55175||55177<=g&&g<=55203?E:g==9757||g==9977||9994<=g&&g<=9997||g==127877||127938<=g&&g<=127940||g==127943||127946<=g&&g<=127948||128066<=g&&g<=128067||128070<=g&&g<=128080||g==128110||128112<=g&&g<=128120||g==128124||128129<=g&&g<=128131||128133<=g&&g<=128135||g==128170||128372<=g&&g<=128373||g==128378||g==128400||128405<=g&&g<=128406||128581<=g&&g<=128583||128587<=g&&g<=128591||g==128675||128692<=g&&g<=128694||g==128704||g==128716||129304<=g&&g<=129308||129310<=g&&g<=129311||g==129318||129328<=g&&g<=129337||129341<=g&&g<=129342||129489<=g&&g<=129501?x:127995<=g&&g<=127999?C:g==8205?R:g==9792||g==9794||9877<=g&&g<=9878||g==9992||g==10084||g==127752||g==127806||g==127859||g==127891||g==127908||g==127912||g==127979||g==127981||g==128139||128187<=g&&g<=128188||g==128295||g==128300||g==128488||g==128640||g==128658?L:128102<=g&&g<=128105?U:I}return this}typeof Qb<"u"&&Qb.exports&&(Qb.exports=mat)});var Kce=_((w4t,Wce)=>{var yat=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,Fb;function Eat(){if(Fb)return Fb;if(typeof Intl.Segmenter<"u"){let t=new Intl.Segmenter("en",{granularity:"grapheme"});return Fb=e=>Array.from(t.segment(e),({segment:r})=>r)}else{let t=Yce(),e=new t;return Fb=r=>e.splitGraphemes(r)}}Wce.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let o=r-e,a="",n=0,u=0;for(;t.length>0;){let A=t.match(yat)||[t,t,void 0],p=Eat()(A[1]),h=Math.min(e-n,p.length);p=p.slice(h);let E=Math.min(o-u,p.length);a+=p.slice(0,E).join(""),n+=h,u+=E,typeof A[2]<"u"&&(a+=A[2]),t=t.slice(A[0].length)}return a}});var nn,w1=Et(()=>{nn=process.env.YARN_IS_TEST_ENV?"0.0.0":"4.4.0"});function $ce(t,{configuration:e,json:r}){if(!e.get("enableMessageNames"))return"";let a=Ku(t===null?0:t);return!r&&t===null?Ot(e,a,"grey"):a}function AU(t,{configuration:e,json:r}){let o=$ce(t,{configuration:e,json:r});if(!o||t===null||t===0)return o;let a=wr[t],n=`https://yarnpkg.com/advanced/error-codes#${o}---${a}`.toLowerCase();return Tm(e,o,n)}async function uy({configuration:t,stdout:e,forceError:r},o){let a=await Rt.start({configuration:t,stdout:e,includeFooter:!1},async n=>{let u=!1,A=!1;for(let p of o)typeof p.option<"u"&&(p.error||r?(A=!0,n.reportError(50,p.message)):(u=!0,n.reportWarning(50,p.message)),p.callback?.());u&&!A&&n.reportSeparator()});return a.hasErrors()?a.exitCode():null}var Xce,Rb,Cat,Vce,zce,ch,Zce,Jce,wat,Iat,Tb,Bat,Rt,I1=Et(()=>{Xce=Ze(Kce()),Rb=Ze(X0());$D();Wl();w1();jl();Cat="\xB7",Vce=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],zce=80,ch=Rb.default.GITHUB_ACTIONS?{start:t=>`::group::${t} -`,end:t=>`::endgroup:: -`}:Rb.default.TRAVIS?{start:t=>`travis_fold:start:${t} -`,end:t=>`travis_fold:end:${t} -`}:Rb.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${t} -`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,Zce=ch!==null,Jce=new Date,wat=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,Iat=t=>t,Tb=Iat({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),Bat=wat&&Object.keys(Tb).find(t=>{let e=Tb[t];return!(e.date&&(e.date[0]!==Jce.getDate()||e.date[1]!==Jce.getMonth()+1))})||"default";Rt=class extends Zs{constructor({configuration:r,stdout:o,json:a=!1,forceSectionAlignment:n=!1,includeNames:u=!0,includePrefix:A=!0,includeFooter:p=!0,includeLogs:h=!a,includeInfos:E=h,includeWarnings:I=h}){super();this.uncommitted=new Set;this.warningCount=0;this.errorCount=0;this.timerFooter=[];this.startTime=Date.now();this.indent=0;this.level=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;if(TI(this,{configuration:r}),this.configuration=r,this.forceSectionAlignment=n,this.includeNames=u,this.includePrefix=A,this.includeFooter=p,this.includeInfos=E,this.includeWarnings=I,this.json=a,this.stdout=o,r.get("enableProgressBars")&&!a&&o.isTTY&&o.columns>22){let v=r.get("progressBarStyle")||Bat;if(!Object.hasOwn(Tb,v))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=Tb[v];let x=Math.min(this.getRecommendedLength(),80);this.progressMaxScaledSize=Math.floor(this.progressStyle.size*x/80)}}static async start(r,o){let a=new this(r),n=process.emitWarning;process.emitWarning=(u,A)=>{if(typeof u!="string"){let h=u;u=h.message,A=A??h.name}let p=typeof A<"u"?`${A}: ${u}`:u;a.reportWarning(0,p)},r.includeVersion&&a.reportInfo(0,fg(r.configuration,`Yarn ${nn}`,2));try{await o(a)}catch(u){a.reportExceptionOnce(u)}finally{await a.finalize(),process.emitWarning=n}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}getRecommendedLength(){let o=this.progressStyle!==null?this.stdout.columns-1:super.getRecommendedLength();return Math.max(40,o-12-this.indent*2)}startSectionSync({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&o?.(p-A)}}async startSectionPromise({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return await n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&o?.(p-A)}}startTimerImpl(r,o,a){return{cb:typeof o=="function"?o:a,reportHeader:()=>{this.level+=1,this.reportInfo(null,`\u250C ${r}`),this.indent+=1,ch!==null&&!this.json&&this.includeInfos&&this.stdout.write(ch.start(r))},reportFooter:A=>{if(this.indent-=1,ch!==null&&!this.json&&this.includeInfos){this.stdout.write(ch.end(r));for(let p of this.timerFooter)p()}this.configuration.get("enableTimers")&&A>200?this.reportInfo(null,`\u2514 Completed in ${Ot(this.configuration,A,yt.DURATION)}`):this.reportInfo(null,"\u2514 Completed"),this.level-=1},skipIfEmpty:(typeof o=="function"?{}:o).skipIfEmpty}}startTimerSync(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionSync(u,n)}async startTimerPromise(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionPromise(u,n)}reportSeparator(){this.indent===0?this.writeLine(""):this.reportInfo(null,"")}reportInfo(r,o){if(!this.includeInfos)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"",u=`${this.formatPrefix(n,"blueBright")}${o}`;this.json?this.reportJson({type:"info",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(u)}reportWarning(r,o){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"warning",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(`${this.formatPrefix(n,"yellowBright")}${o}`)}reportError(r,o){this.errorCount+=1,this.timerFooter.push(()=>this.reportErrorImpl(r,o)),this.reportErrorImpl(r,o)}reportErrorImpl(r,o){this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"error",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(`${this.formatPrefix(n,"redBright")}${o}`,{truncate:!1})}reportFold(r,o){if(!ch)return;let a=`${ch.start(r)}${o}${ch.end(r)}`;this.timerFooter.push(()=>this.stdout.write(a))}reportProgress(r){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(r.hasProgress&&r.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let o=!1,a=Promise.resolve().then(async()=>{let u={progress:r.hasProgress?0:void 0,title:r.hasTitle?"":void 0};this.progress.set(r,{definition:u,lastScaledSize:r.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:A,title:p}of r)o||u.progress===A&&u.title===p||(u.progress=A,u.title=p,this.refreshProgress());n()}),n=()=>{o||(o=!0,this.progress.delete(r),this.refreshProgress({delta:1}))};return{...a,stop:n}}reportJson(r){this.json&&this.writeLine(`${JSON.stringify(r)}`)}async finalize(){if(!this.includeFooter)return;let r="";this.errorCount>0?r="Failed with errors":this.warningCount>0?r="Done with warnings":r="Done";let o=Ot(this.configuration,Date.now()-this.startTime,yt.DURATION),a=this.configuration.get("enableTimers")?`${r} in ${o}`:r;this.errorCount>0?this.reportError(0,a):this.warningCount>0?this.reportWarning(0,a):this.reportInfo(0,a)}writeLine(r,{truncate:o}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(r,{truncate:o})} -`),this.writeProgress()}writeLines(r,{truncate:o}={}){this.clearProgress({delta:r.length});for(let a of r)this.stdout.write(`${this.truncate(a,{truncate:o})} -`);this.writeProgress()}commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let o of r)o.committed=!0,o.action()}clearProgress({delta:r=0,clear:o=!1}){this.progressStyle!==null&&this.progress.size+r>0&&(this.stdout.write(`\x1B[${this.progress.size+r}A`),(r>0||o)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let r=Date.now();r-this.progressTime>zce&&(this.progressFrame=(this.progressFrame+1)%Vce.length,this.progressTime=r);let o=Vce[this.progressFrame];for(let a of this.progress.values()){let n="";if(typeof a.lastScaledSize<"u"){let h=this.progressStyle.chars[0].repeat(a.lastScaledSize),E=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-a.lastScaledSize);n=` ${h}${E}`}let u=this.formatName(null),A=u?`${u}: `:"",p=a.definition.title?` ${a.definition.title}`:"";this.stdout.write(`${Ot(this.configuration,"\u27A4","blueBright")} ${A}${o}${n}${p} -`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},zce)}refreshProgress({delta:r=0,force:o=!1}={}){let a=!1,n=!1;if(o||this.progress.size===0)a=!0;else for(let u of this.progress.values()){let A=typeof u.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*u.definition.progress):void 0,p=u.lastScaledSize;u.lastScaledSize=A;let h=u.lastTitle;if(u.lastTitle=u.definition.title,A!==p||(n=h!==u.definition.title)){a=!0;break}}a&&(this.clearProgress({delta:r,clear:n}),this.writeProgress())}truncate(r,{truncate:o}={}){return this.progressStyle===null&&(o=!1),typeof o>"u"&&(o=this.configuration.get("preferTruncatedLines")),o&&(r=(0,Xce.default)(r,0,this.stdout.columns-1)),r}formatName(r){return this.includeNames?$ce(r,{configuration:this.configuration,json:this.json}):""}formatPrefix(r,o){return this.includePrefix?`${Ot(this.configuration,"\u27A4",o)} ${r}${this.formatIndent()}`:""}formatNameWithHyperlink(r){return this.includeNames?AU(r,{configuration:this.configuration,json:this.json}):""}formatIndent(){return this.level>0||!this.forceSectionAlignment?"\u2502 ".repeat(this.indent):`${Cat} `}}});var An={};Vt(An,{PackageManager:()=>rue,detectPackageManager:()=>nue,executePackageAccessibleBinary:()=>lue,executePackageScript:()=>Nb,executePackageShellcode:()=>fU,executeWorkspaceAccessibleBinary:()=>kat,executeWorkspaceLifecycleScript:()=>oue,executeWorkspaceScript:()=>sue,getPackageAccessibleBinaries:()=>Lb,getWorkspaceAccessibleBinaries:()=>aue,hasPackageScript:()=>Sat,hasWorkspaceScript:()=>pU,isNodeScript:()=>hU,makeScriptEnv:()=>B1,maybeExecuteWorkspaceLifecycleScript:()=>xat,prepareExternalProject:()=>Pat});async function uh(t,e,r,o=[]){if(process.platform==="win32"){let a=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${o.map(n=>`"${n.replace('"','""')}"`).join(" ")} %*`;await oe.writeFilePromise(K.format({dir:t,name:e,ext:".cmd"}),a)}await oe.writeFilePromise(K.join(t,e),`#!/bin/sh -exec "${r}" ${o.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" -`,{mode:493})}async function nue(t){let e=await Ut.tryFind(t);if(e?.packageManager){let o=DS(e.packageManager);if(o?.name){let a=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[n]=o.reference.split(".");switch(o.name){case"yarn":return{packageManagerField:!0,packageManager:Number(n)===1?"Yarn Classic":"Yarn",reason:a};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:a};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:a}}}}let r;try{r=await oe.readFilePromise(K.join(t,dr.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:oe.existsSync(K.join(t,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:oe.existsSync(K.join(t,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function B1({project:t,locator:e,binFolder:r,ignoreCorepack:o,lifecycleScript:a,baseEnv:n=t?.configuration.env??process.env}){let u={};for(let[E,I]of Object.entries(n))typeof I<"u"&&(u[E.toLowerCase()!=="path"?E:"PATH"]=I);let A=ue.fromPortablePath(r);u.BERRY_BIN_FOLDER=ue.fromPortablePath(A);let p=process.env.COREPACK_ROOT&&!o?ue.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([uh(r,"node",process.execPath),...nn!==null?[uh(r,"run",process.execPath,[p,"run"]),uh(r,"yarn",process.execPath,[p]),uh(r,"yarnpkg",process.execPath,[p]),uh(r,"node-gyp",process.execPath,[p,"run","--top-level","node-gyp"])]:[]]),t&&(u.INIT_CWD=ue.fromPortablePath(t.configuration.startingCwd),u.PROJECT_CWD=ue.fromPortablePath(t.cwd)),u.PATH=u.PATH?`${A}${ue.delimiter}${u.PATH}`:`${A}`,u.npm_execpath=`${A}${ue.sep}yarn`,u.npm_node_execpath=`${A}${ue.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let E=t.tryWorkspaceByLocator(e),I=E?E.manifest.version??"":t.storedPackages.get(e.locatorHash).version??"";u.npm_package_name=rn(e),u.npm_package_version=I;let v;if(E)v=E.cwd;else{let x=t.storedPackages.get(e.locatorHash);if(!x)throw new Error(`Package for ${qr(t.configuration,e)} not found in the project`);let C=t.configuration.getLinkers(),R={project:t,report:new Rt({stdout:new Ah.PassThrough,configuration:t.configuration})},L=C.find(U=>U.supportsPackage(x,R));if(!L)throw new Error(`The package ${qr(t.configuration,x)} isn't supported by any of the available linkers`);v=await L.findPackageLocation(x,R)}u.npm_package_json=ue.fromPortablePath(K.join(v,dr.manifest))}let h=nn!==null?`yarn/${nn}`:`yarn/${vf("@yarnpkg/core").version}-core`;return u.npm_config_user_agent=`${h} npm/? node/${process.version} ${process.platform} ${process.arch}`,a&&(u.npm_lifecycle_event=a),t&&await t.configuration.triggerHook(E=>E.setupScriptEnvironment,t,u,async(E,I,v)=>await uh(r,E,I,v)),u}async function Pat(t,e,{configuration:r,report:o,workspace:a=null,locator:n=null}){await Dat(async()=>{await oe.mktempPromise(async u=>{let A=K.join(u,"pack.log"),p=null,{stdout:h,stderr:E}=r.getSubprocessStreams(A,{prefix:ue.fromPortablePath(t),report:o}),I=n&&Gc(n)?_I(n):n,v=I?ka(I):"an external project";h.write(`Packing ${v} from sources -`);let x=await nue(t),C;x!==null?(h.write(`Using ${x.packageManager} for bootstrap. Reason: ${x.reason} - -`),C=x.packageManager):(h.write(`No package manager configuration detected; defaulting to Yarn - -`),C="Yarn");let R=C==="Yarn"&&!x?.packageManagerField;await oe.mktempPromise(async L=>{let U=await B1({binFolder:L,ignoreCorepack:R}),te=new Map([["Yarn Classic",async()=>{let le=a!==null?["workspace",a]:[],ce=K.join(t,dr.manifest),Ce=await oe.readFilePromise(ce),de=await Wc(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed","--yarn-path"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(de.code!==0)return de.code;await oe.writeFilePromise(ce,Ce),await oe.appendFilePromise(K.join(t,".npmignore"),`/.yarn -`),h.write(` -`),delete U.NODE_ENV;let Be=await Wc("yarn",["install"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(Be.code!==0)return Be.code;h.write(` -`);let Ee=await Wc("yarn",[...le,"pack","--filename",ue.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return Ee.code!==0?Ee.code:0}],["Yarn",async()=>{let le=a!==null?["workspace",a]:[];U.YARN_ENABLE_INLINE_BUILDS="1";let ce=K.join(t,dr.lockfile);await oe.existsPromise(ce)||await oe.writeFilePromise(ce,"");let Ce=await Wc("yarn",[...le,"pack","--install-if-needed","--filename",ue.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return Ce.code!==0?Ce.code:0}],["npm",async()=>{if(a!==null){let me=new Ah.PassThrough,we=km(me);me.pipe(h,{end:!1});let Ae=await Wc("npm",["--version"],{cwd:t,env:U,stdin:p,stdout:me,stderr:E,end:0});if(me.end(),Ae.code!==0)return h.end(),E.end(),Ae.code;let ne=(await we).toString().trim();if(!tA(ne,">=7.x")){let Z=eA(null,"npm"),xe=In(Z,ne),Ne=In(Z,">=7.x");throw new Error(`Workspaces aren't supported by ${jn(r,xe)}; please upgrade to ${jn(r,Ne)} (npm has been detected as the primary package manager for ${Ot(r,t,yt.PATH)})`)}}let le=a!==null?["--workspace",a]:[];delete U.npm_config_user_agent,delete U.npm_config_production,delete U.NPM_CONFIG_PRODUCTION,delete U.NODE_ENV;let ce=await Wc("npm",["install","--legacy-peer-deps"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(ce.code!==0)return ce.code;let Ce=new Ah.PassThrough,de=km(Ce);Ce.pipe(h);let Be=await Wc("npm",["pack","--silent",...le],{cwd:t,env:U,stdin:p,stdout:Ce,stderr:E});if(Be.code!==0)return Be.code;let Ee=(await de).toString().trim().replace(/^.*\n/s,""),g=K.resolve(t,ue.toPortablePath(Ee));return await oe.renamePromise(g,e),0}]]).get(C);if(typeof te>"u")throw new Error("Assertion failed: Unsupported workflow");let ae=await te();if(!(ae===0||typeof ae>"u"))throw oe.detachTemp(u),new Jt(58,`Packing the package failed (exit code ${ae}, logs can be found here: ${Ot(r,A,yt.PATH)})`)})})})}async function Sat(t,e,{project:r}){let o=r.tryWorkspaceByLocator(t);if(o!==null)return pU(o,e);let a=r.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${qr(r.configuration,t)} not found in the project`);return await rA.openPromise(async n=>{let u=r.configuration,A=r.configuration.getLinkers(),p={project:r,report:new Rt({stdout:new Ah.PassThrough,configuration:u})},h=A.find(x=>x.supportsPackage(a,p));if(!h)throw new Error(`The package ${qr(r.configuration,a)} isn't supported by any of the available linkers`);let E=await h.findPackageLocation(a,p),I=new gn(E,{baseFs:n});return(await Ut.find(It.dot,{baseFs:I})).scripts.has(e)})}async function Nb(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await oe.mktempPromise(async p=>{let{manifest:h,env:E,cwd:I}=await iue(t,{project:a,binFolder:p,cwd:o,lifecycleScript:e}),v=h.scripts.get(e);if(typeof v>"u")return 1;let x=async()=>await cy(v,r,{cwd:I,env:E,stdin:n,stdout:u,stderr:A});return await(await a.configuration.reduceHook(R=>R.wrapScriptExecution,x,a,t,e,{script:v,args:r,cwd:I,env:E,stdin:n,stdout:u,stderr:A}))()})}async function fU(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await oe.mktempPromise(async p=>{let{env:h,cwd:E}=await iue(t,{project:a,binFolder:p,cwd:o});return await cy(e,r,{cwd:E,env:h,stdin:n,stdout:u,stderr:A})})}async function bat(t,{binFolder:e,cwd:r,lifecycleScript:o}){let a=await B1({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:o});return await gU(e,await aue(t)),typeof r>"u"&&(r=K.dirname(await oe.realpathPromise(K.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:a,cwd:r}}async function iue(t,{project:e,binFolder:r,cwd:o,lifecycleScript:a}){let n=e.tryWorkspaceByLocator(t);if(n!==null)return bat(n,{binFolder:r,cwd:o,lifecycleScript:a});let u=e.storedPackages.get(t.locatorHash);if(!u)throw new Error(`Package for ${qr(e.configuration,t)} not found in the project`);return await rA.openPromise(async A=>{let p=e.configuration,h=e.configuration.getLinkers(),E={project:e,report:new Rt({stdout:new Ah.PassThrough,configuration:p})},I=h.find(L=>L.supportsPackage(u,E));if(!I)throw new Error(`The package ${qr(e.configuration,u)} isn't supported by any of the available linkers`);let v=await B1({project:e,locator:t,binFolder:r,lifecycleScript:a});await gU(r,await Lb(t,{project:e}));let x=await I.findPackageLocation(u,E),C=new gn(x,{baseFs:A}),R=await Ut.find(It.dot,{baseFs:C});return typeof o>"u"&&(o=x),{manifest:R,binFolder:r,env:v,cwd:o}})}async function sue(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u}){return await Nb(t.anchoredLocator,e,r,{cwd:o,project:t.project,stdin:a,stdout:n,stderr:u})}function pU(t,e){return t.manifest.scripts.has(e)}async function oue(t,e,{cwd:r,report:o}){let{configuration:a}=t.project,n=null;await oe.mktempPromise(async u=>{let A=K.join(u,`${e}.log`),p=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${ue.fromPortablePath(t.cwd)}") -`,{stdout:h,stderr:E}=a.getSubprocessStreams(A,{report:o,prefix:qr(a,t.anchoredLocator),header:p});o.reportInfo(36,`Calling the "${e}" lifecycle script`);let I=await sue(t,e,[],{cwd:r,stdin:n,stdout:h,stderr:E});if(h.end(),E.end(),I!==0)throw oe.detachTemp(u),new Jt(36,`${(0,eue.default)(e)} script failed (exit code ${Ot(a,I,yt.NUMBER)}, logs can be found here: ${Ot(a,A,yt.PATH)}); run ${Ot(a,`yarn ${e}`,yt.CODE)} to investigate`)})}async function xat(t,e,r){pU(t,e)&&await oue(t,e,r)}function hU(t){let e=K.extname(t);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let r=Buffer.alloc(4),o;try{o=oe.openSync(t,"r")}catch{return!0}try{oe.readSync(o,r,0,r.length,0)}finally{oe.closeSync(o)}let a=r.readUint32BE();return!(a===3405691582||a===3489328638||a===2135247942||(a&4294901760)===1297743872)}async function Lb(t,{project:e}){let r=e.configuration,o=new Map,a=e.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${qr(r,t)} not found in the project`);let n=new Ah.Writable,u=r.getLinkers(),A={project:e,report:new Rt({configuration:r,stdout:n})},p=new Set([t.locatorHash]);for(let E of a.dependencies.values()){let I=e.storedResolutions.get(E.descriptorHash);if(!I)throw new Error(`Assertion failed: The resolution (${jn(r,E)}) should have been registered`);p.add(I)}let h=await Promise.all(Array.from(p,async E=>{let I=e.storedPackages.get(E);if(!I)throw new Error(`Assertion failed: The package (${E}) should have been registered`);if(I.bin.size===0)return ol.skip;let v=u.find(C=>C.supportsPackage(I,A));if(!v)return ol.skip;let x=null;try{x=await v.findPackageLocation(I,A)}catch(C){if(C.code==="LOCATOR_NOT_INSTALLED")return ol.skip;throw C}return{dependency:I,packageLocation:x}}));for(let E of h){if(E===ol.skip)continue;let{dependency:I,packageLocation:v}=E;for(let[x,C]of I.bin){let R=K.resolve(v,C);o.set(x,[I,ue.fromPortablePath(R),hU(R)])}}return o}async function aue(t){return await Lb(t.anchoredLocator,{project:t.project})}async function gU(t,e){await Promise.all(Array.from(e,([r,[,o,a]])=>a?uh(t,r,process.execPath,[o]):uh(t,r,o,[])))}async function lue(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A,nodeArgs:p=[],packageAccessibleBinaries:h}){h??=await Lb(t,{project:a});let E=h.get(e);if(!E)throw new Error(`Binary not found (${e}) for ${qr(a.configuration,t)}`);return await oe.mktempPromise(async I=>{let[,v]=E,x=await B1({project:a,locator:t,binFolder:I});await gU(x.BERRY_BIN_FOLDER,h);let C=hU(ue.toPortablePath(v))?Wc(process.execPath,[...p,v,...r],{cwd:o,env:x,stdin:n,stdout:u,stderr:A}):Wc(v,r,{cwd:o,env:x,stdin:n,stdout:u,stderr:A}),R;try{R=await C}finally{await oe.removePromise(x.BERRY_BIN_FOLDER)}return R.code})}async function kat(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A}){return await lue(t.anchoredLocator,e,r,{project:t.project,cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A})}var eue,tue,Ah,rue,vat,Dat,dU=Et(()=>{Pt();Pt();nA();g1();eue=Ze(uU()),tue=Ze(eg()),Ah=ve("stream");Gm();Wl();I1();w1();hb();jl();ql();bf();bo();rue=(a=>(a.Yarn1="Yarn Classic",a.Yarn2="Yarn",a.Npm="npm",a.Pnpm="pnpm",a))(rue||{});vat=2,Dat=(0,tue.default)(vat)});var Ay=_((q4t,uue)=>{"use strict";var cue=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);uue.exports=t=>t?Object.keys(t).map(e=>[cue.has(e)?cue.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var py=_((j4t,Eue)=>{"use strict";var Aue=typeof process=="object"&&process?process:{stdout:null,stderr:null},Qat=ve("events"),fue=ve("stream"),pue=ve("string_decoder").StringDecoder,Nf=Symbol("EOF"),Lf=Symbol("maybeEmitEnd"),fh=Symbol("emittedEnd"),Mb=Symbol("emittingEnd"),v1=Symbol("emittedError"),Ob=Symbol("closed"),hue=Symbol("read"),Ub=Symbol("flush"),gue=Symbol("flushChunk"),Fa=Symbol("encoding"),Mf=Symbol("decoder"),_b=Symbol("flowing"),D1=Symbol("paused"),fy=Symbol("resume"),Ts=Symbol("bufferLength"),mU=Symbol("bufferPush"),yU=Symbol("bufferShift"),Fo=Symbol("objectMode"),Ro=Symbol("destroyed"),EU=Symbol("emitData"),due=Symbol("emitEnd"),CU=Symbol("emitEnd2"),Of=Symbol("async"),P1=t=>Promise.resolve().then(t),mue=global._MP_NO_ITERATOR_SYMBOLS_!=="1",Fat=mue&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),Rat=mue&&Symbol.iterator||Symbol("iterator not implemented"),Tat=t=>t==="end"||t==="finish"||t==="prefinish",Nat=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,Lat=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),Hb=class{constructor(e,r,o){this.src=e,this.dest=r,this.opts=o,this.ondrain=()=>e[fy](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},wU=class extends Hb{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,r,o){super(e,r,o),this.proxyErrors=a=>r.emit("error",a),e.on("error",this.proxyErrors)}};Eue.exports=class yue extends fue{constructor(e){super(),this[_b]=!1,this[D1]=!1,this.pipes=[],this.buffer=[],this[Fo]=e&&e.objectMode||!1,this[Fo]?this[Fa]=null:this[Fa]=e&&e.encoding||null,this[Fa]==="buffer"&&(this[Fa]=null),this[Of]=e&&!!e.async||!1,this[Mf]=this[Fa]?new pue(this[Fa]):null,this[Nf]=!1,this[fh]=!1,this[Mb]=!1,this[Ob]=!1,this[v1]=null,this.writable=!0,this.readable=!0,this[Ts]=0,this[Ro]=!1}get bufferLength(){return this[Ts]}get encoding(){return this[Fa]}set encoding(e){if(this[Fo])throw new Error("cannot set encoding in objectMode");if(this[Fa]&&e!==this[Fa]&&(this[Mf]&&this[Mf].lastNeed||this[Ts]))throw new Error("cannot change encoding");this[Fa]!==e&&(this[Mf]=e?new pue(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[Mf].write(r)))),this[Fa]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Fo]}set objectMode(e){this[Fo]=this[Fo]||!!e}get async(){return this[Of]}set async(e){this[Of]=this[Of]||!!e}write(e,r,o){if(this[Nf])throw new Error("write after end");if(this[Ro])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(o=r,r="utf8"),r||(r="utf8");let a=this[Of]?P1:n=>n();return!this[Fo]&&!Buffer.isBuffer(e)&&(Lat(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):Nat(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Fo]?(this.flowing&&this[Ts]!==0&&this[Ub](!0),this.flowing?this.emit("data",e):this[mU](e),this[Ts]!==0&&this.emit("readable"),o&&a(o),this.flowing):e.length?(typeof e=="string"&&!(r===this[Fa]&&!this[Mf].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[Fa]&&(e=this[Mf].write(e)),this.flowing&&this[Ts]!==0&&this[Ub](!0),this.flowing?this.emit("data",e):this[mU](e),this[Ts]!==0&&this.emit("readable"),o&&a(o),this.flowing):(this[Ts]!==0&&this.emit("readable"),o&&a(o),this.flowing)}read(e){if(this[Ro])return null;if(this[Ts]===0||e===0||e>this[Ts])return this[Lf](),null;this[Fo]&&(e=null),this.buffer.length>1&&!this[Fo]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[Ts])]);let r=this[hue](e||null,this.buffer[0]);return this[Lf](),r}[hue](e,r){return e===r.length||e===null?this[yU]():(this.buffer[0]=r.slice(e),r=r.slice(0,e),this[Ts]-=e),this.emit("data",r),!this.buffer.length&&!this[Nf]&&this.emit("drain"),r}end(e,r,o){return typeof e=="function"&&(o=e,e=null),typeof r=="function"&&(o=r,r="utf8"),e&&this.write(e,r),o&&this.once("end",o),this[Nf]=!0,this.writable=!1,(this.flowing||!this[D1])&&this[Lf](),this}[fy](){this[Ro]||(this[D1]=!1,this[_b]=!0,this.emit("resume"),this.buffer.length?this[Ub]():this[Nf]?this[Lf]():this.emit("drain"))}resume(){return this[fy]()}pause(){this[_b]=!1,this[D1]=!0}get destroyed(){return this[Ro]}get flowing(){return this[_b]}get paused(){return this[D1]}[mU](e){this[Fo]?this[Ts]+=1:this[Ts]+=e.length,this.buffer.push(e)}[yU](){return this.buffer.length&&(this[Fo]?this[Ts]-=1:this[Ts]-=this.buffer[0].length),this.buffer.shift()}[Ub](e){do;while(this[gue](this[yU]()));!e&&!this.buffer.length&&!this[Nf]&&this.emit("drain")}[gue](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,r){if(this[Ro])return;let o=this[fh];return r=r||{},e===Aue.stdout||e===Aue.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,o?r.end&&e.end():(this.pipes.push(r.proxyErrors?new wU(this,e,r):new Hb(this,e,r)),this[Of]?P1(()=>this[fy]()):this[fy]()),e}unpipe(e){let r=this.pipes.find(o=>o.dest===e);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let o=super.on(e,r);return e==="data"&&!this.pipes.length&&!this.flowing?this[fy]():e==="readable"&&this[Ts]!==0?super.emit("readable"):Tat(e)&&this[fh]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[v1]&&(this[Of]?P1(()=>r.call(this,this[v1])):r.call(this,this[v1])),o}get emittedEnd(){return this[fh]}[Lf](){!this[Mb]&&!this[fh]&&!this[Ro]&&this.buffer.length===0&&this[Nf]&&(this[Mb]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[Ob]&&this.emit("close"),this[Mb]=!1)}emit(e,r,...o){if(e!=="error"&&e!=="close"&&e!==Ro&&this[Ro])return;if(e==="data")return r?this[Of]?P1(()=>this[EU](r)):this[EU](r):!1;if(e==="end")return this[due]();if(e==="close"){if(this[Ob]=!0,!this[fh]&&!this[Ro])return;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(e==="error"){this[v1]=r;let n=super.emit("error",r);return this[Lf](),n}else if(e==="resume"){let n=super.emit("resume");return this[Lf](),n}else if(e==="finish"||e==="prefinish"){let n=super.emit(e);return this.removeAllListeners(e),n}let a=super.emit(e,r,...o);return this[Lf](),a}[EU](e){for(let o of this.pipes)o.dest.write(e)===!1&&this.pause();let r=super.emit("data",e);return this[Lf](),r}[due](){this[fh]||(this[fh]=!0,this.readable=!1,this[Of]?P1(()=>this[CU]()):this[CU]())}[CU](){if(this[Mf]){let r=this[Mf].end();if(r){for(let o of this.pipes)o.dest.write(r);super.emit("data",r)}}for(let r of this.pipes)r.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Fo]||(e.dataLength=0);let r=this.promise();return this.on("data",o=>{e.push(o),this[Fo]||(e.dataLength+=o.length)}),r.then(()=>e)}concat(){return this[Fo]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Fo]?Promise.reject(new Error("cannot concat in objectMode")):this[Fa]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(Ro,()=>r(new Error("stream destroyed"))),this.on("error",o=>r(o)),this.on("end",()=>e())})}[Fat](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Nf])return Promise.resolve({done:!0});let o=null,a=null,n=h=>{this.removeListener("data",u),this.removeListener("end",A),a(h)},u=h=>{this.removeListener("error",n),this.removeListener("end",A),this.pause(),o({value:h,done:!!this[Nf]})},A=()=>{this.removeListener("error",n),this.removeListener("data",u),o({done:!0})},p=()=>n(new Error("stream destroyed"));return new Promise((h,E)=>{a=E,o=h,this.once(Ro,p),this.once("error",n),this.once("end",A),this.once("data",u)})}}}[Rat](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[Ro]?(e?this.emit("error",e):this.emit(Ro),this):(this[Ro]=!0,this.buffer.length=0,this[Ts]=0,typeof this.close=="function"&&!this[Ob]&&this.close(),e?this.emit("error",e):this.emit(Ro),this)}static isStream(e){return!!e&&(e instanceof yue||e instanceof fue||e instanceof Qat&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var wue=_((G4t,Cue)=>{var Mat=ve("zlib").constants||{ZLIB_VERNUM:4736};Cue.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},Mat))});var MU=_(ul=>{"use strict";var PU=ve("assert"),ph=ve("buffer").Buffer,vue=ve("zlib"),Pg=ul.constants=wue(),Oat=py(),Iue=ph.concat,Sg=Symbol("_superWrite"),gy=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},Uat=Symbol("opts"),S1=Symbol("flushFlag"),Bue=Symbol("finishFlushFlag"),LU=Symbol("fullFlushFlag"),ti=Symbol("handle"),qb=Symbol("onError"),hy=Symbol("sawError"),IU=Symbol("level"),BU=Symbol("strategy"),vU=Symbol("ended"),Y4t=Symbol("_defaultFullFlush"),jb=class extends Oat{constructor(e,r){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[hy]=!1,this[vU]=!1,this[Uat]=e,this[S1]=e.flush,this[Bue]=e.finishFlush;try{this[ti]=new vue[r](e)}catch(o){throw new gy(o)}this[qb]=o=>{this[hy]||(this[hy]=!0,this.close(),this.emit("error",o))},this[ti].on("error",o=>this[qb](new gy(o))),this.once("end",()=>this.close)}close(){this[ti]&&(this[ti].close(),this[ti]=null,this.emit("close"))}reset(){if(!this[hy])return PU(this[ti],"zlib binding closed"),this[ti].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[LU]),this.write(Object.assign(ph.alloc(0),{[S1]:e})))}end(e,r,o){return e&&this.write(e,r),this.flush(this[Bue]),this[vU]=!0,super.end(null,null,o)}get ended(){return this[vU]}write(e,r,o){if(typeof r=="function"&&(o=r,r="utf8"),typeof e=="string"&&(e=ph.from(e,r)),this[hy])return;PU(this[ti],"zlib binding closed");let a=this[ti]._handle,n=a.close;a.close=()=>{};let u=this[ti].close;this[ti].close=()=>{},ph.concat=h=>h;let A;try{let h=typeof e[S1]=="number"?e[S1]:this[S1];A=this[ti]._processChunk(e,h),ph.concat=Iue}catch(h){ph.concat=Iue,this[qb](new gy(h))}finally{this[ti]&&(this[ti]._handle=a,a.close=n,this[ti].close=u,this[ti].removeAllListeners("error"))}this[ti]&&this[ti].on("error",h=>this[qb](new gy(h)));let p;if(A)if(Array.isArray(A)&&A.length>0){p=this[Sg](ph.from(A[0]));for(let h=1;h<A.length;h++)p=this[Sg](A[h])}else p=this[Sg](ph.from(A));return o&&o(),p}[Sg](e){return super.write(e)}},Uf=class extends jb{constructor(e,r){e=e||{},e.flush=e.flush||Pg.Z_NO_FLUSH,e.finishFlush=e.finishFlush||Pg.Z_FINISH,super(e,r),this[LU]=Pg.Z_FULL_FLUSH,this[IU]=e.level,this[BU]=e.strategy}params(e,r){if(!this[hy]){if(!this[ti])throw new Error("cannot switch params when binding is closed");if(!this[ti].params)throw new Error("not supported in this implementation");if(this[IU]!==e||this[BU]!==r){this.flush(Pg.Z_SYNC_FLUSH),PU(this[ti],"zlib binding closed");let o=this[ti].flush;this[ti].flush=(a,n)=>{this.flush(a),n()};try{this[ti].params(e,r)}finally{this[ti].flush=o}this[ti]&&(this[IU]=e,this[BU]=r)}}}},SU=class extends Uf{constructor(e){super(e,"Deflate")}},bU=class extends Uf{constructor(e){super(e,"Inflate")}},DU=Symbol("_portable"),xU=class extends Uf{constructor(e){super(e,"Gzip"),this[DU]=e&&!!e.portable}[Sg](e){return this[DU]?(this[DU]=!1,e[9]=255,super[Sg](e)):super[Sg](e)}},kU=class extends Uf{constructor(e){super(e,"Gunzip")}},QU=class extends Uf{constructor(e){super(e,"DeflateRaw")}},FU=class extends Uf{constructor(e){super(e,"InflateRaw")}},RU=class extends Uf{constructor(e){super(e,"Unzip")}},Gb=class extends jb{constructor(e,r){e=e||{},e.flush=e.flush||Pg.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||Pg.BROTLI_OPERATION_FINISH,super(e,r),this[LU]=Pg.BROTLI_OPERATION_FLUSH}},TU=class extends Gb{constructor(e){super(e,"BrotliCompress")}},NU=class extends Gb{constructor(e){super(e,"BrotliDecompress")}};ul.Deflate=SU;ul.Inflate=bU;ul.Gzip=xU;ul.Gunzip=kU;ul.DeflateRaw=QU;ul.InflateRaw=FU;ul.Unzip=RU;typeof vue.BrotliCompress=="function"?(ul.BrotliCompress=TU,ul.BrotliDecompress=NU):ul.BrotliCompress=ul.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var dy=_((V4t,Due)=>{var _at=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;Due.exports=_at!=="win32"?t=>t:t=>t&&t.replace(/\\/g,"/")});var Yb=_((J4t,Pue)=>{"use strict";var Hat=py(),OU=dy(),UU=Symbol("slurp");Pue.exports=class extends Hat{constructor(e,r,o){switch(super(),this.pause(),this.extended=r,this.globalExtended=o,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=OU(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=OU(e.linkpath),this.uname=e.uname,this.gname=e.gname,r&&this[UU](r),o&&this[UU](o,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");let o=this.remain,a=this.blockRemain;return this.remain=Math.max(0,o-r),this.blockRemain=Math.max(0,a-r),this.ignore?!0:o>=r?super.write(e):super.write(e.slice(0,o))}[UU](e,r){for(let o in e)e[o]!==null&&e[o]!==void 0&&!(r&&o==="path")&&(this[o]=o==="path"||o==="linkpath"?OU(e[o]):e[o])}}});var _U=_(Wb=>{"use strict";Wb.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);Wb.code=new Map(Array.from(Wb.name).map(t=>[t[1],t[0]]))});var kue=_((Z4t,xue)=>{"use strict";var qat=(t,e)=>{if(Number.isSafeInteger(t))t<0?Gat(t,e):jat(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},jat=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},Gat=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var o=e.length;o>1;o--){var a=t&255;t=Math.floor(t/256),r?e[o-1]=Sue(a):a===0?e[o-1]=0:(r=!0,e[o-1]=bue(a))}},Yat=t=>{let e=t[0],r=e===128?Kat(t.slice(1,t.length)):e===255?Wat(t):null;if(r===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(r))throw Error("parsed number outside of javascript safe integer range");return r},Wat=t=>{for(var e=t.length,r=0,o=!1,a=e-1;a>-1;a--){var n=t[a],u;o?u=Sue(n):n===0?u=n:(o=!0,u=bue(n)),u!==0&&(r-=u*Math.pow(256,e-a-1))}return r},Kat=t=>{for(var e=t.length,r=0,o=e-1;o>-1;o--){var a=t[o];a!==0&&(r+=a*Math.pow(256,e-o-1))}return r},Sue=t=>(255^t)&255,bue=t=>(255^t)+1&255;xue.exports={encode:qat,parse:Yat}});var yy=_(($4t,Fue)=>{"use strict";var HU=_U(),my=ve("path").posix,Que=kue(),qU=Symbol("slurp"),Al=Symbol("type"),YU=class{constructor(e,r,o,a){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Al]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,o,a):e&&this.set(e)}decode(e,r,o,a){if(r||(r=0),!e||!(e.length>=r+512))throw new Error("need 512 bytes for header");if(this.path=bg(e,r,100),this.mode=hh(e,r+100,8),this.uid=hh(e,r+108,8),this.gid=hh(e,r+116,8),this.size=hh(e,r+124,12),this.mtime=jU(e,r+136,12),this.cksum=hh(e,r+148,12),this[qU](o),this[qU](a,!0),this[Al]=bg(e,r+156,1),this[Al]===""&&(this[Al]="0"),this[Al]==="0"&&this.path.substr(-1)==="/"&&(this[Al]="5"),this[Al]==="5"&&(this.size=0),this.linkpath=bg(e,r+157,100),e.slice(r+257,r+265).toString()==="ustar\x0000")if(this.uname=bg(e,r+265,32),this.gname=bg(e,r+297,32),this.devmaj=hh(e,r+329,8),this.devmin=hh(e,r+337,8),e[r+475]!==0){let u=bg(e,r+345,155);this.path=u+"/"+this.path}else{let u=bg(e,r+345,130);u&&(this.path=u+"/"+this.path),this.atime=jU(e,r+476,12),this.ctime=jU(e,r+488,12)}let n=8*32;for(let u=r;u<r+148;u++)n+=e[u];for(let u=r+156;u<r+512;u++)n+=e[u];this.cksumValid=n===this.cksum,this.cksum===null&&n===8*32&&(this.nullBlock=!0)}[qU](e,r){for(let o in e)e[o]!==null&&e[o]!==void 0&&!(r&&o==="path")&&(this[o]=e[o])}encode(e,r){if(e||(e=this.block=Buffer.alloc(512),r=0),r||(r=0),!(e.length>=r+512))throw new Error("need 512 bytes for header");let o=this.ctime||this.atime?130:155,a=Vat(this.path||"",o),n=a[0],u=a[1];this.needPax=a[2],this.needPax=xg(e,r,100,n)||this.needPax,this.needPax=gh(e,r+100,8,this.mode)||this.needPax,this.needPax=gh(e,r+108,8,this.uid)||this.needPax,this.needPax=gh(e,r+116,8,this.gid)||this.needPax,this.needPax=gh(e,r+124,12,this.size)||this.needPax,this.needPax=GU(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[Al].charCodeAt(0),this.needPax=xg(e,r+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",r+257,8),this.needPax=xg(e,r+265,32,this.uname)||this.needPax,this.needPax=xg(e,r+297,32,this.gname)||this.needPax,this.needPax=gh(e,r+329,8,this.devmaj)||this.needPax,this.needPax=gh(e,r+337,8,this.devmin)||this.needPax,this.needPax=xg(e,r+345,o,u)||this.needPax,e[r+475]!==0?this.needPax=xg(e,r+345,155,u)||this.needPax:(this.needPax=xg(e,r+345,130,u)||this.needPax,this.needPax=GU(e,r+476,12,this.atime)||this.needPax,this.needPax=GU(e,r+488,12,this.ctime)||this.needPax);let A=8*32;for(let p=r;p<r+148;p++)A+=e[p];for(let p=r+156;p<r+512;p++)A+=e[p];return this.cksum=A,gh(e,r+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let r in e)e[r]!==null&&e[r]!==void 0&&(this[r]=e[r])}get type(){return HU.name.get(this[Al])||this[Al]}get typeKey(){return this[Al]}set type(e){HU.code.has(e)?this[Al]=HU.code.get(e):this[Al]=e}},Vat=(t,e)=>{let o=t,a="",n,u=my.parse(t).root||".";if(Buffer.byteLength(o)<100)n=[o,a,!1];else{a=my.dirname(o),o=my.basename(o);do Buffer.byteLength(o)<=100&&Buffer.byteLength(a)<=e?n=[o,a,!1]:Buffer.byteLength(o)>100&&Buffer.byteLength(a)<=e?n=[o.substr(0,99),a,!0]:(o=my.join(my.basename(a),o),a=my.dirname(a));while(a!==u&&!n);n||(n=[t.substr(0,99),"",!0])}return n},bg=(t,e,r)=>t.slice(e,e+r).toString("utf8").replace(/\0.*/,""),jU=(t,e,r)=>zat(hh(t,e,r)),zat=t=>t===null?null:new Date(t*1e3),hh=(t,e,r)=>t[e]&128?Que.parse(t.slice(e,e+r)):Xat(t,e,r),Jat=t=>isNaN(t)?null:t,Xat=(t,e,r)=>Jat(parseInt(t.slice(e,e+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),Zat={12:8589934591,8:2097151},gh=(t,e,r,o)=>o===null?!1:o>Zat[r]||o<0?(Que.encode(o,t.slice(e,e+r)),!0):($at(t,e,r,o),!1),$at=(t,e,r,o)=>t.write(elt(o,r),e,r,"ascii"),elt=(t,e)=>tlt(Math.floor(t).toString(8),e),tlt=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",GU=(t,e,r,o)=>o===null?!1:gh(t,e,r,o.getTime()/1e3),rlt=new Array(156).join("\0"),xg=(t,e,r,o)=>o===null?!1:(t.write(o+rlt,e,r,"utf8"),o.length!==Buffer.byteLength(o)||o.length>r);Fue.exports=YU});var Kb=_((eUt,Rue)=>{"use strict";var nlt=yy(),ilt=ve("path"),b1=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e==="")return null;let r=Buffer.byteLength(e),o=512*Math.ceil(1+r/512),a=Buffer.allocUnsafe(o);for(let n=0;n<512;n++)a[n]=0;new nlt({path:("PaxHeader/"+ilt.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(a),a.write(e,512,r,"utf8");for(let n=r+512;n<a.length;n++)a[n]=0;return a}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(e){if(this[e]===null||this[e]===void 0)return"";let r=this[e]instanceof Date?this[e].getTime()/1e3:this[e],o=" "+(e==="dev"||e==="ino"||e==="nlink"?"SCHILY.":"")+e+"="+r+` -`,a=Buffer.byteLength(o),n=Math.floor(Math.log(a)/Math.log(10))+1;return a+n>=Math.pow(10,n)&&(n+=1),n+a+o}};b1.parse=(t,e,r)=>new b1(slt(olt(t),e),r);var slt=(t,e)=>e?Object.keys(t).reduce((r,o)=>(r[o]=t[o],r),e):t,olt=t=>t.replace(/\n$/,"").split(` -`).reduce(alt,Object.create(null)),alt=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let o=e.split("="),a=o.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!a)return t;let n=o.join("=");return t[a]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(a)?new Date(n*1e3):/^[0-9]+$/.test(n)?+n:n,t};Rue.exports=b1});var Ey=_((tUt,Tue)=>{Tue.exports=t=>{let e=t.length-1,r=-1;for(;e>-1&&t.charAt(e)==="/";)r=e,e--;return r===-1?t:t.slice(0,r)}});var Vb=_((rUt,Nue)=>{"use strict";Nue.exports=t=>class extends t{warn(e,r,o={}){this.file&&(o.file=this.file),this.cwd&&(o.cwd=this.cwd),o.code=r instanceof Error&&r.code||e,o.tarCode=e,!this.strict&&o.recoverable!==!1?(r instanceof Error&&(o=Object.assign(r,o),r=r.message),this.emit("warn",o.tarCode,r,o)):r instanceof Error?this.emit("error",Object.assign(r,o)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),o))}}});var KU=_((iUt,Lue)=>{"use strict";var zb=["|","<",">","?",":"],WU=zb.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),llt=new Map(zb.map((t,e)=>[t,WU[e]])),clt=new Map(WU.map((t,e)=>[t,zb[e]]));Lue.exports={encode:t=>zb.reduce((e,r)=>e.split(r).join(llt.get(r)),t),decode:t=>WU.reduce((e,r)=>e.split(r).join(clt.get(r)),t)}});var VU=_((sUt,Oue)=>{var{isAbsolute:ult,parse:Mue}=ve("path").win32;Oue.exports=t=>{let e="",r=Mue(t);for(;ult(t)||r.root;){let o=t.charAt(0)==="/"&&t.slice(0,4)!=="//?/"?"/":r.root;t=t.substr(o.length),e+=o,r=Mue(t)}return[e,t]}});var _ue=_((oUt,Uue)=>{"use strict";Uue.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&-19),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var i3=_((cUt,eAe)=>{"use strict";var Kue=py(),Vue=Kb(),zue=yy(),oA=ve("fs"),Hue=ve("path"),sA=dy(),Alt=Ey(),Jue=(t,e)=>e?(t=sA(t).replace(/^\.(\/|$)/,""),Alt(e)+"/"+t):sA(t),flt=16*1024*1024,que=Symbol("process"),jue=Symbol("file"),Gue=Symbol("directory"),JU=Symbol("symlink"),Yue=Symbol("hardlink"),x1=Symbol("header"),Jb=Symbol("read"),XU=Symbol("lstat"),Xb=Symbol("onlstat"),ZU=Symbol("onread"),$U=Symbol("onreadlink"),e3=Symbol("openfile"),t3=Symbol("onopenfile"),dh=Symbol("close"),Zb=Symbol("mode"),r3=Symbol("awaitDrain"),zU=Symbol("ondrain"),aA=Symbol("prefix"),Wue=Symbol("hadError"),Xue=Vb(),plt=KU(),Zue=VU(),$ue=_ue(),$b=Xue(class extends Kue{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=sA(e),this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||flt,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=sA(r.cwd||process.cwd()),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,this.prefix=r.prefix?sA(r.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=Zue(this.path);a&&(this.path=n,o=a)}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=plt.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=sA(r.absolute||Hue.resolve(this.cwd,e)),this.path===""&&(this.path="./"),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.statCache.has(this.absolute)?this[Xb](this.statCache.get(this.absolute)):this[XU]()}emit(e,...r){return e==="error"&&(this[Wue]=!0),super.emit(e,...r)}[XU](){oA.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[Xb](r)})}[Xb](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=glt(e),this.emit("stat",e),this[que]()}[que](){switch(this.type){case"File":return this[jue]();case"Directory":return this[Gue]();case"SymbolicLink":return this[JU]();default:return this.end()}}[Zb](e){return $ue(e,this.type==="Directory",this.portable)}[aA](e){return Jue(e,this.prefix)}[x1](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new zue({path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,mode:this[Zb](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new Vue({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[Gue](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[x1](),this.end()}[JU](){oA.readlink(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[$U](r)})}[$U](e){this.linkpath=sA(e),this[x1](),this.end()}[Yue](e){this.type="Link",this.linkpath=sA(Hue.relative(this.cwd,e)),this.stat.size=0,this[x1](),this.end()}[jue](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[Yue](r)}this.linkCache.set(e,this.absolute)}if(this[x1](),this.stat.size===0)return this.end();this[e3]()}[e3](){oA.open(this.absolute,"r",(e,r)=>{if(e)return this.emit("error",e);this[t3](r)})}[t3](e){if(this.fd=e,this[Wue])return this[dh]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let r=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(r),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[Jb]()}[Jb](){let{fd:e,buf:r,offset:o,length:a,pos:n}=this;oA.read(e,r,o,a,n,(u,A)=>{if(u)return this[dh](()=>this.emit("error",u));this[ZU](A)})}[dh](e){oA.close(this.fd,e)}[ZU](e){if(e<=0&&this.remain>0){let a=new Error("encountered unexpected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[dh](()=>this.emit("error",a))}if(e>this.remain){let a=new Error("did not encounter expected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[dh](()=>this.emit("error",a))}if(e===this.remain)for(let a=e;a<this.length&&e<this.blockRemain;a++)this.buf[a+this.offset]=0,e++,this.remain++;let r=this.offset===0&&e===this.buf.length?this.buf:this.buf.slice(this.offset,this.offset+e);this.write(r)?this[zU]():this[r3](()=>this[zU]())}[r3](e){this.once("drain",e)}write(e){if(this.blockRemain<e.length){let r=new Error("writing more data than expected");return r.path=this.absolute,this.emit("error",r)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.length,super.write(e)}[zU](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[dh](e=>e?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[Jb]()}}),n3=class extends $b{[XU](){this[Xb](oA.lstatSync(this.absolute))}[JU](){this[$U](oA.readlinkSync(this.absolute))}[e3](){this[t3](oA.openSync(this.absolute,"r"))}[Jb](){let e=!0;try{let{fd:r,buf:o,offset:a,length:n,pos:u}=this,A=oA.readSync(r,o,a,n,u);this[ZU](A),e=!1}finally{if(e)try{this[dh](()=>{})}catch{}}}[r3](e){e()}[dh](e){oA.closeSync(this.fd),e()}},hlt=Xue(class extends Kue{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=r.prefix||null,this.path=sA(e.path),this.mode=this[Zb](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=sA(e.linkpath),typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=Zue(this.path);a&&(this.path=n,o=a)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new zue({path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.header.encode()&&!this.noPax&&super.write(new Vue({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[aA](e){return Jue(e,this.prefix)}[Zb](e){return $ue(e,this.type==="Directory",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});$b.Sync=n3;$b.Tar=hlt;var glt=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported";eAe.exports=$b});var lx=_((AUt,aAe)=>{"use strict";var ox=class{constructor(e,r){this.path=e||"./",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},dlt=py(),mlt=MU(),ylt=Yb(),p3=i3(),Elt=p3.Sync,Clt=p3.Tar,wlt=cP(),tAe=Buffer.alloc(1024),rx=Symbol("onStat"),ex=Symbol("ended"),lA=Symbol("queue"),Cy=Symbol("current"),kg=Symbol("process"),tx=Symbol("processing"),rAe=Symbol("processJob"),cA=Symbol("jobs"),s3=Symbol("jobDone"),nx=Symbol("addFSEntry"),nAe=Symbol("addTarEntry"),c3=Symbol("stat"),u3=Symbol("readdir"),ix=Symbol("onreaddir"),sx=Symbol("pipe"),iAe=Symbol("entry"),o3=Symbol("entryOpt"),A3=Symbol("writeEntryClass"),oAe=Symbol("write"),a3=Symbol("ondrain"),ax=ve("fs"),sAe=ve("path"),Ilt=Vb(),l3=dy(),h3=Ilt(class extends dlt{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=l3(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[A3]=p3,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new mlt.Gzip(e.gzip),this.zip.on("data",r=>super.write(r)),this.zip.on("end",r=>super.end()),this.zip.on("drain",r=>this[a3]()),this.on("resume",r=>this.zip.resume())):this.on("drain",this[a3]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:r=>!0,this[lA]=new wlt,this[cA]=0,this.jobs=+e.jobs||4,this[tx]=!1,this[ex]=!1}[oAe](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[ex]=!0,this[kg](),this}write(e){if(this[ex])throw new Error("write after end");return e instanceof ylt?this[nAe](e):this[nx](e),this.flowing}[nAe](e){let r=l3(sAe.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let o=new ox(e.path,r,!1);o.entry=new Clt(e,this[o3](o)),o.entry.on("end",a=>this[s3](o)),this[cA]+=1,this[lA].push(o)}this[kg]()}[nx](e){let r=l3(sAe.resolve(this.cwd,e));this[lA].push(new ox(e,r)),this[kg]()}[c3](e){e.pending=!0,this[cA]+=1;let r=this.follow?"stat":"lstat";ax[r](e.absolute,(o,a)=>{e.pending=!1,this[cA]-=1,o?this.emit("error",o):this[rx](e,a)})}[rx](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[kg]()}[u3](e){e.pending=!0,this[cA]+=1,ax.readdir(e.absolute,(r,o)=>{if(e.pending=!1,this[cA]-=1,r)return this.emit("error",r);this[ix](e,o)})}[ix](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[kg]()}[kg](){if(!this[tx]){this[tx]=!0;for(let e=this[lA].head;e!==null&&this[cA]<this.jobs;e=e.next)if(this[rAe](e.value),e.value.ignore){let r=e.next;this[lA].removeNode(e),e.next=r}this[tx]=!1,this[ex]&&!this[lA].length&&this[cA]===0&&(this.zip?this.zip.end(tAe):(super.write(tAe),super.end()))}}get[Cy](){return this[lA]&&this[lA].head&&this[lA].head.value}[s3](e){this[lA].shift(),this[cA]-=1,this[kg]()}[rAe](e){if(!e.pending){if(e.entry){e===this[Cy]&&!e.piped&&this[sx](e);return}if(e.stat||(this.statCache.has(e.absolute)?this[rx](e,this.statCache.get(e.absolute)):this[c3](e)),!!e.stat&&!e.ignore&&!(!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir&&(this.readdirCache.has(e.absolute)?this[ix](e,this.readdirCache.get(e.absolute)):this[u3](e),!e.readdir))){if(e.entry=this[iAe](e),!e.entry){e.ignore=!0;return}e===this[Cy]&&!e.piped&&this[sx](e)}}}[o3](e){return{onwarn:(r,o,a)=>this.warn(r,o,a),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[iAe](e){this[cA]+=1;try{return new this[A3](e.path,this[o3](e)).on("end",()=>this[s3](e)).on("error",r=>this.emit("error",r))}catch(r){this.emit("error",r)}}[a3](){this[Cy]&&this[Cy].entry&&this[Cy].entry.resume()}[sx](e){e.piped=!0,e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[nx](u+a)});let r=e.entry,o=this.zip;o?r.on("data",a=>{o.write(a)||r.pause()}):r.on("data",a=>{super.write(a)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),f3=class extends h3{constructor(e){super(e),this[A3]=Elt}pause(){}resume(){}[c3](e){let r=this.follow?"statSync":"lstatSync";this[rx](e,ax[r](e.absolute))}[u3](e,r){this[ix](e,ax.readdirSync(e.absolute))}[sx](e){let r=e.entry,o=this.zip;e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[nx](u+a)}),o?r.on("data",a=>{o.write(a)}):r.on("data",a=>{super[oAe](a)})}};h3.Sync=f3;aAe.exports=h3});var by=_(Q1=>{"use strict";var Blt=py(),vlt=ve("events").EventEmitter,Ra=ve("fs"),m3=Ra.writev;if(!m3){let t=process.binding("fs"),e=t.FSReqWrap||t.FSReqCallback;m3=(r,o,a,n)=>{let u=(p,h)=>n(p,h,o),A=new e;A.oncomplete=u,t.writeBuffers(r,o,a,A)}}var Py=Symbol("_autoClose"),Kc=Symbol("_close"),k1=Symbol("_ended"),Gn=Symbol("_fd"),lAe=Symbol("_finished"),yh=Symbol("_flags"),g3=Symbol("_flush"),y3=Symbol("_handleChunk"),E3=Symbol("_makeBuf"),px=Symbol("_mode"),cx=Symbol("_needDrain"),vy=Symbol("_onerror"),Sy=Symbol("_onopen"),d3=Symbol("_onread"),Iy=Symbol("_onwrite"),Eh=Symbol("_open"),_f=Symbol("_path"),Qg=Symbol("_pos"),uA=Symbol("_queue"),By=Symbol("_read"),cAe=Symbol("_readSize"),mh=Symbol("_reading"),ux=Symbol("_remain"),uAe=Symbol("_size"),Ax=Symbol("_write"),wy=Symbol("_writing"),fx=Symbol("_defaultFlag"),Dy=Symbol("_errored"),hx=class extends Blt{constructor(e,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[Dy]=!1,this[Gn]=typeof r.fd=="number"?r.fd:null,this[_f]=e,this[cAe]=r.readSize||16*1024*1024,this[mh]=!1,this[uAe]=typeof r.size=="number"?r.size:1/0,this[ux]=this[uAe],this[Py]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[Gn]=="number"?this[By]():this[Eh]()}get fd(){return this[Gn]}get path(){return this[_f]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Eh](){Ra.open(this[_f],"r",(e,r)=>this[Sy](e,r))}[Sy](e,r){e?this[vy](e):(this[Gn]=r,this.emit("open",r),this[By]())}[E3](){return Buffer.allocUnsafe(Math.min(this[cAe],this[ux]))}[By](){if(!this[mh]){this[mh]=!0;let e=this[E3]();if(e.length===0)return process.nextTick(()=>this[d3](null,0,e));Ra.read(this[Gn],e,0,e.length,null,(r,o,a)=>this[d3](r,o,a))}}[d3](e,r,o){this[mh]=!1,e?this[vy](e):this[y3](r,o)&&this[By]()}[Kc](){if(this[Py]&&typeof this[Gn]=="number"){let e=this[Gn];this[Gn]=null,Ra.close(e,r=>r?this.emit("error",r):this.emit("close"))}}[vy](e){this[mh]=!0,this[Kc](),this.emit("error",e)}[y3](e,r){let o=!1;return this[ux]-=e,e>0&&(o=super.write(e<r.length?r.slice(0,e):r)),(e===0||this[ux]<=0)&&(o=!1,this[Kc](),super.end()),o}emit(e,r){switch(e){case"prefinish":case"finish":break;case"drain":typeof this[Gn]=="number"&&this[By]();break;case"error":return this[Dy]?void 0:(this[Dy]=!0,super.emit(e,r));default:return super.emit(e,r)}}},C3=class extends hx{[Eh](){let e=!0;try{this[Sy](null,Ra.openSync(this[_f],"r")),e=!1}finally{e&&this[Kc]()}}[By](){let e=!0;try{if(!this[mh]){this[mh]=!0;do{let r=this[E3](),o=r.length===0?0:Ra.readSync(this[Gn],r,0,r.length,null);if(!this[y3](o,r))break}while(!0);this[mh]=!1}e=!1}finally{e&&this[Kc]()}}[Kc](){if(this[Py]&&typeof this[Gn]=="number"){let e=this[Gn];this[Gn]=null,Ra.closeSync(e),this.emit("close")}}},gx=class extends vlt{constructor(e,r){r=r||{},super(r),this.readable=!1,this.writable=!0,this[Dy]=!1,this[wy]=!1,this[k1]=!1,this[cx]=!1,this[uA]=[],this[_f]=e,this[Gn]=typeof r.fd=="number"?r.fd:null,this[px]=r.mode===void 0?438:r.mode,this[Qg]=typeof r.start=="number"?r.start:null,this[Py]=typeof r.autoClose=="boolean"?r.autoClose:!0;let o=this[Qg]!==null?"r+":"w";this[fx]=r.flags===void 0,this[yh]=this[fx]?o:r.flags,this[Gn]===null&&this[Eh]()}emit(e,r){if(e==="error"){if(this[Dy])return;this[Dy]=!0}return super.emit(e,r)}get fd(){return this[Gn]}get path(){return this[_f]}[vy](e){this[Kc](),this[wy]=!0,this.emit("error",e)}[Eh](){Ra.open(this[_f],this[yh],this[px],(e,r)=>this[Sy](e,r))}[Sy](e,r){this[fx]&&this[yh]==="r+"&&e&&e.code==="ENOENT"?(this[yh]="w",this[Eh]()):e?this[vy](e):(this[Gn]=r,this.emit("open",r),this[g3]())}end(e,r){return e&&this.write(e,r),this[k1]=!0,!this[wy]&&!this[uA].length&&typeof this[Gn]=="number"&&this[Iy](null,0),this}write(e,r){return typeof e=="string"&&(e=Buffer.from(e,r)),this[k1]?(this.emit("error",new Error("write() after end()")),!1):this[Gn]===null||this[wy]||this[uA].length?(this[uA].push(e),this[cx]=!0,!1):(this[wy]=!0,this[Ax](e),!0)}[Ax](e){Ra.write(this[Gn],e,0,e.length,this[Qg],(r,o)=>this[Iy](r,o))}[Iy](e,r){e?this[vy](e):(this[Qg]!==null&&(this[Qg]+=r),this[uA].length?this[g3]():(this[wy]=!1,this[k1]&&!this[lAe]?(this[lAe]=!0,this[Kc](),this.emit("finish")):this[cx]&&(this[cx]=!1,this.emit("drain"))))}[g3](){if(this[uA].length===0)this[k1]&&this[Iy](null,0);else if(this[uA].length===1)this[Ax](this[uA].pop());else{let e=this[uA];this[uA]=[],m3(this[Gn],e,this[Qg],(r,o)=>this[Iy](r,o))}}[Kc](){if(this[Py]&&typeof this[Gn]=="number"){let e=this[Gn];this[Gn]=null,Ra.close(e,r=>r?this.emit("error",r):this.emit("close"))}}},w3=class extends gx{[Eh](){let e;if(this[fx]&&this[yh]==="r+")try{e=Ra.openSync(this[_f],this[yh],this[px])}catch(r){if(r.code==="ENOENT")return this[yh]="w",this[Eh]();throw r}else e=Ra.openSync(this[_f],this[yh],this[px]);this[Sy](null,e)}[Kc](){if(this[Py]&&typeof this[Gn]=="number"){let e=this[Gn];this[Gn]=null,Ra.closeSync(e),this.emit("close")}}[Ax](e){let r=!0;try{this[Iy](null,Ra.writeSync(this[Gn],e,0,e.length,this[Qg])),r=!1}finally{if(r)try{this[Kc]()}catch{}}}};Q1.ReadStream=hx;Q1.ReadStreamSync=C3;Q1.WriteStream=gx;Q1.WriteStreamSync=w3});var Ix=_((hUt,mAe)=>{"use strict";var Dlt=Vb(),Plt=yy(),Slt=ve("events"),blt=cP(),xlt=1024*1024,klt=Yb(),AAe=Kb(),Qlt=MU(),I3=Buffer.from([31,139]),Xl=Symbol("state"),Fg=Symbol("writeEntry"),Hf=Symbol("readEntry"),B3=Symbol("nextEntry"),fAe=Symbol("processEntry"),Zl=Symbol("extendedHeader"),F1=Symbol("globalExtendedHeader"),Ch=Symbol("meta"),pAe=Symbol("emitMeta"),fi=Symbol("buffer"),qf=Symbol("queue"),Rg=Symbol("ended"),hAe=Symbol("emittedEnd"),Tg=Symbol("emit"),Ta=Symbol("unzip"),dx=Symbol("consumeChunk"),mx=Symbol("consumeChunkSub"),v3=Symbol("consumeBody"),gAe=Symbol("consumeMeta"),dAe=Symbol("consumeHeader"),yx=Symbol("consuming"),D3=Symbol("bufferConcat"),P3=Symbol("maybeEnd"),R1=Symbol("writing"),wh=Symbol("aborted"),Ex=Symbol("onDone"),Ng=Symbol("sawValidEntry"),Cx=Symbol("sawNullBlock"),wx=Symbol("sawEOF"),Flt=t=>!0;mAe.exports=Dlt(class extends Slt{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Ng]=null,this.on(Ex,r=>{(this[Xl]==="begin"||this[Ng]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(Ex,e.ondone):this.on(Ex,r=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||xlt,this.filter=typeof e.filter=="function"?e.filter:Flt,this.writable=!0,this.readable=!1,this[qf]=new blt,this[fi]=null,this[Hf]=null,this[Fg]=null,this[Xl]="begin",this[Ch]="",this[Zl]=null,this[F1]=null,this[Rg]=!1,this[Ta]=null,this[wh]=!1,this[Cx]=!1,this[wx]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[dAe](e,r){this[Ng]===null&&(this[Ng]=!1);let o;try{o=new Plt(e,r,this[Zl],this[F1])}catch(a){return this.warn("TAR_ENTRY_INVALID",a)}if(o.nullBlock)this[Cx]?(this[wx]=!0,this[Xl]==="begin"&&(this[Xl]="header"),this[Tg]("eof")):(this[Cx]=!0,this[Tg]("nullBlock"));else if(this[Cx]=!1,!o.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:o});else if(!o.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:o});else{let a=o.type;if(/^(Symbolic)?Link$/.test(a)&&!o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:o});else if(!/^(Symbolic)?Link$/.test(a)&&o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:o});else{let n=this[Fg]=new klt(o,this[Zl],this[F1]);if(!this[Ng])if(n.remain){let u=()=>{n.invalid||(this[Ng]=!0)};n.on("end",u)}else this[Ng]=!0;n.meta?n.size>this.maxMetaEntrySize?(n.ignore=!0,this[Tg]("ignoredEntry",n),this[Xl]="ignore",n.resume()):n.size>0&&(this[Ch]="",n.on("data",u=>this[Ch]+=u),this[Xl]="meta"):(this[Zl]=null,n.ignore=n.ignore||!this.filter(n.path,n),n.ignore?(this[Tg]("ignoredEntry",n),this[Xl]=n.remain?"ignore":"header",n.resume()):(n.remain?this[Xl]="body":(this[Xl]="header",n.end()),this[Hf]?this[qf].push(n):(this[qf].push(n),this[B3]())))}}}[fAe](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[Hf]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",o=>this[B3]()),r=!1)):(this[Hf]=null,r=!1),r}[B3](){do;while(this[fAe](this[qf].shift()));if(!this[qf].length){let e=this[Hf];!e||e.flowing||e.size===e.remain?this[R1]||this.emit("drain"):e.once("drain",o=>this.emit("drain"))}}[v3](e,r){let o=this[Fg],a=o.blockRemain,n=a>=e.length&&r===0?e:e.slice(r,r+a);return o.write(n),o.blockRemain||(this[Xl]="header",this[Fg]=null,o.end()),n.length}[gAe](e,r){let o=this[Fg],a=this[v3](e,r);return this[Fg]||this[pAe](o),a}[Tg](e,r,o){!this[qf].length&&!this[Hf]?this.emit(e,r,o):this[qf].push([e,r,o])}[pAe](e){switch(this[Tg]("meta",this[Ch]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[Zl]=AAe.parse(this[Ch],this[Zl],!1);break;case"GlobalExtendedHeader":this[F1]=AAe.parse(this[Ch],this[F1],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[Zl]=this[Zl]||Object.create(null),this[Zl].path=this[Ch].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[Zl]=this[Zl]||Object.create(null),this[Zl].linkpath=this[Ch].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[wh]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[wh])return;if(this[Ta]===null&&e){if(this[fi]&&(e=Buffer.concat([this[fi],e]),this[fi]=null),e.length<I3.length)return this[fi]=e,!0;for(let o=0;this[Ta]===null&&o<I3.length;o++)e[o]!==I3[o]&&(this[Ta]=!1);if(this[Ta]===null){let o=this[Rg];this[Rg]=!1,this[Ta]=new Qlt.Unzip,this[Ta].on("data",n=>this[dx](n)),this[Ta].on("error",n=>this.abort(n)),this[Ta].on("end",n=>{this[Rg]=!0,this[dx]()}),this[R1]=!0;let a=this[Ta][o?"end":"write"](e);return this[R1]=!1,a}}this[R1]=!0,this[Ta]?this[Ta].write(e):this[dx](e),this[R1]=!1;let r=this[qf].length?!1:this[Hf]?this[Hf].flowing:!0;return!r&&!this[qf].length&&this[Hf].once("drain",o=>this.emit("drain")),r}[D3](e){e&&!this[wh]&&(this[fi]=this[fi]?Buffer.concat([this[fi],e]):e)}[P3](){if(this[Rg]&&!this[hAe]&&!this[wh]&&!this[yx]){this[hAe]=!0;let e=this[Fg];if(e&&e.blockRemain){let r=this[fi]?this[fi].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[fi]&&e.write(this[fi]),e.end()}this[Tg](Ex)}}[dx](e){if(this[yx])this[D3](e);else if(!e&&!this[fi])this[P3]();else{if(this[yx]=!0,this[fi]){this[D3](e);let r=this[fi];this[fi]=null,this[mx](r)}else this[mx](e);for(;this[fi]&&this[fi].length>=512&&!this[wh]&&!this[wx];){let r=this[fi];this[fi]=null,this[mx](r)}this[yx]=!1}(!this[fi]||this[Rg])&&this[P3]()}[mx](e){let r=0,o=e.length;for(;r+512<=o&&!this[wh]&&!this[wx];)switch(this[Xl]){case"begin":case"header":this[dAe](e,r),r+=512;break;case"ignore":case"body":r+=this[v3](e,r);break;case"meta":r+=this[gAe](e,r);break;default:throw new Error("invalid state: "+this[Xl])}r<o&&(this[fi]?this[fi]=Buffer.concat([e.slice(r),this[fi]]):this[fi]=e.slice(r))}end(e){this[wh]||(this[Ta]?this[Ta].end(e):(this[Rg]=!0,this.write(e)))}})});var Bx=_((gUt,wAe)=>{"use strict";var Rlt=Ay(),EAe=Ix(),xy=ve("fs"),Tlt=by(),yAe=ve("path"),S3=Ey();wAe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=Rlt(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&Llt(o,e),o.noResume||Nlt(o),o.file&&o.sync?Mlt(o):o.file?Olt(o,r):CAe(o)};var Nlt=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},Llt=(t,e)=>{let r=new Map(e.map(n=>[S3(n),!0])),o=t.filter,a=(n,u)=>{let A=u||yAe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(yAe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(S3(n)):n=>a(S3(n))},Mlt=t=>{let e=CAe(t),r=t.file,o=!0,a;try{let n=xy.statSync(r),u=t.maxReadSize||16*1024*1024;if(n.size<u)e.end(xy.readFileSync(r));else{let A=0,p=Buffer.allocUnsafe(u);for(a=xy.openSync(r,"r");A<n.size;){let h=xy.readSync(a,p,0,u,A);A+=h,e.write(p.slice(0,h))}e.end()}o=!1}finally{if(o&&a)try{xy.closeSync(a)}catch{}}},Olt=(t,e)=>{let r=new EAe(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("end",u),xy.stat(a,(p,h)=>{if(p)A(p);else{let E=new Tlt.ReadStream(a,{readSize:o,size:h.size});E.on("error",A),E.pipe(r)}})});return e?n.then(e,e):n},CAe=t=>new EAe(t)});var SAe=_((dUt,PAe)=>{"use strict";var Ult=Ay(),vx=lx(),IAe=by(),BAe=Bx(),vAe=ve("path");PAe.exports=(t,e,r)=>{if(typeof e=="function"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let o=Ult(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return o.file&&o.sync?_lt(o,e):o.file?Hlt(o,e,r):o.sync?qlt(o,e):jlt(o,e)};var _lt=(t,e)=>{let r=new vx.Sync(t),o=new IAe.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(o),DAe(r,e)},Hlt=(t,e,r)=>{let o=new vx(t),a=new IAe.WriteStream(t.file,{mode:t.mode||438});o.pipe(a);let n=new Promise((u,A)=>{a.on("error",A),a.on("close",u),o.on("error",A)});return b3(o,e),r?n.then(r,r):n},DAe=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?BAe({file:vAe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},b3=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return BAe({file:vAe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>b3(t,e));t.add(r)}t.end()},qlt=(t,e)=>{let r=new vx.Sync(t);return DAe(r,e),r},jlt=(t,e)=>{let r=new vx(t);return b3(r,e),r}});var x3=_((mUt,TAe)=>{"use strict";var Glt=Ay(),bAe=lx(),fl=ve("fs"),xAe=by(),kAe=Bx(),QAe=ve("path"),FAe=yy();TAe.exports=(t,e,r)=>{let o=Glt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),o.sync?Ylt(o,e):Klt(o,e,r)};var Ylt=(t,e)=>{let r=new bAe.Sync(t),o=!0,a,n;try{try{a=fl.openSync(t.file,"r+")}catch(p){if(p.code==="ENOENT")a=fl.openSync(t.file,"w+");else throw p}let u=fl.fstatSync(a),A=Buffer.alloc(512);e:for(n=0;n<u.size;n+=512){for(let E=0,I=0;E<512;E+=I){if(I=fl.readSync(a,A,E,A.length-E,n+E),n===0&&A[0]===31&&A[1]===139)throw new Error("cannot append to compressed archives");if(!I)break e}let p=new FAe(A);if(!p.cksumValid)break;let h=512*Math.ceil(p.size/512);if(n+h+512>u.size)break;n+=h,t.mtimeCache&&t.mtimeCache.set(p.path,p.mtime)}o=!1,Wlt(t,r,n,a,e)}finally{if(o)try{fl.closeSync(a)}catch{}}},Wlt=(t,e,r,o,a)=>{let n=new xAe.WriteStreamSync(t.file,{fd:o,start:r});e.pipe(n),Vlt(e,a)},Klt=(t,e,r)=>{e=Array.from(e);let o=new bAe(t),a=(u,A,p)=>{let h=(C,R)=>{C?fl.close(u,L=>p(C)):p(null,R)},E=0;if(A===0)return h(null,0);let I=0,v=Buffer.alloc(512),x=(C,R)=>{if(C)return h(C);if(I+=R,I<512&&R)return fl.read(u,v,I,v.length-I,E+I,x);if(E===0&&v[0]===31&&v[1]===139)return h(new Error("cannot append to compressed archives"));if(I<512)return h(null,E);let L=new FAe(v);if(!L.cksumValid)return h(null,E);let U=512*Math.ceil(L.size/512);if(E+U+512>A||(E+=U+512,E>=A))return h(null,E);t.mtimeCache&&t.mtimeCache.set(L.path,L.mtime),I=0,fl.read(u,v,0,512,E,x)};fl.read(u,v,0,512,E,x)},n=new Promise((u,A)=>{o.on("error",A);let p="r+",h=(E,I)=>{if(E&&E.code==="ENOENT"&&p==="r+")return p="w+",fl.open(t.file,p,h);if(E)return A(E);fl.fstat(I,(v,x)=>{if(v)return fl.close(I,()=>A(v));a(I,x.size,(C,R)=>{if(C)return A(C);let L=new xAe.WriteStream(t.file,{fd:I,start:R});o.pipe(L),L.on("error",A),L.on("close",u),RAe(o,e)})})};fl.open(t.file,p,h)});return r?n.then(r,r):n},Vlt=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?kAe({file:QAe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},RAe=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return kAe({file:QAe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>RAe(t,e));t.add(r)}t.end()}});var LAe=_((yUt,NAe)=>{"use strict";var zlt=Ay(),Jlt=x3();NAe.exports=(t,e,r)=>{let o=zlt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),Xlt(o),Jlt(o,e,r)};var Xlt=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,o)=>e(r,o)&&!(t.mtimeCache.get(r)>o.mtime):(r,o)=>!(t.mtimeCache.get(r)>o.mtime)}});var UAe=_((EUt,OAe)=>{var{promisify:MAe}=ve("util"),Ih=ve("fs"),Zlt=t=>{if(!t)t={mode:511,fs:Ih};else if(typeof t=="object")t={mode:511,fs:Ih,...t};else if(typeof t=="number")t={mode:t,fs:Ih};else if(typeof t=="string")t={mode:parseInt(t,8),fs:Ih};else throw new TypeError("invalid options argument");return t.mkdir=t.mkdir||t.fs.mkdir||Ih.mkdir,t.mkdirAsync=MAe(t.mkdir),t.stat=t.stat||t.fs.stat||Ih.stat,t.statAsync=MAe(t.stat),t.statSync=t.statSync||t.fs.statSync||Ih.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||Ih.mkdirSync,t};OAe.exports=Zlt});var HAe=_((CUt,_Ae)=>{var $lt=process.platform,{resolve:ect,parse:tct}=ve("path"),rct=t=>{if(/\0/.test(t))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:t,code:"ERR_INVALID_ARG_VALUE"});if(t=ect(t),$lt==="win32"){let e=/[*|"<>?:]/,{root:r}=tct(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error("Illegal characters in path."),{path:t,code:"EINVAL"})}return t};_Ae.exports=rct});var WAe=_((wUt,YAe)=>{var{dirname:qAe}=ve("path"),jAe=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(o=>o.isDirectory()?r:void 0,o=>o.code==="ENOENT"?jAe(t,qAe(e),e):void 0),GAe=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(o){return o.code==="ENOENT"?GAe(t,qAe(e),e):void 0}};YAe.exports={findMade:jAe,findMadeSync:GAe}});var F3=_((IUt,VAe)=>{var{dirname:KAe}=ve("path"),k3=(t,e,r)=>{e.recursive=!1;let o=KAe(t);return o===t?e.mkdirAsync(t,e).catch(a=>{if(a.code!=="EISDIR")throw a}):e.mkdirAsync(t,e).then(()=>r||t,a=>{if(a.code==="ENOENT")return k3(o,e).then(n=>k3(t,e,n));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;return e.statAsync(t).then(n=>{if(n.isDirectory())return r;throw a},()=>{throw a})})},Q3=(t,e,r)=>{let o=KAe(t);if(e.recursive=!1,o===t)try{return e.mkdirSync(t,e)}catch(a){if(a.code!=="EISDIR")throw a;return}try{return e.mkdirSync(t,e),r||t}catch(a){if(a.code==="ENOENT")return Q3(t,e,Q3(o,e,r));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;try{if(!e.statSync(t).isDirectory())throw a}catch{throw a}}};VAe.exports={mkdirpManual:k3,mkdirpManualSync:Q3}});var XAe=_((BUt,JAe)=>{var{dirname:zAe}=ve("path"),{findMade:nct,findMadeSync:ict}=WAe(),{mkdirpManual:sct,mkdirpManualSync:oct}=F3(),act=(t,e)=>(e.recursive=!0,zAe(t)===t?e.mkdirAsync(t,e):nct(e,t).then(o=>e.mkdirAsync(t,e).then(()=>o).catch(a=>{if(a.code==="ENOENT")return sct(t,e);throw a}))),lct=(t,e)=>{if(e.recursive=!0,zAe(t)===t)return e.mkdirSync(t,e);let o=ict(e,t);try{return e.mkdirSync(t,e),o}catch(a){if(a.code==="ENOENT")return oct(t,e);throw a}};JAe.exports={mkdirpNative:act,mkdirpNativeSync:lct}});var tfe=_((vUt,efe)=>{var ZAe=ve("fs"),cct=process.version,R3=cct.replace(/^v/,"").split("."),$Ae=+R3[0]>10||+R3[0]==10&&+R3[1]>=12,uct=$Ae?t=>t.mkdir===ZAe.mkdir:()=>!1,Act=$Ae?t=>t.mkdirSync===ZAe.mkdirSync:()=>!1;efe.exports={useNative:uct,useNativeSync:Act}});var afe=_((DUt,ofe)=>{var ky=UAe(),Qy=HAe(),{mkdirpNative:rfe,mkdirpNativeSync:nfe}=XAe(),{mkdirpManual:ife,mkdirpManualSync:sfe}=F3(),{useNative:fct,useNativeSync:pct}=tfe(),Fy=(t,e)=>(t=Qy(t),e=ky(e),fct(e)?rfe(t,e):ife(t,e)),hct=(t,e)=>(t=Qy(t),e=ky(e),pct(e)?nfe(t,e):sfe(t,e));Fy.sync=hct;Fy.native=(t,e)=>rfe(Qy(t),ky(e));Fy.manual=(t,e)=>ife(Qy(t),ky(e));Fy.nativeSync=(t,e)=>nfe(Qy(t),ky(e));Fy.manualSync=(t,e)=>sfe(Qy(t),ky(e));ofe.exports=Fy});var hfe=_((PUt,pfe)=>{"use strict";var $l=ve("fs"),Lg=ve("path"),gct=$l.lchown?"lchown":"chown",dct=$l.lchownSync?"lchownSync":"chownSync",cfe=$l.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),lfe=(t,e,r)=>{try{return $l[dct](t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},mct=(t,e,r)=>{try{return $l.chownSync(t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},yct=cfe?(t,e,r,o)=>a=>{!a||a.code!=="EISDIR"?o(a):$l.chown(t,e,r,o)}:(t,e,r,o)=>o,T3=cfe?(t,e,r)=>{try{return lfe(t,e,r)}catch(o){if(o.code!=="EISDIR")throw o;mct(t,e,r)}}:(t,e,r)=>lfe(t,e,r),Ect=process.version,ufe=(t,e,r)=>$l.readdir(t,e,r),Cct=(t,e)=>$l.readdirSync(t,e);/^v4\./.test(Ect)&&(ufe=(t,e,r)=>$l.readdir(t,r));var Dx=(t,e,r,o)=>{$l[gct](t,e,r,yct(t,e,r,a=>{o(a&&a.code!=="ENOENT"?a:null)}))},Afe=(t,e,r,o,a)=>{if(typeof e=="string")return $l.lstat(Lg.resolve(t,e),(n,u)=>{if(n)return a(n.code!=="ENOENT"?n:null);u.name=e,Afe(t,u,r,o,a)});if(e.isDirectory())N3(Lg.resolve(t,e.name),r,o,n=>{if(n)return a(n);let u=Lg.resolve(t,e.name);Dx(u,r,o,a)});else{let n=Lg.resolve(t,e.name);Dx(n,r,o,a)}},N3=(t,e,r,o)=>{ufe(t,{withFileTypes:!0},(a,n)=>{if(a){if(a.code==="ENOENT")return o();if(a.code!=="ENOTDIR"&&a.code!=="ENOTSUP")return o(a)}if(a||!n.length)return Dx(t,e,r,o);let u=n.length,A=null,p=h=>{if(!A){if(h)return o(A=h);if(--u===0)return Dx(t,e,r,o)}};n.forEach(h=>Afe(t,h,e,r,p))})},wct=(t,e,r,o)=>{if(typeof e=="string")try{let a=$l.lstatSync(Lg.resolve(t,e));a.name=e,e=a}catch(a){if(a.code==="ENOENT")return;throw a}e.isDirectory()&&ffe(Lg.resolve(t,e.name),r,o),T3(Lg.resolve(t,e.name),r,o)},ffe=(t,e,r)=>{let o;try{o=Cct(t,{withFileTypes:!0})}catch(a){if(a.code==="ENOENT")return;if(a.code==="ENOTDIR"||a.code==="ENOTSUP")return T3(t,e,r);throw a}return o&&o.length&&o.forEach(a=>wct(t,a,e,r)),T3(t,e,r)};pfe.exports=N3;N3.sync=ffe});var yfe=_((SUt,L3)=>{"use strict";var gfe=afe(),ec=ve("fs"),Px=ve("path"),dfe=hfe(),Vc=dy(),Sx=class extends Error{constructor(e,r){super("Cannot extract through symbolic link"),this.path=r,this.symlink=e}get name(){return"SylinkError"}},bx=class extends Error{constructor(e,r){super(r+": Cannot cd into '"+e+"'"),this.path=e,this.code=r}get name(){return"CwdError"}},xx=(t,e)=>t.get(Vc(e)),T1=(t,e,r)=>t.set(Vc(e),r),Ict=(t,e)=>{ec.stat(t,(r,o)=>{(r||!o.isDirectory())&&(r=new bx(t,r&&r.code||"ENOTDIR")),e(r)})};L3.exports=(t,e,r)=>{t=Vc(t);let o=e.umask,a=e.mode|448,n=(a&o)!==0,u=e.uid,A=e.gid,p=typeof u=="number"&&typeof A=="number"&&(u!==e.processUid||A!==e.processGid),h=e.preserve,E=e.unlink,I=e.cache,v=Vc(e.cwd),x=(L,U)=>{L?r(L):(T1(I,t,!0),U&&p?dfe(U,u,A,z=>x(z)):n?ec.chmod(t,a,r):r())};if(I&&xx(I,t)===!0)return x();if(t===v)return Ict(t,x);if(h)return gfe(t,{mode:a}).then(L=>x(null,L),x);let R=Vc(Px.relative(v,t)).split("/");kx(v,R,a,I,E,v,null,x)};var kx=(t,e,r,o,a,n,u,A)=>{if(!e.length)return A(null,u);let p=e.shift(),h=Vc(Px.resolve(t+"/"+p));if(xx(o,h))return kx(h,e,r,o,a,n,u,A);ec.mkdir(h,r,mfe(h,e,r,o,a,n,u,A))},mfe=(t,e,r,o,a,n,u,A)=>p=>{p?ec.lstat(t,(h,E)=>{if(h)h.path=h.path&&Vc(h.path),A(h);else if(E.isDirectory())kx(t,e,r,o,a,n,u,A);else if(a)ec.unlink(t,I=>{if(I)return A(I);ec.mkdir(t,r,mfe(t,e,r,o,a,n,u,A))});else{if(E.isSymbolicLink())return A(new Sx(t,t+"/"+e.join("/")));A(p)}}):(u=u||t,kx(t,e,r,o,a,n,u,A))},Bct=t=>{let e=!1,r="ENOTDIR";try{e=ec.statSync(t).isDirectory()}catch(o){r=o.code}finally{if(!e)throw new bx(t,r)}};L3.exports.sync=(t,e)=>{t=Vc(t);let r=e.umask,o=e.mode|448,a=(o&r)!==0,n=e.uid,u=e.gid,A=typeof n=="number"&&typeof u=="number"&&(n!==e.processUid||u!==e.processGid),p=e.preserve,h=e.unlink,E=e.cache,I=Vc(e.cwd),v=L=>{T1(E,t,!0),L&&A&&dfe.sync(L,n,u),a&&ec.chmodSync(t,o)};if(E&&xx(E,t)===!0)return v();if(t===I)return Bct(I),v();if(p)return v(gfe.sync(t,o));let C=Vc(Px.relative(I,t)).split("/"),R=null;for(let L=C.shift(),U=I;L&&(U+="/"+L);L=C.shift())if(U=Vc(Px.resolve(U)),!xx(E,U))try{ec.mkdirSync(U,o),R=R||U,T1(E,U,!0)}catch{let te=ec.lstatSync(U);if(te.isDirectory()){T1(E,U,!0);continue}else if(h){ec.unlinkSync(U),ec.mkdirSync(U,o),R=R||U,T1(E,U,!0);continue}else if(te.isSymbolicLink())return new Sx(U,U+"/"+C.join("/"))}return v(R)}});var O3=_((bUt,Efe)=>{var M3=Object.create(null),{hasOwnProperty:vct}=Object.prototype;Efe.exports=t=>(vct.call(M3,t)||(M3[t]=t.normalize("NFKD")),M3[t])});var Bfe=_((xUt,Ife)=>{var Cfe=ve("assert"),Dct=O3(),Pct=Ey(),{join:wfe}=ve("path"),Sct=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,bct=Sct==="win32";Ife.exports=()=>{let t=new Map,e=new Map,r=h=>h.split("/").slice(0,-1).reduce((I,v)=>(I.length&&(v=wfe(I[I.length-1],v)),I.push(v||"/"),I),[]),o=new Set,a=h=>{let E=e.get(h);if(!E)throw new Error("function does not have any path reservations");return{paths:E.paths.map(I=>t.get(I)),dirs:[...E.dirs].map(I=>t.get(I))}},n=h=>{let{paths:E,dirs:I}=a(h);return E.every(v=>v[0]===h)&&I.every(v=>v[0]instanceof Set&&v[0].has(h))},u=h=>o.has(h)||!n(h)?!1:(o.add(h),h(()=>A(h)),!0),A=h=>{if(!o.has(h))return!1;let{paths:E,dirs:I}=e.get(h),v=new Set;return E.forEach(x=>{let C=t.get(x);Cfe.equal(C[0],h),C.length===1?t.delete(x):(C.shift(),typeof C[0]=="function"?v.add(C[0]):C[0].forEach(R=>v.add(R)))}),I.forEach(x=>{let C=t.get(x);Cfe(C[0]instanceof Set),C[0].size===1&&C.length===1?t.delete(x):C[0].size===1?(C.shift(),v.add(C[0])):C[0].delete(h)}),o.delete(h),v.forEach(x=>u(x)),!0};return{check:n,reserve:(h,E)=>{h=bct?["win32 parallelization disabled"]:h.map(v=>Dct(Pct(wfe(v))).toLowerCase());let I=new Set(h.map(v=>r(v)).reduce((v,x)=>v.concat(x)));return e.set(E,{dirs:I,paths:h}),h.forEach(v=>{let x=t.get(v);x?x.push(E):t.set(v,[E])}),I.forEach(v=>{let x=t.get(v);x?x[x.length-1]instanceof Set?x[x.length-1].add(E):x.push(new Set([E])):t.set(v,[new Set([E])])}),u(E)}}}});var Pfe=_((kUt,Dfe)=>{var xct=process.platform,kct=xct==="win32",Qct=global.__FAKE_TESTING_FS__||ve("fs"),{O_CREAT:Fct,O_TRUNC:Rct,O_WRONLY:Tct,UV_FS_O_FILEMAP:vfe=0}=Qct.constants,Nct=kct&&!!vfe,Lct=512*1024,Mct=vfe|Rct|Fct|Tct;Dfe.exports=Nct?t=>t<Lct?Mct:"w":()=>"w"});var K3=_((QUt,_fe)=>{"use strict";var Oct=ve("assert"),Uct=Ix(),vn=ve("fs"),_ct=by(),jf=ve("path"),Mfe=yfe(),Sfe=KU(),Hct=Bfe(),qct=VU(),pl=dy(),jct=Ey(),Gct=O3(),bfe=Symbol("onEntry"),H3=Symbol("checkFs"),xfe=Symbol("checkFs2"),Rx=Symbol("pruneCache"),q3=Symbol("isReusable"),tc=Symbol("makeFs"),j3=Symbol("file"),G3=Symbol("directory"),Tx=Symbol("link"),kfe=Symbol("symlink"),Qfe=Symbol("hardlink"),Ffe=Symbol("unsupported"),Rfe=Symbol("checkPath"),Bh=Symbol("mkdir"),To=Symbol("onError"),Qx=Symbol("pending"),Tfe=Symbol("pend"),Ry=Symbol("unpend"),U3=Symbol("ended"),_3=Symbol("maybeClose"),Y3=Symbol("skip"),N1=Symbol("doChown"),L1=Symbol("uid"),M1=Symbol("gid"),O1=Symbol("checkedCwd"),Ofe=ve("crypto"),Ufe=Pfe(),Yct=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,U1=Yct==="win32",Wct=(t,e)=>{if(!U1)return vn.unlink(t,e);let r=t+".DELETE."+Ofe.randomBytes(16).toString("hex");vn.rename(t,r,o=>{if(o)return e(o);vn.unlink(r,e)})},Kct=t=>{if(!U1)return vn.unlinkSync(t);let e=t+".DELETE."+Ofe.randomBytes(16).toString("hex");vn.renameSync(t,e),vn.unlinkSync(e)},Nfe=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,Lfe=t=>Gct(jct(pl(t))).toLowerCase(),Vct=(t,e)=>{e=Lfe(e);for(let r of t.keys()){let o=Lfe(r);(o===e||o.indexOf(e+"/")===0)&&t.delete(r)}},zct=t=>{for(let e of t.keys())t.delete(e)},_1=class extends Uct{constructor(e){if(e||(e={}),e.ondone=r=>{this[U3]=!0,this[_3]()},super(e),this[O1]=!1,this.reservations=Hct(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[Qx]=0,this[U3]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||U1,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=pl(jf.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",r=>this[bfe](r))}warn(e,r,o={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(o.recoverable=!1),super.warn(e,r,o)}[_3](){this[U3]&&this[Qx]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[Rfe](e){if(this.strip){let r=pl(e.path).split("/");if(r.length<this.strip)return!1;if(e.path=r.slice(this.strip).join("/"),e.type==="Link"){let o=pl(e.linkpath).split("/");if(o.length>=this.strip)e.linkpath=o.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let r=pl(e.path),o=r.split("/");if(o.includes("..")||U1&&/^[a-z]:\.\.$/i.test(o[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:r}),!1;let[a,n]=qct(r);a&&(e.path=n,this.warn("TAR_ENTRY_INFO",`stripping ${a} from absolute path`,{entry:e,path:r}))}if(jf.isAbsolute(e.path)?e.absolute=pl(jf.resolve(e.path)):e.absolute=pl(jf.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:pl(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:r}=jf.win32.parse(e.absolute);e.absolute=r+Sfe.encode(e.absolute.substr(r.length));let{root:o}=jf.win32.parse(e.path);e.path=o+Sfe.encode(e.path.substr(o.length))}return!0}[bfe](e){if(!this[Rfe](e))return e.resume();switch(Oct.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[H3](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[Ffe](e)}}[To](e,r){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:r}),this[Ry](),r.resume())}[Bh](e,r,o){Mfe(pl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r,noChmod:this.noChmod},o)}[N1](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[L1](e){return Nfe(this.uid,e.uid,this.processUid)}[M1](e){return Nfe(this.gid,e.gid,this.processGid)}[j3](e,r){let o=e.mode&4095||this.fmode,a=new _ct.WriteStream(e.absolute,{flags:Ufe(e.size),mode:o,autoClose:!1});a.on("error",p=>{a.fd&&vn.close(a.fd,()=>{}),a.write=()=>!0,this[To](p,e),r()});let n=1,u=p=>{if(p){a.fd&&vn.close(a.fd,()=>{}),this[To](p,e),r();return}--n===0&&vn.close(a.fd,h=>{h?this[To](h,e):this[Ry](),r()})};a.on("finish",p=>{let h=e.absolute,E=a.fd;if(e.mtime&&!this.noMtime){n++;let I=e.atime||new Date,v=e.mtime;vn.futimes(E,I,v,x=>x?vn.utimes(h,I,v,C=>u(C&&x)):u())}if(this[N1](e)){n++;let I=this[L1](e),v=this[M1](e);vn.fchown(E,I,v,x=>x?vn.chown(h,I,v,C=>u(C&&x)):u())}u()});let A=this.transform&&this.transform(e)||e;A!==e&&(A.on("error",p=>{this[To](p,e),r()}),e.pipe(A)),A.pipe(a)}[G3](e,r){let o=e.mode&4095||this.dmode;this[Bh](e.absolute,o,a=>{if(a){this[To](a,e),r();return}let n=1,u=A=>{--n===0&&(r(),this[Ry](),e.resume())};e.mtime&&!this.noMtime&&(n++,vn.utimes(e.absolute,e.atime||new Date,e.mtime,u)),this[N1](e)&&(n++,vn.chown(e.absolute,this[L1](e),this[M1](e),u)),u()})}[Ffe](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[kfe](e,r){this[Tx](e,e.linkpath,"symlink",r)}[Qfe](e,r){let o=pl(jf.resolve(this.cwd,e.linkpath));this[Tx](e,o,"link",r)}[Tfe](){this[Qx]++}[Ry](){this[Qx]--,this[_3]()}[Y3](e){this[Ry](),e.resume()}[q3](e,r){return e.type==="File"&&!this.unlink&&r.isFile()&&r.nlink<=1&&!U1}[H3](e){this[Tfe]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,o=>this[xfe](e,o))}[Rx](e){e.type==="SymbolicLink"?zct(this.dirCache):e.type!=="Directory"&&Vct(this.dirCache,e.absolute)}[xfe](e,r){this[Rx](e);let o=A=>{this[Rx](e),r(A)},a=()=>{this[Bh](this.cwd,this.dmode,A=>{if(A){this[To](A,e),o();return}this[O1]=!0,n()})},n=()=>{if(e.absolute!==this.cwd){let A=pl(jf.dirname(e.absolute));if(A!==this.cwd)return this[Bh](A,this.dmode,p=>{if(p){this[To](p,e),o();return}u()})}u()},u=()=>{vn.lstat(e.absolute,(A,p)=>{if(p&&(this.keep||this.newer&&p.mtime>e.mtime)){this[Y3](e),o();return}if(A||this[q3](e,p))return this[tc](null,e,o);if(p.isDirectory()){if(e.type==="Directory"){let h=!this.noChmod&&e.mode&&(p.mode&4095)!==e.mode,E=I=>this[tc](I,e,o);return h?vn.chmod(e.absolute,e.mode,E):E()}if(e.absolute!==this.cwd)return vn.rmdir(e.absolute,h=>this[tc](h,e,o))}if(e.absolute===this.cwd)return this[tc](null,e,o);Wct(e.absolute,h=>this[tc](h,e,o))})};this[O1]?n():a()}[tc](e,r,o){if(e){this[To](e,r),o();return}switch(r.type){case"File":case"OldFile":case"ContiguousFile":return this[j3](r,o);case"Link":return this[Qfe](r,o);case"SymbolicLink":return this[kfe](r,o);case"Directory":case"GNUDumpDir":return this[G3](r,o)}}[Tx](e,r,o,a){vn[o](r,e.absolute,n=>{n?this[To](n,e):(this[Ry](),e.resume()),a()})}},Fx=t=>{try{return[null,t()]}catch(e){return[e,null]}},W3=class extends _1{[tc](e,r){return super[tc](e,r,()=>{})}[H3](e){if(this[Rx](e),!this[O1]){let n=this[Bh](this.cwd,this.dmode);if(n)return this[To](n,e);this[O1]=!0}if(e.absolute!==this.cwd){let n=pl(jf.dirname(e.absolute));if(n!==this.cwd){let u=this[Bh](n,this.dmode);if(u)return this[To](u,e)}}let[r,o]=Fx(()=>vn.lstatSync(e.absolute));if(o&&(this.keep||this.newer&&o.mtime>e.mtime))return this[Y3](e);if(r||this[q3](e,o))return this[tc](null,e);if(o.isDirectory()){if(e.type==="Directory"){let u=!this.noChmod&&e.mode&&(o.mode&4095)!==e.mode,[A]=u?Fx(()=>{vn.chmodSync(e.absolute,e.mode)}):[];return this[tc](A,e)}let[n]=Fx(()=>vn.rmdirSync(e.absolute));this[tc](n,e)}let[a]=e.absolute===this.cwd?[]:Fx(()=>Kct(e.absolute));this[tc](a,e)}[j3](e,r){let o=e.mode&4095||this.fmode,a=A=>{let p;try{vn.closeSync(n)}catch(h){p=h}(A||p)&&this[To](A||p,e),r()},n;try{n=vn.openSync(e.absolute,Ufe(e.size),o)}catch(A){return a(A)}let u=this.transform&&this.transform(e)||e;u!==e&&(u.on("error",A=>this[To](A,e)),e.pipe(u)),u.on("data",A=>{try{vn.writeSync(n,A,0,A.length)}catch(p){a(p)}}),u.on("end",A=>{let p=null;if(e.mtime&&!this.noMtime){let h=e.atime||new Date,E=e.mtime;try{vn.futimesSync(n,h,E)}catch(I){try{vn.utimesSync(e.absolute,h,E)}catch{p=I}}}if(this[N1](e)){let h=this[L1](e),E=this[M1](e);try{vn.fchownSync(n,h,E)}catch(I){try{vn.chownSync(e.absolute,h,E)}catch{p=p||I}}}a(p)})}[G3](e,r){let o=e.mode&4095||this.dmode,a=this[Bh](e.absolute,o);if(a){this[To](a,e),r();return}if(e.mtime&&!this.noMtime)try{vn.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[N1](e))try{vn.chownSync(e.absolute,this[L1](e),this[M1](e))}catch{}r(),e.resume()}[Bh](e,r){try{return Mfe.sync(pl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(o){return o}}[Tx](e,r,o,a){try{vn[o+"Sync"](r,e.absolute),a(),e.resume()}catch(n){return this[To](n,e)}}};_1.Sync=W3;_fe.exports=_1});var Yfe=_((FUt,Gfe)=>{"use strict";var Jct=Ay(),Nx=K3(),qfe=ve("fs"),jfe=by(),Hfe=ve("path"),V3=Ey();Gfe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=Jct(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&Xct(o,e),o.file&&o.sync?Zct(o):o.file?$ct(o,r):o.sync?eut(o):tut(o)};var Xct=(t,e)=>{let r=new Map(e.map(n=>[V3(n),!0])),o=t.filter,a=(n,u)=>{let A=u||Hfe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(Hfe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(V3(n)):n=>a(V3(n))},Zct=t=>{let e=new Nx.Sync(t),r=t.file,o=qfe.statSync(r),a=t.maxReadSize||16*1024*1024;new jfe.ReadStreamSync(r,{readSize:a,size:o.size}).pipe(e)},$ct=(t,e)=>{let r=new Nx(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("close",u),qfe.stat(a,(p,h)=>{if(p)A(p);else{let E=new jfe.ReadStream(a,{readSize:o,size:h.size});E.on("error",A),E.pipe(r)}})});return e?n.then(e,e):n},eut=t=>new Nx.Sync(t),tut=t=>new Nx(t)});var Wfe=_(As=>{"use strict";As.c=As.create=SAe();As.r=As.replace=x3();As.t=As.list=Bx();As.u=As.update=LAe();As.x=As.extract=Yfe();As.Pack=lx();As.Unpack=K3();As.Parse=Ix();As.ReadEntry=Yb();As.WriteEntry=i3();As.Header=yy();As.Pax=Kb();As.types=_U()});var z3,Kfe,vh,H1,q1,Vfe=Et(()=>{z3=Ze(eg()),Kfe=ve("worker_threads"),vh=Symbol("kTaskInfo"),H1=class{constructor(e,r){this.fn=e;this.limit=(0,z3.default)(r.poolSize)}run(e){return this.limit(()=>this.fn(e))}},q1=class{constructor(e,r){this.source=e;this.workers=[];this.limit=(0,z3.default)(r.poolSize),this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let o=this.workers.pop();o?o.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new Kfe.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",r=>{if(!e[vh])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[vh].resolve(r),e[vh]=null,e.unref(),this.workers.push(e)}),e.on("error",r=>{e[vh]?.reject(r),e[vh]=null}),e.on("exit",r=>{r!==0&&e[vh]?.reject(new Error(`Worker exited with code ${r}`)),e[vh]=null}),e}run(e){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((o,a)=>{r[vh]={resolve:o,reject:a},r.postMessage(e)})})}}});var Jfe=_((LUt,zfe)=>{var J3;zfe.exports.getContent=()=>(typeof J3>"u"&&(J3=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),J3)});var $i={};Vt($i,{convertToZip:()=>sut,convertToZipWorker:()=>$3,extractArchiveTo:()=>tpe,getDefaultTaskPool:()=>$fe,getTaskPoolForConfiguration:()=>epe,makeArchiveFromDirectory:()=>iut});function rut(t,e){switch(t){case"async":return new H1($3,{poolSize:e});case"workers":return new q1((0,Z3.getContent)(),{poolSize:e});default:throw new Error(`Assertion failed: Unknown value ${t} for taskPoolMode`)}}function $fe(){return typeof X3>"u"&&(X3=rut("workers",Xi.availableParallelism())),X3}function epe(t){return typeof t>"u"?$fe():al(nut,t,()=>{let e=t.get("taskPoolMode"),r=t.get("taskPoolConcurrency");switch(e){case"async":return new H1($3,{poolSize:r});case"workers":return new q1((0,Z3.getContent)(),{poolSize:r});default:throw new Error(`Assertion failed: Unknown value ${e} for taskPoolMode`)}})}async function $3(t){let{tmpFile:e,tgz:r,compressionLevel:o,extractBufferOpts:a}=t,n=new Zi(e,{create:!0,level:o,stats:wa.makeDefaultStats()}),u=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return await tpe(u,n,a),n.saveAndClose(),e}async function iut(t,{baseFs:e=new Tn,prefixPath:r=It.root,compressionLevel:o,inMemory:a=!1}={}){let n;if(a)n=new Zi(null,{level:o});else{let A=await oe.mktempPromise(),p=K.join(A,"archive.zip");n=new Zi(p,{create:!0,level:o})}let u=K.resolve(It.root,r);return await n.copyPromise(u,t,{baseFs:e,stableTime:!0,stableSort:!0}),n}async function sut(t,e={}){let r=await oe.mktempPromise(),o=K.join(r,"archive.zip"),a=e.compressionLevel??e.configuration?.get("compressionLevel")??"mixed",n={prefixPath:e.prefixPath,stripComponents:e.stripComponents};return await(e.taskPool??epe(e.configuration)).run({tmpFile:o,tgz:t,compressionLevel:a,extractBufferOpts:n}),new Zi(o,{level:e.compressionLevel})}async function*out(t){let e=new Zfe.default.Parse,r=new Xfe.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",o=>{r.write(o)}),e.on("error",o=>{r.destroy(o)}),e.on("close",()=>{r.destroyed||r.end()}),e.end(t);for await(let o of r){let a=o;yield a,a.resume()}}async function tpe(t,e,{stripComponents:r=0,prefixPath:o=It.dot}={}){function a(n){if(n.path[0]==="/")return!0;let u=n.path.split(/\//g);return!!(u.some(A=>A==="..")||u.length<=r)}for await(let n of out(t)){if(a(n))continue;let u=K.normalize(ue.toPortablePath(n.path)).replace(/\/$/,"").split(/\//g);if(u.length<=r)continue;let A=u.slice(r).join("/"),p=K.join(o,A),h=420;switch((n.type==="Directory"||(n.mode??0)&73)&&(h|=73),n.type){case"Directory":e.mkdirpSync(K.dirname(p),{chmod:493,utimes:[Bi.SAFE_TIME,Bi.SAFE_TIME]}),e.mkdirSync(p,{mode:h}),e.utimesSync(p,Bi.SAFE_TIME,Bi.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(K.dirname(p),{chmod:493,utimes:[Bi.SAFE_TIME,Bi.SAFE_TIME]}),e.writeFileSync(p,await km(n),{mode:h}),e.utimesSync(p,Bi.SAFE_TIME,Bi.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(K.dirname(p),{chmod:493,utimes:[Bi.SAFE_TIME,Bi.SAFE_TIME]}),e.symlinkSync(n.linkpath,p),e.lutimesSync(p,Bi.SAFE_TIME,Bi.SAFE_TIME);break}}return e}var Xfe,Zfe,Z3,X3,nut,rpe=Et(()=>{Ge();Pt();nA();Xfe=ve("stream"),Zfe=Ze(Wfe());Vfe();ql();Z3=Ze(Jfe());nut=new WeakMap});var ipe=_((e_,npe)=>{(function(t,e){typeof e_=="object"?npe.exports=e():typeof define=="function"&&define.amd?define(e):t.treeify=e()})(e_,function(){function t(a,n){var u=n?"\u2514":"\u251C";return a?u+="\u2500 ":u+="\u2500\u2500\u2510",u}function e(a,n){var u=[];for(var A in a)a.hasOwnProperty(A)&&(n&&typeof a[A]=="function"||u.push(A));return u}function r(a,n,u,A,p,h,E){var I="",v=0,x,C,R=A.slice(0);if(R.push([n,u])&&A.length>0&&(A.forEach(function(U,z){z>0&&(I+=(U[1]?" ":"\u2502")+" "),!C&&U[0]===n&&(C=!0)}),I+=t(a,u)+a,p&&(typeof n!="object"||n instanceof Date)&&(I+=": "+n),C&&(I+=" (circular ref.)"),E(I)),!C&&typeof n=="object"){var L=e(n,h);L.forEach(function(U){x=++v===L.length,r(U,n[U],x,R,p,h,E)})}}var o={};return o.asLines=function(a,n,u,A){var p=typeof u!="function"?u:!1;r(".",a,!1,[],n,p,A||u)},o.asTree=function(a,n,u){var A="";return r(".",a,!1,[],n,u,function(p){A+=p+` -`}),A},o})});var fs={};Vt(fs,{emitList:()=>aut,emitTree:()=>lpe,treeNodeToJson:()=>ape,treeNodeToTreeify:()=>ope});function ope(t,{configuration:e}){let r={},o=0,a=(n,u)=>{let A=Array.isArray(n)?n.entries():Object.entries(n);for(let[p,h]of A){if(!h)continue;let{label:E,value:I,children:v}=h,x=[];typeof E<"u"&&x.push(fg(e,E,2)),typeof I<"u"&&x.push(Ot(e,I[0],I[1])),x.length===0&&x.push(fg(e,`${p}`,2));let C=x.join(": ").trim(),R=`\0${o++}\0`,L=u[`${R}${C}`]={};typeof v<"u"&&a(v,L)}};if(typeof t.children>"u")throw new Error("The root node must only contain children");return a(t.children,r),r}function ape(t){let e=r=>{if(typeof r.children>"u"){if(typeof r.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return pg(r.value[0],r.value[1])}let o=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[n,u]of o)u&&(a[lut(n)]=e(u));return typeof r.value>"u"?a:{value:pg(r.value[0],r.value[1]),children:a}};return e(t)}function aut(t,{configuration:e,stdout:r,json:o}){let a=t.map(n=>({value:n}));lpe({children:a},{configuration:e,stdout:r,json:o})}function lpe(t,{configuration:e,stdout:r,json:o,separators:a=0}){if(o){let u=Array.isArray(t.children)?t.children.values():Object.values(t.children??{});for(let A of u)A&&r.write(`${JSON.stringify(ape(A))} -`);return}let n=(0,spe.asTree)(ope(t,{configuration:e}),!1,!1);if(n=n.replace(/\0[0-9]+\0/g,""),a>=1&&(n=n.replace(/^([├└]─)/gm,`\u2502 -$1`).replace(/^│\n/,"")),a>=2)for(let u=0;u<2;++u)n=n.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 -$2`).replace(/^│\n/,"");if(a>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(n)}function lut(t){return typeof t=="string"?t.replace(/^\0[0-9]+\0/,""):t}var spe,cpe=Et(()=>{spe=Ze(ipe());jl()});function j1(t){let e=t.match(cut);if(!e?.groups)throw new Error("Assertion failed: Expected the checksum to match the requested pattern");let r=e.groups.cacheVersion?parseInt(e.groups.cacheVersion):null;return{cacheKey:e.groups.cacheKey??null,cacheVersion:r,cacheSpec:e.groups.cacheSpec??null,hash:e.groups.hash}}var upe,t_,r_,Lx,Gr,cut,n_=Et(()=>{Ge();Pt();Pt();nA();upe=ve("crypto"),t_=Ze(ve("fs"));Wl();th();ql();bo();r_=Qm(process.env.YARN_CACHE_CHECKPOINT_OVERRIDE??process.env.YARN_CACHE_VERSION_OVERRIDE??9),Lx=Qm(process.env.YARN_CACHE_VERSION_OVERRIDE??10),Gr=class t{constructor(e,{configuration:r,immutable:o=r.get("enableImmutableCache"),check:a=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,upe.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=o,this.check=a;let{cacheSpec:n,cacheKey:u}=t.getCacheKey(r);this.cacheSpec=n,this.cacheKey=u}static async find(e,{immutable:r,check:o}={}){let a=new t(e.get("cacheFolder"),{configuration:e,immutable:r,check:o});return await a.setup(),a}static getCacheKey(e){let r=e.get("compressionLevel"),o=r!=="mixed"?`c${r}`:"";return{cacheKey:[Lx,o].join(""),cacheSpec:o}}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${Hm(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let a=j1(r).hash.slice(0,10);return`${Hm(e)}-${a}.zip`}isChecksumCompatible(e){if(e===null)return!1;let{cacheVersion:r,cacheSpec:o}=j1(e);if(r===null||r<r_)return!1;let a=this.configuration.get("cacheMigrationMode");return!(r<Lx&&a==="always"||o!==this.cacheSpec&&a!=="required-only")}getLocatorPath(e,r){return this.mirrorCwd===null?K.resolve(this.cwd,this.getVersionFilename(e)):r===null?K.resolve(this.cwd,this.getVersionFilename(e)):K.resolve(this.cwd,this.getChecksumFilename(e,r))}getLocatorMirrorPath(e){let r=this.mirrorCwd;return r!==null?K.resolve(r,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await oe.existsPromise(this.cwd))throw new Jt(56,"Cache path does not exist.")}else{await oe.mkdirPromise(this.cwd,{recursive:!0});let e=K.resolve(this.cwd,".gitignore");await oe.changeFilePromise(e,`/.gitignore -*.flock -*.tmp -`)}(this.mirrorCwd||!this.immutable)&&await oe.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,r,{onHit:o,onMiss:a,loader:n,...u}){let A=this.getLocatorMirrorPath(e),p=new Tn,h=()=>{let de=new Zi,Be=K.join(It.root,zM(e));return de.mkdirSync(Be,{recursive:!0}),de.writeJsonSync(K.join(Be,dr.manifest),{name:rn(e),mocked:!0}),de},E=async(de,{isColdHit:Be,controlPath:Ee=null})=>{if(Ee===null&&u.unstablePackages?.has(e.locatorHash))return{isValid:!0,hash:null};let g=r&&!Be?j1(r).cacheKey:this.cacheKey,me=!u.skipIntegrityCheck||!r?`${g}/${await wS(de)}`:r;if(Ee!==null){let Ae=!u.skipIntegrityCheck||!r?`${this.cacheKey}/${await wS(Ee)}`:r;if(me!==Ae)throw new Jt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}let we=null;switch(r!==null&&me!==r&&(this.check?we="throw":j1(r).cacheKey!==j1(me).cacheKey?we="update":we=this.configuration.get("checksumBehavior")),we){case null:case"update":return{isValid:!0,hash:me};case"ignore":return{isValid:!0,hash:r};case"reset":return{isValid:!1,hash:r};default:case"throw":throw new Jt(18,"The remote archive doesn't match the expected checksum")}},I=async de=>{if(!n)throw new Error(`Cache check required but no loader configured for ${qr(this.configuration,e)}`);let Be=await n(),Ee=Be.getRealPath();Be.saveAndClose(),await oe.chmodPromise(Ee,420);let g=await E(de,{controlPath:Ee,isColdHit:!1});if(!g.isValid)throw new Error("Assertion failed: Expected a valid checksum");return g.hash},v=async()=>{if(A===null||!await oe.existsPromise(A)){let de=await n(),Be=de.getRealPath();return de.saveAndClose(),{source:"loader",path:Be}}return{source:"mirror",path:A}},x=async()=>{if(!n)throw new Error(`Cache entry required but missing for ${qr(this.configuration,e)}`);if(this.immutable)throw new Jt(56,`Cache entry required but missing for ${qr(this.configuration,e)}`);let{path:de,source:Be}=await v(),{hash:Ee}=await E(de,{isColdHit:!0}),g=this.getLocatorPath(e,Ee),me=[];Be!=="mirror"&&A!==null&&me.push(async()=>{let Ae=`${A}${this.cacheId}`;await oe.copyFilePromise(de,Ae,t_.default.constants.COPYFILE_FICLONE),await oe.chmodPromise(Ae,420),await oe.renamePromise(Ae,A)}),(!u.mirrorWriteOnly||A===null)&&me.push(async()=>{let Ae=`${g}${this.cacheId}`;await oe.copyFilePromise(de,Ae,t_.default.constants.COPYFILE_FICLONE),await oe.chmodPromise(Ae,420),await oe.renamePromise(Ae,g)});let we=u.mirrorWriteOnly?A??g:g;return await Promise.all(me.map(Ae=>Ae())),[!1,we,Ee]},C=async()=>{let Be=(async()=>{let Ee=u.unstablePackages?.has(e.locatorHash),g=Ee||!r||this.isChecksumCompatible(r)?this.getLocatorPath(e,r):null,me=g!==null?this.markedFiles.has(g)||await p.existsPromise(g):!1,we=!!u.mockedPackages?.has(e.locatorHash)&&(!this.check||!me),Ae=we||me,ne=Ae?o:a;if(ne&&ne(),Ae){let Z=null,xe=g;if(!we)if(this.check)Z=await I(xe);else{let Ne=await E(xe,{isColdHit:!1});if(Ne.isValid)Z=Ne.hash;else return x()}return[we,xe,Z]}else{if(this.immutable&&Ee)throw new Jt(56,`Cache entry required but missing for ${qr(this.configuration,e)}; consider defining ${pe.pretty(this.configuration,"supportedArchitectures",pe.Type.CODE)} to cache packages for multiple systems`);return x()}})();this.mutexes.set(e.locatorHash,Be);try{return await Be}finally{this.mutexes.delete(e.locatorHash)}};for(let de;de=this.mutexes.get(e.locatorHash);)await de;let[R,L,U]=await C();R||this.markedFiles.add(L);let z,te=R?()=>h():()=>new Zi(L,{baseFs:p,readOnly:!0}),ae=new Gd(()=>uL(()=>z=te(),de=>`Failed to open the cache entry for ${qr(this.configuration,e)}: ${de}`),K),le=new Hu(L,{baseFs:ae,pathUtils:K}),ce=()=>{z?.discardAndClose()},Ce=u.unstablePackages?.has(e.locatorHash)?null:U;return[le,ce,Ce]}},cut=/^(?:(?<cacheKey>(?<cacheVersion>[0-9]+)(?<cacheSpec>.*))\/)?(?<hash>.*)$/});var Mx,Ape=Et(()=>{Mx=(r=>(r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE",r))(Mx||{})});var uut,Ty,i_=Et(()=>{Pt();Nl();bf();bo();uut=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,o)=>`${r}#commit=${o}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>PS({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],Ty=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let o=K.join(e.cwd,dr.lockfile);if(!oe.existsSync(o))return;let a=await oe.readFilePromise(o,"utf8"),n=Ki(a);if(Object.hasOwn(n,"__metadata"))return;let u=this.resolutions=new Map;for(let A of Object.keys(n)){let p=jI(A);if(!p){r.reportWarning(14,`Failed to parse the string "${A}" into a proper descriptor`);continue}let h=Qa(p.range)?In(p,`npm:${p.range}`):p,{version:E,resolved:I}=n[A];if(!I)continue;let v;for(let[C,R]of uut){let L=I.match(C);if(L){v=R(E,...L);break}}if(!v){r.reportWarning(14,`${jn(e.configuration,h)}: Only some patterns can be imported from legacy lockfiles (not "${I}")`);continue}let x=h;try{let C=dg(h.range),R=jI(C.selector,!0);R&&(x=R)}catch{}u.set(h.descriptorHash,Rs(x,v))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let a=this.resolutions.get(e.descriptorHash);if(!a)throw new Error("Assertion failed: The resolution should have been registered");let n=YM(a),u=o.project.configuration.normalizeDependency(n);return await this.resolver.getCandidates(u,r,o)}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}});var AA,fpe=Et(()=>{Wl();I1();jl();AA=class extends Zs{constructor({configuration:r,stdout:o,suggestInstall:a=!0}){super();this.errorCount=0;TI(this,{configuration:r}),this.configuration=r,this.stdout=o,this.suggestInstall=a}static async start(r,o){let a=new this(r);try{await o(a)}catch(n){a.reportExceptionOnce(n)}finally{await a.finalize()}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(r){}reportCacheMiss(r){}startSectionSync(r,o){return o()}async startSectionPromise(r,o){return await o()}startTimerSync(r,o,a){return(typeof o=="function"?o:a)()}async startTimerPromise(r,o,a){return await(typeof o=="function"?o:a)()}reportSeparator(){}reportInfo(r,o){}reportWarning(r,o){}reportError(r,o){this.errorCount+=1,this.stdout.write(`${Ot(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(r)}: ${o} -`)}reportProgress(r){return{...Promise.resolve().then(async()=>{for await(let{}of r);}),stop:()=>{}}}reportJson(r){}reportFold(r,o){}async finalize(){this.errorCount>0&&(this.stdout.write(` -`),this.stdout.write(`${Ot(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. -`),this.suggestInstall&&this.stdout.write(`${Ot(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. -`))}formatNameWithHyperlink(r){return AU(r,{configuration:this.configuration,json:!1})}}});var Ny,s_=Et(()=>{bo();Ny=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(BS(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){let a=o.project.storedResolutions.get(e.descriptorHash);if(a){let u=o.project.originalPackages.get(a);if(u)return[u]}let n=o.project.originalPackages.get(BS(e).locatorHash);if(n)return[n];throw new Error("Resolution expected from the lockfile data")}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.originalPackages.get(e.locatorHash);if(!o)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return o}}});function Gf(){}function Aut(t,e,r,o,a){for(var n=0,u=e.length,A=0,p=0;n<u;n++){var h=e[n];if(h.removed){if(h.value=t.join(o.slice(p,p+h.count)),p+=h.count,n&&e[n-1].added){var I=e[n-1];e[n-1]=e[n],e[n]=I}}else{if(!h.added&&a){var E=r.slice(A,A+h.count);E=E.map(function(x,C){var R=o[p+C];return R.length>x.length?R:x}),h.value=t.join(E)}else h.value=t.join(r.slice(A,A+h.count));A+=h.count,h.added||(p+=h.count)}}var v=e[u-1];return u>1&&typeof v.value=="string"&&(v.added||v.removed)&&t.equals("",v.value)&&(e[u-2].value+=v.value,e.pop()),e}function fut(t){return{newPos:t.newPos,components:t.components.slice(0)}}function put(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function gpe(t,e,r){return r=put(r,{ignoreWhitespace:!0}),u_.diff(t,e,r)}function hut(t,e,r){return A_.diff(t,e,r)}function Ox(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ox=function(e){return typeof e}:Ox=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ox(t)}function o_(t){return mut(t)||yut(t)||Eut(t)||Cut()}function mut(t){if(Array.isArray(t))return a_(t)}function yut(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function Eut(t,e){if(t){if(typeof t=="string")return a_(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a_(t,e)}}function a_(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,o=new Array(e);r<e;r++)o[r]=t[r];return o}function Cut(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function l_(t,e,r,o,a){e=e||[],r=r||[],o&&(t=o(a,t));var n;for(n=0;n<e.length;n+=1)if(e[n]===t)return r[n];var u;if(wut.call(t)==="[object Array]"){for(e.push(t),u=new Array(t.length),r.push(u),n=0;n<t.length;n+=1)u[n]=l_(t[n],e,r,o,a);return e.pop(),r.pop(),u}if(t&&t.toJSON&&(t=t.toJSON()),Ox(t)==="object"&&t!==null){e.push(t),u={},r.push(u);var A=[],p;for(p in t)t.hasOwnProperty(p)&&A.push(p);for(A.sort(),n=0;n<A.length;n+=1)p=A[n],u[p]=l_(t[p],e,r,o,p);e.pop(),r.pop()}else u=t;return u}function dpe(t,e,r,o,a,n,u){u||(u={}),typeof u.context>"u"&&(u.context=4);var A=hut(r,o,u);if(!A)return;A.push({value:"",lines:[]});function p(U){return U.map(function(z){return" "+z})}for(var h=[],E=0,I=0,v=[],x=1,C=1,R=function(z){var te=A[z],ae=te.lines||te.value.replace(/\n$/,"").split(` -`);if(te.lines=ae,te.added||te.removed){var le;if(!E){var ce=A[z-1];E=x,I=C,ce&&(v=u.context>0?p(ce.lines.slice(-u.context)):[],E-=v.length,I-=v.length)}(le=v).push.apply(le,o_(ae.map(function(Ae){return(te.added?"+":"-")+Ae}))),te.added?C+=ae.length:x+=ae.length}else{if(E)if(ae.length<=u.context*2&&z<A.length-2){var Ce;(Ce=v).push.apply(Ce,o_(p(ae)))}else{var de,Be=Math.min(ae.length,u.context);(de=v).push.apply(de,o_(p(ae.slice(0,Be))));var Ee={oldStart:E,oldLines:x-E+Be,newStart:I,newLines:C-I+Be,lines:v};if(z>=A.length-2&&ae.length<=u.context){var g=/\n$/.test(r),me=/\n$/.test(o),we=ae.length==0&&v.length>Ee.oldLines;!g&&we&&r.length>0&&v.splice(Ee.oldLines,0,"\\ No newline at end of file"),(!g&&!we||!me)&&v.push("\\ No newline at end of file")}h.push(Ee),E=0,I=0,v=[]}x+=ae.length,C+=ae.length}},L=0;L<A.length;L++)R(L);return{oldFileName:t,newFileName:e,oldHeader:a,newHeader:n,hunks:h}}var c3t,ppe,hpe,u_,A_,gut,dut,wut,G1,c_,f_=Et(()=>{Gf.prototype={diff:function(e,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=o.callback;typeof o=="function"&&(a=o,o={}),this.options=o;var n=this;function u(R){return a?(setTimeout(function(){a(void 0,R)},0),!0):R}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var A=r.length,p=e.length,h=1,E=A+p;o.maxEditLength&&(E=Math.min(E,o.maxEditLength));var I=[{newPos:-1,components:[]}],v=this.extractCommon(I[0],r,e,0);if(I[0].newPos+1>=A&&v+1>=p)return u([{value:this.join(r),count:r.length}]);function x(){for(var R=-1*h;R<=h;R+=2){var L=void 0,U=I[R-1],z=I[R+1],te=(z?z.newPos:0)-R;U&&(I[R-1]=void 0);var ae=U&&U.newPos+1<A,le=z&&0<=te&&te<p;if(!ae&&!le){I[R]=void 0;continue}if(!ae||le&&U.newPos<z.newPos?(L=fut(z),n.pushComponent(L.components,void 0,!0)):(L=U,L.newPos++,n.pushComponent(L.components,!0,void 0)),te=n.extractCommon(L,r,e,R),L.newPos+1>=A&&te+1>=p)return u(Aut(n,L.components,r,e,n.useLongestToken));I[R]=L}h++}if(a)(function R(){setTimeout(function(){if(h>E)return a();x()||R()},0)})();else for(;h<=E;){var C=x();if(C)return C}},pushComponent:function(e,r,o){var a=e[e.length-1];a&&a.added===r&&a.removed===o?e[e.length-1]={count:a.count+1,added:r,removed:o}:e.push({count:1,added:r,removed:o})},extractCommon:function(e,r,o,a){for(var n=r.length,u=o.length,A=e.newPos,p=A-a,h=0;A+1<n&&p+1<u&&this.equals(r[A+1],o[p+1]);)A++,p++,h++;return h&&e.components.push({count:h}),e.newPos=A,p},equals:function(e,r){return this.options.comparator?this.options.comparator(e,r):e===r||this.options.ignoreCase&&e.toLowerCase()===r.toLowerCase()},removeEmpty:function(e){for(var r=[],o=0;o<e.length;o++)e[o]&&r.push(e[o]);return r},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};c3t=new Gf;ppe=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,hpe=/\S/,u_=new Gf;u_.equals=function(t,e){return this.options.ignoreCase&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e||this.options.ignoreWhitespace&&!hpe.test(t)&&!hpe.test(e)};u_.tokenize=function(t){for(var e=t.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),r=0;r<e.length-1;r++)!e[r+1]&&e[r+2]&&ppe.test(e[r])&&ppe.test(e[r+2])&&(e[r]+=e[r+2],e.splice(r+1,2),r--);return e};A_=new Gf;A_.tokenize=function(t){var e=[],r=t.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(var o=0;o<r.length;o++){var a=r[o];o%2&&!this.options.newlineIsToken?e[e.length-1]+=a:(this.options.ignoreWhitespace&&(a=a.trim()),e.push(a))}return e};gut=new Gf;gut.tokenize=function(t){return t.split(/(\S.+?[.!?])(?=\s+|$)/)};dut=new Gf;dut.tokenize=function(t){return t.split(/([{}:;,]|\s+)/)};wut=Object.prototype.toString,G1=new Gf;G1.useLongestToken=!0;G1.tokenize=A_.tokenize;G1.castInput=function(t){var e=this.options,r=e.undefinedReplacement,o=e.stringifyReplacer,a=o===void 0?function(n,u){return typeof u>"u"?r:u}:o;return typeof t=="string"?t:JSON.stringify(l_(t,null,null,a),a," ")};G1.equals=function(t,e){return Gf.prototype.equals.call(G1,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};c_=new Gf;c_.tokenize=function(t){return t.slice()};c_.join=c_.removeEmpty=function(t){return t}});var ype=_((A3t,mpe)=>{var Iut=Hl(),But=Ym(),vut=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Dut=/^\w*$/;function Put(t,e){if(Iut(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||But(t)?!0:Dut.test(t)||!vut.test(t)||e!=null&&t in Object(e)}mpe.exports=Put});var wpe=_((f3t,Cpe)=>{var Epe=PP(),Sut="Expected a function";function p_(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(Sut);var r=function(){var o=arguments,a=e?e.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var u=t.apply(this,o);return r.cache=n.set(a,u)||n,u};return r.cache=new(p_.Cache||Epe),r}p_.Cache=Epe;Cpe.exports=p_});var Bpe=_((p3t,Ipe)=>{var but=wpe(),xut=500;function kut(t){var e=but(t,function(o){return r.size===xut&&r.clear(),o}),r=e.cache;return e}Ipe.exports=kut});var h_=_((h3t,vpe)=>{var Qut=Bpe(),Fut=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Rut=/\\(\\)?/g,Tut=Qut(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(Fut,function(r,o,a,n){e.push(a?n.replace(Rut,"$1"):o||r)}),e});vpe.exports=Tut});var Mg=_((g3t,Dpe)=>{var Nut=Hl(),Lut=ype(),Mut=h_(),Out=C1();function Uut(t,e){return Nut(t)?t:Lut(t,e)?[t]:Mut(Out(t))}Dpe.exports=Uut});var Ly=_((d3t,Ppe)=>{var _ut=Ym(),Hut=1/0;function qut(t){if(typeof t=="string"||_ut(t))return t;var e=t+"";return e=="0"&&1/t==-Hut?"-0":e}Ppe.exports=qut});var Ux=_((m3t,Spe)=>{var jut=Mg(),Gut=Ly();function Yut(t,e){e=jut(e,t);for(var r=0,o=e.length;t!=null&&r<o;)t=t[Gut(e[r++])];return r&&r==o?t:void 0}Spe.exports=Yut});var g_=_((y3t,xpe)=>{var Wut=qP(),Kut=Mg(),Vut=II(),bpe=sl(),zut=Ly();function Jut(t,e,r,o){if(!bpe(t))return t;e=Kut(e,t);for(var a=-1,n=e.length,u=n-1,A=t;A!=null&&++a<n;){var p=zut(e[a]),h=r;if(p==="__proto__"||p==="constructor"||p==="prototype")return t;if(a!=u){var E=A[p];h=o?o(E,p,A):void 0,h===void 0&&(h=bpe(E)?E:Vut(e[a+1])?[]:{})}Wut(A,p,h),A=A[p]}return t}xpe.exports=Jut});var Qpe=_((E3t,kpe)=>{var Xut=Ux(),Zut=g_(),$ut=Mg();function eAt(t,e,r){for(var o=-1,a=e.length,n={};++o<a;){var u=e[o],A=Xut(t,u);r(A,u)&&Zut(n,$ut(u,t),A)}return n}kpe.exports=eAt});var Rpe=_((C3t,Fpe)=>{function tAt(t,e){return t!=null&&e in Object(t)}Fpe.exports=tAt});var d_=_((w3t,Tpe)=>{var rAt=Mg(),nAt=EI(),iAt=Hl(),sAt=II(),oAt=QP(),aAt=Ly();function lAt(t,e,r){e=rAt(e,t);for(var o=-1,a=e.length,n=!1;++o<a;){var u=aAt(e[o]);if(!(n=t!=null&&r(t,u)))break;t=t[u]}return n||++o!=a?n:(a=t==null?0:t.length,!!a&&oAt(a)&&sAt(u,a)&&(iAt(t)||nAt(t)))}Tpe.exports=lAt});var Lpe=_((I3t,Npe)=>{var cAt=Rpe(),uAt=d_();function AAt(t,e){return t!=null&&uAt(t,e,cAt)}Npe.exports=AAt});var Ope=_((B3t,Mpe)=>{var fAt=Qpe(),pAt=Lpe();function hAt(t,e){return fAt(t,e,function(r,o){return pAt(t,o)})}Mpe.exports=hAt});var qpe=_((v3t,Hpe)=>{var Upe=lg(),gAt=EI(),dAt=Hl(),_pe=Upe?Upe.isConcatSpreadable:void 0;function mAt(t){return dAt(t)||gAt(t)||!!(_pe&&t&&t[_pe])}Hpe.exports=mAt});var Ype=_((D3t,Gpe)=>{var yAt=xP(),EAt=qpe();function jpe(t,e,r,o,a){var n=-1,u=t.length;for(r||(r=EAt),a||(a=[]);++n<u;){var A=t[n];e>0&&r(A)?e>1?jpe(A,e-1,r,o,a):yAt(a,A):o||(a[a.length]=A)}return a}Gpe.exports=jpe});var Kpe=_((P3t,Wpe)=>{var CAt=Ype();function wAt(t){var e=t==null?0:t.length;return e?CAt(t,1):[]}Wpe.exports=wAt});var m_=_((S3t,Vpe)=>{var IAt=Kpe(),BAt=rL(),vAt=nL();function DAt(t){return vAt(BAt(t,void 0,IAt),t+"")}Vpe.exports=DAt});var y_=_((b3t,zpe)=>{var PAt=Ope(),SAt=m_(),bAt=SAt(function(t,e){return t==null?{}:PAt(t,e)});zpe.exports=bAt});var _x,Jpe=Et(()=>{Wl();_x=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.resolver.bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){throw new Jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,o,a){throw new Jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new Jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}}});var ki,E_=Et(()=>{Wl();ki=class extends Zs{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,o){return(typeof r=="function"?r:o)()}async startTimerPromise(e,r,o){return await(typeof r=="function"?r:o)()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}reportFold(e,r){}async finalize(){}}});var Xpe,My,C_=Et(()=>{Pt();Xpe=Ze(ES());Gm();mg();jl();th();bf();bo();My=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.project=r,this.cwd=e}async setup(){this.manifest=await Ut.tryFind(this.cwd)??new Ut,this.relativeCwd=K.relative(this.project.cwd,this.cwd)||It.dot;let e=this.manifest.name?this.manifest.name:eA(null,`${this.computeCandidateName()}-${zi(this.relativeCwd).substring(0,6)}`);this.anchoredDescriptor=In(e,`${ei.protocol}${this.relativeCwd}`),this.anchoredLocator=Rs(e,`${ei.protocol}${this.relativeCwd}`);let r=this.manifest.workspaceDefinitions.map(({pattern:a})=>a);if(r.length===0)return;let o=await(0,Xpe.default)(r,{cwd:ue.fromPortablePath(this.cwd),onlyDirectories:!0,ignore:["**/node_modules","**/.git","**/.yarn"]});o.sort(),await o.reduce(async(a,n)=>{let u=K.resolve(this.cwd,ue.toPortablePath(n)),A=await oe.existsPromise(K.join(u,"package.json"));await a,A&&this.workspacesCwds.add(u)},Promise.resolve())}get anchoredPackage(){let e=this.project.storedPackages.get(this.anchoredLocator.locatorHash);if(!e)throw new Error(`Assertion failed: Expected workspace ${YI(this.project.configuration,this)} (${Ot(this.project.configuration,K.join(this.cwd,dr.manifest),yt.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);return e}accepts(e){let r=e.indexOf(":"),o=r!==-1?e.slice(0,r+1):null,a=r!==-1?e.slice(r+1):e;if(o===ei.protocol&&K.normalize(a)===this.relativeCwd||o===ei.protocol&&(a==="*"||a==="^"||a==="~"))return!0;let n=Qa(a);return n?o===ei.protocol?n.test(this.manifest.version??"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?n.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${K.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=Ut.hardDependencies}={}){let r=new Set,o=a=>{for(let n of e)for(let u of a.manifest[n].values()){let A=this.project.tryWorkspaceByDescriptor(u);A===null||r.has(A)||(r.add(A),o(A))}};return o(this),r}getRecursiveWorkspaceDependents({dependencies:e=Ut.hardDependencies}={}){let r=new Set,o=a=>{for(let n of this.project.workspaces)e.some(A=>[...n.manifest[A].values()].some(p=>{let h=this.project.tryWorkspaceByDescriptor(p);return h!==null&&qI(h.anchoredLocator,a.anchoredLocator)}))&&!r.has(n)&&(r.add(n),o(n))};return o(this),r}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let r of e)for(let o of r.workspacesCwds){let a=this.project.workspacesByCwd.get(o);a&&e.add(a)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let r=K.join(this.cwd,Ut.fileName),o=`${JSON.stringify(e,null,this.manifest.indent)} -`;await oe.changeFilePromise(r,o,{automaticNewlines:!0}),this.manifest.raw=e}}});function TAt({project:t,allDescriptors:e,allResolutions:r,allPackages:o,accessibleLocators:a=new Set,optionalBuilds:n=new Set,peerRequirements:u=new Map,peerWarnings:A=[],peerRequirementNodes:p=new Map,volatileDescriptors:h=new Set}){let E=new Map,I=[],v=new Map,x=new Map,C=new Map,R=new Map,L=new Map(t.workspaces.map(le=>{let ce=le.anchoredLocator.locatorHash,Ce=o.get(ce);if(typeof Ce>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[ce,OI(Ce)]})),U=()=>{let le=oe.mktempSync(),ce=K.join(le,"stacktrace.log"),Ce=String(I.length+1).length,de=I.map((Be,Ee)=>`${`${Ee+1}.`.padStart(Ce," ")} ${ka(Be)} -`).join("");throw oe.writeFileSync(ce,de),oe.detachTemp(le),new Jt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${ue.fromPortablePath(ce)}`)},z=le=>{let ce=r.get(le.descriptorHash);if(typeof ce>"u")throw new Error("Assertion failed: The resolution should have been registered");let Ce=o.get(ce);if(!Ce)throw new Error("Assertion failed: The package could not be found");return Ce},te=(le,ce,Ce,{top:de,optional:Be})=>{I.length>1e3&&U(),I.push(ce);let Ee=ae(le,ce,Ce,{top:de,optional:Be});return I.pop(),Ee},ae=(le,ce,Ce,{top:de,optional:Be})=>{if(Be||n.delete(ce.locatorHash),a.has(ce.locatorHash))return;a.add(ce.locatorHash);let Ee=o.get(ce.locatorHash);if(!Ee)throw new Error(`Assertion failed: The package (${qr(t.configuration,ce)}) should have been registered`);let g=[],me=new Map,we=[],Ae=[],ne=[],Z=[];for(let Ne of Array.from(Ee.dependencies.values())){if(Ee.peerDependencies.has(Ne.identHash)&&Ee.locatorHash!==de)continue;if(Pf(Ne))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");h.delete(Ne.descriptorHash);let ht=Be;if(!ht){let Se=Ee.dependenciesMeta.get(rn(Ne));if(typeof Se<"u"){let et=Se.get(null);typeof et<"u"&&et.optional&&(ht=!0)}}let H=r.get(Ne.descriptorHash);if(!H)throw new Error(`Assertion failed: The resolution (${jn(t.configuration,Ne)}) should have been registered`);let rt=L.get(H)||o.get(H);if(!rt)throw new Error(`Assertion failed: The package (${H}, resolved from ${jn(t.configuration,Ne)}) should have been registered`);if(rt.peerDependencies.size===0){te(Ne,rt,new Map,{top:de,optional:ht});continue}let Te,Fe,ke=new Set,Ye=new Map;we.push(()=>{Te=KM(Ne,ce.locatorHash),Fe=VM(rt,ce.locatorHash),Ee.dependencies.delete(Ne.identHash),Ee.dependencies.set(Te.identHash,Te),r.set(Te.descriptorHash,Fe.locatorHash),e.set(Te.descriptorHash,Te),o.set(Fe.locatorHash,Fe),g.push([rt,Te,Fe])}),Ae.push(()=>{R.set(Fe.locatorHash,Ye);for(let Se of Fe.peerDependencies.values()){let Ue=al(me,Se.identHash,()=>{let b=Ce.get(Se.identHash)??null,w=Ee.dependencies.get(Se.identHash);return!w&&HI(ce,Se)&&(le.identHash===ce.identHash?w=le:(w=In(ce,le.range),e.set(w.descriptorHash,w),r.set(w.descriptorHash,ce.locatorHash),h.delete(w.descriptorHash),b=null)),w||(w=In(Se,"missing:")),{subject:ce,ident:Se,provided:w,root:!b,requests:new Map,hash:`p${zi(ce.locatorHash,Se.identHash).slice(0,5)}`}}).provided;if(Ue.range==="missing:"&&Fe.dependencies.has(Se.identHash)){Fe.peerDependencies.delete(Se.identHash);continue}Ye.set(Se.identHash,{requester:Fe,descriptor:Se,meta:Fe.peerDependenciesMeta.get(rn(Se)),children:new Map}),Fe.dependencies.set(Se.identHash,Ue),Pf(Ue)&&bm(C,Ue.descriptorHash).add(Fe.locatorHash),v.set(Ue.identHash,Ue),Ue.range==="missing:"&&ke.add(Ue.identHash)}Fe.dependencies=new Map(Fs(Fe.dependencies,([Se,et])=>rn(et)))}),ne.push(()=>{if(!o.has(Fe.locatorHash))return;let Se=E.get(rt.locatorHash);typeof Se=="number"&&Se>=2&&U();let et=E.get(rt.locatorHash),Ue=typeof et<"u"?et+1:1;E.set(rt.locatorHash,Ue),te(Te,Fe,Ye,{top:de,optional:ht}),E.set(rt.locatorHash,Ue-1)}),Z.push(()=>{let Se=Ee.dependencies.get(Ne.identHash);if(typeof Se>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let et=r.get(Se.descriptorHash);if(typeof et>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let Ue=R.get(et);if(typeof Ue>"u")throw new Error("Assertion failed: Expected the peer requests to be registered");for(let b of me.values()){let w=Ue.get(b.ident.identHash);w&&(b.requests.set(Se.descriptorHash,w),p.set(b.hash,b),b.root||Ce.get(b.ident.identHash)?.children.set(Se.descriptorHash,w))}if(o.has(Fe.locatorHash))for(let b of ke)Fe.dependencies.delete(b)})}for(let Ne of[...we,...Ae])Ne();let xe;do{xe=!0;for(let[Ne,ht,H]of g){let rt=kI(x,Ne.locatorHash),Te=zi(...[...H.dependencies.values()].map(Se=>{let et=Se.range!=="missing:"?r.get(Se.descriptorHash):"missing:";if(typeof et>"u")throw new Error(`Assertion failed: Expected the resolution for ${jn(t.configuration,Se)} to have been registered`);return et===de?`${et} (top)`:et}),ht.identHash),Fe=rt.get(Te);if(typeof Fe>"u"){rt.set(Te,ht);continue}if(Fe===ht)continue;o.delete(H.locatorHash),e.delete(ht.descriptorHash),r.delete(ht.descriptorHash),a.delete(H.locatorHash);let ke=C.get(ht.descriptorHash)||[],Ye=[Ee.locatorHash,...ke];C.delete(ht.descriptorHash);for(let Se of Ye){let et=o.get(Se);typeof et>"u"||(et.dependencies.get(ht.identHash).descriptorHash!==Fe.descriptorHash&&(xe=!1),et.dependencies.set(ht.identHash,Fe))}for(let Se of me.values())Se.provided.descriptorHash===ht.descriptorHash&&(Se.provided=Fe)}}while(!xe);for(let Ne of[...ne,...Z])Ne()};for(let le of t.workspaces){let ce=le.anchoredLocator;h.delete(le.anchoredDescriptor.descriptorHash),te(le.anchoredDescriptor,ce,new Map,{top:ce.locatorHash,optional:!1})}for(let le of p.values()){if(!le.root)continue;let ce=o.get(le.subject.locatorHash);if(typeof ce>"u")continue;for(let de of le.requests.values()){let Be=`p${zi(le.subject.locatorHash,rn(le.ident),de.requester.locatorHash).slice(0,5)}`;u.set(Be,{subject:le.subject.locatorHash,requested:le.ident,rootRequester:de.requester.locatorHash,allRequesters:Array.from(WI(de),Ee=>Ee.requester.locatorHash)})}let Ce=[...WI(le)];if(le.provided.range!=="missing:"){let de=z(le.provided),Be=de.version??"0.0.0",Ee=me=>{if(me.startsWith(ei.protocol)){if(!t.tryWorkspaceByLocator(de))return null;me=me.slice(ei.protocol.length),(me==="^"||me==="~")&&(me="*")}return me},g=!0;for(let me of Ce){let we=Ee(me.descriptor.range);if(we===null){g=!1;continue}if(!tA(Be,we)){g=!1;let Ae=`p${zi(le.subject.locatorHash,rn(le.ident),me.requester.locatorHash).slice(0,5)}`;A.push({type:1,subject:ce,requested:le.ident,requester:me.requester,version:Be,hash:Ae,requirementCount:Ce.length})}}if(!g){let me=Ce.map(we=>Ee(we.descriptor.range));A.push({type:3,node:le,range:me.includes(null)?null:XM(me),hash:le.hash})}}else{let de=!0;for(let Be of Ce)if(!Be.meta?.optional){de=!1;let Ee=`p${zi(le.subject.locatorHash,rn(le.ident),Be.requester.locatorHash).slice(0,5)}`;A.push({type:0,subject:ce,requested:le.ident,requester:Be.requester,hash:Ee})}de||A.push({type:2,node:le,hash:le.hash})}}}function*NAt(t){let e=new Map;if("children"in t)e.set(t,t);else for(let r of t.requests.values())e.set(r,r);for(let[r,o]of e){yield{request:r,root:o};for(let a of r.children.values())e.has(a)||e.set(a,o)}}function LAt(t,e){let r=[],o=[],a=!1;for(let n of t.peerWarnings)if(!(n.type===1||n.type===0)){if(!t.tryWorkspaceByLocator(n.node.subject)){a=!0;continue}if(n.type===3){let u=t.storedResolutions.get(n.node.provided.descriptorHash);if(typeof u>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=t.storedPackages.get(u);if(typeof A>"u")throw new Error("Assertion failed: Expected the package to be registered");let p=Vp(NAt(n.node),({request:I,root:v})=>tA(A.version??"0.0.0",I.descriptor.range)?Vp.skip:I===v?Oi(t.configuration,I.requester):`${Oi(t.configuration,I.requester)} (via ${Oi(t.configuration,v.requester)})`),h=[...WI(n.node)].length>1?"and other dependencies request":"requests",E=n.range?qm(t.configuration,n.range):Ot(t.configuration,"but they have non-overlapping ranges!","redBright");r.push(`${Oi(t.configuration,n.node.ident)} is listed by your project with version ${GI(t.configuration,A.version??"0.0.0")} (${Ot(t.configuration,n.hash,yt.CODE)}), which doesn't satisfy what ${p} ${h} (${E}).`)}if(n.type===2){let u=n.node.requests.size>1?" and other dependencies":"";o.push(`${qr(t.configuration,n.node.subject)} doesn't provide ${Oi(t.configuration,n.node.ident)} (${Ot(t.configuration,n.hash,yt.CODE)}), requested by ${Oi(t.configuration,n.node.requests.values().next().value.requester)}${u}.`)}}e.startSectionSync({reportFooter:()=>{e.reportWarning(86,`Some peer dependencies are incorrectly met by your project; run ${Ot(t.configuration,"yarn explain peer-requirements <hash>",yt.CODE)} for details, where ${Ot(t.configuration,"<hash>",yt.CODE)} is the six-letter p-prefixed code.`)},skipIfEmpty:!0},()=>{for(let n of Fs(r,u=>Rm.default(u)))e.reportWarning(60,n);for(let n of Fs(o,u=>Rm.default(u)))e.reportWarning(2,n)}),a&&e.reportWarning(86,`Some peer dependencies are incorrectly met by dependencies; run ${Ot(t.configuration,"yarn explain peer-requirements",yt.CODE)} for details.`)}var Hx,qx,jx,ehe,B_,I_,v_,Gx,xAt,kAt,Zpe,QAt,FAt,RAt,hl,w_,Yx,$pe,kt,the=Et(()=>{Pt();Pt();Nl();qt();Hx=ve("crypto");f_();qx=Ze(y_()),jx=Ze(eg()),ehe=Ze(Jn()),B_=ve("util"),I_=Ze(ve("v8")),v_=Ze(ve("zlib"));n_();u1();i_();s_();Gm();rO();Wl();Jpe();I1();E_();mg();C_();TS();jl();th();ql();pb();dU();bf();bo();Gx=Qm(process.env.YARN_LOCKFILE_VERSION_OVERRIDE??8),xAt=3,kAt=/ *, */g,Zpe=/\/$/,QAt=32,FAt=(0,B_.promisify)(v_.default.gzip),RAt=(0,B_.promisify)(v_.default.gunzip),hl=(r=>(r.UpdateLockfile="update-lockfile",r.SkipBuild="skip-build",r))(hl||{}),w_={restoreLinkersCustomData:["linkersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["skippedBuilds","storedBuildState"]},Yx=(a=>(a[a.NotProvided=0]="NotProvided",a[a.NotCompatible=1]="NotCompatible",a[a.NodeNotProvided=2]="NodeNotProvided",a[a.NodeNotCompatible=3]="NodeNotCompatible",a))(Yx||{}),$pe=t=>zi(`${xAt}`,t),kt=class t{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.skippedBuilds=new Set;this.lockfileLastVersion=null;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.peerWarnings=[];this.peerRequirementNodes=new Map;this.linkersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){if(!e.projectCwd)throw new st(`No project found in ${r}`);let o=e.projectCwd,a=r,n=null;for(;n!==e.projectCwd;){if(n=a,oe.existsSync(K.join(n,dr.manifest))){o=n;break}a=K.dirname(n)}let u=new t(e.projectCwd,{configuration:e});Ke.telemetry?.reportProject(u.cwd),await u.setupResolutions(),await u.setupWorkspaces(),Ke.telemetry?.reportWorkspaceCount(u.workspaces.length),Ke.telemetry?.reportDependencyCount(u.workspaces.reduce((C,R)=>C+R.manifest.dependencies.size+R.manifest.devDependencies.size,0));let A=u.tryWorkspaceByCwd(o);if(A)return{project:u,workspace:A,locator:A.anchoredLocator};let p=await u.findLocatorForLocation(`${o}/`,{strict:!0});if(p)return{project:u,locator:p,workspace:null};let h=Ot(e,u.cwd,yt.PATH),E=Ot(e,K.relative(u.cwd,o),yt.PATH),I=`- If ${h} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,v=`- If ${h} is intended to be a project, it might be that you forgot to list ${E} in its workspace configuration.`,x=`- Finally, if ${h} is fine and you intend ${E} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new st(`The nearest package directory (${Ot(e,o,yt.PATH)}) doesn't seem to be part of the project declared in ${Ot(e,u.cwd,yt.PATH)}. - -${[I,v,x].join(` -`)}`)}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=K.join(this.cwd,dr.lockfile),r=this.configuration.get("defaultLanguageName");if(oe.existsSync(e)){let o=await oe.readFilePromise(e,"utf8");this.lockFileChecksum=$pe(o);let a=Ki(o);if(a.__metadata){let n=a.__metadata.version,u=a.__metadata.cacheKey;this.lockfileLastVersion=n,this.lockfileNeedsRefresh=n<Gx;for(let A of Object.keys(a)){if(A==="__metadata")continue;let p=a[A];if(typeof p.resolution>"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${A})`);let h=Sf(p.resolution,!0),E=new Ut;E.load(p,{yamlCompatibilityMode:!0});let I=E.version,v=E.languageName||r,x=p.linkType.toUpperCase(),C=p.conditions??null,R=E.dependencies,L=E.peerDependencies,U=E.dependenciesMeta,z=E.peerDependenciesMeta,te=E.bin;if(p.checksum!=null){let le=typeof u<"u"&&!p.checksum.includes("/")?`${u}/${p.checksum}`:p.checksum;this.storedChecksums.set(h.locatorHash,le)}let ae={...h,version:I,languageName:v,linkType:x,conditions:C,dependencies:R,peerDependencies:L,dependenciesMeta:U,peerDependenciesMeta:z,bin:te};this.originalPackages.set(ae.locatorHash,ae);for(let le of A.split(kAt)){let ce=rh(le);n<=6&&(ce=this.configuration.normalizeDependency(ce),ce=In(ce,ce.range.replace(/^patch:[^@]+@(?!npm(:|%3A))/,"$1npm%3A"))),this.storedDescriptors.set(ce.descriptorHash,ce),this.storedResolutions.set(ce.descriptorHash,h.locatorHash)}}}else o.includes("yarn lockfile v1")&&(this.lockfileLastVersion=-1)}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,r=(0,jx.default)(4),o=async(a,n)=>{if(e.has(n))return a;e.add(n);let u=new My(n,{project:this});await r(()=>u.setup());let A=a.then(()=>{this.addWorkspace(u)});return Array.from(u.workspacesCwds).reduce(o,A)};await o(Promise.resolve(),this.cwd)}addWorkspace(e){let r=this.workspacesByIdent.get(e.anchoredLocator.identHash);if(typeof r<"u")throw new Error(`Duplicate workspace name ${Oi(this.configuration,e.anchoredLocator)}: ${ue.fromPortablePath(e.cwd)} conflicts with ${ue.fromPortablePath(r.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.anchoredLocator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){K.isAbsolute(e)||(e=K.resolve(this.cwd,e)),e=K.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let o of this.workspaces)K.relative(o.cwd,e).startsWith("../")||r&&r.cwd.length>=o.cwd.length||(r=o);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r>"u"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${Oi(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){if(e.range.startsWith(ei.protocol)){let o=e.range.slice(ei.protocol.length);if(o!=="^"&&o!=="~"&&o!=="*"&&!Qa(o))return this.tryWorkspaceByCwd(o)}let r=this.tryWorkspaceByIdent(e);return r===null||(Pf(e)&&(e=UI(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${jn(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Gc(e)&&(e=_I(e)),r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${qr(this.configuration,e)})`);return r}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let r=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let o=new Set(this.storedResolutions.values());typeof r<"u"&&!o.has(r)&&this.deleteLocator(r)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[r,o]of this.storedResolutions)o===e.locatorHash&&this.deleteDescriptor(r)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),r=new Map;for(let[o,a]of this.storedResolutions.entries()){let n=r.get(a);n||r.set(a,n=new Set),n.add(o)}for(let o of this.originalPackages.values()){let a;try{a=e.shouldPersistResolution(o,{project:this,resolver:e})}catch{a=!1}if(!a){this.deleteLocator(o.locatorHash);let n=r.get(o.locatorHash);if(n){r.delete(o.locatorHash);for(let u of n)this.deleteDescriptor(u)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,o]of e.dependencies)Pf(o)&&e.dependencies.set(r,UI(o))}getDependencyMeta(e,r){let o={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(rn(e));if(!n)return o;let u=n.get(null);if(u&&Object.assign(o,u),r===null||!ehe.default.valid(r))return o;for(let[A,p]of n)A!==null&&A===r&&Object.assign(o,p);return o}async findLocatorForLocation(e,{strict:r=!1}={}){let o=new ki,a=this.configuration.getLinkers(),n={project:this,report:o};for(let u of a){let A=await u.findPackageLocator(e,n);if(A){if(r&&(await u.findPackageLocation(A,n)).replace(Zpe,"")!==e.replace(Zpe,""))continue;return A}}return null}async loadUserConfig(){let e=K.join(this.cwd,".pnp.cjs");await oe.existsPromise(e)&&vf(e).setup();let r=K.join(this.cwd,"yarn.config.cjs");return await oe.existsPromise(r)?vf(r):null}async preparePackage(e,{resolver:r,resolveOptions:o}){let a=await this.configuration.getPackageExtensions(),n=this.configuration.normalizePackage(e,{packageExtensions:a});for(let[u,A]of n.dependencies){let p=await this.configuration.reduceHook(E=>E.reduceDependency,A,this,n,A,{resolver:r,resolveOptions:o});if(!HI(A,p))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let h=r.bindDescriptor(p,n,o);n.dependencies.set(u,h)}return n}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions();let r=new Map(this.originalPackages),o=[];e.lockfileOnly||this.forgetTransientResolutions();let a=e.resolver||this.configuration.makeResolver(),n=new Ty(a);await n.setup(this,{report:e.report});let u=e.lockfileOnly?[new _x(a)]:[n,a],A=new yg([new Ny(a),...u]),p=new yg([...u]),h=this.configuration.makeFetcher(),E=e.lockfileOnly?{project:this,report:e.report,resolver:A}:{project:this,report:e.report,resolver:A,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:h,cacheOptions:{mirrorWriteOnly:!0}}},I=new Map,v=new Map,x=new Map,C=new Map,R=new Map,L=new Map,U=this.topLevelWorkspace.anchoredLocator,z=new Set,te=[],ae=k4(),le=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Zs.progressViaTitle(),async ne=>{let Z=async rt=>{let Te=await xm(async()=>await A.resolve(rt,E),Se=>`${qr(this.configuration,rt)}: ${Se}`);if(!qI(rt,Te))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${qr(this.configuration,rt)} to ${qr(this.configuration,Te)})`);C.set(Te.locatorHash,Te),!r.delete(Te.locatorHash)&&!this.tryWorkspaceByLocator(Te)&&o.push(Te);let ke=await this.preparePackage(Te,{resolver:A,resolveOptions:E}),Ye=_c([...ke.dependencies.values()].map(Se=>H(Se)));return te.push(Ye),Ye.catch(()=>{}),v.set(ke.locatorHash,ke),ke},xe=async rt=>{let Te=R.get(rt.locatorHash);if(typeof Te<"u")return Te;let Fe=Promise.resolve().then(()=>Z(rt));return R.set(rt.locatorHash,Fe),Fe},Ne=async(rt,Te)=>{let Fe=await H(Te);return I.set(rt.descriptorHash,rt),x.set(rt.descriptorHash,Fe.locatorHash),Fe},ht=async rt=>{ne.setTitle(jn(this.configuration,rt));let Te=this.resolutionAliases.get(rt.descriptorHash);if(typeof Te<"u")return Ne(rt,this.storedDescriptors.get(Te));let Fe=A.getResolutionDependencies(rt,E),ke=Object.fromEntries(await _c(Object.entries(Fe).map(async([et,Ue])=>{let b=A.bindDescriptor(Ue,U,E),w=await H(b);return z.add(w.locatorHash),[et,w]}))),Se=(await xm(async()=>await A.getCandidates(rt,ke,E),et=>`${jn(this.configuration,rt)}: ${et}`))[0];if(typeof Se>"u")throw new Jt(82,`${jn(this.configuration,rt)}: No candidates found`);if(e.checkResolutions){let{locators:et}=await p.getSatisfying(rt,ke,[Se],{...E,resolver:p});if(!et.find(Ue=>Ue.locatorHash===Se.locatorHash))throw new Jt(78,`Invalid resolution ${NI(this.configuration,rt,Se)}`)}return I.set(rt.descriptorHash,rt),x.set(rt.descriptorHash,Se.locatorHash),xe(Se)},H=rt=>{let Te=L.get(rt.descriptorHash);if(typeof Te<"u")return Te;I.set(rt.descriptorHash,rt);let Fe=Promise.resolve().then(()=>ht(rt));return L.set(rt.descriptorHash,Fe),Fe};for(let rt of this.workspaces){let Te=rt.anchoredDescriptor;te.push(H(Te))}for(;te.length>0;){let rt=[...te];te.length=0,await _c(rt)}});let ce=ol(r.values(),ne=>this.tryWorkspaceByLocator(ne)?ol.skip:ne);if(o.length>0||ce.length>0){let ne=new Set(this.workspaces.flatMap(rt=>{let Te=v.get(rt.anchoredLocator.locatorHash);if(!Te)throw new Error("Assertion failed: The workspace should have been resolved");return Array.from(Te.dependencies.values(),Fe=>{let ke=x.get(Fe.descriptorHash);if(!ke)throw new Error("Assertion failed: The resolution should have been registered");return ke})})),Z=rt=>ne.has(rt.locatorHash)?"0":"1",xe=rt=>ka(rt),Ne=Fs(o,[Z,xe]),ht=Fs(ce,[Z,xe]),H=e.report.getRecommendedLength();Ne.length>0&&e.report.reportInfo(85,`${Ot(this.configuration,"+",yt.ADDED)} ${zP(this.configuration,Ne,H)}`),ht.length>0&&e.report.reportInfo(85,`${Ot(this.configuration,"-",yt.REMOVED)} ${zP(this.configuration,ht,H)}`)}let Ce=new Set(this.resolutionAliases.values()),de=new Set(v.keys()),Be=new Set,Ee=new Map,g=[],me=new Map;TAt({project:this,accessibleLocators:Be,volatileDescriptors:Ce,optionalBuilds:de,peerRequirements:Ee,peerWarnings:g,peerRequirementNodes:me,allDescriptors:I,allResolutions:x,allPackages:v});for(let ne of z)de.delete(ne);for(let ne of Ce)I.delete(ne),x.delete(ne);let we=new Set,Ae=new Set;for(let ne of v.values())ne.conditions!=null&&de.has(ne.locatorHash)&&(bS(ne,le)||(bS(ne,ae)&&e.report.reportWarningOnce(77,`${qr(this.configuration,ne)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${Ot(this.configuration,"supportedArchitectures",yt.SETTING)} setting`),Ae.add(ne.locatorHash)),we.add(ne.locatorHash));this.storedResolutions=x,this.storedDescriptors=I,this.storedPackages=v,this.accessibleLocators=Be,this.conditionalLocators=we,this.disabledLocators=Ae,this.originalPackages=C,this.optionalBuilds=de,this.peerRequirements=Ee,this.peerWarnings=g,this.peerRequirementNodes=me}async fetchEverything({cache:e,report:r,fetcher:o,mode:a,persistProject:n=!0}){let u={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},A=o||this.configuration.makeFetcher(),p={checksums:this.storedChecksums,project:this,cache:e,fetcher:A,report:r,cacheOptions:u},h=Array.from(new Set(Fs(this.storedResolutions.values(),[C=>{let R=this.storedPackages.get(C);if(!R)throw new Error("Assertion failed: The locator should have been registered");return ka(R)}])));a==="update-lockfile"&&(h=h.filter(C=>!this.storedChecksums.has(C)));let E=!1,I=Zs.progressViaCounter(h.length);await r.reportProgress(I);let v=(0,jx.default)(QAt);if(await _c(h.map(C=>v(async()=>{let R=this.storedPackages.get(C);if(!R)throw new Error("Assertion failed: The locator should have been registered");if(Gc(R))return;let L;try{L=await A.fetch(R,p)}catch(U){U.message=`${qr(this.configuration,R)}: ${U.message}`,r.reportExceptionOnce(U),E=U;return}L.checksum!=null?this.storedChecksums.set(R.locatorHash,L.checksum):this.storedChecksums.delete(R.locatorHash),L.releaseFs&&L.releaseFs()}).finally(()=>{I.tick()}))),E)throw E;let x=n&&a!=="update-lockfile"?await this.cacheCleanup({cache:e,report:r}):null;if(r.cacheMisses.size>0||x){let R=(await Promise.all([...r.cacheMisses].map(async ce=>{let Ce=this.storedPackages.get(ce),de=this.storedChecksums.get(ce)??null,Be=e.getLocatorPath(Ce,de);return(await oe.statPromise(Be)).size}))).reduce((ce,Ce)=>ce+Ce,0)-(x?.size??0),L=r.cacheMisses.size,U=x?.count??0,z=`${jP(L,{zero:"No new packages",one:"A package was",more:`${Ot(this.configuration,L,yt.NUMBER)} packages were`})} added to the project`,te=`${jP(U,{zero:"none were",one:"one was",more:`${Ot(this.configuration,U,yt.NUMBER)} were`})} removed`,ae=R!==0?` (${Ot(this.configuration,R,yt.SIZE_DIFF)})`:"",le=U>0?L>0?`${z}, and ${te}${ae}.`:`${z}, but ${te}${ae}.`:`${z}${ae}.`;r.reportInfo(13,le)}}async linkEverything({cache:e,report:r,fetcher:o,mode:a}){let n={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},u=o||this.configuration.makeFetcher(),A={checksums:this.storedChecksums,project:this,cache:e,fetcher:u,report:r,cacheOptions:n},p=this.configuration.getLinkers(),h={project:this,report:r},E=new Map(p.map(we=>{let Ae=we.makeInstaller(h),ne=we.getCustomDataKey(),Z=this.linkersCustomData.get(ne);return typeof Z<"u"&&Ae.attachCustomData(Z),[we,Ae]})),I=new Map,v=new Map,x=new Map,C=new Map(await _c([...this.accessibleLocators].map(async we=>{let Ae=this.storedPackages.get(we);if(!Ae)throw new Error("Assertion failed: The locator should have been registered");return[we,await u.fetch(Ae,A)]}))),R=[],L=new Set,U=[];for(let we of this.accessibleLocators){let Ae=this.storedPackages.get(we);if(typeof Ae>"u")throw new Error("Assertion failed: The locator should have been registered");let ne=C.get(Ae.locatorHash);if(typeof ne>"u")throw new Error("Assertion failed: The fetch result should have been registered");let Z=[],xe=ht=>{Z.push(ht)},Ne=this.tryWorkspaceByLocator(Ae);if(Ne!==null){let ht=[],{scripts:H}=Ne.manifest;for(let Te of["preinstall","install","postinstall"])H.has(Te)&&ht.push({type:0,script:Te});try{for(let[Te,Fe]of E)if(Te.supportsPackage(Ae,h)&&(await Fe.installPackage(Ae,ne,{holdFetchResult:xe})).buildRequest!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{Z.length===0?ne.releaseFs?.():R.push(_c(Z).catch(()=>{}).then(()=>{ne.releaseFs?.()}))}let rt=K.join(ne.packageFs.getRealPath(),ne.prefixPath);v.set(Ae.locatorHash,rt),!Gc(Ae)&&ht.length>0&&x.set(Ae.locatorHash,{buildDirectives:ht,buildLocations:[rt]})}else{let ht=p.find(Te=>Te.supportsPackage(Ae,h));if(!ht)throw new Jt(12,`${qr(this.configuration,Ae)} isn't supported by any available linker`);let H=E.get(ht);if(!H)throw new Error("Assertion failed: The installer should have been registered");let rt;try{rt=await H.installPackage(Ae,ne,{holdFetchResult:xe})}finally{Z.length===0?ne.releaseFs?.():R.push(_c(Z).then(()=>{}).then(()=>{ne.releaseFs?.()}))}I.set(Ae.locatorHash,ht),v.set(Ae.locatorHash,rt.packageLocation),rt.buildRequest&&rt.packageLocation&&(rt.buildRequest.skipped?(L.add(Ae.locatorHash),this.skippedBuilds.has(Ae.locatorHash)||U.push([Ae,rt.buildRequest.explain])):x.set(Ae.locatorHash,{buildDirectives:rt.buildRequest.directives,buildLocations:[rt.packageLocation]}))}}let z=new Map;for(let we of this.accessibleLocators){let Ae=this.storedPackages.get(we);if(!Ae)throw new Error("Assertion failed: The locator should have been registered");let ne=this.tryWorkspaceByLocator(Ae)!==null,Z=async(xe,Ne)=>{let ht=v.get(Ae.locatorHash);if(typeof ht>"u")throw new Error(`Assertion failed: The package (${qr(this.configuration,Ae)}) should have been registered`);let H=[];for(let rt of Ae.dependencies.values()){let Te=this.storedResolutions.get(rt.descriptorHash);if(typeof Te>"u")throw new Error(`Assertion failed: The resolution (${jn(this.configuration,rt)}, from ${qr(this.configuration,Ae)})should have been registered`);let Fe=this.storedPackages.get(Te);if(typeof Fe>"u")throw new Error(`Assertion failed: The package (${Te}, resolved from ${jn(this.configuration,rt)}) should have been registered`);let ke=this.tryWorkspaceByLocator(Fe)===null?I.get(Te):null;if(typeof ke>"u")throw new Error(`Assertion failed: The package (${Te}, resolved from ${jn(this.configuration,rt)}) should have been registered`);ke===xe||ke===null?v.get(Fe.locatorHash)!==null&&H.push([rt,Fe]):!ne&&ht!==null&&xI(z,Te).push(ht)}ht!==null&&await Ne.attachInternalDependencies(Ae,H)};if(ne)for(let[xe,Ne]of E)xe.supportsPackage(Ae,h)&&await Z(xe,Ne);else{let xe=I.get(Ae.locatorHash);if(!xe)throw new Error("Assertion failed: The linker should have been found");let Ne=E.get(xe);if(!Ne)throw new Error("Assertion failed: The installer should have been registered");await Z(xe,Ne)}}for(let[we,Ae]of z){let ne=this.storedPackages.get(we);if(!ne)throw new Error("Assertion failed: The package should have been registered");let Z=I.get(ne.locatorHash);if(!Z)throw new Error("Assertion failed: The linker should have been found");let xe=E.get(Z);if(!xe)throw new Error("Assertion failed: The installer should have been registered");await xe.attachExternalDependents(ne,Ae)}let te=new Map;for(let[we,Ae]of E){let ne=await Ae.finalizeInstall();for(let Z of ne?.records??[])Z.buildRequest.skipped?(L.add(Z.locator.locatorHash),this.skippedBuilds.has(Z.locator.locatorHash)||U.push([Z.locator,Z.buildRequest.explain])):x.set(Z.locator.locatorHash,{buildDirectives:Z.buildRequest.directives,buildLocations:Z.buildLocations});typeof ne?.customData<"u"&&te.set(we.getCustomDataKey(),ne.customData)}if(this.linkersCustomData=te,await _c(R),a==="skip-build")return;for(let[,we]of Fs(U,([Ae])=>ka(Ae)))we(r);let ae=new Set(x.keys()),le=(0,Hx.createHash)("sha512");le.update(process.versions.node),await this.configuration.triggerHook(we=>we.globalHashGeneration,this,we=>{le.update("\0"),le.update(we)});let ce=le.digest("hex"),Ce=new Map,de=we=>{let Ae=Ce.get(we.locatorHash);if(typeof Ae<"u")return Ae;let ne=this.storedPackages.get(we.locatorHash);if(typeof ne>"u")throw new Error("Assertion failed: The package should have been registered");let Z=(0,Hx.createHash)("sha512");Z.update(we.locatorHash),Ce.set(we.locatorHash,"<recursive>");for(let xe of ne.dependencies.values()){let Ne=this.storedResolutions.get(xe.descriptorHash);if(typeof Ne>"u")throw new Error(`Assertion failed: The resolution (${jn(this.configuration,xe)}) should have been registered`);let ht=this.storedPackages.get(Ne);if(typeof ht>"u")throw new Error("Assertion failed: The package should have been registered");Z.update(de(ht))}return Ae=Z.digest("hex"),Ce.set(we.locatorHash,Ae),Ae},Be=(we,Ae)=>{let ne=(0,Hx.createHash)("sha512");ne.update(ce),ne.update(de(we));for(let Z of Ae)ne.update(Z);return ne.digest("hex")},Ee=new Map,g=!1,me=we=>{let Ae=new Set([we.locatorHash]);for(let ne of Ae){let Z=this.storedPackages.get(ne);if(!Z)throw new Error("Assertion failed: The package should have been registered");for(let xe of Z.dependencies.values()){let Ne=this.storedResolutions.get(xe.descriptorHash);if(!Ne)throw new Error(`Assertion failed: The resolution (${jn(this.configuration,xe)}) should have been registered`);if(Ne!==we.locatorHash&&ae.has(Ne))return!1;let ht=this.storedPackages.get(Ne);if(!ht)throw new Error("Assertion failed: The package should have been registered");let H=this.tryWorkspaceByLocator(ht);if(H){if(H.anchoredLocator.locatorHash!==we.locatorHash&&ae.has(H.anchoredLocator.locatorHash))return!1;Ae.add(H.anchoredLocator.locatorHash)}Ae.add(Ne)}}return!0};for(;ae.size>0;){let we=ae.size,Ae=[];for(let ne of ae){let Z=this.storedPackages.get(ne);if(!Z)throw new Error("Assertion failed: The package should have been registered");if(!me(Z))continue;let xe=x.get(Z.locatorHash);if(!xe)throw new Error("Assertion failed: The build directive should have been registered");let Ne=Be(Z,xe.buildLocations);if(this.storedBuildState.get(Z.locatorHash)===Ne){Ee.set(Z.locatorHash,Ne),ae.delete(ne);continue}g||(await this.persistInstallStateFile(),g=!0),this.storedBuildState.has(Z.locatorHash)?r.reportInfo(8,`${qr(this.configuration,Z)} must be rebuilt because its dependency tree changed`):r.reportInfo(7,`${qr(this.configuration,Z)} must be built because it never has been before or the last one failed`);let ht=xe.buildLocations.map(async H=>{if(!K.isAbsolute(H))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${H})`);for(let rt of xe.buildDirectives){let Te=`# This file contains the result of Yarn building a package (${ka(Z)}) -`;switch(rt.type){case 0:Te+=`# Script name: ${rt.script} -`;break;case 1:Te+=`# Script code: ${rt.script} -`;break}let Fe=null;if(!await oe.mktempPromise(async Ye=>{let Se=K.join(Ye,"build.log"),{stdout:et,stderr:Ue}=this.configuration.getSubprocessStreams(Se,{header:Te,prefix:qr(this.configuration,Z),report:r}),b;try{switch(rt.type){case 0:b=await Nb(Z,rt.script,[],{cwd:H,project:this,stdin:Fe,stdout:et,stderr:Ue});break;case 1:b=await fU(Z,rt.script,[],{cwd:H,project:this,stdin:Fe,stdout:et,stderr:Ue});break}}catch(y){Ue.write(y.stack),b=1}if(et.end(),Ue.end(),b===0)return!0;oe.detachTemp(Ye);let w=`${qr(this.configuration,Z)} couldn't be built successfully (exit code ${Ot(this.configuration,b,yt.NUMBER)}, logs can be found here: ${Ot(this.configuration,Se,yt.PATH)})`,S=this.optionalBuilds.has(Z.locatorHash);return S?r.reportInfo(9,w):r.reportError(9,w),Zce&&r.reportFold(ue.fromPortablePath(Se),oe.readFileSync(Se,"utf8")),S}))return!1}return!0});Ae.push(...ht,Promise.allSettled(ht).then(H=>{ae.delete(ne),H.every(rt=>rt.status==="fulfilled"&&rt.value===!0)&&Ee.set(Z.locatorHash,Ne)}))}if(await _c(Ae),we===ae.size){let ne=Array.from(ae).map(Z=>{let xe=this.storedPackages.get(Z);if(!xe)throw new Error("Assertion failed: The package should have been registered");return qr(this.configuration,xe)}).join(", ");r.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ne})`);break}}this.storedBuildState=Ee,this.skippedBuilds=L}async installWithNewReport(e,r){return(await Rt.start({configuration:this.configuration,json:e.json,stdout:e.stdout,forceSectionAlignment:!0,includeLogs:!e.json&&!e.quiet,includeVersion:!0},async a=>{await this.install({...r,report:a})})).exitCode()}async install(e){let r=this.configuration.get("nodeLinker");Ke.telemetry?.reportInstall(r);let o=!1;if(await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{this.configuration.get("enableOfflineMode")&&e.report.reportWarning(90,"Offline work is enabled; Yarn won't fetch packages from the remote registry if it can avoid it"),await this.configuration.triggerHook(E=>E.validateProject,this,{reportWarning:(E,I)=>{e.report.reportWarning(E,I)},reportError:(E,I)=>{e.report.reportError(E,I),o=!0}})}),o)return;let a=await this.configuration.getPackageExtensions();for(let E of a.values())for(let[,I]of E)for(let v of I)v.status="inactive";let n=K.join(this.cwd,dr.lockfile),u=null;if(e.immutable)try{u=await oe.readFilePromise(n,"utf8")}catch(E){throw E.code==="ENOENT"?new Jt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):E}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{LAt(this,e.report);for(let[,E]of a)for(let[,I]of E)for(let v of I)if(v.userProvided){let x=Ot(this.configuration,v,yt.PACKAGE_EXTENSION);switch(v.status){case"inactive":e.report.reportWarning(68,`${x}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${x}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(u!==null){let E=L0(u,this.generateLockfile());if(E!==u){let I=dpe(n,n,u,E,void 0,void 0,{maxEditLength:100});if(I){e.report.reportSeparator();for(let v of I.hunks){e.report.reportInfo(null,`@@ -${v.oldStart},${v.oldLines} +${v.newStart},${v.newLines} @@`);for(let x of v.lines)x.startsWith("+")?e.report.reportError(28,Ot(this.configuration,x,yt.ADDED)):x.startsWith("-")?e.report.reportError(28,Ot(this.configuration,x,yt.REMOVED)):e.report.reportInfo(null,Ot(this.configuration,x,"grey"))}e.report.reportSeparator()}throw new Jt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let E of a.values())for(let[,I]of E)for(let v of I)v.userProvided&&v.status==="active"&&Ke.telemetry?.reportPackageExtension(pg(v,yt.PACKAGE_EXTENSION));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e)});let A=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],p=await Promise.all(A.map(async E=>IS(E,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${Ot(this.configuration,"mode=update-lockfile",yt.CODE)}`);return}await this.linkEverything(e);let E=await Promise.all(A.map(async I=>IS(I,{cwd:this.cwd})));for(let I=0;I<A.length;++I)p[I]!==E[I]&&e.report.reportError(64,`The checksum for ${A[I]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile();let h=!1;await e.report.startTimerPromise("Post-install validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(E=>E.validateProjectAfterInstall,this,{reportWarning:(E,I)=>{e.report.reportWarning(E,I)},reportError:(E,I)=>{e.report.reportError(E,I),h=!0}})}),!h&&await this.configuration.triggerHook(E=>E.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,u]of this.storedResolutions.entries()){let A=e.get(u);A||e.set(u,A=new Set),A.add(n)}let r={},{cacheKey:o}=Gr.getCacheKey(this.configuration);r.__metadata={version:Gx,cacheKey:o};for(let[n,u]of e.entries()){let A=this.originalPackages.get(n);if(!A)continue;let p=[];for(let I of u){let v=this.storedDescriptors.get(I);if(!v)throw new Error("Assertion failed: The descriptor should have been registered");p.push(v)}let h=p.map(I=>xa(I)).sort().join(", "),E=new Ut;E.version=A.linkType==="HARD"?A.version:"0.0.0-use.local",E.languageName=A.languageName,E.dependencies=new Map(A.dependencies),E.peerDependencies=new Map(A.peerDependencies),E.dependenciesMeta=new Map(A.dependenciesMeta),E.peerDependenciesMeta=new Map(A.peerDependenciesMeta),E.bin=new Map(A.bin),r[h]={...E.exportTo({},{compatibilityMode:!1}),linkType:A.linkType.toLowerCase(),resolution:ka(A),checksum:this.storedChecksums.get(A.locatorHash),conditions:A.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. -`,`# Manual changes might be lost - proceed with caution! -`].join("")} -`+Da(r)}async persistLockfile(){let e=K.join(this.cwd,dr.lockfile),r="";try{r=await oe.readFilePromise(e,"utf8")}catch{}let o=this.generateLockfile(),a=L0(r,o);a!==r&&(await oe.writeFilePromise(e,a),this.lockFileChecksum=$pe(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let u of Object.values(w_))e.push(...u);let r=(0,qx.default)(this,e),o=I_.default.serialize(r),a=zi(o);if(this.installStateChecksum===a)return;let n=this.configuration.get("installStatePath");await oe.mkdirPromise(K.dirname(n),{recursive:!0}),await oe.writeFilePromise(n,await FAt(o)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:o=!0}={}){let a=this.configuration.get("installStatePath"),n;try{let u=await RAt(await oe.readFilePromise(a));n=I_.default.deserialize(u),this.installStateChecksum=zi(u)}catch{r&&await this.applyLightResolution();return}e&&typeof n.linkersCustomData<"u"&&(this.linkersCustomData=n.linkersCustomData),o&&Object.assign(this,(0,qx.default)(n,w_.restoreBuildState)),r&&(n.lockFileChecksum===this.lockFileChecksum?Object.assign(this,(0,qx.default)(n,w_.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new ki}),await this.persistInstallStateFile()}async persist(){let e=(0,jx.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>e(()=>r.persistManifest()))])}async cacheCleanup({cache:e,report:r}){if(this.configuration.get("enableGlobalCache"))return null;let o=new Set([".gitignore"]);if(!fO(e.cwd,this.cwd)||!await oe.existsPromise(e.cwd))return null;let a=[];for(let u of await oe.readdirPromise(e.cwd)){if(o.has(u))continue;let A=K.resolve(e.cwd,u);e.markedFiles.has(A)||(e.immutable?r.reportError(56,`${Ot(this.configuration,K.basename(A),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):a.push(oe.lstatPromise(A).then(async p=>(await oe.removePromise(A),p.size))))}if(a.length===0)return null;let n=await Promise.all(a);return{count:a.length,size:n.reduce((u,A)=>u+A,0)}}}});function MAt(t){let o=Math.floor(t.timeNow/864e5),a=t.updateInterval*864e5,n=t.state.lastUpdate??t.timeNow+a+Math.floor(a*t.randomInitialInterval),u=n+a,A=t.state.lastTips??o*864e5,p=A+864e5+8*36e5-t.timeZone,h=u<=t.timeNow,E=p<=t.timeNow,I=null;return(h||E||!t.state.lastUpdate||!t.state.lastTips)&&(I={},I.lastUpdate=h?t.timeNow:n,I.lastTips=A,I.blocks=h?{}:t.state.blocks,I.displayedTips=t.state.displayedTips),{nextState:I,triggerUpdate:h,triggerTips:E,nextTips:E?o*864e5:A}}var Oy,rhe=Et(()=>{Pt();w1();th();Ab();ql();bf();Oy=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.nextTips=0;this.displayedTips=[];this.shouldCommitTips=!1;this.configuration=e;let o=this.getRegistryPath();this.isNew=!oe.existsSync(o),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(e){let r=new Set(this.displayedTips),o=A=>A&&nn?tA(nn,A):!1,a=e.map((A,p)=>p).filter(A=>e[A]&&o(e[A]?.selector));if(a.length===0)return null;let n=a.filter(A=>!r.has(A));if(n.length===0){let A=Math.floor(a.length*.2);this.displayedTips=A>0?this.displayedTips.slice(-A):[],n=a.filter(p=>!r.has(p))}let u=n[Math.floor(Math.random()*n.length)];return this.displayedTips.push(u),this.commitTips(),e[u]}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"<none>")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,r){bm(this.values,e).add(r)}reportEnumerator(e,r){bm(this.enumerators,e).add(zi(r))}reportHit(e,r="*"){let o=kI(this.hits,e),a=al(o,r,()=>0);o.set(r,a+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return K.join(e,"telemetry.json")}sendReport(e){let r=this.getRegistryPath(),o;try{o=oe.readJsonSync(r)}catch{o={}}let{nextState:a,triggerUpdate:n,triggerTips:u,nextTips:A}=MAt({state:o,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=A,this.displayedTips=o.displayedTips??[],a!==null)try{oe.mkdirSync(K.dirname(r),{recursive:!0}),oe.writeJsonSync(r,a)}catch{return!1}if(u&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),n){let p=o.blocks??{};if(Object.keys(p).length===0){let h=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,E=I=>x4(h,I,{configuration:this.configuration}).catch(()=>{});for(let[I,v]of Object.entries(o.blocks??{})){if(Object.keys(v).length===0)continue;let x=v;x.userId=I,x.reportType="primary";for(let L of Object.keys(x.enumerators??{}))x.enumerators[L]=x.enumerators[L].length;E(x);let C=new Map,R=20;for(let[L,U]of Object.entries(x.values))U.length>0&&C.set(L,U.slice(0,R));for(;C.size>0;){let L={};L.userId=I,L.reportType="secondary",L.metrics={};for(let[U,z]of C)L.metrics[U]=z.shift(),z.length===0&&C.delete(U);E(L)}}}}return!0}applyChanges(){let e=this.getRegistryPath(),r;try{r=oe.readJsonSync(e)}catch{r={}}let o=this.configuration.get("telemetryUserId")??"*",a=r.blocks=r.blocks??{},n=a[o]=a[o]??{};for(let u of this.hits.keys()){let A=n.hits=n.hits??{},p=A[u]=A[u]??{};for(let[h,E]of this.hits.get(u))p[h]=(p[h]??0)+E}for(let u of["values","enumerators"])for(let A of this[u].keys()){let p=n[u]=n[u]??{};p[A]=[...new Set([...p[A]??[],...this[u].get(A)??[]])]}this.shouldCommitTips&&(r.lastTips=this.nextTips,r.displayedTips=this.displayedTips),oe.mkdirSync(K.dirname(e),{recursive:!0}),oe.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}}});var Y1={};Vt(Y1,{BuildDirectiveType:()=>Mx,CACHE_CHECKPOINT:()=>r_,CACHE_VERSION:()=>Lx,Cache:()=>Gr,Configuration:()=>Ke,DEFAULT_RC_FILENAME:()=>L4,FormatType:()=>Tle,InstallMode:()=>hl,LEGACY_PLUGINS:()=>l1,LOCKFILE_VERSION:()=>Gx,LegacyMigrationResolver:()=>Ty,LightReport:()=>AA,LinkType:()=>Fm,LockfileResolver:()=>Ny,Manifest:()=>Ut,MessageName:()=>wr,MultiFetcher:()=>Wm,PackageExtensionStatus:()=>pL,PackageExtensionType:()=>fL,PeerWarningType:()=>Yx,Project:()=>kt,Report:()=>Zs,ReportError:()=>Jt,SettingsType:()=>c1,StreamReport:()=>Rt,TAG_REGEXP:()=>ly,TelemetryManager:()=>Oy,ThrowReport:()=>ki,VirtualFetcher:()=>Km,WindowsLinkType:()=>yb,Workspace:()=>My,WorkspaceFetcher:()=>Vm,WorkspaceResolver:()=>ei,YarnVersion:()=>nn,execUtils:()=>Ur,folderUtils:()=>RS,formatUtils:()=>pe,hashUtils:()=>wn,httpUtils:()=>sn,miscUtils:()=>He,nodeUtils:()=>Xi,parseMessageName:()=>ZD,reportOptionDeprecations:()=>uy,scriptUtils:()=>An,semverUtils:()=>Lr,stringifyMessageName:()=>Ku,structUtils:()=>G,tgzUtils:()=>$i,treeUtils:()=>fs});var Ge=Et(()=>{hb();TS();jl();th();Ab();ql();pb();dU();bf();bo();rpe();cpe();n_();u1();u1();Ape();i_();fpe();s_();Gm();$D();tO();the();Wl();I1();rhe();E_();nO();iO();mg();C_();w1();Cne()});var lhe=_(($_t,K1)=>{"use strict";var UAt=process.env.TERM_PROGRAM==="Hyper",_At=process.platform==="win32",she=process.platform==="linux",D_={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},ohe=Object.assign({},D_,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),ahe=Object.assign({},D_,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:she?"\u25B8":"\u276F",pointerSmall:she?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});K1.exports=_At&&!UAt?ohe:ahe;Reflect.defineProperty(K1.exports,"common",{enumerable:!1,value:D_});Reflect.defineProperty(K1.exports,"windows",{enumerable:!1,value:ohe});Reflect.defineProperty(K1.exports,"other",{enumerable:!1,value:ahe})});var zc=_((e8t,P_)=>{"use strict";var HAt=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),qAt=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,che=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(t.enabled=process.env.FORCE_COLOR!=="0");let e=n=>{let u=n.open=`\x1B[${n.codes[0]}m`,A=n.close=`\x1B[${n.codes[1]}m`,p=n.regex=new RegExp(`\\u001b\\[${n.codes[1]}m`,"g");return n.wrap=(h,E)=>{h.includes(A)&&(h=h.replace(p,A+u));let I=u+h+A;return E?I.replace(/\r*\n/g,`${A}$&${u}`):I},n},r=(n,u,A)=>typeof n=="function"?n(u):n.wrap(u,A),o=(n,u)=>{if(n===""||n==null)return"";if(t.enabled===!1)return n;if(t.visible===!1)return"";let A=""+n,p=A.includes(` -`),h=u.length;for(h>0&&u.includes("unstyle")&&(u=[...new Set(["unstyle",...u])].reverse());h-- >0;)A=r(t.styles[u[h]],A,p);return A},a=(n,u,A)=>{t.styles[n]=e({name:n,codes:u}),(t.keys[A]||(t.keys[A]=[])).push(n),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(h){t.alias(n,h)},get(){let h=E=>o(E,h.stack);return Reflect.setPrototypeOf(h,t),h.stack=this.stack?this.stack.concat(n):[n],h}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=qAt,t.hasColor=t.hasAnsi=n=>(t.ansiRegex.lastIndex=0,typeof n=="string"&&n!==""&&t.ansiRegex.test(n)),t.alias=(n,u)=>{let A=typeof u=="string"?t[u]:u;if(typeof A!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");A.stack||(Reflect.defineProperty(A,"name",{value:n}),t.styles[n]=A,A.stack=[n]),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(p){t.alias(n,p)},get(){let p=h=>o(h,p.stack);return Reflect.setPrototypeOf(p,t),p.stack=this.stack?this.stack.concat(A.stack):A.stack,p}})},t.theme=n=>{if(!HAt(n))throw new TypeError("Expected theme to be an object");for(let u of Object.keys(n))t.alias(u,n[u]);return t},t.alias("unstyle",n=>typeof n=="string"&&n!==""?(t.ansiRegex.lastIndex=0,n.replace(t.ansiRegex,"")):""),t.alias("noop",n=>n),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=lhe(),t.define=a,t};P_.exports=che();P_.exports.create=che});var No=_(on=>{"use strict";var jAt=Object.prototype.toString,rc=zc(),uhe=!1,S_=[],Ahe={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};on.longest=(t,e)=>t.reduce((r,o)=>Math.max(r,e?o[e].length:o.length),0);on.hasColor=t=>!!t&&rc.hasColor(t);var Kx=on.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);on.nativeType=t=>jAt.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");on.isAsyncFn=t=>on.nativeType(t)==="asyncfunction";on.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";on.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;on.scrollDown=(t=[])=>[...t.slice(1),t[0]];on.scrollUp=(t=[])=>[t.pop(),...t];on.reorder=(t=[])=>{let e=t.slice();return e.sort((r,o)=>r.index>o.index?1:r.index<o.index?-1:0),e};on.swap=(t,e,r)=>{let o=t.length,a=r===o?0:r<0?o-1:r,n=t[e];t[e]=t[a],t[a]=n};on.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};on.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};on.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:o=` -`+r,width:a=80}=e,n=(o+r).match(/[^\S\n]/g)||[];a-=n.length;let u=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,A=t.trim(),p=new RegExp(u,"g"),h=A.match(p)||[];return h=h.map(E=>E.replace(/\n$/,"")),e.padEnd&&(h=h.map(E=>E.padEnd(a," "))),e.padStart&&(h=h.map(E=>E.padStart(a," "))),r+h.join(o)};on.unmute=t=>{let e=t.stack.find(o=>rc.keys.color.includes(o));return e?rc[e]:t.stack.find(o=>o.slice(2)==="bg")?rc[e.slice(2)]:o=>o};on.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";on.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>rc.keys.color.includes(o));if(e){let o=rc["bg"+on.pascal(e)];return o?o.black:t}let r=t.stack.find(o=>o.slice(0,2)==="bg");return r?rc[r.slice(2).toLowerCase()]||t:rc.none};on.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>rc.keys.color.includes(o)),r=t.stack.find(o=>o.slice(0,2)==="bg");if(e&&!r)return rc[Ahe[e]||e];if(r){let o=r.slice(2).toLowerCase(),a=Ahe[o];return a&&rc["bg"+on.pascal(a)]||t}return rc.none};on.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),o=e>=12?"pm":"am";e=e%12;let a=e===0?12:e,n=r<10?"0"+r:r;return a+":"+n+" "+o};on.set=(t={},e="",r)=>e.split(".").reduce((o,a,n,u)=>{let A=u.length-1>n?o[a]||{}:r;return!on.isObject(A)&&n<u.length-1&&(A={}),o[a]=A},t);on.get=(t={},e="",r)=>{let o=t[e]==null?e.split(".").reduce((a,n)=>a&&a[n],t):t[e];return o??r};on.mixin=(t,e)=>{if(!Kx(t))return e;if(!Kx(e))return t;for(let r of Object.keys(e)){let o=Object.getOwnPropertyDescriptor(e,r);if(o.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&Kx(o.value)){let a=Object.getOwnPropertyDescriptor(t,r);Kx(a.value)?t[r]=on.merge({},t[r],e[r]):Reflect.defineProperty(t,r,o)}else Reflect.defineProperty(t,r,o);else Reflect.defineProperty(t,r,o)}return t};on.merge=(...t)=>{let e={};for(let r of t)on.mixin(e,r);return e};on.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let o of Object.keys(r)){let a=r[o];typeof a=="function"?on.define(t,o,a.bind(e)):on.define(t,o,a)}};on.onExit=t=>{let e=(r,o)=>{uhe||(uhe=!0,S_.forEach(a=>a()),r===!0&&process.exit(128+o))};S_.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),S_.push(t)};on.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};on.defineExport=(t,e,r)=>{let o;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(a){o=a},get(){return o?o():r()}})}});var fhe=_(qy=>{"use strict";qy.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};qy.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};qy.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};qy.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};qy.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var ghe=_((n8t,hhe)=>{"use strict";var phe=ve("readline"),GAt=fhe(),YAt=/^(?:\x1b)([a-zA-Z0-9])$/,WAt=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,KAt={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function VAt(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function zAt(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var Vx=(t="",e={})=>{let r,o={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,...e};if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=o.sequence||""),o.sequence=o.sequence||t||o.name,t==="\r")o.raw=void 0,o.name="return";else if(t===` -`)o.name="enter";else if(t===" ")o.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x1B\x7F"||t==="\x1B\b")o.name="backspace",o.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")o.name="escape",o.meta=t.length===2;else if(t===" "||t==="\x1B ")o.name="space",o.meta=t.length===2;else if(t<="")o.name=String.fromCharCode(t.charCodeAt(0)+97-1),o.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")o.name="number";else if(t.length===1&&t>="a"&&t<="z")o.name=t;else if(t.length===1&&t>="A"&&t<="Z")o.name=t.toLowerCase(),o.shift=!0;else if(r=YAt.exec(t))o.meta=!0,o.shift=/^[A-Z]$/.test(r[1]);else if(r=WAt.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(o.option=!0);let n=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),u=(r[3]||r[5]||1)-1;o.ctrl=!!(u&4),o.meta=!!(u&10),o.shift=!!(u&1),o.code=n,o.name=KAt[n],o.shift=VAt(n)||o.shift,o.ctrl=zAt(n)||o.ctrl}return o};Vx.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let o=phe.createInterface({terminal:!0,input:r});phe.emitKeypressEvents(r,o);let a=(A,p)=>e(A,Vx(A,p),o),n=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a),o.resume(),()=>{r.isTTY&&r.setRawMode(n),r.removeListener("keypress",a),o.pause(),o.close()}};Vx.action=(t,e,r)=>{let o={...GAt,...r};return e.ctrl?(e.action=o.ctrl[e.name],e):e.option&&o.option?(e.action=o.option[e.name],e):e.shift?(e.action=o.shift[e.name],e):(e.action=o.keys[e.name],e)};hhe.exports=Vx});var mhe=_((i8t,dhe)=>{"use strict";dhe.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(e)for(let r of Object.keys(e)){let o=e[r];typeof o=="number"&&(o={interval:o}),JAt(t,r,o)}};function JAt(t,e,r={}){let o=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},a=r.interval||120;o.frames=r.frames||[],o.loading=!0;let n=setInterval(()=>{o.ms=Date.now()-o.start,o.tick++,t.render()},a);return o.stop=()=>{o.loading=!1,clearInterval(n)},Reflect.defineProperty(o,"interval",{value:n}),t.once("close",()=>o.stop()),o.stop}});var Ehe=_((s8t,yhe)=>{"use strict";var{define:XAt,width:ZAt}=No(),b_=class{constructor(e){let r=e.options;XAt(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=ZAt(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};yhe.exports=b_});var whe=_((o8t,Che)=>{"use strict";var x_=No(),eo=zc(),k_={default:eo.noop,noop:eo.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||x_.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||x_.complement(this.primary)},primary:eo.cyan,success:eo.green,danger:eo.magenta,strong:eo.bold,warning:eo.yellow,muted:eo.dim,disabled:eo.gray,dark:eo.dim.gray,underline:eo.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};k_.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(eo.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(eo.visible=t.styles.visible);let e=x_.merge({},k_,t.styles);delete e.merge;for(let r of Object.keys(eo))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>eo[r]});for(let r of Object.keys(eo.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>eo[r]});return e};Che.exports=k_});var Bhe=_((a8t,Ihe)=>{"use strict";var Q_=process.platform==="win32",Yf=zc(),$At=No(),F_={...Yf.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Yf.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Yf.symbols.question,submitted:Yf.symbols.check,cancelled:Yf.symbols.cross},separator:{pending:Yf.symbols.pointerSmall,submitted:Yf.symbols.middot,cancelled:Yf.symbols.middot},radio:{off:Q_?"( )":"\u25EF",on:Q_?"(*)":"\u25C9",disabled:Q_?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};F_.merge=t=>{let e=$At.merge({},Yf.symbols,F_,t.symbols);return delete e.merge,e};Ihe.exports=F_});var Dhe=_((l8t,vhe)=>{"use strict";var eft=whe(),tft=Bhe(),rft=No();vhe.exports=t=>{t.options=rft.merge({},t.options.theme,t.options),t.symbols=tft.merge(t.options),t.styles=eft.merge(t.options)}});var khe=_((bhe,xhe)=>{"use strict";var Phe=process.env.TERM_PROGRAM==="Apple_Terminal",nft=zc(),R_=No(),Jc=xhe.exports=bhe,vi="\x1B[",She="\x07",T_=!1,Dh=Jc.code={bell:She,beep:She,beginning:`${vi}G`,down:`${vi}J`,esc:vi,getPosition:`${vi}6n`,hide:`${vi}?25l`,line:`${vi}2K`,lineEnd:`${vi}K`,lineStart:`${vi}1K`,restorePosition:vi+(Phe?"8":"u"),savePosition:vi+(Phe?"7":"s"),screen:`${vi}2J`,show:`${vi}?25h`,up:`${vi}1J`},Og=Jc.cursor={get hidden(){return T_},hide(){return T_=!0,Dh.hide},show(){return T_=!1,Dh.show},forward:(t=1)=>`${vi}${t}C`,backward:(t=1)=>`${vi}${t}D`,nextLine:(t=1)=>`${vi}E`.repeat(t),prevLine:(t=1)=>`${vi}F`.repeat(t),up:(t=1)=>t?`${vi}${t}A`:"",down:(t=1)=>t?`${vi}${t}B`:"",right:(t=1)=>t?`${vi}${t}C`:"",left:(t=1)=>t?`${vi}${t}D`:"",to(t,e){return e?`${vi}${e+1};${t+1}H`:`${vi}${t+1}G`},move(t=0,e=0){let r="";return r+=t<0?Og.left(-t):t>0?Og.right(t):"",r+=e<0?Og.up(-e):e>0?Og.down(e):"",r},restore(t={}){let{after:e,cursor:r,initial:o,input:a,prompt:n,size:u,value:A}=t;if(o=R_.isPrimitive(o)?String(o):"",a=R_.isPrimitive(a)?String(a):"",A=R_.isPrimitive(A)?String(A):"",u){let p=Jc.cursor.up(u)+Jc.cursor.to(n.length),h=a.length-r;return h>0&&(p+=Jc.cursor.left(h)),p}if(A||e){let p=!a&&o?-o.length:-a.length+r;return e&&(p-=e.length),a===""&&o&&!n.includes(o)&&(p+=o.length),Jc.cursor.move(p)}}},N_=Jc.erase={screen:Dh.screen,up:Dh.up,down:Dh.down,line:Dh.line,lineEnd:Dh.lineEnd,lineStart:Dh.lineStart,lines(t){let e="";for(let r=0;r<t;r++)e+=Jc.erase.line+(r<t-1?Jc.cursor.up(1):"");return t&&(e+=Jc.code.beginning),e}};Jc.clear=(t="",e=process.stdout.columns)=>{if(!e)return N_.line+Og.to(0);let r=n=>[...nft.unstyle(n)].length,o=t.split(/\r?\n/),a=0;for(let n of o)a+=1+Math.floor(Math.max(r(n)-1,0)/e);return(N_.line+Og.prevLine()).repeat(a-1)+N_.line+Og.to(0)}});var jy=_((c8t,Fhe)=>{"use strict";var ift=ve("events"),Qhe=zc(),L_=ghe(),sft=mhe(),oft=Ehe(),aft=Dhe(),Na=No(),Ug=khe(),M_=class t extends ift{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,aft(this),sft(this),this.state=new oft(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=cft(this.options.margin),this.setMaxListeners(0),lft(this)}async keypress(e,r={}){this.keypressed=!0;let o=L_.action(e,L_(e,r),this.options.actions);this.state.keypress=o,this.emit("keypress",e,o),this.emit("state",this.state.clone());let a=this.options[o.action]||this[o.action]||this.dispatch;if(typeof a=="function")return await a.call(this,e,o);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Ug.code.beep)}cursorHide(){this.stdout.write(Ug.cursor.hide()),Na.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Ug.cursor.show())}write(e){e&&(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!e||this.options.show===!1)&&this.stdout.write(Ug.cursor.down(e)+Ug.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:o}=this.sections(),{cursor:a,initial:n="",input:u="",value:A=""}=this,p=this.state.size=o.length,h={after:r,cursor:a,initial:n,input:u,prompt:e,size:p,value:A},E=Ug.cursor.restore(h);E&&this.stdout.write(E)}sections(){let{buffer:e,input:r,prompt:o}=this.state;o=Qhe.unstyle(o);let a=Qhe.unstyle(e),n=a.indexOf(o),u=a.slice(0,n),p=a.slice(n).split(` -`),h=p[0],E=p[p.length-1],v=(o+(r?" "+r:"")).length,x=v<h.length?h.slice(v+1):"";return{header:u,prompt:h,after:x,rest:p.slice(1),last:E}}async submit(){this.state.submitted=!0,this.state.validating=!0,this.options.onSubmit&&await this.options.onSubmit.call(this,this.name,this.value,this);let e=this.state.error||await this.validate(this.value,this.state);if(e!==!0){let r=` -`+this.symbols.pointer+" ";typeof e=="string"?r+=e.trim():r+="Invalid input",this.state.error=` -`+this.styles.danger(r),this.state.submitted=!1,await this.render(),await this.alert(),this.state.validating=!1,this.state.error=void 0;return}this.state.validating=!1,await this.render(),await this.close(),this.value=await this.result(this.value),this.emit("submit",this.value)}async cancel(e){this.state.cancelled=this.state.submitted=!0,await this.render(),await this.close(),typeof this.options.onCancel=="function"&&await this.options.onCancel.call(this,this.name,this.value,this),this.emit("cancel",await this.error(e))}async close(){this.state.closed=!0;try{let e=this.sections(),r=Math.ceil(e.prompt.length/this.width);e.rest&&this.write(Ug.cursor.down(e.rest.length)),this.write(` -`.repeat(r))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=L_.listen(this,this.keypress.bind(this)),this.once("close",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:r,result:o}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>o.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),n=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),n())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,o){let{options:a,state:n,symbols:u,timers:A}=this,p=A&&A[e];n.timer=p;let h=a[e]||n[e]||u[e],E=r&&r[e]!=null?r[e]:await h;if(E==="")return E;let I=await this.resolve(E,n,r,o);return!I&&r&&r[e]?this.resolve(h,n,r,o):I}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,o=this.state;return o.timer=r,Na.isObject(e)&&(e=e[o.status]||e.pending),Na.hasColor(e)?e:(this.styles[o.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Na.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,o=this.state;o.timer=r;let a=e[o.status]||e.pending||o.separator,n=await this.resolve(a,o);return Na.isObject(n)&&(n=n[o.status]||n.pending),Na.hasColor(n)?n:this.styles.muted(n)}async pointer(e,r){let o=await this.element("pointer",e,r);if(typeof o=="string"&&Na.hasColor(o))return o;if(o){let a=this.styles,n=this.index===r,u=n?a.primary:h=>h,A=await this.resolve(o[n?"on":"off"]||o,this.state),p=Na.hasColor(A)?A:u(A);return n?p:" ".repeat(A.length)}}async indicator(e,r){let o=await this.element("indicator",e,r);if(typeof o=="string"&&Na.hasColor(o))return o;if(o){let a=this.styles,n=e.enabled===!0,u=n?a.success:a.dark,A=o[n?"on":"off"]||o;return Na.hasColor(A)?A:u(A)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Na.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return Na.resolve(this,e,...r)}get base(){return t.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Na.height(this.stdout,25)}get width(){return this.options.columns||Na.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,o=[r,e].find(this.isValue.bind(this));return this.isValue(o)?o:this.initial}static get prompt(){return e=>new this(e).run()}};function lft(t){let e=a=>t[a]===void 0||typeof t[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],o=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(t.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let n=t.options[a];typeof n=="function"&&e(a)?o.includes(a)||(t[a]=n.bind(t)):typeof t[a]!="function"&&(t[a]=n)}}function cft(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=a=>a%2===0?` -`:" ",o=[];for(let a=0;a<4;a++){let n=r(a);e[a]?o.push(n.repeat(e[a])):o.push("")}return o}Fhe.exports=M_});var Nhe=_((u8t,The)=>{"use strict";var uft=No(),Rhe={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return Rhe.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};The.exports=(t,e={})=>{let r=uft.merge({},Rhe,e.roles);return r[t]||r.default}});var V1=_((A8t,Ohe)=>{"use strict";var Aft=zc(),fft=jy(),pft=Nhe(),zx=No(),{reorder:O_,scrollUp:hft,scrollDown:gft,isObject:Lhe,swap:dft}=zx,U_=class extends fft{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:o,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(n=>n.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");Lhe(r)&&(r=Object.keys(r)),Array.isArray(r)?(o!=null&&(this.index=this.findIndex(o)),r.forEach(n=>this.enable(this.find(n))),await this.render()):(o!=null&&(r=o),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let o=[],a=0,n=async(u,A)=>{typeof u=="function"&&(u=await u.call(this)),u instanceof Promise&&(u=await u);for(let p=0;p<u.length;p++){let h=u[p]=await this.toChoice(u[p],a++,A);o.push(h),h.choices&&await n(h.choices,h)}return o};return n(e,r).then(u=>(this.state.loadingChoices=!1,u))}async toChoice(e,r,o){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let a=e.value;if(e=pft(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,zx.define(e,"parent",o),e.level=o?o.level+1:1,e.indent==null&&(e.indent=o?o.indent+" ":e.indent||""),e.path=o?o.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,Aft.unstyle(e.message).length));let u={...e};return e.reset=(A=u.input,p=u.value)=>{for(let h of Object.keys(u))e[h]=u[h];e.input=A,e.value=p},a==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,o){let a=await this.toChoice(e,r,o);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(e,r,o){let a={name:"New choice name?",editable:!0,newChoice:!0,...e},n=await this.addChoice(a,r,o);return n.updateChoice=()=>{delete n.newChoice,n.name=n.message=n.input,n.input="",n.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelected<this.choices.length)return this.alert();let e=this.selectable.every(r=>r.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(a=>this.toggle(a,r));let o=e.parent;for(;o;){let a=o.choices.filter(n=>this.isDisabled(n));o.enabled=a.every(n=>n.enabled===!0),o=o.parent}return Mhe(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=o=>{let a=Number(o);if(a>this.choices.length-1)return this.alert();let n=this.focused,u=this.choices.find(A=>a===A.index);if(!u.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(u)===-1){let A=O_(this.choices),p=A.indexOf(u);if(n.index>p){let h=A.slice(p,p+this.limit),E=A.filter(I=>!h.includes(I));this.choices=h.concat(E)}else{let h=p-this.limit+1;this.choices=A.slice(h).concat(A.slice(0,h))}}return this.index=this.choices.indexOf(u),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(o=>{let a=this.choices.length,n=this.num,u=(A=!1,p)=>{clearTimeout(this.numberTimeout),A&&(p=r(n)),this.num="",o(p)};if(n==="0"||n.length===1&&+(n+"0")>a)return u(!0);if(Number(n)>a)return u(!1,this.alert());this.numberTimeout=setTimeout(()=>u(!0),this.delay)})}home(){return this.choices=O_(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=O_(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===0?this.alert():e>r&&o===0?this.scrollUp():(this.index=(o-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===r-1?this.alert():e>r&&o===r-1?this.scrollDown():(this.index=(o+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=hft(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=gft(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){dft(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(o=>e[o]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(o=>!this.isDisabled(o));return e.enabled&&r.every(o=>this.isEnabled(o))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r="value"){return[].concat(e||[]).reduce((o,a)=>(o[a]=this.find(a,r),o),{})}filter(e,r){let a=typeof e=="function"?e:(A,p)=>[A.name,p].includes(e),u=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?u.map(A=>A[r]):u}find(e,r){if(Lhe(e))return r?e[r]:e;let a=typeof e=="function"?e:(u,A)=>[u.name,A].includes(e),n=this.choices.find(a);if(n)return r?n[r]:n}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(u=>u.newChoice))return this.alert();let{reorder:r,sort:o}=this.options,a=this.multiple===!0,n=this.selected;return n===void 0?this.alert():(Array.isArray(n)&&r!==!1&&o!==!0&&(n=zx.reorder(n)),this.value=a?n.map(u=>u.name):n.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(o=>o.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let o=this.find(r);o&&(this.initial=o.index,this.focus(o,!0))}}}get choices(){return Mhe(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:o}=this,a=e.limit||this._limit||r.limit||o.length;return Math.min(a,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Mhe(t,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(zx.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let o=r.choices.filter(a=>!t.isDisabled(a));r.enabled=o.every(a=>a.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}Ohe.exports=U_});var Ph=_((f8t,Uhe)=>{"use strict";var mft=V1(),__=No(),H_=class extends mft{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):""}indicator(e,r){return this.multiple?super.indicator(e,r):""}choiceMessage(e,r){let o=this.resolve(e.message,this.state,e,r);return e.role==="heading"&&!__.hasColor(o)&&(o=this.styles.strong(o)),this.resolve(o,this.state,e,r)}choiceSeparator(){return":"}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await this.indicator(e,r)+(e.pad||""),u=await this.resolve(e.hint,this.state,e,r);u&&!__.hasColor(u)&&(u=this.styles.muted(u));let A=this.indent(e),p=await this.choiceMessage(e,r),h=()=>[this.margin[3],A+a+n,p,this.margin[1],u].filter(Boolean).join(" ");return e.role==="heading"?h():e.disabled?(__.hasColor(p)||(p=this.styles.disabled(p)),h()):(o&&(p=this.styles.em(p)),h())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(n,u)=>await this.renderChoice(n,u)),r=await Promise.all(e);r.length||r.push(this.styles.danger("No matching choices"));let o=this.margin[0]+r.join(` -`),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,o].filter(Boolean).join(` -`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,o="",a=await this.header(),n=await this.prefix(),u=await this.separator(),A=await this.message();this.options.promptLine!==!1&&(o=[n,A,u,""].join(" "),this.state.prompt=o);let p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),I=await this.footer();p&&(o+=p),h&&!o.includes(h)&&(o+=" "+h),e&&!p&&!E.trim()&&this.multiple&&this.emptyError!=null&&(o+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,o,E,I].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Uhe.exports=H_});var Hhe=_((p8t,_he)=>{"use strict";var yft=Ph(),Eft=(t,e)=>{let r=t.toLowerCase();return o=>{let n=o.toLowerCase().indexOf(r),u=e(o.slice(n,n+r.length));return n>=0?o.slice(0,n)+u+o.slice(n+r.length):o}},q_=class extends yft{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:o}=this.state;return this.input=o.slice(0,r)+e+o.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let o=e.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(o))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=Eft(this.input,e),o=this.choices;this.choices=o.map(a=>({...a,message:r(a.message)})),await super.render(),this.choices=o}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};_he.exports=q_});var G_=_((h8t,qhe)=>{"use strict";var j_=No();qhe.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:o="",pos:a,showCursor:n=!0,color:u}=e,A=u||t.styles.placeholder,p=j_.inverse(t.styles.primary),h=R=>p(t.styles.black(R)),E=r,I=" ",v=h(I);if(t.blink&&t.blink.off===!0&&(h=R=>R,v=""),n&&a===0&&o===""&&r==="")return h(I);if(n&&a===0&&(r===o||r===""))return h(o[0])+A(o.slice(1));o=j_.isPrimitive(o)?`${o}`:"",r=j_.isPrimitive(r)?`${r}`:"";let x=o&&o.startsWith(r)&&o!==r,C=x?h(o[r.length]):v;if(a!==r.length&&n===!0&&(E=r.slice(0,a)+h(r[a])+r.slice(a+1),C=""),n===!1&&(C=""),x){let R=t.styles.unstyle(E+C);return E+C+A(o.slice(R.length))}return E+C}});var Jx=_((g8t,jhe)=>{"use strict";var Cft=zc(),wft=Ph(),Ift=G_(),Y_=class extends wft{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:o,input:a}=r;return r.value=r.input=a.slice(0,o)+e+a.slice(o),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:o}=e;return e.value=e.input=o.slice(0,r-1)+o.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:o}=e;if(o[r]===void 0)return this.alert();let a=`${o}`.slice(0,r)+`${o}`.slice(r+1);return e.value=e.input=a,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:o}=e;return r&&r.startsWith(o)&&o!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let o=await this.resolve(e.separator,this.state,e,r)||":";return o?" "+this.styles.disabled(o):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:o,styles:a}=this,{cursor:n,initial:u="",name:A,hint:p,input:h=""}=e,{muted:E,submitted:I,primary:v,danger:x}=a,C=p,R=this.index===r,L=e.validate||(()=>!0),U=await this.choiceSeparator(e,r),z=e.message;this.align==="right"&&(z=z.padStart(this.longest+1," ")),this.align==="left"&&(z=z.padEnd(this.longest+1," "));let te=this.values[A]=h||u,ae=h?"success":"dark";await L.call(e,te,this.state)!==!0&&(ae="danger");let le=a[ae],ce=le(await this.indicator(e,r))+(e.pad||""),Ce=this.indent(e),de=()=>[Ce,ce,z+U,h,C].filter(Boolean).join(" ");if(o.submitted)return z=Cft.unstyle(z),h=I(h),C="",de();if(e.format)h=await e.format.call(this,h,e,r);else{let Be=this.styles.muted;h=Ift(this,{input:h,initial:u,pos:n,showCursor:R,color:Be})}return this.isValue(h)||(h=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[A]=await e.result.call(this,te,e,r)),R&&(z=v(z)),e.error?h+=(h?" ":"")+x(e.error.trim()):e.hint&&(h+=(h?" ":"")+E(e.hint.trim())),de()}async submit(){return this.value=this.values,super.base.submit.call(this)}};jhe.exports=Y_});var W_=_((d8t,Yhe)=>{"use strict";var Bft=Jx(),vft=()=>{throw new Error("expected prompt to have a custom authenticate method")},Ghe=(t=vft)=>{class e extends Bft{constructor(o){super(o)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(o){return Ghe(o)}}return e};Yhe.exports=Ghe()});var Vhe=_((m8t,Khe)=>{"use strict";var Dft=W_();function Pft(t,e){return t.username===this.options.username&&t.password===this.options.password}var Whe=(t=Pft)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(o){return this.options.showPassword?o:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(o.length))}}];class r extends Dft.create(t){constructor(a){super({...a,choices:e})}static create(a){return Whe(a)}}return r};Khe.exports=Whe()});var Xx=_((y8t,zhe)=>{"use strict";var Sft=jy(),{isPrimitive:bft,hasColor:xft}=No(),K_=class extends Sft{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:o}=this;return o.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return bft(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return xft(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=this.styles.muted(this.default),A=[o,n,u,a].filter(Boolean).join(" ");this.state.prompt=A;let p=await this.header(),h=this.value=this.cast(e),E=await this.format(h),I=await this.error()||await this.hint(),v=await this.footer();I&&!A.includes(I)&&(E+=" "+I),A+=" "+E,this.clear(r),this.write([p,A,v].filter(Boolean).join(` -`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};zhe.exports=K_});var Xhe=_((E8t,Jhe)=>{"use strict";var kft=Xx(),V_=class extends kft{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Jhe.exports=V_});var $he=_((C8t,Zhe)=>{"use strict";var Qft=Ph(),Fft=Jx(),Gy=Fft.prototype,z_=class extends Qft{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let o=this.focused,a=o.parent||{};return!o.editable&&!a.editable&&(e==="a"||e==="i")?super[e]():Gy.dispatch.call(this,e,r)}append(e,r){return Gy.append.call(this,e,r)}delete(e,r){return Gy.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Gy.next.call(this):super.next()}prev(){return this.focused.editable?Gy.prev.call(this):super.prev()}async indicator(e,r){let o=e.indicator||"",a=e.editable?o:super.indicator(e,r);return await this.resolve(a,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?Gy.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let o=r.parent?this.value[r.parent.name]:this.value;if(r.editable?o=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(o=r.enabled===!0),e=await r.validate(o,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Zhe.exports=z_});var _g=_((w8t,e0e)=>{"use strict";var Rft=jy(),Tft=G_(),{isPrimitive:Nft}=No(),J_=class extends Rft{constructor(e){super(e),this.initial=Nft(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let o=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!o||o.name!=="return")?this.append(` -`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:o}=this.state;this.input=`${o}`.slice(0,r)+e+`${o}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),o=this.input.slice(e),a=r.split(" ");this.state.clipboard.push(a.pop()),this.input=a.join(" "),this.cursor=this.input.length,this.input+=o,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):Tft(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),o=await this.separator(),a=await this.message(),n=[r,a,o].filter(Boolean).join(" ");this.state.prompt=n;let u=await this.header(),A=await this.format(),p=await this.error()||await this.hint(),h=await this.footer();p&&!A.includes(p)&&(A+=" "+p),n+=" "+A,this.clear(e),this.write([u,n,h].filter(Boolean).join(` -`)),this.restore()}};e0e.exports=J_});var r0e=_((I8t,t0e)=>{"use strict";var Lft=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),Zx=t=>Lft(t).filter(Boolean);t0e.exports=(t,e={},r="")=>{let{past:o=[],present:a=""}=e,n,u;switch(t){case"prev":case"undo":return n=o.slice(0,o.length-1),u=o[o.length-1]||"",{past:Zx([r,...n]),present:u};case"next":case"redo":return n=o.slice(1),u=o[0]||"",{past:Zx([...n,r]),present:u};case"save":return{past:Zx([...o,r]),present:""};case"remove":return u=Zx(o.filter(A=>A!==r)),a="",u.length&&(a=u.pop()),{past:u,present:a};default:throw new Error(`Invalid action: "${t}"`)}}});var Z_=_((B8t,i0e)=>{"use strict";var Mft=_g(),n0e=r0e(),X_=class extends Mft{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let o=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:o},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=n0e(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){this.store&&(this.data=n0e("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};i0e.exports=X_});var o0e=_((v8t,s0e)=>{"use strict";var Oft=_g(),$_=class extends Oft{format(){return""}};s0e.exports=$_});var l0e=_((D8t,a0e)=>{"use strict";var Uft=_g(),e8=class extends Uft{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};a0e.exports=e8});var u0e=_((P8t,c0e)=>{"use strict";var _ft=Ph(),t8=class extends _ft{constructor(e){super({...e,multiple:!0})}};c0e.exports=t8});var n8=_((S8t,A0e)=>{"use strict";var Hft=_g(),r8=class extends Hft{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,o=this.toNumber(this.input);return o>this.max+r?this.alert():(this.input=`${o+r}`,this.render())}down(e){let r=e||this.minor,o=this.toNumber(this.input);return o<this.min-r?this.alert():(this.input=`${o-r}`,this.render())}shiftDown(){return this.down(this.major)}shiftUp(){return this.up(this.major)}format(e=this.input){return typeof this.options.format=="function"?this.options.format.call(this,e):this.styles.info(e)}toNumber(e=""){return this.float?+e:Math.round(+e)}isValue(e){return/^[-+]?[0-9]+((\.)|(\.[0-9]+))?$/.test(e)}submit(){let e=[this.input,this.initial].find(r=>this.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};A0e.exports=r8});var p0e=_((b8t,f0e)=>{f0e.exports=n8()});var g0e=_((x8t,h0e)=>{"use strict";var qft=_g(),i8=class extends qft{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};h0e.exports=i8});var y0e=_((k8t,m0e)=>{"use strict";var jft=zc(),Gft=V1(),d0e=No(),s8=class extends Gft{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` - `;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((o,a)=>({name:a+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let o=0;o<this.scale.length;o++)r.scale.push({index:o})}this.widths[0]=Math.min(this.widths[0],e+3)}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}heading(e,r,o){return this.styles.strong(e)}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIndex>=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(o=>` ${o.name} - ${o.message}`)].map(o=>this.styles.muted(o)).join(` -`)}renderScaleHeading(e){let r=this.scale.map(p=>p.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let o=this.scaleLength-r.join("").length,a=Math.round(o/(r.length-1)),u=r.map(p=>this.styles.strong(p)).join(" ".repeat(a)),A=" ".repeat(this.widths[0]);return this.margin[3]+A+this.margin[1]+u}scaleIndicator(e,r,o){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,o);let a=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let o=e.scale.map(n=>this.scaleIndicator(e,n,r)),a=this.term==="Hyper"?"":" ";return o.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await e.hint;n&&!d0e.hasColor(n)&&(n=this.styles.muted(n));let u=C=>this.margin[3]+C.replace(/\s+$/,"").padEnd(this.widths[0]," "),A=this.newline,p=this.indent(e),h=await this.resolve(e.message,this.state,e,r),E=await this.renderScale(e,r),I=this.margin[1]+this.margin[3];this.scaleLength=jft.unstyle(E).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-I.length);let x=d0e.wordWrap(h,{width:this.widths[0],newline:A}).split(` -`).map(C=>u(C)+this.margin[1]);return o&&(E=this.styles.info(E),x=x.map(C=>this.styles.info(C))),x[0]+=E,this.linebreak&&x.push(""),[p+a,x.join(` -`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(a,n)=>await this.renderChoice(a,n)),r=await Promise.all(e),o=await this.renderScaleHeading();return this.margin[0]+[o,...r.map(a=>a.join(" "))].join(` -`)}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u="";this.options.promptLine!==!1&&(u=[o,n,a,""].join(" "),this.state.prompt=u);let A=await this.header(),p=await this.format(),h=await this.renderScaleKey(),E=await this.error()||await this.hint(),I=await this.renderChoices(),v=await this.footer(),x=this.emptyError;p&&(u+=p),E&&!u.includes(E)&&(u+=" "+E),e&&!p&&!I.trim()&&this.multiple&&x!=null&&(u+=this.styles.danger(x)),this.clear(r),this.write([A,u,h,I,v].filter(Boolean).join(` -`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};m0e.exports=s8});var w0e=_((Q8t,C0e)=>{"use strict";var E0e=zc(),Yft=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",a8=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=Yft(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Wft=async(t={},e={},r=o=>o)=>{let o=new Set,a=t.fields||[],n=t.template,u=[],A=[],p=[],h=1;typeof n=="function"&&(n=await n());let E=-1,I=()=>n[++E],v=()=>n[E+1],x=C=>{C.line=h,u.push(C)};for(x({type:"bos",value:""});E<n.length-1;){let C=I();if(/^[^\S\n ]$/.test(C)){x({type:"text",value:C});continue}if(C===` -`){x({type:"newline",value:C}),h++;continue}if(C==="\\"){C+=I(),x({type:"text",value:C});continue}if((C==="$"||C==="#"||C==="{")&&v()==="{"){let L=I();C+=L;let U={type:"template",open:C,inner:"",close:"",value:C},z;for(;z=I();){if(z==="}"){v()==="}"&&(z+=I()),U.value+=z,U.close=z;break}z===":"?(U.initial="",U.key=U.inner):U.initial!==void 0&&(U.initial+=z),U.value+=z,U.inner+=z}U.template=U.open+(U.initial||U.inner)+U.close,U.key=U.key||U.inner,e.hasOwnProperty(U.key)&&(U.initial=e[U.key]),U=r(U),x(U),p.push(U.key),o.add(U.key);let te=A.find(ae=>ae.name===U.key);U.field=a.find(ae=>ae.name===U.key),te||(te=new a8(U),A.push(te)),te.lines.push(U.line-1);continue}let R=u[u.length-1];R.type==="text"&&R.line===h?R.value+=C:x({type:"text",value:C})}return x({type:"eos",value:""}),{input:n,tabstops:u,unique:o,keys:p,items:A}};C0e.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),o={...e.values,...e.initial},{tabstops:a,items:n,keys:u}=await Wft(e,o),A=o8("result",t,e),p=o8("format",t,e),h=o8("validate",t,e,!0),E=t.isValue.bind(t);return async(I={},v=!1)=>{let x=0;I.required=r,I.items=n,I.keys=u,I.output="";let C=async(z,te,ae,le)=>{let ce=await h(z,te,ae,le);return ce===!1?"Invalid field "+ae.name:ce};for(let z of a){let te=z.value,ae=z.key;if(z.type!=="template"){te&&(I.output+=te);continue}if(z.type==="template"){let le=n.find(Ee=>Ee.name===ae);e.required===!0&&I.required.add(le.name);let ce=[le.input,I.values[le.value],le.value,te].find(E),de=(le.field||{}).message||z.inner;if(v){let Ee=await C(I.values[ae],I,le,x);if(Ee&&typeof Ee=="string"||Ee===!1){I.invalid.set(ae,Ee);continue}I.invalid.delete(ae);let g=await A(I.values[ae],I,le,x);I.output+=E0e.unstyle(g);continue}le.placeholder=!1;let Be=te;te=await p(te,I,le,x),ce!==te?(I.values[ae]=ce,te=t.styles.typing(ce),I.missing.delete(de)):(I.values[ae]=void 0,ce=`<${de}>`,te=t.styles.primary(ce),le.placeholder=!0,I.required.has(ae)&&I.missing.add(de)),I.missing.has(de)&&I.validating&&(te=t.styles.warning(ce)),I.invalid.has(ae)&&I.validating&&(te=t.styles.danger(ce)),x===I.index&&(Be!==te?te=t.styles.underline(te):te=t.styles.heading(E0e.unstyle(te))),x++}te&&(I.output+=te)}let R=I.output.split(` -`).map(z=>" "+z),L=n.length,U=0;for(let z of n)I.invalid.has(z.name)&&z.lines.forEach(te=>{R[te][0]===" "&&(R[te]=I.styles.danger(I.symbols.bullet)+R[te].slice(1))}),t.isValue(I.values[z.name])&&U++;return I.completed=(U/L*100).toFixed(0),I.output=R.join(` -`),I.output}};function o8(t,e,r,o){return(a,n,u,A)=>typeof u.field[t]=="function"?u.field[t].call(e,a,n,u,A):[o,a].find(p=>e.isValue(p))}});var B0e=_((F8t,I0e)=>{"use strict";var Kft=zc(),Vft=w0e(),zft=jy(),l8=class extends zft{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Vft(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let o=this.getItem(),a=o.input.slice(0,this.cursor),n=o.input.slice(this.cursor);this.input=o.input=`${a}${e}${n}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),o=e.input.slice(0,this.cursor-1);this.input=e.input=`${o}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:o,size:a}=this.state,n=[this.options.newline,` -`].find(z=>z!=null),u=await this.prefix(),A=await this.separator(),p=await this.message(),h=[u,p,A].filter(Boolean).join(" ");this.state.prompt=h;let E=await this.header(),I=await this.error()||"",v=await this.hint()||"",x=o?"":await this.interpolate(this.state),C=this.state.key=r[e]||"",R=await this.format(C),L=await this.footer();R&&(h+=" "+R),v&&!R&&this.state.completed===0&&(h+=" "+v),this.clear(a);let U=[E,h,x,L,I.trim()];this.write(U.filter(Boolean).join(n)),this.restore()}getItem(e){let{items:r,keys:o,index:a}=this.state,n=r.find(u=>u.name===o[a]);return n&&n.input!=null&&(this.input=n.input,this.cursor=n.cursor),n}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:o,values:a}=this.state;if(e.size){let A="";for(let[p,h]of e)A+=`Invalid ${p}: ${h} -`;return this.state.error=A,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let u=Kft.unstyle(o).split(` -`).map(A=>A.slice(1)).join(` -`);return this.value={values:a,result:u},super.submit()}};I0e.exports=l8});var D0e=_((R8t,v0e)=>{"use strict";var Jft="(Use <shift>+<up/down> to sort)",Xft=Ph(),c8=class extends Xft{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,Jft].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let o=await super.renderChoice(e,r),a=this.symbols.identicalTo+" ",n=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(n=""),this.options.numbered===!0?n+`${r+1} - `+o:n+o}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};v0e.exports=c8});var S0e=_((T8t,P0e)=>{"use strict";var Zft=V1(),u8=class extends Zft{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(o=>this.styles.muted(o)),this.state.header=r.join(` - `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let o of r)o.scale=$ft(5,this.options),o.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],o=r.selected;return e.scale.forEach(a=>a.selected=!1),r.selected=!o,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=this.term==="Hyper",n=a?9:8,u=a?"":" ",A=this.symbols.line.repeat(n),p=" ".repeat(n+(a?0:1)),h=te=>(te?this.styles.success("\u25C9"):"\u25EF")+u,E=r+1+".",I=o?this.styles.heading:this.styles.noop,v=await this.resolve(e.message,this.state,e,r),x=this.indent(e),C=x+e.scale.map((te,ae)=>h(ae===e.scaleIdx)).join(A),R=te=>te===e.scaleIdx?I(te):te,L=x+e.scale.map((te,ae)=>R(ae)).join(p),U=()=>[E,v].filter(Boolean).join(" "),z=()=>[U(),C,L," "].filter(Boolean).join(` -`);return o&&(C=this.styles.cyan(C),L=this.styles.cyan(L)),z()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(o,a)=>await this.renderChoice(o,a)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` -`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=[o,n,a].filter(Boolean).join(" ");this.state.prompt=u;let A=await this.header(),p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),I=await this.footer();(p||!h)&&(u+=" "+p),h&&!u.includes(h)&&(u+=" "+h),e&&!p&&!E&&this.multiple&&this.type!=="form"&&(u+=this.styles.danger(this.emptyError)),this.clear(r),this.write([u,A,E,I].filter(Boolean).join(` -`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function $ft(t,e={}){if(Array.isArray(e.scale))return e.scale.map(o=>({...o}));let r=[];for(let o=1;o<t+1;o++)r.push({i:o,selected:!1});return r}P0e.exports=u8});var x0e=_((N8t,b0e)=>{b0e.exports=Z_()});var Q0e=_((L8t,k0e)=>{"use strict";var ept=Xx(),A8=class extends ept{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=o=>this.styles.primary.underline(o);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),o=await this.prefix(),a=await this.separator(),n=await this.message(),u=await this.format(),A=await this.error()||await this.hint(),p=await this.footer(),h=[o,n,a,u].join(" ");this.state.prompt=h,A&&!h.includes(A)&&(h+=" "+A),this.clear(e),this.write([r,h,p].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};k0e.exports=A8});var R0e=_((M8t,F0e)=>{"use strict";var tpt=Ph(),f8=class extends tpt{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let o=await super.toChoices(e,r);if(o.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>o.length)throw new Error("Please specify the index of the correct answer from the list of choices");return o}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};F0e.exports=f8});var N0e=_(p8=>{"use strict";var T0e=No(),ps=(t,e)=>{T0e.defineExport(p8,t,e),T0e.defineExport(p8,t.toLowerCase(),e)};ps("AutoComplete",()=>Hhe());ps("BasicAuth",()=>Vhe());ps("Confirm",()=>Xhe());ps("Editable",()=>$he());ps("Form",()=>Jx());ps("Input",()=>Z_());ps("Invisible",()=>o0e());ps("List",()=>l0e());ps("MultiSelect",()=>u0e());ps("Numeral",()=>p0e());ps("Password",()=>g0e());ps("Scale",()=>y0e());ps("Select",()=>Ph());ps("Snippet",()=>B0e());ps("Sort",()=>D0e());ps("Survey",()=>S0e());ps("Text",()=>x0e());ps("Toggle",()=>Q0e());ps("Quiz",()=>R0e())});var M0e=_((U8t,L0e)=>{L0e.exports={ArrayPrompt:V1(),AuthPrompt:W_(),BooleanPrompt:Xx(),NumberPrompt:n8(),StringPrompt:_g()}});var J1=_((_8t,U0e)=>{"use strict";var O0e=ve("assert"),g8=ve("events"),Sh=No(),Xc=class extends g8{constructor(e,r){super(),this.options=Sh.merge({},e),this.answers={...r}}register(e,r){if(Sh.isObject(e)){for(let a of Object.keys(e))this.register(a,e[a]);return this}O0e.equal(typeof r,"function","expected a function");let o=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[o]=r:this.prompts[o]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(Sh.merge({},this.options,r))}catch(o){return Promise.reject(o)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=Sh.merge({},this.options,e),{type:o,name:a}=e,{set:n,get:u}=Sh;if(typeof o=="function"&&(o=await o.call(this,e,this.answers)),!o)return this.answers[a];O0e(this.prompts[o],`Prompt "${o}" is not registered`);let A=new this.prompts[o](r),p=u(this.answers,a);A.state.answers=this.answers,A.enquirer=this,a&&A.on("submit",E=>{this.emit("answer",a,E,A),n(this.answers,a,E)});let h=A.emit.bind(A);return A.emit=(...E)=>(this.emit.call(this,...E),h(...E)),this.emit("prompt",A,this),r.autofill&&p!=null?(A.value=A.input=p,r.autofill==="show"&&await A.submit()):p=A.value=await A.run(),p}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||jy()}static get prompts(){return N0e()}static get types(){return M0e()}static get prompt(){let e=(r,...o)=>{let a=new this(...o),n=a.emit.bind(a);return a.emit=(...u)=>(e.emit(...u),n(...u)),a.prompt(r)};return Sh.mixinEmitter(e,new g8),e}};Sh.mixinEmitter(Xc,new g8);var h8=Xc.prompts;for(let t of Object.keys(h8)){let e=t.toLowerCase(),r=o=>new h8[t](o).run();Xc.prompt[e]=r,Xc[e]=r,Xc[t]||Reflect.defineProperty(Xc,t,{get:()=>h8[t]})}var z1=t=>{Sh.defineExport(Xc,t,()=>Xc.types[t])};z1("ArrayPrompt");z1("AuthPrompt");z1("BooleanPrompt");z1("NumberPrompt");z1("StringPrompt");U0e.exports=Xc});var e2=_((IHt,W0e)=>{var apt=Ux();function lpt(t,e,r){var o=t==null?void 0:apt(t,e);return o===void 0?r:o}W0e.exports=lpt});var z0e=_((bHt,V0e)=>{function cpt(t,e){for(var r=-1,o=t==null?0:t.length;++r<o&&e(t[r],r,t)!==!1;);return t}V0e.exports=cpt});var X0e=_((xHt,J0e)=>{var upt=Ag(),Apt=LP();function fpt(t,e){return t&&upt(e,Apt(e),t)}J0e.exports=fpt});var $0e=_((kHt,Z0e)=>{var ppt=Ag(),hpt=Sm();function gpt(t,e){return t&&ppt(e,hpt(e),t)}Z0e.exports=gpt});var tge=_((QHt,ege)=>{var dpt=Ag(),mpt=kP();function ypt(t,e){return dpt(t,mpt(t),e)}ege.exports=ypt});var w8=_((FHt,rge)=>{var Ept=xP(),Cpt=HP(),wpt=kP(),Ipt=MN(),Bpt=Object.getOwnPropertySymbols,vpt=Bpt?function(t){for(var e=[];t;)Ept(e,wpt(t)),t=Cpt(t);return e}:Ipt;rge.exports=vpt});var ige=_((RHt,nge)=>{var Dpt=Ag(),Ppt=w8();function Spt(t,e){return Dpt(t,Ppt(t),e)}nge.exports=Spt});var I8=_((THt,sge)=>{var bpt=LN(),xpt=w8(),kpt=Sm();function Qpt(t){return bpt(t,kpt,xpt)}sge.exports=Qpt});var age=_((NHt,oge)=>{var Fpt=Object.prototype,Rpt=Fpt.hasOwnProperty;function Tpt(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&Rpt.call(t,"index")&&(r.index=t.index,r.input=t.input),r}oge.exports=Tpt});var cge=_((LHt,lge)=>{var Npt=UP();function Lpt(t,e){var r=e?Npt(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}lge.exports=Lpt});var Age=_((MHt,uge)=>{var Mpt=/\w*$/;function Opt(t){var e=new t.constructor(t.source,Mpt.exec(t));return e.lastIndex=t.lastIndex,e}uge.exports=Opt});var dge=_((OHt,gge)=>{var fge=lg(),pge=fge?fge.prototype:void 0,hge=pge?pge.valueOf:void 0;function Upt(t){return hge?Object(hge.call(t)):{}}gge.exports=Upt});var yge=_((UHt,mge)=>{var _pt=UP(),Hpt=cge(),qpt=Age(),jpt=dge(),Gpt=XN(),Ypt="[object Boolean]",Wpt="[object Date]",Kpt="[object Map]",Vpt="[object Number]",zpt="[object RegExp]",Jpt="[object Set]",Xpt="[object String]",Zpt="[object Symbol]",$pt="[object ArrayBuffer]",eht="[object DataView]",tht="[object Float32Array]",rht="[object Float64Array]",nht="[object Int8Array]",iht="[object Int16Array]",sht="[object Int32Array]",oht="[object Uint8Array]",aht="[object Uint8ClampedArray]",lht="[object Uint16Array]",cht="[object Uint32Array]";function uht(t,e,r){var o=t.constructor;switch(e){case $pt:return _pt(t);case Ypt:case Wpt:return new o(+t);case eht:return Hpt(t,r);case tht:case rht:case nht:case iht:case sht:case oht:case aht:case lht:case cht:return Gpt(t,r);case Kpt:return new o;case Vpt:case Xpt:return new o(t);case zpt:return qpt(t);case Jpt:return new o;case Zpt:return jpt(t)}}mge.exports=uht});var Cge=_((_Ht,Ege)=>{var Aht=PI(),fht=Ju(),pht="[object Map]";function hht(t){return fht(t)&&Aht(t)==pht}Ege.exports=hht});var vge=_((HHt,Bge)=>{var ght=Cge(),dht=FP(),wge=RP(),Ige=wge&&wge.isMap,mht=Ige?dht(Ige):ght;Bge.exports=mht});var Pge=_((qHt,Dge)=>{var yht=PI(),Eht=Ju(),Cht="[object Set]";function wht(t){return Eht(t)&&yht(t)==Cht}Dge.exports=wht});var kge=_((jHt,xge)=>{var Iht=Pge(),Bht=FP(),Sge=RP(),bge=Sge&&Sge.isSet,vht=bge?Bht(bge):Iht;xge.exports=vht});var B8=_((GHt,Tge)=>{var Dht=SP(),Pht=z0e(),Sht=qP(),bht=X0e(),xht=$0e(),kht=JN(),Qht=_P(),Fht=tge(),Rht=ige(),Tht=HN(),Nht=I8(),Lht=PI(),Mht=age(),Oht=yge(),Uht=ZN(),_ht=Hl(),Hht=wI(),qht=vge(),jht=sl(),Ght=kge(),Yht=LP(),Wht=Sm(),Kht=1,Vht=2,zht=4,Qge="[object Arguments]",Jht="[object Array]",Xht="[object Boolean]",Zht="[object Date]",$ht="[object Error]",Fge="[object Function]",e0t="[object GeneratorFunction]",t0t="[object Map]",r0t="[object Number]",Rge="[object Object]",n0t="[object RegExp]",i0t="[object Set]",s0t="[object String]",o0t="[object Symbol]",a0t="[object WeakMap]",l0t="[object ArrayBuffer]",c0t="[object DataView]",u0t="[object Float32Array]",A0t="[object Float64Array]",f0t="[object Int8Array]",p0t="[object Int16Array]",h0t="[object Int32Array]",g0t="[object Uint8Array]",d0t="[object Uint8ClampedArray]",m0t="[object Uint16Array]",y0t="[object Uint32Array]",ri={};ri[Qge]=ri[Jht]=ri[l0t]=ri[c0t]=ri[Xht]=ri[Zht]=ri[u0t]=ri[A0t]=ri[f0t]=ri[p0t]=ri[h0t]=ri[t0t]=ri[r0t]=ri[Rge]=ri[n0t]=ri[i0t]=ri[s0t]=ri[o0t]=ri[g0t]=ri[d0t]=ri[m0t]=ri[y0t]=!0;ri[$ht]=ri[Fge]=ri[a0t]=!1;function ek(t,e,r,o,a,n){var u,A=e&Kht,p=e&Vht,h=e&zht;if(r&&(u=a?r(t,o,a,n):r(t)),u!==void 0)return u;if(!jht(t))return t;var E=_ht(t);if(E){if(u=Mht(t),!A)return Qht(t,u)}else{var I=Lht(t),v=I==Fge||I==e0t;if(Hht(t))return kht(t,A);if(I==Rge||I==Qge||v&&!a){if(u=p||v?{}:Uht(t),!A)return p?Rht(t,xht(u,t)):Fht(t,bht(u,t))}else{if(!ri[I])return a?t:{};u=Oht(t,I,A)}}n||(n=new Dht);var x=n.get(t);if(x)return x;n.set(t,u),Ght(t)?t.forEach(function(L){u.add(ek(L,e,r,L,t,n))}):qht(t)&&t.forEach(function(L,U){u.set(U,ek(L,e,r,U,t,n))});var C=h?p?Nht:Tht:p?Wht:Yht,R=E?void 0:C(t);return Pht(R||t,function(L,U){R&&(U=L,L=t[U]),Sht(u,U,ek(L,e,r,U,t,n))}),u}Tge.exports=ek});var v8=_((YHt,Nge)=>{var E0t=B8(),C0t=1,w0t=4;function I0t(t){return E0t(t,C0t|w0t)}Nge.exports=I0t});var D8=_((WHt,Lge)=>{var B0t=g_();function v0t(t,e,r){return t==null?t:B0t(t,e,r)}Lge.exports=v0t});var Hge=_((ZHt,_ge)=>{var D0t=Object.prototype,P0t=D0t.hasOwnProperty;function S0t(t,e){return t!=null&&P0t.call(t,e)}_ge.exports=S0t});var jge=_(($Ht,qge)=>{var b0t=Hge(),x0t=d_();function k0t(t,e){return t!=null&&x0t(t,e,b0t)}qge.exports=k0t});var Yge=_((e6t,Gge)=>{function Q0t(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}Gge.exports=Q0t});var Kge=_((t6t,Wge)=>{var F0t=Ux(),R0t=oU();function T0t(t,e){return e.length<2?t:F0t(t,R0t(e,0,-1))}Wge.exports=T0t});var S8=_((r6t,Vge)=>{var N0t=Mg(),L0t=Yge(),M0t=Kge(),O0t=Ly();function U0t(t,e){return e=N0t(e,t),t=M0t(t,e),t==null||delete t[O0t(L0t(e))]}Vge.exports=U0t});var b8=_((n6t,zge)=>{var _0t=S8();function H0t(t,e){return t==null?!0:_0t(t,e)}zge.exports=H0t});var ede=_((F6t,G0t)=>{G0t.exports={name:"@yarnpkg/cli",version:"4.4.0",license:"BSD-2-Clause",main:"./sources/index.ts",exports:{".":"./sources/index.ts","./polyfills":"./sources/polyfills.ts","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-constraints":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-exec":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-interactive-tools":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/plugin-stage":"workspace:^","@yarnpkg/plugin-typescript":"workspace:^","@yarnpkg/plugin-version":"workspace:^","@yarnpkg/plugin-workspace-tools":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^4.0.0",clipanion:"^4.0.0-rc.2",semver:"^7.1.2",tslib:"^2.4.0",typanion:"^3.14.0"},devDependencies:{"@types/semver":"^7.1.0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",bin:null,exports:{".":"./lib/index.js","./package.json":"./package.json"}},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=18.12.0"}}});var M8=_((cGt,fde)=>{"use strict";fde.exports=function(e,r){r===!0&&(r=0);var o="";if(typeof e=="string")try{o=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(o=e.protocol);var a=o.split(/\:|\+/).filter(Boolean);return typeof r=="number"?a[r]:a}});var hde=_((uGt,pde)=>{"use strict";var ugt=M8();function Agt(t){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:t,query:{},parse_failed:!1};try{var r=new URL(t);e.protocols=ugt(r),e.protocol=e.protocols[0],e.port=r.port,e.resource=r.hostname,e.host=r.host,e.user=r.username||"",e.password=r.password||"",e.pathname=r.pathname,e.hash=r.hash.slice(1),e.search=r.search.slice(1),e.href=r.href,e.query=Object.fromEntries(r.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=t,e.query={},e.parse_failed=!0}return e}pde.exports=Agt});var mde=_((AGt,dde)=>{"use strict";var fgt=hde();function pgt(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var hgt=pgt(fgt),ggt="text/plain",dgt="us-ascii",gde=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),mgt=(t,{stripHash:e})=>{let r=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(t);if(!r)throw new Error(`Invalid URL: ${t}`);let{type:o,data:a,hash:n}=r.groups,u=o.split(";");n=e?"":n;let A=!1;u[u.length-1]==="base64"&&(u.pop(),A=!0);let p=(u.shift()||"").toLowerCase(),E=[...u.map(I=>{let[v,x=""]=I.split("=").map(C=>C.trim());return v==="charset"&&(x=x.toLowerCase(),x===dgt)?"":`${v}${x?`=${x}`:""}`}).filter(Boolean)];return A&&E.push("base64"),(E.length>0||p&&p!==ggt)&&E.unshift(p),`data:${E.join(";")},${A?a.trim():a}${n?`#${n}`:""}`};function ygt(t,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},t=t.trim(),/^data:/i.test(t))return mgt(t,e);if(/^view-source:/i.test(t))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new URL(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash?a.hash="":e.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname){let u=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,A=0,p="";for(;;){let E=u.exec(a.pathname);if(!E)break;let I=E[0],v=E.index,x=a.pathname.slice(A,v);p+=x.replace(/\/{2,}/g,"/"),p+=I,A=v+I.length}let h=a.pathname.slice(A,a.pathname.length);p+=h.replace(/\/{2,}/g,"/"),a.pathname=p}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let u=a.pathname.split("/"),A=u[u.length-1];gde(A,e.removeDirectoryIndex)&&(u=u.slice(0,-1),a.pathname=u.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let u of[...a.searchParams.keys()])gde(u,e.removeQueryParameters)&&a.searchParams.delete(u);if(e.removeQueryParameters===!0&&(a.search=""),e.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let n=t;return t=a.toString(),!e.removeSingleSlash&&a.pathname==="/"&&!n.endsWith("/")&&a.hash===""&&(t=t.replace(/\/$/,"")),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&e.removeSingleSlash&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t}var O8=(t,e=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,o=n=>{let u=new Error(n);throw u.subject_url=t,u};(typeof t!="string"||!t.trim())&&o("Invalid url."),t.length>O8.MAX_INPUT_LENGTH&&o("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),t=ygt(t,e));let a=hgt.default(t);if(a.parse_failed){let n=a.href.match(r);n?(a.protocols=["ssh"],a.protocol="ssh",a.resource=n[2],a.host=n[2],a.user=n[1],a.pathname=`/${n[3]}`,a.parse_failed=!1):o("URL parsing failed.")}return a};O8.MAX_INPUT_LENGTH=2048;dde.exports=O8});var Cde=_((fGt,Ede)=>{"use strict";var Egt=M8();function yde(t){if(Array.isArray(t))return t.indexOf("ssh")!==-1||t.indexOf("rsync")!==-1;if(typeof t!="string")return!1;var e=Egt(t);if(t=t.substring(t.indexOf("://")+3),yde(e))return!0;var r=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!t.match(r)&&t.indexOf("@")<t.indexOf(":")}Ede.exports=yde});var Bde=_((pGt,Ide)=>{"use strict";var Cgt=mde(),wde=Cde();function wgt(t){var e=Cgt(t);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),wde(e.protocols)||e.protocols.length===0&&wde(t)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Ide.exports=wgt});var Dde=_((hGt,vde)=>{"use strict";var Igt=Bde();function U8(t){if(typeof t!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(t)&&(t="https://github.com/"+t);var r=Igt(t),o=r.resource.split("."),a=null;switch(r.toString=function(L){return U8.stringify(this,L)},r.source=o.length>2?o.slice(1-o.length).join("."):r.source=r.resource,r.git_suffix=/\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),r.owner=decodeURIComponent(r.user),r.source){case"git.cloudforge.com":r.owner=r.user,r.organization=o[0],r.source="cloudforge.com";break;case"visualstudio.com":if(r.resource==="vs-ssh.visualstudio.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+"/"+a[3]);break}else{a=r.name.split("/"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name);break}case"dev.azure.com":case"azure.com":if(r.resource==="ssh.dev.azure.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split("/"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\/+/g,"")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,""));break}default:a=r.name.split("/");var n=a.length-1;if(a.length>=2){var u=a.indexOf("-",2),A=a.indexOf("blob",2),p=a.indexOf("tree",2),h=a.indexOf("commit",2),E=a.indexOf("src",2),I=a.indexOf("raw",2),v=a.indexOf("edit",2);n=u>0?u-1:A>0?A-1:p>0?p-1:h>0?h-1:E>0?E-1:I>0?I-1:v>0?v-1:n,r.owner=a.slice(0,n).join("/"),r.name=a[n],h&&(r.commit=a[n+2])}r.ref="",r.filepathtype="",r.filepath="";var x=a.length>n&&a[n+1]==="-"?n+1:n;a.length>x+2&&["raw","src","blob","tree","edit"].indexOf(a[x+1])>=0&&(r.filepathtype=a[x+1],r.ref=a[x+2],a.length>x+3&&(r.filepath=a.slice(x+3).join("/"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+="/"),r.full_name+=r.name)),r.owner.startsWith("scm/")&&(r.source="bitbucket-server",r.owner=r.owner.replace("scm/",""),r.organization=r.owner,r.full_name=r.owner+"/"+r.name);var C=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,R=C.exec(r.pathname);return R!=null&&(r.source="bitbucket-server",R[1]==="users"?r.owner="~"+R[2]:r.owner=R[2],r.organization=r.owner,r.name=R[3],a=R[4].split("/"),a.length>1&&(["raw","browse"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join("/"))):a[1]==="commits"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+"/"+r.name,r.query.at?r.ref=r.query.at:r.ref=""),r}U8.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join("+"):t.protocol);var r=t.port?":"+t.port:"",o=t.user||"git",a=t.git_suffix?".git":"";switch(e){case"ssh":return r?"ssh://"+o+"@"+t.resource+r+"/"+t.full_name+a:o+"@"+t.resource+":"+t.full_name+a;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+o+"@"+t.resource+r+"/"+t.full_name+a;case"http":case"https":var n=t.token?Bgt(t):t.user&&(t.protocols.includes("http")||t.protocols.includes("https"))?t.user+"@":"";return e+"://"+n+t.resource+r+"/"+vgt(t)+a;default:return t.href}};function Bgt(t){switch(t.source){case"bitbucket.org":return"x-token-auth:"+t.token+"@";default:return t.token+"@"}}function vgt(t){switch(t.source){case"bitbucket-server":return"scm/"+t.full_name;default:return""+t.full_name}}vde.exports=U8});var Hde=_((K9t,_de)=>{var Ngt=kb(),Lgt=_P(),Mgt=Hl(),Ogt=Ym(),Ugt=h_(),_gt=Ly(),Hgt=C1();function qgt(t){return Mgt(t)?Ngt(t,_gt):Ogt(t)?[t]:Lgt(Ugt(Hgt(t)))}_de.exports=qgt});function Wgt(t,e){return e===1&&Ygt.has(t[0])}function a2(t){let e=Array.isArray(t)?t:(0,Gde.default)(t);return e.map((o,a)=>jgt.test(o)?`[${o}]`:Ggt.test(o)&&!Wgt(e,a)?`.${o}`:`[${JSON.stringify(o)}]`).join("").replace(/^\./,"")}function Kgt(t,e){let r=[];if(e.methodName!==null&&r.push(pe.pretty(t,e.methodName,pe.Type.CODE)),e.file!==null){let o=[];o.push(pe.pretty(t,e.file,pe.Type.PATH)),e.line!==null&&(o.push(pe.pretty(t,e.line,pe.Type.NUMBER)),e.column!==null&&o.push(pe.pretty(t,e.column,pe.Type.NUMBER))),r.push(`(${o.join(pe.pretty(t,":","grey"))})`)}return r.join(" ")}function ik(t,{manifestUpdates:e,reportedErrors:r},{fix:o}={}){let a=new Map,n=new Map,u=[...r.keys()].map(A=>[A,new Map]);for(let[A,p]of[...u,...e]){let h=r.get(A)?.map(x=>({text:x,fixable:!1}))??[],E=!1,I=t.getWorkspaceByCwd(A),v=I.manifest.exportTo({});for(let[x,C]of p){if(C.size>1){let R=[...C].map(([L,U])=>{let z=pe.pretty(t.configuration,L,pe.Type.INSPECT),te=U.size>0?Kgt(t.configuration,U.values().next().value):null;return te!==null?` -${z} at ${te}`:` -${z}`}).join("");h.push({text:`Conflict detected in constraint targeting ${pe.pretty(t.configuration,x,pe.Type.CODE)}; conflicting values are:${R}`,fixable:!1})}else{let[[R]]=C,L=(0,qde.default)(v,x);if(JSON.stringify(L)===JSON.stringify(R))continue;if(!o){let U=typeof L>"u"?`Missing field ${pe.pretty(t.configuration,x,pe.Type.CODE)}; expected ${pe.pretty(t.configuration,R,pe.Type.INSPECT)}`:typeof R>"u"?`Extraneous field ${pe.pretty(t.configuration,x,pe.Type.CODE)} currently set to ${pe.pretty(t.configuration,L,pe.Type.INSPECT)}`:`Invalid field ${pe.pretty(t.configuration,x,pe.Type.CODE)}; expected ${pe.pretty(t.configuration,R,pe.Type.INSPECT)}, found ${pe.pretty(t.configuration,L,pe.Type.INSPECT)}`;h.push({text:U,fixable:!0});continue}typeof R>"u"?(0,Yde.default)(v,x):(0,jde.default)(v,x,R),E=!0}E&&a.set(I,v)}h.length>0&&n.set(I,h)}return{changedWorkspaces:a,remainingErrors:n}}function Wde(t,{configuration:e}){let r={children:[]};for(let[o,a]of t){let n=[];for(let A of a){let p=A.text.split(/\n/);A.fixable&&(p[0]=`${pe.pretty(e,"\u2699","gray")} ${p[0]}`),n.push({value:pe.tuple(pe.Type.NO_HINT,p[0]),children:p.slice(1).map(h=>({value:pe.tuple(pe.Type.NO_HINT,h)}))})}let u={value:pe.tuple(pe.Type.LOCATOR,o.anchoredLocator),children:He.sortMap(n,A=>A.value[1])};r.children.push(u)}return r.children=He.sortMap(r.children,o=>o.value[1]),r}var qde,jde,Gde,Yde,QE,jgt,Ggt,Ygt,l2=Et(()=>{Ge();qde=Ze(e2()),jde=Ze(D8()),Gde=Ze(Hde()),Yde=Ze(b8()),QE=class{constructor(e){this.indexedFields=e;this.items=[];this.indexes={};this.clear()}clear(){this.items=[];for(let e of this.indexedFields)this.indexes[e]=new Map}insert(e){this.items.push(e);for(let r of this.indexedFields){let o=Object.hasOwn(e,r)?e[r]:void 0;if(typeof o>"u")continue;He.getArrayWithDefault(this.indexes[r],o).push(e)}return e}find(e){if(typeof e>"u")return this.items;let r=Object.entries(e);if(r.length===0)return this.items;let o=[],a;for(let[u,A]of r){let p=u,h=Object.hasOwn(this.indexes,p)?this.indexes[p]:void 0;if(typeof h>"u"){o.push([p,A]);continue}let E=new Set(h.get(A)??[]);if(E.size===0)return[];if(typeof a>"u")a=E;else for(let I of a)E.has(I)||a.delete(I);if(a.size===0)break}let n=[...a??[]];return o.length>0&&(n=n.filter(u=>{for(let[A,p]of o)if(!(typeof p<"u"?Object.hasOwn(u,A)&&u[A]===p:Object.hasOwn(u,A)===!1))return!1;return!0})),n}},jgt=/^[0-9]+$/,Ggt=/^[a-zA-Z0-9_]+$/,Ygt=new Set(["scripts",...Ut.allDependencies])});var Kde=_((s7t,$8)=>{var Vgt;(function(t){var e=function(){return{"append/2":[new t.type.Rule(new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("L")]),new t.type.Term("foldl",[new t.type.Term("append",[]),new t.type.Var("X"),new t.type.Term("[]",[]),new t.type.Var("L")]))],"append/3":[new t.type.Rule(new t.type.Term("append",[new t.type.Term("[]",[]),new t.type.Var("X"),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("append",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("append",[new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("S")]))],"member/2":[new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("_")])]),null),new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")])]),new t.type.Term("member",[new t.type.Var("X"),new t.type.Var("Xs")]))],"permutation/2":[new t.type.Rule(new t.type.Term("permutation",[new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("permutation",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("permutation",[new t.type.Var("T"),new t.type.Var("P")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("P")]),new t.type.Term("append",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("Y")]),new t.type.Var("S")])])]))],"maplist/2":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("X")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("Xs")])]))],"maplist/3":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs")])]))],"maplist/4":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs")])]))],"maplist/5":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds")])]))],"maplist/6":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es")])]))],"maplist/7":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs")])]))],"maplist/8":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")]),new t.type.Term(".",[new t.type.Var("G"),new t.type.Var("Gs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F"),new t.type.Var("G")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs"),new t.type.Var("Gs")])]))],"include/3":[new t.type.Rule(new t.type.Term("include",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("include",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("A")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("A"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("F"),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("F")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("L"),new t.type.Var("S")])]),new t.type.Term("include",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("S")])])])])]))],"exclude/3":[new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("E")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("Q")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("R"),new t.type.Var("Q")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("!",[]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("E")])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("E")])])])])])])]))],"foldl/4":[new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Var("I"),new t.type.Var("I")]),null),new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("I"),new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("I"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])])])]),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P2"),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P2")]),new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("R")])])])])]))],"select/3":[new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Xs")]),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term("select",[new t.type.Var("E"),new t.type.Var("Xs"),new t.type.Var("Ys")]))],"sum_list/2":[new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term("[]",[]),new t.type.Num(0,!1)]),null),new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("sum_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("+",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"max_list/2":[new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("max_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"min_list/2":[new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("min_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("=<",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"prod_list/2":[new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term("[]",[]),new t.type.Num(1,!1)]),null),new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("prod_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("*",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"last/2":[new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")]),new t.type.Var("X")]),new t.type.Term("last",[new t.type.Var("Xs"),new t.type.Var("X")]))],"prefix/2":[new t.type.Rule(new t.type.Term("prefix",[new t.type.Var("Part"),new t.type.Var("Whole")]),new t.type.Term("append",[new t.type.Var("Part"),new t.type.Var("_"),new t.type.Var("Whole")]))],"nth0/3":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth1/3":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth0/4":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth1/4":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth/5":[new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("N"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("X"),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("O"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("Y"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term(",",[new t.type.Term("is",[new t.type.Var("M"),new t.type.Term("+",[new t.type.Var("N"),new t.type.Num(1,!1)])]),new t.type.Term("nth",[new t.type.Var("M"),new t.type.Var("O"),new t.type.Var("Xs"),new t.type.Var("Y"),new t.type.Var("Ys")])]))],"length/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(!t.type.is_variable(A)&&!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(t.type.is_integer(A)&&A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else{var p=new t.type.Term("length",[u,new t.type.Num(0,!1),A]);t.type.is_integer(A)&&(p=new t.type.Term(",",[p,new t.type.Term("!",[])])),o.prepend([new t.type.State(a.goal.replace(p),a.substitution,a)])}},"length/3":[new t.type.Rule(new t.type.Term("length",[new t.type.Term("[]",[]),new t.type.Var("N"),new t.type.Var("N")]),null),new t.type.Rule(new t.type.Term("length",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("X")]),new t.type.Var("A"),new t.type.Var("N")]),new t.type.Term(",",[new t.type.Term("succ",[new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("length",[new t.type.Var("X"),new t.type.Var("B"),new t.type.Var("N")])]))],"replicate/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=new t.type.Term("[]"),E=0;E<A.value;E++)h=new t.type.Term(".",[u,h]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[h,p])),a.substitution,a)])}},"sort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h=u;h.indicator==="./2";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=p.sort(t.compare),I=E.length-1;I>0;I--)E[I].equals(E[I-1])&&E.splice(I,1);for(var v=new t.type.Term("[]"),I=E.length-1;I>=0;I--)v=new t.type.Term(".",[E[I],v]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,A])),a.substitution,a)])}}},"msort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h=u;h.indicator==="./2";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=p.sort(t.compare),I=new t.type.Term("[]"),v=E.length-1;v>=0;v--)I=new t.type.Term(".",[E[v],I]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[I,A])),a.substitution,a)])}}},"keysort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h,E=u;E.indicator==="./2";){if(h=E.args[0],t.type.is_variable(h)){o.throw_error(t.error.instantiation(n.indicator));return}else if(!t.type.is_term(h)||h.indicator!=="-/2"){o.throw_error(t.error.type("pair",h,n.indicator));return}h.args[0].pair=h.args[1],p.push(h.args[0]),E=E.args[1]}if(t.type.is_variable(E))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(E))o.throw_error(t.error.type("list",u,n.indicator));else{for(var I=p.sort(t.compare),v=new t.type.Term("[]"),x=I.length-1;x>=0;x--)v=new t.type.Term(".",[new t.type.Term("-",[I[x],I[x].pair]),v]),delete I[x].pair;o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,A])),a.substitution,a)])}}},"take/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,E=[],I=A;h>0&&I.indicator==="./2";)E.push(I.args[0]),I=I.args[1],h--;if(h===0){for(var v=new t.type.Term("[]"),h=E.length-1;h>=0;h--)v=new t.type.Term(".",[E[h],v]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,p])),a.substitution,a)])}}},"drop/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,E=[],I=A;h>0&&I.indicator==="./2";)E.push(I.args[0]),I=I.args[1],h--;h===0&&o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[I,p])),a.substitution,a)])}},"reverse/2":function(o,a,n){var u=n.args[0],A=n.args[1],p=t.type.is_instantiated_list(u),h=t.type.is_instantiated_list(A);if(t.type.is_variable(u)&&t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(u)&&!t.type.is_fully_list(u))o.throw_error(t.error.type("list",u,n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!p&&!h)o.throw_error(t.error.instantiation(n.indicator));else{for(var E=p?u:A,I=new t.type.Term("[]",[]);E.indicator==="./2";)I=new t.type.Term(".",[E.args[0],I]),E=E.args[1];o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[I,p?A:u])),a.substitution,a)])}},"list_to_set/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else{for(var p=u,h=[];p.indicator==="./2";)h.push(p.args[0]),p=p.args[1];if(t.type.is_variable(p))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_term(p)||p.indicator!=="[]/0")o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=[],I=new t.type.Term("[]",[]),v,x=0;x<h.length;x++){v=!1;for(var C=0;C<E.length&&!v;C++)v=t.compare(h[x],E[C])===0;v||E.push(h[x])}for(x=E.length-1;x>=0;x--)I=new t.type.Term(".",[E[x],I]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[A,I])),a.substitution,a)])}}}}},r=["append/2","append/3","member/2","permutation/2","maplist/2","maplist/3","maplist/4","maplist/5","maplist/6","maplist/7","maplist/8","include/3","exclude/3","foldl/4","sum_list/2","max_list/2","min_list/2","prod_list/2","last/2","prefix/2","nth0/3","nth1/3","nth0/4","nth1/4","length/2","replicate/3","select/3","sort/2","msort/2","keysort/2","take/3","drop/3","reverse/2","list_to_set/2"];typeof $8<"u"?$8.exports=function(o){t=o,new t.type.Module("lists",e(),r)}:new t.type.Module("lists",e(),r)})(Vgt)});var lme=_(Wr=>{"use strict";var jg=process.platform==="win32",eH="aes-256-cbc",zgt="sha256",Jde="The current environment doesn't support interactive reading from TTY.",Yn=ve("fs"),Vde=process.binding("tty_wrap").TTY,rH=ve("child_process"),kh=ve("path"),nH={prompt:"> ",hideEchoBack:!1,mask:"*",limit:[],limitMessage:"Input another, please.$<( [)limit(])>",defaultInput:"",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:"utf8",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},Wf="none",$c,RE,zde=!1,xh,ok,tH,Jgt=0,lH="",qg=[],ak,Xde=!1,iH=!1,c2=!1;function Zde(t){function e(r){return r.replace(/[^\w\u0080-\uFFFF]/g,function(o){return"#"+o.charCodeAt(0)+";"})}return ok.concat(function(r){var o=[];return Object.keys(r).forEach(function(a){r[a]==="boolean"?t[a]&&o.push("--"+a):r[a]==="string"&&t[a]&&o.push("--"+a,e(t[a]))}),o}({display:"string",displayOnly:"boolean",keyIn:"boolean",hideEchoBack:"boolean",mask:"string",limit:"string",caseSensitive:"boolean"}))}function Xgt(t,e){function r(U){var z,te="",ae;for(tH=tH||ve("os").tmpdir();;){z=kh.join(tH,U+te);try{ae=Yn.openSync(z,"wx")}catch(le){if(le.code==="EEXIST"){te++;continue}else throw le}Yn.closeSync(ae);break}return z}var o,a,n,u={},A,p,h=r("readline-sync.stdout"),E=r("readline-sync.stderr"),I=r("readline-sync.exit"),v=r("readline-sync.done"),x=ve("crypto"),C,R,L;C=x.createHash(zgt),C.update(""+process.pid+Jgt+++Math.random()),L=C.digest("hex"),R=x.createDecipher(eH,L),o=Zde(t),jg?(a=process.env.ComSpec||"cmd.exe",process.env.Q='"',n=["/V:ON","/S","/C","(%Q%"+a+"%Q% /V:ON /S /C %Q%%Q%"+xh+"%Q%"+o.map(function(U){return" %Q%"+U+"%Q%"}).join("")+" & (echo !ERRORLEVEL!)>%Q%"+I+"%Q%%Q%) 2>%Q%"+E+"%Q% |%Q%"+process.execPath+"%Q% %Q%"+__dirname+"\\encrypt.js%Q% %Q%"+eH+"%Q% %Q%"+L+"%Q% >%Q%"+h+"%Q% & (echo 1)>%Q%"+v+"%Q%"]):(a="/bin/sh",n=["-c",'("'+xh+'"'+o.map(function(U){return" '"+U.replace(/'/g,"'\\''")+"'"}).join("")+'; echo $?>"'+I+'") 2>"'+E+'" |"'+process.execPath+'" "'+__dirname+'/encrypt.js" "'+eH+'" "'+L+'" >"'+h+'"; echo 1 >"'+v+'"']),c2&&c2("_execFileSync",o);try{rH.spawn(a,n,e)}catch(U){u.error=new Error(U.message),u.error.method="_execFileSync - spawn",u.error.program=a,u.error.args=n}for(;Yn.readFileSync(v,{encoding:t.encoding}).trim()!=="1";);return(A=Yn.readFileSync(I,{encoding:t.encoding}).trim())==="0"?u.input=R.update(Yn.readFileSync(h,{encoding:"binary"}),"hex",t.encoding)+R.final(t.encoding):(p=Yn.readFileSync(E,{encoding:t.encoding}).trim(),u.error=new Error(Jde+(p?` -`+p:"")),u.error.method="_execFileSync",u.error.program=a,u.error.args=n,u.error.extMessage=p,u.error.exitCode=+A),Yn.unlinkSync(h),Yn.unlinkSync(E),Yn.unlinkSync(I),Yn.unlinkSync(v),u}function Zgt(t){var e,r={},o,a={env:process.env,encoding:t.encoding};if(xh||(jg?process.env.PSModulePath?(xh="powershell.exe",ok=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(xh="cscript.exe",ok=["//nologo",__dirname+"\\read.cs.js"]):(xh="/bin/sh",ok=[__dirname+"/read.sh"])),jg&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),rH.execFileSync){e=Zde(t),c2&&c2("execFileSync",e);try{r.input=rH.execFileSync(xh,e,a)}catch(n){o=n.stderr?(n.stderr+"").trim():"",r.error=new Error(Jde+(o?` -`+o:"")),r.error.method="execFileSync",r.error.program=xh,r.error.args=e,r.error.extMessage=o,r.error.exitCode=n.status,r.error.code=n.code,r.error.signal=n.signal}}else r=Xgt(t,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),t.display=""),r}function sH(t){var e="",r=t.display,o=!t.display&&t.keyIn&&t.hideEchoBack&&!t.mask;function a(){var n=Zgt(t);if(n.error)throw n.error;return n.input}return iH&&iH(t),function(){var n,u,A;function p(){return n||(n=process.binding("fs"),u=process.binding("constants")),n}if(typeof Wf=="string")if(Wf=null,jg){if(A=function(h){var E=h.replace(/^\D+/,"").split("."),I=0;return(E[0]=+E[0])&&(I+=E[0]*1e4),(E[1]=+E[1])&&(I+=E[1]*100),(E[2]=+E[2])&&(I+=E[2]),I}(process.version),!(A>=20302&&A<40204||A>=5e4&&A<50100||A>=50600&&A<60200)&&process.stdin.isTTY)process.stdin.pause(),Wf=process.stdin.fd,RE=process.stdin._handle;else try{Wf=p().open("CONIN$",u.O_RDWR,parseInt("0666",8)),RE=new Vde(Wf,!0)}catch{}if(process.stdout.isTTY)$c=process.stdout.fd;else{try{$c=Yn.openSync("\\\\.\\CON","w")}catch{}if(typeof $c!="number")try{$c=p().open("CONOUT$",u.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{Wf=Yn.openSync("/dev/tty","r"),RE=process.stdin._handle}catch{}}else try{Wf=Yn.openSync("/dev/tty","r"),RE=new Vde(Wf,!1)}catch{}if(process.stdout.isTTY)$c=process.stdout.fd;else try{$c=Yn.openSync("/dev/tty","w")}catch{}}}(),function(){var n,u,A=!t.hideEchoBack&&!t.keyIn,p,h,E,I,v;ak="";function x(C){return C===zde?!0:RE.setRawMode(C)!==0?!1:(zde=C,!0)}if(Xde||!RE||typeof $c!="number"&&(t.display||!A)){e=a();return}if(t.display&&(Yn.writeSync($c,t.display),t.display=""),!t.displayOnly){if(!x(!A)){e=a();return}for(h=t.keyIn?1:t.bufferSize,p=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(h):new Buffer(h),t.keyIn&&t.limit&&(u=new RegExp("[^"+t.limit+"]","g"+(t.caseSensitive?"":"i")));;){E=0;try{E=Yn.readSync(Wf,p,0,h)}catch(C){if(C.code!=="EOF"){x(!1),e+=a();return}}if(E>0?(I=p.toString(t.encoding,0,E),ak+=I):(I=` -`,ak+="\0"),I&&typeof(v=(I.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(I=v,n=!0),I&&(I=I.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),I&&u&&(I=I.replace(u,"")),I&&(A||(t.hideEchoBack?t.mask&&Yn.writeSync($c,new Array(I.length+1).join(t.mask)):Yn.writeSync($c,I)),e+=I),!t.keyIn&&n||t.keyIn&&e.length>=h)break}!A&&!o&&Yn.writeSync($c,` -`),x(!1)}}(),t.print&&!o&&t.print(r+(t.displayOnly?"":(t.hideEchoBack?new Array(e.length+1).join(t.mask):e)+` -`),t.encoding),t.displayOnly?"":lH=t.keepWhitespace||t.keyIn?e:e.trim()}function $gt(t,e){var r=[];function o(a){a!=null&&(Array.isArray(a)?a.forEach(o):(!e||e(a))&&r.push(a))}return o(t),r}function cH(t){return t.replace(/[\x00-\x7f]/g,function(e){return"\\x"+("00"+e.charCodeAt().toString(16)).substr(-2)})}function Ns(){var t=Array.prototype.slice.call(arguments),e,r;return t.length&&typeof t[0]=="boolean"&&(r=t.shift(),r&&(e=Object.keys(nH),t.unshift(nH))),t.reduce(function(o,a){return a==null||(a.hasOwnProperty("noEchoBack")&&!a.hasOwnProperty("hideEchoBack")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty("noTrim")&&!a.hasOwnProperty("keepWhitespace")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(e=Object.keys(a)),e.forEach(function(n){var u;if(a.hasOwnProperty(n))switch(u=a[n],n){case"mask":case"limitMessage":case"defaultInput":case"encoding":u=u!=null?u+"":"",u&&n!=="limitMessage"&&(u=u.replace(/[\r\n]/g,"")),o[n]=u;break;case"bufferSize":!isNaN(u=parseInt(u,10))&&typeof u=="number"&&(o[n]=u);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":o[n]=!!u;break;case"limit":case"trueValue":case"falseValue":o[n]=$gt(u,function(A){var p=typeof A;return p==="string"||p==="number"||p==="function"||A instanceof RegExp}).map(function(A){return typeof A=="string"?A.replace(/[\r\n]/g,""):A});break;case"print":case"phContent":case"preCheck":o[n]=typeof u=="function"?u:void 0;break;case"prompt":case"display":o[n]=u??"";break}})),o},{})}function oH(t,e,r){return e.some(function(o){var a=typeof o;return a==="string"?r?t===o:t.toLowerCase()===o.toLowerCase():a==="number"?parseFloat(t)===o:a==="function"?o(t):o instanceof RegExp?o.test(t):!1})}function uH(t,e){var r=kh.normalize(jg?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return t=kh.normalize(t),e?t.replace(/^~(?=\/|\\|$)/,r):t.replace(new RegExp("^"+cH(r)+"(?=\\/|\\\\|$)",jg?"i":""),"~")}function TE(t,e){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",o=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function n(u,A,p,h,E,I){var v;return A||typeof(v=e(E))!="string"?p:v?(h||"")+v+(I||""):""}return t.replace(o,n).replace(a,n)}function $de(t,e,r){var o,a=[],n=-1,u=0,A="",p;function h(E,I){return I.length>3?(E.push(I[0]+"..."+I[I.length-1]),p=!0):I.length&&(E=E.concat(I)),E}return o=t.reduce(function(E,I){return E.concat((I+"").split(""))},[]).reduce(function(E,I){var v,x;return e||(I=I.toLowerCase()),v=/^\d$/.test(I)?1:/^[A-Z]$/.test(I)?2:/^[a-z]$/.test(I)?3:0,r&&v===0?A+=I:(x=I.charCodeAt(0),v&&v===n&&x===u+1?a.push(I):(E=h(E,a),a=[I],n=v),u=x),E},[]),o=h(o,a),A&&(o.push(A),p=!0),{values:o,suppressed:p}}function eme(t,e){return t.join(t.length>2?", ":e?" / ":"/")}function tme(t,e){var r,o,a={},n;if(e.phContent&&(r=e.phContent(t,e)),typeof r!="string")switch(t){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=e.hasOwnProperty(t)?typeof e[t]=="boolean"?e[t]?"on":"off":e[t]+"":"";break;case"limit":case"trueValue":case"falseValue":o=e[e.hasOwnProperty(t+"Src")?t+"Src":t],e.keyIn?(a=$de(o,e.caseSensitive),o=a.values):o=o.filter(function(u){var A=typeof u;return A==="string"||A==="number"}),r=eme(o,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=e[e.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||t!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=lH;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),t==="CWD"?r=kh.basename(r):t==="cwdHome"&&(r=uH(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+t.replace(/^./,function(u){return u.toUpperCase()})+"String"]();break;default:typeof(n=(t.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=qg[qg.length-n]||"")}return r}function rme(t){var e=/^(.)-(.)$/.exec(t),r="",o,a,n,u;if(!e)return null;for(o=e[1].charCodeAt(0),a=e[2].charCodeAt(0),u=o<a?1:-1,n=o;n!==a+u;n+=u)r+=String.fromCharCode(n);return r}function aH(t){var e=new RegExp(/(\s*)(?:("|')(.*?)(?:\2|$)|(\S+))/g),r,o="",a=[],n;for(t=t.trim();r=e.exec(t);)n=r[3]||r[4]||"",r[1]&&(a.push(o),o=""),o+=n;return o&&a.push(o),a}function nme(t,e){return e.trueValue.length&&oH(t,e.trueValue,e.caseSensitive)?!0:e.falseValue.length&&oH(t,e.falseValue,e.caseSensitive)?!1:t}function ime(t){var e,r,o,a,n,u,A;function p(E){return tme(E,t)}function h(E){t.display+=(/[^\r\n]$/.test(t.display)?` -`:"")+E}for(t.limitSrc=t.limit,t.displaySrc=t.display,t.limit="",t.display=TE(t.display+"",p);;){if(e=sH(t),r=!1,o="",t.defaultInput&&!e&&(e=t.defaultInput),t.history&&((a=/^\s*\!(?:\!|-1)(:p)?\s*$/.exec(e))?(n=qg[0]||"",a[1]?r=!0:e=n,h(n+` -`),r||(t.displayOnly=!0,sH(t),t.displayOnly=!1)):e&&e!==qg[qg.length-1]&&(qg=[e])),!r&&t.cd&&e)switch(u=aH(e),u[0].toLowerCase()){case"cd":if(u[1])try{process.chdir(uH(u[1],!0))}catch(E){h(E+"")}r=!0;break;case"pwd":h(process.cwd()),r=!0;break}if(!r&&t.preCheck&&(A=t.preCheck(e,t),e=A.res,A.forceNext&&(r=!0)),!r){if(!t.limitSrc.length||oH(e,t.limitSrc,t.caseSensitive))break;t.limitMessage&&(o=TE(t.limitMessage,p))}h((o?o+` -`:"")+TE(t.displaySrc+"",p))}return nme(e,t)}Wr._DBG_set_useExt=function(t){Xde=t};Wr._DBG_set_checkOptions=function(t){iH=t};Wr._DBG_set_checkMethod=function(t){c2=t};Wr._DBG_clearHistory=function(){lH="",qg=[]};Wr.setDefaultOptions=function(t){return nH=Ns(!0,t),Ns(!0)};Wr.question=function(t,e){return ime(Ns(Ns(!0,e),{display:t}))};Wr.prompt=function(t){var e=Ns(!0,t);return e.display=e.prompt,ime(e)};Wr.keyIn=function(t,e){var r=Ns(Ns(!0,e),{display:t,keyIn:!0,keepWhitespace:!0});return r.limitSrc=r.limit.filter(function(o){var a=typeof o;return a==="string"||a==="number"}).map(function(o){return TE(o+"",rme)}),r.limit=cH(r.limitSrc.join("")),["trueValue","falseValue"].forEach(function(o){r[o]=r[o].reduce(function(a,n){var u=typeof n;return u==="string"||u==="number"?a=a.concat((n+"").split("")):a.push(n),a},[])}),r.display=TE(r.display+"",function(o){return tme(o,r)}),nme(sH(r),r)};Wr.questionEMail=function(t,e){return t==null&&(t="Input e-mail address: "),Wr.question(t,Ns({hideEchoBack:!1,limit:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,limitMessage:"Input valid e-mail address, please.",trueValue:null,falseValue:null},e,{keepWhitespace:!1,cd:!1}))};Wr.questionNewPassword=function(t,e){var r,o,a,n=Ns({hideEchoBack:!0,mask:"*",limitMessage:`It can include: $<charlist> -And the length must be: $<length>`,trueValue:null,falseValue:null,caseSensitive:!0},e,{history:!1,cd:!1,phContent:function(x){return x==="charlist"?r.text:x==="length"?o+"..."+a:null}}),u,A,p,h,E,I,v;for(e=e||{},u=TE(e.charlist?e.charlist+"":"$<!-~>",rme),(isNaN(o=parseInt(e.min,10))||typeof o!="number")&&(o=12),(isNaN(a=parseInt(e.max,10))||typeof a!="number")&&(a=24),h=new RegExp("^["+cH(u)+"]{"+o+","+a+"}$"),r=$de([u],n.caseSensitive,!0),r.text=eme(r.values,r.suppressed),A=e.confirmMessage!=null?e.confirmMessage:"Reinput a same one to confirm it: ",p=e.unmatchMessage!=null?e.unmatchMessage:"It differs from first one. Hit only the Enter key if you want to retry from first one.",t==null&&(t="Input new password: "),E=n.limitMessage;!v;)n.limit=h,n.limitMessage=E,I=Wr.question(t,n),n.limit=[I,""],n.limitMessage=p,v=Wr.question(A,n);return I};function sme(t,e,r){var o;function a(n){return o=r(n),!isNaN(o)&&typeof o=="number"}return Wr.question(t,Ns({limitMessage:"Input valid number, please."},e,{limit:a,cd:!1})),o}Wr.questionInt=function(t,e){return sme(t,e,function(r){return parseInt(r,10)})};Wr.questionFloat=function(t,e){return sme(t,e,parseFloat)};Wr.questionPath=function(t,e){var r,o="",a=Ns({hideEchoBack:!1,limitMessage:`$<error( -)>Input valid path, please.$<( Min:)min>$<( Max:)max>`,history:!0,cd:!0},e,{keepWhitespace:!1,limit:function(n){var u,A,p;n=uH(n,!0),o="";function h(E){E.split(/\/|\\/).reduce(function(I,v){var x=kh.resolve(I+=v+kh.sep);if(!Yn.existsSync(x))Yn.mkdirSync(x);else if(!Yn.statSync(x).isDirectory())throw new Error("Non directory already exists: "+x);return I},"")}try{if(u=Yn.existsSync(n),r=u?Yn.realpathSync(n):kh.resolve(n),!e.hasOwnProperty("exists")&&!u||typeof e.exists=="boolean"&&e.exists!==u)return o=(u?"Already exists":"No such file or directory")+": "+r,!1;if(!u&&e.create&&(e.isDirectory?h(r):(h(kh.dirname(r)),Yn.closeSync(Yn.openSync(r,"w"))),r=Yn.realpathSync(r)),u&&(e.min||e.max||e.isFile||e.isDirectory)){if(A=Yn.statSync(r),e.isFile&&!A.isFile())return o="Not file: "+r,!1;if(e.isDirectory&&!A.isDirectory())return o="Not directory: "+r,!1;if(e.min&&A.size<+e.min||e.max&&A.size>+e.max)return o="Size "+A.size+" is out of range: "+r,!1}if(typeof e.validate=="function"&&(p=e.validate(r))!==!0)return typeof p=="string"&&(o=p),!1}catch(E){return o=E+"",!1}return!0},phContent:function(n){return n==="error"?o:n!=="min"&&n!=="max"?null:e.hasOwnProperty(n)?e[n]+"":""}});return e=e||{},t==null&&(t='Input path (you can "cd" and "pwd"): '),Wr.question(t,a),r};function ome(t,e){var r={},o={};return typeof t=="object"?(Object.keys(t).forEach(function(a){typeof t[a]=="function"&&(o[e.caseSensitive?a:a.toLowerCase()]=t[a])}),r.preCheck=function(a){var n;return r.args=aH(a),n=r.args[0]||"",e.caseSensitive||(n=n.toLowerCase()),r.hRes=n!=="_"&&o.hasOwnProperty(n)?o[n].apply(a,r.args.slice(1)):o.hasOwnProperty("_")?o._.apply(a,r.args):null,{res:a,forceNext:!1}},o.hasOwnProperty("_")||(r.limit=function(){var a=r.args[0]||"";return e.caseSensitive||(a=a.toLowerCase()),o.hasOwnProperty(a)})):r.preCheck=function(a){return r.args=aH(a),r.hRes=typeof t=="function"?t.apply(a,r.args):!0,{res:a,forceNext:!1}},r}Wr.promptCL=function(t,e){var r=Ns({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=ome(t,r);return r.limit=o.limit,r.preCheck=o.preCheck,Wr.prompt(r),o.args};Wr.promptLoop=function(t,e){for(var r=Ns({hideEchoBack:!1,trueValue:null,falseValue:null,caseSensitive:!1,history:!0},e);!t(Wr.prompt(r)););};Wr.promptCLLoop=function(t,e){var r=Ns({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=ome(t,r);for(r.limit=o.limit,r.preCheck=o.preCheck;Wr.prompt(r),!o.hRes;);};Wr.promptSimShell=function(t){return Wr.prompt(Ns({hideEchoBack:!1,history:!0},t,{prompt:function(){return jg?"$<cwd>>":(process.env.USER||"")+(process.env.HOSTNAME?"@"+process.env.HOSTNAME.replace(/\..*$/,""):"")+":$<cwdHome>$ "}()}))};function ame(t,e,r){var o;return t==null&&(t="Are you sure? "),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s*:?\s*$/,"")+" [y/n]: "),o=Wr.keyIn(t,Ns(e,{hideEchoBack:!1,limit:r,trueValue:"y",falseValue:"n",caseSensitive:!1})),typeof o=="boolean"?o:""}Wr.keyInYN=function(t,e){return ame(t,e)};Wr.keyInYNStrict=function(t,e){return ame(t,e,"yn")};Wr.keyInPause=function(t,e){t==null&&(t="Continue..."),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s+$/,"")+" (Hit any key)"),Wr.keyIn(t,Ns({limit:null},e,{hideEchoBack:!0,mask:""}))};Wr.keyInSelect=function(t,e,r){var o=Ns({hideEchoBack:!1},r,{trueValue:null,falseValue:null,caseSensitive:!1,phContent:function(p){return p==="itemsCount"?t.length+"":p==="firstItem"?(t[0]+"").trim():p==="lastItem"?(t[t.length-1]+"").trim():null}}),a="",n={},u=49,A=` -`;if(!Array.isArray(t)||!t.length||t.length>35)throw"`items` must be Array (max length: 35).";return t.forEach(function(p,h){var E=String.fromCharCode(u);a+=E,n[E]=h,A+="["+E+"] "+(p+"").trim()+` -`,u=u===57?97:u+1}),(!r||r.cancel!==!1)&&(a+="0",n[0]=-1,A+="[0] "+(r&&r.cancel!=null&&typeof r.cancel!="boolean"?(r.cancel+"").trim():"CANCEL")+` -`),o.limit=a,A+=` -`,e==null&&(e="Choose one from list: "),(e+="")&&((!r||r.guide!==!1)&&(e=e.replace(/\s*:?\s*$/,"")+" [$<limit>]: "),A+=e),n[Wr.keyIn(A,o).toLowerCase()]};Wr.getRawInput=function(){return ak};function u2(t,e){var r;return e.length&&(r={},r[t]=e[0]),Wr.setDefaultOptions(r)[t]}Wr.setPrint=function(){return u2("print",arguments)};Wr.setPrompt=function(){return u2("prompt",arguments)};Wr.setEncoding=function(){return u2("encoding",arguments)};Wr.setMask=function(){return u2("mask",arguments)};Wr.setBufferSize=function(){return u2("bufferSize",arguments)}});var AH=_((a7t,gl)=>{(function(){var t={major:0,minor:2,patch:66,status:"beta"};tau_file_system={files:{},open:function(w,S,y){var F=tau_file_system.files[w];if(!F){if(y==="read")return null;F={path:w,text:"",type:S,get:function(J,X){return X===this.text.length||X>this.text.length?"end_of_file":this.text.substring(X,X+J)},put:function(J,X){return X==="end_of_file"?(this.text+=J,!0):X==="past_end_of_file"?null:(this.text=this.text.substring(0,X)+J+this.text.substring(X+J.length),!0)},get_byte:function(J){if(J==="end_of_stream")return-1;var X=Math.floor(J/2);if(this.text.length<=X)return-1;var $=n(this.text[Math.floor(J/2)],0);return J%2===0?$&255:$/256>>>0},put_byte:function(J,X){var $=X==="end_of_stream"?this.text.length:Math.floor(X/2);if(this.text.length<$)return null;var ie=this.text.length===$?-1:n(this.text[Math.floor(X/2)],0);return X%2===0?(ie=ie/256>>>0,ie=(ie&255)<<8|J&255):(ie=ie&255,ie=(J&255)<<8|ie&255),this.text.length===$?this.text+=u(ie):this.text=this.text.substring(0,$)+u(ie)+this.text.substring($+1),!0},flush:function(){return!0},close:function(){var J=tau_file_system.files[this.path];return J?!0:null}},tau_file_system.files[w]=F}return y==="write"&&(F.text=""),F}},tau_user_input={buffer:"",get:function(w,S){for(var y;tau_user_input.buffer.length<w;)y=window.prompt(),y&&(tau_user_input.buffer+=y);return y=tau_user_input.buffer.substr(0,w),tau_user_input.buffer=tau_user_input.buffer.substr(w),y}},tau_user_output={put:function(w,S){return console.log(w),!0},flush:function(){return!0}},nodejs_file_system={open:function(w,S,y){var F=ve("fs"),J=F.openSync(w,y[0]);return y==="read"&&!F.existsSync(w)?null:{get:function(X,$){var ie=new Buffer(X);return F.readSync(J,ie,0,X,$),ie.toString()},put:function(X,$){var ie=Buffer.from(X);if($==="end_of_file")F.writeSync(J,ie);else{if($==="past_end_of_file")return null;F.writeSync(J,ie,0,ie.length,$)}return!0},get_byte:function(X){return null},put_byte:function(X,$){return null},flush:function(){return!0},close:function(){return F.closeSync(J),!0}}}},nodejs_user_input={buffer:"",get:function(w,S){for(var y,F=lme();nodejs_user_input.buffer.length<w;)nodejs_user_input.buffer+=F.question();return y=nodejs_user_input.buffer.substr(0,w),nodejs_user_input.buffer=nodejs_user_input.buffer.substr(w),y}},nodejs_user_output={put:function(w,S){return process.stdout.write(w),!0},flush:function(){return!0}};var e;Array.prototype.indexOf?e=function(w,S){return w.indexOf(S)}:e=function(w,S){for(var y=w.length,F=0;F<y;F++)if(S===w[F])return F;return-1};var r=function(w,S){if(w.length!==0){for(var y=w[0],F=w.length,J=1;J<F;J++)y=S(y,w[J]);return y}},o;Array.prototype.map?o=function(w,S){return w.map(S)}:o=function(w,S){for(var y=[],F=w.length,J=0;J<F;J++)y.push(S(w[J]));return y};var a;Array.prototype.filter?a=function(w,S){return w.filter(S)}:a=function(w,S){for(var y=[],F=w.length,J=0;J<F;J++)S(w[J])&&y.push(w[J]);return y};var n;String.prototype.codePointAt?n=function(w,S){return w.codePointAt(S)}:n=function(w,S){return w.charCodeAt(S)};var u;String.fromCodePoint?u=function(){return String.fromCodePoint.apply(null,arguments)}:u=function(){return String.fromCharCode.apply(null,arguments)};var A=0,p=1,h=/(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)|\\x([0-9a-fA-F]+)\\|\\([0-7]+)\\|(\\\\)|(\\')|('')|(\\")|(\\`)|(\\.)|(.)/g,E={"\\a":7,"\\b":8,"\\f":12,"\\n":10,"\\r":13,"\\t":9,"\\v":11};function I(w){var S=[],y=!1;return w.replace(h,function(F,J,X,$,ie,be,Re,at,dt,jt,tr,St,ln,kr,mr,br,Kr){switch(!0){case dt!==void 0:return S.push(parseInt(dt,16)),"";case jt!==void 0:return S.push(parseInt(jt,8)),"";case tr!==void 0:case St!==void 0:case ln!==void 0:case kr!==void 0:case mr!==void 0:return S.push(n(F.substr(1),0)),"";case Kr!==void 0:return S.push(n(Kr,0)),"";case br!==void 0:y=!0;default:return S.push(E[F]),""}}),y?null:S}function v(w,S){var y="";if(w.length<2)return w;try{w=w.replace(/\\([0-7]+)\\/g,function($,ie){return u(parseInt(ie,8))}),w=w.replace(/\\x([0-9a-fA-F]+)\\/g,function($,ie){return u(parseInt(ie,16))})}catch{return null}for(var F=0;F<w.length;F++){var J=w.charAt(F),X=w.charAt(F+1);if(J===S&&X===S)F++,y+=S;else if(J==="\\")if(["a","b","f","n","r","t","v","'",'"',"\\","a","\b","\f",` -`,"\r"," ","\v"].indexOf(X)!==-1)switch(F+=1,X){case"a":y+="a";break;case"b":y+="\b";break;case"f":y+="\f";break;case"n":y+=` -`;break;case"r":y+="\r";break;case"t":y+=" ";break;case"v":y+="\v";break;case"'":y+="'";break;case'"':y+='"';break;case"\\":y+="\\";break}else return null;else y+=J}return y}function x(w){for(var S="",y=0;y<w.length;y++)switch(w.charAt(y)){case"'":S+="\\'";break;case"\\":S+="\\\\";break;case"\b":S+="\\b";break;case"\f":S+="\\f";break;case` -`:S+="\\n";break;case"\r":S+="\\r";break;case" ":S+="\\t";break;case"\v":S+="\\v";break;default:S+=w.charAt(y);break}return S}function C(w){var S=w.substr(2);switch(w.substr(0,2).toLowerCase()){case"0x":return parseInt(S,16);case"0b":return parseInt(S,2);case"0o":return parseInt(S,8);case"0'":return I(S)[0];default:return parseFloat(w)}}var R={whitespace:/^\s*(?:(?:%.*)|(?:\/\*(?:\n|\r|.)*?\*\/)|(?:\s+))\s*/,variable:/^(?:[A-Z_][a-zA-Z0-9_]*)/,atom:/^(\!|,|;|[a-z][0-9a-zA-Z_]*|[#\$\&\*\+\-\.\/\:\<\=\>\?\@\^\~\\]+|'(?:[^']*?(?:\\(?:x?\d+)?\\)*(?:'')*(?:\\')*)*')/,number:/^(?:0o[0-7]+|0x[0-9a-fA-F]+|0b[01]+|0'(?:''|\\[abfnrtv\\'"`]|\\x?\d+\\|[^\\])|\d+(?:\.\d+(?:[eE][+-]?\d+)?)?)/,string:/^(?:"([^"]|""|\\")*"|`([^`]|``|\\`)*`)/,l_brace:/^(?:\[)/,r_brace:/^(?:\])/,l_bracket:/^(?:\{)/,r_bracket:/^(?:\})/,bar:/^(?:\|)/,l_paren:/^(?:\()/,r_paren:/^(?:\))/};function L(w,S){return w.get_flag("char_conversion").id==="on"?S.replace(/./g,function(y){return w.get_char_conversion(y)}):S}function U(w){this.thread=w,this.text="",this.tokens=[]}U.prototype.set_last_tokens=function(w){return this.tokens=w},U.prototype.new_text=function(w){this.text=w,this.tokens=[]},U.prototype.get_tokens=function(w){var S,y=0,F=0,J=0,X=[],$=!1;if(w){var ie=this.tokens[w-1];y=ie.len,S=L(this.thread,this.text.substr(ie.len)),F=ie.line,J=ie.start}else S=this.text;if(/^\s*$/.test(S))return null;for(;S!=="";){var be=[],Re=!1;if(/^\n/.exec(S)!==null){F++,J=0,y++,S=S.replace(/\n/,""),$=!0;continue}for(var at in R)if(R.hasOwnProperty(at)){var dt=R[at].exec(S);dt&&be.push({value:dt[0],name:at,matches:dt})}if(!be.length)return this.set_last_tokens([{value:S,matches:[],name:"lexical",line:F,start:J}]);var ie=r(be,function(kr,mr){return kr.value.length>=mr.value.length?kr:mr});switch(ie.start=J,ie.line=F,S=S.replace(ie.value,""),J+=ie.value.length,y+=ie.value.length,ie.name){case"atom":ie.raw=ie.value,ie.value.charAt(0)==="'"&&(ie.value=v(ie.value.substr(1,ie.value.length-2),"'"),ie.value===null&&(ie.name="lexical",ie.value="unknown escape sequence"));break;case"number":ie.float=ie.value.substring(0,2)!=="0x"&&ie.value.match(/[.eE]/)!==null&&ie.value!=="0'.",ie.value=C(ie.value),ie.blank=Re;break;case"string":var jt=ie.value.charAt(0);ie.value=v(ie.value.substr(1,ie.value.length-2),jt),ie.value===null&&(ie.name="lexical",ie.value="unknown escape sequence");break;case"whitespace":var tr=X[X.length-1];tr&&(tr.space=!0),Re=!0;continue;case"r_bracket":X.length>0&&X[X.length-1].name==="l_bracket"&&(ie=X.pop(),ie.name="atom",ie.value="{}",ie.raw="{}",ie.space=!1);break;case"r_brace":X.length>0&&X[X.length-1].name==="l_brace"&&(ie=X.pop(),ie.name="atom",ie.value="[]",ie.raw="[]",ie.space=!1);break}ie.len=y,X.push(ie),Re=!1}var St=this.set_last_tokens(X);return St.length===0?null:St};function z(w,S,y,F,J){if(!S[y])return{type:A,value:b.error.syntax(S[y-1],"expression expected",!0)};var X;if(F==="0"){var $=S[y];switch($.name){case"number":return{type:p,len:y+1,value:new b.type.Num($.value,$.float)};case"variable":return{type:p,len:y+1,value:new b.type.Var($.value)};case"string":var ie;switch(w.get_flag("double_quotes").id){case"atom":ie=new H($.value,[]);break;case"codes":ie=new H("[]",[]);for(var be=$.value.length-1;be>=0;be--)ie=new H(".",[new b.type.Num(n($.value,be),!1),ie]);break;case"chars":ie=new H("[]",[]);for(var be=$.value.length-1;be>=0;be--)ie=new H(".",[new b.type.Term($.value.charAt(be),[]),ie]);break}return{type:p,len:y+1,value:ie};case"l_paren":var St=z(w,S,y+1,w.__get_max_priority(),!0);return St.type!==p?St:S[St.len]&&S[St.len].name==="r_paren"?(St.len++,St):{type:A,derived:!0,value:b.error.syntax(S[St.len]?S[St.len]:S[St.len-1],") or operator expected",!S[St.len])};case"l_bracket":var St=z(w,S,y+1,w.__get_max_priority(),!0);return St.type!==p?St:S[St.len]&&S[St.len].name==="r_bracket"?(St.len++,St.value=new H("{}",[St.value]),St):{type:A,derived:!0,value:b.error.syntax(S[St.len]?S[St.len]:S[St.len-1],"} or operator expected",!S[St.len])}}var Re=te(w,S,y,J);return Re.type===p||Re.derived||(Re=ae(w,S,y),Re.type===p||Re.derived)?Re:{type:A,derived:!1,value:b.error.syntax(S[y],"unexpected token")}}var at=w.__get_max_priority(),dt=w.__get_next_priority(F),jt=y;if(S[y].name==="atom"&&S[y+1]&&(S[y].space||S[y+1].name!=="l_paren")){var $=S[y++],tr=w.__lookup_operator_classes(F,$.value);if(tr&&tr.indexOf("fy")>-1){var St=z(w,S,y,F,J);if(St.type!==A)return $.value==="-"&&!$.space&&b.type.is_number(St.value)?{value:new b.type.Num(-St.value.value,St.value.is_float),len:St.len,type:p}:{value:new b.type.Term($.value,[St.value]),len:St.len,type:p};X=St}else if(tr&&tr.indexOf("fx")>-1){var St=z(w,S,y,dt,J);if(St.type!==A)return{value:new b.type.Term($.value,[St.value]),len:St.len,type:p};X=St}}y=jt;var St=z(w,S,y,dt,J);if(St.type===p){y=St.len;var $=S[y];if(S[y]&&(S[y].name==="atom"&&w.__lookup_operator_classes(F,$.value)||S[y].name==="bar"&&w.__lookup_operator_classes(F,"|"))){var ln=dt,kr=F,tr=w.__lookup_operator_classes(F,$.value);if(tr.indexOf("xf")>-1)return{value:new b.type.Term($.value,[St.value]),len:++St.len,type:p};if(tr.indexOf("xfx")>-1){var mr=z(w,S,y+1,ln,J);return mr.type===p?{value:new b.type.Term($.value,[St.value,mr.value]),len:mr.len,type:p}:(mr.derived=!0,mr)}else if(tr.indexOf("xfy")>-1){var mr=z(w,S,y+1,kr,J);return mr.type===p?{value:new b.type.Term($.value,[St.value,mr.value]),len:mr.len,type:p}:(mr.derived=!0,mr)}else if(St.type!==A)for(;;){y=St.len;var $=S[y];if($&&$.name==="atom"&&w.__lookup_operator_classes(F,$.value)){var tr=w.__lookup_operator_classes(F,$.value);if(tr.indexOf("yf")>-1)St={value:new b.type.Term($.value,[St.value]),len:++y,type:p};else if(tr.indexOf("yfx")>-1){var mr=z(w,S,++y,ln,J);if(mr.type===A)return mr.derived=!0,mr;y=mr.len,St={value:new b.type.Term($.value,[St.value,mr.value]),len:y,type:p}}else break}else break}}else X={type:A,value:b.error.syntax(S[St.len-1],"operator expected")};return St}return St}function te(w,S,y,F){if(!S[y]||S[y].name==="atom"&&S[y].raw==="."&&!F&&(S[y].space||!S[y+1]||S[y+1].name!=="l_paren"))return{type:A,derived:!1,value:b.error.syntax(S[y-1],"unfounded token")};var J=S[y],X=[];if(S[y].name==="atom"&&S[y].raw!==","){if(y++,S[y-1].space)return{type:p,len:y,value:new b.type.Term(J.value,X)};if(S[y]&&S[y].name==="l_paren"){if(S[y+1]&&S[y+1].name==="r_paren")return{type:A,derived:!0,value:b.error.syntax(S[y+1],"argument expected")};var $=z(w,S,++y,"999",!0);if($.type===A)return $.derived?$:{type:A,derived:!0,value:b.error.syntax(S[y]?S[y]:S[y-1],"argument expected",!S[y])};for(X.push($.value),y=$.len;S[y]&&S[y].name==="atom"&&S[y].value===",";){if($=z(w,S,y+1,"999",!0),$.type===A)return $.derived?$:{type:A,derived:!0,value:b.error.syntax(S[y+1]?S[y+1]:S[y],"argument expected",!S[y+1])};X.push($.value),y=$.len}if(S[y]&&S[y].name==="r_paren")y++;else return{type:A,derived:!0,value:b.error.syntax(S[y]?S[y]:S[y-1],", or ) expected",!S[y])}}return{type:p,len:y,value:new b.type.Term(J.value,X)}}return{type:A,derived:!1,value:b.error.syntax(S[y],"term expected")}}function ae(w,S,y){if(!S[y])return{type:A,derived:!1,value:b.error.syntax(S[y-1],"[ expected")};if(S[y]&&S[y].name==="l_brace"){var F=z(w,S,++y,"999",!0),J=[F.value],X=void 0;if(F.type===A)return S[y]&&S[y].name==="r_brace"?{type:p,len:y+1,value:new b.type.Term("[]",[])}:{type:A,derived:!0,value:b.error.syntax(S[y],"] expected")};for(y=F.len;S[y]&&S[y].name==="atom"&&S[y].value===",";){if(F=z(w,S,y+1,"999",!0),F.type===A)return F.derived?F:{type:A,derived:!0,value:b.error.syntax(S[y+1]?S[y+1]:S[y],"argument expected",!S[y+1])};J.push(F.value),y=F.len}var $=!1;if(S[y]&&S[y].name==="bar"){if($=!0,F=z(w,S,y+1,"999",!0),F.type===A)return F.derived?F:{type:A,derived:!0,value:b.error.syntax(S[y+1]?S[y+1]:S[y],"argument expected",!S[y+1])};X=F.value,y=F.len}return S[y]&&S[y].name==="r_brace"?{type:p,len:y+1,value:g(J,X)}:{type:A,derived:!0,value:b.error.syntax(S[y]?S[y]:S[y-1],$?"] expected":", or | or ] expected",!S[y])}}return{type:A,derived:!1,value:b.error.syntax(S[y],"list expected")}}function le(w,S,y){var F=S[y].line,J=z(w,S,y,w.__get_max_priority(),!1),X=null,$;if(J.type!==A)if(y=J.len,S[y]&&S[y].name==="atom"&&S[y].raw===".")if(y++,b.type.is_term(J.value)){if(J.value.indicator===":-/2"?(X=new b.type.Rule(J.value.args[0],Ee(J.value.args[1])),$={value:X,len:y,type:p}):J.value.indicator==="-->/2"?(X=de(new b.type.Rule(J.value.args[0],J.value.args[1]),w),X.body=Ee(X.body),$={value:X,len:y,type:b.type.is_rule(X)?p:A}):(X=new b.type.Rule(J.value,null),$={value:X,len:y,type:p}),X){var ie=X.singleton_variables();ie.length>0&&w.throw_warning(b.warning.singleton(ie,X.head.indicator,F))}return $}else return{type:A,value:b.error.syntax(S[y],"callable expected")};else return{type:A,value:b.error.syntax(S[y]?S[y]:S[y-1],". or operator expected")};return J}function ce(w,S,y){y=y||{},y.from=y.from?y.from:"$tau-js",y.reconsult=y.reconsult!==void 0?y.reconsult:!0;var F=new U(w),J={},X;F.new_text(S);var $=0,ie=F.get_tokens($);do{if(ie===null||!ie[$])break;var be=le(w,ie,$);if(be.type===A)return new H("throw",[be.value]);if(be.value.body===null&&be.value.head.indicator==="?-/1"){var Re=new et(w.session);Re.add_goal(be.value.head.args[0]),Re.answer(function(dt){b.type.is_error(dt)?w.throw_warning(dt.args[0]):(dt===!1||dt===null)&&w.throw_warning(b.warning.failed_goal(be.value.head.args[0],be.len))}),$=be.len;var at=!0}else if(be.value.body===null&&be.value.head.indicator===":-/1"){var at=w.run_directive(be.value.head.args[0]);$=be.len,be.value.head.args[0].indicator==="char_conversion/2"&&(ie=F.get_tokens($),$=0)}else{X=be.value.head.indicator,y.reconsult!==!1&&J[X]!==!0&&!w.is_multifile_predicate(X)&&(w.session.rules[X]=a(w.session.rules[X]||[],function(jt){return jt.dynamic}),J[X]=!0);var at=w.add_rule(be.value,y);$=be.len}if(!at)return at}while(!0);return!0}function Ce(w,S){var y=new U(w);y.new_text(S);var F=0;do{var J=y.get_tokens(F);if(J===null)break;var X=z(w,J,0,w.__get_max_priority(),!1);if(X.type!==A){var $=X.len,ie=$;if(J[$]&&J[$].name==="atom"&&J[$].raw===".")w.add_goal(Ee(X.value));else{var be=J[$];return new H("throw",[b.error.syntax(be||J[$-1],". or operator expected",!be)])}F=X.len+1}else return new H("throw",[X.value])}while(!0);return!0}function de(w,S){w=w.rename(S);var y=S.next_free_variable(),F=Be(w.body,y,S);return F.error?F.value:(w.body=F.value,w.head.args=w.head.args.concat([y,F.variable]),w.head=new H(w.head.id,w.head.args),w)}function Be(w,S,y){var F;if(b.type.is_term(w)&&w.indicator==="!/0")return{value:w,variable:S,error:!1};if(b.type.is_term(w)&&w.indicator===",/2"){var J=Be(w.args[0],S,y);if(J.error)return J;var X=Be(w.args[1],J.variable,y);return X.error?X:{value:new H(",",[J.value,X.value]),variable:X.variable,error:!1}}else{if(b.type.is_term(w)&&w.indicator==="{}/1")return{value:w.args[0],variable:S,error:!1};if(b.type.is_empty_list(w))return{value:new H("true",[]),variable:S,error:!1};if(b.type.is_list(w)){F=y.next_free_variable();for(var $=w,ie;$.indicator==="./2";)ie=$,$=$.args[1];return b.type.is_variable($)?{value:b.error.instantiation("DCG"),variable:S,error:!0}:b.type.is_empty_list($)?(ie.args[1]=F,{value:new H("=",[S,w]),variable:F,error:!1}):{value:b.error.type("list",w,"DCG"),variable:S,error:!0}}else return b.type.is_callable(w)?(F=y.next_free_variable(),w.args=w.args.concat([S,F]),w=new H(w.id,w.args),{value:w,variable:F,error:!1}):{value:b.error.type("callable",w,"DCG"),variable:S,error:!0}}}function Ee(w){return b.type.is_variable(w)?new H("call",[w]):b.type.is_term(w)&&[",/2",";/2","->/2"].indexOf(w.indicator)!==-1?new H(w.id,[Ee(w.args[0]),Ee(w.args[1])]):w}function g(w,S){for(var y=S||new b.type.Term("[]",[]),F=w.length-1;F>=0;F--)y=new b.type.Term(".",[w[F],y]);return y}function me(w,S){for(var y=w.length-1;y>=0;y--)w[y]===S&&w.splice(y,1)}function we(w){for(var S={},y=[],F=0;F<w.length;F++)w[F]in S||(y.push(w[F]),S[w[F]]=!0);return y}function Ae(w,S,y,F){if(w.session.rules[y]!==null){for(var J=0;J<w.session.rules[y].length;J++)if(w.session.rules[y][J]===F){w.session.rules[y].splice(J,1),w.success(S);break}}}function ne(w){return function(S,y,F){var J=F.args[0],X=F.args.slice(1,w);if(b.type.is_variable(J))S.throw_error(b.error.instantiation(S.level));else if(!b.type.is_callable(J))S.throw_error(b.error.type("callable",J,S.level));else{var $=new H(J.id,J.args.concat(X));S.prepend([new ke(y.goal.replace($),y.substitution,y)])}}}function Z(w){for(var S=w.length-1;S>=0;S--)if(w.charAt(S)==="/")return new H("/",[new H(w.substring(0,S)),new Ne(parseInt(w.substring(S+1)),!1)])}function xe(w){this.id=w}function Ne(w,S){this.is_float=S!==void 0?S:parseInt(w)!==w,this.value=this.is_float?w:parseInt(w)}var ht=0;function H(w,S,y){this.ref=y||++ht,this.id=w,this.args=S||[],this.indicator=w+"/"+this.args.length}var rt=0;function Te(w,S,y,F,J,X){this.id=rt++,this.stream=w,this.mode=S,this.alias=y,this.type=F!==void 0?F:"text",this.reposition=J!==void 0?J:!0,this.eof_action=X!==void 0?X:"eof_code",this.position=this.mode==="append"?"end_of_stream":0,this.output=this.mode==="write"||this.mode==="append",this.input=this.mode==="read"}function Fe(w){w=w||{},this.links=w}function ke(w,S,y){S=S||new Fe,y=y||null,this.goal=w,this.substitution=S,this.parent=y}function Ye(w,S,y){this.head=w,this.body=S,this.dynamic=y||!1}function Se(w){w=w===void 0||w<=0?1e3:w,this.rules={},this.src_predicates={},this.rename=0,this.modules=[],this.thread=new et(this),this.total_threads=1,this.renamed_variables={},this.public_predicates={},this.multifile_predicates={},this.limit=w,this.streams={user_input:new Te(typeof gl<"u"&&gl.exports?nodejs_user_input:tau_user_input,"read","user_input","text",!1,"reset"),user_output:new Te(typeof gl<"u"&&gl.exports?nodejs_user_output:tau_user_output,"write","user_output","text",!1,"eof_code")},this.file_system=typeof gl<"u"&&gl.exports?nodejs_file_system:tau_file_system,this.standard_input=this.streams.user_input,this.standard_output=this.streams.user_output,this.current_input=this.streams.user_input,this.current_output=this.streams.user_output,this.format_success=function(S){return S.substitution},this.format_error=function(S){return S.goal},this.flag={bounded:b.flag.bounded.value,max_integer:b.flag.max_integer.value,min_integer:b.flag.min_integer.value,integer_rounding_function:b.flag.integer_rounding_function.value,char_conversion:b.flag.char_conversion.value,debug:b.flag.debug.value,max_arity:b.flag.max_arity.value,unknown:b.flag.unknown.value,double_quotes:b.flag.double_quotes.value,occurs_check:b.flag.occurs_check.value,dialect:b.flag.dialect.value,version_data:b.flag.version_data.value,nodejs:b.flag.nodejs.value},this.__loaded_modules=[],this.__char_conversion={},this.__operators={1200:{":-":["fx","xfx"],"-->":["xfx"],"?-":["fx"]},1100:{";":["xfy"]},1050:{"->":["xfy"]},1e3:{",":["xfy"]},900:{"\\+":["fy"]},700:{"=":["xfx"],"\\=":["xfx"],"==":["xfx"],"\\==":["xfx"],"@<":["xfx"],"@=<":["xfx"],"@>":["xfx"],"@>=":["xfx"],"=..":["xfx"],is:["xfx"],"=:=":["xfx"],"=\\=":["xfx"],"<":["xfx"],"=<":["xfx"],">":["xfx"],">=":["xfx"]},600:{":":["xfy"]},500:{"+":["yfx"],"-":["yfx"],"/\\":["yfx"],"\\/":["yfx"]},400:{"*":["yfx"],"/":["yfx"],"//":["yfx"],rem:["yfx"],mod:["yfx"],"<<":["yfx"],">>":["yfx"]},200:{"**":["xfx"],"^":["xfy"],"-":["fy"],"+":["fy"],"\\":["fy"]}}}function et(w){this.epoch=Date.now(),this.session=w,this.session.total_threads++,this.total_steps=0,this.cpu_time=0,this.cpu_time_last=0,this.points=[],this.debugger=!1,this.debugger_states=[],this.level="top_level/0",this.__calls=[],this.current_limit=this.session.limit,this.warnings=[]}function Ue(w,S,y){this.id=w,this.rules=S,this.exports=y,b.module[w]=this}Ue.prototype.exports_predicate=function(w){return this.exports.indexOf(w)!==-1},xe.prototype.unify=function(w,S){if(S&&e(w.variables(),this.id)!==-1&&!b.type.is_variable(w))return null;var y={};return y[this.id]=w,new Fe(y)},Ne.prototype.unify=function(w,S){return b.type.is_number(w)&&this.value===w.value&&this.is_float===w.is_float?new Fe:null},H.prototype.unify=function(w,S){if(b.type.is_term(w)&&this.indicator===w.indicator){for(var y=new Fe,F=0;F<this.args.length;F++){var J=b.unify(this.args[F].apply(y),w.args[F].apply(y),S);if(J===null)return null;for(var X in J.links)y.links[X]=J.links[X];y=y.apply(J)}return y}return null},Te.prototype.unify=function(w,S){return b.type.is_stream(w)&&this.id===w.id?new Fe:null},xe.prototype.toString=function(w){return this.id},Ne.prototype.toString=function(w){return this.is_float&&e(this.value.toString(),".")===-1?this.value+".0":this.value.toString()},H.prototype.toString=function(w,S,y){if(w=w||{},w.quoted=w.quoted===void 0?!0:w.quoted,w.ignore_ops=w.ignore_ops===void 0?!1:w.ignore_ops,w.numbervars=w.numbervars===void 0?!1:w.numbervars,S=S===void 0?1200:S,y=y===void 0?"":y,w.numbervars&&this.indicator==="$VAR/1"&&b.type.is_integer(this.args[0])&&this.args[0].value>=0){var F=this.args[0].value,J=Math.floor(F/26),X=F%26;return"ABCDEFGHIJKLMNOPQRSTUVWXYZ"[X]+(J!==0?J:"")}switch(this.indicator){case"[]/0":case"{}/0":case"!/0":return this.id;case"{}/1":return"{"+this.args[0].toString(w)+"}";case"./2":for(var $="["+this.args[0].toString(w),ie=this.args[1];ie.indicator==="./2";)$+=", "+ie.args[0].toString(w),ie=ie.args[1];return ie.indicator!=="[]/0"&&($+="|"+ie.toString(w)),$+="]",$;case",/2":return"("+this.args[0].toString(w)+", "+this.args[1].toString(w)+")";default:var be=this.id,Re=w.session?w.session.lookup_operator(this.id,this.args.length):null;if(w.session===void 0||w.ignore_ops||Re===null)return w.quoted&&!/^(!|,|;|[a-z][0-9a-zA-Z_]*)$/.test(be)&&be!=="{}"&&be!=="[]"&&(be="'"+x(be)+"'"),be+(this.args.length?"("+o(this.args,function(tr){return tr.toString(w)}).join(", ")+")":"");var at=Re.priority>S.priority||Re.priority===S.priority&&(Re.class==="xfy"&&this.indicator!==S.indicator||Re.class==="yfx"&&this.indicator!==S.indicator||this.indicator===S.indicator&&Re.class==="yfx"&&y==="right"||this.indicator===S.indicator&&Re.class==="xfy"&&y==="left");Re.indicator=this.indicator;var dt=at?"(":"",jt=at?")":"";return this.args.length===0?"("+this.id+")":["fy","fx"].indexOf(Re.class)!==-1?dt+be+" "+this.args[0].toString(w,Re)+jt:["yf","xf"].indexOf(Re.class)!==-1?dt+this.args[0].toString(w,Re)+" "+be+jt:dt+this.args[0].toString(w,Re,"left")+" "+this.id+" "+this.args[1].toString(w,Re,"right")+jt}},Te.prototype.toString=function(w){return"<stream>("+this.id+")"},Fe.prototype.toString=function(w){var S="{";for(var y in this.links)this.links.hasOwnProperty(y)&&(S!=="{"&&(S+=", "),S+=y+"/"+this.links[y].toString(w));return S+="}",S},ke.prototype.toString=function(w){return this.goal===null?"<"+this.substitution.toString(w)+">":"<"+this.goal.toString(w)+", "+this.substitution.toString(w)+">"},Ye.prototype.toString=function(w){return this.body?this.head.toString(w)+" :- "+this.body.toString(w)+".":this.head.toString(w)+"."},Se.prototype.toString=function(w){for(var S="",y=0;y<this.modules.length;y++)S+=":- use_module(library("+this.modules[y]+`)). -`;S+=` -`;for(key in this.rules)for(y=0;y<this.rules[key].length;y++)S+=this.rules[key][y].toString(w),S+=` -`;return S},xe.prototype.clone=function(){return new xe(this.id)},Ne.prototype.clone=function(){return new Ne(this.value,this.is_float)},H.prototype.clone=function(){return new H(this.id,o(this.args,function(w){return w.clone()}))},Te.prototype.clone=function(){return new Stram(this.stream,this.mode,this.alias,this.type,this.reposition,this.eof_action)},Fe.prototype.clone=function(){var w={};for(var S in this.links)this.links.hasOwnProperty(S)&&(w[S]=this.links[S].clone());return new Fe(w)},ke.prototype.clone=function(){return new ke(this.goal.clone(),this.substitution.clone(),this.parent)},Ye.prototype.clone=function(){return new Ye(this.head.clone(),this.body!==null?this.body.clone():null)},xe.prototype.equals=function(w){return b.type.is_variable(w)&&this.id===w.id},Ne.prototype.equals=function(w){return b.type.is_number(w)&&this.value===w.value&&this.is_float===w.is_float},H.prototype.equals=function(w){if(!b.type.is_term(w)||this.indicator!==w.indicator)return!1;for(var S=0;S<this.args.length;S++)if(!this.args[S].equals(w.args[S]))return!1;return!0},Te.prototype.equals=function(w){return b.type.is_stream(w)&&this.id===w.id},Fe.prototype.equals=function(w){var S;if(!b.type.is_substitution(w))return!1;for(S in this.links)if(this.links.hasOwnProperty(S)&&(!w.links[S]||!this.links[S].equals(w.links[S])))return!1;for(S in w.links)if(w.links.hasOwnProperty(S)&&!this.links[S])return!1;return!0},ke.prototype.equals=function(w){return b.type.is_state(w)&&this.goal.equals(w.goal)&&this.substitution.equals(w.substitution)&&this.parent===w.parent},Ye.prototype.equals=function(w){return b.type.is_rule(w)&&this.head.equals(w.head)&&(this.body===null&&w.body===null||this.body!==null&&this.body.equals(w.body))},xe.prototype.rename=function(w){return w.get_free_variable(this)},Ne.prototype.rename=function(w){return this},H.prototype.rename=function(w){return new H(this.id,o(this.args,function(S){return S.rename(w)}))},Te.prototype.rename=function(w){return this},Ye.prototype.rename=function(w){return new Ye(this.head.rename(w),this.body!==null?this.body.rename(w):null)},xe.prototype.variables=function(){return[this.id]},Ne.prototype.variables=function(){return[]},H.prototype.variables=function(){return[].concat.apply([],o(this.args,function(w){return w.variables()}))},Te.prototype.variables=function(){return[]},Ye.prototype.variables=function(){return this.body===null?this.head.variables():this.head.variables().concat(this.body.variables())},xe.prototype.apply=function(w){return w.lookup(this.id)?w.lookup(this.id):this},Ne.prototype.apply=function(w){return this},H.prototype.apply=function(w){if(this.indicator==="./2"){for(var S=[],y=this;y.indicator==="./2";)S.push(y.args[0].apply(w)),y=y.args[1];for(var F=y.apply(w),J=S.length-1;J>=0;J--)F=new H(".",[S[J],F]);return F}return new H(this.id,o(this.args,function(X){return X.apply(w)}),this.ref)},Te.prototype.apply=function(w){return this},Ye.prototype.apply=function(w){return new Ye(this.head.apply(w),this.body!==null?this.body.apply(w):null)},Fe.prototype.apply=function(w){var S,y={};for(S in this.links)this.links.hasOwnProperty(S)&&(y[S]=this.links[S].apply(w));return new Fe(y)},H.prototype.select=function(){for(var w=this;w.indicator===",/2";)w=w.args[0];return w},H.prototype.replace=function(w){return this.indicator===",/2"?this.args[0].indicator===",/2"?new H(",",[this.args[0].replace(w),this.args[1]]):w===null?this.args[1]:new H(",",[w,this.args[1]]):w},H.prototype.search=function(w){if(b.type.is_term(w)&&w.ref!==void 0&&this.ref===w.ref)return!0;for(var S=0;S<this.args.length;S++)if(b.type.is_term(this.args[S])&&this.args[S].search(w))return!0;return!1},Se.prototype.get_current_input=function(){return this.current_input},et.prototype.get_current_input=function(){return this.session.get_current_input()},Se.prototype.get_current_output=function(){return this.current_output},et.prototype.get_current_output=function(){return this.session.get_current_output()},Se.prototype.set_current_input=function(w){this.current_input=w},et.prototype.set_current_input=function(w){return this.session.set_current_input(w)},Se.prototype.set_current_output=function(w){this.current_input=w},et.prototype.set_current_output=function(w){return this.session.set_current_output(w)},Se.prototype.get_stream_by_alias=function(w){return this.streams[w]},et.prototype.get_stream_by_alias=function(w){return this.session.get_stream_by_alias(w)},Se.prototype.file_system_open=function(w,S,y){return this.file_system.open(w,S,y)},et.prototype.file_system_open=function(w,S,y){return this.session.file_system_open(w,S,y)},Se.prototype.get_char_conversion=function(w){return this.__char_conversion[w]||w},et.prototype.get_char_conversion=function(w){return this.session.get_char_conversion(w)},Se.prototype.parse=function(w){return this.thread.parse(w)},et.prototype.parse=function(w){var S=new U(this);S.new_text(w);var y=S.get_tokens();if(y===null)return!1;var F=z(this,y,0,this.__get_max_priority(),!1);return F.len!==y.length?!1:{value:F.value,expr:F,tokens:y}},Se.prototype.get_flag=function(w){return this.flag[w]},et.prototype.get_flag=function(w){return this.session.get_flag(w)},Se.prototype.add_rule=function(w,S){return S=S||{},S.from=S.from?S.from:"$tau-js",this.src_predicates[w.head.indicator]=S.from,this.rules[w.head.indicator]||(this.rules[w.head.indicator]=[]),this.rules[w.head.indicator].push(w),this.public_predicates.hasOwnProperty(w.head.indicator)||(this.public_predicates[w.head.indicator]=!1),!0},et.prototype.add_rule=function(w,S){return this.session.add_rule(w,S)},Se.prototype.run_directive=function(w){this.thread.run_directive(w)},et.prototype.run_directive=function(w){return b.type.is_directive(w)?(b.directive[w.indicator](this,w),!0):!1},Se.prototype.__get_max_priority=function(){return"1200"},et.prototype.__get_max_priority=function(){return this.session.__get_max_priority()},Se.prototype.__get_next_priority=function(w){var S=0;w=parseInt(w);for(var y in this.__operators)if(this.__operators.hasOwnProperty(y)){var F=parseInt(y);F>S&&F<w&&(S=F)}return S.toString()},et.prototype.__get_next_priority=function(w){return this.session.__get_next_priority(w)},Se.prototype.__lookup_operator_classes=function(w,S){return this.__operators.hasOwnProperty(w)&&this.__operators[w][S]instanceof Array&&this.__operators[w][S]||!1},et.prototype.__lookup_operator_classes=function(w,S){return this.session.__lookup_operator_classes(w,S)},Se.prototype.lookup_operator=function(w,S){for(var y in this.__operators)if(this.__operators[y][w]){for(var F=0;F<this.__operators[y][w].length;F++)if(S===0||this.__operators[y][w][F].length===S+1)return{priority:y,class:this.__operators[y][w][F]}}return null},et.prototype.lookup_operator=function(w,S){return this.session.lookup_operator(w,S)},Se.prototype.throw_warning=function(w){this.thread.throw_warning(w)},et.prototype.throw_warning=function(w){this.warnings.push(w)},Se.prototype.get_warnings=function(){return this.thread.get_warnings()},et.prototype.get_warnings=function(){return this.warnings},Se.prototype.add_goal=function(w,S){this.thread.add_goal(w,S)},et.prototype.add_goal=function(w,S,y){y=y||null,S===!0&&(this.points=[]);for(var F=w.variables(),J={},X=0;X<F.length;X++)J[F[X]]=new xe(F[X]);this.points.push(new ke(w,new Fe(J),y))},Se.prototype.consult=function(w,S){return this.thread.consult(w,S)},et.prototype.consult=function(w,S){var y="";if(typeof w=="string"){y=w;var F=y.length;if(y.substring(F-3,F)===".pl"&&document.getElementById(y)){var J=document.getElementById(y),X=J.getAttribute("type");X!==null&&X.replace(/ /g,"").toLowerCase()==="text/prolog"&&(y=J.text)}}else if(w.nodeName)switch(w.nodeName.toLowerCase()){case"input":case"textarea":y=w.value;break;default:y=w.innerHTML;break}else return!1;return this.warnings=[],ce(this,y,S)},Se.prototype.query=function(w){return this.thread.query(w)},et.prototype.query=function(w){return this.points=[],this.debugger_points=[],Ce(this,w)},Se.prototype.head_point=function(){return this.thread.head_point()},et.prototype.head_point=function(){return this.points[this.points.length-1]},Se.prototype.get_free_variable=function(w){return this.thread.get_free_variable(w)},et.prototype.get_free_variable=function(w){var S=[];if(w.id==="_"||this.session.renamed_variables[w.id]===void 0){for(this.session.rename++,this.points.length>0&&(S=this.head_point().substitution.domain());e(S,b.format_variable(this.session.rename))!==-1;)this.session.rename++;if(w.id==="_")return new xe(b.format_variable(this.session.rename));this.session.renamed_variables[w.id]=b.format_variable(this.session.rename)}return new xe(this.session.renamed_variables[w.id])},Se.prototype.next_free_variable=function(){return this.thread.next_free_variable()},et.prototype.next_free_variable=function(){this.session.rename++;var w=[];for(this.points.length>0&&(w=this.head_point().substitution.domain());e(w,b.format_variable(this.session.rename))!==-1;)this.session.rename++;return new xe(b.format_variable(this.session.rename))},Se.prototype.is_public_predicate=function(w){return!this.public_predicates.hasOwnProperty(w)||this.public_predicates[w]===!0},et.prototype.is_public_predicate=function(w){return this.session.is_public_predicate(w)},Se.prototype.is_multifile_predicate=function(w){return this.multifile_predicates.hasOwnProperty(w)&&this.multifile_predicates[w]===!0},et.prototype.is_multifile_predicate=function(w){return this.session.is_multifile_predicate(w)},Se.prototype.prepend=function(w){return this.thread.prepend(w)},et.prototype.prepend=function(w){for(var S=w.length-1;S>=0;S--)this.points.push(w[S])},Se.prototype.success=function(w,S){return this.thread.success(w,S)},et.prototype.success=function(w,y){var y=typeof y>"u"?w:y;this.prepend([new ke(w.goal.replace(null),w.substitution,y)])},Se.prototype.throw_error=function(w){return this.thread.throw_error(w)},et.prototype.throw_error=function(w){this.prepend([new ke(new H("throw",[w]),new Fe,null,null)])},Se.prototype.step_rule=function(w,S){return this.thread.step_rule(w,S)},et.prototype.step_rule=function(w,S){var y=S.indicator;if(w==="user"&&(w=null),w===null&&this.session.rules.hasOwnProperty(y))return this.session.rules[y];for(var F=w===null?this.session.modules:e(this.session.modules,w)===-1?[]:[w],J=0;J<F.length;J++){var X=b.module[F[J]];if(X.rules.hasOwnProperty(y)&&(X.rules.hasOwnProperty(this.level)||X.exports_predicate(y)))return b.module[F[J]].rules[y]}return null},Se.prototype.step=function(){return this.thread.step()},et.prototype.step=function(){if(this.points.length!==0){var w=!1,S=this.points.pop();if(this.debugger&&this.debugger_states.push(S),b.type.is_term(S.goal)){var y=S.goal.select(),F=null,J=[];if(y!==null){this.total_steps++;for(var X=S;X.parent!==null&&X.parent.goal.search(y);)X=X.parent;if(this.level=X.parent===null?"top_level/0":X.parent.goal.select().indicator,b.type.is_term(y)&&y.indicator===":/2"&&(F=y.args[0].id,y=y.args[1]),F===null&&b.type.is_builtin(y))this.__call_indicator=y.indicator,w=b.predicate[y.indicator](this,S,y);else{var $=this.step_rule(F,y);if($===null)this.session.rules.hasOwnProperty(y.indicator)||(this.get_flag("unknown").id==="error"?this.throw_error(b.error.existence("procedure",y.indicator,this.level)):this.get_flag("unknown").id==="warning"&&this.throw_warning("unknown procedure "+y.indicator+" (from "+this.level+")"));else if($ instanceof Function)w=$(this,S,y);else{for(var ie in $)if($.hasOwnProperty(ie)){var be=$[ie];this.session.renamed_variables={},be=be.rename(this);var Re=this.get_flag("occurs_check").indicator==="true/0",at=new ke,dt=b.unify(y,be.head,Re);dt!==null&&(at.goal=S.goal.replace(be.body),at.goal!==null&&(at.goal=at.goal.apply(dt)),at.substitution=S.substitution.apply(dt),at.parent=S,J.push(at))}this.prepend(J)}}}}else b.type.is_variable(S.goal)?this.throw_error(b.error.instantiation(this.level)):this.throw_error(b.error.type("callable",S.goal,this.level));return w}},Se.prototype.answer=function(w){return this.thread.answer(w)},et.prototype.answer=function(w){w=w||function(S){},this.__calls.push(w),!(this.__calls.length>1)&&this.again()},Se.prototype.answers=function(w,S,y){return this.thread.answers(w,S,y)},et.prototype.answers=function(w,S,y){var F=S||1e3,J=this;if(S<=0){y&&y();return}this.answer(function(X){w(X),X!==!1?setTimeout(function(){J.answers(w,S-1,y)},1):y&&y()})},Se.prototype.again=function(w){return this.thread.again(w)},et.prototype.again=function(w){for(var S,y=Date.now();this.__calls.length>0;){for(this.warnings=[],w!==!1&&(this.current_limit=this.session.limit);this.current_limit>0&&this.points.length>0&&this.head_point().goal!==null&&!b.type.is_error(this.head_point().goal);)if(this.current_limit--,this.step()===!0)return;var F=Date.now();this.cpu_time_last=F-y,this.cpu_time+=this.cpu_time_last;var J=this.__calls.shift();this.current_limit<=0?J(null):this.points.length===0?J(!1):b.type.is_error(this.head_point().goal)?(S=this.session.format_error(this.points.pop()),this.points=[],J(S)):(this.debugger&&this.debugger_states.push(this.head_point()),S=this.session.format_success(this.points.pop()),J(S))}},Se.prototype.unfold=function(w){if(w.body===null)return!1;var S=w.head,y=w.body,F=y.select(),J=new et(this),X=[];J.add_goal(F),J.step();for(var $=J.points.length-1;$>=0;$--){var ie=J.points[$],be=S.apply(ie.substitution),Re=y.replace(ie.goal);Re!==null&&(Re=Re.apply(ie.substitution)),X.push(new Ye(be,Re))}var at=this.rules[S.indicator],dt=e(at,w);return X.length>0&&dt!==-1?(at.splice.apply(at,[dt,1].concat(X)),!0):!1},et.prototype.unfold=function(w){return this.session.unfold(w)},xe.prototype.interpret=function(w){return b.error.instantiation(w.level)},Ne.prototype.interpret=function(w){return this},H.prototype.interpret=function(w){return b.type.is_unitary_list(this)?this.args[0].interpret(w):b.operate(w,this)},xe.prototype.compare=function(w){return this.id<w.id?-1:this.id>w.id?1:0},Ne.prototype.compare=function(w){if(this.value===w.value&&this.is_float===w.is_float)return 0;if(this.value<w.value||this.value===w.value&&this.is_float&&!w.is_float)return-1;if(this.value>w.value)return 1},H.prototype.compare=function(w){if(this.args.length<w.args.length||this.args.length===w.args.length&&this.id<w.id)return-1;if(this.args.length>w.args.length||this.args.length===w.args.length&&this.id>w.id)return 1;for(var S=0;S<this.args.length;S++){var y=b.compare(this.args[S],w.args[S]);if(y!==0)return y}return 0},Fe.prototype.lookup=function(w){return this.links[w]?this.links[w]:null},Fe.prototype.filter=function(w){var S={};for(var y in this.links)if(this.links.hasOwnProperty(y)){var F=this.links[y];w(y,F)&&(S[y]=F)}return new Fe(S)},Fe.prototype.exclude=function(w){var S={};for(var y in this.links)this.links.hasOwnProperty(y)&&e(w,y)===-1&&(S[y]=this.links[y]);return new Fe(S)},Fe.prototype.add=function(w,S){this.links[w]=S},Fe.prototype.domain=function(w){var S=w===!0?function(J){return J}:function(J){return new xe(J)},y=[];for(var F in this.links)y.push(S(F));return y},xe.prototype.compile=function(){return'new pl.type.Var("'+this.id.toString()+'")'},Ne.prototype.compile=function(){return"new pl.type.Num("+this.value.toString()+", "+this.is_float.toString()+")"},H.prototype.compile=function(){return'new pl.type.Term("'+this.id.replace(/"/g,'\\"')+'", ['+o(this.args,function(w){return w.compile()})+"])"},Ye.prototype.compile=function(){return"new pl.type.Rule("+this.head.compile()+", "+(this.body===null?"null":this.body.compile())+")"},Se.prototype.compile=function(){var w,S=[],y;for(var F in this.rules)if(this.rules.hasOwnProperty(F)){var J=this.rules[F];y=[],w='"'+F+'": [';for(var X=0;X<J.length;X++)y.push(J[X].compile());w+=y.join(),w+="]",S.push(w)}return"{"+S.join()+"};"},xe.prototype.toJavaScript=function(){},Ne.prototype.toJavaScript=function(){return this.value},H.prototype.toJavaScript=function(){if(this.args.length===0&&this.indicator!=="[]/0")return this.id;if(b.type.is_list(this)){for(var w=[],S=this,y;S.indicator==="./2";){if(y=S.args[0].toJavaScript(),y===void 0)return;w.push(y),S=S.args[1]}if(S.indicator==="[]/0")return w}},Ye.prototype.singleton_variables=function(){var w=this.head.variables(),S={},y=[];this.body!==null&&(w=w.concat(this.body.variables()));for(var F=0;F<w.length;F++)S[w[F]]===void 0&&(S[w[F]]=0),S[w[F]]++;for(var J in S)J!=="_"&&S[J]===1&&y.push(J);return y};var b={__env:typeof gl<"u"&&gl.exports?global:window,module:{},version:t,parser:{tokenizer:U,expression:z},utils:{str_indicator:Z,codePointAt:n,fromCodePoint:u},statistics:{getCountTerms:function(){return ht}},fromJavaScript:{test:{boolean:function(w){return w===!0||w===!1},number:function(w){return typeof w=="number"},string:function(w){return typeof w=="string"},list:function(w){return w instanceof Array},variable:function(w){return w===void 0},any:function(w){return!0}},conversion:{boolean:function(w){return new H(w?"true":"false",[])},number:function(w){return new Ne(w,w%1!==0)},string:function(w){return new H(w,[])},list:function(w){for(var S=[],y,F=0;F<w.length;F++){if(y=b.fromJavaScript.apply(w[F]),y===void 0)return;S.push(y)}return g(S)},variable:function(w){return new xe("_")},any:function(w){}},apply:function(w){for(var S in b.fromJavaScript.test)if(S!=="any"&&b.fromJavaScript.test[S](w))return b.fromJavaScript.conversion[S](w);return b.fromJavaScript.conversion.any(w)}},type:{Var:xe,Num:Ne,Term:H,Rule:Ye,State:ke,Stream:Te,Module:Ue,Thread:et,Session:Se,Substitution:Fe,order:[xe,Ne,H,Te],compare:function(w,S){var y=e(b.type.order,w.constructor),F=e(b.type.order,S.constructor);if(y<F)return-1;if(y>F)return 1;if(w.constructor===Ne){if(w.is_float&&S.is_float)return 0;if(w.is_float)return-1;if(S.is_float)return 1}return 0},is_substitution:function(w){return w instanceof Fe},is_state:function(w){return w instanceof ke},is_rule:function(w){return w instanceof Ye},is_variable:function(w){return w instanceof xe},is_stream:function(w){return w instanceof Te},is_anonymous_var:function(w){return w instanceof xe&&w.id==="_"},is_callable:function(w){return w instanceof H},is_number:function(w){return w instanceof Ne},is_integer:function(w){return w instanceof Ne&&!w.is_float},is_float:function(w){return w instanceof Ne&&w.is_float},is_term:function(w){return w instanceof H},is_atom:function(w){return w instanceof H&&w.args.length===0},is_ground:function(w){if(w instanceof xe)return!1;if(w instanceof H){for(var S=0;S<w.args.length;S++)if(!b.type.is_ground(w.args[S]))return!1}return!0},is_atomic:function(w){return w instanceof H&&w.args.length===0||w instanceof Ne},is_compound:function(w){return w instanceof H&&w.args.length>0},is_list:function(w){return w instanceof H&&(w.indicator==="[]/0"||w.indicator==="./2")},is_empty_list:function(w){return w instanceof H&&w.indicator==="[]/0"},is_non_empty_list:function(w){return w instanceof H&&w.indicator==="./2"},is_fully_list:function(w){for(;w instanceof H&&w.indicator==="./2";)w=w.args[1];return w instanceof xe||w instanceof H&&w.indicator==="[]/0"},is_instantiated_list:function(w){for(;w instanceof H&&w.indicator==="./2";)w=w.args[1];return w instanceof H&&w.indicator==="[]/0"},is_unitary_list:function(w){return w instanceof H&&w.indicator==="./2"&&w.args[1]instanceof H&&w.args[1].indicator==="[]/0"},is_character:function(w){return w instanceof H&&(w.id.length===1||w.id.length>0&&w.id.length<=2&&n(w.id,0)>=65536)},is_character_code:function(w){return w instanceof Ne&&!w.is_float&&w.value>=0&&w.value<=1114111},is_byte:function(w){return w instanceof Ne&&!w.is_float&&w.value>=0&&w.value<=255},is_operator:function(w){return w instanceof H&&b.arithmetic.evaluation[w.indicator]},is_directive:function(w){return w instanceof H&&b.directive[w.indicator]!==void 0},is_builtin:function(w){return w instanceof H&&b.predicate[w.indicator]!==void 0},is_error:function(w){return w instanceof H&&w.indicator==="throw/1"},is_predicate_indicator:function(w){return w instanceof H&&w.indicator==="//2"&&w.args[0]instanceof H&&w.args[0].args.length===0&&w.args[1]instanceof Ne&&w.args[1].is_float===!1},is_flag:function(w){return w instanceof H&&w.args.length===0&&b.flag[w.id]!==void 0},is_value_flag:function(w,S){if(!b.type.is_flag(w))return!1;for(var y in b.flag[w.id].allowed)if(b.flag[w.id].allowed.hasOwnProperty(y)&&b.flag[w.id].allowed[y].equals(S))return!0;return!1},is_io_mode:function(w){return b.type.is_atom(w)&&["read","write","append"].indexOf(w.id)!==-1},is_stream_option:function(w){return b.type.is_term(w)&&(w.indicator==="alias/1"&&b.type.is_atom(w.args[0])||w.indicator==="reposition/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="type/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="text"||w.args[0].id==="binary")||w.indicator==="eof_action/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="error"||w.args[0].id==="eof_code"||w.args[0].id==="reset"))},is_stream_position:function(w){return b.type.is_integer(w)&&w.value>=0||b.type.is_atom(w)&&(w.id==="end_of_stream"||w.id==="past_end_of_stream")},is_stream_property:function(w){return b.type.is_term(w)&&(w.indicator==="input/0"||w.indicator==="output/0"||w.indicator==="alias/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0]))||w.indicator==="file_name/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0]))||w.indicator==="position/1"&&(b.type.is_variable(w.args[0])||b.type.is_stream_position(w.args[0]))||w.indicator==="reposition/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false"))||w.indicator==="type/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="text"||w.args[0].id==="binary"))||w.indicator==="mode/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="read"||w.args[0].id==="write"||w.args[0].id==="append"))||w.indicator==="eof_action/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="error"||w.args[0].id==="eof_code"||w.args[0].id==="reset"))||w.indicator==="end_of_stream/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="at"||w.args[0].id==="past"||w.args[0].id==="not")))},is_streamable:function(w){return w.__proto__.stream!==void 0},is_read_option:function(w){return b.type.is_term(w)&&["variables/1","variable_names/1","singletons/1"].indexOf(w.indicator)!==-1},is_write_option:function(w){return b.type.is_term(w)&&(w.indicator==="quoted/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="ignore_ops/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="numbervars/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false"))},is_close_option:function(w){return b.type.is_term(w)&&w.indicator==="force/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")},is_modifiable_flag:function(w){return b.type.is_flag(w)&&b.flag[w.id].changeable},is_module:function(w){return w instanceof H&&w.indicator==="library/1"&&w.args[0]instanceof H&&w.args[0].args.length===0&&b.module[w.args[0].id]!==void 0}},arithmetic:{evaluation:{"e/0":{type_args:null,type_result:!0,fn:function(w){return Math.E}},"pi/0":{type_args:null,type_result:!0,fn:function(w){return Math.PI}},"tau/0":{type_args:null,type_result:!0,fn:function(w){return 2*Math.PI}},"epsilon/0":{type_args:null,type_result:!0,fn:function(w){return Number.EPSILON}},"+/1":{type_args:null,type_result:null,fn:function(w,S){return w}},"-/1":{type_args:null,type_result:null,fn:function(w,S){return-w}},"\\/1":{type_args:!1,type_result:!1,fn:function(w,S){return~w}},"abs/1":{type_args:null,type_result:null,fn:function(w,S){return Math.abs(w)}},"sign/1":{type_args:null,type_result:null,fn:function(w,S){return Math.sign(w)}},"float_integer_part/1":{type_args:!0,type_result:!1,fn:function(w,S){return parseInt(w)}},"float_fractional_part/1":{type_args:!0,type_result:!0,fn:function(w,S){return w-parseInt(w)}},"float/1":{type_args:null,type_result:!0,fn:function(w,S){return parseFloat(w)}},"floor/1":{type_args:!0,type_result:!1,fn:function(w,S){return Math.floor(w)}},"truncate/1":{type_args:!0,type_result:!1,fn:function(w,S){return parseInt(w)}},"round/1":{type_args:!0,type_result:!1,fn:function(w,S){return Math.round(w)}},"ceiling/1":{type_args:!0,type_result:!1,fn:function(w,S){return Math.ceil(w)}},"sin/1":{type_args:null,type_result:!0,fn:function(w,S){return Math.sin(w)}},"cos/1":{type_args:null,type_result:!0,fn:function(w,S){return Math.cos(w)}},"tan/1":{type_args:null,type_result:!0,fn:function(w,S){return Math.tan(w)}},"asin/1":{type_args:null,type_result:!0,fn:function(w,S){return Math.asin(w)}},"acos/1":{type_args:null,type_result:!0,fn:function(w,S){return Math.acos(w)}},"atan/1":{type_args:null,type_result:!0,fn:function(w,S){return Math.atan(w)}},"atan2/2":{type_args:null,type_result:!0,fn:function(w,S,y){return Math.atan2(w,S)}},"exp/1":{type_args:null,type_result:!0,fn:function(w,S){return Math.exp(w)}},"sqrt/1":{type_args:null,type_result:!0,fn:function(w,S){return Math.sqrt(w)}},"log/1":{type_args:null,type_result:!0,fn:function(w,S){return w>0?Math.log(w):b.error.evaluation("undefined",S.__call_indicator)}},"+/2":{type_args:null,type_result:null,fn:function(w,S,y){return w+S}},"-/2":{type_args:null,type_result:null,fn:function(w,S,y){return w-S}},"*/2":{type_args:null,type_result:null,fn:function(w,S,y){return w*S}},"//2":{type_args:null,type_result:!0,fn:function(w,S,y){return S?w/S:b.error.evaluation("zero_division",y.__call_indicator)}},"///2":{type_args:!1,type_result:!1,fn:function(w,S,y){return S?parseInt(w/S):b.error.evaluation("zero_division",y.__call_indicator)}},"**/2":{type_args:null,type_result:!0,fn:function(w,S,y){return Math.pow(w,S)}},"^/2":{type_args:null,type_result:null,fn:function(w,S,y){return Math.pow(w,S)}},"<</2":{type_args:!1,type_result:!1,fn:function(w,S,y){return w<<S}},">>/2":{type_args:!1,type_result:!1,fn:function(w,S,y){return w>>S}},"/\\/2":{type_args:!1,type_result:!1,fn:function(w,S,y){return w&S}},"\\//2":{type_args:!1,type_result:!1,fn:function(w,S,y){return w|S}},"xor/2":{type_args:!1,type_result:!1,fn:function(w,S,y){return w^S}},"rem/2":{type_args:!1,type_result:!1,fn:function(w,S,y){return S?w%S:b.error.evaluation("zero_division",y.__call_indicator)}},"mod/2":{type_args:!1,type_result:!1,fn:function(w,S,y){return S?w-parseInt(w/S)*S:b.error.evaluation("zero_division",y.__call_indicator)}},"max/2":{type_args:null,type_result:null,fn:function(w,S,y){return Math.max(w,S)}},"min/2":{type_args:null,type_result:null,fn:function(w,S,y){return Math.min(w,S)}}}},directive:{"dynamic/1":function(w,S){var y=S.args[0];if(b.type.is_variable(y))w.throw_error(b.error.instantiation(S.indicator));else if(!b.type.is_compound(y)||y.indicator!=="//2")w.throw_error(b.error.type("predicate_indicator",y,S.indicator));else if(b.type.is_variable(y.args[0])||b.type.is_variable(y.args[1]))w.throw_error(b.error.instantiation(S.indicator));else if(!b.type.is_atom(y.args[0]))w.throw_error(b.error.type("atom",y.args[0],S.indicator));else if(!b.type.is_integer(y.args[1]))w.throw_error(b.error.type("integer",y.args[1],S.indicator));else{var F=S.args[0].args[0].id+"/"+S.args[0].args[1].value;w.session.public_predicates[F]=!0,w.session.rules[F]||(w.session.rules[F]=[])}},"multifile/1":function(w,S){var y=S.args[0];b.type.is_variable(y)?w.throw_error(b.error.instantiation(S.indicator)):!b.type.is_compound(y)||y.indicator!=="//2"?w.throw_error(b.error.type("predicate_indicator",y,S.indicator)):b.type.is_variable(y.args[0])||b.type.is_variable(y.args[1])?w.throw_error(b.error.instantiation(S.indicator)):b.type.is_atom(y.args[0])?b.type.is_integer(y.args[1])?w.session.multifile_predicates[S.args[0].args[0].id+"/"+S.args[0].args[1].value]=!0:w.throw_error(b.error.type("integer",y.args[1],S.indicator)):w.throw_error(b.error.type("atom",y.args[0],S.indicator))},"set_prolog_flag/2":function(w,S){var y=S.args[0],F=S.args[1];b.type.is_variable(y)||b.type.is_variable(F)?w.throw_error(b.error.instantiation(S.indicator)):b.type.is_atom(y)?b.type.is_flag(y)?b.type.is_value_flag(y,F)?b.type.is_modifiable_flag(y)?w.session.flag[y.id]=F:w.throw_error(b.error.permission("modify","flag",y)):w.throw_error(b.error.domain("flag_value",new H("+",[y,F]),S.indicator)):w.throw_error(b.error.domain("prolog_flag",y,S.indicator)):w.throw_error(b.error.type("atom",y,S.indicator))},"use_module/1":function(w,S){var y=S.args[0];if(b.type.is_variable(y))w.throw_error(b.error.instantiation(S.indicator));else if(!b.type.is_term(y))w.throw_error(b.error.type("term",y,S.indicator));else if(b.type.is_module(y)){var F=y.args[0].id;e(w.session.modules,F)===-1&&w.session.modules.push(F)}},"char_conversion/2":function(w,S){var y=S.args[0],F=S.args[1];b.type.is_variable(y)||b.type.is_variable(F)?w.throw_error(b.error.instantiation(S.indicator)):b.type.is_character(y)?b.type.is_character(F)?y.id===F.id?delete w.session.__char_conversion[y.id]:w.session.__char_conversion[y.id]=F.id:w.throw_error(b.error.type("character",F,S.indicator)):w.throw_error(b.error.type("character",y,S.indicator))},"op/3":function(w,S){var y=S.args[0],F=S.args[1],J=S.args[2];if(b.type.is_variable(y)||b.type.is_variable(F)||b.type.is_variable(J))w.throw_error(b.error.instantiation(S.indicator));else if(!b.type.is_integer(y))w.throw_error(b.error.type("integer",y,S.indicator));else if(!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,S.indicator));else if(!b.type.is_atom(J))w.throw_error(b.error.type("atom",J,S.indicator));else if(y.value<0||y.value>1200)w.throw_error(b.error.domain("operator_priority",y,S.indicator));else if(J.id===",")w.throw_error(b.error.permission("modify","operator",J,S.indicator));else if(J.id==="|"&&(y.value<1001||F.id.length!==3))w.throw_error(b.error.permission("modify","operator",J,S.indicator));else if(["fy","fx","yf","xf","xfx","yfx","xfy"].indexOf(F.id)===-1)w.throw_error(b.error.domain("operator_specifier",F,S.indicator));else{var X={prefix:null,infix:null,postfix:null};for(var $ in w.session.__operators)if(w.session.__operators.hasOwnProperty($)){var ie=w.session.__operators[$][J.id];ie&&(e(ie,"fx")!==-1&&(X.prefix={priority:$,type:"fx"}),e(ie,"fy")!==-1&&(X.prefix={priority:$,type:"fy"}),e(ie,"xf")!==-1&&(X.postfix={priority:$,type:"xf"}),e(ie,"yf")!==-1&&(X.postfix={priority:$,type:"yf"}),e(ie,"xfx")!==-1&&(X.infix={priority:$,type:"xfx"}),e(ie,"xfy")!==-1&&(X.infix={priority:$,type:"xfy"}),e(ie,"yfx")!==-1&&(X.infix={priority:$,type:"yfx"}))}var be;switch(F.id){case"fy":case"fx":be="prefix";break;case"yf":case"xf":be="postfix";break;default:be="infix";break}if(((X.prefix&&be==="prefix"||X.postfix&&be==="postfix"||X.infix&&be==="infix")&&X[be].type!==F.id||X.infix&&be==="postfix"||X.postfix&&be==="infix")&&y.value!==0)w.throw_error(b.error.permission("create","operator",J,S.indicator));else return X[be]&&(me(w.session.__operators[X[be].priority][J.id],F.id),w.session.__operators[X[be].priority][J.id].length===0&&delete w.session.__operators[X[be].priority][J.id]),y.value>0&&(w.session.__operators[y.value]||(w.session.__operators[y.value.toString()]={}),w.session.__operators[y.value][J.id]||(w.session.__operators[y.value][J.id]=[]),w.session.__operators[y.value][J.id].push(F.id)),!0}}},predicate:{"op/3":function(w,S,y){b.directive["op/3"](w,y)&&w.success(S)},"current_op/3":function(w,S,y){var F=y.args[0],J=y.args[1],X=y.args[2],$=[];for(var ie in w.session.__operators)for(var be in w.session.__operators[ie])for(var Re=0;Re<w.session.__operators[ie][be].length;Re++)$.push(new ke(S.goal.replace(new H(",",[new H("=",[new Ne(ie,!1),F]),new H(",",[new H("=",[new H(w.session.__operators[ie][be][Re],[]),J]),new H("=",[new H(be,[]),X])])])),S.substitution,S));w.prepend($)},";/2":function(w,S,y){if(b.type.is_term(y.args[0])&&y.args[0].indicator==="->/2"){var F=w.points,J=w.session.format_success,X=w.session.format_error;w.session.format_success=function(Re){return Re.substitution},w.session.format_error=function(Re){return Re.goal},w.points=[new ke(y.args[0].args[0],S.substitution,S)];var $=function(Re){w.points=F,w.session.format_success=J,w.session.format_error=X,Re===!1?w.prepend([new ke(S.goal.replace(y.args[1]),S.substitution,S)]):b.type.is_error(Re)?w.throw_error(Re.args[0]):Re===null?(w.prepend([S]),w.__calls.shift()(null)):w.prepend([new ke(S.goal.replace(y.args[0].args[1]).apply(Re),S.substitution.apply(Re),S)])};w.__calls.unshift($)}else{var ie=new ke(S.goal.replace(y.args[0]),S.substitution,S),be=new ke(S.goal.replace(y.args[1]),S.substitution,S);w.prepend([ie,be])}},"!/0":function(w,S,y){var F,J,X=[];for(F=S,J=null;F.parent!==null&&F.parent.goal.search(y);)if(J=F,F=F.parent,F.goal!==null){var $=F.goal.select();if($&&$.id==="call"&&$.search(y)){F=J;break}}for(var ie=w.points.length-1;ie>=0;ie--){for(var be=w.points[ie],Re=be.parent;Re!==null&&Re!==F.parent;)Re=Re.parent;Re===null&&Re!==F.parent&&X.push(be)}w.points=X.reverse(),w.success(S)},"\\+/1":function(w,S,y){var F=y.args[0];b.type.is_variable(F)?w.throw_error(b.error.instantiation(w.level)):b.type.is_callable(F)?w.prepend([new ke(S.goal.replace(new H(",",[new H(",",[new H("call",[F]),new H("!",[])]),new H("fail",[])])),S.substitution,S),new ke(S.goal.replace(null),S.substitution,S)]):w.throw_error(b.error.type("callable",F,w.level))},"->/2":function(w,S,y){var F=S.goal.replace(new H(",",[y.args[0],new H(",",[new H("!"),y.args[1]])]));w.prepend([new ke(F,S.substitution,S)])},"fail/0":function(w,S,y){},"false/0":function(w,S,y){},"true/0":function(w,S,y){w.success(S)},"call/1":ne(1),"call/2":ne(2),"call/3":ne(3),"call/4":ne(4),"call/5":ne(5),"call/6":ne(6),"call/7":ne(7),"call/8":ne(8),"once/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("call",[F]),new H("!",[])])),S.substitution,S)])},"forall/2":function(w,S,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(S.goal.replace(new H("\\+",[new H(",",[new H("call",[F]),new H("\\+",[new H("call",[J])])])])),S.substitution,S)])},"repeat/0":function(w,S,y){w.prepend([new ke(S.goal.replace(null),S.substitution,S),S])},"throw/1":function(w,S,y){b.type.is_variable(y.args[0])?w.throw_error(b.error.instantiation(w.level)):w.throw_error(y.args[0])},"catch/3":function(w,S,y){var F=w.points;w.points=[],w.prepend([new ke(y.args[0],S.substitution,S)]);var J=w.session.format_success,X=w.session.format_error;w.session.format_success=function(ie){return ie.substitution},w.session.format_error=function(ie){return ie.goal};var $=function(ie){var be=w.points;if(w.points=F,w.session.format_success=J,w.session.format_error=X,b.type.is_error(ie)){for(var Re=[],at=w.points.length-1;at>=0;at--){for(var tr=w.points[at],dt=tr.parent;dt!==null&&dt!==S.parent;)dt=dt.parent;dt===null&&dt!==S.parent&&Re.push(tr)}w.points=Re;var jt=w.get_flag("occurs_check").indicator==="true/0",tr=new ke,St=b.unify(ie.args[0],y.args[1],jt);St!==null?(tr.substitution=S.substitution.apply(St),tr.goal=S.goal.replace(y.args[2]).apply(St),tr.parent=S,w.prepend([tr])):w.throw_error(ie.args[0])}else if(ie!==!1){for(var ln=ie===null?[]:[new ke(S.goal.apply(ie).replace(null),S.substitution.apply(ie),S)],kr=[],at=be.length-1;at>=0;at--){kr.push(be[at]);var mr=be[at].goal!==null?be[at].goal.select():null;if(b.type.is_term(mr)&&mr.indicator==="!/0")break}var br=o(kr,function(Kr){return Kr.goal===null&&(Kr.goal=new H("true",[])),Kr=new ke(S.goal.replace(new H("catch",[Kr.goal,y.args[1],y.args[2]])),S.substitution.apply(Kr.substitution),Kr.parent),Kr.exclude=y.args[0].variables(),Kr}).reverse();w.prepend(br),w.prepend(ln),ie===null&&(this.current_limit=0,w.__calls.shift()(null))}};w.__calls.unshift($)},"=/2":function(w,S,y){var F=w.get_flag("occurs_check").indicator==="true/0",J=new ke,X=b.unify(y.args[0],y.args[1],F);X!==null&&(J.goal=S.goal.apply(X).replace(null),J.substitution=S.substitution.apply(X),J.parent=S,w.prepend([J]))},"unify_with_occurs_check/2":function(w,S,y){var F=new ke,J=b.unify(y.args[0],y.args[1],!0);J!==null&&(F.goal=S.goal.apply(J).replace(null),F.substitution=S.substitution.apply(J),F.parent=S,w.prepend([F]))},"\\=/2":function(w,S,y){var F=w.get_flag("occurs_check").indicator==="true/0",J=b.unify(y.args[0],y.args[1],F);J===null&&w.success(S)},"subsumes_term/2":function(w,S,y){var F=w.get_flag("occurs_check").indicator==="true/0",J=b.unify(y.args[1],y.args[0],F);J!==null&&y.args[1].apply(J).equals(y.args[1])&&w.success(S)},"findall/3":function(w,S,y){var F=y.args[0],J=y.args[1],X=y.args[2];if(b.type.is_variable(J))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(J))w.throw_error(b.error.type("callable",J,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))w.throw_error(b.error.type("list",X,y.indicator));else{var $=w.next_free_variable(),ie=new H(",",[J,new H("=",[$,F])]),be=w.points,Re=w.session.limit,at=w.session.format_success;w.session.format_success=function(tr){return tr.substitution},w.add_goal(ie,!0,S);var dt=[],jt=function(tr){if(tr!==!1&&tr!==null&&!b.type.is_error(tr))w.__calls.unshift(jt),dt.push(tr.links[$.id]),w.session.limit=w.current_limit;else if(w.points=be,w.session.limit=Re,w.session.format_success=at,b.type.is_error(tr))w.throw_error(tr.args[0]);else if(w.current_limit>0){for(var St=new H("[]"),ln=dt.length-1;ln>=0;ln--)St=new H(".",[dt[ln],St]);w.prepend([new ke(S.goal.replace(new H("=",[X,St])),S.substitution,S)])}};w.__calls.unshift(jt)}},"bagof/3":function(w,S,y){var F,J=y.args[0],X=y.args[1],$=y.args[2];if(b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(X))w.throw_error(b.error.type("callable",X,y.indicator));else if(!b.type.is_variable($)&&!b.type.is_list($))w.throw_error(b.error.type("list",$,y.indicator));else{var ie=w.next_free_variable(),be;X.indicator==="^/2"?(be=X.args[0].variables(),X=X.args[1]):be=[],be=be.concat(J.variables());for(var Re=X.variables().filter(function(br){return e(be,br)===-1}),at=new H("[]"),dt=Re.length-1;dt>=0;dt--)at=new H(".",[new xe(Re[dt]),at]);var jt=new H(",",[X,new H("=",[ie,new H(",",[at,J])])]),tr=w.points,St=w.session.limit,ln=w.session.format_success;w.session.format_success=function(br){return br.substitution},w.add_goal(jt,!0,S);var kr=[],mr=function(br){if(br!==!1&&br!==null&&!b.type.is_error(br)){w.__calls.unshift(mr);var Kr=!1,Kn=br.links[ie.id].args[0],Ms=br.links[ie.id].args[1];for(var Ri in kr)if(kr.hasOwnProperty(Ri)){var gs=kr[Ri];if(gs.variables.equals(Kn)){gs.answers.push(Ms),Kr=!0;break}}Kr||kr.push({variables:Kn,answers:[Ms]}),w.session.limit=w.current_limit}else if(w.points=tr,w.session.limit=St,w.session.format_success=ln,b.type.is_error(br))w.throw_error(br.args[0]);else if(w.current_limit>0){for(var io=[],Pi=0;Pi<kr.length;Pi++){br=kr[Pi].answers;for(var Os=new H("[]"),so=br.length-1;so>=0;so--)Os=new H(".",[br[so],Os]);io.push(new ke(S.goal.replace(new H(",",[new H("=",[at,kr[Pi].variables]),new H("=",[$,Os])])),S.substitution,S))}w.prepend(io)}};w.__calls.unshift(mr)}},"setof/3":function(w,S,y){var F,J=y.args[0],X=y.args[1],$=y.args[2];if(b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(X))w.throw_error(b.error.type("callable",X,y.indicator));else if(!b.type.is_variable($)&&!b.type.is_list($))w.throw_error(b.error.type("list",$,y.indicator));else{var ie=w.next_free_variable(),be;X.indicator==="^/2"?(be=X.args[0].variables(),X=X.args[1]):be=[],be=be.concat(J.variables());for(var Re=X.variables().filter(function(br){return e(be,br)===-1}),at=new H("[]"),dt=Re.length-1;dt>=0;dt--)at=new H(".",[new xe(Re[dt]),at]);var jt=new H(",",[X,new H("=",[ie,new H(",",[at,J])])]),tr=w.points,St=w.session.limit,ln=w.session.format_success;w.session.format_success=function(br){return br.substitution},w.add_goal(jt,!0,S);var kr=[],mr=function(br){if(br!==!1&&br!==null&&!b.type.is_error(br)){w.__calls.unshift(mr);var Kr=!1,Kn=br.links[ie.id].args[0],Ms=br.links[ie.id].args[1];for(var Ri in kr)if(kr.hasOwnProperty(Ri)){var gs=kr[Ri];if(gs.variables.equals(Kn)){gs.answers.push(Ms),Kr=!0;break}}Kr||kr.push({variables:Kn,answers:[Ms]}),w.session.limit=w.current_limit}else if(w.points=tr,w.session.limit=St,w.session.format_success=ln,b.type.is_error(br))w.throw_error(br.args[0]);else if(w.current_limit>0){for(var io=[],Pi=0;Pi<kr.length;Pi++){br=kr[Pi].answers.sort(b.compare);for(var Os=new H("[]"),so=br.length-1;so>=0;so--)Os=new H(".",[br[so],Os]);io.push(new ke(S.goal.replace(new H(",",[new H("=",[at,kr[Pi].variables]),new H("=",[$,Os])])),S.substitution,S))}w.prepend(io)}};w.__calls.unshift(mr)}},"functor/3":function(w,S,y){var F,J=y.args[0],X=y.args[1],$=y.args[2];if(b.type.is_variable(J)&&(b.type.is_variable(X)||b.type.is_variable($)))w.throw_error(b.error.instantiation("functor/3"));else if(!b.type.is_variable($)&&!b.type.is_integer($))w.throw_error(b.error.type("integer",y.args[2],"functor/3"));else if(!b.type.is_variable(X)&&!b.type.is_atomic(X))w.throw_error(b.error.type("atomic",y.args[1],"functor/3"));else if(b.type.is_integer(X)&&b.type.is_integer($)&&$.value!==0)w.throw_error(b.error.type("atom",y.args[1],"functor/3"));else if(b.type.is_variable(J)){if(y.args[2].value>=0){for(var ie=[],be=0;be<$.value;be++)ie.push(w.next_free_variable());var Re=b.type.is_integer(X)?X:new H(X.id,ie);w.prepend([new ke(S.goal.replace(new H("=",[J,Re])),S.substitution,S)])}}else{var at=b.type.is_integer(J)?J:new H(J.id,[]),dt=b.type.is_integer(J)?new Ne(0,!1):new Ne(J.args.length,!1),jt=new H(",",[new H("=",[at,X]),new H("=",[dt,$])]);w.prepend([new ke(S.goal.replace(jt),S.substitution,S)])}},"arg/3":function(w,S,y){if(b.type.is_variable(y.args[0])||b.type.is_variable(y.args[1]))w.throw_error(b.error.instantiation(y.indicator));else if(y.args[0].value<0)w.throw_error(b.error.domain("not_less_than_zero",y.args[0],y.indicator));else if(!b.type.is_compound(y.args[1]))w.throw_error(b.error.type("compound",y.args[1],y.indicator));else{var F=y.args[0].value;if(F>0&&F<=y.args[1].args.length){var J=new H("=",[y.args[1].args[F-1],y.args[2]]);w.prepend([new ke(S.goal.replace(J),S.substitution,S)])}}},"=../2":function(w,S,y){var F;if(b.type.is_variable(y.args[0])&&(b.type.is_variable(y.args[1])||b.type.is_non_empty_list(y.args[1])&&b.type.is_variable(y.args[1].args[0])))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_fully_list(y.args[1]))w.throw_error(b.error.type("list",y.args[1],y.indicator));else if(b.type.is_variable(y.args[0])){if(!b.type.is_variable(y.args[1])){var X=[];for(F=y.args[1].args[1];F.indicator==="./2";)X.push(F.args[0]),F=F.args[1];b.type.is_variable(y.args[0])&&b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):X.length===0&&b.type.is_compound(y.args[1].args[0])?w.throw_error(b.error.type("atomic",y.args[1].args[0],y.indicator)):X.length>0&&(b.type.is_compound(y.args[1].args[0])||b.type.is_number(y.args[1].args[0]))?w.throw_error(b.error.type("atom",y.args[1].args[0],y.indicator)):X.length===0?w.prepend([new ke(S.goal.replace(new H("=",[y.args[1].args[0],y.args[0]],S)),S.substitution,S)]):w.prepend([new ke(S.goal.replace(new H("=",[new H(y.args[1].args[0].id,X),y.args[0]])),S.substitution,S)])}}else{if(b.type.is_atomic(y.args[0]))F=new H(".",[y.args[0],new H("[]")]);else{F=new H("[]");for(var J=y.args[0].args.length-1;J>=0;J--)F=new H(".",[y.args[0].args[J],F]);F=new H(".",[new H(y.args[0].id),F])}w.prepend([new ke(S.goal.replace(new H("=",[F,y.args[1]])),S.substitution,S)])}},"copy_term/2":function(w,S,y){var F=y.args[0].rename(w);w.prepend([new ke(S.goal.replace(new H("=",[F,y.args[1]])),S.substitution,S.parent)])},"term_variables/2":function(w,S,y){var F=y.args[0],J=y.args[1];if(!b.type.is_fully_list(J))w.throw_error(b.error.type("list",J,y.indicator));else{var X=g(o(we(F.variables()),function($){return new xe($)}));w.prepend([new ke(S.goal.replace(new H("=",[J,X])),S.substitution,S)])}},"clause/2":function(w,S,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))w.throw_error(b.error.type("callable",y.args[0],y.indicator));else if(!b.type.is_variable(y.args[1])&&!b.type.is_callable(y.args[1]))w.throw_error(b.error.type("callable",y.args[1],y.indicator));else if(w.session.rules[y.args[0].indicator]!==void 0)if(w.is_public_predicate(y.args[0].indicator)){var F=[];for(var J in w.session.rules[y.args[0].indicator])if(w.session.rules[y.args[0].indicator].hasOwnProperty(J)){var X=w.session.rules[y.args[0].indicator][J];w.session.renamed_variables={},X=X.rename(w),X.body===null&&(X.body=new H("true"));var $=new H(",",[new H("=",[X.head,y.args[0]]),new H("=",[X.body,y.args[1]])]);F.push(new ke(S.goal.replace($),S.substitution,S))}w.prepend(F)}else w.throw_error(b.error.permission("access","private_procedure",y.args[0].indicator,y.indicator))},"current_predicate/1":function(w,S,y){var F=y.args[0];if(!b.type.is_variable(F)&&(!b.type.is_compound(F)||F.indicator!=="//2"))w.throw_error(b.error.type("predicate_indicator",F,y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_variable(F.args[0])&&!b.type.is_atom(F.args[0]))w.throw_error(b.error.type("atom",F.args[0],y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_variable(F.args[1])&&!b.type.is_integer(F.args[1]))w.throw_error(b.error.type("integer",F.args[1],y.indicator));else{var J=[];for(var X in w.session.rules)if(w.session.rules.hasOwnProperty(X)){var $=X.lastIndexOf("/"),ie=X.substr(0,$),be=parseInt(X.substr($+1,X.length-($+1))),Re=new H("/",[new H(ie),new Ne(be,!1)]),at=new H("=",[Re,F]);J.push(new ke(S.goal.replace(at),S.substitution,S))}w.prepend(J)}},"asserta/1":function(w,S,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))w.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var F,J;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],J=Ee(y.args[0].args[1])):(F=y.args[0],J=null),b.type.is_callable(F)?J!==null&&!b.type.is_callable(J)?w.throw_error(b.error.type("callable",J,y.indicator)):w.is_public_predicate(F.indicator)?(w.session.rules[F.indicator]===void 0&&(w.session.rules[F.indicator]=[]),w.session.public_predicates[F.indicator]=!0,w.session.rules[F.indicator]=[new Ye(F,J,!0)].concat(w.session.rules[F.indicator]),w.success(S)):w.throw_error(b.error.permission("modify","static_procedure",F.indicator,y.indicator)):w.throw_error(b.error.type("callable",F,y.indicator))}},"assertz/1":function(w,S,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))w.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var F,J;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],J=Ee(y.args[0].args[1])):(F=y.args[0],J=null),b.type.is_callable(F)?J!==null&&!b.type.is_callable(J)?w.throw_error(b.error.type("callable",J,y.indicator)):w.is_public_predicate(F.indicator)?(w.session.rules[F.indicator]===void 0&&(w.session.rules[F.indicator]=[]),w.session.public_predicates[F.indicator]=!0,w.session.rules[F.indicator].push(new Ye(F,J,!0)),w.success(S)):w.throw_error(b.error.permission("modify","static_procedure",F.indicator,y.indicator)):w.throw_error(b.error.type("callable",F,y.indicator))}},"retract/1":function(w,S,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))w.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var F,J;if(y.args[0].indicator===":-/2"?(F=y.args[0].args[0],J=y.args[0].args[1]):(F=y.args[0],J=new H("true")),typeof S.retract>"u")if(w.is_public_predicate(F.indicator)){if(w.session.rules[F.indicator]!==void 0){for(var X=[],$=0;$<w.session.rules[F.indicator].length;$++){w.session.renamed_variables={};var ie=w.session.rules[F.indicator][$],be=ie.rename(w);be.body===null&&(be.body=new H("true",[]));var Re=w.get_flag("occurs_check").indicator==="true/0",at=b.unify(new H(",",[F,J]),new H(",",[be.head,be.body]),Re);if(at!==null){var dt=new ke(S.goal.replace(new H(",",[new H("retract",[new H(":-",[F,J])]),new H(",",[new H("=",[F,be.head]),new H("=",[J,be.body])])])),S.substitution,S);dt.retract=ie,X.push(dt)}}w.prepend(X)}}else w.throw_error(b.error.permission("modify","static_procedure",F.indicator,y.indicator));else Ae(w,S,F.indicator,S.retract)}},"retractall/1":function(w,S,y){var F=y.args[0];b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_callable(F)?w.prepend([new ke(S.goal.replace(new H(",",[new H("retract",[new b.type.Term(":-",[F,new xe("_")])]),new H("fail",[])])),S.substitution,S),new ke(S.goal.replace(null),S.substitution,S)]):w.throw_error(b.error.type("callable",F,y.indicator))},"abolish/1":function(w,S,y){if(b.type.is_variable(y.args[0])||b.type.is_term(y.args[0])&&y.args[0].indicator==="//2"&&(b.type.is_variable(y.args[0].args[0])||b.type.is_variable(y.args[0].args[1])))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_term(y.args[0])||y.args[0].indicator!=="//2")w.throw_error(b.error.type("predicate_indicator",y.args[0],y.indicator));else if(!b.type.is_atom(y.args[0].args[0]))w.throw_error(b.error.type("atom",y.args[0].args[0],y.indicator));else if(!b.type.is_integer(y.args[0].args[1]))w.throw_error(b.error.type("integer",y.args[0].args[1],y.indicator));else if(y.args[0].args[1].value<0)w.throw_error(b.error.domain("not_less_than_zero",y.args[0].args[1],y.indicator));else if(b.type.is_number(w.get_flag("max_arity"))&&y.args[0].args[1].value>w.get_flag("max_arity").value)w.throw_error(b.error.representation("max_arity",y.indicator));else{var F=y.args[0].args[0].id+"/"+y.args[0].args[1].value;w.is_public_predicate(F)?(delete w.session.rules[F],w.success(S)):w.throw_error(b.error.permission("modify","static_procedure",F,y.indicator))}},"atom_length/2":function(w,S,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_atom(y.args[0]))w.throw_error(b.error.type("atom",y.args[0],y.indicator));else if(!b.type.is_variable(y.args[1])&&!b.type.is_integer(y.args[1]))w.throw_error(b.error.type("integer",y.args[1],y.indicator));else if(b.type.is_integer(y.args[1])&&y.args[1].value<0)w.throw_error(b.error.domain("not_less_than_zero",y.args[1],y.indicator));else{var F=new Ne(y.args[0].id.length,!1);w.prepend([new ke(S.goal.replace(new H("=",[F,y.args[1]])),S.substitution,S)])}},"atom_concat/3":function(w,S,y){var F,J,X=y.args[0],$=y.args[1],ie=y.args[2];if(b.type.is_variable(ie)&&(b.type.is_variable(X)||b.type.is_variable($)))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_atom(X))w.throw_error(b.error.type("atom",X,y.indicator));else if(!b.type.is_variable($)&&!b.type.is_atom($))w.throw_error(b.error.type("atom",$,y.indicator));else if(!b.type.is_variable(ie)&&!b.type.is_atom(ie))w.throw_error(b.error.type("atom",ie,y.indicator));else{var be=b.type.is_variable(X),Re=b.type.is_variable($);if(!be&&!Re)J=new H("=",[ie,new H(X.id+$.id)]),w.prepend([new ke(S.goal.replace(J),S.substitution,S)]);else if(be&&!Re)F=ie.id.substr(0,ie.id.length-$.id.length),F+$.id===ie.id&&(J=new H("=",[X,new H(F)]),w.prepend([new ke(S.goal.replace(J),S.substitution,S)]));else if(Re&&!be)F=ie.id.substr(X.id.length),X.id+F===ie.id&&(J=new H("=",[$,new H(F)]),w.prepend([new ke(S.goal.replace(J),S.substitution,S)]));else{for(var at=[],dt=0;dt<=ie.id.length;dt++){var jt=new H(ie.id.substr(0,dt)),tr=new H(ie.id.substr(dt));J=new H(",",[new H("=",[jt,X]),new H("=",[tr,$])]),at.push(new ke(S.goal.replace(J),S.substitution,S))}w.prepend(at)}}},"sub_atom/5":function(w,S,y){var F,J=y.args[0],X=y.args[1],$=y.args[2],ie=y.args[3],be=y.args[4];if(b.type.is_variable(J))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_integer(X))w.throw_error(b.error.type("integer",X,y.indicator));else if(!b.type.is_variable($)&&!b.type.is_integer($))w.throw_error(b.error.type("integer",$,y.indicator));else if(!b.type.is_variable(ie)&&!b.type.is_integer(ie))w.throw_error(b.error.type("integer",ie,y.indicator));else if(b.type.is_integer(X)&&X.value<0)w.throw_error(b.error.domain("not_less_than_zero",X,y.indicator));else if(b.type.is_integer($)&&$.value<0)w.throw_error(b.error.domain("not_less_than_zero",$,y.indicator));else if(b.type.is_integer(ie)&&ie.value<0)w.throw_error(b.error.domain("not_less_than_zero",ie,y.indicator));else{var Re=[],at=[],dt=[];if(b.type.is_variable(X))for(F=0;F<=J.id.length;F++)Re.push(F);else Re.push(X.value);if(b.type.is_variable($))for(F=0;F<=J.id.length;F++)at.push(F);else at.push($.value);if(b.type.is_variable(ie))for(F=0;F<=J.id.length;F++)dt.push(F);else dt.push(ie.value);var jt=[];for(var tr in Re)if(Re.hasOwnProperty(tr)){F=Re[tr];for(var St in at)if(at.hasOwnProperty(St)){var ln=at[St],kr=J.id.length-F-ln;if(e(dt,kr)!==-1&&F+ln+kr===J.id.length){var mr=J.id.substr(F,ln);if(J.id===J.id.substr(0,F)+mr+J.id.substr(F+ln,kr)){var br=new H("=",[new H(mr),be]),Kr=new H("=",[X,new Ne(F)]),Kn=new H("=",[$,new Ne(ln)]),Ms=new H("=",[ie,new Ne(kr)]),Ri=new H(",",[new H(",",[new H(",",[Kr,Kn]),Ms]),br]);jt.push(new ke(S.goal.replace(Ri),S.substitution,S))}}}}w.prepend(jt)}},"atom_chars/2":function(w,S,y){var F=y.args[0],J=y.args[1];if(b.type.is_variable(F)&&b.type.is_variable(J))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,y.indicator));else if(b.type.is_variable(F)){for(var ie=J,be=b.type.is_variable(F),Re="";ie.indicator==="./2";){if(b.type.is_character(ie.args[0]))Re+=ie.args[0].id;else if(b.type.is_variable(ie.args[0])&&be){w.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_variable(ie.args[0])){w.throw_error(b.error.type("character",ie.args[0],y.indicator));return}ie=ie.args[1]}b.type.is_variable(ie)&&be?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_empty_list(ie)&&!b.type.is_variable(ie)?w.throw_error(b.error.type("list",J,y.indicator)):w.prepend([new ke(S.goal.replace(new H("=",[new H(Re),F])),S.substitution,S)])}else{for(var X=new H("[]"),$=F.id.length-1;$>=0;$--)X=new H(".",[new H(F.id.charAt($)),X]);w.prepend([new ke(S.goal.replace(new H("=",[J,X])),S.substitution,S)])}},"atom_codes/2":function(w,S,y){var F=y.args[0],J=y.args[1];if(b.type.is_variable(F)&&b.type.is_variable(J))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,y.indicator));else if(b.type.is_variable(F)){for(var ie=J,be=b.type.is_variable(F),Re="";ie.indicator==="./2";){if(b.type.is_character_code(ie.args[0]))Re+=u(ie.args[0].value);else if(b.type.is_variable(ie.args[0])&&be){w.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_variable(ie.args[0])){w.throw_error(b.error.representation("character_code",y.indicator));return}ie=ie.args[1]}b.type.is_variable(ie)&&be?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_empty_list(ie)&&!b.type.is_variable(ie)?w.throw_error(b.error.type("list",J,y.indicator)):w.prepend([new ke(S.goal.replace(new H("=",[new H(Re),F])),S.substitution,S)])}else{for(var X=new H("[]"),$=F.id.length-1;$>=0;$--)X=new H(".",[new Ne(n(F.id,$),!1),X]);w.prepend([new ke(S.goal.replace(new H("=",[J,X])),S.substitution,S)])}},"char_code/2":function(w,S,y){var F=y.args[0],J=y.args[1];if(b.type.is_variable(F)&&b.type.is_variable(J))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_character(F))w.throw_error(b.error.type("character",F,y.indicator));else if(!b.type.is_variable(J)&&!b.type.is_integer(J))w.throw_error(b.error.type("integer",J,y.indicator));else if(!b.type.is_variable(J)&&!b.type.is_character_code(J))w.throw_error(b.error.representation("character_code",y.indicator));else if(b.type.is_variable(J)){var X=new Ne(n(F.id,0),!1);w.prepend([new ke(S.goal.replace(new H("=",[X,J])),S.substitution,S)])}else{var $=new H(u(J.value));w.prepend([new ke(S.goal.replace(new H("=",[$,F])),S.substitution,S)])}},"number_chars/2":function(w,S,y){var F,J=y.args[0],X=y.args[1];if(b.type.is_variable(J)&&b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(J)&&!b.type.is_number(J))w.throw_error(b.error.type("number",J,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))w.throw_error(b.error.type("list",X,y.indicator));else{var $=b.type.is_variable(J);if(!b.type.is_variable(X)){var ie=X,be=!0;for(F="";ie.indicator==="./2";){if(b.type.is_character(ie.args[0]))F+=ie.args[0].id;else if(b.type.is_variable(ie.args[0]))be=!1;else if(!b.type.is_variable(ie.args[0])){w.throw_error(b.error.type("character",ie.args[0],y.indicator));return}ie=ie.args[1]}if(be=be&&b.type.is_empty_list(ie),!b.type.is_empty_list(ie)&&!b.type.is_variable(ie)){w.throw_error(b.error.type("list",X,y.indicator));return}if(!be&&$){w.throw_error(b.error.instantiation(y.indicator));return}else if(be)if(b.type.is_variable(ie)&&$){w.throw_error(b.error.instantiation(y.indicator));return}else{var Re=w.parse(F),at=Re.value;!b.type.is_number(at)||Re.tokens[Re.tokens.length-1].space?w.throw_error(b.error.syntax_by_predicate("parseable_number",y.indicator)):w.prepend([new ke(S.goal.replace(new H("=",[J,at])),S.substitution,S)]);return}}if(!$){F=J.toString();for(var dt=new H("[]"),jt=F.length-1;jt>=0;jt--)dt=new H(".",[new H(F.charAt(jt)),dt]);w.prepend([new ke(S.goal.replace(new H("=",[X,dt])),S.substitution,S)])}}},"number_codes/2":function(w,S,y){var F,J=y.args[0],X=y.args[1];if(b.type.is_variable(J)&&b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(J)&&!b.type.is_number(J))w.throw_error(b.error.type("number",J,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))w.throw_error(b.error.type("list",X,y.indicator));else{var $=b.type.is_variable(J);if(!b.type.is_variable(X)){var ie=X,be=!0;for(F="";ie.indicator==="./2";){if(b.type.is_character_code(ie.args[0]))F+=u(ie.args[0].value);else if(b.type.is_variable(ie.args[0]))be=!1;else if(!b.type.is_variable(ie.args[0])){w.throw_error(b.error.type("character_code",ie.args[0],y.indicator));return}ie=ie.args[1]}if(be=be&&b.type.is_empty_list(ie),!b.type.is_empty_list(ie)&&!b.type.is_variable(ie)){w.throw_error(b.error.type("list",X,y.indicator));return}if(!be&&$){w.throw_error(b.error.instantiation(y.indicator));return}else if(be)if(b.type.is_variable(ie)&&$){w.throw_error(b.error.instantiation(y.indicator));return}else{var Re=w.parse(F),at=Re.value;!b.type.is_number(at)||Re.tokens[Re.tokens.length-1].space?w.throw_error(b.error.syntax_by_predicate("parseable_number",y.indicator)):w.prepend([new ke(S.goal.replace(new H("=",[J,at])),S.substitution,S)]);return}}if(!$){F=J.toString();for(var dt=new H("[]"),jt=F.length-1;jt>=0;jt--)dt=new H(".",[new Ne(n(F,jt),!1),dt]);w.prepend([new ke(S.goal.replace(new H("=",[X,dt])),S.substitution,S)])}}},"upcase_atom/2":function(w,S,y){var F=y.args[0],J=y.args[1];b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(F)?!b.type.is_variable(J)&&!b.type.is_atom(J)?w.throw_error(b.error.type("atom",J,y.indicator)):w.prepend([new ke(S.goal.replace(new H("=",[J,new H(F.id.toUpperCase(),[])])),S.substitution,S)]):w.throw_error(b.error.type("atom",F,y.indicator))},"downcase_atom/2":function(w,S,y){var F=y.args[0],J=y.args[1];b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(F)?!b.type.is_variable(J)&&!b.type.is_atom(J)?w.throw_error(b.error.type("atom",J,y.indicator)):w.prepend([new ke(S.goal.replace(new H("=",[J,new H(F.id.toLowerCase(),[])])),S.substitution,S)]):w.throw_error(b.error.type("atom",F,y.indicator))},"atomic_list_concat/2":function(w,S,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(S.goal.replace(new H("atomic_list_concat",[F,new H("",[]),J])),S.substitution,S)])},"atomic_list_concat/3":function(w,S,y){var F=y.args[0],J=y.args[1],X=y.args[2];if(b.type.is_variable(J)||b.type.is_variable(F)&&b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_list(F))w.throw_error(b.error.type("list",F,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_atom(X))w.throw_error(b.error.type("atom",X,y.indicator));else if(b.type.is_variable(X)){for(var ie="",be=F;b.type.is_term(be)&&be.indicator==="./2";){if(!b.type.is_atom(be.args[0])&&!b.type.is_number(be.args[0])){w.throw_error(b.error.type("atomic",be.args[0],y.indicator));return}ie!==""&&(ie+=J.id),b.type.is_atom(be.args[0])?ie+=be.args[0].id:ie+=""+be.args[0].value,be=be.args[1]}ie=new H(ie,[]),b.type.is_variable(be)?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_term(be)||be.indicator!=="[]/0"?w.throw_error(b.error.type("list",F,y.indicator)):w.prepend([new ke(S.goal.replace(new H("=",[ie,X])),S.substitution,S)])}else{var $=g(o(X.id.split(J.id),function(Re){return new H(Re,[])}));w.prepend([new ke(S.goal.replace(new H("=",[$,F])),S.substitution,S)])}},"@=</2":function(w,S,y){b.compare(y.args[0],y.args[1])<=0&&w.success(S)},"==/2":function(w,S,y){b.compare(y.args[0],y.args[1])===0&&w.success(S)},"\\==/2":function(w,S,y){b.compare(y.args[0],y.args[1])!==0&&w.success(S)},"@</2":function(w,S,y){b.compare(y.args[0],y.args[1])<0&&w.success(S)},"@>/2":function(w,S,y){b.compare(y.args[0],y.args[1])>0&&w.success(S)},"@>=/2":function(w,S,y){b.compare(y.args[0],y.args[1])>=0&&w.success(S)},"compare/3":function(w,S,y){var F=y.args[0],J=y.args[1],X=y.args[2];if(!b.type.is_variable(F)&&!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,y.indicator));else if(b.type.is_atom(F)&&["<",">","="].indexOf(F.id)===-1)w.throw_error(b.type.domain("order",F,y.indicator));else{var $=b.compare(J,X);$=$===0?"=":$===-1?"<":">",w.prepend([new ke(S.goal.replace(new H("=",[F,new H($,[])])),S.substitution,S)])}},"is/2":function(w,S,y){var F=y.args[1].interpret(w);b.type.is_number(F)?w.prepend([new ke(S.goal.replace(new H("=",[y.args[0],F],w.level)),S.substitution,S)]):w.throw_error(F)},"between/3":function(w,S,y){var F=y.args[0],J=y.args[1],X=y.args[2];if(b.type.is_variable(F)||b.type.is_variable(J))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_integer(F))w.throw_error(b.error.type("integer",F,y.indicator));else if(!b.type.is_integer(J))w.throw_error(b.error.type("integer",J,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_integer(X))w.throw_error(b.error.type("integer",X,y.indicator));else if(b.type.is_variable(X)){var $=[new ke(S.goal.replace(new H("=",[X,F])),S.substitution,S)];F.value<J.value&&$.push(new ke(S.goal.replace(new H("between",[new Ne(F.value+1,!1),J,X])),S.substitution,S)),w.prepend($)}else F.value<=X.value&&J.value>=X.value&&w.success(S)},"succ/2":function(w,S,y){var F=y.args[0],J=y.args[1];b.type.is_variable(F)&&b.type.is_variable(J)?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_variable(F)&&!b.type.is_integer(F)?w.throw_error(b.error.type("integer",F,y.indicator)):!b.type.is_variable(J)&&!b.type.is_integer(J)?w.throw_error(b.error.type("integer",J,y.indicator)):!b.type.is_variable(F)&&F.value<0?w.throw_error(b.error.domain("not_less_than_zero",F,y.indicator)):!b.type.is_variable(J)&&J.value<0?w.throw_error(b.error.domain("not_less_than_zero",J,y.indicator)):(b.type.is_variable(J)||J.value>0)&&(b.type.is_variable(F)?w.prepend([new ke(S.goal.replace(new H("=",[F,new Ne(J.value-1,!1)])),S.substitution,S)]):w.prepend([new ke(S.goal.replace(new H("=",[J,new Ne(F.value+1,!1)])),S.substitution,S)]))},"=:=/2":function(w,S,y){var F=b.arithmetic_compare(w,y.args[0],y.args[1]);b.type.is_term(F)?w.throw_error(F):F===0&&w.success(S)},"=\\=/2":function(w,S,y){var F=b.arithmetic_compare(w,y.args[0],y.args[1]);b.type.is_term(F)?w.throw_error(F):F!==0&&w.success(S)},"</2":function(w,S,y){var F=b.arithmetic_compare(w,y.args[0],y.args[1]);b.type.is_term(F)?w.throw_error(F):F<0&&w.success(S)},"=</2":function(w,S,y){var F=b.arithmetic_compare(w,y.args[0],y.args[1]);b.type.is_term(F)?w.throw_error(F):F<=0&&w.success(S)},">/2":function(w,S,y){var F=b.arithmetic_compare(w,y.args[0],y.args[1]);b.type.is_term(F)?w.throw_error(F):F>0&&w.success(S)},">=/2":function(w,S,y){var F=b.arithmetic_compare(w,y.args[0],y.args[1]);b.type.is_term(F)?w.throw_error(F):F>=0&&w.success(S)},"var/1":function(w,S,y){b.type.is_variable(y.args[0])&&w.success(S)},"atom/1":function(w,S,y){b.type.is_atom(y.args[0])&&w.success(S)},"atomic/1":function(w,S,y){b.type.is_atomic(y.args[0])&&w.success(S)},"compound/1":function(w,S,y){b.type.is_compound(y.args[0])&&w.success(S)},"integer/1":function(w,S,y){b.type.is_integer(y.args[0])&&w.success(S)},"float/1":function(w,S,y){b.type.is_float(y.args[0])&&w.success(S)},"number/1":function(w,S,y){b.type.is_number(y.args[0])&&w.success(S)},"nonvar/1":function(w,S,y){b.type.is_variable(y.args[0])||w.success(S)},"ground/1":function(w,S,y){y.variables().length===0&&w.success(S)},"acyclic_term/1":function(w,S,y){for(var F=S.substitution.apply(S.substitution),J=y.args[0].variables(),X=0;X<J.length;X++)if(S.substitution.links[J[X]]!==void 0&&!S.substitution.links[J[X]].equals(F.links[J[X]]))return;w.success(S)},"callable/1":function(w,S,y){b.type.is_callable(y.args[0])&&w.success(S)},"is_list/1":function(w,S,y){for(var F=y.args[0];b.type.is_term(F)&&F.indicator==="./2";)F=F.args[1];b.type.is_term(F)&&F.indicator==="[]/0"&&w.success(S)},"current_input/1":function(w,S,y){var F=y.args[0];!b.type.is_variable(F)&&!b.type.is_stream(F)&&!b.type.is_atom(F)?w.throw_error(b.error.domain("stream",F,y.indicator)):(b.type.is_atom(F)&&w.get_stream_by_alias(F.id)&&(F=w.get_stream_by_alias(F.id)),w.prepend([new ke(S.goal.replace(new H("=",[F,w.get_current_input()])),S.substitution,S)]))},"current_output/1":function(w,S,y){var F=y.args[0];!b.type.is_variable(F)&&!b.type.is_stream(F)&&!b.type.is_atom(F)?w.throw_error(b.error.domain("stream_or_alias",F,y.indicator)):(b.type.is_atom(F)&&w.get_stream_by_alias(F.id)&&(F=w.get_stream_by_alias(F.id)),w.prepend([new ke(S.goal.replace(new H("=",[F,w.get_current_output()])),S.substitution,S)]))},"set_input/1":function(w,S,y){var F=y.args[0],J=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_variable(F)&&!b.type.is_stream(F)&&!b.type.is_atom(F)?w.throw_error(b.error.domain("stream_or_alias",F,y.indicator)):b.type.is_stream(J)?J.output===!0?w.throw_error(b.error.permission("input","stream",F,y.indicator)):(w.set_current_input(J),w.success(S)):w.throw_error(b.error.existence("stream",F,y.indicator))},"set_output/1":function(w,S,y){var F=y.args[0],J=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_variable(F)&&!b.type.is_stream(F)&&!b.type.is_atom(F)?w.throw_error(b.error.domain("stream_or_alias",F,y.indicator)):b.type.is_stream(J)?J.input===!0?w.throw_error(b.error.permission("output","stream",F,y.indicator)):(w.set_current_output(J),w.success(S)):w.throw_error(b.error.existence("stream",F,y.indicator))},"open/3":function(w,S,y){var F=y.args[0],J=y.args[1],X=y.args[2];w.prepend([new ke(S.goal.replace(new H("open",[F,J,X,new H("[]",[])])),S.substitution,S)])},"open/4":function(w,S,y){var F=y.args[0],J=y.args[1],X=y.args[2],$=y.args[3];if(b.type.is_variable(F)||b.type.is_variable(J))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(J)&&!b.type.is_atom(J))w.throw_error(b.error.type("atom",J,y.indicator));else if(!b.type.is_list($))w.throw_error(b.error.type("list",$,y.indicator));else if(!b.type.is_variable(X))w.throw_error(b.error.type("variable",X,y.indicator));else if(!b.type.is_atom(F)&&!b.type.is_streamable(F))w.throw_error(b.error.domain("source_sink",F,y.indicator));else if(!b.type.is_io_mode(J))w.throw_error(b.error.domain("io_mode",J,y.indicator));else{for(var ie={},be=$,Re;b.type.is_term(be)&&be.indicator==="./2";){if(Re=be.args[0],b.type.is_variable(Re)){w.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_stream_option(Re)){w.throw_error(b.error.domain("stream_option",Re,y.indicator));return}ie[Re.id]=Re.args[0].id,be=be.args[1]}if(be.indicator!=="[]/0"){b.type.is_variable(be)?w.throw_error(b.error.instantiation(y.indicator)):w.throw_error(b.error.type("list",$,y.indicator));return}else{var at=ie.alias;if(at&&w.get_stream_by_alias(at)){w.throw_error(b.error.permission("open","source_sink",new H("alias",[new H(at,[])]),y.indicator));return}ie.type||(ie.type="text");var dt;if(b.type.is_atom(F)?dt=w.file_system_open(F.id,ie.type,J.id):dt=F.stream(ie.type,J.id),dt===!1){w.throw_error(b.error.permission("open","source_sink",F,y.indicator));return}else if(dt===null){w.throw_error(b.error.existence("source_sink",F,y.indicator));return}var jt=new Te(dt,J.id,ie.alias,ie.type,ie.reposition==="true",ie.eof_action);at?w.session.streams[at]=jt:w.session.streams[jt.id]=jt,w.prepend([new ke(S.goal.replace(new H("=",[X,jt])),S.substitution,S)])}}},"close/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H("close",[F,new H("[]",[])])),S.substitution,S)])},"close/2":function(w,S,y){var F=y.args[0],J=y.args[1],X=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(b.type.is_variable(F)||b.type.is_variable(J))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_list(J))w.throw_error(b.error.type("list",J,y.indicator));else if(!b.type.is_stream(F)&&!b.type.is_atom(F))w.throw_error(b.error.domain("stream_or_alias",F,y.indicator));else if(!b.type.is_stream(X)||X.stream===null)w.throw_error(b.error.existence("stream",F,y.indicator));else{for(var $={},ie=J,be;b.type.is_term(ie)&&ie.indicator==="./2";){if(be=ie.args[0],b.type.is_variable(be)){w.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_close_option(be)){w.throw_error(b.error.domain("close_option",be,y.indicator));return}$[be.id]=be.args[0].id==="true",ie=ie.args[1]}if(ie.indicator!=="[]/0"){b.type.is_variable(ie)?w.throw_error(b.error.instantiation(y.indicator)):w.throw_error(b.error.type("list",J,y.indicator));return}else{if(X===w.session.standard_input||X===w.session.standard_output){w.success(S);return}else X===w.session.current_input?w.session.current_input=w.session.standard_input:X===w.session.current_output&&(w.session.current_output=w.session.current_output);X.alias!==null?delete w.session.streams[X.alias]:delete w.session.streams[X.id],X.output&&X.stream.flush();var Re=X.stream.close();X.stream=null,($.force===!0||Re===!0)&&w.success(S)}}},"flush_output/0":function(w,S,y){w.prepend([new ke(S.goal.replace(new H(",",[new H("current_output",[new xe("S")]),new H("flush_output",[new xe("S")])])),S.substitution,S)])},"flush_output/1":function(w,S,y){var F=y.args[0],J=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_stream(F)&&!b.type.is_atom(F)?w.throw_error(b.error.domain("stream_or_alias",F,y.indicator)):!b.type.is_stream(J)||J.stream===null?w.throw_error(b.error.existence("stream",F,y.indicator)):F.input===!0?w.throw_error(b.error.permission("output","stream",output,y.indicator)):(J.stream.flush(),w.success(S))},"stream_property/2":function(w,S,y){var F=y.args[0],J=y.args[1],X=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(!b.type.is_variable(F)&&!b.type.is_stream(F)&&!b.type.is_atom(F))w.throw_error(b.error.domain("stream_or_alias",F,y.indicator));else if(!b.type.is_variable(F)&&(!b.type.is_stream(X)||X.stream===null))w.throw_error(b.error.existence("stream",F,y.indicator));else if(!b.type.is_variable(J)&&!b.type.is_stream_property(J))w.throw_error(b.error.domain("stream_property",J,y.indicator));else{var $=[],ie=[];if(!b.type.is_variable(F))$.push(X);else for(var be in w.session.streams)$.push(w.session.streams[be]);for(var Re=0;Re<$.length;Re++){var at=[];$[Re].filename&&at.push(new H("file_name",[new H($[Re].file_name,[])])),at.push(new H("mode",[new H($[Re].mode,[])])),at.push(new H($[Re].input?"input":"output",[])),$[Re].alias&&at.push(new H("alias",[new H($[Re].alias,[])])),at.push(new H("position",[typeof $[Re].position=="number"?new Ne($[Re].position,!1):new H($[Re].position,[])])),at.push(new H("end_of_stream",[new H($[Re].position==="end_of_stream"?"at":$[Re].position==="past_end_of_stream"?"past":"not",[])])),at.push(new H("eof_action",[new H($[Re].eof_action,[])])),at.push(new H("reposition",[new H($[Re].reposition?"true":"false",[])])),at.push(new H("type",[new H($[Re].type,[])]));for(var dt=0;dt<at.length;dt++)ie.push(new ke(S.goal.replace(new H(",",[new H("=",[b.type.is_variable(F)?F:X,$[Re]]),new H("=",[J,at[dt]])])),S.substitution,S))}w.prepend(ie)}},"at_end_of_stream/0":function(w,S,y){w.prepend([new ke(S.goal.replace(new H(",",[new H("current_input",[new xe("S")]),new H(",",[new H("stream_property",[new xe("S"),new H("end_of_stream",[new xe("E")])]),new H(",",[new H("!",[]),new H(";",[new H("=",[new xe("E"),new H("at",[])]),new H("=",[new xe("E"),new H("past",[])])])])])])),S.substitution,S)])},"at_end_of_stream/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("stream_property",[F,new H("end_of_stream",[new xe("E")])]),new H(",",[new H("!",[]),new H(";",[new H("=",[new xe("E"),new H("at",[])]),new H("=",[new xe("E"),new H("past",[])])])])])),S.substitution,S)])},"set_stream_position/2":function(w,S,y){var F=y.args[0],J=y.args[1],X=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);b.type.is_variable(F)||b.type.is_variable(J)?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_stream(F)&&!b.type.is_atom(F)?w.throw_error(b.error.domain("stream_or_alias",F,y.indicator)):!b.type.is_stream(X)||X.stream===null?w.throw_error(b.error.existence("stream",F,y.indicator)):b.type.is_stream_position(J)?X.reposition===!1?w.throw_error(b.error.permission("reposition","stream",F,y.indicator)):(b.type.is_integer(J)?X.position=J.value:X.position=J.id,w.success(S)):w.throw_error(b.error.domain("stream_position",J,y.indicator))},"get_char/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_input",[new xe("S")]),new H("get_char",[new xe("S"),F])])),S.substitution,S)])},"get_char/2":function(w,S,y){var F=y.args[0],J=y.args[1],X=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(b.type.is_variable(F))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(J)&&!b.type.is_character(J))w.throw_error(b.error.type("in_character",J,y.indicator));else if(!b.type.is_stream(F)&&!b.type.is_atom(F))w.throw_error(b.error.domain("stream_or_alias",F,y.indicator));else if(!b.type.is_stream(X)||X.stream===null)w.throw_error(b.error.existence("stream",F,y.indicator));else if(X.output)w.throw_error(b.error.permission("input","stream",F,y.indicator));else if(X.type==="binary")w.throw_error(b.error.permission("input","binary_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")w.throw_error(b.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$="end_of_file",X.position="past_end_of_stream";else{if($=X.stream.get(1,X.position),$===null){w.throw_error(b.error.representation("character",y.indicator));return}X.position++}w.prepend([new ke(S.goal.replace(new H("=",[new H($,[]),J])),S.substitution,S)])}},"get_code/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_input",[new xe("S")]),new H("get_code",[new xe("S"),F])])),S.substitution,S)])},"get_code/2":function(w,S,y){var F=y.args[0],J=y.args[1],X=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(b.type.is_variable(F))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(J)&&!b.type.is_integer(J))w.throw_error(b.error.type("integer",char,y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_stream(F)&&!b.type.is_atom(F))w.throw_error(b.error.domain("stream_or_alias",F,y.indicator));else if(!b.type.is_stream(X)||X.stream===null)w.throw_error(b.error.existence("stream",F,y.indicator));else if(X.output)w.throw_error(b.error.permission("input","stream",F,y.indicator));else if(X.type==="binary")w.throw_error(b.error.permission("input","binary_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")w.throw_error(b.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$=-1,X.position="past_end_of_stream";else{if($=X.stream.get(1,X.position),$===null){w.throw_error(b.error.representation("character",y.indicator));return}$=n($,0),X.position++}w.prepend([new ke(S.goal.replace(new H("=",[new Ne($,!1),J])),S.substitution,S)])}},"peek_char/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_input",[new xe("S")]),new H("peek_char",[new xe("S"),F])])),S.substitution,S)])},"peek_char/2":function(w,S,y){var F=y.args[0],J=y.args[1],X=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(b.type.is_variable(F))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(J)&&!b.type.is_character(J))w.throw_error(b.error.type("in_character",J,y.indicator));else if(!b.type.is_stream(F)&&!b.type.is_atom(F))w.throw_error(b.error.domain("stream_or_alias",F,y.indicator));else if(!b.type.is_stream(X)||X.stream===null)w.throw_error(b.error.existence("stream",F,y.indicator));else if(X.output)w.throw_error(b.error.permission("input","stream",F,y.indicator));else if(X.type==="binary")w.throw_error(b.error.permission("input","binary_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")w.throw_error(b.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$="end_of_file",X.position="past_end_of_stream";else if($=X.stream.get(1,X.position),$===null){w.throw_error(b.error.representation("character",y.indicator));return}w.prepend([new ke(S.goal.replace(new H("=",[new H($,[]),J])),S.substitution,S)])}},"peek_code/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_input",[new xe("S")]),new H("peek_code",[new xe("S"),F])])),S.substitution,S)])},"peek_code/2":function(w,S,y){var F=y.args[0],J=y.args[1],X=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(b.type.is_variable(F))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(J)&&!b.type.is_integer(J))w.throw_error(b.error.type("integer",char,y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_stream(F)&&!b.type.is_atom(F))w.throw_error(b.error.domain("stream_or_alias",F,y.indicator));else if(!b.type.is_stream(X)||X.stream===null)w.throw_error(b.error.existence("stream",F,y.indicator));else if(X.output)w.throw_error(b.error.permission("input","stream",F,y.indicator));else if(X.type==="binary")w.throw_error(b.error.permission("input","binary_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")w.throw_error(b.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$=-1,X.position="past_end_of_stream";else{if($=X.stream.get(1,X.position),$===null){w.throw_error(b.error.representation("character",y.indicator));return}$=n($,0)}w.prepend([new ke(S.goal.replace(new H("=",[new Ne($,!1),J])),S.substitution,S)])}},"put_char/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_output",[new xe("S")]),new H("put_char",[new xe("S"),F])])),S.substitution,S)])},"put_char/2":function(w,S,y){var F=y.args[0],J=y.args[1],X=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);b.type.is_variable(F)||b.type.is_variable(J)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_character(J)?!b.type.is_variable(F)&&!b.type.is_stream(F)&&!b.type.is_atom(F)?w.throw_error(b.error.domain("stream_or_alias",F,y.indicator)):!b.type.is_stream(X)||X.stream===null?w.throw_error(b.error.existence("stream",F,y.indicator)):X.input?w.throw_error(b.error.permission("output","stream",F,y.indicator)):X.type==="binary"?w.throw_error(b.error.permission("output","binary_stream",F,y.indicator)):X.stream.put(J.id,X.position)&&(typeof X.position=="number"&&X.position++,w.success(S)):w.throw_error(b.error.type("character",J,y.indicator))},"put_code/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_output",[new xe("S")]),new H("put_code",[new xe("S"),F])])),S.substitution,S)])},"put_code/2":function(w,S,y){var F=y.args[0],J=y.args[1],X=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);b.type.is_variable(F)||b.type.is_variable(J)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_integer(J)?b.type.is_character_code(J)?!b.type.is_variable(F)&&!b.type.is_stream(F)&&!b.type.is_atom(F)?w.throw_error(b.error.domain("stream_or_alias",F,y.indicator)):!b.type.is_stream(X)||X.stream===null?w.throw_error(b.error.existence("stream",F,y.indicator)):X.input?w.throw_error(b.error.permission("output","stream",F,y.indicator)):X.type==="binary"?w.throw_error(b.error.permission("output","binary_stream",F,y.indicator)):X.stream.put_char(u(J.value),X.position)&&(typeof X.position=="number"&&X.position++,w.success(S)):w.throw_error(b.error.representation("character_code",y.indicator)):w.throw_error(b.error.type("integer",J,y.indicator))},"nl/0":function(w,S,y){w.prepend([new ke(S.goal.replace(new H(",",[new H("current_output",[new xe("S")]),new H("put_char",[new xe("S"),new H(` -`,[])])])),S.substitution,S)])},"nl/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H("put_char",[F,new H(` -`,[])])),S.substitution,S)])},"get_byte/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_input",[new xe("S")]),new H("get_byte",[new xe("S"),F])])),S.substitution,S)])},"get_byte/2":function(w,S,y){var F=y.args[0],J=y.args[1],X=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(b.type.is_variable(F))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(J)&&!b.type.is_byte(J))w.throw_error(b.error.type("in_byte",char,y.indicator));else if(!b.type.is_stream(F)&&!b.type.is_atom(F))w.throw_error(b.error.domain("stream_or_alias",F,y.indicator));else if(!b.type.is_stream(X)||X.stream===null)w.throw_error(b.error.existence("stream",F,y.indicator));else if(X.output)w.throw_error(b.error.permission("input","stream",F,y.indicator));else if(X.type==="text")w.throw_error(b.error.permission("input","text_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")w.throw_error(b.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$="end_of_file",X.position="past_end_of_stream";else{if($=X.stream.get_byte(X.position),$===null){w.throw_error(b.error.representation("byte",y.indicator));return}X.position++}w.prepend([new ke(S.goal.replace(new H("=",[new Ne($,!1),J])),S.substitution,S)])}},"peek_byte/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_input",[new xe("S")]),new H("peek_byte",[new xe("S"),F])])),S.substitution,S)])},"peek_byte/2":function(w,S,y){var F=y.args[0],J=y.args[1],X=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(b.type.is_variable(F))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(J)&&!b.type.is_byte(J))w.throw_error(b.error.type("in_byte",char,y.indicator));else if(!b.type.is_stream(F)&&!b.type.is_atom(F))w.throw_error(b.error.domain("stream_or_alias",F,y.indicator));else if(!b.type.is_stream(X)||X.stream===null)w.throw_error(b.error.existence("stream",F,y.indicator));else if(X.output)w.throw_error(b.error.permission("input","stream",F,y.indicator));else if(X.type==="text")w.throw_error(b.error.permission("input","text_stream",F,y.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")w.throw_error(b.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(X.position==="end_of_stream")$="end_of_file",X.position="past_end_of_stream";else if($=X.stream.get_byte(X.position),$===null){w.throw_error(b.error.representation("byte",y.indicator));return}w.prepend([new ke(S.goal.replace(new H("=",[new Ne($,!1),J])),S.substitution,S)])}},"put_byte/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_output",[new xe("S")]),new H("put_byte",[new xe("S"),F])])),S.substitution,S)])},"put_byte/2":function(w,S,y){var F=y.args[0],J=y.args[1],X=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);b.type.is_variable(F)||b.type.is_variable(J)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_byte(J)?!b.type.is_variable(F)&&!b.type.is_stream(F)&&!b.type.is_atom(F)?w.throw_error(b.error.domain("stream_or_alias",F,y.indicator)):!b.type.is_stream(X)||X.stream===null?w.throw_error(b.error.existence("stream",F,y.indicator)):X.input?w.throw_error(b.error.permission("output","stream",F,y.indicator)):X.type==="text"?w.throw_error(b.error.permission("output","text_stream",F,y.indicator)):X.stream.put_byte(J.value,X.position)&&(typeof X.position=="number"&&X.position++,w.success(S)):w.throw_error(b.error.type("byte",J,y.indicator))},"read/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_input",[new xe("S")]),new H("read_term",[new xe("S"),F,new H("[]",[])])])),S.substitution,S)])},"read/2":function(w,S,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(S.goal.replace(new H("read_term",[F,J,new H("[]",[])])),S.substitution,S)])},"read_term/2":function(w,S,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_input",[new xe("S")]),new H("read_term",[new xe("S"),F,J])])),S.substitution,S)])},"read_term/3":function(w,S,y){var F=y.args[0],J=y.args[1],X=y.args[2],$=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(b.type.is_variable(F)||b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_list(X))w.throw_error(b.error.type("list",X,y.indicator));else if(!b.type.is_stream(F)&&!b.type.is_atom(F))w.throw_error(b.error.domain("stream_or_alias",F,y.indicator));else if(!b.type.is_stream($)||$.stream===null)w.throw_error(b.error.existence("stream",F,y.indicator));else if($.output)w.throw_error(b.error.permission("input","stream",F,y.indicator));else if($.type==="binary")w.throw_error(b.error.permission("input","binary_stream",F,y.indicator));else if($.position==="past_end_of_stream"&&$.eof_action==="error")w.throw_error(b.error.permission("input","past_end_of_stream",F,y.indicator));else{for(var ie={},be=X,Re;b.type.is_term(be)&&be.indicator==="./2";){if(Re=be.args[0],b.type.is_variable(Re)){w.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_read_option(Re)){w.throw_error(b.error.domain("read_option",Re,y.indicator));return}ie[Re.id]=Re.args[0],be=be.args[1]}if(be.indicator!=="[]/0"){b.type.is_variable(be)?w.throw_error(b.error.instantiation(y.indicator)):w.throw_error(b.error.type("list",X,y.indicator));return}else{for(var at,dt,jt,tr="",St=[],ln=null;ln===null||ln.name!=="atom"||ln.value!=="."||jt.type===A&&b.flatten_error(new H("throw",[jt.value])).found==="token_not_found";){if(at=$.stream.get(1,$.position),at===null){w.throw_error(b.error.representation("character",y.indicator));return}if(at==="end_of_file"||at==="past_end_of_file"){jt?w.throw_error(b.error.syntax(St[jt.len-1],". or expression expected",!1)):w.throw_error(b.error.syntax(null,"token not found",!0));return}$.position++,tr+=at,dt=new U(w),dt.new_text(tr),St=dt.get_tokens(),ln=St!==null&&St.length>0?St[St.length-1]:null,St!==null&&(jt=z(w,St,0,w.__get_max_priority(),!1))}if(jt.type===p&&jt.len===St.length-1&&ln.value==="."){jt=jt.value.rename(w);var kr=new H("=",[J,jt]);if(ie.variables){var mr=g(o(we(jt.variables()),function(br){return new xe(br)}));kr=new H(",",[kr,new H("=",[ie.variables,mr])])}if(ie.variable_names){var mr=g(o(we(jt.variables()),function(Kr){var Kn;for(Kn in w.session.renamed_variables)if(w.session.renamed_variables.hasOwnProperty(Kn)&&w.session.renamed_variables[Kn]===Kr)break;return new H("=",[new H(Kn,[]),new xe(Kr)])}));kr=new H(",",[kr,new H("=",[ie.variable_names,mr])])}if(ie.singletons){var mr=g(o(new Ye(jt,null).singleton_variables(),function(Kr){var Kn;for(Kn in w.session.renamed_variables)if(w.session.renamed_variables.hasOwnProperty(Kn)&&w.session.renamed_variables[Kn]===Kr)break;return new H("=",[new H(Kn,[]),new xe(Kr)])}));kr=new H(",",[kr,new H("=",[ie.singletons,mr])])}w.prepend([new ke(S.goal.replace(kr),S.substitution,S)])}else jt.type===p?w.throw_error(b.error.syntax(St[jt.len],"unexpected token",!1)):w.throw_error(jt.value)}}},"write/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_output",[new xe("S")]),new H("write",[new xe("S"),F])])),S.substitution,S)])},"write/2":function(w,S,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(S.goal.replace(new H("write_term",[F,J,new H(".",[new H("quoted",[new H("false",[])]),new H(".",[new H("ignore_ops",[new H("false")]),new H(".",[new H("numbervars",[new H("true")]),new H("[]",[])])])])])),S.substitution,S)])},"writeq/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_output",[new xe("S")]),new H("writeq",[new xe("S"),F])])),S.substitution,S)])},"writeq/2":function(w,S,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(S.goal.replace(new H("write_term",[F,J,new H(".",[new H("quoted",[new H("true",[])]),new H(".",[new H("ignore_ops",[new H("false")]),new H(".",[new H("numbervars",[new H("true")]),new H("[]",[])])])])])),S.substitution,S)])},"write_canonical/1":function(w,S,y){var F=y.args[0];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_output",[new xe("S")]),new H("write_canonical",[new xe("S"),F])])),S.substitution,S)])},"write_canonical/2":function(w,S,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(S.goal.replace(new H("write_term",[F,J,new H(".",[new H("quoted",[new H("true",[])]),new H(".",[new H("ignore_ops",[new H("true")]),new H(".",[new H("numbervars",[new H("false")]),new H("[]",[])])])])])),S.substitution,S)])},"write_term/2":function(w,S,y){var F=y.args[0],J=y.args[1];w.prepend([new ke(S.goal.replace(new H(",",[new H("current_output",[new xe("S")]),new H("write_term",[new xe("S"),F,J])])),S.substitution,S)])},"write_term/3":function(w,S,y){var F=y.args[0],J=y.args[1],X=y.args[2],$=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(b.type.is_variable(F)||b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_list(X))w.throw_error(b.error.type("list",X,y.indicator));else if(!b.type.is_stream(F)&&!b.type.is_atom(F))w.throw_error(b.error.domain("stream_or_alias",F,y.indicator));else if(!b.type.is_stream($)||$.stream===null)w.throw_error(b.error.existence("stream",F,y.indicator));else if($.input)w.throw_error(b.error.permission("output","stream",F,y.indicator));else if($.type==="binary")w.throw_error(b.error.permission("output","binary_stream",F,y.indicator));else if($.position==="past_end_of_stream"&&$.eof_action==="error")w.throw_error(b.error.permission("output","past_end_of_stream",F,y.indicator));else{for(var ie={},be=X,Re;b.type.is_term(be)&&be.indicator==="./2";){if(Re=be.args[0],b.type.is_variable(Re)){w.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_write_option(Re)){w.throw_error(b.error.domain("write_option",Re,y.indicator));return}ie[Re.id]=Re.args[0].id==="true",be=be.args[1]}if(be.indicator!=="[]/0"){b.type.is_variable(be)?w.throw_error(b.error.instantiation(y.indicator)):w.throw_error(b.error.type("list",X,y.indicator));return}else{ie.session=w.session;var at=J.toString(ie);$.stream.put(at,$.position),typeof $.position=="number"&&($.position+=at.length),w.success(S)}}},"halt/0":function(w,S,y){w.points=[]},"halt/1":function(w,S,y){var F=y.args[0];b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_integer(F)?w.points=[]:w.throw_error(b.error.type("integer",F,y.indicator))},"current_prolog_flag/2":function(w,S,y){var F=y.args[0],J=y.args[1];if(!b.type.is_variable(F)&&!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_flag(F))w.throw_error(b.error.domain("prolog_flag",F,y.indicator));else{var X=[];for(var $ in b.flag)if(b.flag.hasOwnProperty($)){var ie=new H(",",[new H("=",[new H($),F]),new H("=",[w.get_flag($),J])]);X.push(new ke(S.goal.replace(ie),S.substitution,S))}w.prepend(X)}},"set_prolog_flag/2":function(w,S,y){var F=y.args[0],J=y.args[1];b.type.is_variable(F)||b.type.is_variable(J)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(F)?b.type.is_flag(F)?b.type.is_value_flag(F,J)?b.type.is_modifiable_flag(F)?(w.session.flag[F.id]=J,w.success(S)):w.throw_error(b.error.permission("modify","flag",F)):w.throw_error(b.error.domain("flag_value",new H("+",[F,J]),y.indicator)):w.throw_error(b.error.domain("prolog_flag",F,y.indicator)):w.throw_error(b.error.type("atom",F,y.indicator))}},flag:{bounded:{allowed:[new H("true"),new H("false")],value:new H("true"),changeable:!1},max_integer:{allowed:[new Ne(Number.MAX_SAFE_INTEGER)],value:new Ne(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new Ne(Number.MIN_SAFE_INTEGER)],value:new Ne(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new H("down"),new H("toward_zero")],value:new H("toward_zero"),changeable:!1},char_conversion:{allowed:[new H("on"),new H("off")],value:new H("on"),changeable:!0},debug:{allowed:[new H("on"),new H("off")],value:new H("off"),changeable:!0},max_arity:{allowed:[new H("unbounded")],value:new H("unbounded"),changeable:!1},unknown:{allowed:[new H("error"),new H("fail"),new H("warning")],value:new H("error"),changeable:!0},double_quotes:{allowed:[new H("chars"),new H("codes"),new H("atom")],value:new H("codes"),changeable:!0},occurs_check:{allowed:[new H("false"),new H("true")],value:new H("false"),changeable:!0},dialect:{allowed:[new H("tau")],value:new H("tau"),changeable:!1},version_data:{allowed:[new H("tau",[new Ne(t.major,!1),new Ne(t.minor,!1),new Ne(t.patch,!1),new H(t.status)])],value:new H("tau",[new Ne(t.major,!1),new Ne(t.minor,!1),new Ne(t.patch,!1),new H(t.status)]),changeable:!1},nodejs:{allowed:[new H("yes"),new H("no")],value:new H(typeof gl<"u"&&gl.exports?"yes":"no"),changeable:!1}},unify:function(w,S,y){y=y===void 0?!1:y;for(var F=[{left:w,right:S}],J={};F.length!==0;){var X=F.pop();if(w=X.left,S=X.right,b.type.is_term(w)&&b.type.is_term(S)){if(w.indicator!==S.indicator)return null;for(var $=0;$<w.args.length;$++)F.push({left:w.args[$],right:S.args[$]})}else if(b.type.is_number(w)&&b.type.is_number(S)){if(w.value!==S.value||w.is_float!==S.is_float)return null}else if(b.type.is_variable(w)){if(b.type.is_variable(S)&&w.id===S.id)continue;if(y===!0&&S.variables().indexOf(w.id)!==-1)return null;if(w.id!=="_"){var ie=new Fe;ie.add(w.id,S);for(var $=0;$<F.length;$++)F[$].left=F[$].left.apply(ie),F[$].right=F[$].right.apply(ie);for(var $ in J)J[$]=J[$].apply(ie);J[w.id]=S}}else if(b.type.is_variable(S))F.push({left:S,right:w});else if(w.unify!==void 0){if(!w.unify(S))return null}else return null}return new Fe(J)},compare:function(w,S){var y=b.type.compare(w,S);return y!==0?y:w.compare(S)},arithmetic_compare:function(w,S,y){var F=S.interpret(w);if(b.type.is_number(F)){var J=y.interpret(w);return b.type.is_number(J)?F.value<J.value?-1:F.value>J.value?1:0:J}else return F},operate:function(w,S){if(b.type.is_operator(S)){for(var y=b.type.is_operator(S),F=[],J,X=!1,$=0;$<S.args.length;$++){if(J=S.args[$].interpret(w),b.type.is_number(J)){if(y.type_args!==null&&J.is_float!==y.type_args)return b.error.type(y.type_args?"float":"integer",J,w.__call_indicator);F.push(J.value)}else return J;X=X||J.is_float}return F.push(w),J=b.arithmetic.evaluation[S.indicator].fn.apply(this,F),X=y.type_result===null?X:y.type_result,b.type.is_term(J)?J:J===Number.POSITIVE_INFINITY||J===Number.NEGATIVE_INFINITY?b.error.evaluation("overflow",w.__call_indicator):X===!1&&w.get_flag("bounded").id==="true"&&(J>w.get_flag("max_integer").value||J<w.get_flag("min_integer").value)?b.error.evaluation("int_overflow",w.__call_indicator):new Ne(J,X)}else return b.error.type("evaluable",S.indicator,w.__call_indicator)},error:{existence:function(w,S,y){return typeof S=="string"&&(S=Z(S)),new H("error",[new H("existence_error",[new H(w),S]),Z(y)])},type:function(w,S,y){return new H("error",[new H("type_error",[new H(w),S]),Z(y)])},instantiation:function(w){return new H("error",[new H("instantiation_error"),Z(w)])},domain:function(w,S,y){return new H("error",[new H("domain_error",[new H(w),S]),Z(y)])},representation:function(w,S){return new H("error",[new H("representation_error",[new H(w)]),Z(S)])},permission:function(w,S,y,F){return new H("error",[new H("permission_error",[new H(w),new H(S),y]),Z(F)])},evaluation:function(w,S){return new H("error",[new H("evaluation_error",[new H(w)]),Z(S)])},syntax:function(w,S,y){w=w||{value:"",line:0,column:0,matches:[""],start:0};var F=y&&w.matches.length>0?w.start+w.matches[0].length:w.start,J=y?new H("token_not_found"):new H("found",[new H(w.value.toString())]),X=new H(".",[new H("line",[new Ne(w.line+1)]),new H(".",[new H("column",[new Ne(F+1)]),new H(".",[J,new H("[]",[])])])]);return new H("error",[new H("syntax_error",[new H(S)]),X])},syntax_by_predicate:function(w,S){return new H("error",[new H("syntax_error",[new H(w)]),Z(S)])}},warning:{singleton:function(w,S,y){for(var F=new H("[]"),J=w.length-1;J>=0;J--)F=new H(".",[new xe(w[J]),F]);return new H("warning",[new H("singleton_variables",[F,Z(S)]),new H(".",[new H("line",[new Ne(y,!1)]),new H("[]")])])},failed_goal:function(w,S){return new H("warning",[new H("failed_goal",[w]),new H(".",[new H("line",[new Ne(S,!1)]),new H("[]")])])}},format_variable:function(w){return"_"+w},format_answer:function(w,S,F){S instanceof Se&&(S=S.thread);var F=F||{};if(F.session=S?S.session:void 0,b.type.is_error(w))return"uncaught exception: "+w.args[0].toString();if(w===!1)return"false.";if(w===null)return"limit exceeded ;";var J=0,X="";if(b.type.is_substitution(w)){var $=w.domain(!0);w=w.filter(function(Re,at){return!b.type.is_variable(at)||$.indexOf(at.id)!==-1&&Re!==at.id})}for(var ie in w.links)w.links.hasOwnProperty(ie)&&(J++,X!==""&&(X+=", "),X+=ie.toString(F)+" = "+w.links[ie].toString(F));var be=typeof S>"u"||S.points.length>0?" ;":".";return J===0?"true"+be:X+be},flatten_error:function(w){if(!b.type.is_error(w))return null;w=w.args[0];var S={};return S.type=w.args[0].id,S.thrown=S.type==="syntax_error"?null:w.args[1].id,S.expected=null,S.found=null,S.representation=null,S.existence=null,S.existence_type=null,S.line=null,S.column=null,S.permission_operation=null,S.permission_type=null,S.evaluation_type=null,S.type==="type_error"||S.type==="domain_error"?(S.expected=w.args[0].args[0].id,S.found=w.args[0].args[1].toString()):S.type==="syntax_error"?w.args[1].indicator==="./2"?(S.expected=w.args[0].args[0].id,S.found=w.args[1].args[1].args[1].args[0],S.found=S.found.id==="token_not_found"?S.found.id:S.found.args[0].id,S.line=w.args[1].args[0].args[0].value,S.column=w.args[1].args[1].args[0].args[0].value):S.thrown=w.args[1].id:S.type==="permission_error"?(S.found=w.args[0].args[2].toString(),S.permission_operation=w.args[0].args[0].id,S.permission_type=w.args[0].args[1].id):S.type==="evaluation_error"?S.evaluation_type=w.args[0].args[0].id:S.type==="representation_error"?S.representation=w.args[0].args[0].id:S.type==="existence_error"&&(S.existence=w.args[0].args[1].toString(),S.existence_type=w.args[0].args[0].id),S},create:function(w){return new b.type.Session(w)}};typeof gl<"u"?gl.exports=b:window.pl=b})()});function cme(t,e,r){t.prepend(r.map(o=>new La.default.type.State(e.goal.replace(o),e.substitution,e)))}function fH(t){let e=Ame.get(t.session);if(e==null)throw new Error("Assertion failed: A project should have been registered for the active session");return e}function fme(t,e){Ame.set(t,e),t.consult(`:- use_module(library(${rdt.id})).`)}var pH,La,ume,Qh,edt,tdt,Ame,rdt,pme=Et(()=>{Ge();pH=Ze(e2()),La=Ze(AH()),ume=Ze(ve("vm")),{is_atom:Qh,is_variable:edt,is_instantiated_list:tdt}=La.default.type;Ame=new WeakMap;rdt=new La.default.type.Module("constraints",{"project_workspaces_by_descriptor/3":(t,e,r)=>{let[o,a,n]=r.args;if(!Qh(o)||!Qh(a)){t.throw_error(La.default.error.instantiation(r.indicator));return}let u=G.parseIdent(o.id),A=G.makeDescriptor(u,a.id),h=fH(t).tryWorkspaceByDescriptor(A);edt(n)&&h!==null&&cme(t,e,[new La.default.type.Term("=",[n,new La.default.type.Term(String(h.relativeCwd))])]),Qh(n)&&h!==null&&h.relativeCwd===n.id&&t.success(e)},"workspace_field/3":(t,e,r)=>{let[o,a,n]=r.args;if(!Qh(o)||!Qh(a)){t.throw_error(La.default.error.instantiation(r.indicator));return}let A=fH(t).tryWorkspaceByCwd(o.id);if(A==null)return;let p=(0,pH.default)(A.manifest.raw,a.id);typeof p>"u"||cme(t,e,[new La.default.type.Term("=",[n,new La.default.type.Term(typeof p=="object"?JSON.stringify(p):p)])])},"workspace_field_test/3":(t,e,r)=>{let[o,a,n]=r.args;t.prepend([new La.default.type.State(e.goal.replace(new La.default.type.Term("workspace_field_test",[o,a,n,new La.default.type.Term("[]",[])])),e.substitution,e)])},"workspace_field_test/4":(t,e,r)=>{let[o,a,n,u]=r.args;if(!Qh(o)||!Qh(a)||!Qh(n)||!tdt(u)){t.throw_error(La.default.error.instantiation(r.indicator));return}let p=fH(t).tryWorkspaceByCwd(o.id);if(p==null)return;let h=(0,pH.default)(p.manifest.raw,a.id);if(typeof h>"u")return;let E={$$:h};for(let[v,x]of u.toJavaScript().entries())E[`$${v}`]=x;ume.default.runInNewContext(n.id,E)&&t.success(e)}},["project_workspaces_by_descriptor/3","workspace_field/3","workspace_field_test/3","workspace_field_test/4"])});var A2={};Vt(A2,{Constraints:()=>gH,DependencyType:()=>mme});function to(t){if(t instanceof NE.default.type.Num)return t.value;if(t instanceof NE.default.type.Term)switch(t.indicator){case"throw/1":return to(t.args[0]);case"error/1":return to(t.args[0]);case"error/2":if(t.args[0]instanceof NE.default.type.Term&&t.args[0].indicator==="syntax_error/1")return Object.assign(to(t.args[0]),...to(t.args[1]));{let e=to(t.args[0]);return e.message+=` (in ${to(t.args[1])})`,e}case"syntax_error/1":return new Jt(43,`Syntax error: ${to(t.args[0])}`);case"existence_error/2":return new Jt(44,`Existence error: ${to(t.args[0])} ${to(t.args[1])} not found`);case"instantiation_error/0":return new Jt(75,"Instantiation error: an argument is variable when an instantiated argument was expected");case"line/1":return{line:to(t.args[0])};case"column/1":return{column:to(t.args[0])};case"found/1":return{found:to(t.args[0])};case"./2":return[to(t.args[0])].concat(to(t.args[1]));case"//2":return`${to(t.args[0])}/${to(t.args[1])}`;default:return t.id}throw`couldn't pretty print because of unsupported node ${t}`}function gme(t){let e;try{e=to(t)}catch(r){throw typeof r=="string"?new Jt(42,`Unknown error: ${t} (note: ${r})`):r}return typeof e.line<"u"&&typeof e.column<"u"&&(e.message+=` at line ${e.line}, column ${e.column}`),e}function Gg(t){return t.id==="null"?null:`${t.toJavaScript()}`}function ndt(t){if(t.id==="null")return null;{let e=t.toJavaScript();if(typeof e!="string")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return JSON.stringify(e)}}}function Fh(t){return typeof t=="string"?`'${t}'`:"[]"}var dme,NE,mme,hme,hH,gH,f2=Et(()=>{Ge();Ge();Pt();dme=Ze(Kde()),NE=Ze(AH());l2();pme();(0,dme.default)(NE.default);mme=(o=>(o.Dependencies="dependencies",o.DevDependencies="devDependencies",o.PeerDependencies="peerDependencies",o))(mme||{}),hme=["dependencies","devDependencies","peerDependencies"];hH=class{constructor(e,r){let o=1e3*e.workspaces.length;this.session=NE.default.create(o),fme(this.session,e),this.session.consult(":- use_module(library(lists))."),this.session.consult(r)}fetchNextAnswer(){return new Promise(e=>{this.session.answer(r=>{e(r)})})}async*makeQuery(e){let r=this.session.query(e);if(r!==!0)throw gme(r);for(;;){let o=await this.fetchNextAnswer();if(o===null)throw new Jt(79,"Resolution limit exceeded");if(!o)break;if(o.id==="throw")throw gme(o);yield o}}};gH=class t{constructor(e){this.source="";this.project=e;let r=e.configuration.get("constraintsPath");oe.existsSync(r)&&(this.source=oe.readFileSync(r,"utf8"))}static async find(e){return new t(e)}getProjectDatabase(){let e="";for(let r of hme)e+=`dependency_type(${r}). -`;for(let r of this.project.workspacesByCwd.values()){let o=r.relativeCwd;e+=`workspace(${Fh(o)}). -`,e+=`workspace_ident(${Fh(o)}, ${Fh(G.stringifyIdent(r.anchoredLocator))}). -`,e+=`workspace_version(${Fh(o)}, ${Fh(r.manifest.version)}). -`;for(let a of hme)for(let n of r.manifest[a].values())e+=`workspace_has_dependency(${Fh(o)}, ${Fh(G.stringifyIdent(n))}, ${Fh(n.range)}, ${a}). -`}return e+=`workspace(_) :- false. -`,e+=`workspace_ident(_, _) :- false. -`,e+=`workspace_version(_, _) :- false. -`,e+=`workspace_has_dependency(_, _, _, _) :- false. -`,e}getDeclarations(){let e="";return e+=`gen_enforced_dependency(_, _, _, _) :- false. -`,e+=`gen_enforced_field(_, _, _) :- false. -`,e}get fullSource(){return`${this.getProjectDatabase()} -${this.source} -${this.getDeclarations()}`}createSession(){return new hH(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),o=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:u,dependencyType:A}of e){let p=a2([A,G.stringifyIdent(n)]),h=He.getMapWithDefault(o,a.cwd);He.getMapWithDefault(h,p).set(u??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:u}of r){let A=a2(n),p=He.getMapWithDefault(o,a.cwd);He.getMapWithDefault(p,A).set(JSON.parse(u)??void 0,new Set)}return{manifestUpdates:o,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=K.resolve(this.project.cwd,Gg(o.links.WorkspaceCwd)),n=Gg(o.links.DependencyIdent),u=Gg(o.links.DependencyRange),A=Gg(o.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let p=this.project.getWorkspaceByCwd(a),h=G.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:u,dependencyType:A})}return He.sortMap(r,[({dependencyRange:o})=>o!==null?"0":"1",({workspace:o})=>G.stringifyIdent(o.anchoredLocator),({dependencyIdent:o})=>G.stringifyIdent(o)])}async genEnforcedFields(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=K.resolve(this.project.cwd,Gg(o.links.WorkspaceCwd)),n=Gg(o.links.FieldPath),u=ndt(o.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:n,fieldValue:u})}return He.sortMap(r,[({workspace:o})=>G.stringifyIdent(o.anchoredLocator),({fieldPath:o})=>o])}async*query(e){let r=this.createSession();for await(let o of r.makeQuery(e)){let a={};for(let[n,u]of Object.entries(o.links))n!=="_"&&(a[n]=Gg(u));yield a}}}});var Pme=_(Ak=>{"use strict";Object.defineProperty(Ak,"__esModule",{value:!0});function S2(t){let e=[...t.caches],r=e.shift();return r===void 0?Dme():{get(o,a,n={miss:()=>Promise.resolve()}){return r.get(o,a,n).catch(()=>S2({caches:e}).get(o,a,n))},set(o,a){return r.set(o,a).catch(()=>S2({caches:e}).set(o,a))},delete(o){return r.delete(o).catch(()=>S2({caches:e}).delete(o))},clear(){return r.clear().catch(()=>S2({caches:e}).clear())}}}function Dme(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}Ak.createFallbackableCache=S2;Ak.createNullCache=Dme});var bme=_((MWt,Sme)=>{Sme.exports=Pme()});var xme=_(xH=>{"use strict";Object.defineProperty(xH,"__esModule",{value:!0});function Idt(t={serializable:!0}){let e={};return{get(r,o,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let u=o(),A=a&&a.miss||(()=>Promise.resolve());return u.then(p=>A(p)).then(()=>u)},set(r,o){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(o):o,Promise.resolve(o)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}xH.createInMemoryCache=Idt});var Qme=_((UWt,kme)=>{kme.exports=xme()});var Rme=_(eu=>{"use strict";Object.defineProperty(eu,"__esModule",{value:!0});function Bdt(t,e,r){let o={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return t===kH.WithinHeaders?o:{}},queryParameters(){return t===kH.WithinQueryParameters?o:{}}}}function vdt(t){let e=0,r=()=>(e++,new Promise(o=>{setTimeout(()=>{o(t(r))},Math.min(100*e,1e3))}));return t(r)}function Fme(t,e=(r,o)=>Promise.resolve()){return Object.assign(t,{wait(r){return Fme(t.then(o=>Promise.all([e(o,r),o])).then(o=>o[1]))}})}function Ddt(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),o=t[e];t[e]=t[r],t[r]=o}return t}function Pdt(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function Sdt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var bdt="4.22.1",xdt=t=>()=>t.transporter.requester.destroy(),kH={WithinQueryParameters:0,WithinHeaders:1};eu.AuthMode=kH;eu.addMethods=Pdt;eu.createAuth=Bdt;eu.createRetryablePromise=vdt;eu.createWaitablePromise=Fme;eu.destroy=xdt;eu.encode=Sdt;eu.shuffle=Ddt;eu.version=bdt});var b2=_((HWt,Tme)=>{Tme.exports=Rme()});var Nme=_(QH=>{"use strict";Object.defineProperty(QH,"__esModule",{value:!0});var kdt={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};QH.MethodEnum=kdt});var x2=_((jWt,Lme)=>{Lme.exports=Nme()});var Xme=_(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});var Ome=x2();function FH(t,e){let r=t||{},o=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(o[a]=r[a])}),{data:Object.entries(o).length>0?o:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var k2={Read:1,Write:2,Any:3},YE={Up:1,Down:2,Timeouted:3},Ume=2*60*1e3;function TH(t,e=YE.Up){return{...t,status:e,lastUpdate:Date.now()}}function _me(t){return t.status===YE.Up||Date.now()-t.lastUpdate>Ume}function Hme(t){return t.status===YE.Timeouted&&Date.now()-t.lastUpdate<=Ume}function NH(t){return typeof t=="string"?{protocol:"https",url:t,accept:k2.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||k2.Any}}function Qdt(t,e){return Promise.all(e.map(r=>t.get(r,()=>Promise.resolve(TH(r))))).then(r=>{let o=r.filter(A=>_me(A)),a=r.filter(A=>Hme(A)),n=[...o,...a],u=n.length>0?n.map(A=>NH(A)):e;return{getTimeout(A,p){return(a.length===0&&A===0?1:a.length+3+A)*p},statelessHosts:u}})}var Fdt=({isTimedOut:t,status:e})=>!t&&~~e===0,Rdt=t=>{let e=t.status;return t.isTimedOut||Fdt(t)||~~(e/100)!==2&&~~(e/100)!==4},Tdt=({status:t})=>~~(t/100)===2,Ndt=(t,e)=>Rdt(t)?e.onRetry(t):Tdt(t)?e.onSuccess(t):e.onFail(t);function Mme(t,e,r,o){let a=[],n=Wme(r,o),u=Kme(t,o),A=r.method,p=r.method!==Ome.MethodEnum.Get?{}:{...r.data,...o.data},h={"x-algolia-agent":t.userAgent.value,...t.queryParameters,...p,...o.queryParameters},E=0,I=(v,x)=>{let C=v.pop();if(C===void 0)throw Jme(RH(a));let R={data:n,headers:u,method:A,url:Gme(C,r.path,h),connectTimeout:x(E,t.timeouts.connect),responseTimeout:x(E,o.timeout)},L=z=>{let te={request:R,response:z,host:C,triesLeft:v.length};return a.push(te),te},U={onSuccess:z=>qme(z),onRetry(z){let te=L(z);return z.isTimedOut&&E++,Promise.all([t.logger.info("Retryable failure",LH(te)),t.hostsCache.set(C,TH(C,z.isTimedOut?YE.Timeouted:YE.Down))]).then(()=>I(v,x))},onFail(z){throw L(z),jme(z,RH(a))}};return t.requester.send(R).then(z=>Ndt(z,U))};return Qdt(t.hostsCache,e).then(v=>I([...v.statelessHosts].reverse(),v.getTimeout))}function Ldt(t){let{hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,hosts:p,queryParameters:h,headers:E}=t,I={hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,headers:E,queryParameters:h,hosts:p.map(v=>NH(v)),read(v,x){let C=FH(x,I.timeouts.read),R=()=>Mme(I,I.hosts.filter(z=>(z.accept&k2.Read)!==0),v,C);if((C.cacheable!==void 0?C.cacheable:v.cacheable)!==!0)return R();let U={request:v,mappedRequestOptions:C,transporter:{queryParameters:I.queryParameters,headers:I.headers}};return I.responsesCache.get(U,()=>I.requestsCache.get(U,()=>I.requestsCache.set(U,R()).then(z=>Promise.all([I.requestsCache.delete(U),z]),z=>Promise.all([I.requestsCache.delete(U),Promise.reject(z)])).then(([z,te])=>te)),{miss:z=>I.responsesCache.set(U,z)})},write(v,x){return Mme(I,I.hosts.filter(C=>(C.accept&k2.Write)!==0),v,FH(x,I.timeouts.write))}};return I}function Mdt(t){let e={value:`Algolia for JavaScript (${t})`,add(r){let o=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return e.value.indexOf(o)===-1&&(e.value=`${e.value}${o}`),e}};return e}function qme(t){try{return JSON.parse(t.content)}catch(e){throw zme(e.message,t)}}function jme({content:t,status:e},r){let o=t;try{o=JSON.parse(t).message}catch{}return Vme(o,e,r)}function Odt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}function Gme(t,e,r){let o=Yme(r),a=`${t.protocol}://${t.url}/${e.charAt(0)==="/"?e.substr(1):e}`;return o.length&&(a+=`?${o}`),a}function Yme(t){let e=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(t).map(r=>Odt("%s=%s",r,e(t[r])?JSON.stringify(t[r]):t[r])).join("&")}function Wme(t,e){if(t.method===Ome.MethodEnum.Get||t.data===void 0&&e.data===void 0)return;let r=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(r)}function Kme(t,e){let r={...t.headers,...e.headers},o={};return Object.keys(r).forEach(a=>{let n=r[a];o[a.toLowerCase()]=n}),o}function RH(t){return t.map(e=>LH(e))}function LH(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function Vme(t,e,r){return{name:"ApiError",message:t,status:e,transporterStackTrace:r}}function zme(t,e){return{name:"DeserializationError",message:t,response:e}}function Jme(t){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:t}}Qi.CallEnum=k2;Qi.HostStatusEnum=YE;Qi.createApiError=Vme;Qi.createDeserializationError=zme;Qi.createMappedRequestOptions=FH;Qi.createRetryError=Jme;Qi.createStatefulHost=TH;Qi.createStatelessHost=NH;Qi.createTransporter=Ldt;Qi.createUserAgent=Mdt;Qi.deserializeFailure=jme;Qi.deserializeSuccess=qme;Qi.isStatefulHostTimeouted=Hme;Qi.isStatefulHostUp=_me;Qi.serializeData=Wme;Qi.serializeHeaders=Kme;Qi.serializeQueryParameters=Yme;Qi.serializeUrl=Gme;Qi.stackFrameWithoutCredentials=LH;Qi.stackTraceWithoutCredentials=RH});var Q2=_((YWt,Zme)=>{Zme.exports=Xme()});var $me=_(Rh=>{"use strict";Object.defineProperty(Rh,"__esModule",{value:!0});var WE=b2(),Udt=Q2(),F2=x2(),_dt=t=>{let e=t.region||"us",r=WE.createAuth(WE.AuthMode.WithinHeaders,t.appId,t.apiKey),o=Udt.createTransporter({hosts:[{url:`analytics.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a=t.appId;return WE.addMethods({appId:a,transporter:o},t.methods)},Hdt=t=>(e,r)=>t.transporter.write({method:F2.MethodEnum.Post,path:"2/abtests",data:e},r),qdt=t=>(e,r)=>t.transporter.write({method:F2.MethodEnum.Delete,path:WE.encode("2/abtests/%s",e)},r),jdt=t=>(e,r)=>t.transporter.read({method:F2.MethodEnum.Get,path:WE.encode("2/abtests/%s",e)},r),Gdt=t=>e=>t.transporter.read({method:F2.MethodEnum.Get,path:"2/abtests"},e),Ydt=t=>(e,r)=>t.transporter.write({method:F2.MethodEnum.Post,path:WE.encode("2/abtests/%s/stop",e)},r);Rh.addABTest=Hdt;Rh.createAnalyticsClient=_dt;Rh.deleteABTest=qdt;Rh.getABTest=jdt;Rh.getABTests=Gdt;Rh.stopABTest=Ydt});var tye=_((KWt,eye)=>{eye.exports=$me()});var nye=_(R2=>{"use strict";Object.defineProperty(R2,"__esModule",{value:!0});var MH=b2(),Wdt=Q2(),rye=x2(),Kdt=t=>{let e=t.region||"us",r=MH.createAuth(MH.AuthMode.WithinHeaders,t.appId,t.apiKey),o=Wdt.createTransporter({hosts:[{url:`personalization.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}});return MH.addMethods({appId:t.appId,transporter:o},t.methods)},Vdt=t=>e=>t.transporter.read({method:rye.MethodEnum.Get,path:"1/strategies/personalization"},e),zdt=t=>(e,r)=>t.transporter.write({method:rye.MethodEnum.Post,path:"1/strategies/personalization",data:e},r);R2.createPersonalizationClient=Kdt;R2.getPersonalizationStrategy=Vdt;R2.setPersonalizationStrategy=zdt});var sye=_((zWt,iye)=>{iye.exports=nye()});var Eye=_(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});var Gt=b2(),Ma=Q2(),Ir=x2(),Jdt=ve("crypto");function fk(t){let e=r=>t.request(r).then(o=>{if(t.batch!==void 0&&t.batch(o.hits),!t.shouldStop(o))return o.cursor?e({cursor:o.cursor}):e({page:(r.page||0)+1})});return e({})}var Xdt=t=>{let e=t.appId,r=Gt.createAuth(t.authMode!==void 0?t.authMode:Gt.AuthMode.WithinHeaders,e,t.apiKey),o=Ma.createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:Ma.CallEnum.Read},{url:`${e}.algolia.net`,accept:Ma.CallEnum.Write}].concat(Gt.shuffle([{url:`${e}-1.algolianet.com`},{url:`${e}-2.algolianet.com`},{url:`${e}-3.algolianet.com`}])),...t,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a={transporter:o,appId:e,addAlgoliaAgent(n,u){o.userAgent.add({segment:n,version:u})},clearCache(){return Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then(()=>{})}};return Gt.addMethods(a,t.methods)};function oye(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function aye(){return{name:"ObjectNotFoundError",message:"Object not found."}}function lye(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var Zdt=t=>(e,r)=>{let{queryParameters:o,...a}=r||{},n={acl:e,...o!==void 0?{queryParameters:o}:{}},u=(A,p)=>Gt.createRetryablePromise(h=>T2(t)(A.key,p).catch(E=>{if(E.status!==404)throw E;return h()}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:"1/keys",data:n},a),u)},$dt=t=>(e,r,o)=>{let a=Ma.createMappedRequestOptions(o);return a.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:Ir.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},emt=t=>(e,r,o)=>t.transporter.write({method:Ir.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:e,cluster:r}},o),tmt=t=>(e,r)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(o,a)=>KE(t)(o.taskID,a)),pk=t=>(e,r,o)=>{let a=(n,u)=>N2(t)(e,{methods:{waitTask:es}}).waitTask(n.taskID,u);return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/operation",e),data:{operation:"copy",destination:r}},o),a)},rmt=t=>(e,r,o)=>pk(t)(e,r,{...o,scope:[gk.Rules]}),nmt=t=>(e,r,o)=>pk(t)(e,r,{...o,scope:[gk.Settings]}),imt=t=>(e,r,o)=>pk(t)(e,r,{...o,scope:[gk.Synonyms]}),smt=t=>(e,r)=>e.method===Ir.MethodEnum.Get?t.transporter.read(e,r):t.transporter.write(e,r),omt=t=>(e,r)=>{let o=(a,n)=>Gt.createRetryablePromise(u=>T2(t)(e,n).then(u).catch(A=>{if(A.status!==404)throw A}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/keys/%s",e)},r),o)},amt=t=>(e,r,o)=>{let a=r.map(n=>({action:"deleteEntry",body:{objectID:n}}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>KE(t)(n.taskID,u))},lmt=()=>(t,e)=>{let r=Ma.serializeQueryParameters(e),o=Jdt.createHmac("sha256",t).update(r).digest("hex");return Buffer.from(o+r).toString("base64")},T2=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/keys/%s",e)},r),cye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/task/%s",e.toString())},r),cmt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"/1/dictionaries/*/settings"},e),umt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/logs"},e),Amt=()=>t=>{let e=Buffer.from(t,"base64").toString("ascii"),r=/validUntil=(\d+)/,o=e.match(r);if(o===null)throw lye();return parseInt(o[1],10)-Math.round(new Date().getTime()/1e3)},fmt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters/mapping/top"},e),pmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/clusters/mapping/%s",e)},r),hmt=t=>e=>{let{retrieveMappings:r,...o}=e||{};return r===!0&&(o.getClusters=!0),t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters/mapping/pending"},o)},N2=t=>(e,r={})=>{let o={transporter:t.transporter,appId:t.appId,indexName:e};return Gt.addMethods(o,r.methods)},gmt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/keys"},e),dmt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters"},e),mmt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/indexes"},e),ymt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters/mapping"},e),Emt=t=>(e,r,o)=>{let a=(n,u)=>N2(t)(e,{methods:{waitTask:es}}).waitTask(n.taskID,u);return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/operation",e),data:{operation:"move",destination:r}},o),a)},Cmt=t=>(e,r)=>{let o=(a,n)=>Promise.all(Object.keys(a.taskID).map(u=>N2(t)(u,{methods:{waitTask:es}}).waitTask(a.taskID[u],n)));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:e}},r),o)},wmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:e}},r),Imt=t=>(e,r)=>{let o=e.map(a=>({...a,params:Ma.serializeQueryParameters(a.params||{})}));return t.transporter.read({method:Ir.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:o},cacheable:!0},r)},Bmt=t=>(e,r)=>Promise.all(e.map(o=>{let{facetName:a,facetQuery:n,...u}=o.params;return N2(t)(o.indexName,{methods:{searchForFacetValues:dye}}).searchForFacetValues(a,n,{...r,...u})})),vmt=t=>(e,r)=>{let o=Ma.createMappedRequestOptions(r);return o.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:Ir.MethodEnum.Delete,path:"1/clusters/mapping"},o)},Dmt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:a}},o),(n,u)=>KE(t)(n.taskID,u))},Pmt=t=>(e,r)=>{let o=(a,n)=>Gt.createRetryablePromise(u=>T2(t)(e,n).catch(A=>{if(A.status!==404)throw A;return u()}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/keys/%s/restore",e)},r),o)},Smt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>KE(t)(n.taskID,u))},bmt=t=>(e,r,o)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/search",e),data:{query:r},cacheable:!0},o),xmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:e}},r),kmt=t=>(e,r)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:e},r),(o,a)=>KE(t)(o.taskID,a)),Qmt=t=>(e,r)=>{let o=Object.assign({},r),{queryParameters:a,...n}=r||{},u=a?{queryParameters:a}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],p=E=>Object.keys(o).filter(I=>A.indexOf(I)!==-1).every(I=>{if(Array.isArray(E[I])&&Array.isArray(o[I])){let v=E[I];return v.length===o[I].length&&v.every((x,C)=>x===o[I][C])}else return E[I]===o[I]}),h=(E,I)=>Gt.createRetryablePromise(v=>T2(t)(e,I).then(x=>p(x)?Promise.resolve():v()));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Put,path:Gt.encode("1/keys/%s",e),data:u},n),h)},KE=t=>(e,r)=>Gt.createRetryablePromise(o=>cye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),uye=t=>(e,r)=>{let o=(a,n)=>es(t)(a.taskID,n);return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/batch",t.indexName),data:{requests:e}},r),o)},Fmt=t=>e=>fk({shouldStop:r=>r.cursor===void 0,...e,request:r=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/browse",t.indexName),data:r},e)}),Rmt=t=>e=>{let r={hitsPerPage:1e3,...e};return fk({shouldStop:o=>o.hits.length<r.hitsPerPage,...r,request(o){return mye(t)("",{...r,...o}).then(a=>({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},Tmt=t=>e=>{let r={hitsPerPage:1e3,...e};return fk({shouldStop:o=>o.hits.length<r.hitsPerPage,...r,request(o){return yye(t)("",{...r,...o}).then(a=>({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},hk=t=>(e,r,o)=>{let{batchSize:a,...n}=o||{},u={taskIDs:[],objectIDs:[]},A=(p=0)=>{let h=[],E;for(E=p;E<e.length&&(h.push(e[E]),h.length!==(a||1e3));E++);return h.length===0?Promise.resolve(u):uye(t)(h.map(I=>({action:r,body:I})),n).then(I=>(u.objectIDs=u.objectIDs.concat(I.objectIDs),u.taskIDs.push(I.taskID),E++,A(E)))};return Gt.createWaitablePromise(A(),(p,h)=>Promise.all(p.taskIDs.map(E=>es(t)(E,h))))},Nmt=t=>e=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/clear",t.indexName)},e),(r,o)=>es(t)(r.taskID,o)),Lmt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Ma.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/rules/clear",t.indexName)},a),(n,u)=>es(t)(n.taskID,u))},Mmt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Ma.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/synonyms/clear",t.indexName)},a),(n,u)=>es(t)(n.taskID,u))},Omt=t=>(e,r)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/deleteByQuery",t.indexName),data:e},r),(o,a)=>es(t)(o.taskID,a)),Umt=t=>e=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/indexes/%s",t.indexName)},e),(r,o)=>es(t)(r.taskID,o)),_mt=t=>(e,r)=>Gt.createWaitablePromise(Aye(t)([e],r).then(o=>({taskID:o.taskIDs[0]})),(o,a)=>es(t)(o.taskID,a)),Aye=t=>(e,r)=>{let o=e.map(a=>({objectID:a}));return hk(t)(o,Wg.DeleteObject,r)},Hmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ma.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/indexes/%s/rules/%s",t.indexName,e)},n),(u,A)=>es(t)(u.taskID,A))},qmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ma.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},n),(u,A)=>es(t)(u.taskID,A))},jmt=t=>e=>fye(t)(e).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),Gmt=t=>(e,r,o)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},o),Ymt=t=>(e,r)=>{let{query:o,paginate:a,...n}=r||{},u=0,A=()=>gye(t)(o||"",{...n,page:u}).then(p=>{for(let[h,E]of Object.entries(p.hits))if(e(E))return{object:E,position:parseInt(h,10),page:u};if(u++,a===!1||u>=p.nbPages)throw aye();return A()});return A()},Wmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/%s",t.indexName,e)},r),Kmt=()=>(t,e)=>{for(let[r,o]of Object.entries(t.hits))if(o.objectID===e)return parseInt(r,10);return-1},Vmt=t=>(e,r)=>{let{attributesToRetrieve:o,...a}=r||{},n=e.map(u=>({indexName:t.indexName,objectID:u,...o?{attributesToRetrieve:o}:{}}));return t.transporter.read({method:Ir.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:n}},a)},zmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/rules/%s",t.indexName,e)},r),fye=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},e),Jmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},r),pye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/task/%s",t.indexName,e.toString())},r),Xmt=t=>(e,r)=>Gt.createWaitablePromise(hye(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>es(t)(o.taskID,a)),hye=t=>(e,r)=>{let{createIfNotExists:o,...a}=r||{},n=o?Wg.PartialUpdateObject:Wg.PartialUpdateObjectNoCreate;return hk(t)(e,n,a)},Zmt=t=>(e,r)=>{let{safe:o,autoGenerateObjectIDIfNotExist:a,batchSize:n,...u}=r||{},A=(C,R,L,U)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/operation",C),data:{operation:L,destination:R}},U),(z,te)=>es(t)(z.taskID,te)),p=Math.random().toString(36).substring(7),h=`${t.indexName}_tmp_${p}`,E=OH({appId:t.appId,transporter:t.transporter,indexName:h}),I=[],v=A(t.indexName,h,"copy",{...u,scope:["settings","synonyms","rules"]});I.push(v);let x=(o?v.wait(u):v).then(()=>{let C=E(e,{...u,autoGenerateObjectIDIfNotExist:a,batchSize:n});return I.push(C),o?C.wait(u):C}).then(()=>{let C=A(h,t.indexName,"move",u);return I.push(C),o?C.wait(u):C}).then(()=>Promise.all(I)).then(([C,R,L])=>({objectIDs:R.objectIDs,taskIDs:[C.taskID,...R.taskIDs,L.taskID]}));return Gt.createWaitablePromise(x,(C,R)=>Promise.all(I.map(L=>L.wait(R))))},$mt=t=>(e,r)=>UH(t)(e,{...r,clearExistingRules:!0}),eyt=t=>(e,r)=>_H(t)(e,{...r,clearExistingSynonyms:!0}),tyt=t=>(e,r)=>Gt.createWaitablePromise(OH(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>es(t)(o.taskID,a)),OH=t=>(e,r)=>{let{autoGenerateObjectIDIfNotExist:o,...a}=r||{},n=o?Wg.AddObject:Wg.UpdateObject;if(n===Wg.UpdateObject){for(let u of e)if(u.objectID===void 0)return Gt.createWaitablePromise(Promise.reject(oye()))}return hk(t)(e,n,a)},ryt=t=>(e,r)=>UH(t)([e],r),UH=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingRules:a,...n}=r||{},u=Ma.createMappedRequestOptions(n);return o&&(u.queryParameters.forwardToReplicas=1),a&&(u.queryParameters.clearExistingRules=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/rules/batch",t.indexName),data:e},u),(A,p)=>es(t)(A.taskID,p))},nyt=t=>(e,r)=>_H(t)([e],r),_H=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingSynonyms:a,replaceExistingSynonyms:n,...u}=r||{},A=Ma.createMappedRequestOptions(u);return o&&(A.queryParameters.forwardToReplicas=1),(n||a)&&(A.queryParameters.replaceExistingSynonyms=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/synonyms/batch",t.indexName),data:e},A),(p,h)=>es(t)(p.taskID,h))},gye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r),dye=t=>(e,r,o)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},o),mye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/rules/search",t.indexName),data:{query:e}},r),yye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/synonyms/search",t.indexName),data:{query:e}},r),iyt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ma.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Put,path:Gt.encode("1/indexes/%s/settings",t.indexName),data:e},n),(u,A)=>es(t)(u.taskID,A))},es=t=>(e,r)=>Gt.createRetryablePromise(o=>pye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),syt={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",Inference:"inference",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},Wg={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},gk={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},oyt={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},ayt={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};Ft.ApiKeyACLEnum=syt;Ft.BatchActionEnum=Wg;Ft.ScopeEnum=gk;Ft.StrategyEnum=oyt;Ft.SynonymEnum=ayt;Ft.addApiKey=Zdt;Ft.assignUserID=$dt;Ft.assignUserIDs=emt;Ft.batch=uye;Ft.browseObjects=Fmt;Ft.browseRules=Rmt;Ft.browseSynonyms=Tmt;Ft.chunkedBatch=hk;Ft.clearDictionaryEntries=tmt;Ft.clearObjects=Nmt;Ft.clearRules=Lmt;Ft.clearSynonyms=Mmt;Ft.copyIndex=pk;Ft.copyRules=rmt;Ft.copySettings=nmt;Ft.copySynonyms=imt;Ft.createBrowsablePromise=fk;Ft.createMissingObjectIDError=oye;Ft.createObjectNotFoundError=aye;Ft.createSearchClient=Xdt;Ft.createValidUntilNotFoundError=lye;Ft.customRequest=smt;Ft.deleteApiKey=omt;Ft.deleteBy=Omt;Ft.deleteDictionaryEntries=amt;Ft.deleteIndex=Umt;Ft.deleteObject=_mt;Ft.deleteObjects=Aye;Ft.deleteRule=Hmt;Ft.deleteSynonym=qmt;Ft.exists=jmt;Ft.findAnswers=Gmt;Ft.findObject=Ymt;Ft.generateSecuredApiKey=lmt;Ft.getApiKey=T2;Ft.getAppTask=cye;Ft.getDictionarySettings=cmt;Ft.getLogs=umt;Ft.getObject=Wmt;Ft.getObjectPosition=Kmt;Ft.getObjects=Vmt;Ft.getRule=zmt;Ft.getSecuredApiKeyRemainingValidity=Amt;Ft.getSettings=fye;Ft.getSynonym=Jmt;Ft.getTask=pye;Ft.getTopUserIDs=fmt;Ft.getUserID=pmt;Ft.hasPendingMappings=hmt;Ft.initIndex=N2;Ft.listApiKeys=gmt;Ft.listClusters=dmt;Ft.listIndices=mmt;Ft.listUserIDs=ymt;Ft.moveIndex=Emt;Ft.multipleBatch=Cmt;Ft.multipleGetObjects=wmt;Ft.multipleQueries=Imt;Ft.multipleSearchForFacetValues=Bmt;Ft.partialUpdateObject=Xmt;Ft.partialUpdateObjects=hye;Ft.removeUserID=vmt;Ft.replaceAllObjects=Zmt;Ft.replaceAllRules=$mt;Ft.replaceAllSynonyms=eyt;Ft.replaceDictionaryEntries=Dmt;Ft.restoreApiKey=Pmt;Ft.saveDictionaryEntries=Smt;Ft.saveObject=tyt;Ft.saveObjects=OH;Ft.saveRule=ryt;Ft.saveRules=UH;Ft.saveSynonym=nyt;Ft.saveSynonyms=_H;Ft.search=gye;Ft.searchDictionaryEntries=bmt;Ft.searchForFacetValues=dye;Ft.searchRules=mye;Ft.searchSynonyms=yye;Ft.searchUserIDs=xmt;Ft.setDictionarySettings=kmt;Ft.setSettings=iyt;Ft.updateApiKey=Qmt;Ft.waitAppTask=KE;Ft.waitTask=es});var wye=_((XWt,Cye)=>{Cye.exports=Eye()});var Iye=_(dk=>{"use strict";Object.defineProperty(dk,"__esModule",{value:!0});function lyt(){return{debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var cyt={Debug:1,Info:2,Error:3};dk.LogLevelEnum=cyt;dk.createNullLogger=lyt});var vye=_(($Wt,Bye)=>{Bye.exports=Iye()});var bye=_(HH=>{"use strict";Object.defineProperty(HH,"__esModule",{value:!0});var Dye=ve("http"),Pye=ve("https"),uyt=ve("url"),Sye={keepAlive:!0},Ayt=new Dye.Agent(Sye),fyt=new Pye.Agent(Sye);function pyt({agent:t,httpAgent:e,httpsAgent:r,requesterOptions:o={}}={}){let a=e||t||Ayt,n=r||t||fyt;return{send(u){return new Promise(A=>{let p=uyt.parse(u.url),h=p.query===null?p.pathname:`${p.pathname}?${p.query}`,E={...o,agent:p.protocol==="https:"?n:a,hostname:p.hostname,path:h,method:u.method,headers:{...o&&o.headers?o.headers:{},...u.headers},...p.port!==void 0?{port:p.port||""}:{}},I=(p.protocol==="https:"?Pye:Dye).request(E,R=>{let L=[];R.on("data",U=>{L=L.concat(U)}),R.on("end",()=>{clearTimeout(x),clearTimeout(C),A({status:R.statusCode||0,content:Buffer.concat(L).toString(),isTimedOut:!1})})}),v=(R,L)=>setTimeout(()=>{I.abort(),A({status:0,content:L,isTimedOut:!0})},R*1e3),x=v(u.connectTimeout,"Connection timeout"),C;I.on("error",R=>{clearTimeout(x),clearTimeout(C),A({status:0,content:R.message,isTimedOut:!1})}),I.once("response",()=>{clearTimeout(x),C=v(u.responseTimeout,"Socket timeout")}),u.data!==void 0&&I.write(u.data),I.end()})},destroy(){return a.destroy(),n.destroy(),Promise.resolve()}}}HH.createNodeHttpRequester=pyt});var kye=_((tKt,xye)=>{xye.exports=bye()});var Tye=_((rKt,Rye)=>{"use strict";var Qye=bme(),hyt=Qme(),VE=tye(),jH=b2(),qH=sye(),_t=wye(),gyt=vye(),dyt=kye(),myt=Q2();function Fye(t,e,r){let o={appId:t,apiKey:e,timeouts:{connect:2,read:5,write:30},requester:dyt.createNodeHttpRequester(),logger:gyt.createNullLogger(),responsesCache:Qye.createNullCache(),requestsCache:Qye.createNullCache(),hostsCache:hyt.createInMemoryCache(),userAgent:myt.createUserAgent(jH.version).add({segment:"Node.js",version:process.versions.node})},a={...o,...r},n=()=>u=>qH.createPersonalizationClient({...o,...u,methods:{getPersonalizationStrategy:qH.getPersonalizationStrategy,setPersonalizationStrategy:qH.setPersonalizationStrategy}});return _t.createSearchClient({...a,methods:{search:_t.multipleQueries,searchForFacetValues:_t.multipleSearchForFacetValues,multipleBatch:_t.multipleBatch,multipleGetObjects:_t.multipleGetObjects,multipleQueries:_t.multipleQueries,copyIndex:_t.copyIndex,copySettings:_t.copySettings,copyRules:_t.copyRules,copySynonyms:_t.copySynonyms,moveIndex:_t.moveIndex,listIndices:_t.listIndices,getLogs:_t.getLogs,listClusters:_t.listClusters,multipleSearchForFacetValues:_t.multipleSearchForFacetValues,getApiKey:_t.getApiKey,addApiKey:_t.addApiKey,listApiKeys:_t.listApiKeys,updateApiKey:_t.updateApiKey,deleteApiKey:_t.deleteApiKey,restoreApiKey:_t.restoreApiKey,assignUserID:_t.assignUserID,assignUserIDs:_t.assignUserIDs,getUserID:_t.getUserID,searchUserIDs:_t.searchUserIDs,listUserIDs:_t.listUserIDs,getTopUserIDs:_t.getTopUserIDs,removeUserID:_t.removeUserID,hasPendingMappings:_t.hasPendingMappings,generateSecuredApiKey:_t.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:_t.getSecuredApiKeyRemainingValidity,destroy:jH.destroy,clearDictionaryEntries:_t.clearDictionaryEntries,deleteDictionaryEntries:_t.deleteDictionaryEntries,getDictionarySettings:_t.getDictionarySettings,getAppTask:_t.getAppTask,replaceDictionaryEntries:_t.replaceDictionaryEntries,saveDictionaryEntries:_t.saveDictionaryEntries,searchDictionaryEntries:_t.searchDictionaryEntries,setDictionarySettings:_t.setDictionarySettings,waitAppTask:_t.waitAppTask,customRequest:_t.customRequest,initIndex:u=>A=>_t.initIndex(u)(A,{methods:{batch:_t.batch,delete:_t.deleteIndex,findAnswers:_t.findAnswers,getObject:_t.getObject,getObjects:_t.getObjects,saveObject:_t.saveObject,saveObjects:_t.saveObjects,search:_t.search,searchForFacetValues:_t.searchForFacetValues,waitTask:_t.waitTask,setSettings:_t.setSettings,getSettings:_t.getSettings,partialUpdateObject:_t.partialUpdateObject,partialUpdateObjects:_t.partialUpdateObjects,deleteObject:_t.deleteObject,deleteObjects:_t.deleteObjects,deleteBy:_t.deleteBy,clearObjects:_t.clearObjects,browseObjects:_t.browseObjects,getObjectPosition:_t.getObjectPosition,findObject:_t.findObject,exists:_t.exists,saveSynonym:_t.saveSynonym,saveSynonyms:_t.saveSynonyms,getSynonym:_t.getSynonym,searchSynonyms:_t.searchSynonyms,browseSynonyms:_t.browseSynonyms,deleteSynonym:_t.deleteSynonym,clearSynonyms:_t.clearSynonyms,replaceAllObjects:_t.replaceAllObjects,replaceAllSynonyms:_t.replaceAllSynonyms,searchRules:_t.searchRules,getRule:_t.getRule,deleteRule:_t.deleteRule,saveRule:_t.saveRule,saveRules:_t.saveRules,replaceAllRules:_t.replaceAllRules,browseRules:_t.browseRules,clearRules:_t.clearRules}}),initAnalytics:()=>u=>VE.createAnalyticsClient({...o,...u,methods:{addABTest:VE.addABTest,getABTest:VE.getABTest,getABTests:VE.getABTests,stopABTest:VE.stopABTest,deleteABTest:VE.deleteABTest}}),initPersonalization:n,initRecommendation:()=>u=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),n()(u))}})}Fye.version=jH.version;Rye.exports=Fye});var YH=_((nKt,GH)=>{var Nye=Tye();GH.exports=Nye;GH.exports.default=Nye});var VH=_((sKt,Oye)=>{"use strict";var Mye=Object.getOwnPropertySymbols,Eyt=Object.prototype.hasOwnProperty,Cyt=Object.prototype.propertyIsEnumerable;function wyt(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function Iyt(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var o=Object.getOwnPropertyNames(e).map(function(n){return e[n]});if(o.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(n){a[n]=n}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}Oye.exports=Iyt()?Object.assign:function(t,e){for(var r,o=wyt(t),a,n=1;n<arguments.length;n++){r=Object(arguments[n]);for(var u in r)Eyt.call(r,u)&&(o[u]=r[u]);if(Mye){a=Mye(r);for(var A=0;A<a.length;A++)Cyt.call(r,a[A])&&(o[a[A]]=r[a[A]])}}return o}});var Jye=_(Nn=>{"use strict";var $H=VH(),tu=typeof Symbol=="function"&&Symbol.for,L2=tu?Symbol.for("react.element"):60103,Byt=tu?Symbol.for("react.portal"):60106,vyt=tu?Symbol.for("react.fragment"):60107,Dyt=tu?Symbol.for("react.strict_mode"):60108,Pyt=tu?Symbol.for("react.profiler"):60114,Syt=tu?Symbol.for("react.provider"):60109,byt=tu?Symbol.for("react.context"):60110,xyt=tu?Symbol.for("react.forward_ref"):60112,kyt=tu?Symbol.for("react.suspense"):60113,Qyt=tu?Symbol.for("react.memo"):60115,Fyt=tu?Symbol.for("react.lazy"):60116,Uye=typeof Symbol=="function"&&Symbol.iterator;function M2(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r<arguments.length;r++)e+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+t+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var _ye={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Hye={};function zE(t,e,r){this.props=t,this.context=e,this.refs=Hye,this.updater=r||_ye}zE.prototype.isReactComponent={};zE.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error(M2(85));this.updater.enqueueSetState(this,t,e,"setState")};zE.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function qye(){}qye.prototype=zE.prototype;function e6(t,e,r){this.props=t,this.context=e,this.refs=Hye,this.updater=r||_ye}var t6=e6.prototype=new qye;t6.constructor=e6;$H(t6,zE.prototype);t6.isPureReactComponent=!0;var r6={current:null},jye=Object.prototype.hasOwnProperty,Gye={key:!0,ref:!0,__self:!0,__source:!0};function Yye(t,e,r){var o,a={},n=null,u=null;if(e!=null)for(o in e.ref!==void 0&&(u=e.ref),e.key!==void 0&&(n=""+e.key),e)jye.call(e,o)&&!Gye.hasOwnProperty(o)&&(a[o]=e[o]);var A=arguments.length-2;if(A===1)a.children=r;else if(1<A){for(var p=Array(A),h=0;h<A;h++)p[h]=arguments[h+2];a.children=p}if(t&&t.defaultProps)for(o in A=t.defaultProps,A)a[o]===void 0&&(a[o]=A[o]);return{$$typeof:L2,type:t,key:n,ref:u,props:a,_owner:r6.current}}function Ryt(t,e){return{$$typeof:L2,type:t.type,key:e,ref:t.ref,props:t.props,_owner:t._owner}}function n6(t){return typeof t=="object"&&t!==null&&t.$$typeof===L2}function Tyt(t){var e={"=":"=0",":":"=2"};return"$"+(""+t).replace(/[=:]/g,function(r){return e[r]})}var Wye=/\/+/g,mk=[];function Kye(t,e,r,o){if(mk.length){var a=mk.pop();return a.result=t,a.keyPrefix=e,a.func=r,a.context=o,a.count=0,a}return{result:t,keyPrefix:e,func:r,context:o,count:0}}function Vye(t){t.result=null,t.keyPrefix=null,t.func=null,t.context=null,t.count=0,10>mk.length&&mk.push(t)}function JH(t,e,r,o){var a=typeof t;(a==="undefined"||a==="boolean")&&(t=null);var n=!1;if(t===null)n=!0;else switch(a){case"string":case"number":n=!0;break;case"object":switch(t.$$typeof){case L2:case Byt:n=!0}}if(n)return r(o,t,e===""?"."+zH(t,0):e),1;if(n=0,e=e===""?".":e+":",Array.isArray(t))for(var u=0;u<t.length;u++){a=t[u];var A=e+zH(a,u);n+=JH(a,A,r,o)}else if(t===null||typeof t!="object"?A=null:(A=Uye&&t[Uye]||t["@@iterator"],A=typeof A=="function"?A:null),typeof A=="function")for(t=A.call(t),u=0;!(a=t.next()).done;)a=a.value,A=e+zH(a,u++),n+=JH(a,A,r,o);else if(a==="object")throw r=""+t,Error(M2(31,r==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":r,""));return n}function XH(t,e,r){return t==null?0:JH(t,"",e,r)}function zH(t,e){return typeof t=="object"&&t!==null&&t.key!=null?Tyt(t.key):e.toString(36)}function Nyt(t,e){t.func.call(t.context,e,t.count++)}function Lyt(t,e,r){var o=t.result,a=t.keyPrefix;t=t.func.call(t.context,e,t.count++),Array.isArray(t)?ZH(t,o,r,function(n){return n}):t!=null&&(n6(t)&&(t=Ryt(t,a+(!t.key||e&&e.key===t.key?"":(""+t.key).replace(Wye,"$&/")+"/")+r)),o.push(t))}function ZH(t,e,r,o,a){var n="";r!=null&&(n=(""+r).replace(Wye,"$&/")+"/"),e=Kye(e,n,o,a),XH(t,Lyt,e),Vye(e)}var zye={current:null};function Kf(){var t=zye.current;if(t===null)throw Error(M2(321));return t}var Myt={ReactCurrentDispatcher:zye,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:r6,IsSomeRendererActing:{current:!1},assign:$H};Nn.Children={map:function(t,e,r){if(t==null)return t;var o=[];return ZH(t,o,null,e,r),o},forEach:function(t,e,r){if(t==null)return t;e=Kye(null,null,e,r),XH(t,Nyt,e),Vye(e)},count:function(t){return XH(t,function(){return null},null)},toArray:function(t){var e=[];return ZH(t,e,null,function(r){return r}),e},only:function(t){if(!n6(t))throw Error(M2(143));return t}};Nn.Component=zE;Nn.Fragment=vyt;Nn.Profiler=Pyt;Nn.PureComponent=e6;Nn.StrictMode=Dyt;Nn.Suspense=kyt;Nn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Myt;Nn.cloneElement=function(t,e,r){if(t==null)throw Error(M2(267,t));var o=$H({},t.props),a=t.key,n=t.ref,u=t._owner;if(e!=null){if(e.ref!==void 0&&(n=e.ref,u=r6.current),e.key!==void 0&&(a=""+e.key),t.type&&t.type.defaultProps)var A=t.type.defaultProps;for(p in e)jye.call(e,p)&&!Gye.hasOwnProperty(p)&&(o[p]=e[p]===void 0&&A!==void 0?A[p]:e[p])}var p=arguments.length-2;if(p===1)o.children=r;else if(1<p){A=Array(p);for(var h=0;h<p;h++)A[h]=arguments[h+2];o.children=A}return{$$typeof:L2,type:t.type,key:a,ref:n,props:o,_owner:u}};Nn.createContext=function(t,e){return e===void 0&&(e=null),t={$$typeof:byt,_calculateChangedBits:e,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null},t.Provider={$$typeof:Syt,_context:t},t.Consumer=t};Nn.createElement=Yye;Nn.createFactory=function(t){var e=Yye.bind(null,t);return e.type=t,e};Nn.createRef=function(){return{current:null}};Nn.forwardRef=function(t){return{$$typeof:xyt,render:t}};Nn.isValidElement=n6;Nn.lazy=function(t){return{$$typeof:Fyt,_ctor:t,_status:-1,_result:null}};Nn.memo=function(t,e){return{$$typeof:Qyt,type:t,compare:e===void 0?null:e}};Nn.useCallback=function(t,e){return Kf().useCallback(t,e)};Nn.useContext=function(t,e){return Kf().useContext(t,e)};Nn.useDebugValue=function(){};Nn.useEffect=function(t,e){return Kf().useEffect(t,e)};Nn.useImperativeHandle=function(t,e,r){return Kf().useImperativeHandle(t,e,r)};Nn.useLayoutEffect=function(t,e){return Kf().useLayoutEffect(t,e)};Nn.useMemo=function(t,e){return Kf().useMemo(t,e)};Nn.useReducer=function(t,e,r){return Kf().useReducer(t,e,r)};Nn.useRef=function(t){return Kf().useRef(t)};Nn.useState=function(t){return Kf().useState(t)};Nn.version="16.13.1"});var an=_((aKt,Xye)=>{"use strict";Xye.exports=Jye()});var s6=_((lKt,i6)=>{"use strict";var fn=i6.exports;i6.exports.default=fn;var Ln="\x1B[",O2="\x1B]",JE="\x07",yk=";",Zye=process.env.TERM_PROGRAM==="Apple_Terminal";fn.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?Ln+(t+1)+"G":Ln+(e+1)+";"+(t+1)+"H"};fn.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=Ln+-t+"D":t>0&&(r+=Ln+t+"C"),e<0?r+=Ln+-e+"A":e>0&&(r+=Ln+e+"B"),r};fn.cursorUp=(t=1)=>Ln+t+"A";fn.cursorDown=(t=1)=>Ln+t+"B";fn.cursorForward=(t=1)=>Ln+t+"C";fn.cursorBackward=(t=1)=>Ln+t+"D";fn.cursorLeft=Ln+"G";fn.cursorSavePosition=Zye?"\x1B7":Ln+"s";fn.cursorRestorePosition=Zye?"\x1B8":Ln+"u";fn.cursorGetPosition=Ln+"6n";fn.cursorNextLine=Ln+"E";fn.cursorPrevLine=Ln+"F";fn.cursorHide=Ln+"?25l";fn.cursorShow=Ln+"?25h";fn.eraseLines=t=>{let e="";for(let r=0;r<t;r++)e+=fn.eraseLine+(r<t-1?fn.cursorUp():"");return t&&(e+=fn.cursorLeft),e};fn.eraseEndLine=Ln+"K";fn.eraseStartLine=Ln+"1K";fn.eraseLine=Ln+"2K";fn.eraseDown=Ln+"J";fn.eraseUp=Ln+"1J";fn.eraseScreen=Ln+"2J";fn.scrollUp=Ln+"S";fn.scrollDown=Ln+"T";fn.clearScreen="\x1Bc";fn.clearTerminal=process.platform==="win32"?`${fn.eraseScreen}${Ln}0f`:`${fn.eraseScreen}${Ln}3J${Ln}H`;fn.beep=JE;fn.link=(t,e)=>[O2,"8",yk,yk,e,JE,t,O2,"8",yk,yk,JE].join("");fn.image=(t,e={})=>{let r=`${O2}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+JE};fn.iTerm={setCwd:(t=process.cwd())=>`${O2}50;CurrentDir=${t}${JE}`,annotation:(t,e={})=>{let r=`${O2}1337;`,o=typeof e.x<"u",a=typeof e.y<"u";if((o||a)&&!(o&&a&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(o?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+JE}}});var eEe=_((cKt,o6)=>{"use strict";var $ye=(t,e)=>{for(let r of Reflect.ownKeys(e))Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r));return t};o6.exports=$ye;o6.exports.default=$ye});var rEe=_((uKt,Ck)=>{"use strict";var Oyt=eEe(),Ek=new WeakMap,tEe=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let r,o=0,a=t.displayName||t.name||"<anonymous>",n=function(...u){if(Ek.set(n,++o),o===1)r=t.apply(this,u),t=null;else if(e.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return Oyt(n,t),Ek.set(n,o),n};Ck.exports=tEe;Ck.exports.default=tEe;Ck.exports.callCount=t=>{if(!Ek.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return Ek.get(t)}});var nEe=_((AKt,wk)=>{wk.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&wk.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&wk.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var c6=_((fKt,$E)=>{var yi=global.process,Kg=function(t){return t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function"};Kg(yi)?(iEe=ve("assert"),XE=nEe(),sEe=/^win/i.test(yi.platform),U2=ve("events"),typeof U2!="function"&&(U2=U2.EventEmitter),yi.__signal_exit_emitter__?Ls=yi.__signal_exit_emitter__:(Ls=yi.__signal_exit_emitter__=new U2,Ls.count=0,Ls.emitted={}),Ls.infinite||(Ls.setMaxListeners(1/0),Ls.infinite=!0),$E.exports=function(t,e){if(!Kg(global.process))return function(){};iEe.equal(typeof t,"function","a callback must be provided for exit handler"),ZE===!1&&a6();var r="exit";e&&e.alwaysLast&&(r="afterexit");var o=function(){Ls.removeListener(r,t),Ls.listeners("exit").length===0&&Ls.listeners("afterexit").length===0&&Ik()};return Ls.on(r,t),o},Ik=function(){!ZE||!Kg(global.process)||(ZE=!1,XE.forEach(function(e){try{yi.removeListener(e,Bk[e])}catch{}}),yi.emit=vk,yi.reallyExit=l6,Ls.count-=1)},$E.exports.unload=Ik,Vg=function(e,r,o){Ls.emitted[e]||(Ls.emitted[e]=!0,Ls.emit(e,r,o))},Bk={},XE.forEach(function(t){Bk[t]=function(){if(Kg(global.process)){var r=yi.listeners(t);r.length===Ls.count&&(Ik(),Vg("exit",null,t),Vg("afterexit",null,t),sEe&&t==="SIGHUP"&&(t="SIGINT"),yi.kill(yi.pid,t))}}}),$E.exports.signals=function(){return XE},ZE=!1,a6=function(){ZE||!Kg(global.process)||(ZE=!0,Ls.count+=1,XE=XE.filter(function(e){try{return yi.on(e,Bk[e]),!0}catch{return!1}}),yi.emit=aEe,yi.reallyExit=oEe)},$E.exports.load=a6,l6=yi.reallyExit,oEe=function(e){Kg(global.process)&&(yi.exitCode=e||0,Vg("exit",yi.exitCode,null),Vg("afterexit",yi.exitCode,null),l6.call(yi,yi.exitCode))},vk=yi.emit,aEe=function(e,r){if(e==="exit"&&Kg(global.process)){r!==void 0&&(yi.exitCode=r);var o=vk.apply(this,arguments);return Vg("exit",yi.exitCode,null),Vg("afterexit",yi.exitCode,null),o}else return vk.apply(this,arguments)}):$E.exports=function(){return function(){}};var iEe,XE,sEe,U2,Ls,Ik,Vg,Bk,ZE,a6,l6,oEe,vk,aEe});var cEe=_((pKt,lEe)=>{"use strict";var Uyt=rEe(),_yt=c6();lEe.exports=Uyt(()=>{_yt(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var u6=_(eC=>{"use strict";var Hyt=cEe(),Dk=!1;eC.show=(t=process.stderr)=>{t.isTTY&&(Dk=!1,t.write("\x1B[?25h"))};eC.hide=(t=process.stderr)=>{t.isTTY&&(Hyt(),Dk=!0,t.write("\x1B[?25l"))};eC.toggle=(t,e)=>{t!==void 0&&(Dk=t),Dk?eC.show(e):eC.hide(e)}});var pEe=_(_2=>{"use strict";var fEe=_2&&_2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(_2,"__esModule",{value:!0});var uEe=fEe(s6()),AEe=fEe(u6()),qyt=(t,{showCursor:e=!1}={})=>{let r=0,o="",a=!1,n=u=>{!e&&!a&&(AEe.default.hide(),a=!0);let A=u+` -`;A!==o&&(o=A,t.write(uEe.default.eraseLines(r)+A),r=A.split(` -`).length)};return n.clear=()=>{t.write(uEe.default.eraseLines(r)),o="",r=0},n.done=()=>{o="",r=0,e||(AEe.default.show(),a=!1)},n};_2.default={create:qyt}});var hEe=_((dKt,jyt)=>{jyt.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var mEe=_(dl=>{"use strict";var dEe=hEe(),pA=process.env;Object.defineProperty(dl,"_vendors",{value:dEe.map(function(t){return t.constant})});dl.name=null;dl.isPR=null;dEe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(o){return gEe(o)});if(dl[t.constant]=r,r)switch(dl.name=t.name,typeof t.pr){case"string":dl.isPR=!!pA[t.pr];break;case"object":"env"in t.pr?dl.isPR=t.pr.env in pA&&pA[t.pr.env]!==t.pr.ne:"any"in t.pr?dl.isPR=t.pr.any.some(function(o){return!!pA[o]}):dl.isPR=gEe(t.pr);break;default:dl.isPR=null}});dl.isCI=!!(pA.CI||pA.CONTINUOUS_INTEGRATION||pA.BUILD_NUMBER||pA.RUN_ID||dl.name);function gEe(t){return typeof t=="string"?!!pA[t]:Object.keys(t).every(function(e){return pA[e]===t[e]})}});var EEe=_((yKt,yEe)=>{"use strict";yEe.exports=mEe().isCI});var wEe=_((EKt,CEe)=>{"use strict";var Gyt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};CEe.exports=(t,{include:e,exclude:r}={})=>{let o=a=>{let n=u=>typeof u=="string"?a===u:u.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of Gyt(t.constructor.prototype)){if(n==="constructor"||!o(n))continue;let u=Reflect.getOwnPropertyDescriptor(a,n);u&&typeof u.value=="function"&&(t[n]=t[n].bind(t))}return t}});var bEe=_(kn=>{"use strict";Object.defineProperty(kn,"__esModule",{value:!0});var rC,j2,kk,Qk,m6;typeof window>"u"||typeof MessageChannel!="function"?(tC=null,A6=null,f6=function(){if(tC!==null)try{var t=kn.unstable_now();tC(!0,t),tC=null}catch(e){throw setTimeout(f6,0),e}},IEe=Date.now(),kn.unstable_now=function(){return Date.now()-IEe},rC=function(t){tC!==null?setTimeout(rC,0,t):(tC=t,setTimeout(f6,0))},j2=function(t,e){A6=setTimeout(t,e)},kk=function(){clearTimeout(A6)},Qk=function(){return!1},m6=kn.unstable_forceFrameRate=function(){}):(Pk=window.performance,p6=window.Date,BEe=window.setTimeout,vEe=window.clearTimeout,typeof console<"u"&&(DEe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof DEe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof Pk=="object"&&typeof Pk.now=="function"?kn.unstable_now=function(){return Pk.now()}:(PEe=p6.now(),kn.unstable_now=function(){return p6.now()-PEe}),H2=!1,q2=null,Sk=-1,h6=5,g6=0,Qk=function(){return kn.unstable_now()>=g6},m6=function(){},kn.unstable_forceFrameRate=function(t){0>t||125<t?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):h6=0<t?Math.floor(1e3/t):5},d6=new MessageChannel,bk=d6.port2,d6.port1.onmessage=function(){if(q2!==null){var t=kn.unstable_now();g6=t+h6;try{q2(!0,t)?bk.postMessage(null):(H2=!1,q2=null)}catch(e){throw bk.postMessage(null),e}}else H2=!1},rC=function(t){q2=t,H2||(H2=!0,bk.postMessage(null))},j2=function(t,e){Sk=BEe(function(){t(kn.unstable_now())},e)},kk=function(){vEe(Sk),Sk=-1});var tC,A6,f6,IEe,Pk,p6,BEe,vEe,DEe,PEe,H2,q2,Sk,h6,g6,d6,bk;function y6(t,e){var r=t.length;t.push(e);e:for(;;){var o=Math.floor((r-1)/2),a=t[o];if(a!==void 0&&0<xk(a,e))t[o]=e,t[r]=a,r=o;else break e}}function nc(t){return t=t[0],t===void 0?null:t}function Fk(t){var e=t[0];if(e!==void 0){var r=t.pop();if(r!==e){t[0]=r;e:for(var o=0,a=t.length;o<a;){var n=2*(o+1)-1,u=t[n],A=n+1,p=t[A];if(u!==void 0&&0>xk(u,r))p!==void 0&&0>xk(p,u)?(t[o]=p,t[A]=r,o=A):(t[o]=u,t[n]=r,o=n);else if(p!==void 0&&0>xk(p,r))t[o]=p,t[A]=r,o=A;else break e}}return e}return null}function xk(t,e){var r=t.sortIndex-e.sortIndex;return r!==0?r:t.id-e.id}var ru=[],Th=[],Yyt=1,sa=null,Lo=3,Rk=!1,zg=!1,G2=!1;function Tk(t){for(var e=nc(Th);e!==null;){if(e.callback===null)Fk(Th);else if(e.startTime<=t)Fk(Th),e.sortIndex=e.expirationTime,y6(ru,e);else break;e=nc(Th)}}function E6(t){if(G2=!1,Tk(t),!zg)if(nc(ru)!==null)zg=!0,rC(C6);else{var e=nc(Th);e!==null&&j2(E6,e.startTime-t)}}function C6(t,e){zg=!1,G2&&(G2=!1,kk()),Rk=!0;var r=Lo;try{for(Tk(e),sa=nc(ru);sa!==null&&(!(sa.expirationTime>e)||t&&!Qk());){var o=sa.callback;if(o!==null){sa.callback=null,Lo=sa.priorityLevel;var a=o(sa.expirationTime<=e);e=kn.unstable_now(),typeof a=="function"?sa.callback=a:sa===nc(ru)&&Fk(ru),Tk(e)}else Fk(ru);sa=nc(ru)}if(sa!==null)var n=!0;else{var u=nc(Th);u!==null&&j2(E6,u.startTime-e),n=!1}return n}finally{sa=null,Lo=r,Rk=!1}}function SEe(t){switch(t){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var Wyt=m6;kn.unstable_ImmediatePriority=1;kn.unstable_UserBlockingPriority=2;kn.unstable_NormalPriority=3;kn.unstable_IdlePriority=5;kn.unstable_LowPriority=4;kn.unstable_runWithPriority=function(t,e){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var r=Lo;Lo=t;try{return e()}finally{Lo=r}};kn.unstable_next=function(t){switch(Lo){case 1:case 2:case 3:var e=3;break;default:e=Lo}var r=Lo;Lo=e;try{return t()}finally{Lo=r}};kn.unstable_scheduleCallback=function(t,e,r){var o=kn.unstable_now();if(typeof r=="object"&&r!==null){var a=r.delay;a=typeof a=="number"&&0<a?o+a:o,r=typeof r.timeout=="number"?r.timeout:SEe(t)}else r=SEe(t),a=o;return r=a+r,t={id:Yyt++,callback:e,priorityLevel:t,startTime:a,expirationTime:r,sortIndex:-1},a>o?(t.sortIndex=a,y6(Th,t),nc(ru)===null&&t===nc(Th)&&(G2?kk():G2=!0,j2(E6,a-o))):(t.sortIndex=r,y6(ru,t),zg||Rk||(zg=!0,rC(C6))),t};kn.unstable_cancelCallback=function(t){t.callback=null};kn.unstable_wrapCallback=function(t){var e=Lo;return function(){var r=Lo;Lo=e;try{return t.apply(this,arguments)}finally{Lo=r}}};kn.unstable_getCurrentPriorityLevel=function(){return Lo};kn.unstable_shouldYield=function(){var t=kn.unstable_now();Tk(t);var e=nc(ru);return e!==sa&&sa!==null&&e!==null&&e.callback!==null&&e.startTime<=t&&e.expirationTime<sa.expirationTime||Qk()};kn.unstable_requestPaint=Wyt;kn.unstable_continueExecution=function(){zg||Rk||(zg=!0,rC(C6))};kn.unstable_pauseExecution=function(){};kn.unstable_getFirstCallbackNode=function(){return nc(ru)};kn.unstable_Profiling=null});var w6=_((wKt,xEe)=>{"use strict";xEe.exports=bEe()});var kEe=_((IKt,Y2)=>{Y2.exports=function t(e){"use strict";var r=VH(),o=an(),a=w6();function n(P){for(var D="https://reactjs.org/docs/error-decoder.html?invariant="+P,T=1;T<arguments.length;T++)D+="&args[]="+encodeURIComponent(arguments[T]);return"Minified React error #"+P+"; visit "+D+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var u=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;u.hasOwnProperty("ReactCurrentDispatcher")||(u.ReactCurrentDispatcher={current:null}),u.hasOwnProperty("ReactCurrentBatchConfig")||(u.ReactCurrentBatchConfig={suspense:null});var A=typeof Symbol=="function"&&Symbol.for,p=A?Symbol.for("react.element"):60103,h=A?Symbol.for("react.portal"):60106,E=A?Symbol.for("react.fragment"):60107,I=A?Symbol.for("react.strict_mode"):60108,v=A?Symbol.for("react.profiler"):60114,x=A?Symbol.for("react.provider"):60109,C=A?Symbol.for("react.context"):60110,R=A?Symbol.for("react.concurrent_mode"):60111,L=A?Symbol.for("react.forward_ref"):60112,U=A?Symbol.for("react.suspense"):60113,z=A?Symbol.for("react.suspense_list"):60120,te=A?Symbol.for("react.memo"):60115,ae=A?Symbol.for("react.lazy"):60116;A&&Symbol.for("react.fundamental"),A&&Symbol.for("react.responder"),A&&Symbol.for("react.scope");var le=typeof Symbol=="function"&&Symbol.iterator;function ce(P){return P===null||typeof P!="object"?null:(P=le&&P[le]||P["@@iterator"],typeof P=="function"?P:null)}function Ce(P){if(P._status===-1){P._status=0;var D=P._ctor;D=D(),P._result=D,D.then(function(T){P._status===0&&(T=T.default,P._status=1,P._result=T)},function(T){P._status===0&&(P._status=2,P._result=T)})}}function de(P){if(P==null)return null;if(typeof P=="function")return P.displayName||P.name||null;if(typeof P=="string")return P;switch(P){case E:return"Fragment";case h:return"Portal";case v:return"Profiler";case I:return"StrictMode";case U:return"Suspense";case z:return"SuspenseList"}if(typeof P=="object")switch(P.$$typeof){case C:return"Context.Consumer";case x:return"Context.Provider";case L:var D=P.render;return D=D.displayName||D.name||"",P.displayName||(D!==""?"ForwardRef("+D+")":"ForwardRef");case te:return de(P.type);case ae:if(P=P._status===1?P._result:null)return de(P)}return null}function Be(P){var D=P,T=P;if(P.alternate)for(;D.return;)D=D.return;else{P=D;do D=P,D.effectTag&1026&&(T=D.return),P=D.return;while(P)}return D.tag===3?T:null}function Ee(P){if(Be(P)!==P)throw Error(n(188))}function g(P){var D=P.alternate;if(!D){if(D=Be(P),D===null)throw Error(n(188));return D!==P?null:P}for(var T=P,q=D;;){var W=T.return;if(W===null)break;var fe=W.alternate;if(fe===null){if(q=W.return,q!==null){T=q;continue}break}if(W.child===fe.child){for(fe=W.child;fe;){if(fe===T)return Ee(W),P;if(fe===q)return Ee(W),D;fe=fe.sibling}throw Error(n(188))}if(T.return!==q.return)T=W,q=fe;else{for(var De=!1,vt=W.child;vt;){if(vt===T){De=!0,T=W,q=fe;break}if(vt===q){De=!0,q=W,T=fe;break}vt=vt.sibling}if(!De){for(vt=fe.child;vt;){if(vt===T){De=!0,T=fe,q=W;break}if(vt===q){De=!0,q=fe,T=W;break}vt=vt.sibling}if(!De)throw Error(n(189))}}if(T.alternate!==q)throw Error(n(190))}if(T.tag!==3)throw Error(n(188));return T.stateNode.current===T?P:D}function me(P){if(P=g(P),!P)return null;for(var D=P;;){if(D.tag===5||D.tag===6)return D;if(D.child)D.child.return=D,D=D.child;else{if(D===P)break;for(;!D.sibling;){if(!D.return||D.return===P)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}}return null}function we(P){if(P=g(P),!P)return null;for(var D=P;;){if(D.tag===5||D.tag===6)return D;if(D.child&&D.tag!==4)D.child.return=D,D=D.child;else{if(D===P)break;for(;!D.sibling;){if(!D.return||D.return===P)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}}return null}var Ae=e.getPublicInstance,ne=e.getRootHostContext,Z=e.getChildHostContext,xe=e.prepareForCommit,Ne=e.resetAfterCommit,ht=e.createInstance,H=e.appendInitialChild,rt=e.finalizeInitialChildren,Te=e.prepareUpdate,Fe=e.shouldSetTextContent,ke=e.shouldDeprioritizeSubtree,Ye=e.createTextInstance,Se=e.setTimeout,et=e.clearTimeout,Ue=e.noTimeout,b=e.isPrimaryRenderer,w=e.supportsMutation,S=e.supportsPersistence,y=e.supportsHydration,F=e.appendChild,J=e.appendChildToContainer,X=e.commitTextUpdate,$=e.commitMount,ie=e.commitUpdate,be=e.insertBefore,Re=e.insertInContainerBefore,at=e.removeChild,dt=e.removeChildFromContainer,jt=e.resetTextContent,tr=e.hideInstance,St=e.hideTextInstance,ln=e.unhideInstance,kr=e.unhideTextInstance,mr=e.cloneInstance,br=e.createContainerChildSet,Kr=e.appendChildToContainerChildSet,Kn=e.finalizeContainerChildren,Ms=e.replaceContainerChildren,Ri=e.cloneHiddenInstance,gs=e.cloneHiddenTextInstance,io=e.canHydrateInstance,Pi=e.canHydrateTextInstance,Os=e.isSuspenseInstancePending,so=e.isSuspenseInstanceFallback,uc=e.getNextHydratableSibling,Au=e.getFirstHydratableChild,sp=e.hydrateInstance,op=e.hydrateTextInstance,Us=e.getNextHydratableInstanceAfterSuspenseInstance,Dn=e.commitHydratedContainer,oo=e.commitHydratedSuspenseInstance,_s=/^(.*)[\\\/]/;function ml(P){var D="";do{e:switch(P.tag){case 3:case 4:case 6:case 7:case 10:case 9:var T="";break e;default:var q=P._debugOwner,W=P._debugSource,fe=de(P.type);T=null,q&&(T=de(q.type)),q=fe,fe="",W?fe=" (at "+W.fileName.replace(_s,"")+":"+W.lineNumber+")":T&&(fe=" (created by "+T+")"),T=` - in `+(q||"Unknown")+fe}D+=T,P=P.return}while(P);return D}var yl=[],ao=-1;function Vn(P){0>ao||(P.current=yl[ao],yl[ao]=null,ao--)}function Mn(P,D){ao++,yl[ao]=P.current,P.current=D}var Ti={},On={current:Ti},_i={current:!1},ir=Ti;function Me(P,D){var T=P.type.contextTypes;if(!T)return Ti;var q=P.stateNode;if(q&&q.__reactInternalMemoizedUnmaskedChildContext===D)return q.__reactInternalMemoizedMaskedChildContext;var W={},fe;for(fe in T)W[fe]=D[fe];return q&&(P=P.stateNode,P.__reactInternalMemoizedUnmaskedChildContext=D,P.__reactInternalMemoizedMaskedChildContext=W),W}function ii(P){return P=P.childContextTypes,P!=null}function Ha(P){Vn(_i,P),Vn(On,P)}function hr(P){Vn(_i,P),Vn(On,P)}function Ac(P,D,T){if(On.current!==Ti)throw Error(n(168));Mn(On,D,P),Mn(_i,T,P)}function fu(P,D,T){var q=P.stateNode;if(P=D.childContextTypes,typeof q.getChildContext!="function")return T;q=q.getChildContext();for(var W in q)if(!(W in P))throw Error(n(108,de(D)||"Unknown",W));return r({},T,{},q)}function fc(P){var D=P.stateNode;return D=D&&D.__reactInternalMemoizedMergedChildContext||Ti,ir=On.current,Mn(On,D,P),Mn(_i,_i.current,P),!0}function El(P,D,T){var q=P.stateNode;if(!q)throw Error(n(169));T?(D=fu(P,D,ir),q.__reactInternalMemoizedMergedChildContext=D,Vn(_i,P),Vn(On,P),Mn(On,D,P)):Vn(_i,P),Mn(_i,T,P)}var vA=a.unstable_runWithPriority,pu=a.unstable_scheduleCallback,Ie=a.unstable_cancelCallback,Tt=a.unstable_shouldYield,pc=a.unstable_requestPaint,Hi=a.unstable_now,hu=a.unstable_getCurrentPriorityLevel,Yt=a.unstable_ImmediatePriority,Cl=a.unstable_UserBlockingPriority,DA=a.unstable_NormalPriority,ap=a.unstable_LowPriority,hc=a.unstable_IdlePriority,PA={},Qn=pc!==void 0?pc:function(){},hi=null,gc=null,SA=!1,aa=Hi(),Ni=1e4>aa?Hi:function(){return Hi()-aa};function _o(){switch(hu()){case Yt:return 99;case Cl:return 98;case DA:return 97;case ap:return 96;case hc:return 95;default:throw Error(n(332))}}function Xe(P){switch(P){case 99:return Yt;case 98:return Cl;case 97:return DA;case 96:return ap;case 95:return hc;default:throw Error(n(332))}}function lo(P,D){return P=Xe(P),vA(P,D)}function dc(P,D,T){return P=Xe(P),pu(P,D,T)}function gu(P){return hi===null?(hi=[P],gc=pu(Yt,du)):hi.push(P),PA}function qi(){if(gc!==null){var P=gc;gc=null,Ie(P)}du()}function du(){if(!SA&&hi!==null){SA=!0;var P=0;try{var D=hi;lo(99,function(){for(;P<D.length;P++){var T=D[P];do T=T(!0);while(T!==null)}}),hi=null}catch(T){throw hi!==null&&(hi=hi.slice(P+1)),pu(Yt,qi),T}finally{SA=!1}}}var bA=3;function qa(P,D,T){return T/=10,1073741821-(((1073741821-P+D/10)/T|0)+1)*T}function mc(P,D){return P===D&&(P!==0||1/P===1/D)||P!==P&&D!==D}var ds=typeof Object.is=="function"?Object.is:mc,Ht=Object.prototype.hasOwnProperty;function Fn(P,D){if(ds(P,D))return!0;if(typeof P!="object"||P===null||typeof D!="object"||D===null)return!1;var T=Object.keys(P),q=Object.keys(D);if(T.length!==q.length)return!1;for(q=0;q<T.length;q++)if(!Ht.call(D,T[q])||!ds(P[T[q]],D[T[q]]))return!1;return!0}function Ei(P,D){if(P&&P.defaultProps){D=r({},D),P=P.defaultProps;for(var T in P)D[T]===void 0&&(D[T]=P[T])}return D}var la={current:null},co=null,Hs=null,ca=null;function ua(){ca=Hs=co=null}function Ho(P,D){var T=P.type._context;b?(Mn(la,T._currentValue,P),T._currentValue=D):(Mn(la,T._currentValue2,P),T._currentValue2=D)}function Ci(P){var D=la.current;Vn(la,P),P=P.type._context,b?P._currentValue=D:P._currentValue2=D}function ms(P,D){for(;P!==null;){var T=P.alternate;if(P.childExpirationTime<D)P.childExpirationTime=D,T!==null&&T.childExpirationTime<D&&(T.childExpirationTime=D);else if(T!==null&&T.childExpirationTime<D)T.childExpirationTime=D;else break;P=P.return}}function ys(P,D){co=P,ca=Hs=null,P=P.dependencies,P!==null&&P.firstContext!==null&&(P.expirationTime>=D&&(jo=!0),P.firstContext=null)}function Es(P,D){if(ca!==P&&D!==!1&&D!==0)if((typeof D!="number"||D===1073741823)&&(ca=P,D=1073741823),D={context:P,observedBits:D,next:null},Hs===null){if(co===null)throw Error(n(308));Hs=D,co.dependencies={expirationTime:0,firstContext:D,responders:null}}else Hs=Hs.next=D;return b?P._currentValue:P._currentValue2}var qs=!1;function Un(P){return{baseState:P,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Pn(P){return{baseState:P.baseState,firstUpdate:P.firstUpdate,lastUpdate:P.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Cs(P,D){return{expirationTime:P,suspenseConfig:D,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function We(P,D){P.lastUpdate===null?P.firstUpdate=P.lastUpdate=D:(P.lastUpdate.next=D,P.lastUpdate=D)}function tt(P,D){var T=P.alternate;if(T===null){var q=P.updateQueue,W=null;q===null&&(q=P.updateQueue=Un(P.memoizedState))}else q=P.updateQueue,W=T.updateQueue,q===null?W===null?(q=P.updateQueue=Un(P.memoizedState),W=T.updateQueue=Un(T.memoizedState)):q=P.updateQueue=Pn(W):W===null&&(W=T.updateQueue=Pn(q));W===null||q===W?We(q,D):q.lastUpdate===null||W.lastUpdate===null?(We(q,D),We(W,D)):(We(q,D),W.lastUpdate=D)}function Bt(P,D){var T=P.updateQueue;T=T===null?P.updateQueue=Un(P.memoizedState):or(P,T),T.lastCapturedUpdate===null?T.firstCapturedUpdate=T.lastCapturedUpdate=D:(T.lastCapturedUpdate.next=D,T.lastCapturedUpdate=D)}function or(P,D){var T=P.alternate;return T!==null&&D===T.updateQueue&&(D=P.updateQueue=Pn(D)),D}function ee(P,D,T,q,W,fe){switch(T.tag){case 1:return P=T.payload,typeof P=="function"?P.call(fe,q,W):P;case 3:P.effectTag=P.effectTag&-4097|64;case 0:if(P=T.payload,W=typeof P=="function"?P.call(fe,q,W):P,W==null)break;return r({},q,W);case 2:qs=!0}return q}function ye(P,D,T,q,W){qs=!1,D=or(P,D);for(var fe=D.baseState,De=null,vt=0,wt=D.firstUpdate,bt=fe;wt!==null;){var _r=wt.expirationTime;_r<W?(De===null&&(De=wt,fe=bt),vt<_r&&(vt=_r)):(uw(_r,wt.suspenseConfig),bt=ee(P,D,wt,bt,T,q),wt.callback!==null&&(P.effectTag|=32,wt.nextEffect=null,D.lastEffect===null?D.firstEffect=D.lastEffect=wt:(D.lastEffect.nextEffect=wt,D.lastEffect=wt))),wt=wt.next}for(_r=null,wt=D.firstCapturedUpdate;wt!==null;){var os=wt.expirationTime;os<W?(_r===null&&(_r=wt,De===null&&(fe=bt)),vt<os&&(vt=os)):(bt=ee(P,D,wt,bt,T,q),wt.callback!==null&&(P.effectTag|=32,wt.nextEffect=null,D.lastCapturedEffect===null?D.firstCapturedEffect=D.lastCapturedEffect=wt:(D.lastCapturedEffect.nextEffect=wt,D.lastCapturedEffect=wt))),wt=wt.next}De===null&&(D.lastUpdate=null),_r===null?D.lastCapturedUpdate=null:P.effectTag|=32,De===null&&_r===null&&(fe=bt),D.baseState=fe,D.firstUpdate=De,D.firstCapturedUpdate=_r,bd(vt),P.expirationTime=vt,P.memoizedState=bt}function Le(P,D,T){D.firstCapturedUpdate!==null&&(D.lastUpdate!==null&&(D.lastUpdate.next=D.firstCapturedUpdate,D.lastUpdate=D.lastCapturedUpdate),D.firstCapturedUpdate=D.lastCapturedUpdate=null),ft(D.firstEffect,T),D.firstEffect=D.lastEffect=null,ft(D.firstCapturedEffect,T),D.firstCapturedEffect=D.lastCapturedEffect=null}function ft(P,D){for(;P!==null;){var T=P.callback;if(T!==null){P.callback=null;var q=D;if(typeof T!="function")throw Error(n(191,T));T.call(q)}P=P.nextEffect}}var pt=u.ReactCurrentBatchConfig,Nt=new o.Component().refs;function rr(P,D,T,q){D=P.memoizedState,T=T(q,D),T=T==null?D:r({},D,T),P.memoizedState=T,q=P.updateQueue,q!==null&&P.expirationTime===0&&(q.baseState=T)}var $r={isMounted:function(P){return(P=P._reactInternalFiber)?Be(P)===P:!1},enqueueSetState:function(P,D,T){P=P._reactInternalFiber;var q=ma(),W=pt.suspense;q=HA(q,P,W),W=Cs(q,W),W.payload=D,T!=null&&(W.callback=T),tt(P,W),bc(P,q)},enqueueReplaceState:function(P,D,T){P=P._reactInternalFiber;var q=ma(),W=pt.suspense;q=HA(q,P,W),W=Cs(q,W),W.tag=1,W.payload=D,T!=null&&(W.callback=T),tt(P,W),bc(P,q)},enqueueForceUpdate:function(P,D){P=P._reactInternalFiber;var T=ma(),q=pt.suspense;T=HA(T,P,q),q=Cs(T,q),q.tag=2,D!=null&&(q.callback=D),tt(P,q),bc(P,T)}};function ji(P,D,T,q,W,fe,De){return P=P.stateNode,typeof P.shouldComponentUpdate=="function"?P.shouldComponentUpdate(q,fe,De):D.prototype&&D.prototype.isPureReactComponent?!Fn(T,q)||!Fn(W,fe):!0}function rs(P,D,T){var q=!1,W=Ti,fe=D.contextType;return typeof fe=="object"&&fe!==null?fe=Es(fe):(W=ii(D)?ir:On.current,q=D.contextTypes,fe=(q=q!=null)?Me(P,W):Ti),D=new D(T,fe),P.memoizedState=D.state!==null&&D.state!==void 0?D.state:null,D.updater=$r,P.stateNode=D,D._reactInternalFiber=P,q&&(P=P.stateNode,P.__reactInternalMemoizedUnmaskedChildContext=W,P.__reactInternalMemoizedMaskedChildContext=fe),D}function Si(P,D,T,q){P=D.state,typeof D.componentWillReceiveProps=="function"&&D.componentWillReceiveProps(T,q),typeof D.UNSAFE_componentWillReceiveProps=="function"&&D.UNSAFE_componentWillReceiveProps(T,q),D.state!==P&&$r.enqueueReplaceState(D,D.state,null)}function qo(P,D,T,q){var W=P.stateNode;W.props=T,W.state=P.memoizedState,W.refs=Nt;var fe=D.contextType;typeof fe=="object"&&fe!==null?W.context=Es(fe):(fe=ii(D)?ir:On.current,W.context=Me(P,fe)),fe=P.updateQueue,fe!==null&&(ye(P,fe,T,W,q),W.state=P.memoizedState),fe=D.getDerivedStateFromProps,typeof fe=="function"&&(rr(P,D,fe,T),W.state=P.memoizedState),typeof D.getDerivedStateFromProps=="function"||typeof W.getSnapshotBeforeUpdate=="function"||typeof W.UNSAFE_componentWillMount!="function"&&typeof W.componentWillMount!="function"||(D=W.state,typeof W.componentWillMount=="function"&&W.componentWillMount(),typeof W.UNSAFE_componentWillMount=="function"&&W.UNSAFE_componentWillMount(),D!==W.state&&$r.enqueueReplaceState(W,W.state,null),fe=P.updateQueue,fe!==null&&(ye(P,fe,T,W,q),W.state=P.memoizedState)),typeof W.componentDidMount=="function"&&(P.effectTag|=4)}var xA=Array.isArray;function kA(P,D,T){if(P=T.ref,P!==null&&typeof P!="function"&&typeof P!="object"){if(T._owner){if(T=T._owner,T){if(T.tag!==1)throw Error(n(309));var q=T.stateNode}if(!q)throw Error(n(147,P));var W=""+P;return D!==null&&D.ref!==null&&typeof D.ref=="function"&&D.ref._stringRef===W?D.ref:(D=function(fe){var De=q.refs;De===Nt&&(De=q.refs={}),fe===null?delete De[W]:De[W]=fe},D._stringRef=W,D)}if(typeof P!="string")throw Error(n(284));if(!T._owner)throw Error(n(290,P))}return P}function lp(P,D){if(P.type!=="textarea")throw Error(n(31,Object.prototype.toString.call(D)==="[object Object]"?"object with keys {"+Object.keys(D).join(", ")+"}":D,""))}function e0(P){function D(nt,Ve){if(P){var At=nt.lastEffect;At!==null?(At.nextEffect=Ve,nt.lastEffect=Ve):nt.firstEffect=nt.lastEffect=Ve,Ve.nextEffect=null,Ve.effectTag=8}}function T(nt,Ve){if(!P)return null;for(;Ve!==null;)D(nt,Ve),Ve=Ve.sibling;return null}function q(nt,Ve){for(nt=new Map;Ve!==null;)Ve.key!==null?nt.set(Ve.key,Ve):nt.set(Ve.index,Ve),Ve=Ve.sibling;return nt}function W(nt,Ve,At){return nt=YA(nt,Ve,At),nt.index=0,nt.sibling=null,nt}function fe(nt,Ve,At){return nt.index=At,P?(At=nt.alternate,At!==null?(At=At.index,At<Ve?(nt.effectTag=2,Ve):At):(nt.effectTag=2,Ve)):Ve}function De(nt){return P&&nt.alternate===null&&(nt.effectTag=2),nt}function vt(nt,Ve,At,Wt){return Ve===null||Ve.tag!==6?(Ve=gw(At,nt.mode,Wt),Ve.return=nt,Ve):(Ve=W(Ve,At,Wt),Ve.return=nt,Ve)}function wt(nt,Ve,At,Wt){return Ve!==null&&Ve.elementType===At.type?(Wt=W(Ve,At.props,Wt),Wt.ref=kA(nt,Ve,At),Wt.return=nt,Wt):(Wt=xd(At.type,At.key,At.props,null,nt.mode,Wt),Wt.ref=kA(nt,Ve,At),Wt.return=nt,Wt)}function bt(nt,Ve,At,Wt){return Ve===null||Ve.tag!==4||Ve.stateNode.containerInfo!==At.containerInfo||Ve.stateNode.implementation!==At.implementation?(Ve=dw(At,nt.mode,Wt),Ve.return=nt,Ve):(Ve=W(Ve,At.children||[],Wt),Ve.return=nt,Ve)}function _r(nt,Ve,At,Wt,vr){return Ve===null||Ve.tag!==7?(Ve=ku(At,nt.mode,Wt,vr),Ve.return=nt,Ve):(Ve=W(Ve,At,Wt),Ve.return=nt,Ve)}function os(nt,Ve,At){if(typeof Ve=="string"||typeof Ve=="number")return Ve=gw(""+Ve,nt.mode,At),Ve.return=nt,Ve;if(typeof Ve=="object"&&Ve!==null){switch(Ve.$$typeof){case p:return At=xd(Ve.type,Ve.key,Ve.props,null,nt.mode,At),At.ref=kA(nt,null,Ve),At.return=nt,At;case h:return Ve=dw(Ve,nt.mode,At),Ve.return=nt,Ve}if(xA(Ve)||ce(Ve))return Ve=ku(Ve,nt.mode,At,null),Ve.return=nt,Ve;lp(nt,Ve)}return null}function di(nt,Ve,At,Wt){var vr=Ve!==null?Ve.key:null;if(typeof At=="string"||typeof At=="number")return vr!==null?null:vt(nt,Ve,""+At,Wt);if(typeof At=="object"&&At!==null){switch(At.$$typeof){case p:return At.key===vr?At.type===E?_r(nt,Ve,At.props.children,Wt,vr):wt(nt,Ve,At,Wt):null;case h:return At.key===vr?bt(nt,Ve,At,Wt):null}if(xA(At)||ce(At))return vr!==null?null:_r(nt,Ve,At,Wt,null);lp(nt,At)}return null}function po(nt,Ve,At,Wt,vr){if(typeof Wt=="string"||typeof Wt=="number")return nt=nt.get(At)||null,vt(Ve,nt,""+Wt,vr);if(typeof Wt=="object"&&Wt!==null){switch(Wt.$$typeof){case p:return nt=nt.get(Wt.key===null?At:Wt.key)||null,Wt.type===E?_r(Ve,nt,Wt.props.children,vr,Wt.key):wt(Ve,nt,Wt,vr);case h:return nt=nt.get(Wt.key===null?At:Wt.key)||null,bt(Ve,nt,Wt,vr)}if(xA(Wt)||ce(Wt))return nt=nt.get(At)||null,_r(Ve,nt,Wt,vr,null);lp(Ve,Wt)}return null}function KA(nt,Ve,At,Wt){for(var vr=null,Sn=null,Qr=Ve,bn=Ve=0,ai=null;Qr!==null&&bn<At.length;bn++){Qr.index>bn?(ai=Qr,Qr=null):ai=Qr.sibling;var tn=di(nt,Qr,At[bn],Wt);if(tn===null){Qr===null&&(Qr=ai);break}P&&Qr&&tn.alternate===null&&D(nt,Qr),Ve=fe(tn,Ve,bn),Sn===null?vr=tn:Sn.sibling=tn,Sn=tn,Qr=ai}if(bn===At.length)return T(nt,Qr),vr;if(Qr===null){for(;bn<At.length;bn++)Qr=os(nt,At[bn],Wt),Qr!==null&&(Ve=fe(Qr,Ve,bn),Sn===null?vr=Qr:Sn.sibling=Qr,Sn=Qr);return vr}for(Qr=q(nt,Qr);bn<At.length;bn++)ai=po(Qr,nt,bn,At[bn],Wt),ai!==null&&(P&&ai.alternate!==null&&Qr.delete(ai.key===null?bn:ai.key),Ve=fe(ai,Ve,bn),Sn===null?vr=ai:Sn.sibling=ai,Sn=ai);return P&&Qr.forEach(function(ho){return D(nt,ho)}),vr}function Yo(nt,Ve,At,Wt){var vr=ce(At);if(typeof vr!="function")throw Error(n(150));if(At=vr.call(At),At==null)throw Error(n(151));for(var Sn=vr=null,Qr=Ve,bn=Ve=0,ai=null,tn=At.next();Qr!==null&&!tn.done;bn++,tn=At.next()){Qr.index>bn?(ai=Qr,Qr=null):ai=Qr.sibling;var ho=di(nt,Qr,tn.value,Wt);if(ho===null){Qr===null&&(Qr=ai);break}P&&Qr&&ho.alternate===null&&D(nt,Qr),Ve=fe(ho,Ve,bn),Sn===null?vr=ho:Sn.sibling=ho,Sn=ho,Qr=ai}if(tn.done)return T(nt,Qr),vr;if(Qr===null){for(;!tn.done;bn++,tn=At.next())tn=os(nt,tn.value,Wt),tn!==null&&(Ve=fe(tn,Ve,bn),Sn===null?vr=tn:Sn.sibling=tn,Sn=tn);return vr}for(Qr=q(nt,Qr);!tn.done;bn++,tn=At.next())tn=po(Qr,nt,bn,tn.value,Wt),tn!==null&&(P&&tn.alternate!==null&&Qr.delete(tn.key===null?bn:tn.key),Ve=fe(tn,Ve,bn),Sn===null?vr=tn:Sn.sibling=tn,Sn=tn);return P&&Qr.forEach(function(pF){return D(nt,pF)}),vr}return function(nt,Ve,At,Wt){var vr=typeof At=="object"&&At!==null&&At.type===E&&At.key===null;vr&&(At=At.props.children);var Sn=typeof At=="object"&&At!==null;if(Sn)switch(At.$$typeof){case p:e:{for(Sn=At.key,vr=Ve;vr!==null;){if(vr.key===Sn)if(vr.tag===7?At.type===E:vr.elementType===At.type){T(nt,vr.sibling),Ve=W(vr,At.type===E?At.props.children:At.props,Wt),Ve.ref=kA(nt,vr,At),Ve.return=nt,nt=Ve;break e}else{T(nt,vr);break}else D(nt,vr);vr=vr.sibling}At.type===E?(Ve=ku(At.props.children,nt.mode,Wt,At.key),Ve.return=nt,nt=Ve):(Wt=xd(At.type,At.key,At.props,null,nt.mode,Wt),Wt.ref=kA(nt,Ve,At),Wt.return=nt,nt=Wt)}return De(nt);case h:e:{for(vr=At.key;Ve!==null;){if(Ve.key===vr)if(Ve.tag===4&&Ve.stateNode.containerInfo===At.containerInfo&&Ve.stateNode.implementation===At.implementation){T(nt,Ve.sibling),Ve=W(Ve,At.children||[],Wt),Ve.return=nt,nt=Ve;break e}else{T(nt,Ve);break}else D(nt,Ve);Ve=Ve.sibling}Ve=dw(At,nt.mode,Wt),Ve.return=nt,nt=Ve}return De(nt)}if(typeof At=="string"||typeof At=="number")return At=""+At,Ve!==null&&Ve.tag===6?(T(nt,Ve.sibling),Ve=W(Ve,At,Wt),Ve.return=nt,nt=Ve):(T(nt,Ve),Ve=gw(At,nt.mode,Wt),Ve.return=nt,nt=Ve),De(nt);if(xA(At))return KA(nt,Ve,At,Wt);if(ce(At))return Yo(nt,Ve,At,Wt);if(Sn&&lp(nt,At),typeof At>"u"&&!vr)switch(nt.tag){case 1:case 0:throw nt=nt.type,Error(n(152,nt.displayName||nt.name||"Component"))}return T(nt,Ve)}}var mu=e0(!0),t0=e0(!1),yu={},uo={current:yu},QA={current:yu},yc={current:yu};function Aa(P){if(P===yu)throw Error(n(174));return P}function r0(P,D){Mn(yc,D,P),Mn(QA,P,P),Mn(uo,yu,P),D=ne(D),Vn(uo,P),Mn(uo,D,P)}function Ec(P){Vn(uo,P),Vn(QA,P),Vn(yc,P)}function hd(P){var D=Aa(yc.current),T=Aa(uo.current);D=Z(T,P.type,D),T!==D&&(Mn(QA,P,P),Mn(uo,D,P))}function n0(P){QA.current===P&&(Vn(uo,P),Vn(QA,P))}var $n={current:0};function cp(P){for(var D=P;D!==null;){if(D.tag===13){var T=D.memoizedState;if(T!==null&&(T=T.dehydrated,T===null||Os(T)||so(T)))return D}else if(D.tag===19&&D.memoizedProps.revealOrder!==void 0){if(D.effectTag&64)return D}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===P)break;for(;D.sibling===null;){if(D.return===null||D.return===P)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}return null}function i0(P,D){return{responder:P,props:D}}var FA=u.ReactCurrentDispatcher,js=u.ReactCurrentBatchConfig,Eu=0,ja=null,Gi=null,fa=null,Cu=null,ws=null,Cc=null,wc=0,Y=null,Dt=0,wl=!1,bi=null,Ic=0;function ct(){throw Error(n(321))}function wu(P,D){if(D===null)return!1;for(var T=0;T<D.length&&T<P.length;T++)if(!ds(P[T],D[T]))return!1;return!0}function s0(P,D,T,q,W,fe){if(Eu=fe,ja=D,fa=P!==null?P.memoizedState:null,FA.current=fa===null?rw:md,D=T(q,W),wl){do wl=!1,Ic+=1,fa=P!==null?P.memoizedState:null,Cc=Cu,Y=ws=Gi=null,FA.current=md,D=T(q,W);while(wl);bi=null,Ic=0}if(FA.current=Bu,P=ja,P.memoizedState=Cu,P.expirationTime=wc,P.updateQueue=Y,P.effectTag|=Dt,P=Gi!==null&&Gi.next!==null,Eu=0,Cc=ws=Cu=fa=Gi=ja=null,wc=0,Y=null,Dt=0,P)throw Error(n(300));return D}function tw(){FA.current=Bu,Eu=0,Cc=ws=Cu=fa=Gi=ja=null,wc=0,Y=null,Dt=0,wl=!1,bi=null,Ic=0}function RA(){var P={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return ws===null?Cu=ws=P:ws=ws.next=P,ws}function up(){if(Cc!==null)ws=Cc,Cc=ws.next,Gi=fa,fa=Gi!==null?Gi.next:null;else{if(fa===null)throw Error(n(310));Gi=fa;var P={memoizedState:Gi.memoizedState,baseState:Gi.baseState,queue:Gi.queue,baseUpdate:Gi.baseUpdate,next:null};ws=ws===null?Cu=P:ws.next=P,fa=Gi.next}return ws}function Br(P,D){return typeof D=="function"?D(P):D}function Is(P){var D=up(),T=D.queue;if(T===null)throw Error(n(311));if(T.lastRenderedReducer=P,0<Ic){var q=T.dispatch;if(bi!==null){var W=bi.get(T);if(W!==void 0){bi.delete(T);var fe=D.memoizedState;do fe=P(fe,W.action),W=W.next;while(W!==null);return ds(fe,D.memoizedState)||(jo=!0),D.memoizedState=fe,D.baseUpdate===T.last&&(D.baseState=fe),T.lastRenderedState=fe,[fe,q]}}return[D.memoizedState,q]}q=T.last;var De=D.baseUpdate;if(fe=D.baseState,De!==null?(q!==null&&(q.next=null),q=De.next):q=q!==null?q.next:null,q!==null){var vt=W=null,wt=q,bt=!1;do{var _r=wt.expirationTime;_r<Eu?(bt||(bt=!0,vt=De,W=fe),_r>wc&&(wc=_r,bd(wc))):(uw(_r,wt.suspenseConfig),fe=wt.eagerReducer===P?wt.eagerState:P(fe,wt.action)),De=wt,wt=wt.next}while(wt!==null&&wt!==q);bt||(vt=De,W=fe),ds(fe,D.memoizedState)||(jo=!0),D.memoizedState=fe,D.baseUpdate=vt,D.baseState=W,T.lastRenderedState=fe}return[D.memoizedState,T.dispatch]}function o0(P){var D=RA();return typeof P=="function"&&(P=P()),D.memoizedState=D.baseState=P,P=D.queue={last:null,dispatch:null,lastRenderedReducer:Br,lastRenderedState:P},P=P.dispatch=A0.bind(null,ja,P),[D.memoizedState,P]}function a0(P){return Is(Br,P)}function l0(P,D,T,q){return P={tag:P,create:D,destroy:T,deps:q,next:null},Y===null?(Y={lastEffect:null},Y.lastEffect=P.next=P):(D=Y.lastEffect,D===null?Y.lastEffect=P.next=P:(T=D.next,D.next=P,P.next=T,Y.lastEffect=P)),P}function Ap(P,D,T,q){var W=RA();Dt|=P,W.memoizedState=l0(D,T,void 0,q===void 0?null:q)}function Bc(P,D,T,q){var W=up();q=q===void 0?null:q;var fe=void 0;if(Gi!==null){var De=Gi.memoizedState;if(fe=De.destroy,q!==null&&wu(q,De.deps)){l0(0,T,fe,q);return}}Dt|=P,W.memoizedState=l0(D,T,fe,q)}function Ct(P,D){return Ap(516,192,P,D)}function gd(P,D){return Bc(516,192,P,D)}function c0(P,D){if(typeof D=="function")return P=P(),D(P),function(){D(null)};if(D!=null)return P=P(),D.current=P,function(){D.current=null}}function u0(){}function Iu(P,D){return RA().memoizedState=[P,D===void 0?null:D],P}function dd(P,D){var T=up();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&wu(D,q[1])?q[0]:(T.memoizedState=[P,D],P)}function A0(P,D,T){if(!(25>Ic))throw Error(n(301));var q=P.alternate;if(P===ja||q!==null&&q===ja)if(wl=!0,P={expirationTime:Eu,suspenseConfig:null,action:T,eagerReducer:null,eagerState:null,next:null},bi===null&&(bi=new Map),T=bi.get(D),T===void 0)bi.set(D,P);else{for(D=T;D.next!==null;)D=D.next;D.next=P}else{var W=ma(),fe=pt.suspense;W=HA(W,P,fe),fe={expirationTime:W,suspenseConfig:fe,action:T,eagerReducer:null,eagerState:null,next:null};var De=D.last;if(De===null)fe.next=fe;else{var vt=De.next;vt!==null&&(fe.next=vt),De.next=fe}if(D.last=fe,P.expirationTime===0&&(q===null||q.expirationTime===0)&&(q=D.lastRenderedReducer,q!==null))try{var wt=D.lastRenderedState,bt=q(wt,T);if(fe.eagerReducer=q,fe.eagerState=bt,ds(bt,wt))return}catch{}finally{}bc(P,W)}}var Bu={readContext:Es,useCallback:ct,useContext:ct,useEffect:ct,useImperativeHandle:ct,useLayoutEffect:ct,useMemo:ct,useReducer:ct,useRef:ct,useState:ct,useDebugValue:ct,useResponder:ct,useDeferredValue:ct,useTransition:ct},rw={readContext:Es,useCallback:Iu,useContext:Es,useEffect:Ct,useImperativeHandle:function(P,D,T){return T=T!=null?T.concat([P]):null,Ap(4,36,c0.bind(null,D,P),T)},useLayoutEffect:function(P,D){return Ap(4,36,P,D)},useMemo:function(P,D){var T=RA();return D=D===void 0?null:D,P=P(),T.memoizedState=[P,D],P},useReducer:function(P,D,T){var q=RA();return D=T!==void 0?T(D):D,q.memoizedState=q.baseState=D,P=q.queue={last:null,dispatch:null,lastRenderedReducer:P,lastRenderedState:D},P=P.dispatch=A0.bind(null,ja,P),[q.memoizedState,P]},useRef:function(P){var D=RA();return P={current:P},D.memoizedState=P},useState:o0,useDebugValue:u0,useResponder:i0,useDeferredValue:function(P,D){var T=o0(P),q=T[0],W=T[1];return Ct(function(){a.unstable_next(function(){var fe=js.suspense;js.suspense=D===void 0?null:D;try{W(P)}finally{js.suspense=fe}})},[P,D]),q},useTransition:function(P){var D=o0(!1),T=D[0],q=D[1];return[Iu(function(W){q(!0),a.unstable_next(function(){var fe=js.suspense;js.suspense=P===void 0?null:P;try{q(!1),W()}finally{js.suspense=fe}})},[P,T]),T]}},md={readContext:Es,useCallback:dd,useContext:Es,useEffect:gd,useImperativeHandle:function(P,D,T){return T=T!=null?T.concat([P]):null,Bc(4,36,c0.bind(null,D,P),T)},useLayoutEffect:function(P,D){return Bc(4,36,P,D)},useMemo:function(P,D){var T=up();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&wu(D,q[1])?q[0]:(P=P(),T.memoizedState=[P,D],P)},useReducer:Is,useRef:function(){return up().memoizedState},useState:a0,useDebugValue:u0,useResponder:i0,useDeferredValue:function(P,D){var T=a0(P),q=T[0],W=T[1];return gd(function(){a.unstable_next(function(){var fe=js.suspense;js.suspense=D===void 0?null:D;try{W(P)}finally{js.suspense=fe}})},[P,D]),q},useTransition:function(P){var D=a0(!1),T=D[0],q=D[1];return[dd(function(W){q(!0),a.unstable_next(function(){var fe=js.suspense;js.suspense=P===void 0?null:P;try{q(!1),W()}finally{js.suspense=fe}})},[P,T]),T]}},pa=null,vc=null,Il=!1;function vu(P,D){var T=Dl(5,null,null,0);T.elementType="DELETED",T.type="DELETED",T.stateNode=D,T.return=P,T.effectTag=8,P.lastEffect!==null?(P.lastEffect.nextEffect=T,P.lastEffect=T):P.firstEffect=P.lastEffect=T}function f0(P,D){switch(P.tag){case 5:return D=io(D,P.type,P.pendingProps),D!==null?(P.stateNode=D,!0):!1;case 6:return D=Pi(D,P.pendingProps),D!==null?(P.stateNode=D,!0):!1;case 13:return!1;default:return!1}}function TA(P){if(Il){var D=vc;if(D){var T=D;if(!f0(P,D)){if(D=uc(T),!D||!f0(P,D)){P.effectTag=P.effectTag&-1025|2,Il=!1,pa=P;return}vu(pa,T)}pa=P,vc=Au(D)}else P.effectTag=P.effectTag&-1025|2,Il=!1,pa=P}}function fp(P){for(P=P.return;P!==null&&P.tag!==5&&P.tag!==3&&P.tag!==13;)P=P.return;pa=P}function Ga(P){if(!y||P!==pa)return!1;if(!Il)return fp(P),Il=!0,!1;var D=P.type;if(P.tag!==5||D!=="head"&&D!=="body"&&!Fe(D,P.memoizedProps))for(D=vc;D;)vu(P,D),D=uc(D);if(fp(P),P.tag===13){if(!y)throw Error(n(316));if(P=P.memoizedState,P=P!==null?P.dehydrated:null,!P)throw Error(n(317));vc=Us(P)}else vc=pa?uc(P.stateNode):null;return!0}function p0(){y&&(vc=pa=null,Il=!1)}var pp=u.ReactCurrentOwner,jo=!1;function Bs(P,D,T,q){D.child=P===null?t0(D,null,T,q):mu(D,P.child,T,q)}function wi(P,D,T,q,W){T=T.render;var fe=D.ref;return ys(D,W),q=s0(P,D,T,q,fe,W),P!==null&&!jo?(D.updateQueue=P.updateQueue,D.effectTag&=-517,P.expirationTime<=W&&(P.expirationTime=0),si(P,D,W)):(D.effectTag|=1,Bs(P,D,q,W),D.child)}function yd(P,D,T,q,W,fe){if(P===null){var De=T.type;return typeof De=="function"&&!hw(De)&&De.defaultProps===void 0&&T.compare===null&&T.defaultProps===void 0?(D.tag=15,D.type=De,Ed(P,D,De,q,W,fe)):(P=xd(T.type,null,q,null,D.mode,fe),P.ref=D.ref,P.return=D,D.child=P)}return De=P.child,W<fe&&(W=De.memoizedProps,T=T.compare,T=T!==null?T:Fn,T(W,q)&&P.ref===D.ref)?si(P,D,fe):(D.effectTag|=1,P=YA(De,q,fe),P.ref=D.ref,P.return=D,D.child=P)}function Ed(P,D,T,q,W,fe){return P!==null&&Fn(P.memoizedProps,q)&&P.ref===D.ref&&(jo=!1,W<fe)?si(P,D,fe):NA(P,D,T,q,fe)}function Go(P,D){var T=D.ref;(P===null&&T!==null||P!==null&&P.ref!==T)&&(D.effectTag|=128)}function NA(P,D,T,q,W){var fe=ii(T)?ir:On.current;return fe=Me(D,fe),ys(D,W),T=s0(P,D,T,q,fe,W),P!==null&&!jo?(D.updateQueue=P.updateQueue,D.effectTag&=-517,P.expirationTime<=W&&(P.expirationTime=0),si(P,D,W)):(D.effectTag|=1,Bs(P,D,T,W),D.child)}function hp(P,D,T,q,W){if(ii(T)){var fe=!0;fc(D)}else fe=!1;if(ys(D,W),D.stateNode===null)P!==null&&(P.alternate=null,D.alternate=null,D.effectTag|=2),rs(D,T,q,W),qo(D,T,q,W),q=!0;else if(P===null){var De=D.stateNode,vt=D.memoizedProps;De.props=vt;var wt=De.context,bt=T.contextType;typeof bt=="object"&&bt!==null?bt=Es(bt):(bt=ii(T)?ir:On.current,bt=Me(D,bt));var _r=T.getDerivedStateFromProps,os=typeof _r=="function"||typeof De.getSnapshotBeforeUpdate=="function";os||typeof De.UNSAFE_componentWillReceiveProps!="function"&&typeof De.componentWillReceiveProps!="function"||(vt!==q||wt!==bt)&&Si(D,De,q,bt),qs=!1;var di=D.memoizedState;wt=De.state=di;var po=D.updateQueue;po!==null&&(ye(D,po,q,De,W),wt=D.memoizedState),vt!==q||di!==wt||_i.current||qs?(typeof _r=="function"&&(rr(D,T,_r,q),wt=D.memoizedState),(vt=qs||ji(D,T,vt,q,di,wt,bt))?(os||typeof De.UNSAFE_componentWillMount!="function"&&typeof De.componentWillMount!="function"||(typeof De.componentWillMount=="function"&&De.componentWillMount(),typeof De.UNSAFE_componentWillMount=="function"&&De.UNSAFE_componentWillMount()),typeof De.componentDidMount=="function"&&(D.effectTag|=4)):(typeof De.componentDidMount=="function"&&(D.effectTag|=4),D.memoizedProps=q,D.memoizedState=wt),De.props=q,De.state=wt,De.context=bt,q=vt):(typeof De.componentDidMount=="function"&&(D.effectTag|=4),q=!1)}else De=D.stateNode,vt=D.memoizedProps,De.props=D.type===D.elementType?vt:Ei(D.type,vt),wt=De.context,bt=T.contextType,typeof bt=="object"&&bt!==null?bt=Es(bt):(bt=ii(T)?ir:On.current,bt=Me(D,bt)),_r=T.getDerivedStateFromProps,(os=typeof _r=="function"||typeof De.getSnapshotBeforeUpdate=="function")||typeof De.UNSAFE_componentWillReceiveProps!="function"&&typeof De.componentWillReceiveProps!="function"||(vt!==q||wt!==bt)&&Si(D,De,q,bt),qs=!1,wt=D.memoizedState,di=De.state=wt,po=D.updateQueue,po!==null&&(ye(D,po,q,De,W),di=D.memoizedState),vt!==q||wt!==di||_i.current||qs?(typeof _r=="function"&&(rr(D,T,_r,q),di=D.memoizedState),(_r=qs||ji(D,T,vt,q,wt,di,bt))?(os||typeof De.UNSAFE_componentWillUpdate!="function"&&typeof De.componentWillUpdate!="function"||(typeof De.componentWillUpdate=="function"&&De.componentWillUpdate(q,di,bt),typeof De.UNSAFE_componentWillUpdate=="function"&&De.UNSAFE_componentWillUpdate(q,di,bt)),typeof De.componentDidUpdate=="function"&&(D.effectTag|=4),typeof De.getSnapshotBeforeUpdate=="function"&&(D.effectTag|=256)):(typeof De.componentDidUpdate!="function"||vt===P.memoizedProps&&wt===P.memoizedState||(D.effectTag|=4),typeof De.getSnapshotBeforeUpdate!="function"||vt===P.memoizedProps&&wt===P.memoizedState||(D.effectTag|=256),D.memoizedProps=q,D.memoizedState=di),De.props=q,De.state=di,De.context=bt,q=_r):(typeof De.componentDidUpdate!="function"||vt===P.memoizedProps&&wt===P.memoizedState||(D.effectTag|=4),typeof De.getSnapshotBeforeUpdate!="function"||vt===P.memoizedProps&&wt===P.memoizedState||(D.effectTag|=256),q=!1);return gp(P,D,T,q,fe,W)}function gp(P,D,T,q,W,fe){Go(P,D);var De=(D.effectTag&64)!==0;if(!q&&!De)return W&&El(D,T,!1),si(P,D,fe);q=D.stateNode,pp.current=D;var vt=De&&typeof T.getDerivedStateFromError!="function"?null:q.render();return D.effectTag|=1,P!==null&&De?(D.child=mu(D,P.child,null,fe),D.child=mu(D,null,vt,fe)):Bs(P,D,vt,fe),D.memoizedState=q.state,W&&El(D,T,!0),D.child}function h0(P){var D=P.stateNode;D.pendingContext?Ac(P,D.pendingContext,D.pendingContext!==D.context):D.context&&Ac(P,D.context,!1),r0(P,D.containerInfo)}var ha={dehydrated:null,retryTime:0};function cn(P,D,T){var q=D.mode,W=D.pendingProps,fe=$n.current,De=!1,vt;if((vt=(D.effectTag&64)!==0)||(vt=(fe&2)!==0&&(P===null||P.memoizedState!==null)),vt?(De=!0,D.effectTag&=-65):P!==null&&P.memoizedState===null||W.fallback===void 0||W.unstable_avoidThisFallback===!0||(fe|=1),Mn($n,fe&1,D),P===null){if(W.fallback!==void 0&&TA(D),De){if(De=W.fallback,W=ku(null,q,0,null),W.return=D,!(D.mode&2))for(P=D.memoizedState!==null?D.child.child:D.child,W.child=P;P!==null;)P.return=W,P=P.sibling;return T=ku(De,q,T,null),T.return=D,W.sibling=T,D.memoizedState=ha,D.child=W,T}return q=W.children,D.memoizedState=null,D.child=t0(D,null,q,T)}if(P.memoizedState!==null){if(P=P.child,q=P.sibling,De){if(W=W.fallback,T=YA(P,P.pendingProps,0),T.return=D,!(D.mode&2)&&(De=D.memoizedState!==null?D.child.child:D.child,De!==P.child))for(T.child=De;De!==null;)De.return=T,De=De.sibling;return q=YA(q,W,q.expirationTime),q.return=D,T.sibling=q,T.childExpirationTime=0,D.memoizedState=ha,D.child=T,q}return T=mu(D,P.child,W.children,T),D.memoizedState=null,D.child=T}if(P=P.child,De){if(De=W.fallback,W=ku(null,q,0,null),W.return=D,W.child=P,P!==null&&(P.return=W),!(D.mode&2))for(P=D.memoizedState!==null?D.child.child:D.child,W.child=P;P!==null;)P.return=W,P=P.sibling;return T=ku(De,q,T,null),T.return=D,W.sibling=T,T.effectTag|=2,W.childExpirationTime=0,D.memoizedState=ha,D.child=W,T}return D.memoizedState=null,D.child=mu(D,P,W.children,T)}function Ao(P,D){P.expirationTime<D&&(P.expirationTime=D);var T=P.alternate;T!==null&&T.expirationTime<D&&(T.expirationTime=D),ms(P.return,D)}function LA(P,D,T,q,W,fe){var De=P.memoizedState;De===null?P.memoizedState={isBackwards:D,rendering:null,last:q,tail:T,tailExpiration:0,tailMode:W,lastEffect:fe}:(De.isBackwards=D,De.rendering=null,De.last=q,De.tail=T,De.tailExpiration=0,De.tailMode=W,De.lastEffect=fe)}function Ya(P,D,T){var q=D.pendingProps,W=q.revealOrder,fe=q.tail;if(Bs(P,D,q.children,T),q=$n.current,q&2)q=q&1|2,D.effectTag|=64;else{if(P!==null&&P.effectTag&64)e:for(P=D.child;P!==null;){if(P.tag===13)P.memoizedState!==null&&Ao(P,T);else if(P.tag===19)Ao(P,T);else if(P.child!==null){P.child.return=P,P=P.child;continue}if(P===D)break e;for(;P.sibling===null;){if(P.return===null||P.return===D)break e;P=P.return}P.sibling.return=P.return,P=P.sibling}q&=1}if(Mn($n,q,D),!(D.mode&2))D.memoizedState=null;else switch(W){case"forwards":for(T=D.child,W=null;T!==null;)P=T.alternate,P!==null&&cp(P)===null&&(W=T),T=T.sibling;T=W,T===null?(W=D.child,D.child=null):(W=T.sibling,T.sibling=null),LA(D,!1,W,T,fe,D.lastEffect);break;case"backwards":for(T=null,W=D.child,D.child=null;W!==null;){if(P=W.alternate,P!==null&&cp(P)===null){D.child=W;break}P=W.sibling,W.sibling=T,T=W,W=P}LA(D,!0,T,null,fe,D.lastEffect);break;case"together":LA(D,!1,null,null,void 0,D.lastEffect);break;default:D.memoizedState=null}return D.child}function si(P,D,T){P!==null&&(D.dependencies=P.dependencies);var q=D.expirationTime;if(q!==0&&bd(q),D.childExpirationTime<T)return null;if(P!==null&&D.child!==P.child)throw Error(n(153));if(D.child!==null){for(P=D.child,T=YA(P,P.pendingProps,P.expirationTime),D.child=T,T.return=D;P.sibling!==null;)P=P.sibling,T=T.sibling=YA(P,P.pendingProps,P.expirationTime),T.return=D;T.sibling=null}return D.child}function ga(P){P.effectTag|=4}var Dc,Bl,ns,Yr;if(w)Dc=function(P,D){for(var T=D.child;T!==null;){if(T.tag===5||T.tag===6)H(P,T.stateNode);else if(T.tag!==4&&T.child!==null){T.child.return=T,T=T.child;continue}if(T===D)break;for(;T.sibling===null;){if(T.return===null||T.return===D)return;T=T.return}T.sibling.return=T.return,T=T.sibling}},Bl=function(){},ns=function(P,D,T,q,W){if(P=P.memoizedProps,P!==q){var fe=D.stateNode,De=Aa(uo.current);T=Te(fe,T,P,q,W,De),(D.updateQueue=T)&&ga(D)}},Yr=function(P,D,T,q){T!==q&&ga(D)};else if(S){Dc=function(P,D,T,q){for(var W=D.child;W!==null;){if(W.tag===5){var fe=W.stateNode;T&&q&&(fe=Ri(fe,W.type,W.memoizedProps,W)),H(P,fe)}else if(W.tag===6)fe=W.stateNode,T&&q&&(fe=gs(fe,W.memoizedProps,W)),H(P,fe);else if(W.tag!==4){if(W.tag===13&&W.effectTag&4&&(fe=W.memoizedState!==null)){var De=W.child;if(De!==null&&(De.child!==null&&(De.child.return=De,Dc(P,De,!0,fe)),fe=De.sibling,fe!==null)){fe.return=W,W=fe;continue}}if(W.child!==null){W.child.return=W,W=W.child;continue}}if(W===D)break;for(;W.sibling===null;){if(W.return===null||W.return===D)return;W=W.return}W.sibling.return=W.return,W=W.sibling}};var dp=function(P,D,T,q){for(var W=D.child;W!==null;){if(W.tag===5){var fe=W.stateNode;T&&q&&(fe=Ri(fe,W.type,W.memoizedProps,W)),Kr(P,fe)}else if(W.tag===6)fe=W.stateNode,T&&q&&(fe=gs(fe,W.memoizedProps,W)),Kr(P,fe);else if(W.tag!==4){if(W.tag===13&&W.effectTag&4&&(fe=W.memoizedState!==null)){var De=W.child;if(De!==null&&(De.child!==null&&(De.child.return=De,dp(P,De,!0,fe)),fe=De.sibling,fe!==null)){fe.return=W,W=fe;continue}}if(W.child!==null){W.child.return=W,W=W.child;continue}}if(W===D)break;for(;W.sibling===null;){if(W.return===null||W.return===D)return;W=W.return}W.sibling.return=W.return,W=W.sibling}};Bl=function(P){var D=P.stateNode;if(P.firstEffect!==null){var T=D.containerInfo,q=br(T);dp(q,P,!1,!1),D.pendingChildren=q,ga(P),Kn(T,q)}},ns=function(P,D,T,q,W){var fe=P.stateNode,De=P.memoizedProps;if((P=D.firstEffect===null)&&De===q)D.stateNode=fe;else{var vt=D.stateNode,wt=Aa(uo.current),bt=null;De!==q&&(bt=Te(vt,T,De,q,W,wt)),P&&bt===null?D.stateNode=fe:(fe=mr(fe,bt,T,De,q,D,P,vt),rt(fe,T,q,W,wt)&&ga(D),D.stateNode=fe,P?ga(D):Dc(fe,D,!1,!1))}},Yr=function(P,D,T,q){T!==q&&(P=Aa(yc.current),T=Aa(uo.current),D.stateNode=Ye(q,P,T,D),ga(D))}}else Bl=function(){},ns=function(){},Yr=function(){};function Pc(P,D){switch(P.tailMode){case"hidden":D=P.tail;for(var T=null;D!==null;)D.alternate!==null&&(T=D),D=D.sibling;T===null?P.tail=null:T.sibling=null;break;case"collapsed":T=P.tail;for(var q=null;T!==null;)T.alternate!==null&&(q=T),T=T.sibling;q===null?D||P.tail===null?P.tail=null:P.tail.sibling=null:q.sibling=null}}function nw(P){switch(P.tag){case 1:ii(P.type)&&Ha(P);var D=P.effectTag;return D&4096?(P.effectTag=D&-4097|64,P):null;case 3:if(Ec(P),hr(P),D=P.effectTag,D&64)throw Error(n(285));return P.effectTag=D&-4097|64,P;case 5:return n0(P),null;case 13:return Vn($n,P),D=P.effectTag,D&4096?(P.effectTag=D&-4097|64,P):null;case 19:return Vn($n,P),null;case 4:return Ec(P),null;case 10:return Ci(P),null;default:return null}}function g0(P,D){return{value:P,source:D,stack:ml(D)}}var d0=typeof WeakSet=="function"?WeakSet:Set;function Wa(P,D){var T=D.source,q=D.stack;q===null&&T!==null&&(q=ml(T)),T!==null&&de(T.type),D=D.value,P!==null&&P.tag===1&&de(P.type);try{console.error(D)}catch(W){setTimeout(function(){throw W})}}function Cd(P,D){try{D.props=P.memoizedProps,D.state=P.memoizedState,D.componentWillUnmount()}catch(T){GA(P,T)}}function m0(P){var D=P.ref;if(D!==null)if(typeof D=="function")try{D(null)}catch(T){GA(P,T)}else D.current=null}function Qt(P,D){switch(D.tag){case 0:case 11:case 15:N(2,0,D);break;case 1:if(D.effectTag&256&&P!==null){var T=P.memoizedProps,q=P.memoizedState;P=D.stateNode,D=P.getSnapshotBeforeUpdate(D.elementType===D.type?T:Ei(D.type,T),q),P.__reactInternalSnapshotBeforeUpdate=D}break;case 3:case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}function N(P,D,T){if(T=T.updateQueue,T=T!==null?T.lastEffect:null,T!==null){var q=T=T.next;do{if(q.tag&P){var W=q.destroy;q.destroy=void 0,W!==void 0&&W()}q.tag&D&&(W=q.create,q.destroy=W()),q=q.next}while(q!==T)}}function V(P,D,T){switch(typeof pw=="function"&&pw(D),D.tag){case 0:case 11:case 14:case 15:if(P=D.updateQueue,P!==null&&(P=P.lastEffect,P!==null)){var q=P.next;lo(97<T?97:T,function(){var W=q;do{var fe=W.destroy;if(fe!==void 0){var De=D;try{fe()}catch(vt){GA(De,vt)}}W=W.next}while(W!==q)})}break;case 1:m0(D),T=D.stateNode,typeof T.componentWillUnmount=="function"&&Cd(D,T);break;case 5:m0(D);break;case 4:w?Cr(P,D,T):S&&ze(D)}}function re(P,D,T){for(var q=D;;)if(V(P,q,T),q.child===null||w&&q.tag===4){if(q===D)break;for(;q.sibling===null;){if(q.return===null||q.return===D)return;q=q.return}q.sibling.return=q.return,q=q.sibling}else q.child.return=q,q=q.child}function he(P){var D=P.alternate;P.return=null,P.child=null,P.memoizedState=null,P.updateQueue=null,P.dependencies=null,P.alternate=null,P.firstEffect=null,P.lastEffect=null,P.pendingProps=null,P.memoizedProps=null,D!==null&&he(D)}function ze(P){if(S){P=P.stateNode.containerInfo;var D=br(P);Ms(P,D)}}function mt(P){return P.tag===5||P.tag===3||P.tag===4}function fr(P){if(w){e:{for(var D=P.return;D!==null;){if(mt(D)){var T=D;break e}D=D.return}throw Error(n(160))}switch(D=T.stateNode,T.tag){case 5:var q=!1;break;case 3:D=D.containerInfo,q=!0;break;case 4:D=D.containerInfo,q=!0;break;default:throw Error(n(161))}T.effectTag&16&&(jt(D),T.effectTag&=-17);e:t:for(T=P;;){for(;T.sibling===null;){if(T.return===null||mt(T.return)){T=null;break e}T=T.return}for(T.sibling.return=T.return,T=T.sibling;T.tag!==5&&T.tag!==6&&T.tag!==18;){if(T.effectTag&2||T.child===null||T.tag===4)continue t;T.child.return=T,T=T.child}if(!(T.effectTag&2)){T=T.stateNode;break e}}for(var W=P;;){var fe=W.tag===5||W.tag===6;if(fe)fe=fe?W.stateNode:W.stateNode.instance,T?q?Re(D,fe,T):be(D,fe,T):q?J(D,fe):F(D,fe);else if(W.tag!==4&&W.child!==null){W.child.return=W,W=W.child;continue}if(W===P)break;for(;W.sibling===null;){if(W.return===null||W.return===P)return;W=W.return}W.sibling.return=W.return,W=W.sibling}}}function Cr(P,D,T){for(var q=D,W=!1,fe,De;;){if(!W){W=q.return;e:for(;;){if(W===null)throw Error(n(160));switch(fe=W.stateNode,W.tag){case 5:De=!1;break e;case 3:fe=fe.containerInfo,De=!0;break e;case 4:fe=fe.containerInfo,De=!0;break e}W=W.return}W=!0}if(q.tag===5||q.tag===6)re(P,q,T),De?dt(fe,q.stateNode):at(fe,q.stateNode);else if(q.tag===4){if(q.child!==null){fe=q.stateNode.containerInfo,De=!0,q.child.return=q,q=q.child;continue}}else if(V(P,q,T),q.child!==null){q.child.return=q,q=q.child;continue}if(q===D)break;for(;q.sibling===null;){if(q.return===null||q.return===D)return;q=q.return,q.tag===4&&(W=!1)}q.sibling.return=q.return,q=q.sibling}}function yn(P,D){if(w)switch(D.tag){case 0:case 11:case 14:case 15:N(4,8,D);break;case 1:break;case 5:var T=D.stateNode;if(T!=null){var q=D.memoizedProps;P=P!==null?P.memoizedProps:q;var W=D.type,fe=D.updateQueue;D.updateQueue=null,fe!==null&&ie(T,fe,W,P,q,D)}break;case 6:if(D.stateNode===null)throw Error(n(162));T=D.memoizedProps,X(D.stateNode,P!==null?P.memoizedProps:T,T);break;case 3:y&&(D=D.stateNode,D.hydrate&&(D.hydrate=!1,Dn(D.containerInfo)));break;case 12:break;case 13:oi(D),Li(D);break;case 19:Li(D);break;case 17:break;case 20:break;case 21:break;default:throw Error(n(163))}else{switch(D.tag){case 0:case 11:case 14:case 15:N(4,8,D);return;case 12:return;case 13:oi(D),Li(D);return;case 19:Li(D);return;case 3:y&&(T=D.stateNode,T.hydrate&&(T.hydrate=!1,Dn(T.containerInfo)))}e:if(S)switch(D.tag){case 1:case 5:case 6:case 20:break e;case 3:case 4:D=D.stateNode,Ms(D.containerInfo,D.pendingChildren);break e;default:throw Error(n(163))}}}function oi(P){var D=P;if(P.memoizedState===null)var T=!1;else T=!0,D=P.child,ow=Ni();if(w&&D!==null){e:if(P=D,w)for(D=P;;){if(D.tag===5){var q=D.stateNode;T?tr(q):ln(D.stateNode,D.memoizedProps)}else if(D.tag===6)q=D.stateNode,T?St(q):kr(q,D.memoizedProps);else if(D.tag===13&&D.memoizedState!==null&&D.memoizedState.dehydrated===null){q=D.child.sibling,q.return=D,D=q;continue}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===P)break e;for(;D.sibling===null;){if(D.return===null||D.return===P)break e;D=D.return}D.sibling.return=D.return,D=D.sibling}}}function Li(P){var D=P.updateQueue;if(D!==null){P.updateQueue=null;var T=P.stateNode;T===null&&(T=P.stateNode=new d0),D.forEach(function(q){var W=aF.bind(null,P,q);T.has(q)||(T.add(q),q.then(W,W))})}}var y0=typeof WeakMap=="function"?WeakMap:Map;function Sv(P,D,T){T=Cs(T,null),T.tag=3,T.payload={element:null};var q=D.value;return T.callback=function(){Pu||(Pu=!0,Dd=q),Wa(P,D)},T}function bv(P,D,T){T=Cs(T,null),T.tag=3;var q=P.type.getDerivedStateFromError;if(typeof q=="function"){var W=D.value;T.payload=function(){return Wa(P,D),q(W)}}var fe=P.stateNode;return fe!==null&&typeof fe.componentDidCatch=="function"&&(T.callback=function(){typeof q!="function"&&(Su===null?Su=new Set([this]):Su.add(this),Wa(P,D));var De=D.stack;this.componentDidCatch(D.value,{componentStack:De!==null?De:""})}),T}var iw=Math.ceil,mp=u.ReactCurrentDispatcher,sw=u.ReactCurrentOwner,En=0,wd=8,is=16,Gs=32,Du=0,Id=1,Ii=2,da=3,vl=4,Sc=5,yr=En,gi=null,Mr=null,ss=0,Yi=Du,Bd=null,Ka=1073741823,MA=1073741823,vd=null,yp=0,OA=!1,ow=0,aw=500,lr=null,Pu=!1,Dd=null,Su=null,Ep=!1,E0=null,UA=90,_A=null,C0=0,lw=null,Pd=0;function ma(){return(yr&(is|Gs))!==En?1073741821-(Ni()/10|0):Pd!==0?Pd:Pd=1073741821-(Ni()/10|0)}function HA(P,D,T){if(D=D.mode,!(D&2))return 1073741823;var q=_o();if(!(D&4))return q===99?1073741823:1073741822;if((yr&is)!==En)return ss;if(T!==null)P=qa(P,T.timeoutMs|0||5e3,250);else switch(q){case 99:P=1073741823;break;case 98:P=qa(P,150,100);break;case 97:case 96:P=qa(P,5e3,250);break;case 95:P=2;break;default:throw Error(n(326))}return gi!==null&&P===ss&&--P,P}function bc(P,D){if(50<C0)throw C0=0,lw=null,Error(n(185));if(P=w0(P,D),P!==null){var T=_o();D===1073741823?(yr&wd)!==En&&(yr&(is|Gs))===En?cw(P):(fo(P),yr===En&&qi()):fo(P),(yr&4)===En||T!==98&&T!==99||(_A===null?_A=new Map([[P,D]]):(T=_A.get(P),(T===void 0||T>D)&&_A.set(P,D)))}}function w0(P,D){P.expirationTime<D&&(P.expirationTime=D);var T=P.alternate;T!==null&&T.expirationTime<D&&(T.expirationTime=D);var q=P.return,W=null;if(q===null&&P.tag===3)W=P.stateNode;else for(;q!==null;){if(T=q.alternate,q.childExpirationTime<D&&(q.childExpirationTime=D),T!==null&&T.childExpirationTime<D&&(T.childExpirationTime=D),q.return===null&&q.tag===3){W=q.stateNode;break}q=q.return}return W!==null&&(gi===W&&(bd(D),Yi===vl&&WA(W,ss)),Mv(W,D)),W}function Sd(P){var D=P.lastExpiredTime;return D!==0||(D=P.firstPendingTime,!Lv(P,D))?D:(D=P.lastPingedTime,P=P.nextKnownPendingLevel,D>P?D:P)}function fo(P){if(P.lastExpiredTime!==0)P.callbackExpirationTime=1073741823,P.callbackPriority=99,P.callbackNode=gu(cw.bind(null,P));else{var D=Sd(P),T=P.callbackNode;if(D===0)T!==null&&(P.callbackNode=null,P.callbackExpirationTime=0,P.callbackPriority=90);else{var q=ma();if(D===1073741823?q=99:D===1||D===2?q=95:(q=10*(1073741821-D)-10*(1073741821-q),q=0>=q?99:250>=q?98:5250>=q?97:95),T!==null){var W=P.callbackPriority;if(P.callbackExpirationTime===D&&W>=q)return;T!==PA&&Ie(T)}P.callbackExpirationTime=D,P.callbackPriority=q,D=D===1073741823?gu(cw.bind(null,P)):dc(q,xv.bind(null,P),{timeout:10*(1073741821-D)-Ni()}),P.callbackNode=D}}}function xv(P,D){if(Pd=0,D)return D=ma(),kd(P,D),fo(P),null;var T=Sd(P);if(T!==0){if(D=P.callbackNode,(yr&(is|Gs))!==En)throw Error(n(327));if(Cp(),P===gi&&T===ss||bu(P,T),Mr!==null){var q=yr;yr|=is;var W=jA(P);do try{rF();break}catch(vt){qA(P,vt)}while(!0);if(ua(),yr=q,mp.current=W,Yi===Id)throw D=Bd,bu(P,T),WA(P,T),fo(P),D;if(Mr===null)switch(W=P.finishedWork=P.current.alternate,P.finishedExpirationTime=T,q=Yi,gi=null,q){case Du:case Id:throw Error(n(345));case Ii:kd(P,2<T?2:T);break;case da:if(WA(P,T),q=P.lastSuspendedTime,T===q&&(P.nextKnownPendingLevel=Aw(W)),Ka===1073741823&&(W=ow+aw-Ni(),10<W)){if(OA){var fe=P.lastPingedTime;if(fe===0||fe>=T){P.lastPingedTime=T,bu(P,T);break}}if(fe=Sd(P),fe!==0&&fe!==T)break;if(q!==0&&q!==T){P.lastPingedTime=q;break}P.timeoutHandle=Se(xu.bind(null,P),W);break}xu(P);break;case vl:if(WA(P,T),q=P.lastSuspendedTime,T===q&&(P.nextKnownPendingLevel=Aw(W)),OA&&(W=P.lastPingedTime,W===0||W>=T)){P.lastPingedTime=T,bu(P,T);break}if(W=Sd(P),W!==0&&W!==T)break;if(q!==0&&q!==T){P.lastPingedTime=q;break}if(MA!==1073741823?q=10*(1073741821-MA)-Ni():Ka===1073741823?q=0:(q=10*(1073741821-Ka)-5e3,W=Ni(),T=10*(1073741821-T)-W,q=W-q,0>q&&(q=0),q=(120>q?120:480>q?480:1080>q?1080:1920>q?1920:3e3>q?3e3:4320>q?4320:1960*iw(q/1960))-q,T<q&&(q=T)),10<q){P.timeoutHandle=Se(xu.bind(null,P),q);break}xu(P);break;case Sc:if(Ka!==1073741823&&vd!==null){fe=Ka;var De=vd;if(q=De.busyMinDurationMs|0,0>=q?q=0:(W=De.busyDelayMs|0,fe=Ni()-(10*(1073741821-fe)-(De.timeoutMs|0||5e3)),q=fe<=W?0:W+q-fe),10<q){WA(P,T),P.timeoutHandle=Se(xu.bind(null,P),q);break}}xu(P);break;default:throw Error(n(329))}if(fo(P),P.callbackNode===D)return xv.bind(null,P)}}return null}function cw(P){var D=P.lastExpiredTime;if(D=D!==0?D:1073741823,P.finishedExpirationTime===D)xu(P);else{if((yr&(is|Gs))!==En)throw Error(n(327));if(Cp(),P===gi&&D===ss||bu(P,D),Mr!==null){var T=yr;yr|=is;var q=jA(P);do try{tF();break}catch(W){qA(P,W)}while(!0);if(ua(),yr=T,mp.current=q,Yi===Id)throw T=Bd,bu(P,D),WA(P,D),fo(P),T;if(Mr!==null)throw Error(n(261));P.finishedWork=P.current.alternate,P.finishedExpirationTime=D,gi=null,xu(P),fo(P)}}return null}function kv(P,D){kd(P,D),fo(P),(yr&(is|Gs))===En&&qi()}function eF(){if(_A!==null){var P=_A;_A=null,P.forEach(function(D,T){kd(T,D),fo(T)}),qi()}}function Qv(P,D){if((yr&(is|Gs))!==En)throw Error(n(187));var T=yr;yr|=1;try{return lo(99,P.bind(null,D))}finally{yr=T,qi()}}function bu(P,D){P.finishedWork=null,P.finishedExpirationTime=0;var T=P.timeoutHandle;if(T!==Ue&&(P.timeoutHandle=Ue,et(T)),Mr!==null)for(T=Mr.return;T!==null;){var q=T;switch(q.tag){case 1:var W=q.type.childContextTypes;W!=null&&Ha(q);break;case 3:Ec(q),hr(q);break;case 5:n0(q);break;case 4:Ec(q);break;case 13:Vn($n,q);break;case 19:Vn($n,q);break;case 10:Ci(q)}T=T.return}gi=P,Mr=YA(P.current,null,D),ss=D,Yi=Du,Bd=null,MA=Ka=1073741823,vd=null,yp=0,OA=!1}function qA(P,D){do{try{if(ua(),tw(),Mr===null||Mr.return===null)return Yi=Id,Bd=D,null;e:{var T=P,q=Mr.return,W=Mr,fe=D;if(D=ss,W.effectTag|=2048,W.firstEffect=W.lastEffect=null,fe!==null&&typeof fe=="object"&&typeof fe.then=="function"){var De=fe,vt=($n.current&1)!==0,wt=q;do{var bt;if(bt=wt.tag===13){var _r=wt.memoizedState;if(_r!==null)bt=_r.dehydrated!==null;else{var os=wt.memoizedProps;bt=os.fallback===void 0?!1:os.unstable_avoidThisFallback!==!0?!0:!vt}}if(bt){var di=wt.updateQueue;if(di===null){var po=new Set;po.add(De),wt.updateQueue=po}else di.add(De);if(!(wt.mode&2)){if(wt.effectTag|=64,W.effectTag&=-2981,W.tag===1)if(W.alternate===null)W.tag=17;else{var KA=Cs(1073741823,null);KA.tag=2,tt(W,KA)}W.expirationTime=1073741823;break e}fe=void 0,W=D;var Yo=T.pingCache;if(Yo===null?(Yo=T.pingCache=new y0,fe=new Set,Yo.set(De,fe)):(fe=Yo.get(De),fe===void 0&&(fe=new Set,Yo.set(De,fe))),!fe.has(W)){fe.add(W);var nt=oF.bind(null,T,De,W);De.then(nt,nt)}wt.effectTag|=4096,wt.expirationTime=D;break e}wt=wt.return}while(wt!==null);fe=Error((de(W.type)||"A React component")+` suspended while rendering, but no fallback UI was specified. - -Add a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.`+ml(W))}Yi!==Sc&&(Yi=Ii),fe=g0(fe,W),wt=q;do{switch(wt.tag){case 3:De=fe,wt.effectTag|=4096,wt.expirationTime=D;var Ve=Sv(wt,De,D);Bt(wt,Ve);break e;case 1:De=fe;var At=wt.type,Wt=wt.stateNode;if(!(wt.effectTag&64)&&(typeof At.getDerivedStateFromError=="function"||Wt!==null&&typeof Wt.componentDidCatch=="function"&&(Su===null||!Su.has(Wt)))){wt.effectTag|=4096,wt.expirationTime=D;var vr=bv(wt,De,D);Bt(wt,vr);break e}}wt=wt.return}while(wt!==null)}Mr=Rv(Mr)}catch(Sn){D=Sn;continue}break}while(!0)}function jA(){var P=mp.current;return mp.current=Bu,P===null?Bu:P}function uw(P,D){P<Ka&&2<P&&(Ka=P),D!==null&&P<MA&&2<P&&(MA=P,vd=D)}function bd(P){P>yp&&(yp=P)}function tF(){for(;Mr!==null;)Mr=Fv(Mr)}function rF(){for(;Mr!==null&&!Tt();)Mr=Fv(Mr)}function Fv(P){var D=Nv(P.alternate,P,ss);return P.memoizedProps=P.pendingProps,D===null&&(D=Rv(P)),sw.current=null,D}function Rv(P){Mr=P;do{var D=Mr.alternate;if(P=Mr.return,Mr.effectTag&2048){if(D=nw(Mr,ss),D!==null)return D.effectTag&=2047,D;P!==null&&(P.firstEffect=P.lastEffect=null,P.effectTag|=2048)}else{e:{var T=D;D=Mr;var q=ss,W=D.pendingProps;switch(D.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:ii(D.type)&&Ha(D);break;case 3:Ec(D),hr(D),W=D.stateNode,W.pendingContext&&(W.context=W.pendingContext,W.pendingContext=null),(T===null||T.child===null)&&Ga(D)&&ga(D),Bl(D);break;case 5:n0(D);var fe=Aa(yc.current);if(q=D.type,T!==null&&D.stateNode!=null)ns(T,D,q,W,fe),T.ref!==D.ref&&(D.effectTag|=128);else if(W){if(T=Aa(uo.current),Ga(D)){if(W=D,!y)throw Error(n(175));T=sp(W.stateNode,W.type,W.memoizedProps,fe,T,W),W.updateQueue=T,T=T!==null,T&&ga(D)}else{var De=ht(q,W,fe,T,D);Dc(De,D,!1,!1),D.stateNode=De,rt(De,q,W,fe,T)&&ga(D)}D.ref!==null&&(D.effectTag|=128)}else if(D.stateNode===null)throw Error(n(166));break;case 6:if(T&&D.stateNode!=null)Yr(T,D,T.memoizedProps,W);else{if(typeof W!="string"&&D.stateNode===null)throw Error(n(166));if(T=Aa(yc.current),fe=Aa(uo.current),Ga(D)){if(T=D,!y)throw Error(n(176));(T=op(T.stateNode,T.memoizedProps,T))&&ga(D)}else D.stateNode=Ye(W,T,fe,D)}break;case 11:break;case 13:if(Vn($n,D),W=D.memoizedState,D.effectTag&64){D.expirationTime=q;break e}W=W!==null,fe=!1,T===null?D.memoizedProps.fallback!==void 0&&Ga(D):(q=T.memoizedState,fe=q!==null,W||q===null||(q=T.child.sibling,q!==null&&(De=D.firstEffect,De!==null?(D.firstEffect=q,q.nextEffect=De):(D.firstEffect=D.lastEffect=q,q.nextEffect=null),q.effectTag=8))),W&&!fe&&D.mode&2&&(T===null&&D.memoizedProps.unstable_avoidThisFallback!==!0||$n.current&1?Yi===Du&&(Yi=da):((Yi===Du||Yi===da)&&(Yi=vl),yp!==0&&gi!==null&&(WA(gi,ss),Mv(gi,yp)))),S&&W&&(D.effectTag|=4),w&&(W||fe)&&(D.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:Ec(D),Bl(D);break;case 10:Ci(D);break;case 9:break;case 14:break;case 17:ii(D.type)&&Ha(D);break;case 19:if(Vn($n,D),W=D.memoizedState,W===null)break;if(fe=(D.effectTag&64)!==0,De=W.rendering,De===null){if(fe)Pc(W,!1);else if(Yi!==Du||T!==null&&T.effectTag&64)for(T=D.child;T!==null;){if(De=cp(T),De!==null){for(D.effectTag|=64,Pc(W,!1),T=De.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),W.lastEffect===null&&(D.firstEffect=null),D.lastEffect=W.lastEffect,T=q,W=D.child;W!==null;)fe=W,q=T,fe.effectTag&=2,fe.nextEffect=null,fe.firstEffect=null,fe.lastEffect=null,De=fe.alternate,De===null?(fe.childExpirationTime=0,fe.expirationTime=q,fe.child=null,fe.memoizedProps=null,fe.memoizedState=null,fe.updateQueue=null,fe.dependencies=null):(fe.childExpirationTime=De.childExpirationTime,fe.expirationTime=De.expirationTime,fe.child=De.child,fe.memoizedProps=De.memoizedProps,fe.memoizedState=De.memoizedState,fe.updateQueue=De.updateQueue,q=De.dependencies,fe.dependencies=q===null?null:{expirationTime:q.expirationTime,firstContext:q.firstContext,responders:q.responders}),W=W.sibling;Mn($n,$n.current&1|2,D),D=D.child;break e}T=T.sibling}}else{if(!fe)if(T=cp(De),T!==null){if(D.effectTag|=64,fe=!0,T=T.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),Pc(W,!0),W.tail===null&&W.tailMode==="hidden"&&!De.alternate){D=D.lastEffect=W.lastEffect,D!==null&&(D.nextEffect=null);break}}else Ni()>W.tailExpiration&&1<q&&(D.effectTag|=64,fe=!0,Pc(W,!1),D.expirationTime=D.childExpirationTime=q-1);W.isBackwards?(De.sibling=D.child,D.child=De):(T=W.last,T!==null?T.sibling=De:D.child=De,W.last=De)}if(W.tail!==null){W.tailExpiration===0&&(W.tailExpiration=Ni()+500),T=W.tail,W.rendering=T,W.tail=T.sibling,W.lastEffect=D.lastEffect,T.sibling=null,W=$n.current,W=fe?W&1|2:W&1,Mn($n,W,D),D=T;break e}break;case 20:break;case 21:break;default:throw Error(n(156,D.tag))}D=null}if(T=Mr,ss===1||T.childExpirationTime!==1){for(W=0,fe=T.child;fe!==null;)q=fe.expirationTime,De=fe.childExpirationTime,q>W&&(W=q),De>W&&(W=De),fe=fe.sibling;T.childExpirationTime=W}if(D!==null)return D;P!==null&&!(P.effectTag&2048)&&(P.firstEffect===null&&(P.firstEffect=Mr.firstEffect),Mr.lastEffect!==null&&(P.lastEffect!==null&&(P.lastEffect.nextEffect=Mr.firstEffect),P.lastEffect=Mr.lastEffect),1<Mr.effectTag&&(P.lastEffect!==null?P.lastEffect.nextEffect=Mr:P.firstEffect=Mr,P.lastEffect=Mr))}if(D=Mr.sibling,D!==null)return D;Mr=P}while(Mr!==null);return Yi===Du&&(Yi=Sc),null}function Aw(P){var D=P.expirationTime;return P=P.childExpirationTime,D>P?D:P}function xu(P){var D=_o();return lo(99,nF.bind(null,P,D)),null}function nF(P,D){do Cp();while(E0!==null);if((yr&(is|Gs))!==En)throw Error(n(327));var T=P.finishedWork,q=P.finishedExpirationTime;if(T===null)return null;if(P.finishedWork=null,P.finishedExpirationTime=0,T===P.current)throw Error(n(177));P.callbackNode=null,P.callbackExpirationTime=0,P.callbackPriority=90,P.nextKnownPendingLevel=0;var W=Aw(T);if(P.firstPendingTime=W,q<=P.lastSuspendedTime?P.firstSuspendedTime=P.lastSuspendedTime=P.nextKnownPendingLevel=0:q<=P.firstSuspendedTime&&(P.firstSuspendedTime=q-1),q<=P.lastPingedTime&&(P.lastPingedTime=0),q<=P.lastExpiredTime&&(P.lastExpiredTime=0),P===gi&&(Mr=gi=null,ss=0),1<T.effectTag?T.lastEffect!==null?(T.lastEffect.nextEffect=T,W=T.firstEffect):W=T:W=T.firstEffect,W!==null){var fe=yr;yr|=Gs,sw.current=null,xe(P.containerInfo),lr=W;do try{iF()}catch(ho){if(lr===null)throw Error(n(330));GA(lr,ho),lr=lr.nextEffect}while(lr!==null);lr=W;do try{for(var De=P,vt=D;lr!==null;){var wt=lr.effectTag;if(wt&16&&w&&jt(lr.stateNode),wt&128){var bt=lr.alternate;if(bt!==null){var _r=bt.ref;_r!==null&&(typeof _r=="function"?_r(null):_r.current=null)}}switch(wt&1038){case 2:fr(lr),lr.effectTag&=-3;break;case 6:fr(lr),lr.effectTag&=-3,yn(lr.alternate,lr);break;case 1024:lr.effectTag&=-1025;break;case 1028:lr.effectTag&=-1025,yn(lr.alternate,lr);break;case 4:yn(lr.alternate,lr);break;case 8:var os=De,di=lr,po=vt;w?Cr(os,di,po):re(os,di,po),he(di)}lr=lr.nextEffect}}catch(ho){if(lr===null)throw Error(n(330));GA(lr,ho),lr=lr.nextEffect}while(lr!==null);Ne(P.containerInfo),P.current=T,lr=W;do try{for(wt=q;lr!==null;){var KA=lr.effectTag;if(KA&36){var Yo=lr.alternate;switch(bt=lr,_r=wt,bt.tag){case 0:case 11:case 15:N(16,32,bt);break;case 1:var nt=bt.stateNode;if(bt.effectTag&4)if(Yo===null)nt.componentDidMount();else{var Ve=bt.elementType===bt.type?Yo.memoizedProps:Ei(bt.type,Yo.memoizedProps);nt.componentDidUpdate(Ve,Yo.memoizedState,nt.__reactInternalSnapshotBeforeUpdate)}var At=bt.updateQueue;At!==null&&Le(bt,At,nt,_r);break;case 3:var Wt=bt.updateQueue;if(Wt!==null){if(De=null,bt.child!==null)switch(bt.child.tag){case 5:De=Ae(bt.child.stateNode);break;case 1:De=bt.child.stateNode}Le(bt,Wt,De,_r)}break;case 5:var vr=bt.stateNode;Yo===null&&bt.effectTag&4&&$(vr,bt.type,bt.memoizedProps,bt);break;case 6:break;case 4:break;case 12:break;case 13:if(y&&bt.memoizedState===null){var Sn=bt.alternate;if(Sn!==null){var Qr=Sn.memoizedState;if(Qr!==null){var bn=Qr.dehydrated;bn!==null&&oo(bn)}}}break;case 19:case 17:case 20:case 21:break;default:throw Error(n(163))}}if(KA&128){bt=void 0;var ai=lr.ref;if(ai!==null){var tn=lr.stateNode;switch(lr.tag){case 5:bt=Ae(tn);break;default:bt=tn}typeof ai=="function"?ai(bt):ai.current=bt}}lr=lr.nextEffect}}catch(ho){if(lr===null)throw Error(n(330));GA(lr,ho),lr=lr.nextEffect}while(lr!==null);lr=null,Qn(),yr=fe}else P.current=T;if(Ep)Ep=!1,E0=P,UA=D;else for(lr=W;lr!==null;)D=lr.nextEffect,lr.nextEffect=null,lr=D;if(D=P.firstPendingTime,D===0&&(Su=null),D===1073741823?P===lw?C0++:(C0=0,lw=P):C0=0,typeof fw=="function"&&fw(T.stateNode,q),fo(P),Pu)throw Pu=!1,P=Dd,Dd=null,P;return(yr&wd)!==En||qi(),null}function iF(){for(;lr!==null;){var P=lr.effectTag;P&256&&Qt(lr.alternate,lr),!(P&512)||Ep||(Ep=!0,dc(97,function(){return Cp(),null})),lr=lr.nextEffect}}function Cp(){if(UA!==90){var P=97<UA?97:UA;return UA=90,lo(P,sF)}}function sF(){if(E0===null)return!1;var P=E0;if(E0=null,(yr&(is|Gs))!==En)throw Error(n(331));var D=yr;for(yr|=Gs,P=P.current.firstEffect;P!==null;){try{var T=P;if(T.effectTag&512)switch(T.tag){case 0:case 11:case 15:N(128,0,T),N(0,64,T)}}catch(q){if(P===null)throw Error(n(330));GA(P,q)}T=P.nextEffect,P.nextEffect=null,P=T}return yr=D,qi(),!0}function Tv(P,D,T){D=g0(T,D),D=Sv(P,D,1073741823),tt(P,D),P=w0(P,1073741823),P!==null&&fo(P)}function GA(P,D){if(P.tag===3)Tv(P,P,D);else for(var T=P.return;T!==null;){if(T.tag===3){Tv(T,P,D);break}else if(T.tag===1){var q=T.stateNode;if(typeof T.type.getDerivedStateFromError=="function"||typeof q.componentDidCatch=="function"&&(Su===null||!Su.has(q))){P=g0(D,P),P=bv(T,P,1073741823),tt(T,P),T=w0(T,1073741823),T!==null&&fo(T);break}}T=T.return}}function oF(P,D,T){var q=P.pingCache;q!==null&&q.delete(D),gi===P&&ss===T?Yi===vl||Yi===da&&Ka===1073741823&&Ni()-ow<aw?bu(P,ss):OA=!0:Lv(P,T)&&(D=P.lastPingedTime,D!==0&&D<T||(P.lastPingedTime=T,P.finishedExpirationTime===T&&(P.finishedExpirationTime=0,P.finishedWork=null),fo(P)))}function aF(P,D){var T=P.stateNode;T!==null&&T.delete(D),D=0,D===0&&(D=ma(),D=HA(D,P,null)),P=w0(P,D),P!==null&&fo(P)}var Nv;Nv=function(P,D,T){var q=D.expirationTime;if(P!==null){var W=D.pendingProps;if(P.memoizedProps!==W||_i.current)jo=!0;else{if(q<T){switch(jo=!1,D.tag){case 3:h0(D),p0();break;case 5:if(hd(D),D.mode&4&&T!==1&&ke(D.type,W))return D.expirationTime=D.childExpirationTime=1,null;break;case 1:ii(D.type)&&fc(D);break;case 4:r0(D,D.stateNode.containerInfo);break;case 10:Ho(D,D.memoizedProps.value);break;case 13:if(D.memoizedState!==null)return q=D.child.childExpirationTime,q!==0&&q>=T?cn(P,D,T):(Mn($n,$n.current&1,D),D=si(P,D,T),D!==null?D.sibling:null);Mn($n,$n.current&1,D);break;case 19:if(q=D.childExpirationTime>=T,P.effectTag&64){if(q)return Ya(P,D,T);D.effectTag|=64}if(W=D.memoizedState,W!==null&&(W.rendering=null,W.tail=null),Mn($n,$n.current,D),!q)return null}return si(P,D,T)}jo=!1}}else jo=!1;switch(D.expirationTime=0,D.tag){case 2:if(q=D.type,P!==null&&(P.alternate=null,D.alternate=null,D.effectTag|=2),P=D.pendingProps,W=Me(D,On.current),ys(D,T),W=s0(null,D,q,P,W,T),D.effectTag|=1,typeof W=="object"&&W!==null&&typeof W.render=="function"&&W.$$typeof===void 0){if(D.tag=1,tw(),ii(q)){var fe=!0;fc(D)}else fe=!1;D.memoizedState=W.state!==null&&W.state!==void 0?W.state:null;var De=q.getDerivedStateFromProps;typeof De=="function"&&rr(D,q,De,P),W.updater=$r,D.stateNode=W,W._reactInternalFiber=D,qo(D,q,P,T),D=gp(null,D,q,!0,fe,T)}else D.tag=0,Bs(null,D,W,T),D=D.child;return D;case 16:if(W=D.elementType,P!==null&&(P.alternate=null,D.alternate=null,D.effectTag|=2),P=D.pendingProps,Ce(W),W._status!==1)throw W._result;switch(W=W._result,D.type=W,fe=D.tag=uF(W),P=Ei(W,P),fe){case 0:D=NA(null,D,W,P,T);break;case 1:D=hp(null,D,W,P,T);break;case 11:D=wi(null,D,W,P,T);break;case 14:D=yd(null,D,W,Ei(W.type,P),q,T);break;default:throw Error(n(306,W,""))}return D;case 0:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:Ei(q,W),NA(P,D,q,W,T);case 1:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:Ei(q,W),hp(P,D,q,W,T);case 3:if(h0(D),q=D.updateQueue,q===null)throw Error(n(282));if(W=D.memoizedState,W=W!==null?W.element:null,ye(D,q,D.pendingProps,null,T),q=D.memoizedState.element,q===W)p0(),D=si(P,D,T);else{if((W=D.stateNode.hydrate)&&(y?(vc=Au(D.stateNode.containerInfo),pa=D,W=Il=!0):W=!1),W)for(T=t0(D,null,q,T),D.child=T;T;)T.effectTag=T.effectTag&-3|1024,T=T.sibling;else Bs(P,D,q,T),p0();D=D.child}return D;case 5:return hd(D),P===null&&TA(D),q=D.type,W=D.pendingProps,fe=P!==null?P.memoizedProps:null,De=W.children,Fe(q,W)?De=null:fe!==null&&Fe(q,fe)&&(D.effectTag|=16),Go(P,D),D.mode&4&&T!==1&&ke(q,W)?(D.expirationTime=D.childExpirationTime=1,D=null):(Bs(P,D,De,T),D=D.child),D;case 6:return P===null&&TA(D),null;case 13:return cn(P,D,T);case 4:return r0(D,D.stateNode.containerInfo),q=D.pendingProps,P===null?D.child=mu(D,null,q,T):Bs(P,D,q,T),D.child;case 11:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:Ei(q,W),wi(P,D,q,W,T);case 7:return Bs(P,D,D.pendingProps,T),D.child;case 8:return Bs(P,D,D.pendingProps.children,T),D.child;case 12:return Bs(P,D,D.pendingProps.children,T),D.child;case 10:e:{if(q=D.type._context,W=D.pendingProps,De=D.memoizedProps,fe=W.value,Ho(D,fe),De!==null){var vt=De.value;if(fe=ds(vt,fe)?0:(typeof q._calculateChangedBits=="function"?q._calculateChangedBits(vt,fe):1073741823)|0,fe===0){if(De.children===W.children&&!_i.current){D=si(P,D,T);break e}}else for(vt=D.child,vt!==null&&(vt.return=D);vt!==null;){var wt=vt.dependencies;if(wt!==null){De=vt.child;for(var bt=wt.firstContext;bt!==null;){if(bt.context===q&&bt.observedBits&fe){vt.tag===1&&(bt=Cs(T,null),bt.tag=2,tt(vt,bt)),vt.expirationTime<T&&(vt.expirationTime=T),bt=vt.alternate,bt!==null&&bt.expirationTime<T&&(bt.expirationTime=T),ms(vt.return,T),wt.expirationTime<T&&(wt.expirationTime=T);break}bt=bt.next}}else De=vt.tag===10&&vt.type===D.type?null:vt.child;if(De!==null)De.return=vt;else for(De=vt;De!==null;){if(De===D){De=null;break}if(vt=De.sibling,vt!==null){vt.return=De.return,De=vt;break}De=De.return}vt=De}}Bs(P,D,W.children,T),D=D.child}return D;case 9:return W=D.type,fe=D.pendingProps,q=fe.children,ys(D,T),W=Es(W,fe.unstable_observedBits),q=q(W),D.effectTag|=1,Bs(P,D,q,T),D.child;case 14:return W=D.type,fe=Ei(W,D.pendingProps),fe=Ei(W.type,fe),yd(P,D,W,fe,q,T);case 15:return Ed(P,D,D.type,D.pendingProps,q,T);case 17:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:Ei(q,W),P!==null&&(P.alternate=null,D.alternate=null,D.effectTag|=2),D.tag=1,ii(q)?(P=!0,fc(D)):P=!1,ys(D,T),rs(D,q,W,T),qo(D,q,W,T),gp(null,D,q,!0,P,T);case 19:return Ya(P,D,T)}throw Error(n(156,D.tag))};var fw=null,pw=null;function lF(P){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")return!1;var D=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(D.isDisabled||!D.supportsFiber)return!0;try{var T=D.inject(P);fw=function(q){try{D.onCommitFiberRoot(T,q,void 0,(q.current.effectTag&64)===64)}catch{}},pw=function(q){try{D.onCommitFiberUnmount(T,q)}catch{}}}catch{}return!0}function cF(P,D,T,q){this.tag=P,this.key=T,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=D,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=q,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Dl(P,D,T,q){return new cF(P,D,T,q)}function hw(P){return P=P.prototype,!(!P||!P.isReactComponent)}function uF(P){if(typeof P=="function")return hw(P)?1:0;if(P!=null){if(P=P.$$typeof,P===L)return 11;if(P===te)return 14}return 2}function YA(P,D){var T=P.alternate;return T===null?(T=Dl(P.tag,D,P.key,P.mode),T.elementType=P.elementType,T.type=P.type,T.stateNode=P.stateNode,T.alternate=P,P.alternate=T):(T.pendingProps=D,T.effectTag=0,T.nextEffect=null,T.firstEffect=null,T.lastEffect=null),T.childExpirationTime=P.childExpirationTime,T.expirationTime=P.expirationTime,T.child=P.child,T.memoizedProps=P.memoizedProps,T.memoizedState=P.memoizedState,T.updateQueue=P.updateQueue,D=P.dependencies,T.dependencies=D===null?null:{expirationTime:D.expirationTime,firstContext:D.firstContext,responders:D.responders},T.sibling=P.sibling,T.index=P.index,T.ref=P.ref,T}function xd(P,D,T,q,W,fe){var De=2;if(q=P,typeof P=="function")hw(P)&&(De=1);else if(typeof P=="string")De=5;else e:switch(P){case E:return ku(T.children,W,fe,D);case R:De=8,W|=7;break;case I:De=8,W|=1;break;case v:return P=Dl(12,T,D,W|8),P.elementType=v,P.type=v,P.expirationTime=fe,P;case U:return P=Dl(13,T,D,W),P.type=U,P.elementType=U,P.expirationTime=fe,P;case z:return P=Dl(19,T,D,W),P.elementType=z,P.expirationTime=fe,P;default:if(typeof P=="object"&&P!==null)switch(P.$$typeof){case x:De=10;break e;case C:De=9;break e;case L:De=11;break e;case te:De=14;break e;case ae:De=16,q=null;break e}throw Error(n(130,P==null?P:typeof P,""))}return D=Dl(De,T,D,W),D.elementType=P,D.type=q,D.expirationTime=fe,D}function ku(P,D,T,q){return P=Dl(7,P,q,D),P.expirationTime=T,P}function gw(P,D,T){return P=Dl(6,P,null,D),P.expirationTime=T,P}function dw(P,D,T){return D=Dl(4,P.children!==null?P.children:[],P.key,D),D.expirationTime=T,D.stateNode={containerInfo:P.containerInfo,pendingChildren:null,implementation:P.implementation},D}function AF(P,D,T){this.tag=D,this.current=null,this.containerInfo=P,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=Ue,this.pendingContext=this.context=null,this.hydrate=T,this.callbackNode=null,this.callbackPriority=90,this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}function Lv(P,D){var T=P.firstSuspendedTime;return P=P.lastSuspendedTime,T!==0&&T>=D&&P<=D}function WA(P,D){var T=P.firstSuspendedTime,q=P.lastSuspendedTime;T<D&&(P.firstSuspendedTime=D),(q>D||T===0)&&(P.lastSuspendedTime=D),D<=P.lastPingedTime&&(P.lastPingedTime=0),D<=P.lastExpiredTime&&(P.lastExpiredTime=0)}function Mv(P,D){D>P.firstPendingTime&&(P.firstPendingTime=D);var T=P.firstSuspendedTime;T!==0&&(D>=T?P.firstSuspendedTime=P.lastSuspendedTime=P.nextKnownPendingLevel=0:D>=P.lastSuspendedTime&&(P.lastSuspendedTime=D+1),D>P.nextKnownPendingLevel&&(P.nextKnownPendingLevel=D))}function kd(P,D){var T=P.lastExpiredTime;(T===0||T>D)&&(P.lastExpiredTime=D)}function Ov(P){var D=P._reactInternalFiber;if(D===void 0)throw typeof P.render=="function"?Error(n(188)):Error(n(268,Object.keys(P)));return P=me(D),P===null?null:P.stateNode}function Uv(P,D){P=P.memoizedState,P!==null&&P.dehydrated!==null&&P.retryTime<D&&(P.retryTime=D)}function Qd(P,D){Uv(P,D),(P=P.alternate)&&Uv(P,D)}var _v={createContainer:function(P,D,T){return P=new AF(P,D,T),D=Dl(3,null,null,D===2?7:D===1?3:0),P.current=D,D.stateNode=P},updateContainer:function(P,D,T,q){var W=D.current,fe=ma(),De=pt.suspense;fe=HA(fe,W,De);e:if(T){T=T._reactInternalFiber;t:{if(Be(T)!==T||T.tag!==1)throw Error(n(170));var vt=T;do{switch(vt.tag){case 3:vt=vt.stateNode.context;break t;case 1:if(ii(vt.type)){vt=vt.stateNode.__reactInternalMemoizedMergedChildContext;break t}}vt=vt.return}while(vt!==null);throw Error(n(171))}if(T.tag===1){var wt=T.type;if(ii(wt)){T=fu(T,wt,vt);break e}}T=vt}else T=Ti;return D.context===null?D.context=T:D.pendingContext=T,D=Cs(fe,De),D.payload={element:P},q=q===void 0?null:q,q!==null&&(D.callback=q),tt(W,D),bc(W,fe),fe},batchedEventUpdates:function(P,D){var T=yr;yr|=2;try{return P(D)}finally{yr=T,yr===En&&qi()}},batchedUpdates:function(P,D){var T=yr;yr|=1;try{return P(D)}finally{yr=T,yr===En&&qi()}},unbatchedUpdates:function(P,D){var T=yr;yr&=-2,yr|=wd;try{return P(D)}finally{yr=T,yr===En&&qi()}},deferredUpdates:function(P){return lo(97,P)},syncUpdates:function(P,D,T,q){return lo(99,P.bind(null,D,T,q))},discreteUpdates:function(P,D,T,q){var W=yr;yr|=4;try{return lo(98,P.bind(null,D,T,q))}finally{yr=W,yr===En&&qi()}},flushDiscreteUpdates:function(){(yr&(1|is|Gs))===En&&(eF(),Cp())},flushControlled:function(P){var D=yr;yr|=1;try{lo(99,P)}finally{yr=D,yr===En&&qi()}},flushSync:Qv,flushPassiveEffects:Cp,IsThisRendererActing:{current:!1},getPublicRootInstance:function(P){if(P=P.current,!P.child)return null;switch(P.child.tag){case 5:return Ae(P.child.stateNode);default:return P.child.stateNode}},attemptSynchronousHydration:function(P){switch(P.tag){case 3:var D=P.stateNode;D.hydrate&&kv(D,D.firstPendingTime);break;case 13:Qv(function(){return bc(P,1073741823)}),D=qa(ma(),150,100),Qd(P,D)}},attemptUserBlockingHydration:function(P){if(P.tag===13){var D=qa(ma(),150,100);bc(P,D),Qd(P,D)}},attemptContinuousHydration:function(P){if(P.tag===13){ma();var D=bA++;bc(P,D),Qd(P,D)}},attemptHydrationAtCurrentPriority:function(P){if(P.tag===13){var D=ma();D=HA(D,P,null),bc(P,D),Qd(P,D)}},findHostInstance:Ov,findHostInstanceWithWarning:function(P){return Ov(P)},findHostInstanceWithNoPortals:function(P){return P=we(P),P===null?null:P.tag===20?P.stateNode.instance:P.stateNode},shouldSuspend:function(){return!1},injectIntoDevTools:function(P){var D=P.findFiberByHostInstance;return lF(r({},P,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:u.ReactCurrentDispatcher,findHostInstanceByFiber:function(T){return T=me(T),T===null?null:T.stateNode},findFiberByHostInstance:function(T){return D?D(T):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))}};Y2.exports=_v.default||_v;var fF=Y2.exports;return Y2.exports=t,fF}});var FEe=_((BKt,QEe)=>{"use strict";QEe.exports=kEe()});var TEe=_((vKt,REe)=>{"use strict";var Kyt={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};REe.exports=Kyt});var OEe=_((DKt,MEe)=>{"use strict";var Vyt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(t[o]=r[o])}return t},Nk=function(){function t(e,r){for(var o=0;o<r.length;o++){var a=r[o];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(e,r,o){return r&&t(e.prototype,r),o&&t(e,o),e}}();function I6(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function B6(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var nu=TEe(),zyt=function(){function t(e,r,o,a,n,u){B6(this,t),this.left=e,this.right=r,this.top=o,this.bottom=a,this.width=n,this.height=u}return Nk(t,[{key:"fromJS",value:function(r){r(this.left,this.right,this.top,this.bottom,this.width,this.height)}},{key:"toString",value:function(){return"<Layout#"+this.left+":"+this.right+";"+this.top+":"+this.bottom+";"+this.width+":"+this.height+">"}}]),t}(),NEe=function(){Nk(t,null,[{key:"fromJS",value:function(r){var o=r.width,a=r.height;return new t(o,a)}}]);function t(e,r){B6(this,t),this.width=e,this.height=r}return Nk(t,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return"<Size#"+this.width+"x"+this.height+">"}}]),t}(),LEe=function(){function t(e,r){B6(this,t),this.unit=e,this.value=r}return Nk(t,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case nu.UNIT_POINT:return String(this.value);case nu.UNIT_PERCENT:return this.value+"%";case nu.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),t}();MEe.exports=function(t,e){function r(u,A,p){var h=u[A];u[A]=function(){for(var E=arguments.length,I=Array(E),v=0;v<E;v++)I[v]=arguments[v];return p.call.apply(p,[this,h].concat(I))}}for(var o=["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding"],a=function(){var A,p=o[n],h=(A={},I6(A,nu.UNIT_POINT,e.Node.prototype[p]),I6(A,nu.UNIT_PERCENT,e.Node.prototype[p+"Percent"]),I6(A,nu.UNIT_AUTO,e.Node.prototype[p+"Auto"]),A);r(e.Node.prototype,p,function(E){for(var I=arguments.length,v=Array(I>1?I-1:0),x=1;x<I;x++)v[x-1]=arguments[x];var C=v.pop(),R=void 0,L=void 0;if(C==="auto")R=nu.UNIT_AUTO,L=void 0;else if(C instanceof LEe)R=C.unit,L=C.valueOf();else if(R=typeof C=="string"&&C.endsWith("%")?nu.UNIT_PERCENT:nu.UNIT_POINT,L=parseFloat(C),!Number.isNaN(C)&&Number.isNaN(L))throw new Error("Invalid value "+C+" for "+p);if(!h[R])throw new Error('Failed to execute "'+p+`": Unsupported unit '`+C+"'");if(L!==void 0){var U;return(U=h[R]).call.apply(U,[this].concat(v,[L]))}else{var z;return(z=h[R]).call.apply(z,[this].concat(v))}})},n=0;n<o.length;n++)a();return r(e.Config.prototype,"free",function(){e.Config.destroy(this)}),r(e.Node,"create",function(u,A){return A?e.Node.createWithConfig(A):e.Node.createDefault()}),r(e.Node.prototype,"free",function(){e.Node.destroy(this)}),r(e.Node.prototype,"freeRecursive",function(){for(var u=0,A=this.getChildCount();u<A;++u)this.getChild(0).freeRecursive();this.free()}),r(e.Node.prototype,"setMeasureFunc",function(u,A){return A?u.call(this,function(){return NEe.fromJS(A.apply(void 0,arguments))}):this.unsetMeasureFunc()}),r(e.Node.prototype,"calculateLayout",function(u){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:nu.DIRECTION_LTR;return u.call(this,A,p,h)}),Vyt({Config:e.Config,Node:e.Node,Layout:t("Layout",zyt),Size:t("Size",NEe),Value:t("Value",LEe),getInstanceCount:function(){return e.getInstanceCount.apply(e,arguments)}},nu)}});var UEe=_((exports,module)=>{(function(t,e){typeof define=="function"&&define.amd?define([],function(){return e}):typeof module=="object"&&module.exports?module.exports=e:(t.nbind=t.nbind||{}).init=e})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(t,e){return function(){t&&t.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){e(r);return}e(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof ve=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var o=nodeFS.readFileSync(e);return r?o:o.toString()},Module.readBinary=function(e){var r=Module.read(e,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(t,e){quit(t)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,o){var a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):o()},a.onerror=o,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(t){dump(t)}:function(t){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(t){document.title=t})}else throw"Unknown runtime environment. Where are we?";function globalEval(t){eval.call(null,t)}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(t,e){throw e}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(t){return tempRet0=t,t},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(t){STACKTOP=t},getNativeTypeSize:function(t){switch(t){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(t[t.length-1]==="*")return Runtime.QUANTUM_SIZE;if(t[0]==="i"){var e=parseInt(t.substr(1));return assert(e%8===0),e/8}else return 0}}},getNativeFieldSize:function(t){return Math.max(Runtime.getNativeTypeSize(t),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(t,e){return e==="double"||e==="i64"?t&7&&(assert((t&7)===4),t+=4):assert((t&3)===0),t},getAlignSize:function(t,e,r){return!r&&(t=="i64"||t=="double")?8:t?Math.min(e||(t?Runtime.getNativeFieldSize(t):0),Runtime.QUANTUM_SIZE):Math.min(e,8)},dynCall:function(t,e,r){return r&&r.length?Module["dynCall_"+t].apply(null,[e].concat(r)):Module["dynCall_"+t].call(null,e)},functionPointers:[],addFunction:function(t){for(var e=0;e<Runtime.functionPointers.length;e++)if(!Runtime.functionPointers[e])return Runtime.functionPointers[e]=t,2*(1+e);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(t){Runtime.functionPointers[(t-2)/2]=null},warnOnce:function(t){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[t]||(Runtime.warnOnce.shown[t]=1,Module.printErr(t))},funcWrappers:{},getFuncWrapper:function(t,e){if(t){assert(e),Runtime.funcWrappers[e]||(Runtime.funcWrappers[e]={});var r=Runtime.funcWrappers[e];return r[t]||(e.length===1?r[t]=function(){return Runtime.dynCall(e,t)}:e.length===2?r[t]=function(a){return Runtime.dynCall(e,t,[a])}:r[t]=function(){return Runtime.dynCall(e,t,Array.prototype.slice.call(arguments))}),r[t]}},getCompilerSetting:function(t){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(t){var e=STACKTOP;return STACKTOP=STACKTOP+t|0,STACKTOP=STACKTOP+15&-16,e},staticAlloc:function(t){var e=STATICTOP;return STATICTOP=STATICTOP+t|0,STATICTOP=STATICTOP+15&-16,e},dynamicAlloc:function(t){var e=HEAP32[DYNAMICTOP_PTR>>2],r=(e+t+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var o=enlargeMemory();if(!o)return HEAP32[DYNAMICTOP_PTR>>2]=e,0}return e},alignMemory:function(t,e){var r=t=Math.ceil(t/(e||16))*(e||16);return r},makeBigInt:function(t,e,r){var o=r?+(t>>>0)+ +(e>>>0)*4294967296:+(t>>>0)+ +(e|0)*4294967296;return o},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(t,e){t||abort("Assertion failed: "+e)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(t){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(t){var e=Runtime.stackAlloc(t.length);return writeArrayToMemory(t,e),e},stringToC:function(t){var e=0;if(t!=null&&t!==0){var r=(t.length<<2)+1;e=Runtime.stackAlloc(r),stringToUTF8(t,e,r)}return e}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,o,a,n){var u=getCFunc(e),A=[],p=0;if(a)for(var h=0;h<a.length;h++){var E=toC[o[h]];E?(p===0&&(p=Runtime.stackSave()),A[h]=E(a[h])):A[h]=a[h]}var I=u.apply(null,A);if(r==="string"&&(I=Pointer_stringify(I)),p!==0){if(n&&n.async){EmterpreterAsync.asyncFinalizers.push(function(){Runtime.stackRestore(p)});return}Runtime.stackRestore(p)}return I};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(t){var e=t.toString().match(sourceRegex).slice(1);return{arguments:e[0],body:e[1],returnValue:e[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource){JSsource={};for(var t in JSfuncs)JSfuncs.hasOwnProperty(t)&&(JSsource[t]=parseJSFunc(JSfuncs[t]))}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every(function(t){return t==="number"}),numericRet=returnType!=="string";if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map(function(t,e){return"$"+e}),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type!=="number"){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"=("+convertCode.returnValue+");"}}}var cfuncname=parseJSFunc(function(){return cfunc}).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc(function(){return Pointer_stringify}).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(ensureJSsource(),funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}})(),Module.ccall=ccall,Module.cwrap=cwrap;function setValue(t,e,r,o){switch(r=r||"i8",r.charAt(r.length-1)==="*"&&(r="i32"),r){case"i1":HEAP8[t>>0]=e;break;case"i8":HEAP8[t>>0]=e;break;case"i16":HEAP16[t>>1]=e;break;case"i32":HEAP32[t>>2]=e;break;case"i64":tempI64=[e>>>0,(tempDouble=e,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1];break;case"float":HEAPF32[t>>2]=e;break;case"double":HEAPF64[t>>3]=e;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(t,e,r){switch(e=e||"i8",e.charAt(e.length-1)==="*"&&(e="i32"),e){case"i1":return HEAP8[t>>0];case"i8":return HEAP8[t>>0];case"i16":return HEAP16[t>>1];case"i32":return HEAP32[t>>2];case"i64":return HEAP32[t>>2];case"float":return HEAPF32[t>>2];case"double":return HEAPF64[t>>3];default:abort("invalid type for setValue: "+e)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(t,e,r,o){var a,n;typeof t=="number"?(a=!0,n=t):(a=!1,n=t.length);var u=typeof e=="string"?e:null,A;if(r==ALLOC_NONE?A=o:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(n,u?1:e.length)),a){var o=A,p;for(assert((A&3)==0),p=A+(n&-4);o<p;o+=4)HEAP32[o>>2]=0;for(p=A+n;o<p;)HEAP8[o++>>0]=0;return A}if(u==="i8")return t.subarray||t.slice?HEAPU8.set(t,A):HEAPU8.set(new Uint8Array(t),A),A;for(var h=0,E,I,v;h<n;){var x=t[h];if(typeof x=="function"&&(x=Runtime.getFunctionIndex(x)),E=u||e[h],E===0){h++;continue}E=="i64"&&(E="i32"),setValue(A+h,x,E),v!==E&&(I=Runtime.getNativeTypeSize(E),v=E),h+=I}return A}Module.allocate=allocate;function getMemory(t){return staticSealed?runtimeInitialized?_malloc(t):Runtime.dynamicAlloc(t):Runtime.staticAlloc(t)}Module.getMemory=getMemory;function Pointer_stringify(t,e){if(e===0||!t)return"";for(var r=0,o,a=0;o=HEAPU8[t+a>>0],r|=o,!(o==0&&!e||(a++,e&&a==e)););e||(e=a);var n="";if(r<128){for(var u=1024,A;e>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(t,t+Math.min(e,u))),n=n?n+A:A,t+=u,e-=u;return n}return Module.UTF8ToString(t)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(t){for(var e="";;){var r=HEAP8[t++>>0];if(!r)return e;e+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(t,e){return writeAsciiToMemory(t,e,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(t,e){for(var r=e;t[r];)++r;if(r-e>16&&t.subarray&&UTF8Decoder)return UTF8Decoder.decode(t.subarray(e,r));for(var o,a,n,u,A,p,h="";;){if(o=t[e++],!o)return h;if(!(o&128)){h+=String.fromCharCode(o);continue}if(a=t[e++]&63,(o&224)==192){h+=String.fromCharCode((o&31)<<6|a);continue}if(n=t[e++]&63,(o&240)==224?o=(o&15)<<12|a<<6|n:(u=t[e++]&63,(o&248)==240?o=(o&7)<<18|a<<12|n<<6|u:(A=t[e++]&63,(o&252)==248?o=(o&3)<<24|a<<18|n<<12|u<<6|A:(p=t[e++]&63,o=(o&1)<<30|a<<24|n<<18|u<<12|A<<6|p))),o<65536)h+=String.fromCharCode(o);else{var E=o-65536;h+=String.fromCharCode(55296|E>>10,56320|E&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(t){return UTF8ArrayToString(HEAPU8,t)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(t,e,r,o){if(!(o>0))return 0;for(var a=r,n=r+o-1,u=0;u<t.length;++u){var A=t.charCodeAt(u);if(A>=55296&&A<=57343&&(A=65536+((A&1023)<<10)|t.charCodeAt(++u)&1023),A<=127){if(r>=n)break;e[r++]=A}else if(A<=2047){if(r+1>=n)break;e[r++]=192|A>>6,e[r++]=128|A&63}else if(A<=65535){if(r+2>=n)break;e[r++]=224|A>>12,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=2097151){if(r+3>=n)break;e[r++]=240|A>>18,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=67108863){if(r+4>=n)break;e[r++]=248|A>>24,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else{if(r+5>=n)break;e[r++]=252|A>>30,e[r++]=128|A>>24&63,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}}return e[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(t,e,r){return stringToUTF8Array(t,HEAPU8,e,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(t){for(var e=0,r=0;r<t.length;++r){var o=t.charCodeAt(r);o>=55296&&o<=57343&&(o=65536+((o&1023)<<10)|t.charCodeAt(++r)&1023),o<=127?++e:o<=2047?e+=2:o<=65535?e+=3:o<=2097151?e+=4:o<=67108863?e+=5:e+=6}return e}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(t){var e=Module.___cxa_demangle||Module.__cxa_demangle;if(e){try{var r=t.substr(1),o=lengthBytesUTF8(r)+1,a=_malloc(o);stringToUTF8(r,a,o);var n=_malloc(4),u=e(a,0,0,n);if(getValue(n,"i32")===0&&u)return Pointer_stringify(u)}catch{}finally{a&&_free(a),n&&_free(n),u&&_free(u)}return t}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t}function demangleAll(t){var e=/__Z[\w\d_]+/g;return t.replace(e,function(r){var o=demangle(r);return r===o?r:r+" ["+o+"]"})}function jsStackTrace(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()}function stackTrace(){var t=jsStackTrace();return Module.extraStackTrace&&(t+=` -`+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY<TOTAL_STACK&&Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),Module.buffer?buffer=Module.buffer:buffer=new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}if(HEAP32[0]=1668509029,HEAP16[1]=25459,HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;function callRuntimeCallbacks(t){for(;t.length>0;){var e=t.shift();if(typeof e=="function"){e();continue}var r=e.func;typeof r=="number"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var o=r>0?r:lengthBytesUTF8(t)+1,a=new Array(o),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r<t.length;r++){var o=t[r];o>255&&(o&=255),e.push(String.fromCharCode(o))}return e.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var o,a;r&&(a=e+lengthBytesUTF8(t),o=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=o)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var o=0;o<t.length;++o)HEAP8[e++>>0]=t.charCodeAt(o);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var o=e>>>16,a=e&65535,n=r>>>16,u=r&65535;return a*u+(o*u+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(t){return t}function addRunDependency(t){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(t){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(t,e,r,o,a,n,u,A){return _nbind.callbackSignatureList[t].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(t,e,r,o,a,n,u,A){return ASM_CONSTS[t](e,r,o,a,n,u,A)}function _emscripten_asm_const_iiiii(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiidddddd(t,e,r,o,a,n,u,A,p){return ASM_CONSTS[t](e,r,o,a,n,u,A,p)}function _emscripten_asm_const_iiididi(t,e,r,o,a,n,u){return ASM_CONSTS[t](e,r,o,a,n,u)}function _emscripten_asm_const_iiii(t,e,r,o){return ASM_CONSTS[t](e,r,o)}function _emscripten_asm_const_iiiid(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiiiii(t,e,r,o,a,n){return ASM_CONSTS[t](e,r,o,a,n)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(t,e){__ATEXIT__.unshift({func:t,arg:e})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(t,e,r,o){var a=arguments.length,n=a<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,r):o,u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(t,e,r,o);else for(var A=t.length-1;A>=0;A--)(u=t[A])&&(n=(a<3?u(n):a>3?u(e,r,n):u(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n}function _defineHidden(t){return function(e,r){Object.defineProperty(e,r,{configurable:!1,enumerable:!1,value:t,writable:!0})}}var _nbind={};function __nbind_free_external(t){_nbind.externalList[t].dereference(t)}function __nbind_reference_external(t){_nbind.externalList[t].reference()}function _llvm_stackrestore(t){var e=_llvm_stacksave,r=e.LLVM_SAVEDSTACKS[t];e.LLVM_SAVEDSTACKS.splice(t,1),Runtime.stackRestore(r)}function __nbind_register_pool(t,e,r,o){_nbind.Pool.pageSize=t,_nbind.Pool.usedPtr=e/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=o/4,HEAP32[e/4]=16909060,HEAP8[e]==1&&(_nbind.bigEndian=!0),HEAP32[e/4]=0,_nbind.makeTypeKindTbl=(n={},n[1024]=_nbind.PrimitiveType,n[64]=_nbind.Int64Type,n[2048]=_nbind.BindClass,n[3072]=_nbind.BindClassPtr,n[4096]=_nbind.SharedClassPtr,n[5120]=_nbind.ArrayType,n[6144]=_nbind.ArrayType,n[7168]=_nbind.CStringType,n[9216]=_nbind.CallbackType,n[10240]=_nbind.BindType,n),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});a.proto=Module,_nbind.BindClass.list.push(a);var n}function _emscripten_set_main_loop_timing(t,e){if(Browser.mainLoop.timingMode=t,Browser.mainLoop.timingValue=e,!Browser.mainLoop.func)return 1;if(t==0)Browser.mainLoop.scheduler=function(){var u=Math.max(0,Browser.mainLoop.tickStartTime+e-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,u)},Browser.mainLoop.method="timeout";else if(t==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(t==2){if(!window.setImmediate){let n=function(u){u.source===window&&u.data===o&&(u.stopPropagation(),r.shift()())};var a=n,r=[],o="setimmediate";window.addEventListener("message",n,!0),window.setImmediate=function(A){r.push(A),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(A),window.postMessage({target:o})):window.postMessage(o,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(t,e,r,o,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=t,Browser.mainLoop.arg=o;var n;typeof o<"u"?n=function(){Module.dynCall_vi(t,o)}:n=function(){Module.dynCall_v(t)};var u=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var p=Date.now(),h=Browser.mainLoop.queue.shift();if(h.func(h.arg),Browser.mainLoop.remainingBlockers){var E=Browser.mainLoop.remainingBlockers,I=E%1==0?E-1:Math.floor(E);h.counted?Browser.mainLoop.remainingBlockers=I:(I=I+.5,Browser.mainLoop.remainingBlockers=(8*E+I)/9)}if(console.log('main loop blocker "'+h.name+'" took '+(Date.now()-p)+" ms"),Browser.mainLoop.updateStatus(),u<Browser.mainLoop.currentlyRunningMainloop)return;setTimeout(Browser.mainLoop.runner,0);return}if(!(u<Browser.mainLoop.currentlyRunningMainloop)){if(Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0,Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(n),!(u<Browser.mainLoop.currentlyRunningMainloop)&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Browser.mainLoop.scheduler())}}},a||(e&&e>0?_emscripten_set_main_loop_timing(0,1e3/e):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var t=Browser.mainLoop.timingMode,e=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(t,e),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var t=Module.statusMessage||"Please wait...",e=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;e?e<r?Module.setStatus(t+" ("+(r-e)+"/"+r+")"):Module.setStatus(t):Module.setStatus("")}},runIter:function(t){if(!ABORT){if(Module.preMainLoop){var e=Module.preMainLoop();if(e===!1)return}try{t()}catch(r){if(r instanceof ExitStatus)return;throw r&&typeof r=="object"&&r.stack&&Module.printErr("exception thrown: "+[r,r.stack]),r}Module.postMainLoop&&Module.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(Module.preloadPlugins||(Module.preloadPlugins=[]),Browser.initted)return;Browser.initted=!0;try{new Blob,Browser.hasBlobConstructor=!0}catch{Browser.hasBlobConstructor=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder=typeof MozBlobBuilder<"u"?MozBlobBuilder:typeof WebKitBlobBuilder<"u"?WebKitBlobBuilder:Browser.hasBlobConstructor?null:console.log("warning: no BlobBuilder"),Browser.URLObject=typeof window<"u"?window.URL?window.URL:window.webkitURL:void 0,!Module.noImageDecoding&&typeof Browser.URLObject>"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var t={};t.canHandle=function(n){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(n)},t.handle=function(n,u,A,p){var h=null;if(Browser.hasBlobConstructor)try{h=new Blob([n],{type:Browser.getMimetype(u)}),h.size!==n.length&&(h=new Blob([new Uint8Array(n).buffer],{type:Browser.getMimetype(u)}))}catch(x){Runtime.warnOnce("Blob constructor present but fails: "+x+"; falling back to blob builder")}if(!h){var E=new Browser.BlobBuilder;E.append(new Uint8Array(n).buffer),h=E.getBlob()}var I=Browser.URLObject.createObjectURL(h),v=new Image;v.onload=function(){assert(v.complete,"Image "+u+" could not be decoded");var C=document.createElement("canvas");C.width=v.width,C.height=v.height;var R=C.getContext("2d");R.drawImage(v,0,0),Module.preloadedImages[u]=C,Browser.URLObject.revokeObjectURL(I),A&&A(n)},v.onerror=function(C){console.log("Image "+I+" could not be decoded"),p&&p()},v.src=I},Module.preloadPlugins.push(t);var e={};e.canHandle=function(n){return!Module.noAudioDecoding&&n.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(n,u,A,p){var h=!1;function E(R){h||(h=!0,Module.preloadedAudios[u]=R,A&&A(n))}function I(){h||(h=!0,Module.preloadedAudios[u]=new Audio,p&&p())}if(Browser.hasBlobConstructor){try{var v=new Blob([n],{type:Browser.getMimetype(u)})}catch{return I()}var x=Browser.URLObject.createObjectURL(v),C=new Audio;C.addEventListener("canplaythrough",function(){E(C)},!1),C.onerror=function(L){if(h)return;console.log("warning: browser could not fully decode audio "+u+", trying slower base64 approach");function U(z){for(var te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ae="=",le="",ce=0,Ce=0,de=0;de<z.length;de++)for(ce=ce<<8|z[de],Ce+=8;Ce>=6;){var Be=ce>>Ce-6&63;Ce-=6,le+=te[Be]}return Ce==2?(le+=te[(ce&3)<<4],le+=ae+ae):Ce==4&&(le+=te[(ce&15)<<2],le+=ae),le}C.src="data:audio/x-"+u.substr(-3)+";base64,"+U(n),E(C)},C.src=x,Browser.safeSetTimeout(function(){E(C)},1e4)}else return I()},Module.preloadPlugins.push(e);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var o=Module.canvas;o&&(o.requestPointerLock=o.requestPointerLock||o.mozRequestPointerLock||o.webkitRequestPointerLock||o.msRequestPointerLock||function(){},o.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},o.exitPointerLock=o.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&o.addEventListener("click",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(t,e,r,o){if(e&&Module.ctx&&t==Module.canvas)return Module.ctx;var a,n;if(e){var u={antialias:!1,alpha:!1};if(o)for(var A in o)u[A]=o[A];n=GL.createContext(t,u),n&&(a=GL.getContext(n).GLctx)}else a=t.getContext("2d");return a?(r&&(e||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=a,e&&GL.makeContextCurrent(n),Module.useWebGL=e,Browser.moduleContextCreatedCallbacks.forEach(function(p){p()}),Browser.init()),a):null},destroyContext:function(t,e,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(t,e,r){Browser.lockPointer=t,Browser.resizeCanvas=e,Browser.vrDevice=r,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var o=Module.canvas;function a(){Browser.isFullscreen=!1;var u=o.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===u?(o.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},o.exitFullscreen=o.exitFullscreen.bind(document),Browser.lockPointer&&o.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(u.parentNode.insertBefore(o,u),u.parentNode.removeChild(u),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(o)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",a,!1),document.addEventListener("mozfullscreenchange",a,!1),document.addEventListener("webkitfullscreenchange",a,!1),document.addEventListener("MSFullscreenChange",a,!1));var n=document.createElement("div");o.parentNode.insertBefore(n,o),n.appendChild(o),n.requestFullscreen=n.requestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen||(n.webkitRequestFullscreen?function(){n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(n.webkitRequestFullScreen?function(){n.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?n.requestFullscreen({vrDisplay:r}):n.requestFullscreen()},requestFullScreen:function(t,e,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(o,a,n){return Browser.requestFullscreen(o,a,n)},Browser.requestFullscreen(t,e,r)},nextRAF:0,fakeRequestAnimationFrame:function(t){var e=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=e+1e3/60;else for(;e+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-e,0);setTimeout(t,r)},requestAnimationFrame:function t(e){typeof window>"u"?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(t){return function(){if(!ABORT)return t.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var t=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],t.forEach(function(e){e()})}},safeRequestAnimationFrame:function(t){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))})},safeSetTimeout:function(t,e){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))},e)},safeSetInterval:function(t,e){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&t()},e)},getMimetype:function(t){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[t.substr(t.lastIndexOf(".")+1)]},getUserMedia:function(t){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(t)},getMovementX:function(t){return t.movementX||t.mozMovementX||t.webkitMovementX||0},getMovementY:function(t){return t.movementY||t.mozMovementY||t.webkitMovementY||0},getMouseWheelDelta:function(t){var e=0;switch(t.type){case"DOMMouseScroll":e=t.detail;break;case"mousewheel":e=t.wheelDelta;break;case"wheel":e=t.deltaY;break;default:throw"unrecognized mouse wheel event: "+t.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(t){if(Browser.pointerLock)t.type!="mousemove"&&"mozMovementX"in t?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(t),Browser.mouseMovementY=Browser.getMovementY(t)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var e=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,o=Module.canvas.height,a=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,n=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(t.type==="touchstart"||t.type==="touchend"||t.type==="touchmove"){var u=t.touch;if(u===void 0)return;var A=u.pageX-(a+e.left),p=u.pageY-(n+e.top);A=A*(r/e.width),p=p*(o/e.height);var h={x:A,y:p};if(t.type==="touchstart")Browser.lastTouches[u.identifier]=h,Browser.touches[u.identifier]=h;else if(t.type==="touchend"||t.type==="touchmove"){var E=Browser.touches[u.identifier];E||(E=h),Browser.lastTouches[u.identifier]=E,Browser.touches[u.identifier]=h}return}var I=t.pageX-(a+e.left),v=t.pageY-(n+e.top);I=I*(r/e.width),v=v*(o/e.height),Browser.mouseMovementX=I-Browser.mouseX,Browser.mouseMovementY=v-Browser.mouseY,Browser.mouseX=I,Browser.mouseY=v}},asyncLoad:function(t,e,r,o){var a=o?"":"al "+t;Module.readAsync(t,function(n){assert(n,'Loading data file "'+t+'" failed (no arrayBuffer).'),e(new Uint8Array(n)),a&&removeRunDependency(a)},function(n){if(r)r();else throw'Loading data file "'+t+'" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var t=Module.canvas;Browser.resizeListeners.forEach(function(e){e(t.width,t.height)})},setCanvasSize:function(t,e,r){var o=Module.canvas;Browser.updateCanvasDimensions(o,t,e),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},updateCanvasDimensions:function(t,e,r){e&&r?(t.widthNative=e,t.heightNative=r):(e=t.widthNative,r=t.heightNative);var o=e,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(o/a<Module.forcedAspectRatio?o=Math.round(a*Module.forcedAspectRatio):a=Math.round(o/Module.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===t.parentNode&&typeof screen<"u"){var n=Math.min(screen.width/o,screen.height/a);o=Math.round(o*n),a=Math.round(a*n)}Browser.resizeCanvas?(t.width!=o&&(t.width=o),t.height!=a&&(t.height=a),typeof t.style<"u"&&(t.style.removeProperty("width"),t.style.removeProperty("height"))):(t.width!=e&&(t.width=e),t.height!=r&&(t.height=r),typeof t.style<"u"&&(o!=e||a!=r?(t.style.setProperty("width",o+"px","important"),t.style.setProperty("height",a+"px","important")):(t.style.removeProperty("width"),t.style.removeProperty("height"))))},wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var t=Browser.nextWgetRequestHandle;return Browser.nextWgetRequestHandle++,t}},SYSCALLS={varargs:0,get:function(t){SYSCALLS.varargs+=4;var e=HEAP32[SYSCALLS.varargs-4>>2];return e},getStr:function(){var t=Pointer_stringify(SYSCALLS.get());return t},get64:function(){var t=SYSCALLS.get(),e=SYSCALLS.get();return t>=0?assert(e===0):assert(e===-1),t},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(o){return(typeof FS>"u"||!(o instanceof FS.ErrnoError))&&abort(o),-o.errno}}function ___syscall54(t,e){SYSCALLS.varargs=e;try{return 0}catch(r){return(typeof FS>"u"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(t){var e=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr<X>"],[640,1,"std::unique_ptr<X>"],[5120,1,"std::vector<X>"],[6144,2,"std::array<X, Y>"],[9216,-1,"std::function<X (Y)>"]];function r(p,h,E,I,v,x){if(h==1){var C=I&896;(C==128||C==256||C==384)&&(p="X const")}var R;return x?R=E.replace("X",p).replace("Y",v):R=p.replace("X",E).replace("Y",v),R.replace(/([*&]) (?=[*&])/g,"$1")}function o(p,h,E,I,v){throw new Error(p+" type "+E.replace("X",h+"?")+(I?" with flag "+I:"")+" in "+v)}function a(p,h,E,I,v,x,C,R){x===void 0&&(x="X"),R===void 0&&(R=1);var L=E(p);if(L)return L;var U=I(p),z=U.placeholderFlag,te=e[z];C&&te&&(x=r(C[2],C[0],x,te[0],"?",!0));var ae;z==0&&(ae="Unbound"),z>=10&&(ae="Corrupt"),R>20&&(ae="Deeply nested"),ae&&o(ae,p,x,z,v||"?");var le=U.paramList[0],ce=a(le,h,E,I,v,x,te,R+1),Ce,de={flags:te[0],id:p,name:"",paramList:[ce]},Be=[],Ee="?";switch(U.placeholderFlag){case 1:Ce=ce.spec;break;case 2:if((ce.flags&15360)==1024&&ce.spec.ptrSize==1){de.flags=7168;break}case 3:case 6:case 5:Ce=ce.spec,ce.flags&15360;break;case 8:Ee=""+U.paramList[1],de.paramList.push(U.paramList[1]);break;case 9:for(var g=0,me=U.paramList[1];g<me.length;g++){var we=me[g],Ae=a(we,h,E,I,v,x,te,R+1);Be.push(Ae.name),de.paramList.push(Ae)}Ee=Be.join(", ");break;default:break}if(de.name=r(te[2],te[0],ce.name,ce.flags,Ee),Ce){for(var ne=0,Z=Object.keys(Ce);ne<Z.length;ne++){var xe=Z[ne];de[xe]=de[xe]||Ce[xe]}de.flags|=Ce.flags}return n(h,de)}function n(p,h){var E=h.flags,I=E&896,v=E&15360;return!h.name&&v==1024&&(h.ptrSize==1?h.name=(E&16?"":(E&8?"un":"")+"signed ")+"char":h.name=(E&8?"u":"")+(E&32?"float":"int")+(h.ptrSize*8+"_t")),h.ptrSize==8&&!(E&32)&&(v=64),v==2048&&(I==512||I==640?v=4096:I&&(v=3072)),p(v,h)}var u=function(){function p(h){this.id=h.id,this.name=h.name,this.flags=h.flags,this.spec=h}return p.prototype.toString=function(){return this.name},p}(),A={Type:u,getComplexType:a,makeType:n,structureList:e};return t.output=A,t.output||A}function __nbind_register_type(t,e){var r=_nbind.readAsciiString(e),o={flags:10240,id:t,name:r};_nbind.makeType(_nbind.constructType,o)}function __nbind_register_callback_signature(t,e){var r=_nbind.readTypeIdList(t,e),o=_nbind.callbackSignatureList.length;return _nbind.callbackSignatureList[o]=_nbind.makeJSCaller(r),o}function __extends(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);function o(){this.constructor=t}o.prototype=e.prototype,t.prototype=new o}function __nbind_register_class(t,e,r,o,a,n,u){var A=_nbind.readAsciiString(u),p=_nbind.readPolicyList(e),h=HEAPU32.subarray(t/4,t/4+2),E={flags:2048|(p.Value?2:0),id:h[0],name:A},I=_nbind.makeType(_nbind.constructType,E);I.ptrType=_nbind.getComplexType(h[1],_nbind.constructType,_nbind.getType,_nbind.queryType),I.destroy=_nbind.makeMethodCaller(I.ptrType,{boundID:E.id,flags:0,name:"destroy",num:0,ptr:n,title:I.name+".free",typeList:["void","uint32_t","uint32_t"]}),a&&(I.superIdList=Array.prototype.slice.call(HEAPU32.subarray(r/4,r/4+a)),I.upcastList=Array.prototype.slice.call(HEAPU32.subarray(o/4,o/4+a))),Module[I.name]=I.makeBound(p),_nbind.BindClass.list.push(I)}function _removeAccessorPrefix(t){var e=/^[Gg]et_?([A-Z]?([A-Z]?))/;return t.replace(e,function(r,o,a){return a?o:o.toLowerCase()})}function __nbind_register_function(t,e,r,o,a,n,u,A,p,h){var E=_nbind.getType(t),I=_nbind.readPolicyList(e),v=_nbind.readTypeIdList(r,o),x;if(u==5)x=[{direct:a,name:"__nbindConstructor",ptr:0,title:E.name+" constructor",typeList:["uint32_t"].concat(v.slice(1))},{direct:n,name:"__nbindValueConstructor",ptr:0,title:E.name+" value constructor",typeList:["void","uint32_t"].concat(v.slice(1))}];else{var C=_nbind.readAsciiString(A),R=(E.name&&E.name+".")+C;(u==3||u==4)&&(C=_removeAccessorPrefix(C)),x=[{boundID:t,direct:n,name:C,ptr:a,title:R,typeList:v}]}for(var L=0,U=x;L<U.length;L++){var z=U[L];z.signatureType=u,z.policyTbl=I,z.num=p,z.flags=h,E.addMethod(z)}}function _nbind_value(t,e){_nbind.typeNameTbl[t]||_nbind.throwError("Unknown value type "+t),Module.NBind.bind_value(t,e),_defineHidden(_nbind.typeNameTbl[t].proto.prototype.__nbindValueConstructor)(e.prototype,"__nbindValueConstructor")}Module._nbind_value=_nbind_value;function __nbind_get_value_object(t,e){var r=_nbind.popValue(t);if(!r.fromJS)throw new Error("Object "+r+" has no fromJS function");r.fromJS(function(){r.__nbindValueConstructor.apply(this,Array.prototype.concat.apply([e],arguments))})}function _emscripten_memcpy_big(t,e,r){return HEAPU8.set(HEAPU8.subarray(e,e+r),t),t}function __nbind_register_primitive(t,e,r){var o={flags:1024|r,id:t,ptrSize:e};_nbind.makeType(_nbind.constructType,o)}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);function ___setErrNo(t){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=t),t}function _llvm_stacksave(){var t=_llvm_stacksave;return t.LLVM_SAVEDSTACKS||(t.LLVM_SAVEDSTACKS=[]),t.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),t.LLVM_SAVEDSTACKS.length-1}function ___syscall140(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=SYSCALLS.get(),u=SYSCALLS.get(),A=a;return FS.llseek(r,A,u),HEAP32[n>>2]=r.position,r.getdents&&A===0&&u===0&&(r.getdents=null),0}catch(p){return(typeof FS>"u"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall146(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.get(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(E,I){var v=___syscall146.buffers[E];assert(v),I===0||I===10?((E===1?Module.print:Module.printErr)(UTF8ArrayToString(v,0)),v.length=0):v.push(I)});for(var u=0;u<a;u++){for(var A=HEAP32[o+u*8>>2],p=HEAP32[o+(u*8+4)>>2],h=0;h<p;h++)___syscall146.printChar(r,HEAPU8[A+h]);n+=p}return n}catch(E){return(typeof FS>"u"||!(E instanceof FS.ErrnoError))&&abort(E),-E.errno}}function __nbind_finish(){for(var t=0,e=_nbind.BindClass.list;t<e.length;t++){var r=e[t];r.finish()}}var ___dso_handle=STATICTOP;STATICTOP+=16,function(_nbind){var typeIdTbl={};_nbind.typeNameTbl={};var Pool=function(){function t(){}return t.lalloc=function(e){e=e+7&-8;var r=HEAPU32[t.usedPtr];if(e>t.pageSize/2||e>t.pageSize-r){var o=_nbind.typeNameTbl.NBind.proto;return o.lalloc(e)}else return HEAPU32[t.usedPtr]=r+e,t.rootPtr+r},t.lreset=function(e,r){var o=HEAPU32[t.pagePtr];if(o){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(e,r)}else HEAPU32[t.usedPtr]=e},t}();_nbind.Pool=Pool;function constructType(t,e){var r=t==10240?_nbind.makeTypeNameTbl[e.name]||_nbind.BindType:_nbind.makeTypeKindTbl[t],o=new r(e);return typeIdTbl[e.id]=o,_nbind.typeNameTbl[e.name]=o,o}_nbind.constructType=constructType;function getType(t){return typeIdTbl[t]}_nbind.getType=getType;function queryType(t){var e=HEAPU8[t],r=_nbind.structureList[e][1];t/=4,r<0&&(++t,r=HEAPU32[t]+1);var o=Array.prototype.slice.call(HEAPU32.subarray(t+1,t+1+r));return e==9&&(o=[o[0],o.slice(1)]),{paramList:o,placeholderFlag:e}}_nbind.queryType=queryType;function getTypes(t,e){return t.map(function(r){return typeof r=="number"?_nbind.getComplexType(r,constructType,getType,queryType,e):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(t,e){return Array.prototype.slice.call(HEAPU32,t/4,t/4+e)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(t){for(var e=t;HEAPU8[e++];);return String.fromCharCode.apply("",HEAPU8.subarray(t,e-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(t){var e={};if(t)for(;;){var r=HEAPU32[t/4];if(!r)break;e[readAsciiString(r)]=!0,t+=4}return e}_nbind.readPolicyList=readPolicyList;function getDynCall(t,e){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},o=t.map(function(n){return r[n.name]||"i"}).join(""),a=Module["dynCall_"+o];if(!a)throw new Error("dynCall_"+o+" not found for "+e+"("+t.map(function(n){return n.name}).join(", ")+")");return a}_nbind.getDynCall=getDynCall;function addMethod(t,e,r,o){var a=t[e];t.hasOwnProperty(e)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),t[e]=a),a.addMethod(r,o)):(r.arity=o,t[e]=r)}_nbind.addMethod=addMethod;function throwError(t){throw new Error(t)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return e.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},e.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},e}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return o.heap=a[r.ptrSize*8],o.ptrSize=r.ptrSize,o}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="number")return a;throw new Error("Type mismatch")}},e}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(t,e){if(t==null){if(e&&e.Nullable)return 0;throw new Error("Type mismatch")}if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t)+1,o=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(t,HEAPU8,o,r),o}_nbind.pushCString=pushCString;function popCString(t){return t===0?null:Module.Pointer_stringify(t)}_nbind.popCString=popCString;var CStringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushCString(a,o)}},e}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=function(o){return!!o},r}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireRead=function(r){return"!!("+r+")"},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="boolean")return a;throw new Error("Type mismatch")}||r},e}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function t(){}return t.prototype.persist=function(){this.__nbindState|=1},t}();_nbind.Wrapper=Wrapper;function makeBound(t,e){var r=function(o){__extends(a,o);function a(n,u,A,p){var h=o.call(this)||this;if(!(h instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var E=u,I=A,v=p;if(n!==_nbind.ptrMarker){var x=h.__nbindConstructor.apply(h,arguments);E=4608,v=HEAPU32[x/4],I=HEAPU32[x/4+1]}var C={configurable:!0,enumerable:!1,value:null,writable:!1},R={__nbindFlags:E,__nbindPtr:I};v&&(R.__nbindShared=v,_nbind.mark(h));for(var L=0,U=Object.keys(R);L<U.length;L++){var z=U[L];C.value=R[z],Object.defineProperty(h,z,C)}return _defineHidden(0)(h,"__nbindState"),h}return a.prototype.free=function(){e.destroy.call(this,this.__nbindShared,this.__nbindFlags),this.__nbindState|=2,disableMember(this,"__nbindShared"),disableMember(this,"__nbindPtr")},a}(Wrapper);return __decorate([_defineHidden()],r.prototype,"__nbindConstructor",void 0),__decorate([_defineHidden()],r.prototype,"__nbindValueConstructor",void 0),__decorate([_defineHidden(t)],r.prototype,"__nbindPolicies",void 0),r}_nbind.makeBound=makeBound;function disableMember(t,e){function r(){throw new Error("Accessing deleted object")}Object.defineProperty(t,e,{configurable:!1,enumerable:!1,get:r,set:r})}_nbind.ptrMarker={};var BindClass=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this;return o.wireRead=function(a){return _nbind.popValue(a,o.ptrType)},o.wireWrite=function(a){return pushPointer(a,o.ptrType,!0)},o.pendingSuperCount=0,o.ready=!1,o.methodTbl={},r.paramList?(o.classType=r.paramList[0].classType,o.proto=o.classType.proto):o.classType=o,o}return e.prototype.makeBound=function(r){var o=_nbind.makeBound(r,this);return this.proto=o,this.ptrType.proto=o,o},e.prototype.addMethod=function(r){var o=this.methodTbl[r.name]||[];o.push(r),this.methodTbl[r.name]=o},e.prototype.registerMethods=function(r,o){for(var a,n=0,u=Object.keys(r.methodTbl);n<u.length;n++)for(var A=u[n],p=r.methodTbl[A],h=0,E=p;h<E.length;h++){var I=E[h],v=void 0,x=void 0;if(v=this.proto.prototype,!(o&&I.signatureType!=1))switch(I.signatureType){case 1:v=this.proto;case 5:x=_nbind.makeCaller(I),_nbind.addMethod(v,I.name,x,I.typeList.length-1);break;case 4:a=_nbind.makeMethodCaller(r.ptrType,I);break;case 3:Object.defineProperty(v,I.name,{configurable:!0,enumerable:!1,get:_nbind.makeMethodCaller(r.ptrType,I),set:a});break;case 2:x=_nbind.makeMethodCaller(r.ptrType,I),_nbind.addMethod(v,I.name,x,I.typeList.length-1);break;default:break}}},e.prototype.registerSuperMethods=function(r,o,a){if(!a[r.name]){a[r.name]=!0;for(var n=0,u,A=0,p=r.superIdList||[];A<p.length;A++){var h=p[A],E=_nbind.getType(h);n++<o||o<0?u=-1:u=0,this.registerSuperMethods(E,u,a)}this.registerMethods(r,o<0)}},e.prototype.finish=function(){if(this.ready)return this;this.ready=!0,this.superList=(this.superIdList||[]).map(function(a){return _nbind.getType(a).finish()});var r=this.proto;if(this.superList.length){var o=function(){this.constructor=r};o.prototype=this.superList[0].proto.prototype,r.prototype=new o}return r!=Module&&(r.prototype.__nbindType=this),this.registerSuperMethods(this,1,{}),this},e.prototype.upcastStep=function(r,o){if(r==this)return o;for(var a=0;a<this.superList.length;++a){var n=this.superList[a].upcastStep(r,_nbind.callUpcast(this.upcastList[a],o));if(n)return n}return 0},e}(_nbind.BindType);BindClass.list=[],_nbind.BindClass=BindClass;function popPointer(t,e){return t?new e.proto(_nbind.ptrMarker,e.flags,t):null}_nbind.popPointer=popPointer;function pushPointer(t,e,r){if(!(t instanceof _nbind.Wrapper)){if(r)return _nbind.pushValue(t);throw new Error("Type mismatch")}var o=t.__nbindPtr,a=t.__nbindType.classType,n=e.classType;if(t instanceof e.proto)for(;a!=n;)o=_nbind.callUpcast(a.upcastList[0],o),a=a.superList[0];else if(o=a.upcastStep(n,o),!o)throw new Error("Type mismatch");return o}_nbind.pushPointer=pushPointer;function pushMutablePointer(t,e){var r=pushPointer(t,e);if(t.__nbindFlags&1)throw new Error("Passing a const value as a non-const argument");return r}var BindClassPtr=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this;o.classType=r.paramList[0].classType,o.proto=o.classType.proto;var a=r.flags&1,n=(o.flags&896)==256&&r.flags&2,u=a?pushPointer:pushMutablePointer,A=n?_nbind.popValue:popPointer;return o.makeWireWrite=function(p,h){return h.Nullable?function(E){return E?u(E,o):0}:function(E){return u(E,o)}},o.wireRead=function(p){return A(p,o)},o.wireWrite=function(p){return u(p,o)},o}return e}(_nbind.BindType);_nbind.BindClassPtr=BindClassPtr;function popShared(t,e){var r=HEAPU32[t/4],o=HEAPU32[t/4+1];return o?new e.proto(_nbind.ptrMarker,e.flags,o,r):null}_nbind.popShared=popShared;function pushShared(t,e){if(!(t instanceof e.proto))throw new Error("Type mismatch");return t.__nbindShared}function pushMutableShared(t,e){if(!(t instanceof e.proto))throw new Error("Type mismatch");if(t.__nbindFlags&1)throw new Error("Passing a const value as a non-const argument");return t.__nbindShared}var SharedClassPtr=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this;o.readResources=[_nbind.resources.pool],o.classType=r.paramList[0].classType,o.proto=o.classType.proto;var a=r.flags&1,n=a?pushShared:pushMutableShared;return o.wireRead=function(u){return popShared(u,o)},o.wireWrite=function(u){return n(u,o)},o}return e}(_nbind.BindType);_nbind.SharedClassPtr=SharedClassPtr,_nbind.externalList=[0];var firstFreeExternal=0,External=function(){function t(e){this.refCount=1,this.data=e}return t.prototype.register=function(){var e=firstFreeExternal;return e?firstFreeExternal=_nbind.externalList[e]:e=_nbind.externalList.length,_nbind.externalList[e]=this,e},t.prototype.reference=function(){++this.refCount},t.prototype.dereference=function(e){--this.refCount==0&&(this.free&&this.free(),_nbind.externalList[e]=firstFreeExternal,firstFreeExternal=e)},t}();_nbind.External=External;function popExternal(t){var e=_nbind.externalList[t];return e.dereference(t),e.data}function pushExternal(t){var e=new External(t);return e.reference(),e.register()}var ExternalType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popExternal,r.wireWrite=pushExternal,r}return e}(_nbind.BindType);_nbind.ExternalType=ExternalType,_nbind.callbackSignatureList=[];var CallbackType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=function(o){return typeof o!="function"&&_nbind.throwError("Type mismatch"),new _nbind.External(o).register()},r}return e}(_nbind.BindType);_nbind.CallbackType=CallbackType,_nbind.valueList=[0];var firstFreeValue=0;function pushValue(t){var e=firstFreeValue;return e?firstFreeValue=_nbind.valueList[e]:e=_nbind.valueList.length,_nbind.valueList[e]=t,e*2+1}_nbind.pushValue=pushValue;function popValue(t,e){if(t||_nbind.throwError("Value type JavaScript class is missing or not registered"),t&1){t>>=1;var r=_nbind.valueList[t];return _nbind.valueList[t]=firstFreeValue,firstFreeValue=t,r}else{if(e)return _nbind.popShared(t,e);throw new Error("Invalid value slot "+t)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(t){return typeof t=="number"?t:pushValue(t)*4096+valueBase}function pop64(t){return t<valueBase?t:popValue((t-valueBase)/4096)}var CreateValueType=function(t){__extends(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.makeWireWrite=function(r){return"(_nbind.pushValue(new "+r+"))"},e}(_nbind.BindType);_nbind.CreateValueType=CreateValueType;var Int64Type=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=push64,r.wireRead=pop64,r}return e}(_nbind.BindType);_nbind.Int64Type=Int64Type;function pushArray(t,e){if(!t)return 0;var r=t.length;if((e.size||e.size===0)&&r<e.size)throw new Error("Type mismatch");var o=e.memberType.ptrSize,a=_nbind.Pool.lalloc(4+r*o);HEAPU32[a/4]=r;var n=e.memberType.heap,u=(a+4)/o,A=e.memberType.wireWrite,p=0;if(A)for(;p<r;)n[u++]=A(t[p++]);else for(;p<r;)n[u++]=t[p++];return a}_nbind.pushArray=pushArray;function popArray(t,e){if(t===0)return null;var r=HEAPU32[t/4],o=new Array(r),a=e.memberType.heap;t=(t+4)/e.memberType.ptrSize;var n=e.memberType.wireRead,u=0;if(n)for(;u<r;)o[u++]=n(a[t++]);else for(;u<r;)o[u++]=a[t++];return o}_nbind.popArray=popArray;var ArrayType=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this;return o.wireRead=function(a){return popArray(a,o)},o.wireWrite=function(a){return pushArray(a,o)},o.readResources=[_nbind.resources.pool],o.writeResources=[_nbind.resources.pool],o.memberType=r.paramList[0],r.paramList[1]&&(o.size=r.paramList[1]),o}return e}(_nbind.BindType);_nbind.ArrayType=ArrayType;function pushString(t,e){if(t==null)if(e&&e.Nullable)t="";else throw new Error("Type mismatch");if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t),o=_nbind.Pool.lalloc(4+r+1);return HEAPU32[o/4]=r,Module.stringToUTF8Array(t,HEAPU8,o+4,r+1),o}_nbind.pushString=pushString;function popString(t){if(t===0)return null;var e=HEAPU32[t/4];return Module.Pointer_stringify(t+4,e)}_nbind.popString=popString;var StringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popString,r.wireWrite=pushString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushString(a,o)}},e}(_nbind.BindType);_nbind.StringType=StringType;function makeArgList(t){return Array.apply(null,Array(t)).map(function(e,r){return"a"+(r+1)})}function anyNeedsWireWrite(t,e){return t.reduce(function(r,o){return r||o.needsWireWrite(e)},!1)}function anyNeedsWireRead(t,e){return t.reduce(function(r,o){return r||!!o.needsWireRead(e)},!1)}function makeWireRead(t,e,r,o){var a=t.length;return r.makeWireRead?r.makeWireRead(o,t,a):r.wireRead?(t[a]=r.wireRead,"(convertParamList["+a+"]("+o+"))"):o}function makeWireWrite(t,e,r,o){var a,n=t.length;return r.makeWireWrite?a=r.makeWireWrite(o,e,t,n):a=r.wireWrite,a?typeof a=="string"?a:(t[n]=a,"(convertParamList["+n+"]("+o+"))"):o}function buildCallerFunction(dynCall,ptrType,ptr,num,policyTbl,needsWireWrite,prefix,returnType,argTypeList,mask,err){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireRead(convertParamList,policyTbl,returnType,"dynCall("+[prefix].concat(argList.map(function(t,e){return makeWireWrite(convertParamList,policyTbl,argTypeList[e],t)})).join(",")+")"),resourceSet=_nbind.listResources([returnType],argTypeList),sourceCode="function("+argList.join(",")+"){"+(mask?"this.__nbindFlags&mask&&err();":"")+resourceSet.makeOpen()+"var r="+callExpression+";"+resourceSet.makeClose()+"return r;}";return eval("("+sourceCode+")")}function buildJSCallerFunction(returnType,argTypeList){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireWrite(convertParamList,null,returnType,"_nbind.externalList[num].data("+argList.map(function(t,e){return makeWireRead(convertParamList,null,argTypeList[e],t)}).join(",")+")"),resourceSet=_nbind.listResources(argTypeList,[returnType]);resourceSet.remove(_nbind.resources.pool);var sourceCode="function("+["dummy","num"].concat(argList).join(",")+"){"+resourceSet.makeOpen()+"var r="+callExpression+";"+resourceSet.makeClose()+"return r;}";return eval("("+sourceCode+")")}_nbind.buildJSCallerFunction=buildJSCallerFunction;function makeJSCaller(t){var e=t.length-1,r=_nbind.getTypes(t,"callback"),o=r[0],a=r.slice(1),n=anyNeedsWireRead(a,null),u=o.needsWireWrite(null);if(!u&&!n)switch(e){case 0:return function(A,p){return _nbind.externalList[p].data()};case 1:return function(A,p,h){return _nbind.externalList[p].data(h)};case 2:return function(A,p,h,E){return _nbind.externalList[p].data(h,E)};case 3:return function(A,p,h,E,I){return _nbind.externalList[p].data(h,E,I)};default:break}return buildJSCallerFunction(o,a)}_nbind.makeJSCaller=makeJSCaller;function makeMethodCaller(t,e){var r=e.typeList.length-1,o=e.typeList.slice(0);o.splice(1,0,"uint32_t",e.boundID);var a=_nbind.getTypes(o,e.title),n=a[0],u=a.slice(3),A=n.needsWireRead(e.policyTbl),p=anyNeedsWireWrite(u,e.policyTbl),h=e.ptr,E=e.num,I=_nbind.getDynCall(a,e.title),v=~e.flags&1;function x(){throw new Error("Calling a non-const method on a const object")}if(!A&&!p)switch(r){case 0:return function(){return this.__nbindFlags&v?x():I(h,E,_nbind.pushPointer(this,t))};case 1:return function(C){return this.__nbindFlags&v?x():I(h,E,_nbind.pushPointer(this,t),C)};case 2:return function(C,R){return this.__nbindFlags&v?x():I(h,E,_nbind.pushPointer(this,t),C,R)};case 3:return function(C,R,L){return this.__nbindFlags&v?x():I(h,E,_nbind.pushPointer(this,t),C,R,L)};default:break}return buildCallerFunction(I,t,h,E,e.policyTbl,p,"ptr,num,pushPointer(this,ptrType)",n,u,v,x)}_nbind.makeMethodCaller=makeMethodCaller;function makeCaller(t){var e=t.typeList.length-1,r=_nbind.getTypes(t.typeList,t.title),o=r[0],a=r.slice(1),n=o.needsWireRead(t.policyTbl),u=anyNeedsWireWrite(a,t.policyTbl),A=t.direct,p=t.ptr;if(t.direct&&!n&&!u){var h=_nbind.getDynCall(r,t.title);switch(e){case 0:return function(){return h(A)};case 1:return function(x){return h(A,x)};case 2:return function(x,C){return h(A,x,C)};case 3:return function(x,C,R){return h(A,x,C,R)};default:break}p=0}var E;if(p){var I=t.typeList.slice(0);I.splice(1,0,"uint32_t"),r=_nbind.getTypes(I,t.title),E="ptr,num"}else p=A,E="ptr";var v=_nbind.getDynCall(r,t.title);return buildCallerFunction(v,null,p,t.num,t.policyTbl,u,E,o,a)}_nbind.makeCaller=makeCaller;function makeOverloader(t,e){var r=[];function o(){return r[arguments.length].apply(this,arguments)}return o.addMethod=function(a,n){r[n]=a},o.addMethod(t,e),o}_nbind.makeOverloader=makeOverloader;var Resource=function(){function t(e,r){var o=this;this.makeOpen=function(){return Object.keys(o.openTbl).join("")},this.makeClose=function(){return Object.keys(o.closeTbl).join("")},this.openTbl={},this.closeTbl={},e&&(this.openTbl[e]=!0),r&&(this.closeTbl[r]=!0)}return t.prototype.add=function(e){for(var r=0,o=Object.keys(e.openTbl);r<o.length;r++){var a=o[r];this.openTbl[a]=!0}for(var n=0,u=Object.keys(e.closeTbl);n<u.length;n++){var a=u[n];this.closeTbl[a]=!0}},t.prototype.remove=function(e){for(var r=0,o=Object.keys(e.openTbl);r<o.length;r++){var a=o[r];delete this.openTbl[a]}for(var n=0,u=Object.keys(e.closeTbl);n<u.length;n++){var a=u[n];delete this.closeTbl[a]}},t}();_nbind.Resource=Resource;function listResources(t,e){for(var r=new Resource,o=0,a=t;o<a.length;o++)for(var n=a[o],u=0,A=n.readResources||[];u<A.length;u++){var p=A[u];r.add(p)}for(var h=0,E=e;h<E.length;h++)for(var n=E[h],I=0,v=n.writeResources||[];I<v.length;I++){var p=v[I];r.add(p)}return r}_nbind.listResources=listResources,_nbind.resources={pool:new Resource("var used=HEAPU32[_nbind.Pool.usedPtr],page=HEAPU32[_nbind.Pool.pagePtr];","_nbind.Pool.lreset(used,page);")};var ExternalBuffer=function(t){__extends(e,t);function e(r,o){var a=t.call(this,r)||this;return a.ptr=o,a}return e.prototype.free=function(){_free(this.ptr)},e}(_nbind.External);function getBuffer(t){return t instanceof ArrayBuffer?new Uint8Array(t):t instanceof DataView?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function pushBuffer(t,e){if(t==null&&e&&e.Nullable&&(t=[]),typeof t!="object")throw new Error("Type mismatch");var r=t,o=r.byteLength||r.length;if(!o&&o!==0&&r.byteLength!==0)throw new Error("Type mismatch");var a=_nbind.Pool.lalloc(8),n=_malloc(o),u=a/4;return HEAPU32[u++]=o,HEAPU32[u++]=n,HEAPU32[u++]=new ExternalBuffer(t,n).register(),HEAPU8.set(getBuffer(t),n),a}var BufferType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=pushBuffer,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushBuffer(a,o)}},e}(_nbind.BindType);_nbind.BufferType=BufferType;function commitBuffer(t,e,r){var o=_nbind.externalList[t].data,a=Buffer;if(typeof Buffer!="function"&&(a=function(){}),!(o instanceof Array)){var n=HEAPU8.subarray(e,e+r);if(o instanceof a){var u=void 0;typeof Buffer.from=="function"&&Buffer.from.length>=3?u=Buffer.from(n):u=new Buffer(n),u.copy(o)}else getBuffer(o).set(n)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var t=0,e=dirtyList;t<e.length;t++){var r=e[t];r.__nbindState&3||r.free()}dirtyList=[],gcTimer=0}_nbind.mark=function(t){};function toggleLightGC(t){t?_nbind.mark=function(e){dirtyList.push(e),gcTimer||(gcTimer=setTimeout(sweep,0))}:_nbind.mark=function(e){}}_nbind.toggleLightGC=toggleLightGC}(_nbind),Module.requestFullScreen=function t(e,r,o){Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."),Module.requestFullScreen=Module.requestFullscreen,Browser.requestFullScreen(e,r,o)},Module.requestFullscreen=function t(e,r,o){Browser.requestFullscreen(e,r,o)},Module.requestAnimationFrame=function t(e){Browser.requestAnimationFrame(e)},Module.setCanvasSize=function t(e,r,o){Browser.setCanvasSize(e,r,o)},Module.pauseMainLoop=function t(){Browser.mainLoop.pause()},Module.resumeMainLoop=function t(){Browser.mainLoop.resume()},Module.getUserMedia=function t(){Browser.getUserMedia()},Module.createContext=function t(e,r,o,a){return Browser.createContext(e,r,o,a)},ENVIRONMENT_IS_NODE?_emscripten_get_now=function(){var e=process.hrtime();return e[0]*1e3+e[1]/1e6}:typeof dateNow<"u"?_emscripten_get_now=dateNow:typeof self=="object"&&self.performance&&typeof self.performance.now=="function"?_emscripten_get_now=function(){return self.performance.now()}:typeof performance=="object"&&typeof performance.now=="function"?_emscripten_get_now=function(){return performance.now()}:_emscripten_get_now=Date.now,__ATEXIT__.push(function(){var t=Module._fflush;t&&t(0);var e=___syscall146.printChar;if(e){var r=___syscall146.buffers;r[1].length&&e(1,10),r[2].length&&e(2,10)}}),DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(t,e,r,o,a,n){try{Module.dynCall_viiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_vif(t,e,r){try{Module.dynCall_vif(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_vid(t,e,r){try{Module.dynCall_vid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_fiff(t,e,r,o){try{return Module.dynCall_fiff(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vi(t,e){try{Module.dynCall_vi(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_vii(t,e,r){try{Module.dynCall_vii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_ii(t,e){try{return Module.dynCall_ii(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_viddi(t,e,r,o,a){try{Module.dynCall_viddi(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_vidd(t,e,r,o){try{Module.dynCall_vidd(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iiii(t,e,r,o){try{return Module.dynCall_iiii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_diii(t,e,r,o){try{return Module.dynCall_diii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_di(t,e){try{return Module.dynCall_di(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_iid(t,e,r){try{return Module.dynCall_iid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_iii(t,e,r){try{return Module.dynCall_iii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiddi(t,e,r,o,a,n){try{Module.dynCall_viiddi(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiiiii(t,e,r,o,a,n,u){try{Module.dynCall_viiiiii(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_dii(t,e,r){try{return Module.dynCall_dii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_i(t){try{return Module.dynCall_i(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_iiiiii(t,e,r,o,a,n){try{return Module.dynCall_iiiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiid(t,e,r,o,a){try{Module.dynCall_viiid(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viififi(t,e,r,o,a,n,u){try{Module.dynCall_viififi(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_viii(t,e,r,o){try{Module.dynCall_viii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_v(t){try{Module.dynCall_v(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_viid(t,e,r,o){try{Module.dynCall_viid(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_idd(t,e,r){try{return Module.dynCall_idd(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiii(t,e,r,o,a){try{Module.dynCall_viiii(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(t,e,r){var o=new t.Int8Array(r),a=new t.Int16Array(r),n=new t.Int32Array(r),u=new t.Uint8Array(r),A=new t.Uint16Array(r),p=new t.Uint32Array(r),h=new t.Float32Array(r),E=new t.Float64Array(r),I=e.DYNAMICTOP_PTR|0,v=e.tempDoublePtr|0,x=e.ABORT|0,C=e.STACKTOP|0,R=e.STACK_MAX|0,L=e.cttz_i8|0,U=e.___dso_handle|0,z=0,te=0,ae=0,le=0,ce=t.NaN,Ce=t.Infinity,de=0,Be=0,Ee=0,g=0,me=0,we=0,Ae=t.Math.floor,ne=t.Math.abs,Z=t.Math.sqrt,xe=t.Math.pow,Ne=t.Math.cos,ht=t.Math.sin,H=t.Math.tan,rt=t.Math.acos,Te=t.Math.asin,Fe=t.Math.atan,ke=t.Math.atan2,Ye=t.Math.exp,Se=t.Math.log,et=t.Math.ceil,Ue=t.Math.imul,b=t.Math.min,w=t.Math.max,S=t.Math.clz32,y=t.Math.fround,F=e.abort,J=e.assert,X=e.enlargeMemory,$=e.getTotalMemory,ie=e.abortOnCannotGrowMemory,be=e.invoke_viiiii,Re=e.invoke_vif,at=e.invoke_vid,dt=e.invoke_fiff,jt=e.invoke_vi,tr=e.invoke_vii,St=e.invoke_ii,ln=e.invoke_viddi,kr=e.invoke_vidd,mr=e.invoke_iiii,br=e.invoke_diii,Kr=e.invoke_di,Kn=e.invoke_iid,Ms=e.invoke_iii,Ri=e.invoke_viiddi,gs=e.invoke_viiiiii,io=e.invoke_dii,Pi=e.invoke_i,Os=e.invoke_iiiiii,so=e.invoke_viiid,uc=e.invoke_viififi,Au=e.invoke_viii,sp=e.invoke_v,op=e.invoke_viid,Us=e.invoke_idd,Dn=e.invoke_viiii,oo=e._emscripten_asm_const_iiiii,_s=e._emscripten_asm_const_iiidddddd,ml=e._emscripten_asm_const_iiiid,yl=e.__nbind_reference_external,ao=e._emscripten_asm_const_iiiiiiii,Vn=e._removeAccessorPrefix,Mn=e._typeModule,Ti=e.__nbind_register_pool,On=e.__decorate,_i=e._llvm_stackrestore,ir=e.___cxa_atexit,Me=e.__extends,ii=e.__nbind_get_value_object,Ha=e.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,hr=e._emscripten_set_main_loop_timing,Ac=e.__nbind_register_primitive,fu=e.__nbind_register_type,fc=e._emscripten_memcpy_big,El=e.__nbind_register_function,vA=e.___setErrNo,pu=e.__nbind_register_class,Ie=e.__nbind_finish,Tt=e._abort,pc=e._nbind_value,Hi=e._llvm_stacksave,hu=e.___syscall54,Yt=e._defineHidden,Cl=e._emscripten_set_main_loop,DA=e._emscripten_get_now,ap=e.__nbind_register_callback_signature,hc=e._emscripten_asm_const_iiiiii,PA=e.__nbind_free_external,Qn=e._emscripten_asm_const_iiii,hi=e._emscripten_asm_const_iiididi,gc=e.___syscall6,SA=e._atexit,aa=e.___syscall140,Ni=e.___syscall146,_o=y(0);let Xe=y(0);function lo(s){s=s|0;var l=0;return l=C,C=C+s|0,C=C+15&-16,l|0}function dc(){return C|0}function gu(s){s=s|0,C=s}function qi(s,l){s=s|0,l=l|0,C=s,R=l}function du(s,l){s=s|0,l=l|0,z||(z=s,te=l)}function bA(s){s=s|0,we=s}function qa(){return we|0}function mc(){var s=0,l=0;Dr(8104,8,400)|0,Dr(8504,408,540)|0,s=9044,l=s+44|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));o[9088]=0,o[9089]=1,n[2273]=0,n[2274]=948,n[2275]=948,ir(17,8104,U|0)|0}function ds(s){s=s|0,ft(s+948|0)}function Ht(s){return s=y(s),((Su(s)|0)&2147483647)>>>0>2139095040|0}function Fn(s,l,c){s=s|0,l=l|0,c=c|0;e:do if(n[s+(l<<3)+4>>2]|0)s=s+(l<<3)|0;else{if((l|2|0)==3&&n[s+60>>2]|0){s=s+56|0;break}switch(l|0){case 0:case 2:case 4:case 5:{if(n[s+52>>2]|0){s=s+48|0;break e}break}default:}if(n[s+68>>2]|0){s=s+64|0;break}else{s=(l|1|0)==5?948:c;break}}while(!1);return s|0}function Ei(s){s=s|0;var l=0;return l=Jv(1e3)|0,la(s,(l|0)!=0,2456),n[2276]=(n[2276]|0)+1,Dr(l|0,8104,1e3)|0,o[s+2>>0]|0&&(n[l+4>>2]=2,n[l+12>>2]=4),n[l+976>>2]=s,l|0}function la(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=C,C=C+16|0,f=d,l||(n[f>>2]=c,g0(s,5,3197,f)),C=d}function co(){return Ei(956)|0}function Hs(s){s=s|0;var l=0;return l=Kt(1e3)|0,ca(l,s),la(n[s+976>>2]|0,1,2456),n[2276]=(n[2276]|0)+1,n[l+944>>2]=0,l|0}function ca(s,l){s=s|0,l=l|0;var c=0;Dr(s|0,l|0,948)|0,Cd(s+948|0,l+948|0),c=s+960|0,s=l+960|0,l=c+40|0;do n[c>>2]=n[s>>2],c=c+4|0,s=s+4|0;while((c|0)<(l|0))}function ua(s){s=s|0;var l=0,c=0,f=0,d=0;if(l=s+944|0,c=n[l>>2]|0,c|0&&(Ho(c+948|0,s)|0,n[l>>2]=0),c=Ci(s)|0,c|0){l=0;do n[(ms(s,l)|0)+944>>2]=0,l=l+1|0;while((l|0)!=(c|0))}c=s+948|0,f=n[c>>2]|0,d=s+952|0,l=n[d>>2]|0,(l|0)!=(f|0)&&(n[d>>2]=l+(~((l+-4-f|0)>>>2)<<2)),ys(c),Xv(s),n[2276]=(n[2276]|0)+-1}function Ho(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0;f=n[s>>2]|0,k=s+4|0,c=n[k>>2]|0,m=c;e:do if((f|0)==(c|0))d=f,B=4;else for(s=f;;){if((n[s>>2]|0)==(l|0)){d=s,B=4;break e}if(s=s+4|0,(s|0)==(c|0)){s=0;break}}while(!1);return(B|0)==4&&((d|0)!=(c|0)?(f=d+4|0,s=m-f|0,l=s>>2,l&&(ww(d|0,f|0,s|0)|0,c=n[k>>2]|0),s=d+(l<<2)|0,(c|0)==(s|0)||(n[k>>2]=c+(~((c+-4-s|0)>>>2)<<2)),s=1):s=0),s|0}function Ci(s){return s=s|0,(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2|0}function ms(s,l){s=s|0,l=l|0;var c=0;return c=n[s+948>>2]|0,(n[s+952>>2]|0)-c>>2>>>0>l>>>0?s=n[c+(l<<2)>>2]|0:s=0,s|0}function ys(s){s=s|0;var l=0,c=0,f=0,d=0;f=C,C=C+32|0,l=f,d=n[s>>2]|0,c=(n[s+4>>2]|0)-d|0,((n[s+8>>2]|0)-d|0)>>>0>c>>>0&&(d=c>>2,Ep(l,d,d,s+8|0),E0(s,l),UA(l)),C=f}function Es(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0;O=Ci(s)|0;do if(O|0){if((n[(ms(s,0)|0)+944>>2]|0)==(s|0)){if(!(Ho(s+948|0,l)|0))break;Dr(l+400|0,8504,540)|0,n[l+944>>2]=0,Le(s);break}B=n[(n[s+976>>2]|0)+12>>2]|0,k=s+948|0,Q=(B|0)==0,c=0,m=0;do f=n[(n[k>>2]|0)+(m<<2)>>2]|0,(f|0)==(l|0)?Le(s):(d=Hs(f)|0,n[(n[k>>2]|0)+(c<<2)>>2]=d,n[d+944>>2]=s,Q||BR[B&15](f,d,s,c),c=c+1|0),m=m+1|0;while((m|0)!=(O|0));if(c>>>0<O>>>0){Q=s+948|0,k=s+952|0,B=c,c=n[k>>2]|0;do m=(n[Q>>2]|0)+(B<<2)|0,f=m+4|0,d=c-f|0,l=d>>2,l&&(ww(m|0,f|0,d|0)|0,c=n[k>>2]|0),d=c,f=m+(l<<2)|0,(d|0)!=(f|0)&&(c=d+(~((d+-4-f|0)>>>2)<<2)|0,n[k>>2]=c),B=B+1|0;while((B|0)!=(O|0))}}while(!1)}function qs(s){s=s|0;var l=0,c=0,f=0,d=0;Un(s,(Ci(s)|0)==0,2491),Un(s,(n[s+944>>2]|0)==0,2545),l=s+948|0,c=n[l>>2]|0,f=s+952|0,d=n[f>>2]|0,(d|0)!=(c|0)&&(n[f>>2]=d+(~((d+-4-c|0)>>>2)<<2)),ys(l),l=s+976|0,c=n[l>>2]|0,Dr(s|0,8104,1e3)|0,o[c+2>>0]|0&&(n[s+4>>2]=2,n[s+12>>2]=4),n[l>>2]=c}function Un(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=C,C=C+16|0,f=d,l||(n[f>>2]=c,Ao(s,5,3197,f)),C=d}function Pn(){return n[2276]|0}function Cs(){var s=0;return s=Jv(20)|0,We((s|0)!=0,2592),n[2277]=(n[2277]|0)+1,n[s>>2]=n[239],n[s+4>>2]=n[240],n[s+8>>2]=n[241],n[s+12>>2]=n[242],n[s+16>>2]=n[243],s|0}function We(s,l){s=s|0,l=l|0;var c=0,f=0;f=C,C=C+16|0,c=f,s||(n[c>>2]=l,Ao(0,5,3197,c)),C=f}function tt(s){s=s|0,Xv(s),n[2277]=(n[2277]|0)+-1}function Bt(s,l){s=s|0,l=l|0;var c=0;l?(Un(s,(Ci(s)|0)==0,2629),c=1):(c=0,l=0),n[s+964>>2]=l,n[s+988>>2]=c}function or(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,m=f+8|0,d=f+4|0,B=f,n[d>>2]=l,Un(s,(n[l+944>>2]|0)==0,2709),Un(s,(n[s+964>>2]|0)==0,2763),ee(s),l=s+948|0,n[B>>2]=(n[l>>2]|0)+(c<<2),n[m>>2]=n[B>>2],ye(l,m,d)|0,n[(n[d>>2]|0)+944>>2]=s,Le(s),C=f}function ee(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;if(c=Ci(s)|0,c|0&&(n[(ms(s,0)|0)+944>>2]|0)!=(s|0)){f=n[(n[s+976>>2]|0)+12>>2]|0,d=s+948|0,m=(f|0)==0,l=0;do B=n[(n[d>>2]|0)+(l<<2)>>2]|0,k=Hs(B)|0,n[(n[d>>2]|0)+(l<<2)>>2]=k,n[k+944>>2]=s,m||BR[f&15](B,k,s,l),l=l+1|0;while((l|0)!=(c|0))}}function ye(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0,$e=0,Je=0;$e=C,C=C+64|0,j=$e+52|0,k=$e+48|0,se=$e+28|0,je=$e+24|0,Oe=$e+20|0,Qe=$e,f=n[s>>2]|0,m=f,l=f+((n[l>>2]|0)-m>>2<<2)|0,f=s+4|0,d=n[f>>2]|0,B=s+8|0;do if(d>>>0<(n[B>>2]|0)>>>0){if((l|0)==(d|0)){n[l>>2]=n[c>>2],n[f>>2]=(n[f>>2]|0)+4;break}_A(s,l,d,l+4|0),l>>>0<=c>>>0&&(c=(n[f>>2]|0)>>>0>c>>>0?c+4|0:c),n[l>>2]=n[c>>2]}else{f=(d-m>>2)+1|0,d=N(s)|0,d>>>0<f>>>0&&Jr(s),M=n[s>>2]|0,O=(n[B>>2]|0)-M|0,m=O>>1,Ep(Qe,O>>2>>>0<d>>>1>>>0?m>>>0<f>>>0?f:m:d,l-M>>2,s+8|0),M=Qe+8|0,f=n[M>>2]|0,m=Qe+12|0,O=n[m>>2]|0,B=O,Q=f;do if((f|0)==(O|0)){if(O=Qe+4|0,f=n[O>>2]|0,Je=n[Qe>>2]|0,d=Je,f>>>0<=Je>>>0){f=B-d>>1,f=f|0?f:1,Ep(se,f,f>>>2,n[Qe+16>>2]|0),n[je>>2]=n[O>>2],n[Oe>>2]=n[M>>2],n[k>>2]=n[je>>2],n[j>>2]=n[Oe>>2],lw(se,k,j),f=n[Qe>>2]|0,n[Qe>>2]=n[se>>2],n[se>>2]=f,f=se+4|0,Je=n[O>>2]|0,n[O>>2]=n[f>>2],n[f>>2]=Je,f=se+8|0,Je=n[M>>2]|0,n[M>>2]=n[f>>2],n[f>>2]=Je,f=se+12|0,Je=n[m>>2]|0,n[m>>2]=n[f>>2],n[f>>2]=Je,UA(se),f=n[M>>2]|0;break}m=f,B=((m-d>>2)+1|0)/-2|0,k=f+(B<<2)|0,d=Q-m|0,m=d>>2,m&&(ww(k|0,f|0,d|0)|0,f=n[O>>2]|0),Je=k+(m<<2)|0,n[M>>2]=Je,n[O>>2]=f+(B<<2),f=Je}while(!1);n[f>>2]=n[c>>2],n[M>>2]=(n[M>>2]|0)+4,l=C0(s,Qe,l)|0,UA(Qe)}while(!1);return C=$e,l|0}function Le(s){s=s|0;var l=0;do{if(l=s+984|0,o[l>>0]|0)break;o[l>>0]=1,h[s+504>>2]=y(ce),s=n[s+944>>2]|0}while(s|0)}function ft(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),gt(c))}function pt(s){return s=s|0,n[s+944>>2]|0}function Nt(s){s=s|0,Un(s,(n[s+964>>2]|0)!=0,2832),Le(s)}function rr(s){return s=s|0,(o[s+984>>0]|0)!=0|0}function $r(s,l){s=s|0,l=l|0,TUe(s,l,400)|0&&(Dr(s|0,l|0,400)|0,Le(s))}function ji(s){s=s|0;var l=Xe;return l=y(h[s+44>>2]),s=Ht(l)|0,y(s?y(0):l)}function rs(s){s=s|0;var l=Xe;return l=y(h[s+48>>2]),Ht(l)|0&&(l=o[(n[s+976>>2]|0)+2>>0]|0?y(1):y(0)),y(l)}function Si(s,l){s=s|0,l=l|0,n[s+980>>2]=l}function qo(s){return s=s|0,n[s+980>>2]|0}function xA(s,l){s=s|0,l=l|0;var c=0;c=s+4|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function kA(s){return s=s|0,n[s+4>>2]|0}function lp(s,l){s=s|0,l=l|0;var c=0;c=s+8|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function e0(s){return s=s|0,n[s+8>>2]|0}function mu(s,l){s=s|0,l=l|0;var c=0;c=s+12|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function t0(s){return s=s|0,n[s+12>>2]|0}function yu(s,l){s=s|0,l=l|0;var c=0;c=s+16|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function uo(s){return s=s|0,n[s+16>>2]|0}function QA(s,l){s=s|0,l=l|0;var c=0;c=s+20|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function yc(s){return s=s|0,n[s+20>>2]|0}function Aa(s,l){s=s|0,l=l|0;var c=0;c=s+24|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function r0(s){return s=s|0,n[s+24>>2]|0}function Ec(s,l){s=s|0,l=l|0;var c=0;c=s+28|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function hd(s){return s=s|0,n[s+28>>2]|0}function n0(s,l){s=s|0,l=l|0;var c=0;c=s+32|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function $n(s){return s=s|0,n[s+32>>2]|0}function cp(s,l){s=s|0,l=l|0;var c=0;c=s+36|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function i0(s){return s=s|0,n[s+36>>2]|0}function FA(s,l){s=s|0,l=y(l);var c=0;c=s+40|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function js(s,l){s=s|0,l=y(l);var c=0;c=s+44|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function Eu(s,l){s=s|0,l=y(l);var c=0;c=s+48|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function ja(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=(m^1)&1,f=s+52|0,d=s+56|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Gi(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+52|0,c=s+56|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ht(l)|0,n[c>>2]=f?3:2,Le(s))}function fa(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+52|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Cu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ht(c)|0,f=(m^1)&1,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function ws(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ht(c)|0,f=m?0:2,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Cc(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+132+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function wc(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ht(c)|0,f=(m^1)&1,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Y(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ht(c)|0,f=m?0:2,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Dt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+60+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function wl(s,l){s=s|0,l=l|0;var c=0;c=s+60+(l<<3)+4|0,(n[c>>2]|0)!=3&&(h[s+60+(l<<3)>>2]=y(ce),n[c>>2]=3,Le(s))}function bi(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ht(c)|0,f=(m^1)&1,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Ic(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ht(c)|0,f=m?0:2,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function ct(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+204+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function wu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ht(c)|0,f=(m^1)&1,d=s+276+(l<<3)|0,l=s+276+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function s0(s,l){return s=s|0,l=l|0,y(h[s+276+(l<<3)>>2])}function tw(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=(m^1)&1,f=s+348|0,d=s+352|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function RA(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+348|0,c=s+352|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ht(l)|0,n[c>>2]=f?3:2,Le(s))}function up(s){s=s|0;var l=0;l=s+352|0,(n[l>>2]|0)!=3&&(h[s+348>>2]=y(ce),n[l>>2]=3,Le(s))}function Br(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+348|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Is(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=(m^1)&1,f=s+356|0,d=s+360|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function o0(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+356|0,c=s+360|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ht(l)|0,n[c>>2]=f?3:2,Le(s))}function a0(s){s=s|0;var l=0;l=s+360|0,(n[l>>2]|0)!=3&&(h[s+356>>2]=y(ce),n[l>>2]=3,Le(s))}function l0(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+356|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Ap(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=(m^1)&1,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Bc(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=m?0:2,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Ct(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+364|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function gd(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=(m^1)&1,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function c0(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=m?0:2,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function u0(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+372|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Iu(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=(m^1)&1,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function dd(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=m?0:2,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function A0(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+380|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Bu(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=(m^1)&1,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function rw(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ht(l)|0,c=m?0:2,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function md(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+388|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function pa(s,l){s=s|0,l=y(l);var c=0;c=s+396|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function vc(s){return s=s|0,y(h[s+396>>2])}function Il(s){return s=s|0,y(h[s+400>>2])}function vu(s){return s=s|0,y(h[s+404>>2])}function f0(s){return s=s|0,y(h[s+408>>2])}function TA(s){return s=s|0,y(h[s+412>>2])}function fp(s){return s=s|0,y(h[s+416>>2])}function Ga(s){return s=s|0,y(h[s+420>>2])}function p0(s,l){switch(s=s|0,l=l|0,Un(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+424+(l<<2)>>2])}function pp(s,l){switch(s=s|0,l=l|0,Un(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+448+(l<<2)>>2])}function jo(s,l){switch(s=s|0,l=l|0,Un(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+472+(l<<2)>>2])}function Bs(s,l){s=s|0,l=l|0;var c=0,f=Xe;return c=n[s+4>>2]|0,(c|0)==(n[l+4>>2]|0)?c?(f=y(h[s>>2]),s=y(ne(y(f-y(h[l>>2]))))<y(999999974e-13)):s=1:s=0,s|0}function wi(s,l){s=y(s),l=y(l);var c=0;return Ht(s)|0?c=Ht(l)|0:c=y(ne(y(s-l)))<y(999999974e-13),c|0}function yd(s,l){s=s|0,l=l|0,Ed(s,l)}function Ed(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c+4|0,n[f>>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,Ha(f|0,s|0,l|0,0),Ao(s,3,(o[f+11>>0]|0)<0?n[f>>2]|0:f,c),n3e(f),C=c}function Go(s,l,c,f){s=y(s),l=y(l),c=c|0,f=f|0;var d=Xe;s=y(s*l),d=y(mR(s,y(1)));do if(wi(d,y(0))|0)s=y(s-d);else{if(s=y(s-d),wi(d,y(1))|0){s=y(s+y(1));break}if(c){s=y(s+y(1));break}f||(d>y(.5)?d=y(1):(f=wi(d,y(.5))|0,d=y(f?1:0)),s=y(s+d))}while(!1);return y(s/l)}function NA(s,l,c,f,d,m,B,k,Q,O,M,j,se){s=s|0,l=y(l),c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,k=y(k),Q=y(Q),O=y(O),M=y(M),j=y(j),se=se|0;var je=0,Oe=Xe,Qe=Xe,$e=Xe,Je=Xe,lt=Xe,_e=Xe;return Q<y(0)|O<y(0)?se=0:(se|0&&(Oe=y(h[se+4>>2]),Oe!=y(0))?($e=y(Go(l,Oe,0,0)),Je=y(Go(f,Oe,0,0)),Qe=y(Go(m,Oe,0,0)),Oe=y(Go(k,Oe,0,0))):(Qe=m,$e=l,Oe=k,Je=f),(d|0)==(s|0)?je=wi(Qe,$e)|0:je=0,(B|0)==(c|0)?se=wi(Oe,Je)|0:se=0,!je&&(lt=y(l-M),!(hp(s,lt,Q)|0))&&!(gp(s,lt,d,Q)|0)?je=h0(s,lt,d,m,Q)|0:je=1,!se&&(_e=y(f-j),!(hp(c,_e,O)|0))&&!(gp(c,_e,B,O)|0)?se=h0(c,_e,B,k,O)|0:se=1,se=je&se),se|0}function hp(s,l,c){return s=s|0,l=y(l),c=y(c),(s|0)==1?s=wi(l,c)|0:s=0,s|0}function gp(s,l,c,f){return s=s|0,l=y(l),c=c|0,f=y(f),(s|0)==2&(c|0)==0?l>=f?s=1:s=wi(l,f)|0:s=0,s|0}function h0(s,l,c,f,d){return s=s|0,l=y(l),c=c|0,f=y(f),d=y(d),(s|0)==2&(c|0)==2&f>l?d<=l?s=1:s=wi(l,d)|0:s=0,s|0}function ha(s,l,c,f,d,m,B,k,Q,O,M){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),k=y(k),Q=Q|0,O=O|0,M=M|0;var j=0,se=0,je=0,Oe=0,Qe=Xe,$e=Xe,Je=0,lt=0,_e=0,qe=0,Lt=0,Or=0,cr=0,Xt=0,Pr=0,Tr=0,ar=0,xn=Xe,go=Xe,mo=Xe,yo=0,Ca=0;ar=C,C=C+160|0,Xt=ar+152|0,cr=ar+120|0,Or=ar+104|0,_e=ar+72|0,Oe=ar+56|0,Lt=ar+8|0,lt=ar,qe=(n[2279]|0)+1|0,n[2279]=qe,Pr=s+984|0,o[Pr>>0]|0&&(n[s+512>>2]|0)!=(n[2278]|0)?Je=4:(n[s+516>>2]|0)==(f|0)?Tr=0:Je=4,(Je|0)==4&&(n[s+520>>2]=0,n[s+924>>2]=-1,n[s+928>>2]=-1,h[s+932>>2]=y(-1),h[s+936>>2]=y(-1),Tr=1);e:do if(n[s+964>>2]|0)if(Qe=y(cn(s,2,B)),$e=y(cn(s,0,B)),j=s+916|0,mo=y(h[j>>2]),go=y(h[s+920>>2]),xn=y(h[s+932>>2]),NA(d,l,m,c,n[s+924>>2]|0,mo,n[s+928>>2]|0,go,xn,y(h[s+936>>2]),Qe,$e,M)|0)Je=22;else if(je=n[s+520>>2]|0,!je)Je=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,xn=y(h[j>>2]),go=y(h[s+524+(se*24|0)+4>>2]),mo=y(h[s+524+(se*24|0)+16>>2]),NA(d,l,m,c,n[s+524+(se*24|0)+8>>2]|0,xn,n[s+524+(se*24|0)+12>>2]|0,go,mo,y(h[s+524+(se*24|0)+20>>2]),Qe,$e,M)|0){Je=22;break e}if(se=se+1|0,se>>>0>=je>>>0){Je=21;break}}else{if(Q){if(j=s+916|0,!(wi(y(h[j>>2]),l)|0)){Je=21;break}if(!(wi(y(h[s+920>>2]),c)|0)){Je=21;break}if((n[s+924>>2]|0)!=(d|0)){Je=21;break}j=(n[s+928>>2]|0)==(m|0)?j:0,Je=22;break}if(je=n[s+520>>2]|0,!je)Je=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,wi(y(h[j>>2]),l)|0&&wi(y(h[s+524+(se*24|0)+4>>2]),c)|0&&(n[s+524+(se*24|0)+8>>2]|0)==(d|0)&&(n[s+524+(se*24|0)+12>>2]|0)==(m|0)){Je=22;break e}if(se=se+1|0,se>>>0>=je>>>0){Je=21;break}}}while(!1);do if((Je|0)==21)o[11697]|0?(j=0,Je=28):(j=0,Je=31);else if((Je|0)==22){if(se=(o[11697]|0)!=0,!((j|0)!=0&(Tr^1)))if(se){Je=28;break}else{Je=31;break}Oe=j+16|0,n[s+908>>2]=n[Oe>>2],je=j+20|0,n[s+912>>2]=n[je>>2],(o[11698]|0)==0|se^1||(n[lt>>2]=LA(qe)|0,n[lt+4>>2]=qe,Ao(s,4,2972,lt),se=n[s+972>>2]|0,se|0&&ef[se&127](s),d=Ya(d,Q)|0,m=Ya(m,Q)|0,Ca=+y(h[Oe>>2]),yo=+y(h[je>>2]),n[Lt>>2]=d,n[Lt+4>>2]=m,E[Lt+8>>3]=+l,E[Lt+16>>3]=+c,E[Lt+24>>3]=Ca,E[Lt+32>>3]=yo,n[Lt+40>>2]=O,Ao(s,4,2989,Lt))}while(!1);return(Je|0)==28&&(se=LA(qe)|0,n[Oe>>2]=se,n[Oe+4>>2]=qe,n[Oe+8>>2]=Tr?3047:11699,Ao(s,4,3038,Oe),se=n[s+972>>2]|0,se|0&&ef[se&127](s),Lt=Ya(d,Q)|0,Je=Ya(m,Q)|0,n[_e>>2]=Lt,n[_e+4>>2]=Je,E[_e+8>>3]=+l,E[_e+16>>3]=+c,n[_e+24>>2]=O,Ao(s,4,3049,_e),Je=31),(Je|0)==31&&(si(s,l,c,f,d,m,B,k,Q,M),o[11697]|0&&(se=n[2279]|0,Lt=LA(se)|0,n[Or>>2]=Lt,n[Or+4>>2]=se,n[Or+8>>2]=Tr?3047:11699,Ao(s,4,3083,Or),se=n[s+972>>2]|0,se|0&&ef[se&127](s),Lt=Ya(d,Q)|0,Or=Ya(m,Q)|0,yo=+y(h[s+908>>2]),Ca=+y(h[s+912>>2]),n[cr>>2]=Lt,n[cr+4>>2]=Or,E[cr+8>>3]=yo,E[cr+16>>3]=Ca,n[cr+24>>2]=O,Ao(s,4,3092,cr)),n[s+516>>2]=f,j||(se=s+520|0,j=n[se>>2]|0,(j|0)==16&&(o[11697]|0&&Ao(s,4,3124,Xt),n[se>>2]=0,j=0),Q?j=s+916|0:(n[se>>2]=j+1,j=s+524+(j*24|0)|0),h[j>>2]=l,h[j+4>>2]=c,n[j+8>>2]=d,n[j+12>>2]=m,n[j+16>>2]=n[s+908>>2],n[j+20>>2]=n[s+912>>2],j=0)),Q&&(n[s+416>>2]=n[s+908>>2],n[s+420>>2]=n[s+912>>2],o[s+985>>0]=1,o[Pr>>0]=0),n[2279]=(n[2279]|0)+-1,n[s+512>>2]=n[2278],C=ar,Tr|(j|0)==0|0}function cn(s,l,c){s=s|0,l=l|0,c=y(c);var f=Xe;return f=y(V(s,l,c)),y(f+y(re(s,l,c)))}function Ao(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=C,C=C+16|0,d=m,n[d>>2]=f,s?f=n[s+976>>2]|0:f=0,d0(f,s,l,c,d),C=m}function LA(s){return s=s|0,(s>>>0>60?3201:3201+(60-s)|0)|0}function Ya(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+32|0,c=d+12|0,f=d,n[c>>2]=n[254],n[c+4>>2]=n[255],n[c+8>>2]=n[256],n[f>>2]=n[257],n[f+4>>2]=n[258],n[f+8>>2]=n[259],(s|0)>2?s=11699:s=n[(l?f:c)+(s<<2)>>2]|0,C=d,s|0}function si(s,l,c,f,d,m,B,k,Q,O){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),k=y(k),Q=Q|0,O=O|0;var M=0,j=0,se=0,je=0,Oe=Xe,Qe=Xe,$e=Xe,Je=Xe,lt=Xe,_e=Xe,qe=Xe,Lt=0,Or=0,cr=0,Xt=Xe,Pr=Xe,Tr=0,ar=Xe,xn=0,go=0,mo=0,yo=0,Ca=0,xp=0,kp=0,bl=0,Qp=0,Tu=0,Nu=0,Fp=0,Rp=0,Tp=0,Xr=0,xl=0,Np=0,kc=0,Lp=Xe,Mp=Xe,Lu=Xe,Mu=Xe,Qc=Xe,Ys=0,Za=0,Wo=0,kl=0,rf=0,nf=Xe,Ou=Xe,sf=Xe,of=Xe,Ws=Xe,Ps=Xe,Ql=0,Rn=Xe,af=Xe,Eo=Xe,Fc=Xe,Co=Xe,Rc=Xe,lf=0,cf=0,Tc=Xe,Ks=Xe,Fl=0,uf=0,Af=0,ff=0,xr=Xe,zn=0,Ss=0,wo=0,Vs=0,Fr=0,ur=0,Rl=0,zt=Xe,pf=0,li=0;Rl=C,C=C+16|0,Ys=Rl+12|0,Za=Rl+8|0,Wo=Rl+4|0,kl=Rl,Un(s,(d|0)==0|(Ht(l)|0)^1,3326),Un(s,(m|0)==0|(Ht(c)|0)^1,3406),Ss=mt(s,f)|0,n[s+496>>2]=Ss,Fr=fr(2,Ss)|0,ur=fr(0,Ss)|0,h[s+440>>2]=y(V(s,Fr,B)),h[s+444>>2]=y(re(s,Fr,B)),h[s+428>>2]=y(V(s,ur,B)),h[s+436>>2]=y(re(s,ur,B)),h[s+464>>2]=y(Cr(s,Fr)),h[s+468>>2]=y(yn(s,Fr)),h[s+452>>2]=y(Cr(s,ur)),h[s+460>>2]=y(yn(s,ur)),h[s+488>>2]=y(oi(s,Fr,B)),h[s+492>>2]=y(Li(s,Fr,B)),h[s+476>>2]=y(oi(s,ur,B)),h[s+484>>2]=y(Li(s,ur,B));do if(n[s+964>>2]|0)y0(s,l,c,d,m,B,k);else{if(wo=s+948|0,Vs=(n[s+952>>2]|0)-(n[wo>>2]|0)>>2,!Vs){Sv(s,l,c,d,m,B,k);break}if(!Q&&bv(s,l,c,d,m,B,k)|0)break;ee(s),xl=s+508|0,o[xl>>0]=0,Fr=fr(n[s+4>>2]|0,Ss)|0,ur=iw(Fr,Ss)|0,zn=he(Fr)|0,Np=n[s+8>>2]|0,uf=s+28|0,kc=(n[uf>>2]|0)!=0,Co=zn?B:k,Tc=zn?k:B,Lp=y(mp(s,Fr,B)),Mp=y(sw(s,Fr,B)),Oe=y(mp(s,ur,B)),Rc=y(En(s,Fr,B)),Ks=y(En(s,ur,B)),cr=zn?d:m,Fl=zn?m:d,xr=zn?Rc:Ks,lt=zn?Ks:Rc,Fc=y(cn(s,2,B)),Je=y(cn(s,0,B)),Qe=y(y(Yr(s+364|0,B))-xr),$e=y(y(Yr(s+380|0,B))-xr),_e=y(y(Yr(s+372|0,k))-lt),qe=y(y(Yr(s+388|0,k))-lt),Lu=zn?Qe:_e,Mu=zn?$e:qe,Fc=y(l-Fc),l=y(Fc-xr),Ht(l)|0?xr=l:xr=y(_n(y(k0(l,$e)),Qe)),af=y(c-Je),l=y(af-lt),Ht(l)|0?Eo=l:Eo=y(_n(y(k0(l,qe)),_e)),Qe=zn?xr:Eo,Rn=zn?Eo:xr;e:do if((cr|0)==1)for(f=0,j=0;;){if(M=ms(s,j)|0,!f)y(is(M))>y(0)&&y(Gs(M))>y(0)?f=M:f=0;else if(wd(M)|0){je=0;break e}if(j=j+1|0,j>>>0>=Vs>>>0){je=f;break}}else je=0;while(!1);Lt=je+500|0,Or=je+504|0,f=0,M=0,l=y(0),se=0;do{if(j=n[(n[wo>>2]|0)+(se<<2)>>2]|0,(n[j+36>>2]|0)==1)Du(j),o[j+985>>0]=1,o[j+984>>0]=0;else{Bl(j),Q&&dp(j,mt(j,Ss)|0,Qe,Rn,xr);do if((n[j+24>>2]|0)!=1)if((j|0)==(je|0)){n[Lt>>2]=n[2278],h[Or>>2]=y(0);break}else{Id(s,j,xr,d,Eo,xr,Eo,m,Ss,O);break}else M|0&&(n[M+960>>2]=j),n[j+960>>2]=0,M=j,f=f|0?f:j;while(!1);Ps=y(h[j+504>>2]),l=y(l+y(Ps+y(cn(j,Fr,xr))))}se=se+1|0}while((se|0)!=(Vs|0));for(mo=l>Qe,Ql=kc&((cr|0)==2&mo)?1:cr,xn=(Fl|0)==1,Ca=xn&(Q^1),xp=(Ql|0)==1,kp=(Ql|0)==2,bl=976+(Fr<<2)|0,Qp=(Fl|2|0)==2,Tp=xn&(kc^1),Tu=1040+(ur<<2)|0,Nu=1040+(Fr<<2)|0,Fp=976+(ur<<2)|0,Rp=(Fl|0)!=1,mo=kc&((cr|0)!=0&mo),go=s+976|0,xn=xn^1,l=Qe,Tr=0,yo=0,Ps=y(0),Qc=y(0);;){e:do if(Tr>>>0<Vs>>>0)for(Or=n[wo>>2]|0,se=0,qe=y(0),_e=y(0),$e=y(0),Qe=y(0),j=0,M=0,je=Tr;;){if(Lt=n[Or+(je<<2)>>2]|0,(n[Lt+36>>2]|0)!=1&&(n[Lt+940>>2]=yo,(n[Lt+24>>2]|0)!=1)){if(Je=y(cn(Lt,Fr,xr)),Xr=n[bl>>2]|0,c=y(Yr(Lt+380+(Xr<<3)|0,Co)),lt=y(h[Lt+504>>2]),c=y(k0(c,lt)),c=y(_n(y(Yr(Lt+364+(Xr<<3)|0,Co)),c)),kc&(se|0)!=0&y(Je+y(_e+c))>l){m=se,Je=qe,cr=je;break e}Je=y(Je+c),c=y(_e+Je),Je=y(qe+Je),wd(Lt)|0&&($e=y($e+y(is(Lt))),Qe=y(Qe-y(lt*y(Gs(Lt))))),M|0&&(n[M+960>>2]=Lt),n[Lt+960>>2]=0,se=se+1|0,M=Lt,j=j|0?j:Lt}else Je=qe,c=_e;if(je=je+1|0,je>>>0<Vs>>>0)qe=Je,_e=c;else{m=se,cr=je;break}}else m=0,Je=y(0),$e=y(0),Qe=y(0),j=0,cr=Tr;while(!1);Xr=$e>y(0)&$e<y(1),Xt=Xr?y(1):$e,Xr=Qe>y(0)&Qe<y(1),qe=Xr?y(1):Qe;do if(xp)Xr=51;else if(Je<Lu&((Ht(Lu)|0)^1))l=Lu,Xr=51;else if(Je>Mu&((Ht(Mu)|0)^1))l=Mu,Xr=51;else if(o[(n[go>>2]|0)+3>>0]|0)Xr=51;else{if(Xt!=y(0)&&y(is(s))!=y(0)){Xr=53;break}l=Je,Xr=53}while(!1);if((Xr|0)==51&&(Xr=0,Ht(l)|0?Xr=53:(Pr=y(l-Je),ar=l)),(Xr|0)==53&&(Xr=0,Je<y(0)?(Pr=y(-Je),ar=l):(Pr=y(0),ar=l)),!Ca&&(rf=(j|0)==0,!rf)){se=n[bl>>2]|0,je=Pr<y(0),lt=y(Pr/qe),Lt=Pr>y(0),_e=y(Pr/Xt),$e=y(0),Je=y(0),l=y(0),M=j;do c=y(Yr(M+380+(se<<3)|0,Co)),Qe=y(Yr(M+364+(se<<3)|0,Co)),Qe=y(k0(c,y(_n(Qe,y(h[M+504>>2]))))),je?(c=y(Qe*y(Gs(M))),c!=y(-0)&&(zt=y(Qe-y(lt*c)),nf=y(Ii(M,Fr,zt,ar,xr)),zt!=nf)&&($e=y($e-y(nf-Qe)),l=y(l+c))):Lt&&(Ou=y(is(M)),Ou!=y(0))&&(zt=y(Qe+y(_e*Ou)),sf=y(Ii(M,Fr,zt,ar,xr)),zt!=sf)&&($e=y($e-y(sf-Qe)),Je=y(Je-Ou)),M=n[M+960>>2]|0;while(M|0);if(l=y(qe+l),Qe=y(Pr+$e),rf)l=y(0);else{lt=y(Xt+Je),je=n[bl>>2]|0,Lt=Qe<y(0),Or=l==y(0),_e=y(Qe/l),se=Qe>y(0),lt=y(Qe/lt),l=y(0);do{zt=y(Yr(j+380+(je<<3)|0,Co)),$e=y(Yr(j+364+(je<<3)|0,Co)),$e=y(k0(zt,y(_n($e,y(h[j+504>>2]))))),Lt?(zt=y($e*y(Gs(j))),Qe=y(-zt),zt!=y(-0)?(zt=y(_e*Qe),Qe=y(Ii(j,Fr,y($e+(Or?Qe:zt)),ar,xr))):Qe=$e):se&&(of=y(is(j)),of!=y(0))?Qe=y(Ii(j,Fr,y($e+y(lt*of)),ar,xr)):Qe=$e,l=y(l-y(Qe-$e)),Je=y(cn(j,Fr,xr)),c=y(cn(j,ur,xr)),Qe=y(Qe+Je),h[Za>>2]=Qe,n[kl>>2]=1,$e=y(h[j+396>>2]);e:do if(Ht($e)|0){M=Ht(Rn)|0;do if(!M){if(mo|(ns(j,ur,Rn)|0|xn)||(da(s,j)|0)!=4||(n[(vl(j,ur)|0)+4>>2]|0)==3||(n[(Sc(j,ur)|0)+4>>2]|0)==3)break;h[Ys>>2]=Rn,n[Wo>>2]=1;break e}while(!1);if(ns(j,ur,Rn)|0){M=n[j+992+(n[Fp>>2]<<2)>>2]|0,zt=y(c+y(Yr(M,Rn))),h[Ys>>2]=zt,M=Rp&(n[M+4>>2]|0)==2,n[Wo>>2]=((Ht(zt)|0|M)^1)&1;break}else{h[Ys>>2]=Rn,n[Wo>>2]=M?0:2;break}}else zt=y(Qe-Je),Xt=y(zt/$e),zt=y($e*zt),n[Wo>>2]=1,h[Ys>>2]=y(c+(zn?Xt:zt));while(!1);yr(j,Fr,ar,xr,kl,Za),yr(j,ur,Rn,xr,Wo,Ys);do if(!(ns(j,ur,Rn)|0)&&(da(s,j)|0)==4){if((n[(vl(j,ur)|0)+4>>2]|0)==3){M=0;break}M=(n[(Sc(j,ur)|0)+4>>2]|0)!=3}else M=0;while(!1);zt=y(h[Za>>2]),Xt=y(h[Ys>>2]),pf=n[kl>>2]|0,li=n[Wo>>2]|0,ha(j,zn?zt:Xt,zn?Xt:zt,Ss,zn?pf:li,zn?li:pf,xr,Eo,Q&(M^1),3488,O)|0,o[xl>>0]=o[xl>>0]|o[j+508>>0],j=n[j+960>>2]|0}while(j|0)}}else l=y(0);if(l=y(Pr+l),li=l<y(0)&1,o[xl>>0]=li|u[xl>>0],kp&l>y(0)?(M=n[bl>>2]|0,n[s+364+(M<<3)+4>>2]|0&&(Ws=y(Yr(s+364+(M<<3)|0,Co)),Ws>=y(0))?Qe=y(_n(y(0),y(Ws-y(ar-l)))):Qe=y(0)):Qe=l,Lt=Tr>>>0<cr>>>0,Lt){je=n[wo>>2]|0,se=Tr,M=0;do j=n[je+(se<<2)>>2]|0,n[j+24>>2]|0||(M=((n[(vl(j,Fr)|0)+4>>2]|0)==3&1)+M|0,M=M+((n[(Sc(j,Fr)|0)+4>>2]|0)==3&1)|0),se=se+1|0;while((se|0)!=(cr|0));M?(Je=y(0),c=y(0)):Xr=101}else Xr=101;e:do if((Xr|0)==101)switch(Xr=0,Np|0){case 1:{M=0,Je=y(Qe*y(.5)),c=y(0);break e}case 2:{M=0,Je=Qe,c=y(0);break e}case 3:{if(m>>>0<=1){M=0,Je=y(0),c=y(0);break e}c=y((m+-1|0)>>>0),M=0,Je=y(0),c=y(y(_n(Qe,y(0)))/c);break e}case 5:{c=y(Qe/y((m+1|0)>>>0)),M=0,Je=c;break e}case 4:{c=y(Qe/y(m>>>0)),M=0,Je=y(c*y(.5));break e}default:{M=0,Je=y(0),c=y(0);break e}}while(!1);if(l=y(Lp+Je),Lt){$e=y(Qe/y(M|0)),se=n[wo>>2]|0,j=Tr,Qe=y(0);do{M=n[se+(j<<2)>>2]|0;e:do if((n[M+36>>2]|0)!=1){switch(n[M+24>>2]|0){case 1:{if(gi(M,Fr)|0){if(!Q)break e;zt=y(Mr(M,Fr,ar)),zt=y(zt+y(Cr(s,Fr))),zt=y(zt+y(V(M,Fr,xr))),h[M+400+(n[Nu>>2]<<2)>>2]=zt;break e}break}case 0:if(li=(n[(vl(M,Fr)|0)+4>>2]|0)==3,zt=y($e+l),l=li?zt:l,Q&&(li=M+400+(n[Nu>>2]<<2)|0,h[li>>2]=y(l+y(h[li>>2]))),li=(n[(Sc(M,Fr)|0)+4>>2]|0)==3,zt=y($e+l),l=li?zt:l,Ca){zt=y(c+y(cn(M,Fr,xr))),Qe=Rn,l=y(l+y(zt+y(h[M+504>>2])));break e}else{l=y(l+y(c+y(ss(M,Fr,xr)))),Qe=y(_n(Qe,y(ss(M,ur,xr))));break e}default:}Q&&(zt=y(Je+y(Cr(s,Fr))),li=M+400+(n[Nu>>2]<<2)|0,h[li>>2]=y(zt+y(h[li>>2])))}while(!1);j=j+1|0}while((j|0)!=(cr|0))}else Qe=y(0);if(c=y(Mp+l),Qp?Je=y(y(Ii(s,ur,y(Ks+Qe),Tc,B))-Ks):Je=Rn,$e=y(y(Ii(s,ur,y(Ks+(Tp?Rn:Qe)),Tc,B))-Ks),Lt&Q){j=Tr;do{se=n[(n[wo>>2]|0)+(j<<2)>>2]|0;do if((n[se+36>>2]|0)!=1){if((n[se+24>>2]|0)==1){if(gi(se,ur)|0){if(zt=y(Mr(se,ur,Rn)),zt=y(zt+y(Cr(s,ur))),zt=y(zt+y(V(se,ur,xr))),M=n[Tu>>2]|0,h[se+400+(M<<2)>>2]=zt,!(Ht(zt)|0))break}else M=n[Tu>>2]|0;zt=y(Cr(s,ur)),h[se+400+(M<<2)>>2]=y(zt+y(V(se,ur,xr)));break}M=da(s,se)|0;do if((M|0)==4){if((n[(vl(se,ur)|0)+4>>2]|0)==3){Xr=139;break}if((n[(Sc(se,ur)|0)+4>>2]|0)==3){Xr=139;break}if(ns(se,ur,Rn)|0){l=Oe;break}pf=n[se+908+(n[bl>>2]<<2)>>2]|0,n[Ys>>2]=pf,l=y(h[se+396>>2]),li=Ht(l)|0,Qe=(n[v>>2]=pf,y(h[v>>2])),li?l=$e:(Pr=y(cn(se,ur,xr)),zt=y(Qe/l),l=y(l*Qe),l=y(Pr+(zn?zt:l))),h[Za>>2]=l,h[Ys>>2]=y(y(cn(se,Fr,xr))+Qe),n[Wo>>2]=1,n[kl>>2]=1,yr(se,Fr,ar,xr,Wo,Ys),yr(se,ur,Rn,xr,kl,Za),l=y(h[Ys>>2]),Pr=y(h[Za>>2]),zt=zn?l:Pr,l=zn?Pr:l,li=((Ht(zt)|0)^1)&1,ha(se,zt,l,Ss,li,((Ht(l)|0)^1)&1,xr,Eo,1,3493,O)|0,l=Oe}else Xr=139;while(!1);e:do if((Xr|0)==139){Xr=0,l=y(Je-y(ss(se,ur,xr)));do if((n[(vl(se,ur)|0)+4>>2]|0)==3){if((n[(Sc(se,ur)|0)+4>>2]|0)!=3)break;l=y(Oe+y(_n(y(0),y(l*y(.5)))));break e}while(!1);if((n[(Sc(se,ur)|0)+4>>2]|0)==3){l=Oe;break}if((n[(vl(se,ur)|0)+4>>2]|0)==3){l=y(Oe+y(_n(y(0),l)));break}switch(M|0){case 1:{l=Oe;break e}case 2:{l=y(Oe+y(l*y(.5)));break e}default:{l=y(Oe+l);break e}}}while(!1);zt=y(Ps+l),li=se+400+(n[Tu>>2]<<2)|0,h[li>>2]=y(zt+y(h[li>>2]))}while(!1);j=j+1|0}while((j|0)!=(cr|0))}if(Ps=y(Ps+$e),Qc=y(_n(Qc,c)),m=yo+1|0,cr>>>0>=Vs>>>0)break;l=ar,Tr=cr,yo=m}do if(Q){if(M=m>>>0>1,!M&&!(Yi(s)|0))break;if(!(Ht(Rn)|0)){l=y(Rn-Ps);e:do switch(n[s+12>>2]|0){case 3:{Oe=y(Oe+l),_e=y(0);break}case 2:{Oe=y(Oe+y(l*y(.5))),_e=y(0);break}case 4:{Rn>Ps?_e=y(l/y(m>>>0)):_e=y(0);break}case 7:if(Rn>Ps){Oe=y(Oe+y(l/y(m<<1>>>0))),_e=y(l/y(m>>>0)),_e=M?_e:y(0);break e}else{Oe=y(Oe+y(l*y(.5))),_e=y(0);break e}case 6:{_e=y(l/y(yo>>>0)),_e=Rn>Ps&M?_e:y(0);break}default:_e=y(0)}while(!1);if(m|0)for(Lt=1040+(ur<<2)|0,Or=976+(ur<<2)|0,je=0,j=0;;){e:do if(j>>>0<Vs>>>0)for(Qe=y(0),$e=y(0),l=y(0),se=j;;){M=n[(n[wo>>2]|0)+(se<<2)>>2]|0;do if((n[M+36>>2]|0)!=1&&!(n[M+24>>2]|0)){if((n[M+940>>2]|0)!=(je|0))break e;if(Bd(M,ur)|0&&(zt=y(h[M+908+(n[Or>>2]<<2)>>2]),l=y(_n(l,y(zt+y(cn(M,ur,xr)))))),(da(s,M)|0)!=5)break;Ws=y(Ka(M)),Ws=y(Ws+y(V(M,0,xr))),zt=y(h[M+912>>2]),zt=y(y(zt+y(cn(M,0,xr)))-Ws),Ws=y(_n($e,Ws)),zt=y(_n(Qe,zt)),Qe=zt,$e=Ws,l=y(_n(l,y(Ws+zt)))}while(!1);if(M=se+1|0,M>>>0<Vs>>>0)se=M;else{se=M;break}}else $e=y(0),l=y(0),se=j;while(!1);if(lt=y(_e+l),c=Oe,Oe=y(Oe+lt),j>>>0<se>>>0){Je=y(c+$e),M=j;do{j=n[(n[wo>>2]|0)+(M<<2)>>2]|0;e:do if((n[j+36>>2]|0)!=1&&!(n[j+24>>2]|0))switch(da(s,j)|0){case 1:{zt=y(c+y(V(j,ur,xr))),h[j+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 3:{zt=y(y(Oe-y(re(j,ur,xr)))-y(h[j+908+(n[Or>>2]<<2)>>2])),h[j+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 2:{zt=y(c+y(y(lt-y(h[j+908+(n[Or>>2]<<2)>>2]))*y(.5))),h[j+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 4:{if(zt=y(c+y(V(j,ur,xr))),h[j+400+(n[Lt>>2]<<2)>>2]=zt,ns(j,ur,Rn)|0||(zn?(Qe=y(h[j+908>>2]),l=y(Qe+y(cn(j,Fr,xr))),$e=lt):($e=y(h[j+912>>2]),$e=y($e+y(cn(j,ur,xr))),l=lt,Qe=y(h[j+908>>2])),wi(l,Qe)|0&&wi($e,y(h[j+912>>2]))|0))break e;ha(j,l,$e,Ss,1,1,xr,Eo,1,3501,O)|0;break e}case 5:{h[j+404>>2]=y(y(Je-y(Ka(j)))+y(Mr(j,0,Rn)));break e}default:break e}while(!1);M=M+1|0}while((M|0)!=(se|0))}if(je=je+1|0,(je|0)==(m|0))break;j=se}}}while(!1);if(h[s+908>>2]=y(Ii(s,2,Fc,B,B)),h[s+912>>2]=y(Ii(s,0,af,k,B)),Ql|0&&(lf=n[s+32>>2]|0,cf=(Ql|0)==2,!(cf&(lf|0)!=2))?cf&(lf|0)==2&&(l=y(Rc+ar),l=y(_n(y(k0(l,y(MA(s,Fr,Qc,Co)))),Rc)),Xr=198):(l=y(Ii(s,Fr,Qc,Co,B)),Xr=198),(Xr|0)==198&&(h[s+908+(n[976+(Fr<<2)>>2]<<2)>>2]=l),Fl|0&&(Af=n[s+32>>2]|0,ff=(Fl|0)==2,!(ff&(Af|0)!=2))?ff&(Af|0)==2&&(l=y(Ks+Rn),l=y(_n(y(k0(l,y(MA(s,ur,y(Ks+Ps),Tc)))),Ks)),Xr=204):(l=y(Ii(s,ur,y(Ks+Ps),Tc,B)),Xr=204),(Xr|0)==204&&(h[s+908+(n[976+(ur<<2)>>2]<<2)>>2]=l),Q){if((n[uf>>2]|0)==2){j=976+(ur<<2)|0,se=1040+(ur<<2)|0,M=0;do je=ms(s,M)|0,n[je+24>>2]|0||(pf=n[j>>2]|0,zt=y(h[s+908+(pf<<2)>>2]),li=je+400+(n[se>>2]<<2)|0,zt=y(zt-y(h[li>>2])),h[li>>2]=y(zt-y(h[je+908+(pf<<2)>>2]))),M=M+1|0;while((M|0)!=(Vs|0))}if(f|0){M=zn?Ql:d;do vd(s,f,xr,M,Eo,Ss,O),f=n[f+960>>2]|0;while(f|0)}if(M=(Fr|2|0)==3,j=(ur|2|0)==3,M|j){f=0;do se=n[(n[wo>>2]|0)+(f<<2)>>2]|0,(n[se+36>>2]|0)!=1&&(M&&yp(s,se,Fr),j&&yp(s,se,ur)),f=f+1|0;while((f|0)!=(Vs|0))}}}while(!1);C=Rl}function ga(s,l){s=s|0,l=y(l);var c=0;la(s,l>=y(0),3147),c=l==y(0),h[s+4>>2]=c?y(0):l}function Dc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=f|0;var d=Xe,m=Xe,B=0,k=0,Q=0;n[2278]=(n[2278]|0)+1,Bl(s),ns(s,2,l)|0?(d=y(Yr(n[s+992>>2]|0,l)),Q=1,d=y(d+y(cn(s,2,l)))):(d=y(Yr(s+380|0,l)),d>=y(0)?Q=2:(Q=((Ht(l)|0)^1)&1,d=l)),ns(s,0,c)|0?(m=y(Yr(n[s+996>>2]|0,c)),k=1,m=y(m+y(cn(s,0,l)))):(m=y(Yr(s+388|0,c)),m>=y(0)?k=2:(k=((Ht(c)|0)^1)&1,m=c)),B=s+976|0,ha(s,d,m,f,Q,k,l,c,1,3189,n[B>>2]|0)|0&&(dp(s,n[s+496>>2]|0,l,c,l),Pc(s,y(h[(n[B>>2]|0)+4>>2]),y(0),y(0)),o[11696]|0)&&yd(s,7)}function Bl(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;k=C,C=C+32|0,B=k+24|0,m=k+16|0,f=k+8|0,d=k,c=0;do l=s+380+(c<<3)|0,n[s+380+(c<<3)+4>>2]|0&&(Q=l,O=n[Q+4>>2]|0,M=f,n[M>>2]=n[Q>>2],n[M+4>>2]=O,M=s+364+(c<<3)|0,O=n[M+4>>2]|0,Q=d,n[Q>>2]=n[M>>2],n[Q+4>>2]=O,n[m>>2]=n[f>>2],n[m+4>>2]=n[f+4>>2],n[B>>2]=n[d>>2],n[B+4>>2]=n[d+4>>2],Bs(m,B)|0)||(l=s+348+(c<<3)|0),n[s+992+(c<<2)>>2]=l,c=c+1|0;while((c|0)!=2);C=k}function ns(s,l,c){s=s|0,l=l|0,c=y(c);var f=0;switch(s=n[s+992+(n[976+(l<<2)>>2]<<2)>>2]|0,n[s+4>>2]|0){case 0:case 3:{s=0;break}case 1:{y(h[s>>2])<y(0)?s=0:f=5;break}case 2:{y(h[s>>2])<y(0)?s=0:s=(Ht(c)|0)^1;break}default:f=5}return(f|0)==5&&(s=1),s|0}function Yr(s,l){switch(s=s|0,l=y(l),n[s+4>>2]|0){case 2:{l=y(y(y(h[s>>2])*l)/y(100));break}case 1:{l=y(h[s>>2]);break}default:l=y(ce)}return y(l)}function dp(s,l,c,f,d){s=s|0,l=l|0,c=y(c),f=y(f),d=y(d);var m=0,B=Xe;l=n[s+944>>2]|0?l:1,m=fr(n[s+4>>2]|0,l)|0,l=iw(m,l)|0,c=y(Dd(s,m,c)),f=y(Dd(s,l,f)),B=y(c+y(V(s,m,d))),h[s+400+(n[1040+(m<<2)>>2]<<2)>>2]=B,c=y(c+y(re(s,m,d))),h[s+400+(n[1e3+(m<<2)>>2]<<2)>>2]=c,c=y(f+y(V(s,l,d))),h[s+400+(n[1040+(l<<2)>>2]<<2)>>2]=c,d=y(f+y(re(s,l,d))),h[s+400+(n[1e3+(l<<2)>>2]<<2)>>2]=d}function Pc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=y(f);var d=0,m=0,B=Xe,k=Xe,Q=0,O=0,M=Xe,j=0,se=Xe,je=Xe,Oe=Xe,Qe=Xe;if(l!=y(0)&&(d=s+400|0,Qe=y(h[d>>2]),m=s+404|0,Oe=y(h[m>>2]),j=s+416|0,je=y(h[j>>2]),O=s+420|0,B=y(h[O>>2]),se=y(Qe+c),M=y(Oe+f),f=y(se+je),k=y(M+B),Q=(n[s+988>>2]|0)==1,h[d>>2]=y(Go(Qe,l,0,Q)),h[m>>2]=y(Go(Oe,l,0,Q)),c=y(mR(y(je*l),y(1))),wi(c,y(0))|0?m=0:m=(wi(c,y(1))|0)^1,c=y(mR(y(B*l),y(1))),wi(c,y(0))|0?d=0:d=(wi(c,y(1))|0)^1,Qe=y(Go(f,l,Q&m,Q&(m^1))),h[j>>2]=y(Qe-y(Go(se,l,0,Q))),Qe=y(Go(k,l,Q&d,Q&(d^1))),h[O>>2]=y(Qe-y(Go(M,l,0,Q))),m=(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2,m|0)){d=0;do Pc(ms(s,d)|0,l,se,M),d=d+1|0;while((d|0)!=(m|0))}}function nw(s,l,c,f,d){switch(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,c|0){case 5:case 0:{s=e7(n[489]|0,f,d)|0;break}default:s=$Ue(f,d)|0}return s|0}function g0(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;d=C,C=C+16|0,m=d,n[m>>2]=f,d0(s,0,l,c,m),C=d}function d0(s,l,c,f,d){if(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,s=s|0?s:956,w7[n[s+8>>2]&1](s,l,c,f,d)|0,(c|0)==5)Tt();else return}function Wa(s,l,c){s=s|0,l=l|0,c=c|0,o[s+l>>0]=c&1}function Cd(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(m0(s,f),Qt(s,n[l>>2]|0,n[c>>2]|0,f))}function m0(s,l){s=s|0,l=l|0;var c=0;if((N(s)|0)>>>0<l>>>0&&Jr(s),l>>>0>1073741823)Tt();else{c=Kt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function Qt(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Dr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function N(s){return s=s|0,1073741823}function V(s,l,c){return s=s|0,l=l|0,c=y(c),he(l)|0&&n[s+96>>2]|0?s=s+92|0:s=Fn(s+60|0,n[1040+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function re(s,l,c){return s=s|0,l=l|0,c=y(c),he(l)|0&&n[s+104>>2]|0?s=s+100|0:s=Fn(s+60|0,n[1e3+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function he(s){return s=s|0,(s|1|0)==3|0}function ze(s,l){return s=s|0,l=y(l),(n[s+4>>2]|0)==3?l=y(0):l=y(Yr(s,l)),y(l)}function mt(s,l){return s=s|0,l=l|0,s=n[s>>2]|0,(s|0?s:(l|0)>1?l:1)|0}function fr(s,l){s=s|0,l=l|0;var c=0;e:do if((l|0)==2){switch(s|0){case 2:{s=3;break e}case 3:break;default:{c=4;break e}}s=2}else c=4;while(!1);return s|0}function Cr(s,l){s=s|0,l=l|0;var c=Xe;return he(l)|0&&n[s+312>>2]|0&&(c=y(h[s+308>>2]),c>=y(0))||(c=y(_n(y(h[(Fn(s+276|0,n[1040+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function yn(s,l){s=s|0,l=l|0;var c=Xe;return he(l)|0&&n[s+320>>2]|0&&(c=y(h[s+316>>2]),c>=y(0))||(c=y(_n(y(h[(Fn(s+276|0,n[1e3+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function oi(s,l,c){s=s|0,l=l|0,c=y(c);var f=Xe;return he(l)|0&&n[s+240>>2]|0&&(f=y(Yr(s+236|0,c)),f>=y(0))||(f=y(_n(y(Yr(Fn(s+204|0,n[1040+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function Li(s,l,c){s=s|0,l=l|0,c=y(c);var f=Xe;return he(l)|0&&n[s+248>>2]|0&&(f=y(Yr(s+244|0,c)),f>=y(0))||(f=y(_n(y(Yr(Fn(s+204|0,n[1e3+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function y0(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=Xe,Q=Xe,O=Xe,M=Xe,j=Xe,se=Xe,je=0,Oe=0,Qe=0;Qe=C,C=C+16|0,je=Qe,Oe=s+964|0,Un(s,(n[Oe>>2]|0)!=0,3519),k=y(En(s,2,l)),Q=y(En(s,0,l)),O=y(cn(s,2,l)),M=y(cn(s,0,l)),Ht(l)|0?j=l:j=y(_n(y(0),y(y(l-O)-k))),Ht(c)|0?se=c:se=y(_n(y(0),y(y(c-M)-Q))),(f|0)==1&(d|0)==1?(h[s+908>>2]=y(Ii(s,2,y(l-O),m,m)),l=y(Ii(s,0,y(c-M),B,m))):(I7[n[Oe>>2]&1](je,s,j,f,se,d),j=y(k+y(h[je>>2])),se=y(l-O),h[s+908>>2]=y(Ii(s,2,(f|2|0)==2?j:se,m,m)),se=y(Q+y(h[je+4>>2])),l=y(c-M),l=y(Ii(s,0,(d|2|0)==2?se:l,B,m))),h[s+912>>2]=l,C=Qe}function Sv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=Xe,Q=Xe,O=Xe,M=Xe;O=y(En(s,2,m)),k=y(En(s,0,m)),M=y(cn(s,2,m)),Q=y(cn(s,0,m)),l=y(l-M),h[s+908>>2]=y(Ii(s,2,(f|2|0)==2?O:l,m,m)),c=y(c-Q),h[s+912>>2]=y(Ii(s,0,(d|2|0)==2?k:c,B,m))}function bv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=0,Q=Xe,O=Xe;return k=(f|0)==2,!(l<=y(0)&k)&&!(c<=y(0)&(d|0)==2)&&!((f|0)==1&(d|0)==1)?s=0:(Q=y(cn(s,0,m)),O=y(cn(s,2,m)),k=l<y(0)&k|(Ht(l)|0),l=y(l-O),h[s+908>>2]=y(Ii(s,2,k?y(0):l,m,m)),l=y(c-Q),k=c<y(0)&(d|0)==2|(Ht(c)|0),h[s+912>>2]=y(Ii(s,0,k?y(0):l,B,m)),s=1),s|0}function iw(s,l){return s=s|0,l=l|0,OA(s)|0?s=fr(2,l)|0:s=0,s|0}function mp(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(oi(s,l,c)),y(c+y(Cr(s,l)))}function sw(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(Li(s,l,c)),y(c+y(yn(s,l)))}function En(s,l,c){s=s|0,l=l|0,c=y(c);var f=Xe;return f=y(mp(s,l,c)),y(f+y(sw(s,l,c)))}function wd(s){return s=s|0,n[s+24>>2]|0?s=0:y(is(s))!=y(0)?s=1:s=y(Gs(s))!=y(0),s|0}function is(s){s=s|0;var l=Xe;if(n[s+944>>2]|0){if(l=y(h[s+44>>2]),Ht(l)|0)return l=y(h[s+40>>2]),s=l>y(0)&((Ht(l)|0)^1),y(s?l:y(0))}else l=y(0);return y(l)}function Gs(s){s=s|0;var l=Xe,c=0,f=Xe;do if(n[s+944>>2]|0){if(l=y(h[s+48>>2]),Ht(l)|0){if(c=o[(n[s+976>>2]|0)+2>>0]|0,!(c<<24>>24)&&(f=y(h[s+40>>2]),f<y(0)&((Ht(f)|0)^1))){l=y(-f);break}l=c<<24>>24?y(1):y(0)}}else l=y(0);while(!1);return y(l)}function Du(s){s=s|0;var l=0,c=0;if(Od(s+400|0,0,540)|0,o[s+985>>0]=1,ee(s),c=Ci(s)|0,c|0){l=s+948|0,s=0;do Du(n[(n[l>>2]|0)+(s<<2)>>2]|0),s=s+1|0;while((s|0)!=(c|0))}}function Id(s,l,c,f,d,m,B,k,Q,O){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=y(m),B=y(B),k=k|0,Q=Q|0,O=O|0;var M=0,j=Xe,se=0,je=0,Oe=Xe,Qe=Xe,$e=0,Je=Xe,lt=0,_e=Xe,qe=0,Lt=0,Or=0,cr=0,Xt=0,Pr=0,Tr=0,ar=0,xn=0,go=0;xn=C,C=C+16|0,Or=xn+12|0,cr=xn+8|0,Xt=xn+4|0,Pr=xn,ar=fr(n[s+4>>2]|0,Q)|0,qe=he(ar)|0,j=y(Yr(ow(l)|0,qe?m:B)),Lt=ns(l,2,m)|0,Tr=ns(l,0,B)|0;do if(!(Ht(j)|0)&&!(Ht(qe?c:d)|0)){if(M=l+504|0,!(Ht(y(h[M>>2]))|0)&&(!(aw(n[l+976>>2]|0,0)|0)||(n[l+500>>2]|0)==(n[2278]|0)))break;h[M>>2]=y(_n(j,y(En(l,ar,m))))}else se=7;while(!1);do if((se|0)==7){if(lt=qe^1,!(lt|Lt^1)){B=y(Yr(n[l+992>>2]|0,m)),h[l+504>>2]=y(_n(B,y(En(l,2,m))));break}if(!(qe|Tr^1)){B=y(Yr(n[l+996>>2]|0,B)),h[l+504>>2]=y(_n(B,y(En(l,0,m))));break}h[Or>>2]=y(ce),h[cr>>2]=y(ce),n[Xt>>2]=0,n[Pr>>2]=0,Je=y(cn(l,2,m)),_e=y(cn(l,0,m)),Lt?(Oe=y(Je+y(Yr(n[l+992>>2]|0,m))),h[Or>>2]=Oe,n[Xt>>2]=1,je=1):(je=0,Oe=y(ce)),Tr?(j=y(_e+y(Yr(n[l+996>>2]|0,B))),h[cr>>2]=j,n[Pr>>2]=1,M=1):(M=0,j=y(ce)),se=n[s+32>>2]|0,qe&(se|0)==2?se=2:Ht(Oe)|0&&!(Ht(c)|0)&&(h[Or>>2]=c,n[Xt>>2]=2,je=2,Oe=c),!((se|0)==2<)&&Ht(j)|0&&!(Ht(d)|0)&&(h[cr>>2]=d,n[Pr>>2]=2,M=2,j=d),Qe=y(h[l+396>>2]),$e=Ht(Qe)|0;do if($e)se=je;else{if((je|0)==1<){h[cr>>2]=y(y(Oe-Je)/Qe),n[Pr>>2]=1,M=1,se=1;break}qe&(M|0)==1?(h[Or>>2]=y(Qe*y(j-_e)),n[Xt>>2]=1,M=1,se=1):se=je}while(!1);go=Ht(c)|0,je=(da(s,l)|0)!=4,!(qe|Lt|((f|0)!=1|go)|(je|(se|0)==1))&&(h[Or>>2]=c,n[Xt>>2]=1,!$e)&&(h[cr>>2]=y(y(c-Je)/Qe),n[Pr>>2]=1,M=1),!(Tr|lt|((k|0)!=1|(Ht(d)|0))|(je|(M|0)==1))&&(h[cr>>2]=d,n[Pr>>2]=1,!$e)&&(h[Or>>2]=y(Qe*y(d-_e)),n[Xt>>2]=1),yr(l,2,m,m,Xt,Or),yr(l,0,B,m,Pr,cr),c=y(h[Or>>2]),d=y(h[cr>>2]),ha(l,c,d,Q,n[Xt>>2]|0,n[Pr>>2]|0,m,B,0,3565,O)|0,B=y(h[l+908+(n[976+(ar<<2)>>2]<<2)>>2]),h[l+504>>2]=y(_n(B,y(En(l,ar,m))))}while(!1);n[l+500>>2]=n[2278],C=xn}function Ii(s,l,c,f,d){return s=s|0,l=l|0,c=y(c),f=y(f),d=y(d),f=y(MA(s,l,c,f)),y(_n(f,y(En(s,l,d))))}function da(s,l){return s=s|0,l=l|0,l=l+20|0,l=n[(n[l>>2]|0?l:s+16|0)>>2]|0,(l|0)==5&&OA(n[s+4>>2]|0)|0&&(l=1),l|0}function vl(s,l){return s=s|0,l=l|0,he(l)|0&&n[s+96>>2]|0?l=4:l=n[1040+(l<<2)>>2]|0,s+60+(l<<3)|0}function Sc(s,l){return s=s|0,l=l|0,he(l)|0&&n[s+104>>2]|0?l=5:l=n[1e3+(l<<2)>>2]|0,s+60+(l<<3)|0}function yr(s,l,c,f,d,m){switch(s=s|0,l=l|0,c=y(c),f=y(f),d=d|0,m=m|0,c=y(Yr(s+380+(n[976+(l<<2)>>2]<<3)|0,c)),c=y(c+y(cn(s,l,f))),n[d>>2]|0){case 2:case 1:{d=Ht(c)|0,f=y(h[m>>2]),h[m>>2]=d|f<c?f:c;break}case 0:{Ht(c)|0||(n[d>>2]=2,h[m>>2]=c);break}default:}}function gi(s,l){return s=s|0,l=l|0,s=s+132|0,he(l)|0&&n[(Fn(s,4,948)|0)+4>>2]|0?s=1:s=(n[(Fn(s,n[1040+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function Mr(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,he(l)|0&&(f=Fn(s,4,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Fn(s,n[1040+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Yr(f,c))),y(c)}function ss(s,l,c){s=s|0,l=l|0,c=y(c);var f=Xe;return f=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),f=y(f+y(V(s,l,c))),y(f+y(re(s,l,c)))}function Yi(s){s=s|0;var l=0,c=0,f=0;e:do if(OA(n[s+4>>2]|0)|0)l=0;else if((n[s+16>>2]|0)!=5)if(c=Ci(s)|0,!c)l=0;else for(l=0;;){if(f=ms(s,l)|0,!(n[f+24>>2]|0)&&(n[f+20>>2]|0)==5){l=1;break e}if(l=l+1|0,l>>>0>=c>>>0){l=0;break}}else l=1;while(!1);return l|0}function Bd(s,l){s=s|0,l=l|0;var c=Xe;return c=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),c>=y(0)&((Ht(c)|0)^1)|0}function Ka(s){s=s|0;var l=Xe,c=0,f=0,d=0,m=0,B=0,k=0,Q=Xe;if(c=n[s+968>>2]|0,c)Q=y(h[s+908>>2]),l=y(h[s+912>>2]),l=y(m7[c&0](s,Q,l)),Un(s,(Ht(l)|0)^1,3573);else{m=Ci(s)|0;do if(m|0){for(c=0,d=0;;){if(f=ms(s,d)|0,n[f+940>>2]|0){B=8;break}if((n[f+24>>2]|0)!=1)if(k=(da(s,f)|0)==5,k){c=f;break}else c=c|0?c:f;if(d=d+1|0,d>>>0>=m>>>0){B=8;break}}if((B|0)==8&&!c)break;return l=y(Ka(c)),y(l+y(h[c+404>>2]))}while(!1);l=y(h[s+912>>2])}return y(l)}function MA(s,l,c,f){s=s|0,l=l|0,c=y(c),f=y(f);var d=Xe,m=0;return OA(l)|0?(l=1,m=3):he(l)|0?(l=0,m=3):(f=y(ce),d=y(ce)),(m|0)==3&&(d=y(Yr(s+364+(l<<3)|0,f)),f=y(Yr(s+380+(l<<3)|0,f))),m=f<c&(f>=y(0)&((Ht(f)|0)^1)),c=m?f:c,m=d>=y(0)&((Ht(d)|0)^1)&c<d,y(m?d:c)}function vd(s,l,c,f,d,m,B){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0,B=B|0;var k=Xe,Q=Xe,O=0,M=0,j=Xe,se=Xe,je=Xe,Oe=0,Qe=0,$e=0,Je=0,lt=Xe,_e=0;$e=fr(n[s+4>>2]|0,m)|0,Oe=iw($e,m)|0,Qe=he($e)|0,j=y(cn(l,2,c)),se=y(cn(l,0,c)),ns(l,2,c)|0?k=y(j+y(Yr(n[l+992>>2]|0,c))):gi(l,2)|0&&lr(l,2)|0?(k=y(h[s+908>>2]),Q=y(Cr(s,2)),Q=y(k-y(Q+y(yn(s,2)))),k=y(Mr(l,2,c)),k=y(Ii(l,2,y(Q-y(k+y(Pu(l,2,c)))),c,c))):k=y(ce),ns(l,0,d)|0?Q=y(se+y(Yr(n[l+996>>2]|0,d))):gi(l,0)|0&&lr(l,0)|0?(Q=y(h[s+912>>2]),lt=y(Cr(s,0)),lt=y(Q-y(lt+y(yn(s,0)))),Q=y(Mr(l,0,d)),Q=y(Ii(l,0,y(lt-y(Q+y(Pu(l,0,d)))),d,c))):Q=y(ce),O=Ht(k)|0,M=Ht(Q)|0;do if(O^M&&(je=y(h[l+396>>2]),!(Ht(je)|0)))if(O){k=y(j+y(y(Q-se)*je));break}else{lt=y(se+y(y(k-j)/je)),Q=M?lt:Q;break}while(!1);M=Ht(k)|0,O=Ht(Q)|0,M|O&&(_e=(M^1)&1,f=c>y(0)&((f|0)!=0&M),k=Qe?k:f?c:k,ha(l,k,Q,m,Qe?_e:f?2:_e,M&(O^1)&1,k,Q,0,3623,B)|0,k=y(h[l+908>>2]),k=y(k+y(cn(l,2,c))),Q=y(h[l+912>>2]),Q=y(Q+y(cn(l,0,c)))),ha(l,k,Q,m,1,1,k,Q,1,3635,B)|0,lr(l,$e)|0&&!(gi(l,$e)|0)?(_e=n[976+($e<<2)>>2]|0,lt=y(h[s+908+(_e<<2)>>2]),lt=y(lt-y(h[l+908+(_e<<2)>>2])),lt=y(lt-y(yn(s,$e))),lt=y(lt-y(re(l,$e,c))),lt=y(lt-y(Pu(l,$e,Qe?c:d))),h[l+400+(n[1040+($e<<2)>>2]<<2)>>2]=lt):Je=21;do if((Je|0)==21){if(!(gi(l,$e)|0)&&(n[s+8>>2]|0)==1){_e=n[976+($e<<2)>>2]|0,lt=y(h[s+908+(_e<<2)>>2]),lt=y(y(lt-y(h[l+908+(_e<<2)>>2]))*y(.5)),h[l+400+(n[1040+($e<<2)>>2]<<2)>>2]=lt;break}!(gi(l,$e)|0)&&(n[s+8>>2]|0)==2&&(_e=n[976+($e<<2)>>2]|0,lt=y(h[s+908+(_e<<2)>>2]),lt=y(lt-y(h[l+908+(_e<<2)>>2])),h[l+400+(n[1040+($e<<2)>>2]<<2)>>2]=lt)}while(!1);lr(l,Oe)|0&&!(gi(l,Oe)|0)?(_e=n[976+(Oe<<2)>>2]|0,lt=y(h[s+908+(_e<<2)>>2]),lt=y(lt-y(h[l+908+(_e<<2)>>2])),lt=y(lt-y(yn(s,Oe))),lt=y(lt-y(re(l,Oe,c))),lt=y(lt-y(Pu(l,Oe,Qe?d:c))),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=lt):Je=30;do if((Je|0)==30&&!(gi(l,Oe)|0)){if((da(s,l)|0)==2){_e=n[976+(Oe<<2)>>2]|0,lt=y(h[s+908+(_e<<2)>>2]),lt=y(y(lt-y(h[l+908+(_e<<2)>>2]))*y(.5)),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=lt;break}_e=(da(s,l)|0)==3,_e^(n[s+28>>2]|0)==2&&(_e=n[976+(Oe<<2)>>2]|0,lt=y(h[s+908+(_e<<2)>>2]),lt=y(lt-y(h[l+908+(_e<<2)>>2])),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=lt)}while(!1)}function yp(s,l,c){s=s|0,l=l|0,c=c|0;var f=Xe,d=0;d=n[976+(c<<2)>>2]|0,f=y(h[l+908+(d<<2)>>2]),f=y(y(h[s+908+(d<<2)>>2])-f),f=y(f-y(h[l+400+(n[1040+(c<<2)>>2]<<2)>>2])),h[l+400+(n[1e3+(c<<2)>>2]<<2)>>2]=f}function OA(s){return s=s|0,(s|1|0)==1|0}function ow(s){s=s|0;var l=Xe;switch(n[s+56>>2]|0){case 0:case 3:{l=y(h[s+40>>2]),l>y(0)&((Ht(l)|0)^1)?s=o[(n[s+976>>2]|0)+2>>0]|0?1056:992:s=1056;break}default:s=s+52|0}return s|0}function aw(s,l){return s=s|0,l=l|0,(o[s+l>>0]|0)!=0|0}function lr(s,l){return s=s|0,l=l|0,s=s+132|0,he(l)|0&&n[(Fn(s,5,948)|0)+4>>2]|0?s=1:s=(n[(Fn(s,n[1e3+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function Pu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,he(l)|0&&(f=Fn(s,5,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Fn(s,n[1e3+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Yr(f,c))),y(c)}function Dd(s,l,c){return s=s|0,l=l|0,c=y(c),gi(s,l)|0?c=y(Mr(s,l,c)):c=y(-y(Pu(s,l,c))),y(c)}function Su(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function Ep(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Tt();else{d=Kt(l<<2)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function E0(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function UA(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&>(s)}function _A(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;if(B=s+4|0,k=n[B>>2]|0,d=k-f|0,m=d>>2,s=l+(m<<2)|0,s>>>0<c>>>0){f=k;do n[f>>2]=n[s>>2],s=s+4|0,f=(n[B>>2]|0)+4|0,n[B>>2]=f;while(s>>>0<c>>>0)}m|0&&ww(k+(0-m<<2)|0,l|0,d|0)|0}function C0(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0;return k=l+4|0,Q=n[k>>2]|0,d=n[s>>2]|0,B=c,m=B-d|0,f=Q+(0-(m>>2)<<2)|0,n[k>>2]=f,(m|0)>0&&Dr(f|0,d|0,m|0)|0,d=s+4|0,m=l+8|0,f=(n[d>>2]|0)-B|0,(f|0)>0&&(Dr(n[m>>2]|0,c|0,f|0)|0,n[m>>2]=(n[m>>2]|0)+(f>>>2<<2)),B=n[s>>2]|0,n[s>>2]=n[k>>2],n[k>>2]=B,B=n[d>>2]|0,n[d>>2]=n[m>>2],n[m>>2]=B,B=s+8|0,c=l+12|0,s=n[B>>2]|0,n[B>>2]=n[c>>2],n[c>>2]=s,n[l>>2]=n[k>>2],Q|0}function lw(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(B=n[l>>2]|0,m=n[c>>2]|0,(B|0)!=(m|0)){d=s+8|0,c=((m+-4-B|0)>>>2)+1|0,s=B,f=n[d>>2]|0;do n[f>>2]=n[s>>2],f=(n[d>>2]|0)+4|0,n[d>>2]=f,s=s+4|0;while((s|0)!=(m|0));n[l>>2]=B+(c<<2)}}function Pd(){mc()}function ma(){var s=0;return s=Kt(4)|0,HA(s),s|0}function HA(s){s=s|0,n[s>>2]=Cs()|0}function bc(s){s=s|0,s|0&&(w0(s),gt(s))}function w0(s){s=s|0,tt(n[s>>2]|0)}function Sd(s,l,c){s=s|0,l=l|0,c=c|0,Wa(n[s>>2]|0,l,c)}function fo(s,l){s=s|0,l=y(l),ga(n[s>>2]|0,l)}function xv(s,l){return s=s|0,l=l|0,aw(n[s>>2]|0,l)|0}function cw(){var s=0;return s=Kt(8)|0,kv(s,0),s|0}function kv(s,l){s=s|0,l=l|0,l?l=Ei(n[l>>2]|0)|0:l=co()|0,n[s>>2]=l,n[s+4>>2]=0,Si(l,s)}function eF(s){s=s|0;var l=0;return l=Kt(8)|0,kv(l,s),l|0}function Qv(s){s=s|0,s|0&&(bu(s),gt(s))}function bu(s){s=s|0;var l=0;ua(n[s>>2]|0),l=s+4|0,s=n[l>>2]|0,n[l>>2]=0,s|0&&(qA(s),gt(s))}function qA(s){s=s|0,jA(s)}function jA(s){s=s|0,s=n[s>>2]|0,s|0&&PA(s|0)}function uw(s){return s=s|0,qo(s)|0}function bd(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(qA(l),gt(l)),qs(n[s>>2]|0)}function tF(s,l){s=s|0,l=l|0,$r(n[s>>2]|0,n[l>>2]|0)}function rF(s,l){s=s|0,l=l|0,Aa(n[s>>2]|0,l)}function Fv(s,l,c){s=s|0,l=l|0,c=+c,Cu(n[s>>2]|0,l,y(c))}function Rv(s,l,c){s=s|0,l=l|0,c=+c,ws(n[s>>2]|0,l,y(c))}function Aw(s,l){s=s|0,l=l|0,mu(n[s>>2]|0,l)}function xu(s,l){s=s|0,l=l|0,yu(n[s>>2]|0,l)}function nF(s,l){s=s|0,l=l|0,QA(n[s>>2]|0,l)}function iF(s,l){s=s|0,l=l|0,xA(n[s>>2]|0,l)}function Cp(s,l){s=s|0,l=l|0,Ec(n[s>>2]|0,l)}function sF(s,l){s=s|0,l=l|0,lp(n[s>>2]|0,l)}function Tv(s,l,c){s=s|0,l=l|0,c=+c,wc(n[s>>2]|0,l,y(c))}function GA(s,l,c){s=s|0,l=l|0,c=+c,Y(n[s>>2]|0,l,y(c))}function oF(s,l){s=s|0,l=l|0,wl(n[s>>2]|0,l)}function aF(s,l){s=s|0,l=l|0,n0(n[s>>2]|0,l)}function Nv(s,l){s=s|0,l=l|0,cp(n[s>>2]|0,l)}function fw(s,l){s=s|0,l=+l,FA(n[s>>2]|0,y(l))}function pw(s,l){s=s|0,l=+l,ja(n[s>>2]|0,y(l))}function lF(s,l){s=s|0,l=+l,Gi(n[s>>2]|0,y(l))}function cF(s,l){s=s|0,l=+l,js(n[s>>2]|0,y(l))}function Dl(s,l){s=s|0,l=+l,Eu(n[s>>2]|0,y(l))}function hw(s,l){s=s|0,l=+l,tw(n[s>>2]|0,y(l))}function uF(s,l){s=s|0,l=+l,RA(n[s>>2]|0,y(l))}function YA(s){s=s|0,up(n[s>>2]|0)}function xd(s,l){s=s|0,l=+l,Is(n[s>>2]|0,y(l))}function ku(s,l){s=s|0,l=+l,o0(n[s>>2]|0,y(l))}function gw(s){s=s|0,a0(n[s>>2]|0)}function dw(s,l){s=s|0,l=+l,Ap(n[s>>2]|0,y(l))}function AF(s,l){s=s|0,l=+l,Bc(n[s>>2]|0,y(l))}function Lv(s,l){s=s|0,l=+l,gd(n[s>>2]|0,y(l))}function WA(s,l){s=s|0,l=+l,c0(n[s>>2]|0,y(l))}function Mv(s,l){s=s|0,l=+l,Iu(n[s>>2]|0,y(l))}function kd(s,l){s=s|0,l=+l,dd(n[s>>2]|0,y(l))}function Ov(s,l){s=s|0,l=+l,Bu(n[s>>2]|0,y(l))}function Uv(s,l){s=s|0,l=+l,rw(n[s>>2]|0,y(l))}function Qd(s,l){s=s|0,l=+l,pa(n[s>>2]|0,y(l))}function _v(s,l,c){s=s|0,l=l|0,c=+c,wu(n[s>>2]|0,l,y(c))}function fF(s,l,c){s=s|0,l=l|0,c=+c,bi(n[s>>2]|0,l,y(c))}function P(s,l,c){s=s|0,l=l|0,c=+c,Ic(n[s>>2]|0,l,y(c))}function D(s){return s=s|0,r0(n[s>>2]|0)|0}function T(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,Cc(d,n[l>>2]|0,c),q(s,d),C=f}function q(s,l){s=s|0,l=l|0,W(s,n[l+4>>2]|0,+y(h[l>>2]))}function W(s,l,c){s=s|0,l=l|0,c=+c,n[s>>2]=l,E[s+8>>3]=c}function fe(s){return s=s|0,t0(n[s>>2]|0)|0}function De(s){return s=s|0,uo(n[s>>2]|0)|0}function vt(s){return s=s|0,yc(n[s>>2]|0)|0}function wt(s){return s=s|0,kA(n[s>>2]|0)|0}function bt(s){return s=s|0,hd(n[s>>2]|0)|0}function _r(s){return s=s|0,e0(n[s>>2]|0)|0}function os(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,Dt(d,n[l>>2]|0,c),q(s,d),C=f}function di(s){return s=s|0,$n(n[s>>2]|0)|0}function po(s){return s=s|0,i0(n[s>>2]|0)|0}function KA(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,fa(f,n[l>>2]|0),q(s,f),C=c}function Yo(s){return s=s|0,+ +y(ji(n[s>>2]|0))}function nt(s){return s=s|0,+ +y(rs(n[s>>2]|0))}function Ve(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,Br(f,n[l>>2]|0),q(s,f),C=c}function At(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,l0(f,n[l>>2]|0),q(s,f),C=c}function Wt(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,Ct(f,n[l>>2]|0),q(s,f),C=c}function vr(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,u0(f,n[l>>2]|0),q(s,f),C=c}function Sn(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,A0(f,n[l>>2]|0),q(s,f),C=c}function Qr(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,md(f,n[l>>2]|0),q(s,f),C=c}function bn(s){return s=s|0,+ +y(vc(n[s>>2]|0))}function ai(s,l){return s=s|0,l=l|0,+ +y(s0(n[s>>2]|0,l))}function tn(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,ct(d,n[l>>2]|0,c),q(s,d),C=f}function ho(s,l,c){s=s|0,l=l|0,c=c|0,or(n[s>>2]|0,n[l>>2]|0,c)}function pF(s,l){s=s|0,l=l|0,Es(n[s>>2]|0,n[l>>2]|0)}function nve(s){return s=s|0,Ci(n[s>>2]|0)|0}function ive(s){return s=s|0,s=pt(n[s>>2]|0)|0,s?s=uw(s)|0:s=0,s|0}function sve(s,l){return s=s|0,l=l|0,s=ms(n[s>>2]|0,l)|0,s?s=uw(s)|0:s=0,s|0}function ove(s,l){s=s|0,l=l|0;var c=0,f=0;f=Kt(4)|0,W5(f,l),c=s+4|0,l=n[c>>2]|0,n[c>>2]=f,l|0&&(qA(l),gt(l)),Bt(n[s>>2]|0,1)}function W5(s,l){s=s|0,l=l|0,yve(s,l)}function ave(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0;var B=0,k=0;B=C,C=C+16|0,k=B,lve(k,qo(l)|0,+c,f,+d,m),h[s>>2]=y(+E[k>>3]),h[s+4>>2]=y(+E[k+8>>3]),C=B}function lve(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0,k=0,Q=0,O=0,M=0;B=C,C=C+32|0,M=B+8|0,O=B+20|0,Q=B,k=B+16|0,E[M>>3]=c,n[O>>2]=f,E[Q>>3]=d,n[k>>2]=m,cve(s,n[l+4>>2]|0,M,O,Q,k),C=B}function cve(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0;B=C,C=C+16|0,k=B,za(k),l=ya(l)|0,uve(s,l,+E[c>>3],n[f>>2]|0,+E[d>>3],n[m>>2]|0),Ja(k),C=B}function ya(s){return s=s|0,n[s>>2]|0}function uve(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0;B=Pl(Ave()|0)|0,c=+VA(c),f=hF(f)|0,d=+VA(d),fve(s,hi(0,B|0,l|0,+c,f|0,+d,hF(m)|0)|0)}function Ave(){var s=0;return o[7608]|0||(dve(9120),s=7608,n[s>>2]=1,n[s+4>>2]=0),9120}function Pl(s){return s=s|0,n[s+8>>2]|0}function VA(s){return s=+s,+ +gF(s)}function hF(s){return s=s|0,V5(s)|0}function fve(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+32|0,c=d,f=l,f&1?(pve(c,0),ii(f|0,c|0)|0,hve(s,c),gve(c)):(n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]),C=d}function pve(s,l){s=s|0,l=l|0,K5(s,l),n[s+8>>2]=0,o[s+24>>0]=0}function hve(s,l){s=s|0,l=l|0,l=l+8|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]}function gve(s){s=s|0,o[s+24>>0]=0}function K5(s,l){s=s|0,l=l|0,n[s>>2]=l}function V5(s){return s=s|0,s|0}function gF(s){return s=+s,+s}function dve(s){s=s|0,Sl(s,mve()|0,4)}function mve(){return 1064}function Sl(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=ap(l|0,c+1|0)|0}function yve(s,l){s=s|0,l=l|0,l=n[l>>2]|0,n[s>>2]=l,yl(l|0)}function Eve(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(qA(l),gt(l)),Bt(n[s>>2]|0,0)}function Cve(s){s=s|0,Nt(n[s>>2]|0)}function wve(s){return s=s|0,rr(n[s>>2]|0)|0}function Ive(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,Dc(n[s>>2]|0,y(l),y(c),f)}function Bve(s){return s=s|0,+ +y(Il(n[s>>2]|0))}function vve(s){return s=s|0,+ +y(f0(n[s>>2]|0))}function Dve(s){return s=s|0,+ +y(vu(n[s>>2]|0))}function Pve(s){return s=s|0,+ +y(TA(n[s>>2]|0))}function Sve(s){return s=s|0,+ +y(fp(n[s>>2]|0))}function bve(s){return s=s|0,+ +y(Ga(n[s>>2]|0))}function xve(s,l){s=s|0,l=l|0,E[s>>3]=+y(Il(n[l>>2]|0)),E[s+8>>3]=+y(f0(n[l>>2]|0)),E[s+16>>3]=+y(vu(n[l>>2]|0)),E[s+24>>3]=+y(TA(n[l>>2]|0)),E[s+32>>3]=+y(fp(n[l>>2]|0)),E[s+40>>3]=+y(Ga(n[l>>2]|0))}function kve(s,l){return s=s|0,l=l|0,+ +y(p0(n[s>>2]|0,l))}function Qve(s,l){return s=s|0,l=l|0,+ +y(pp(n[s>>2]|0,l))}function Fve(s,l){return s=s|0,l=l|0,+ +y(jo(n[s>>2]|0,l))}function Rve(){return Pn()|0}function Tve(){Nve(),Lve(),Mve(),Ove(),Uve(),_ve()}function Nve(){UNe(11713,4938,1)}function Lve(){iNe(10448)}function Mve(){UTe(10408)}function Ove(){lTe(10324)}function Uve(){dFe(10096)}function _ve(){Hve(9132)}function Hve(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0,$e=0,Je=0,lt=0,_e=0,qe=0,Lt=0,Or=0,cr=0,Xt=0,Pr=0,Tr=0,ar=0,xn=0,go=0,mo=0,yo=0,Ca=0,xp=0,kp=0,bl=0,Qp=0,Tu=0,Nu=0,Fp=0,Rp=0,Tp=0,Xr=0,xl=0,Np=0,kc=0,Lp=0,Mp=0,Lu=0,Mu=0,Qc=0,Ys=0,Za=0,Wo=0,kl=0,rf=0,nf=0,Ou=0,sf=0,of=0,Ws=0,Ps=0,Ql=0,Rn=0,af=0,Eo=0,Fc=0,Co=0,Rc=0,lf=0,cf=0,Tc=0,Ks=0,Fl=0,uf=0,Af=0,ff=0,xr=0,zn=0,Ss=0,wo=0,Vs=0,Fr=0,ur=0,Rl=0;l=C,C=C+672|0,c=l+656|0,Rl=l+648|0,ur=l+640|0,Fr=l+632|0,Vs=l+624|0,wo=l+616|0,Ss=l+608|0,zn=l+600|0,xr=l+592|0,ff=l+584|0,Af=l+576|0,uf=l+568|0,Fl=l+560|0,Ks=l+552|0,Tc=l+544|0,cf=l+536|0,lf=l+528|0,Rc=l+520|0,Co=l+512|0,Fc=l+504|0,Eo=l+496|0,af=l+488|0,Rn=l+480|0,Ql=l+472|0,Ps=l+464|0,Ws=l+456|0,of=l+448|0,sf=l+440|0,Ou=l+432|0,nf=l+424|0,rf=l+416|0,kl=l+408|0,Wo=l+400|0,Za=l+392|0,Ys=l+384|0,Qc=l+376|0,Mu=l+368|0,Lu=l+360|0,Mp=l+352|0,Lp=l+344|0,kc=l+336|0,Np=l+328|0,xl=l+320|0,Xr=l+312|0,Tp=l+304|0,Rp=l+296|0,Fp=l+288|0,Nu=l+280|0,Tu=l+272|0,Qp=l+264|0,bl=l+256|0,kp=l+248|0,xp=l+240|0,Ca=l+232|0,yo=l+224|0,mo=l+216|0,go=l+208|0,xn=l+200|0,ar=l+192|0,Tr=l+184|0,Pr=l+176|0,Xt=l+168|0,cr=l+160|0,Or=l+152|0,Lt=l+144|0,qe=l+136|0,_e=l+128|0,lt=l+120|0,Je=l+112|0,$e=l+104|0,Qe=l+96|0,Oe=l+88|0,je=l+80|0,se=l+72|0,j=l+64|0,M=l+56|0,O=l+48|0,Q=l+40|0,k=l+32|0,B=l+24|0,m=l+16|0,d=l+8|0,f=l,qve(s,3646),jve(s,3651,2)|0,Gve(s,3665,2)|0,Yve(s,3682,18)|0,n[Rl>>2]=19,n[Rl+4>>2]=0,n[c>>2]=n[Rl>>2],n[c+4>>2]=n[Rl+4>>2],mw(s,3690,c)|0,n[ur>>2]=1,n[ur+4>>2]=0,n[c>>2]=n[ur>>2],n[c+4>>2]=n[ur+4>>2],Wve(s,3696,c)|0,n[Fr>>2]=2,n[Fr+4>>2]=0,n[c>>2]=n[Fr>>2],n[c+4>>2]=n[Fr+4>>2],Qu(s,3706,c)|0,n[Vs>>2]=1,n[Vs+4>>2]=0,n[c>>2]=n[Vs>>2],n[c+4>>2]=n[Vs+4>>2],I0(s,3722,c)|0,n[wo>>2]=2,n[wo+4>>2]=0,n[c>>2]=n[wo>>2],n[c+4>>2]=n[wo+4>>2],I0(s,3734,c)|0,n[Ss>>2]=3,n[Ss+4>>2]=0,n[c>>2]=n[Ss>>2],n[c+4>>2]=n[Ss+4>>2],Qu(s,3753,c)|0,n[zn>>2]=4,n[zn+4>>2]=0,n[c>>2]=n[zn>>2],n[c+4>>2]=n[zn+4>>2],Qu(s,3769,c)|0,n[xr>>2]=5,n[xr+4>>2]=0,n[c>>2]=n[xr>>2],n[c+4>>2]=n[xr+4>>2],Qu(s,3783,c)|0,n[ff>>2]=6,n[ff+4>>2]=0,n[c>>2]=n[ff>>2],n[c+4>>2]=n[ff+4>>2],Qu(s,3796,c)|0,n[Af>>2]=7,n[Af+4>>2]=0,n[c>>2]=n[Af>>2],n[c+4>>2]=n[Af+4>>2],Qu(s,3813,c)|0,n[uf>>2]=8,n[uf+4>>2]=0,n[c>>2]=n[uf>>2],n[c+4>>2]=n[uf+4>>2],Qu(s,3825,c)|0,n[Fl>>2]=3,n[Fl+4>>2]=0,n[c>>2]=n[Fl>>2],n[c+4>>2]=n[Fl+4>>2],I0(s,3843,c)|0,n[Ks>>2]=4,n[Ks+4>>2]=0,n[c>>2]=n[Ks>>2],n[c+4>>2]=n[Ks+4>>2],I0(s,3853,c)|0,n[Tc>>2]=9,n[Tc+4>>2]=0,n[c>>2]=n[Tc>>2],n[c+4>>2]=n[Tc+4>>2],Qu(s,3870,c)|0,n[cf>>2]=10,n[cf+4>>2]=0,n[c>>2]=n[cf>>2],n[c+4>>2]=n[cf+4>>2],Qu(s,3884,c)|0,n[lf>>2]=11,n[lf+4>>2]=0,n[c>>2]=n[lf>>2],n[c+4>>2]=n[lf+4>>2],Qu(s,3896,c)|0,n[Rc>>2]=1,n[Rc+4>>2]=0,n[c>>2]=n[Rc>>2],n[c+4>>2]=n[Rc+4>>2],vs(s,3907,c)|0,n[Co>>2]=2,n[Co+4>>2]=0,n[c>>2]=n[Co>>2],n[c+4>>2]=n[Co+4>>2],vs(s,3915,c)|0,n[Fc>>2]=3,n[Fc+4>>2]=0,n[c>>2]=n[Fc>>2],n[c+4>>2]=n[Fc+4>>2],vs(s,3928,c)|0,n[Eo>>2]=4,n[Eo+4>>2]=0,n[c>>2]=n[Eo>>2],n[c+4>>2]=n[Eo+4>>2],vs(s,3948,c)|0,n[af>>2]=5,n[af+4>>2]=0,n[c>>2]=n[af>>2],n[c+4>>2]=n[af+4>>2],vs(s,3960,c)|0,n[Rn>>2]=6,n[Rn+4>>2]=0,n[c>>2]=n[Rn>>2],n[c+4>>2]=n[Rn+4>>2],vs(s,3974,c)|0,n[Ql>>2]=7,n[Ql+4>>2]=0,n[c>>2]=n[Ql>>2],n[c+4>>2]=n[Ql+4>>2],vs(s,3983,c)|0,n[Ps>>2]=20,n[Ps+4>>2]=0,n[c>>2]=n[Ps>>2],n[c+4>>2]=n[Ps+4>>2],mw(s,3999,c)|0,n[Ws>>2]=8,n[Ws+4>>2]=0,n[c>>2]=n[Ws>>2],n[c+4>>2]=n[Ws+4>>2],vs(s,4012,c)|0,n[of>>2]=9,n[of+4>>2]=0,n[c>>2]=n[of>>2],n[c+4>>2]=n[of+4>>2],vs(s,4022,c)|0,n[sf>>2]=21,n[sf+4>>2]=0,n[c>>2]=n[sf>>2],n[c+4>>2]=n[sf+4>>2],mw(s,4039,c)|0,n[Ou>>2]=10,n[Ou+4>>2]=0,n[c>>2]=n[Ou>>2],n[c+4>>2]=n[Ou+4>>2],vs(s,4053,c)|0,n[nf>>2]=11,n[nf+4>>2]=0,n[c>>2]=n[nf>>2],n[c+4>>2]=n[nf+4>>2],vs(s,4065,c)|0,n[rf>>2]=12,n[rf+4>>2]=0,n[c>>2]=n[rf>>2],n[c+4>>2]=n[rf+4>>2],vs(s,4084,c)|0,n[kl>>2]=13,n[kl+4>>2]=0,n[c>>2]=n[kl>>2],n[c+4>>2]=n[kl+4>>2],vs(s,4097,c)|0,n[Wo>>2]=14,n[Wo+4>>2]=0,n[c>>2]=n[Wo>>2],n[c+4>>2]=n[Wo+4>>2],vs(s,4117,c)|0,n[Za>>2]=15,n[Za+4>>2]=0,n[c>>2]=n[Za>>2],n[c+4>>2]=n[Za+4>>2],vs(s,4129,c)|0,n[Ys>>2]=16,n[Ys+4>>2]=0,n[c>>2]=n[Ys>>2],n[c+4>>2]=n[Ys+4>>2],vs(s,4148,c)|0,n[Qc>>2]=17,n[Qc+4>>2]=0,n[c>>2]=n[Qc>>2],n[c+4>>2]=n[Qc+4>>2],vs(s,4161,c)|0,n[Mu>>2]=18,n[Mu+4>>2]=0,n[c>>2]=n[Mu>>2],n[c+4>>2]=n[Mu+4>>2],vs(s,4181,c)|0,n[Lu>>2]=5,n[Lu+4>>2]=0,n[c>>2]=n[Lu>>2],n[c+4>>2]=n[Lu+4>>2],I0(s,4196,c)|0,n[Mp>>2]=6,n[Mp+4>>2]=0,n[c>>2]=n[Mp>>2],n[c+4>>2]=n[Mp+4>>2],I0(s,4206,c)|0,n[Lp>>2]=7,n[Lp+4>>2]=0,n[c>>2]=n[Lp>>2],n[c+4>>2]=n[Lp+4>>2],I0(s,4217,c)|0,n[kc>>2]=3,n[kc+4>>2]=0,n[c>>2]=n[kc>>2],n[c+4>>2]=n[kc+4>>2],zA(s,4235,c)|0,n[Np>>2]=1,n[Np+4>>2]=0,n[c>>2]=n[Np>>2],n[c+4>>2]=n[Np+4>>2],dF(s,4251,c)|0,n[xl>>2]=4,n[xl+4>>2]=0,n[c>>2]=n[xl>>2],n[c+4>>2]=n[xl+4>>2],zA(s,4263,c)|0,n[Xr>>2]=5,n[Xr+4>>2]=0,n[c>>2]=n[Xr>>2],n[c+4>>2]=n[Xr+4>>2],zA(s,4279,c)|0,n[Tp>>2]=6,n[Tp+4>>2]=0,n[c>>2]=n[Tp>>2],n[c+4>>2]=n[Tp+4>>2],zA(s,4293,c)|0,n[Rp>>2]=7,n[Rp+4>>2]=0,n[c>>2]=n[Rp>>2],n[c+4>>2]=n[Rp+4>>2],zA(s,4306,c)|0,n[Fp>>2]=8,n[Fp+4>>2]=0,n[c>>2]=n[Fp>>2],n[c+4>>2]=n[Fp+4>>2],zA(s,4323,c)|0,n[Nu>>2]=9,n[Nu+4>>2]=0,n[c>>2]=n[Nu>>2],n[c+4>>2]=n[Nu+4>>2],zA(s,4335,c)|0,n[Tu>>2]=2,n[Tu+4>>2]=0,n[c>>2]=n[Tu>>2],n[c+4>>2]=n[Tu+4>>2],dF(s,4353,c)|0,n[Qp>>2]=12,n[Qp+4>>2]=0,n[c>>2]=n[Qp>>2],n[c+4>>2]=n[Qp+4>>2],B0(s,4363,c)|0,n[bl>>2]=1,n[bl+4>>2]=0,n[c>>2]=n[bl>>2],n[c+4>>2]=n[bl+4>>2],JA(s,4376,c)|0,n[kp>>2]=2,n[kp+4>>2]=0,n[c>>2]=n[kp>>2],n[c+4>>2]=n[kp+4>>2],JA(s,4388,c)|0,n[xp>>2]=13,n[xp+4>>2]=0,n[c>>2]=n[xp>>2],n[c+4>>2]=n[xp+4>>2],B0(s,4402,c)|0,n[Ca>>2]=14,n[Ca+4>>2]=0,n[c>>2]=n[Ca>>2],n[c+4>>2]=n[Ca+4>>2],B0(s,4411,c)|0,n[yo>>2]=15,n[yo+4>>2]=0,n[c>>2]=n[yo>>2],n[c+4>>2]=n[yo+4>>2],B0(s,4421,c)|0,n[mo>>2]=16,n[mo+4>>2]=0,n[c>>2]=n[mo>>2],n[c+4>>2]=n[mo+4>>2],B0(s,4433,c)|0,n[go>>2]=17,n[go+4>>2]=0,n[c>>2]=n[go>>2],n[c+4>>2]=n[go+4>>2],B0(s,4446,c)|0,n[xn>>2]=18,n[xn+4>>2]=0,n[c>>2]=n[xn>>2],n[c+4>>2]=n[xn+4>>2],B0(s,4458,c)|0,n[ar>>2]=3,n[ar+4>>2]=0,n[c>>2]=n[ar>>2],n[c+4>>2]=n[ar+4>>2],JA(s,4471,c)|0,n[Tr>>2]=1,n[Tr+4>>2]=0,n[c>>2]=n[Tr>>2],n[c+4>>2]=n[Tr+4>>2],Hv(s,4486,c)|0,n[Pr>>2]=10,n[Pr+4>>2]=0,n[c>>2]=n[Pr>>2],n[c+4>>2]=n[Pr+4>>2],zA(s,4496,c)|0,n[Xt>>2]=11,n[Xt+4>>2]=0,n[c>>2]=n[Xt>>2],n[c+4>>2]=n[Xt+4>>2],zA(s,4508,c)|0,n[cr>>2]=3,n[cr+4>>2]=0,n[c>>2]=n[cr>>2],n[c+4>>2]=n[cr+4>>2],dF(s,4519,c)|0,n[Or>>2]=4,n[Or+4>>2]=0,n[c>>2]=n[Or>>2],n[c+4>>2]=n[Or+4>>2],Kve(s,4530,c)|0,n[Lt>>2]=19,n[Lt+4>>2]=0,n[c>>2]=n[Lt>>2],n[c+4>>2]=n[Lt+4>>2],Vve(s,4542,c)|0,n[qe>>2]=12,n[qe+4>>2]=0,n[c>>2]=n[qe>>2],n[c+4>>2]=n[qe+4>>2],zve(s,4554,c)|0,n[_e>>2]=13,n[_e+4>>2]=0,n[c>>2]=n[_e>>2],n[c+4>>2]=n[_e+4>>2],Jve(s,4568,c)|0,n[lt>>2]=2,n[lt+4>>2]=0,n[c>>2]=n[lt>>2],n[c+4>>2]=n[lt+4>>2],Xve(s,4578,c)|0,n[Je>>2]=20,n[Je+4>>2]=0,n[c>>2]=n[Je>>2],n[c+4>>2]=n[Je+4>>2],Zve(s,4587,c)|0,n[$e>>2]=22,n[$e+4>>2]=0,n[c>>2]=n[$e>>2],n[c+4>>2]=n[$e+4>>2],mw(s,4602,c)|0,n[Qe>>2]=23,n[Qe+4>>2]=0,n[c>>2]=n[Qe>>2],n[c+4>>2]=n[Qe+4>>2],mw(s,4619,c)|0,n[Oe>>2]=14,n[Oe+4>>2]=0,n[c>>2]=n[Oe>>2],n[c+4>>2]=n[Oe+4>>2],$ve(s,4629,c)|0,n[je>>2]=1,n[je+4>>2]=0,n[c>>2]=n[je>>2],n[c+4>>2]=n[je+4>>2],eDe(s,4637,c)|0,n[se>>2]=4,n[se+4>>2]=0,n[c>>2]=n[se>>2],n[c+4>>2]=n[se+4>>2],JA(s,4653,c)|0,n[j>>2]=5,n[j+4>>2]=0,n[c>>2]=n[j>>2],n[c+4>>2]=n[j+4>>2],JA(s,4669,c)|0,n[M>>2]=6,n[M+4>>2]=0,n[c>>2]=n[M>>2],n[c+4>>2]=n[M+4>>2],JA(s,4686,c)|0,n[O>>2]=7,n[O+4>>2]=0,n[c>>2]=n[O>>2],n[c+4>>2]=n[O+4>>2],JA(s,4701,c)|0,n[Q>>2]=8,n[Q+4>>2]=0,n[c>>2]=n[Q>>2],n[c+4>>2]=n[Q+4>>2],JA(s,4719,c)|0,n[k>>2]=9,n[k+4>>2]=0,n[c>>2]=n[k>>2],n[c+4>>2]=n[k+4>>2],JA(s,4736,c)|0,n[B>>2]=21,n[B+4>>2]=0,n[c>>2]=n[B>>2],n[c+4>>2]=n[B+4>>2],tDe(s,4754,c)|0,n[m>>2]=2,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],Hv(s,4772,c)|0,n[d>>2]=3,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],Hv(s,4790,c)|0,n[f>>2]=4,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],Hv(s,4808,c)|0,C=l}function qve(s,l){s=s|0,l=l|0;var c=0;c=aFe()|0,n[s>>2]=c,lFe(c,l),Pp(n[s>>2]|0)}function jve(s,l,c){return s=s|0,l=l|0,c=c|0,KQe(s,pn(l)|0,c,0),s|0}function Gve(s,l,c){return s=s|0,l=l|0,c=c|0,QQe(s,pn(l)|0,c,0),s|0}function Yve(s,l,c){return s=s|0,l=l|0,c=c|0,mQe(s,pn(l)|0,c,0),s|0}function mw(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tQe(s,l,d),C=f,s|0}function Wve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Lke(s,l,d),C=f,s|0}function Qu(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Cke(s,l,d),C=f,s|0}function I0(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ike(s,l,d),C=f,s|0}function vs(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qxe(s,l,d),C=f,s|0}function zA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Pxe(s,l,d),C=f,s|0}function dF(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],uxe(s,l,d),C=f,s|0}function B0(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Lbe(s,l,d),C=f,s|0}function JA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Cbe(s,l,d),C=f,s|0}function Hv(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ibe(s,l,d),C=f,s|0}function Kve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qSe(s,l,d),C=f,s|0}function Vve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],PSe(s,l,d),C=f,s|0}function zve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ASe(s,l,d),C=f,s|0}function Jve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],JPe(s,l,d),C=f,s|0}function Xve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],RPe(s,l,d),C=f,s|0}function Zve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],dPe(s,l,d),C=f,s|0}function $ve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ePe(s,l,d),C=f,s|0}function eDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],LDe(s,l,d),C=f,s|0}function tDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rDe(s,l,d),C=f,s|0}function rDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],nDe(s,c,d,1),C=f}function pn(s){return s=s|0,s|0}function nDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=mF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=iDe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,sDe(m,f)|0,f),C=d}function mF(){var s=0,l=0;if(o[7616]|0||(X5(9136),ir(24,9136,U|0)|0,l=7616,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9136)|0)){s=9136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));X5(9136)}return 9136}function iDe(s){return s=s|0,0}function sDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=mF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],J5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lDe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function hn(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0;B=C,C=C+32|0,se=B+24|0,j=B+20|0,Q=B+16|0,M=B+12|0,O=B+8|0,k=B+4|0,je=B,n[j>>2]=l,n[Q>>2]=c,n[M>>2]=f,n[O>>2]=d,n[k>>2]=m,m=s+28|0,n[je>>2]=n[m>>2],n[se>>2]=n[je>>2],oDe(s+24|0,se,j,M,O,Q,k)|0,n[m>>2]=n[n[m>>2]>>2],C=B}function oDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,s=aDe(l)|0,l=Kt(24)|0,z5(l+4|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0,n[B>>2]|0),n[l>>2]=n[s>>2],n[s>>2]=l,l|0}function aDe(s){return s=s|0,n[s>>2]|0}function z5(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function gr(s,l){return s=s|0,l=l|0,l|s|0}function J5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cDe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,uDe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],J5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,ADe(s,k),fDe(k),C=O;return}}function cDe(s){return s=s|0,357913941}function uDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ADe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function X5(s){s=s|0,gDe(s)}function pDe(s){s=s|0,hDe(s+24|0)}function Rr(s){return s=s|0,n[s>>2]|0}function hDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function gDe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,3,l,dDe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Vr(){return 9228}function dDe(){return 1140}function mDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=yDe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=EDe(l,f)|0,C=c,l|0}function zr(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function yDe(s){return s=s|0,(n[(mF()|0)+24>>2]|0)+(s*12|0)|0}function EDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+48|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&31](f,s),f=CDe(f)|0,C=d,f|0}function CDe(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=yF(Z5()|0)|0,f?(EF(l,f),CF(c,l),wDe(s,c),s=wF(l)|0):s=IDe(s)|0,C=d,s|0}function Z5(){var s=0;return o[7632]|0||(FDe(9184),ir(25,9184,U|0)|0,s=7632,n[s>>2]=1,n[s+4>>2]=0),9184}function yF(s){return s=s|0,n[s+36>>2]|0}function EF(s,l){s=s|0,l=l|0,n[s>>2]=l,n[s+4>>2]=s,n[s+8>>2]=0}function CF(s,l){s=s|0,l=l|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=0}function wDe(s,l){s=s|0,l=l|0,PDe(l,s,s+8|0,s+16|0,s+24|0,s+32|0,s+40|0)|0}function wF(s){return s=s|0,n[(n[s+4>>2]|0)+8>>2]|0}function IDe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0;Q=C,C=C+16|0,c=Q+4|0,f=Q,d=Va(8)|0,m=d,B=Kt(48)|0,k=B,l=k+48|0;do n[k>>2]=n[s>>2],k=k+4|0,s=s+4|0;while((k|0)<(l|0));return l=m+4|0,n[l>>2]=B,k=Kt(8)|0,B=n[l>>2]|0,n[f>>2]=0,n[c>>2]=n[f>>2],$5(k,B,c),n[d>>2]=k,C=Q,m|0}function $5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1092,n[c+12>>2]=l,n[s+4>>2]=c}function BDe(s){s=s|0,Md(s),gt(s)}function vDe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function DDe(s){s=s|0,gt(s)}function PDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,m=SDe(n[s>>2]|0,l,c,f,d,m,B)|0,B=s+4|0,n[(n[B>>2]|0)+8>>2]=m,n[(n[B>>2]|0)+8>>2]|0}function SDe(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0;var k=0,Q=0;return k=C,C=C+16|0,Q=k,za(Q),s=ya(s)|0,B=bDe(s,+E[l>>3],+E[c>>3],+E[f>>3],+E[d>>3],+E[m>>3],+E[B>>3])|0,Ja(Q),C=k,B|0}function bDe(s,l,c,f,d,m,B){s=s|0,l=+l,c=+c,f=+f,d=+d,m=+m,B=+B;var k=0;return k=Pl(xDe()|0)|0,l=+VA(l),c=+VA(c),f=+VA(f),d=+VA(d),m=+VA(m),_s(0,k|0,s|0,+l,+c,+f,+d,+m,+ +VA(B))|0}function xDe(){var s=0;return o[7624]|0||(kDe(9172),s=7624,n[s>>2]=1,n[s+4>>2]=0),9172}function kDe(s){s=s|0,Sl(s,QDe()|0,6)}function QDe(){return 1112}function FDe(s){s=s|0,wp(s)}function RDe(s){s=s|0,eG(s+24|0),tG(s+16|0)}function eG(s){s=s|0,NDe(s)}function tG(s){s=s|0,TDe(s)}function TDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,gt(c);while(l|0);n[s>>2]=0}function NDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,gt(c);while(l|0);n[s>>2]=0}function wp(s){s=s|0;var l=0;n[s+16>>2]=0,n[s+20>>2]=0,l=s+24|0,n[l>>2]=0,n[s+28>>2]=l,n[s+36>>2]=0,o[s+40>>0]=0,o[s+41>>0]=0}function LDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],MDe(s,c,d,0),C=f}function MDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=IF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=ODe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,UDe(m,f)|0,f),C=d}function IF(){var s=0,l=0;if(o[7640]|0||(nG(9232),ir(26,9232,U|0)|0,l=7640,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9232)|0)){s=9232,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));nG(9232)}return 9232}function ODe(s){return s=s|0,0}function UDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=IF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],rG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(_De(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function rG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function _De(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=HDe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,qDe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],rG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,jDe(s,k),GDe(k),C=O;return}}function HDe(s){return s=s|0,357913941}function qDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function jDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function GDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function nG(s){s=s|0,KDe(s)}function YDe(s){s=s|0,WDe(s+24|0)}function WDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function KDe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,1,l,VDe()|0,3),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function VDe(){return 1144}function zDe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,k=0,Q=0;m=C,C=C+16|0,B=m+8|0,k=m,Q=JDe(s)|0,s=n[Q+4>>2]|0,n[k>>2]=n[Q>>2],n[k+4>>2]=s,n[B>>2]=n[k>>2],n[B+4>>2]=n[k+4>>2],XDe(l,B,c,f,d),C=m}function JDe(s){return s=s|0,(n[(IF()|0)+24>>2]|0)+(s*12|0)|0}function XDe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,k=0,Q=0,O=0;O=C,C=C+16|0,B=O+2|0,k=O+1|0,Q=O,m=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(m=n[(n[s>>2]|0)+m>>2]|0),Fu(B,c),c=+Ru(B,c),Fu(k,f),f=+Ru(k,f),XA(Q,d),Q=ZA(Q,d)|0,y7[m&1](s,c,f,Q),C=O}function Fu(s,l){s=s|0,l=+l}function Ru(s,l){return s=s|0,l=+l,+ +$De(l)}function XA(s,l){s=s|0,l=l|0}function ZA(s,l){return s=s|0,l=l|0,ZDe(l)|0}function ZDe(s){return s=s|0,s|0}function $De(s){return s=+s,+s}function ePe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tPe(s,c,d,1),C=f}function tPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=BF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=rPe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,nPe(m,f)|0,f),C=d}function BF(){var s=0,l=0;if(o[7648]|0||(sG(9268),ir(27,9268,U|0)|0,l=7648,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9268)|0)){s=9268,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));sG(9268)}return 9268}function rPe(s){return s=s|0,0}function nPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=BF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],iG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(iPe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function iG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function iPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=sPe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,oPe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],iG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,aPe(s,k),lPe(k),C=O;return}}function sPe(s){return s=s|0,357913941}function oPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function aPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function lPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function sG(s){s=s|0,APe(s)}function cPe(s){s=s|0,uPe(s+24|0)}function uPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function APe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,4,l,fPe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function fPe(){return 1160}function pPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=hPe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=gPe(l,f)|0,C=c,l|0}function hPe(s){return s=s|0,(n[(BF()|0)+24>>2]|0)+(s*12|0)|0}function gPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),oG(F0[c&31](s)|0)|0}function oG(s){return s=s|0,s&1|0}function dPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],mPe(s,c,d,0),C=f}function mPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=vF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=yPe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,EPe(m,f)|0,f),C=d}function vF(){var s=0,l=0;if(o[7656]|0||(lG(9304),ir(28,9304,U|0)|0,l=7656,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9304)|0)){s=9304,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));lG(9304)}return 9304}function yPe(s){return s=s|0,0}function EPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=vF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],aG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(CPe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function aG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function CPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=wPe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,IPe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],aG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,BPe(s,k),vPe(k),C=O;return}}function wPe(s){return s=s|0,357913941}function IPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function BPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function vPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function lG(s){s=s|0,SPe(s)}function DPe(s){s=s|0,PPe(s+24|0)}function PPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function SPe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,5,l,bPe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function bPe(){return 1164}function xPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=kPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],QPe(l,d,c),C=f}function kPe(s){return s=s|0,(n[(vF()|0)+24>>2]|0)+(s*12|0)|0}function QPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Ip(d,c),c=Bp(d,c)|0,tf[f&31](s,c),vp(d),C=m}function Ip(s,l){s=s|0,l=l|0,FPe(s,l)}function Bp(s,l){return s=s|0,l=l|0,s|0}function vp(s){s=s|0,qA(s)}function FPe(s,l){s=s|0,l=l|0,DF(s,l)}function DF(s,l){s=s|0,l=l|0,n[s>>2]=l}function RPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],TPe(s,c,d,0),C=f}function TPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=PF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=NPe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,LPe(m,f)|0,f),C=d}function PF(){var s=0,l=0;if(o[7664]|0||(uG(9340),ir(29,9340,U|0)|0,l=7664,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9340)|0)){s=9340,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));uG(9340)}return 9340}function NPe(s){return s=s|0,0}function LPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=PF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],cG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(MPe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function cG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function MPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=OPe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,UPe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],cG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,_Pe(s,k),HPe(k),C=O;return}}function OPe(s){return s=s|0,357913941}function UPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function _Pe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function HPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function uG(s){s=s|0,GPe(s)}function qPe(s){s=s|0,jPe(s+24|0)}function jPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function GPe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,4,l,YPe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function YPe(){return 1180}function WPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=KPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=VPe(l,d,c)|0,C=f,c|0}function KPe(s){return s=s|0,(n[(PF()|0)+24>>2]|0)+(s*12|0)|0}function VPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),v0(d,c),d=D0(d,c)|0,d=qv(IR[f&15](s,d)|0)|0,C=m,d|0}function v0(s,l){s=s|0,l=l|0}function D0(s,l){return s=s|0,l=l|0,zPe(l)|0}function qv(s){return s=s|0,s|0}function zPe(s){return s=s|0,s|0}function JPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],XPe(s,c,d,0),C=f}function XPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=SF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=ZPe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,$Pe(m,f)|0,f),C=d}function SF(){var s=0,l=0;if(o[7672]|0||(fG(9376),ir(30,9376,U|0)|0,l=7672,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9376)|0)){s=9376,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));fG(9376)}return 9376}function ZPe(s){return s=s|0,0}function $Pe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=SF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],AG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(eSe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function AG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function eSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=tSe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,rSe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],AG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,nSe(s,k),iSe(k),C=O;return}}function tSe(s){return s=s|0,357913941}function rSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function nSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function iSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function fG(s){s=s|0,aSe(s)}function sSe(s){s=s|0,oSe(s+24|0)}function oSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function aSe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,5,l,pG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pG(){return 1196}function lSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=cSe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=uSe(l,f)|0,C=c,l|0}function cSe(s){return s=s|0,(n[(SF()|0)+24>>2]|0)+(s*12|0)|0}function uSe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),qv(F0[c&31](s)|0)|0}function ASe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],fSe(s,c,d,1),C=f}function fSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=bF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=pSe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,hSe(m,f)|0,f),C=d}function bF(){var s=0,l=0;if(o[7680]|0||(gG(9412),ir(31,9412,U|0)|0,l=7680,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9412)|0)){s=9412,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));gG(9412)}return 9412}function pSe(s){return s=s|0,0}function hSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=bF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],hG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(gSe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function hG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function gSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=dSe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,mSe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],hG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,ySe(s,k),ESe(k),C=O;return}}function dSe(s){return s=s|0,357913941}function mSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ySe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function ESe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function gG(s){s=s|0,ISe(s)}function CSe(s){s=s|0,wSe(s+24|0)}function wSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function ISe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,6,l,dG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dG(){return 1200}function BSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=vSe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=DSe(l,f)|0,C=c,l|0}function vSe(s){return s=s|0,(n[(bF()|0)+24>>2]|0)+(s*12|0)|0}function DSe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),jv(F0[c&31](s)|0)|0}function jv(s){return s=s|0,s|0}function PSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],SSe(s,c,d,0),C=f}function SSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=xF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=bSe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,xSe(m,f)|0,f),C=d}function xF(){var s=0,l=0;if(o[7688]|0||(yG(9448),ir(32,9448,U|0)|0,l=7688,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9448)|0)){s=9448,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));yG(9448)}return 9448}function bSe(s){return s=s|0,0}function xSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=xF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],mG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(kSe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function mG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function kSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=QSe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,FSe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],mG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,RSe(s,k),TSe(k),C=O;return}}function QSe(s){return s=s|0,357913941}function FSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function RSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function TSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function yG(s){s=s|0,MSe(s)}function NSe(s){s=s|0,LSe(s+24|0)}function LSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function MSe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,6,l,EG()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function EG(){return 1204}function OSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=USe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],_Se(l,d,c),C=f}function USe(s){return s=s|0,(n[(xF()|0)+24>>2]|0)+(s*12|0)|0}function _Se(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),kF(d,c),d=QF(d,c)|0,tf[f&31](s,d),C=m}function kF(s,l){s=s|0,l=l|0}function QF(s,l){return s=s|0,l=l|0,HSe(l)|0}function HSe(s){return s=s|0,s|0}function qSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jSe(s,c,d,0),C=f}function jSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=FF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=GSe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,YSe(m,f)|0,f),C=d}function FF(){var s=0,l=0;if(o[7696]|0||(wG(9484),ir(33,9484,U|0)|0,l=7696,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9484)|0)){s=9484,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));wG(9484)}return 9484}function GSe(s){return s=s|0,0}function YSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=FF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],CG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(WSe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function CG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function WSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=KSe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,VSe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],CG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,zSe(s,k),JSe(k),C=O;return}}function KSe(s){return s=s|0,357913941}function VSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function zSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function JSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function wG(s){s=s|0,$Se(s)}function XSe(s){s=s|0,ZSe(s+24|0)}function ZSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function $Se(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,1,l,ebe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ebe(){return 1212}function tbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=rbe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],nbe(l,m,c,f),C=d}function rbe(s){return s=s|0,(n[(FF()|0)+24>>2]|0)+(s*12|0)|0}function nbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),kF(m,c),m=QF(m,c)|0,v0(B,f),B=D0(B,f)|0,vw[d&15](s,m,B),C=k}function ibe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sbe(s,c,d,1),C=f}function sbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=RF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=obe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,abe(m,f)|0,f),C=d}function RF(){var s=0,l=0;if(o[7704]|0||(BG(9520),ir(34,9520,U|0)|0,l=7704,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9520)|0)){s=9520,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));BG(9520)}return 9520}function obe(s){return s=s|0,0}function abe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=RF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],IG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lbe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function IG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cbe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,ube(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],IG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,Abe(s,k),fbe(k),C=O;return}}function cbe(s){return s=s|0,357913941}function ube(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Abe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function BG(s){s=s|0,gbe(s)}function pbe(s){s=s|0,hbe(s+24|0)}function hbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function gbe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,1,l,dbe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dbe(){return 1224}function mbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;return d=C,C=C+16|0,m=d+8|0,B=d,k=ybe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],f=+Ebe(l,m,c),C=d,+f}function ybe(s){return s=s|0,(n[(RF()|0)+24>>2]|0)+(s*12|0)|0}function Ebe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,B=+gF(+C7[f&7](s,d)),C=m,+B}function Cbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wbe(s,c,d,1),C=f}function wbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=TF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=Ibe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Bbe(m,f)|0,f),C=d}function TF(){var s=0,l=0;if(o[7712]|0||(DG(9556),ir(35,9556,U|0)|0,l=7712,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9556)|0)){s=9556,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));DG(9556)}return 9556}function Ibe(s){return s=s|0,0}function Bbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=TF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],vG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(vbe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function vG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function vbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Dbe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,Pbe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],vG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,Sbe(s,k),bbe(k),C=O;return}}function Dbe(s){return s=s|0,357913941}function Pbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Sbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function bbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function DG(s){s=s|0,Qbe(s)}function xbe(s){s=s|0,kbe(s+24|0)}function kbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Qbe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,5,l,Fbe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Fbe(){return 1232}function Rbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=Tbe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=+Nbe(l,d),C=f,+c}function Tbe(s){return s=s|0,(n[(TF()|0)+24>>2]|0)+(s*12|0)|0}function Nbe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),+ +gF(+E7[c&15](s))}function Lbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Mbe(s,c,d,1),C=f}function Mbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=NF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=Obe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Ube(m,f)|0,f),C=d}function NF(){var s=0,l=0;if(o[7720]|0||(SG(9592),ir(36,9592,U|0)|0,l=7720,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9592)|0)){s=9592,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));SG(9592)}return 9592}function Obe(s){return s=s|0,0}function Ube(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=NF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],PG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(_be(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function PG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function _be(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Hbe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,qbe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],PG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,jbe(s,k),Gbe(k),C=O;return}}function Hbe(s){return s=s|0,357913941}function qbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function jbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Gbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function SG(s){s=s|0,Kbe(s)}function Ybe(s){s=s|0,Wbe(s+24|0)}function Wbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Kbe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,7,l,Vbe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Vbe(){return 1276}function zbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=Jbe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Xbe(l,f)|0,C=c,l|0}function Jbe(s){return s=s|0,(n[(NF()|0)+24>>2]|0)+(s*12|0)|0}function Xbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+16|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&31](f,s),f=bG(f)|0,C=d,f|0}function bG(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=yF(xG()|0)|0,f?(EF(l,f),CF(c,l),Zbe(s,c),s=wF(l)|0):s=$be(s)|0,C=d,s|0}function xG(){var s=0;return o[7736]|0||(cxe(9640),ir(25,9640,U|0)|0,s=7736,n[s>>2]=1,n[s+4>>2]=0),9640}function Zbe(s,l){s=s|0,l=l|0,nxe(l,s,s+8|0)|0}function $be(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Va(8)|0,l=f,k=Kt(16)|0,n[k>>2]=n[s>>2],n[k+4>>2]=n[s+4>>2],n[k+8>>2]=n[s+8>>2],n[k+12>>2]=n[s+12>>2],m=l+4|0,n[m>>2]=k,s=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],LF(s,m,d),n[f>>2]=s,C=c,l|0}function LF(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1244,n[c+12>>2]=l,n[s+4>>2]=c}function exe(s){s=s|0,Md(s),gt(s)}function txe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function rxe(s){s=s|0,gt(s)}function nxe(s,l,c){return s=s|0,l=l|0,c=c|0,l=ixe(n[s>>2]|0,l,c)|0,c=s+4|0,n[(n[c>>2]|0)+8>>2]=l,n[(n[c>>2]|0)+8>>2]|0}function ixe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return f=C,C=C+16|0,d=f,za(d),s=ya(s)|0,c=sxe(s,n[l>>2]|0,+E[c>>3])|0,Ja(d),C=f,c|0}function sxe(s,l,c){s=s|0,l=l|0,c=+c;var f=0;return f=Pl(oxe()|0)|0,l=hF(l)|0,ml(0,f|0,s|0,l|0,+ +VA(c))|0}function oxe(){var s=0;return o[7728]|0||(axe(9628),s=7728,n[s>>2]=1,n[s+4>>2]=0),9628}function axe(s){s=s|0,Sl(s,lxe()|0,2)}function lxe(){return 1264}function cxe(s){s=s|0,wp(s)}function uxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Axe(s,c,d,1),C=f}function Axe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=MF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=fxe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,pxe(m,f)|0,f),C=d}function MF(){var s=0,l=0;if(o[7744]|0||(QG(9684),ir(37,9684,U|0)|0,l=7744,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9684)|0)){s=9684,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));QG(9684)}return 9684}function fxe(s){return s=s|0,0}function pxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=MF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],kG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(hxe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function kG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function hxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=gxe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,dxe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],kG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,mxe(s,k),yxe(k),C=O;return}}function gxe(s){return s=s|0,357913941}function dxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function mxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function yxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function QG(s){s=s|0,wxe(s)}function Exe(s){s=s|0,Cxe(s+24|0)}function Cxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function wxe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,5,l,Ixe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Ixe(){return 1280}function Bxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=vxe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=Dxe(l,d,c)|0,C=f,c|0}function vxe(s){return s=s|0,(n[(MF()|0)+24>>2]|0)+(s*12|0)|0}function Dxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return B=C,C=C+32|0,d=B,m=B+16|0,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(m,c),m=ZA(m,c)|0,vw[f&15](d,s,m),m=bG(d)|0,C=B,m|0}function Pxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Sxe(s,c,d,1),C=f}function Sxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=OF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=bxe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,xxe(m,f)|0,f),C=d}function OF(){var s=0,l=0;if(o[7752]|0||(RG(9720),ir(38,9720,U|0)|0,l=7752,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9720)|0)){s=9720,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));RG(9720)}return 9720}function bxe(s){return s=s|0,0}function xxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=OF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],FG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(kxe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function FG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function kxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Qxe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,Fxe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],FG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,Rxe(s,k),Txe(k),C=O;return}}function Qxe(s){return s=s|0,357913941}function Fxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Rxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Txe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function RG(s){s=s|0,Mxe(s)}function Nxe(s){s=s|0,Lxe(s+24|0)}function Lxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Mxe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,8,l,Oxe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Oxe(){return 1288}function Uxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=_xe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Hxe(l,f)|0,C=c,l|0}function _xe(s){return s=s|0,(n[(OF()|0)+24>>2]|0)+(s*12|0)|0}function Hxe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),V5(F0[c&31](s)|0)|0}function qxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jxe(s,c,d,0),C=f}function jxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=UF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=Gxe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Yxe(m,f)|0,f),C=d}function UF(){var s=0,l=0;if(o[7760]|0||(NG(9756),ir(39,9756,U|0)|0,l=7760,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9756)|0)){s=9756,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));NG(9756)}return 9756}function Gxe(s){return s=s|0,0}function Yxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=UF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],TG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Wxe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function TG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Wxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Kxe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,Vxe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],TG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,zxe(s,k),Jxe(k),C=O;return}}function Kxe(s){return s=s|0,357913941}function Vxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function zxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Jxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function NG(s){s=s|0,$xe(s)}function Xxe(s){s=s|0,Zxe(s+24|0)}function Zxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function $xe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,8,l,eke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function eke(){return 1292}function tke(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=rke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],nke(l,d,c),C=f}function rke(s){return s=s|0,(n[(UF()|0)+24>>2]|0)+(s*12|0)|0}function nke(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Fu(d,c),c=+Ru(d,c),d7[f&31](s,c),C=m}function ike(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ske(s,c,d,0),C=f}function ske(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=_F()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=oke(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,ake(m,f)|0,f),C=d}function _F(){var s=0,l=0;if(o[7768]|0||(MG(9792),ir(40,9792,U|0)|0,l=7768,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9792)|0)){s=9792,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));MG(9792)}return 9792}function oke(s){return s=s|0,0}function ake(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=_F()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],LG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lke(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function LG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cke(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,uke(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],LG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,Ake(s,k),fke(k),C=O;return}}function cke(s){return s=s|0,357913941}function uke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Ake(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function MG(s){s=s|0,gke(s)}function pke(s){s=s|0,hke(s+24|0)}function hke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function gke(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,1,l,dke()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dke(){return 1300}function mke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=yke(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],Eke(l,m,c,f),C=d}function yke(s){return s=s|0,(n[(_F()|0)+24>>2]|0)+(s*12|0)|0}function Eke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),XA(m,c),m=ZA(m,c)|0,Fu(B,f),f=+Ru(B,f),v7[d&15](s,m,f),C=k}function Cke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wke(s,c,d,0),C=f}function wke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=HF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=Ike(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Bke(m,f)|0,f),C=d}function HF(){var s=0,l=0;if(o[7776]|0||(UG(9828),ir(41,9828,U|0)|0,l=7776,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9828)|0)){s=9828,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));UG(9828)}return 9828}function Ike(s){return s=s|0,0}function Bke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=HF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],OG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(vke(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function OG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function vke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Dke(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,Pke(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],OG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,Ske(s,k),bke(k),C=O;return}}function Dke(s){return s=s|0,357913941}function Pke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Ske(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function bke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function UG(s){s=s|0,Qke(s)}function xke(s){s=s|0,kke(s+24|0)}function kke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Qke(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,7,l,Fke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Fke(){return 1312}function Rke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=Tke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Nke(l,d,c),C=f}function Tke(s){return s=s|0,(n[(HF()|0)+24>>2]|0)+(s*12|0)|0}function Nke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,tf[f&31](s,d),C=m}function Lke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Mke(s,c,d,0),C=f}function Mke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=qF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=Oke(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Uke(m,f)|0,f),C=d}function qF(){var s=0,l=0;if(o[7784]|0||(HG(9864),ir(42,9864,U|0)|0,l=7784,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9864)|0)){s=9864,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));HG(9864)}return 9864}function Oke(s){return s=s|0,0}function Uke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=qF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],_G(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(_ke(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function _G(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function _ke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Hke(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,qke(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],_G(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,jke(s,k),Gke(k),C=O;return}}function Hke(s){return s=s|0,357913941}function qke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function jke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Gke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function HG(s){s=s|0,Kke(s)}function Yke(s){s=s|0,Wke(s+24|0)}function Wke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Kke(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,8,l,Vke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Vke(){return 1320}function zke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=Jke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Xke(l,d,c),C=f}function Jke(s){return s=s|0,(n[(qF()|0)+24>>2]|0)+(s*12|0)|0}function Xke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Zke(d,c),d=$ke(d,c)|0,tf[f&31](s,d),C=m}function Zke(s,l){s=s|0,l=l|0}function $ke(s,l){return s=s|0,l=l|0,eQe(l)|0}function eQe(s){return s=s|0,s|0}function tQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rQe(s,c,d,0),C=f}function rQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=jF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=nQe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,iQe(m,f)|0,f),C=d}function jF(){var s=0,l=0;if(o[7792]|0||(jG(9900),ir(43,9900,U|0)|0,l=7792,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9900)|0)){s=9900,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));jG(9900)}return 9900}function nQe(s){return s=s|0,0}function iQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=jF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],qG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(sQe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function qG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function sQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=oQe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,aQe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],qG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,lQe(s,k),cQe(k),C=O;return}}function oQe(s){return s=s|0,357913941}function aQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function lQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function cQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function jG(s){s=s|0,fQe(s)}function uQe(s){s=s|0,AQe(s+24|0)}function AQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function fQe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,22,l,pQe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pQe(){return 1344}function hQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;c=C,C=C+16|0,f=c+8|0,d=c,m=gQe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],dQe(l,f),C=c}function gQe(s){return s=s|0,(n[(jF()|0)+24>>2]|0)+(s*12|0)|0}function dQe(s,l){s=s|0,l=l|0;var c=0;c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),ef[c&127](s)}function mQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=GF()|0,s=yQe(c)|0,hn(m,l,d,s,EQe(c,f)|0,f)}function GF(){var s=0,l=0;if(o[7800]|0||(YG(9936),ir(44,9936,U|0)|0,l=7800,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9936)|0)){s=9936,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));YG(9936)}return 9936}function yQe(s){return s=s|0,s|0}function EQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=GF()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(GG(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(CQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function GG(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function CQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=wQe(s)|0,f>>>0<B>>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,IQe(d,M>>3>>>0<f>>>1>>>0?O>>>0<B>>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,GG(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,BQe(s,d),vQe(d),C=k;return}}function wQe(s){return s=s|0,536870911}function IQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function BQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function vQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function YG(s){s=s|0,SQe(s)}function DQe(s){s=s|0,PQe(s+24|0)}function PQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function SQe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,23,l,EG()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function bQe(s,l){s=s|0,l=l|0,kQe(n[(xQe(s)|0)>>2]|0,l)}function xQe(s){return s=s|0,(n[(GF()|0)+24>>2]|0)+(s<<3)|0}function kQe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,kF(f,l),l=QF(f,l)|0,ef[s&127](l),C=c}function QQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=YF()|0,s=FQe(c)|0,hn(m,l,d,s,RQe(c,f)|0,f)}function YF(){var s=0,l=0;if(o[7808]|0||(KG(9972),ir(45,9972,U|0)|0,l=7808,n[l>>2]=1,n[l+4>>2]=0),!(Rr(9972)|0)){s=9972,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));KG(9972)}return 9972}function FQe(s){return s=s|0,s|0}function RQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=YF()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(WG(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(TQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function WG(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function TQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=NQe(s)|0,f>>>0<B>>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,LQe(d,M>>3>>>0<f>>>1>>>0?O>>>0<B>>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,WG(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,MQe(s,d),OQe(d),C=k;return}}function NQe(s){return s=s|0,536870911}function LQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function MQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function OQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function KG(s){s=s|0,HQe(s)}function UQe(s){s=s|0,_Qe(s+24|0)}function _Qe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function HQe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,9,l,qQe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function qQe(){return 1348}function jQe(s,l){return s=s|0,l=l|0,YQe(n[(GQe(s)|0)>>2]|0,l)|0}function GQe(s){return s=s|0,(n[(YF()|0)+24>>2]|0)+(s<<3)|0}function YQe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,VG(f,l),l=zG(f,l)|0,l=qv(F0[s&31](l)|0)|0,C=c,l|0}function VG(s,l){s=s|0,l=l|0}function zG(s,l){return s=s|0,l=l|0,WQe(l)|0}function WQe(s){return s=s|0,s|0}function KQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=WF()|0,s=VQe(c)|0,hn(m,l,d,s,zQe(c,f)|0,f)}function WF(){var s=0,l=0;if(o[7816]|0||(XG(10008),ir(46,10008,U|0)|0,l=7816,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10008)|0)){s=10008,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));XG(10008)}return 10008}function VQe(s){return s=s|0,s|0}function zQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=WF()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(JG(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(JQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function JG(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function JQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=XQe(s)|0,f>>>0<B>>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,ZQe(d,M>>3>>>0<f>>>1>>>0?O>>>0<B>>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,JG(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,$Qe(s,d),eFe(d),C=k;return}}function XQe(s){return s=s|0,536870911}function ZQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function $Qe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function eFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function XG(s){s=s|0,nFe(s)}function tFe(s){s=s|0,rFe(s+24|0)}function rFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function nFe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,15,l,pG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function iFe(s){return s=s|0,oFe(n[(sFe(s)|0)>>2]|0)|0}function sFe(s){return s=s|0,(n[(WF()|0)+24>>2]|0)+(s<<3)|0}function oFe(s){return s=s|0,qv(nD[s&7]()|0)|0}function aFe(){var s=0;return o[7832]|0||(gFe(10052),ir(25,10052,U|0)|0,s=7832,n[s>>2]=1,n[s+4>>2]=0),10052}function lFe(s,l){s=s|0,l=l|0,n[s>>2]=cFe()|0,n[s+4>>2]=uFe()|0,n[s+12>>2]=l,n[s+8>>2]=AFe()|0,n[s+32>>2]=2}function cFe(){return 11709}function uFe(){return 1188}function AFe(){return Gv()|0}function fFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Dp(f,896)|0)==512?c|0&&(pFe(c),gt(c)):l|0&&(bu(l),gt(l))}function Dp(s,l){return s=s|0,l=l|0,l&s|0}function pFe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function Gv(){var s=0;return o[7824]|0||(n[2511]=hFe()|0,n[2512]=0,s=7824,n[s>>2]=1,n[s+4>>2]=0),10044}function hFe(){return 0}function gFe(s){s=s|0,wp(s)}function dFe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0;l=C,C=C+32|0,c=l+24|0,m=l+16|0,d=l+8|0,f=l,mFe(s,4827),yFe(s,4834,3)|0,EFe(s,3682,47)|0,n[m>>2]=9,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],CFe(s,4841,c)|0,n[d>>2]=1,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],wFe(s,4871,c)|0,n[f>>2]=10,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],IFe(s,4891,c)|0,C=l}function mFe(s,l){s=s|0,l=l|0;var c=0;c=eTe()|0,n[s>>2]=c,tTe(c,l),Pp(n[s>>2]|0)}function yFe(s,l,c){return s=s|0,l=l|0,c=c|0,ORe(s,pn(l)|0,c,0),s|0}function EFe(s,l,c){return s=s|0,l=l|0,c=c|0,BRe(s,pn(l)|0,c,0),s|0}function CFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],iRe(s,l,d),C=f,s|0}function wFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],UFe(s,l,d),C=f,s|0}function IFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],BFe(s,l,d),C=f,s|0}function BFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vFe(s,c,d,1),C=f}function vFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=KF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=DFe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,PFe(m,f)|0,f),C=d}function KF(){var s=0,l=0;if(o[7840]|0||($G(10100),ir(48,10100,U|0)|0,l=7840,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10100)|0)){s=10100,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));$G(10100)}return 10100}function DFe(s){return s=s|0,0}function PFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=KF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],ZG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(SFe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function ZG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function SFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=bFe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,xFe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],ZG(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,kFe(s,k),QFe(k),C=O;return}}function bFe(s){return s=s|0,357913941}function xFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function kFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function QFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function $G(s){s=s|0,TFe(s)}function FFe(s){s=s|0,RFe(s+24|0)}function RFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function TFe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,6,l,NFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function NFe(){return 1364}function LFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=MFe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=OFe(l,d,c)|0,C=f,c|0}function MFe(s){return s=s|0,(n[(KF()|0)+24>>2]|0)+(s*12|0)|0}function OFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,d=oG(IR[f&15](s,d)|0)|0,C=m,d|0}function UFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],_Fe(s,c,d,0),C=f}function _Fe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=VF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=HFe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,qFe(m,f)|0,f),C=d}function VF(){var s=0,l=0;if(o[7848]|0||(t9(10136),ir(49,10136,U|0)|0,l=7848,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10136)|0)){s=10136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));t9(10136)}return 10136}function HFe(s){return s=s|0,0}function qFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=VF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],e9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(jFe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function e9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function jFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=GFe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,YFe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],e9(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,WFe(s,k),KFe(k),C=O;return}}function GFe(s){return s=s|0,357913941}function YFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function WFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function KFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function t9(s){s=s|0,JFe(s)}function VFe(s){s=s|0,zFe(s+24|0)}function zFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function JFe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,9,l,XFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function XFe(){return 1372}function ZFe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=$Fe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],eRe(l,d,c),C=f}function $Fe(s){return s=s|0,(n[(VF()|0)+24>>2]|0)+(s*12|0)|0}function eRe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=Xe;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),tRe(d,c),B=y(rRe(d,c)),g7[f&1](s,B),C=m}function tRe(s,l){s=s|0,l=+l}function rRe(s,l){return s=s|0,l=+l,y(nRe(l))}function nRe(s){return s=+s,y(s)}function iRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sRe(s,c,d,0),C=f}function sRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,O=0,M=0;d=C,C=C+32|0,m=d+16|0,M=d+8|0,k=d,O=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=zF()|0,n[M>>2]=O,n[M+4>>2]=Q,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],c=oRe(m)|0,n[k>>2]=O,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,aRe(m,f)|0,f),C=d}function zF(){var s=0,l=0;if(o[7856]|0||(n9(10172),ir(50,10172,U|0)|0,l=7856,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10172)|0)){s=10172,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));n9(10172)}return 10172}function oRe(s){return s=s|0,0}function aRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0;return M=C,C=C+32|0,d=M+24|0,B=M+16|0,k=M,Q=M+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=zF()|0,O=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],r9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lRe(O,k,Q),s=n[l>>2]|0),C=M,((s-(n[O>>2]|0)|0)/12|0)+-1|0}function r9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;if(O=C,C=C+48|0,f=O+32|0,B=O+24|0,k=O,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cRe(s)|0,m>>>0<d>>>0)Jr(s);else{M=n[s>>2]|0,se=((n[s+8>>2]|0)-M|0)/12|0,j=se<<1,uRe(k,se>>>0<m>>>1>>>0?j>>>0<d>>>0?d:j:m,((n[Q>>2]|0)-M|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],r9(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,ARe(s,k),fRe(k),C=O;return}}function cRe(s){return s=s|0,357913941}function uRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Kt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ARe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function n9(s){s=s|0,gRe(s)}function pRe(s){s=s|0,hRe(s+24|0)}function hRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function gRe(s){s=s|0;var l=0;l=Vr()|0,zr(s,2,3,l,dRe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dRe(){return 1380}function mRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=yRe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],ERe(l,m,c,f),C=d}function yRe(s){return s=s|0,(n[(zF()|0)+24>>2]|0)+(s*12|0)|0}function ERe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),XA(m,c),m=ZA(m,c)|0,CRe(B,f),B=wRe(B,f)|0,vw[d&15](s,m,B),C=k}function CRe(s,l){s=s|0,l=l|0}function wRe(s,l){return s=s|0,l=l|0,IRe(l)|0}function IRe(s){return s=s|0,(s|0)!=0|0}function BRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=JF()|0,s=vRe(c)|0,hn(m,l,d,s,DRe(c,f)|0,f)}function JF(){var s=0,l=0;if(o[7864]|0||(s9(10208),ir(51,10208,U|0)|0,l=7864,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10208)|0)){s=10208,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));s9(10208)}return 10208}function vRe(s){return s=s|0,s|0}function DRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=JF()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(i9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(PRe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function i9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function PRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=SRe(s)|0,f>>>0<B>>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,bRe(d,M>>3>>>0<f>>>1>>>0?O>>>0<B>>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,i9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,xRe(s,d),kRe(d),C=k;return}}function SRe(s){return s=s|0,536870911}function bRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function xRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function kRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function s9(s){s=s|0,RRe(s)}function QRe(s){s=s|0,FRe(s+24|0)}function FRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function RRe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,24,l,TRe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function TRe(){return 1392}function NRe(s,l){s=s|0,l=l|0,MRe(n[(LRe(s)|0)>>2]|0,l)}function LRe(s){return s=s|0,(n[(JF()|0)+24>>2]|0)+(s<<3)|0}function MRe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,VG(f,l),l=zG(f,l)|0,ef[s&127](l),C=c}function ORe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=XF()|0,s=URe(c)|0,hn(m,l,d,s,_Re(c,f)|0,f)}function XF(){var s=0,l=0;if(o[7872]|0||(a9(10244),ir(52,10244,U|0)|0,l=7872,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10244)|0)){s=10244,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));a9(10244)}return 10244}function URe(s){return s=s|0,s|0}function _Re(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=XF()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(o9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(HRe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function o9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function HRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=qRe(s)|0,f>>>0<B>>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,jRe(d,M>>3>>>0<f>>>1>>>0?O>>>0<B>>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,o9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,GRe(s,d),YRe(d),C=k;return}}function qRe(s){return s=s|0,536870911}function jRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function GRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function YRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function a9(s){s=s|0,VRe(s)}function WRe(s){s=s|0,KRe(s+24|0)}function KRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function VRe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,16,l,zRe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function zRe(){return 1400}function JRe(s){return s=s|0,ZRe(n[(XRe(s)|0)>>2]|0)|0}function XRe(s){return s=s|0,(n[(XF()|0)+24>>2]|0)+(s<<3)|0}function ZRe(s){return s=s|0,$Re(nD[s&7]()|0)|0}function $Re(s){return s=s|0,s|0}function eTe(){var s=0;return o[7880]|0||(aTe(10280),ir(25,10280,U|0)|0,s=7880,n[s>>2]=1,n[s+4>>2]=0),10280}function tTe(s,l){s=s|0,l=l|0,n[s>>2]=rTe()|0,n[s+4>>2]=nTe()|0,n[s+12>>2]=l,n[s+8>>2]=iTe()|0,n[s+32>>2]=4}function rTe(){return 11711}function nTe(){return 1356}function iTe(){return Gv()|0}function sTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Dp(f,896)|0)==512?c|0&&(oTe(c),gt(c)):l|0&&(w0(l),gt(l))}function oTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function aTe(s){s=s|0,wp(s)}function lTe(s){s=s|0,cTe(s,4920),uTe(s)|0,ATe(s)|0}function cTe(s,l){s=s|0,l=l|0;var c=0;c=xG()|0,n[s>>2]=c,FTe(c,l),Pp(n[s>>2]|0)}function uTe(s){s=s|0;var l=0;return l=n[s>>2]|0,P0(l,ITe()|0),s|0}function ATe(s){s=s|0;var l=0;return l=n[s>>2]|0,P0(l,fTe()|0),s|0}function fTe(){var s=0;return o[7888]|0||(l9(10328),ir(53,10328,U|0)|0,s=7888,n[s>>2]=1,n[s+4>>2]=0),Rr(10328)|0||l9(10328),10328}function P0(s,l){s=s|0,l=l|0,hn(s,0,l,0,0,0)}function l9(s){s=s|0,gTe(s),S0(s,10)}function pTe(s){s=s|0,hTe(s+24|0)}function hTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function gTe(s){s=s|0;var l=0;l=Vr()|0,zr(s,5,1,l,ETe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dTe(s,l,c){s=s|0,l=l|0,c=+c,mTe(s,l,c)}function S0(s,l){s=s|0,l=l|0,n[s+20>>2]=l}function mTe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,m=f+8|0,k=f+13|0,d=f,B=f+12|0,XA(k,l),n[m>>2]=ZA(k,l)|0,Fu(B,c),E[d>>3]=+Ru(B,c),yTe(s,m,d),C=f}function yTe(s,l,c){s=s|0,l=l|0,c=c|0,W(s+8|0,n[l>>2]|0,+E[c>>3]),o[s+24>>0]=1}function ETe(){return 1404}function CTe(s,l){return s=s|0,l=+l,wTe(s,l)|0}function wTe(s,l){s=s|0,l=+l;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return f=C,C=C+16|0,m=f+4|0,B=f+8|0,k=f,d=Va(8)|0,c=d,Q=Kt(16)|0,XA(m,s),s=ZA(m,s)|0,Fu(B,l),W(Q,s,+Ru(B,l)),B=c+4|0,n[B>>2]=Q,s=Kt(8)|0,B=n[B>>2]|0,n[k>>2]=0,n[m>>2]=n[k>>2],LF(s,B,m),n[d>>2]=s,C=f,c|0}function ITe(){var s=0;return o[7896]|0||(c9(10364),ir(54,10364,U|0)|0,s=7896,n[s>>2]=1,n[s+4>>2]=0),Rr(10364)|0||c9(10364),10364}function c9(s){s=s|0,DTe(s),S0(s,55)}function BTe(s){s=s|0,vTe(s+24|0)}function vTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function DTe(s){s=s|0;var l=0;l=Vr()|0,zr(s,5,4,l,xTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function PTe(s){s=s|0,STe(s)}function STe(s){s=s|0,bTe(s)}function bTe(s){s=s|0,u9(s+8|0),o[s+24>>0]=1}function u9(s){s=s|0,n[s>>2]=0,E[s+8>>3]=0}function xTe(){return 1424}function kTe(){return QTe()|0}function QTe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Va(8)|0,s=c,f=Kt(16)|0,u9(f),m=s+4|0,n[m>>2]=f,f=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],LF(f,m,d),n[c>>2]=f,C=l,s|0}function FTe(s,l){s=s|0,l=l|0,n[s>>2]=RTe()|0,n[s+4>>2]=TTe()|0,n[s+12>>2]=l,n[s+8>>2]=NTe()|0,n[s+32>>2]=5}function RTe(){return 11710}function TTe(){return 1416}function NTe(){return Yv()|0}function LTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Dp(f,896)|0)==512?c|0&&(MTe(c),gt(c)):l|0&>(l)}function MTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function Yv(){var s=0;return o[7904]|0||(n[2600]=OTe()|0,n[2601]=0,s=7904,n[s>>2]=1,n[s+4>>2]=0),10400}function OTe(){return n[357]|0}function UTe(s){s=s|0,_Te(s,4926),HTe(s)|0}function _Te(s,l){s=s|0,l=l|0;var c=0;c=Z5()|0,n[s>>2]=c,ZTe(c,l),Pp(n[s>>2]|0)}function HTe(s){s=s|0;var l=0;return l=n[s>>2]|0,P0(l,qTe()|0),s|0}function qTe(){var s=0;return o[7912]|0||(A9(10412),ir(56,10412,U|0)|0,s=7912,n[s>>2]=1,n[s+4>>2]=0),Rr(10412)|0||A9(10412),10412}function A9(s){s=s|0,YTe(s),S0(s,57)}function jTe(s){s=s|0,GTe(s+24|0)}function GTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function YTe(s){s=s|0;var l=0;l=Vr()|0,zr(s,5,5,l,zTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function WTe(s){s=s|0,KTe(s)}function KTe(s){s=s|0,VTe(s)}function VTe(s){s=s|0;var l=0,c=0;l=s+8|0,c=l+48|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(c|0));o[s+56>>0]=1}function zTe(){return 1432}function JTe(){return XTe()|0}function XTe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,k=0;B=C,C=C+16|0,s=B+4|0,l=B,c=Va(8)|0,f=c,d=Kt(48)|0,m=d,k=m+48|0;do n[m>>2]=0,m=m+4|0;while((m|0)<(k|0));return m=f+4|0,n[m>>2]=d,k=Kt(8)|0,m=n[m>>2]|0,n[l>>2]=0,n[s>>2]=n[l>>2],$5(k,m,s),n[c>>2]=k,C=B,f|0}function ZTe(s,l){s=s|0,l=l|0,n[s>>2]=$Te()|0,n[s+4>>2]=eNe()|0,n[s+12>>2]=l,n[s+8>>2]=tNe()|0,n[s+32>>2]=6}function $Te(){return 11704}function eNe(){return 1436}function tNe(){return Yv()|0}function rNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Dp(f,896)|0)==512?c|0&&(nNe(c),gt(c)):l|0&>(l)}function nNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function iNe(s){s=s|0,sNe(s,4933),oNe(s)|0,aNe(s)|0}function sNe(s,l){s=s|0,l=l|0;var c=0;c=QNe()|0,n[s>>2]=c,FNe(c,l),Pp(n[s>>2]|0)}function oNe(s){s=s|0;var l=0;return l=n[s>>2]|0,P0(l,wNe()|0),s|0}function aNe(s){s=s|0;var l=0;return l=n[s>>2]|0,P0(l,lNe()|0),s|0}function lNe(){var s=0;return o[7920]|0||(f9(10452),ir(58,10452,U|0)|0,s=7920,n[s>>2]=1,n[s+4>>2]=0),Rr(10452)|0||f9(10452),10452}function f9(s){s=s|0,ANe(s),S0(s,1)}function cNe(s){s=s|0,uNe(s+24|0)}function uNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function ANe(s){s=s|0;var l=0;l=Vr()|0,zr(s,5,1,l,gNe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function fNe(s,l,c){s=s|0,l=+l,c=+c,pNe(s,l,c)}function pNe(s,l,c){s=s|0,l=+l,c=+c;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,m=f+8|0,k=f+17|0,d=f,B=f+16|0,Fu(k,l),E[m>>3]=+Ru(k,l),Fu(B,c),E[d>>3]=+Ru(B,c),hNe(s,m,d),C=f}function hNe(s,l,c){s=s|0,l=l|0,c=c|0,p9(s+8|0,+E[l>>3],+E[c>>3]),o[s+24>>0]=1}function p9(s,l,c){s=s|0,l=+l,c=+c,E[s>>3]=l,E[s+8>>3]=c}function gNe(){return 1472}function dNe(s,l){return s=+s,l=+l,mNe(s,l)|0}function mNe(s,l){s=+s,l=+l;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return f=C,C=C+16|0,B=f+4|0,k=f+8|0,Q=f,d=Va(8)|0,c=d,m=Kt(16)|0,Fu(B,s),s=+Ru(B,s),Fu(k,l),p9(m,s,+Ru(k,l)),k=c+4|0,n[k>>2]=m,m=Kt(8)|0,k=n[k>>2]|0,n[Q>>2]=0,n[B>>2]=n[Q>>2],h9(m,k,B),n[d>>2]=m,C=f,c|0}function h9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1452,n[c+12>>2]=l,n[s+4>>2]=c}function yNe(s){s=s|0,Md(s),gt(s)}function ENe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function CNe(s){s=s|0,gt(s)}function wNe(){var s=0;return o[7928]|0||(g9(10488),ir(59,10488,U|0)|0,s=7928,n[s>>2]=1,n[s+4>>2]=0),Rr(10488)|0||g9(10488),10488}function g9(s){s=s|0,vNe(s),S0(s,60)}function INe(s){s=s|0,BNe(s+24|0)}function BNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function vNe(s){s=s|0;var l=0;l=Vr()|0,zr(s,5,6,l,bNe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function DNe(s){s=s|0,PNe(s)}function PNe(s){s=s|0,SNe(s)}function SNe(s){s=s|0,d9(s+8|0),o[s+24>>0]=1}function d9(s){s=s|0,n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[s+12>>2]=0}function bNe(){return 1492}function xNe(){return kNe()|0}function kNe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Va(8)|0,s=c,f=Kt(16)|0,d9(f),m=s+4|0,n[m>>2]=f,f=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],h9(f,m,d),n[c>>2]=f,C=l,s|0}function QNe(){var s=0;return o[7936]|0||(ONe(10524),ir(25,10524,U|0)|0,s=7936,n[s>>2]=1,n[s+4>>2]=0),10524}function FNe(s,l){s=s|0,l=l|0,n[s>>2]=RNe()|0,n[s+4>>2]=TNe()|0,n[s+12>>2]=l,n[s+8>>2]=NNe()|0,n[s+32>>2]=7}function RNe(){return 11700}function TNe(){return 1484}function NNe(){return Yv()|0}function LNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Dp(f,896)|0)==512?c|0&&(MNe(c),gt(c)):l|0&>(l)}function MNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function ONe(s){s=s|0,wp(s)}function UNe(s,l,c){s=s|0,l=l|0,c=c|0,s=pn(l)|0,l=_Ne(c)|0,c=HNe(c,0)|0,mLe(s,l,c,ZF()|0,0)}function _Ne(s){return s=s|0,s|0}function HNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=ZF()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(y9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(VNe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function ZF(){var s=0,l=0;if(o[7944]|0||(m9(10568),ir(61,10568,U|0)|0,l=7944,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10568)|0)){s=10568,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));m9(10568)}return 10568}function m9(s){s=s|0,GNe(s)}function qNe(s){s=s|0,jNe(s+24|0)}function jNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function GNe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,17,l,dG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function YNe(s){return s=s|0,KNe(n[(WNe(s)|0)>>2]|0)|0}function WNe(s){return s=s|0,(n[(ZF()|0)+24>>2]|0)+(s<<3)|0}function KNe(s){return s=s|0,jv(nD[s&7]()|0)|0}function y9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function VNe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=zNe(s)|0,f>>>0<B>>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,JNe(d,M>>3>>>0<f>>>1>>>0?O>>>0<B>>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,y9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,XNe(s,d),ZNe(d),C=k;return}}function zNe(s){return s=s|0,536870911}function JNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function XNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function ZNe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function $Ne(){eLe()}function eLe(){tLe(10604)}function tLe(s){s=s|0,rLe(s,4955)}function rLe(s,l){s=s|0,l=l|0;var c=0;c=nLe()|0,n[s>>2]=c,iLe(c,l),Pp(n[s>>2]|0)}function nLe(){var s=0;return o[7952]|0||(pLe(10612),ir(25,10612,U|0)|0,s=7952,n[s>>2]=1,n[s+4>>2]=0),10612}function iLe(s,l){s=s|0,l=l|0,n[s>>2]=lLe()|0,n[s+4>>2]=cLe()|0,n[s+12>>2]=l,n[s+8>>2]=uLe()|0,n[s+32>>2]=8}function Pp(s){s=s|0;var l=0,c=0;l=C,C=C+16|0,c=l,Fd()|0,n[c>>2]=s,sLe(10608,c),C=l}function Fd(){return o[11714]|0||(n[2652]=0,ir(62,10608,U|0)|0,o[11714]=1),10608}function sLe(s,l){s=s|0,l=l|0;var c=0;c=Kt(8)|0,n[c+4>>2]=n[l>>2],n[c>>2]=n[s>>2],n[s>>2]=c}function oLe(s){s=s|0,aLe(s)}function aLe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,gt(c);while(l|0);n[s>>2]=0}function lLe(){return 11715}function cLe(){return 1496}function uLe(){return Gv()|0}function ALe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Dp(f,896)|0)==512?c|0&&(fLe(c),gt(c)):l|0&>(l)}function fLe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function pLe(s){s=s|0,wp(s)}function hLe(s,l){s=s|0,l=l|0;var c=0,f=0;Fd()|0,c=n[2652]|0;e:do if(c|0){for(;f=n[c+4>>2]|0,!(f|0&&!($9($F(f)|0,s)|0));)if(c=n[c>>2]|0,!c)break e;gLe(f,l)}while(!1)}function $F(s){return s=s|0,n[s+12>>2]|0}function gLe(s,l){s=s|0,l=l|0;var c=0;s=s+36|0,c=n[s>>2]|0,c|0&&(qA(c),gt(c)),c=Kt(4)|0,W5(c,l),n[s>>2]=c}function eR(){return o[11716]|0||(n[2664]=0,ir(63,10656,U|0)|0,o[11716]=1),10656}function E9(){var s=0;return o[11717]|0?s=n[2665]|0:(dLe(),n[2665]=1504,o[11717]=1,s=1504),s|0}function dLe(){o[11740]|0||(o[11718]=gr(gr(8,0)|0,0)|0,o[11719]=gr(gr(0,0)|0,0)|0,o[11720]=gr(gr(0,16)|0,0)|0,o[11721]=gr(gr(8,0)|0,0)|0,o[11722]=gr(gr(0,0)|0,0)|0,o[11723]=gr(gr(8,0)|0,0)|0,o[11724]=gr(gr(0,0)|0,0)|0,o[11725]=gr(gr(8,0)|0,0)|0,o[11726]=gr(gr(0,0)|0,0)|0,o[11727]=gr(gr(8,0)|0,0)|0,o[11728]=gr(gr(0,0)|0,0)|0,o[11729]=gr(gr(0,0)|0,32)|0,o[11730]=gr(gr(0,0)|0,32)|0,o[11740]=1)}function C9(){return 1572}function mLe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,O=0,M=0;m=C,C=C+32|0,M=m+16|0,O=m+12|0,Q=m+8|0,k=m+4|0,B=m,n[M>>2]=s,n[O>>2]=l,n[Q>>2]=c,n[k>>2]=f,n[B>>2]=d,eR()|0,yLe(10656,M,O,Q,k,B),C=m}function yLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0;B=Kt(24)|0,z5(B+4|0,n[l>>2]|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0),n[B>>2]=n[s>>2],n[s>>2]=B}function w9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0,$e=0,Je=0,lt=0;if(lt=C,C=C+32|0,Oe=lt+20|0,Qe=lt+8|0,$e=lt+4|0,Je=lt,l=n[l>>2]|0,l|0){je=Oe+4|0,Q=Oe+8|0,O=Qe+4|0,M=Qe+8|0,j=Qe+8|0,se=Oe+8|0;do{if(B=l+4|0,k=tR(B)|0,k|0){if(d=yw(k)|0,n[Oe>>2]=0,n[je>>2]=0,n[Q>>2]=0,f=(Ew(k)|0)+1|0,ELe(Oe,f),f|0)for(;f=f+-1|0,xc(Qe,n[d>>2]|0),m=n[je>>2]|0,m>>>0<(n[se>>2]|0)>>>0?(n[m>>2]=n[Qe>>2],n[je>>2]=(n[je>>2]|0)+4):rR(Oe,Qe),f;)d=d+4|0;f=Cw(k)|0,n[Qe>>2]=0,n[O>>2]=0,n[M>>2]=0;e:do if(n[f>>2]|0)for(d=0,m=0;;){if((d|0)==(m|0)?CLe(Qe,f):(n[d>>2]=n[f>>2],n[O>>2]=(n[O>>2]|0)+4),f=f+4|0,!(n[f>>2]|0))break e;d=n[O>>2]|0,m=n[j>>2]|0}while(!1);n[$e>>2]=Wv(B)|0,n[Je>>2]=Rr(k)|0,wLe(c,s,$e,Je,Oe,Qe),nR(Qe),$A(Oe)}l=n[l>>2]|0}while(l|0)}C=lt}function tR(s){return s=s|0,n[s+12>>2]|0}function yw(s){return s=s|0,n[s+12>>2]|0}function Ew(s){return s=s|0,n[s+16>>2]|0}function ELe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+32|0,c=d,f=n[s>>2]|0,(n[s+8>>2]|0)-f>>2>>>0<l>>>0&&(x9(c,l,(n[s+4>>2]|0)-f>>2,s+8|0),k9(s,c),Q9(c)),C=d}function rR(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0;if(B=C,C=C+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=b9(s)|0,m>>>0<d>>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,Q=O>>1,x9(c,O>>2>>>0<m>>>1>>>0?Q>>>0<d>>>0?d:Q:m,(n[f>>2]|0)-k>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,k9(s,c),Q9(c),C=B;return}}function Cw(s){return s=s|0,n[s+8>>2]|0}function CLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0;if(B=C,C=C+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=S9(s)|0,m>>>0<d>>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,Q=O>>1,_Le(c,O>>2>>>0<m>>>1>>>0?Q>>>0<d>>>0?d:Q:m,(n[f>>2]|0)-k>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,HLe(s,c),qLe(c),C=B;return}}function Wv(s){return s=s|0,n[s>>2]|0}function wLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,ILe(s,l,c,f,d,m)}function nR(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),gt(c))}function $A(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),gt(c))}function ILe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,O=0,M=0,j=0;B=C,C=C+48|0,M=B+40|0,k=B+32|0,j=B+24|0,Q=B+12|0,O=B,za(k),s=ya(s)|0,n[j>>2]=n[l>>2],c=n[c>>2]|0,f=n[f>>2]|0,iR(Q,d),BLe(O,m),n[M>>2]=n[j>>2],vLe(s,M,c,f,Q,O),nR(O),$A(Q),Ja(k),C=B}function iR(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(OLe(s,f),ULe(s,n[l>>2]|0,n[c>>2]|0,f))}function BLe(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(LLe(s,f),MLe(s,n[l>>2]|0,n[c>>2]|0,f))}function vLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,O=0,M=0,j=0;B=C,C=C+32|0,M=B+28|0,j=B+24|0,k=B+12|0,Q=B,O=Pl(DLe()|0)|0,n[j>>2]=n[l>>2],n[M>>2]=n[j>>2],l=b0(M)|0,c=I9(c)|0,f=sR(f)|0,n[k>>2]=n[d>>2],M=d+4|0,n[k+4>>2]=n[M>>2],j=d+8|0,n[k+8>>2]=n[j>>2],n[j>>2]=0,n[M>>2]=0,n[d>>2]=0,d=oR(k)|0,n[Q>>2]=n[m>>2],M=m+4|0,n[Q+4>>2]=n[M>>2],j=m+8|0,n[Q+8>>2]=n[j>>2],n[j>>2]=0,n[M>>2]=0,n[m>>2]=0,ao(0,O|0,s|0,l|0,c|0,f|0,d|0,PLe(Q)|0)|0,nR(Q),$A(k),C=B}function DLe(){var s=0;return o[7968]|0||(TLe(10708),s=7968,n[s>>2]=1,n[s+4>>2]=0),10708}function b0(s){return s=s|0,v9(s)|0}function I9(s){return s=s|0,B9(s)|0}function sR(s){return s=s|0,jv(s)|0}function oR(s){return s=s|0,bLe(s)|0}function PLe(s){return s=s|0,SLe(s)|0}function SLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Va(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=B9(n[(n[s>>2]|0)+(l<<2)>>2]|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function B9(s){return s=s|0,s|0}function bLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Va(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=v9((n[s>>2]|0)+(l<<2)|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function v9(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=yF(D9()|0)|0,f?(EF(l,f),CF(c,l),uUe(s,c),s=wF(l)|0):s=xLe(s)|0,C=d,s|0}function D9(){var s=0;return o[7960]|0||(RLe(10664),ir(25,10664,U|0)|0,s=7960,n[s>>2]=1,n[s+4>>2]=0),10664}function xLe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Va(8)|0,l=f,k=Kt(4)|0,n[k>>2]=n[s>>2],m=l+4|0,n[m>>2]=k,s=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],P9(s,m,d),n[f>>2]=s,C=c,l|0}function P9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1656,n[c+12>>2]=l,n[s+4>>2]=c}function kLe(s){s=s|0,Md(s),gt(s)}function QLe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function FLe(s){s=s|0,gt(s)}function RLe(s){s=s|0,wp(s)}function TLe(s){s=s|0,Sl(s,NLe()|0,5)}function NLe(){return 1676}function LLe(s,l){s=s|0,l=l|0;var c=0;if((S9(s)|0)>>>0<l>>>0&&Jr(s),l>>>0>1073741823)Tt();else{c=Kt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function MLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Dr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function S9(s){return s=s|0,1073741823}function OLe(s,l){s=s|0,l=l|0;var c=0;if((b9(s)|0)>>>0<l>>>0&&Jr(s),l>>>0>1073741823)Tt();else{c=Kt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function ULe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Dr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function b9(s){return s=s|0,1073741823}function _Le(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Tt();else{d=Kt(l<<2)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function HLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function qLe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&>(s)}function x9(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Tt();else{d=Kt(l<<2)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function k9(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Q9(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&>(s)}function jLe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0;if(Qe=C,C=C+32|0,M=Qe+20|0,j=Qe+12|0,O=Qe+16|0,se=Qe+4|0,je=Qe,Oe=Qe+8|0,k=E9()|0,m=n[k>>2]|0,B=n[m>>2]|0,B|0)for(Q=n[k+8>>2]|0,k=n[k+4>>2]|0;xc(M,B),GLe(s,M,k,Q),m=m+4|0,B=n[m>>2]|0,B;)Q=Q+1|0,k=k+1|0;if(m=C9()|0,B=n[m>>2]|0,B|0)do xc(M,B),n[j>>2]=n[m+4>>2],YLe(l,M,j),m=m+8|0,B=n[m>>2]|0;while(B|0);if(m=n[(Fd()|0)>>2]|0,m|0)do l=n[m+4>>2]|0,xc(M,n[(Rd(l)|0)>>2]|0),n[j>>2]=$F(l)|0,WLe(c,M,j),m=n[m>>2]|0;while(m|0);if(xc(O,0),m=eR()|0,n[M>>2]=n[O>>2],w9(M,m,d),m=n[(Fd()|0)>>2]|0,m|0){s=M+4|0,l=M+8|0,c=M+8|0;do{if(Q=n[m+4>>2]|0,xc(j,n[(Rd(Q)|0)>>2]|0),KLe(se,F9(Q)|0),B=n[se>>2]|0,B|0){n[M>>2]=0,n[s>>2]=0,n[l>>2]=0;do xc(je,n[(Rd(n[B+4>>2]|0)|0)>>2]|0),k=n[s>>2]|0,k>>>0<(n[c>>2]|0)>>>0?(n[k>>2]=n[je>>2],n[s>>2]=(n[s>>2]|0)+4):rR(M,je),B=n[B>>2]|0;while(B|0);VLe(f,j,M),$A(M)}n[Oe>>2]=n[j>>2],O=R9(Q)|0,n[M>>2]=n[Oe>>2],w9(M,O,d),tG(se),m=n[m>>2]|0}while(m|0)}C=Qe}function GLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,oMe(s,l,c,f)}function YLe(s,l,c){s=s|0,l=l|0,c=c|0,sMe(s,l,c)}function Rd(s){return s=s|0,s|0}function WLe(s,l,c){s=s|0,l=l|0,c=c|0,tMe(s,l,c)}function F9(s){return s=s|0,s+16|0}function KLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;if(m=C,C=C+16|0,d=m+8|0,c=m,n[s>>2]=0,f=n[l>>2]|0,n[d>>2]=f,n[c>>2]=s,c=eMe(c)|0,f|0){if(f=Kt(12)|0,B=(T9(d)|0)+4|0,s=n[B+4>>2]|0,l=f+4|0,n[l>>2]=n[B>>2],n[l+4>>2]=s,l=n[n[d>>2]>>2]|0,n[d>>2]=l,!l)s=f;else for(l=f;s=Kt(12)|0,Q=(T9(d)|0)+4|0,k=n[Q+4>>2]|0,B=s+4|0,n[B>>2]=n[Q>>2],n[B+4>>2]=k,n[l>>2]=s,B=n[n[d>>2]>>2]|0,n[d>>2]=B,B;)l=s;n[s>>2]=n[c>>2],n[c>>2]=f}C=m}function VLe(s,l,c){s=s|0,l=l|0,c=c|0,zLe(s,l,c)}function R9(s){return s=s|0,s+24|0}function zLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,B=f+24|0,d=f+16|0,k=f+12|0,m=f,za(d),s=ya(s)|0,n[k>>2]=n[l>>2],iR(m,c),n[B>>2]=n[k>>2],JLe(s,B,m),$A(m),Ja(d),C=f}function JLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,B=f+16|0,k=f+12|0,d=f,m=Pl(XLe()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=b0(B)|0,n[d>>2]=n[c>>2],B=c+4|0,n[d+4>>2]=n[B>>2],k=c+8|0,n[d+8>>2]=n[k>>2],n[k>>2]=0,n[B>>2]=0,n[c>>2]=0,oo(0,m|0,s|0,l|0,oR(d)|0)|0,$A(d),C=f}function XLe(){var s=0;return o[7976]|0||(ZLe(10720),s=7976,n[s>>2]=1,n[s+4>>2]=0),10720}function ZLe(s){s=s|0,Sl(s,$Le()|0,2)}function $Le(){return 1732}function eMe(s){return s=s|0,n[s>>2]|0}function T9(s){return s=s|0,n[s>>2]|0}function tMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+32|0,m=f+16|0,d=f+8|0,B=f,za(d),s=ya(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],N9(s,m,c),Ja(d),C=f}function N9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,m=f+4|0,B=f,d=Pl(rMe()|0)|0,n[B>>2]=n[l>>2],n[m>>2]=n[B>>2],l=b0(m)|0,oo(0,d|0,s|0,l|0,I9(c)|0)|0,C=f}function rMe(){var s=0;return o[7984]|0||(nMe(10732),s=7984,n[s>>2]=1,n[s+4>>2]=0),10732}function nMe(s){s=s|0,Sl(s,iMe()|0,2)}function iMe(){return 1744}function sMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+32|0,m=f+16|0,d=f+8|0,B=f,za(d),s=ya(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],N9(s,m,c),Ja(d),C=f}function oMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+32|0,B=d+16|0,m=d+8|0,k=d,za(m),s=ya(s)|0,n[k>>2]=n[l>>2],c=o[c>>0]|0,f=o[f>>0]|0,n[B>>2]=n[k>>2],aMe(s,B,c,f),Ja(m),C=d}function aMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,B=d+4|0,k=d,m=Pl(lMe()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=b0(B)|0,c=Td(c)|0,hc(0,m|0,s|0,l|0,c|0,Td(f)|0)|0,C=d}function lMe(){var s=0;return o[7992]|0||(uMe(10744),s=7992,n[s>>2]=1,n[s+4>>2]=0),10744}function Td(s){return s=s|0,cMe(s)|0}function cMe(s){return s=s|0,s&255|0}function uMe(s){s=s|0,Sl(s,AMe()|0,3)}function AMe(){return 1756}function fMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;switch(se=C,C=C+32|0,k=se+8|0,Q=se+4|0,O=se+20|0,M=se,DF(s,0),f=cUe(l)|0,n[k>>2]=0,j=k+4|0,n[j>>2]=0,n[k+8>>2]=0,f<<24>>24){case 0:{o[O>>0]=0,pMe(Q,c,O),Kv(s,Q)|0,jA(Q);break}case 8:{j=fR(l)|0,o[O>>0]=8,xc(M,n[j+4>>2]|0),hMe(Q,c,O,M,j+8|0),Kv(s,Q)|0,jA(Q);break}case 9:{if(m=fR(l)|0,l=n[m+4>>2]|0,l|0)for(B=k+8|0,d=m+12|0;l=l+-1|0,xc(Q,n[d>>2]|0),f=n[j>>2]|0,f>>>0<(n[B>>2]|0)>>>0?(n[f>>2]=n[Q>>2],n[j>>2]=(n[j>>2]|0)+4):rR(k,Q),l;)d=d+4|0;o[O>>0]=9,xc(M,n[m+8>>2]|0),gMe(Q,c,O,M,k),Kv(s,Q)|0,jA(Q);break}default:j=fR(l)|0,o[O>>0]=f,xc(M,n[j+4>>2]|0),dMe(Q,c,O,M),Kv(s,Q)|0,jA(Q)}$A(k),C=se}function pMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,za(d),l=ya(l)|0,xMe(s,l,o[c>>0]|0),Ja(d),C=f}function Kv(s,l){s=s|0,l=l|0;var c=0;return c=n[s>>2]|0,c|0&&PA(c|0),n[s>>2]=n[l>>2],n[l>>2]=0,s|0}function hMe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0;m=C,C=C+32|0,k=m+16|0,B=m+8|0,Q=m,za(B),l=ya(l)|0,c=o[c>>0]|0,n[Q>>2]=n[f>>2],d=n[d>>2]|0,n[k>>2]=n[Q>>2],DMe(s,l,c,k,d),Ja(B),C=m}function gMe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,O=0;m=C,C=C+32|0,Q=m+24|0,B=m+16|0,O=m+12|0,k=m,za(B),l=ya(l)|0,c=o[c>>0]|0,n[O>>2]=n[f>>2],iR(k,d),n[Q>>2]=n[O>>2],wMe(s,l,c,Q,k),$A(k),Ja(B),C=m}function dMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+32|0,B=d+16|0,m=d+8|0,k=d,za(m),l=ya(l)|0,c=o[c>>0]|0,n[k>>2]=n[f>>2],n[B>>2]=n[k>>2],mMe(s,l,c,B),Ja(m),C=d}function mMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+4|0,k=d,B=Pl(yMe()|0)|0,c=Td(c)|0,n[k>>2]=n[f>>2],n[m>>2]=n[k>>2],Vv(s,oo(0,B|0,l|0,c|0,b0(m)|0)|0),C=d}function yMe(){var s=0;return o[8e3]|0||(EMe(10756),s=8e3,n[s>>2]=1,n[s+4>>2]=0),10756}function Vv(s,l){s=s|0,l=l|0,DF(s,l)}function EMe(s){s=s|0,Sl(s,CMe()|0,2)}function CMe(){return 1772}function wMe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,O=0;m=C,C=C+32|0,Q=m+16|0,O=m+12|0,B=m,k=Pl(IMe()|0)|0,c=Td(c)|0,n[O>>2]=n[f>>2],n[Q>>2]=n[O>>2],f=b0(Q)|0,n[B>>2]=n[d>>2],Q=d+4|0,n[B+4>>2]=n[Q>>2],O=d+8|0,n[B+8>>2]=n[O>>2],n[O>>2]=0,n[Q>>2]=0,n[d>>2]=0,Vv(s,hc(0,k|0,l|0,c|0,f|0,oR(B)|0)|0),$A(B),C=m}function IMe(){var s=0;return o[8008]|0||(BMe(10768),s=8008,n[s>>2]=1,n[s+4>>2]=0),10768}function BMe(s){s=s|0,Sl(s,vMe()|0,3)}function vMe(){return 1784}function DMe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0;m=C,C=C+16|0,k=m+4|0,Q=m,B=Pl(PMe()|0)|0,c=Td(c)|0,n[Q>>2]=n[f>>2],n[k>>2]=n[Q>>2],f=b0(k)|0,Vv(s,hc(0,B|0,l|0,c|0,f|0,sR(d)|0)|0),C=m}function PMe(){var s=0;return o[8016]|0||(SMe(10780),s=8016,n[s>>2]=1,n[s+4>>2]=0),10780}function SMe(s){s=s|0,Sl(s,bMe()|0,3)}function bMe(){return 1800}function xMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=Pl(kMe()|0)|0,Vv(s,Qn(0,f|0,l|0,Td(c)|0)|0)}function kMe(){var s=0;return o[8024]|0||(QMe(10792),s=8024,n[s>>2]=1,n[s+4>>2]=0),10792}function QMe(s){s=s|0,Sl(s,FMe()|0,1)}function FMe(){return 1816}function RMe(){TMe(),NMe(),LMe()}function TMe(){n[2702]=c7(65536)|0}function NMe(){rOe(10856)}function LMe(){MMe(10816)}function MMe(s){s=s|0,OMe(s,5044),UMe(s)|0}function OMe(s,l){s=s|0,l=l|0;var c=0;c=D9()|0,n[s>>2]=c,JMe(c,l),Pp(n[s>>2]|0)}function UMe(s){s=s|0;var l=0;return l=n[s>>2]|0,P0(l,_Me()|0),s|0}function _Me(){var s=0;return o[8032]|0||(L9(10820),ir(64,10820,U|0)|0,s=8032,n[s>>2]=1,n[s+4>>2]=0),Rr(10820)|0||L9(10820),10820}function L9(s){s=s|0,jMe(s),S0(s,25)}function HMe(s){s=s|0,qMe(s+24|0)}function qMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function jMe(s){s=s|0;var l=0;l=Vr()|0,zr(s,5,18,l,KMe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function GMe(s,l){s=s|0,l=l|0,YMe(s,l)}function YMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;c=C,C=C+16|0,f=c,d=c+4|0,v0(d,l),n[f>>2]=D0(d,l)|0,WMe(s,f),C=c}function WMe(s,l){s=s|0,l=l|0,M9(s+4|0,n[l>>2]|0),o[s+8>>0]=1}function M9(s,l){s=s|0,l=l|0,n[s>>2]=l}function KMe(){return 1824}function VMe(s){return s=s|0,zMe(s)|0}function zMe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Va(8)|0,l=f,k=Kt(4)|0,v0(d,s),M9(k,D0(d,s)|0),m=l+4|0,n[m>>2]=k,s=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],P9(s,m,d),n[f>>2]=s,C=c,l|0}function Va(s){s=s|0;var l=0,c=0;return s=s+7&-8,s>>>0<=32768&&(l=n[2701]|0,s>>>0<=(65536-l|0)>>>0)?(c=(n[2702]|0)+l|0,n[2701]=l+s,s=c):(s=c7(s+8|0)|0,n[s>>2]=n[2703],n[2703]=s,s=s+8|0),s|0}function JMe(s,l){s=s|0,l=l|0,n[s>>2]=XMe()|0,n[s+4>>2]=ZMe()|0,n[s+12>>2]=l,n[s+8>>2]=$Me()|0,n[s+32>>2]=9}function XMe(){return 11744}function ZMe(){return 1832}function $Me(){return Yv()|0}function eOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Dp(f,896)|0)==512?c|0&&(tOe(c),gt(c)):l|0&>(l)}function tOe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function rOe(s){s=s|0,nOe(s,5052),iOe(s)|0,sOe(s,5058,26)|0,oOe(s,5069,1)|0,aOe(s,5077,10)|0,lOe(s,5087,19)|0,cOe(s,5094,27)|0}function nOe(s,l){s=s|0,l=l|0;var c=0;c=tUe()|0,n[s>>2]=c,rUe(c,l),Pp(n[s>>2]|0)}function iOe(s){s=s|0;var l=0;return l=n[s>>2]|0,P0(l,H4e()|0),s|0}function sOe(s,l,c){return s=s|0,l=l|0,c=c|0,B4e(s,pn(l)|0,c,0),s|0}function oOe(s,l,c){return s=s|0,l=l|0,c=c|0,l4e(s,pn(l)|0,c,0),s|0}function aOe(s,l,c){return s=s|0,l=l|0,c=c|0,_Oe(s,pn(l)|0,c,0),s|0}function lOe(s,l,c){return s=s|0,l=l|0,c=c|0,DOe(s,pn(l)|0,c,0),s|0}function O9(s,l){s=s|0,l=l|0;var c=0,f=0;e:for(;;){for(c=n[2703]|0;;){if((c|0)==(l|0))break e;if(f=n[c>>2]|0,n[2703]=f,!c)c=f;else break}gt(c)}n[2701]=s}function cOe(s,l,c){return s=s|0,l=l|0,c=c|0,uOe(s,pn(l)|0,c,0),s|0}function uOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=aR()|0,s=AOe(c)|0,hn(m,l,d,s,fOe(c,f)|0,f)}function aR(){var s=0,l=0;if(o[8040]|0||(_9(10860),ir(65,10860,U|0)|0,l=8040,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10860)|0)){s=10860,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));_9(10860)}return 10860}function AOe(s){return s=s|0,s|0}function fOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=aR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(U9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(pOe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function U9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function pOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=hOe(s)|0,f>>>0<B>>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,gOe(d,M>>3>>>0<f>>>1>>>0?O>>>0<B>>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,U9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,dOe(s,d),mOe(d),C=k;return}}function hOe(s){return s=s|0,536870911}function gOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function dOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function mOe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function _9(s){s=s|0,COe(s)}function yOe(s){s=s|0,EOe(s+24|0)}function EOe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function COe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,11,l,wOe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function wOe(){return 1840}function IOe(s,l,c){s=s|0,l=l|0,c=c|0,vOe(n[(BOe(s)|0)>>2]|0,l,c)}function BOe(s){return s=s|0,(n[(aR()|0)+24>>2]|0)+(s<<3)|0}function vOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=C,C=C+16|0,m=f+1|0,d=f,v0(m,l),l=D0(m,l)|0,v0(d,c),c=D0(d,c)|0,tf[s&31](l,c),C=f}function DOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=lR()|0,s=POe(c)|0,hn(m,l,d,s,SOe(c,f)|0,f)}function lR(){var s=0,l=0;if(o[8048]|0||(q9(10896),ir(66,10896,U|0)|0,l=8048,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10896)|0)){s=10896,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));q9(10896)}return 10896}function POe(s){return s=s|0,s|0}function SOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=lR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(H9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(bOe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function H9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function bOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=xOe(s)|0,f>>>0<B>>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,kOe(d,M>>3>>>0<f>>>1>>>0?O>>>0<B>>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,H9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,QOe(s,d),FOe(d),C=k;return}}function xOe(s){return s=s|0,536870911}function kOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function QOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function FOe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function q9(s){s=s|0,NOe(s)}function ROe(s){s=s|0,TOe(s+24|0)}function TOe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function NOe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,11,l,LOe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function LOe(){return 1852}function MOe(s,l){return s=s|0,l=l|0,UOe(n[(OOe(s)|0)>>2]|0,l)|0}function OOe(s){return s=s|0,(n[(lR()|0)+24>>2]|0)+(s<<3)|0}function UOe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,v0(f,l),l=D0(f,l)|0,l=jv(F0[s&31](l)|0)|0,C=c,l|0}function _Oe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=cR()|0,s=HOe(c)|0,hn(m,l,d,s,qOe(c,f)|0,f)}function cR(){var s=0,l=0;if(o[8056]|0||(G9(10932),ir(67,10932,U|0)|0,l=8056,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10932)|0)){s=10932,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));G9(10932)}return 10932}function HOe(s){return s=s|0,s|0}function qOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=cR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(j9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(jOe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function j9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function jOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=GOe(s)|0,f>>>0<B>>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,YOe(d,M>>3>>>0<f>>>1>>>0?O>>>0<B>>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,j9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,WOe(s,d),KOe(d),C=k;return}}function GOe(s){return s=s|0,536870911}function YOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function WOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function KOe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function G9(s){s=s|0,JOe(s)}function VOe(s){s=s|0,zOe(s+24|0)}function zOe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function JOe(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,7,l,XOe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function XOe(){return 1860}function ZOe(s,l,c){return s=s|0,l=l|0,c=c|0,e4e(n[($Oe(s)|0)>>2]|0,l,c)|0}function $Oe(s){return s=s|0,(n[(cR()|0)+24>>2]|0)+(s<<3)|0}function e4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0;return f=C,C=C+32|0,B=f+12|0,m=f+8|0,k=f,Q=f+16|0,d=f+4|0,t4e(Q,l),r4e(k,Q,l),Ip(d,c),c=Bp(d,c)|0,n[B>>2]=n[k>>2],vw[s&15](m,B,c),c=n4e(m)|0,jA(m),vp(d),C=f,c|0}function t4e(s,l){s=s|0,l=l|0}function r4e(s,l,c){s=s|0,l=l|0,c=c|0,i4e(s,c)}function n4e(s){return s=s|0,ya(s)|0}function i4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+16|0,c=d,f=l,f&1?(s4e(c,0),ii(f|0,c|0)|0,o4e(s,c),a4e(c)):n[s>>2]=n[l>>2],C=d}function s4e(s,l){s=s|0,l=l|0,K5(s,l),n[s+4>>2]=0,o[s+8>>0]=0}function o4e(s,l){s=s|0,l=l|0,n[s>>2]=n[l+4>>2]}function a4e(s){s=s|0,o[s+8>>0]=0}function l4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=uR()|0,s=c4e(c)|0,hn(m,l,d,s,u4e(c,f)|0,f)}function uR(){var s=0,l=0;if(o[8064]|0||(W9(10968),ir(68,10968,U|0)|0,l=8064,n[l>>2]=1,n[l+4>>2]=0),!(Rr(10968)|0)){s=10968,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));W9(10968)}return 10968}function c4e(s){return s=s|0,s|0}function u4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=uR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(Y9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(A4e(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function Y9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function A4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=f4e(s)|0,f>>>0<B>>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,p4e(d,M>>3>>>0<f>>>1>>>0?O>>>0<B>>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,Y9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,h4e(s,d),g4e(d),C=k;return}}function f4e(s){return s=s|0,536870911}function p4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function h4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function g4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function W9(s){s=s|0,y4e(s)}function d4e(s){s=s|0,m4e(s+24|0)}function m4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function y4e(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,1,l,E4e()|0,5),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function E4e(){return 1872}function C4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,I4e(n[(w4e(s)|0)>>2]|0,l,c,f,d,m)}function w4e(s){return s=s|0,(n[(uR()|0)+24>>2]|0)+(s<<3)|0}function I4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,O=0,M=0,j=0;B=C,C=C+32|0,k=B+16|0,Q=B+12|0,O=B+8|0,M=B+4|0,j=B,Ip(k,l),l=Bp(k,l)|0,Ip(Q,c),c=Bp(Q,c)|0,Ip(O,f),f=Bp(O,f)|0,Ip(M,d),d=Bp(M,d)|0,Ip(j,m),m=Bp(j,m)|0,h7[s&1](l,c,f,d,m),vp(j),vp(M),vp(O),vp(Q),vp(k),C=B}function B4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=AR()|0,s=v4e(c)|0,hn(m,l,d,s,D4e(c,f)|0,f)}function AR(){var s=0,l=0;if(o[8072]|0||(V9(11004),ir(69,11004,U|0)|0,l=8072,n[l>>2]=1,n[l+4>>2]=0),!(Rr(11004)|0)){s=11004,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));V9(11004)}return 11004}function v4e(s){return s=s|0,s|0}function D4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=AR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(K9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(P4e(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function K9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function P4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=S4e(s)|0,f>>>0<B>>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,O=M>>2,b4e(d,M>>3>>>0<f>>>1>>>0?O>>>0<B>>>0?B:O:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,K9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,x4e(s,d),k4e(d),C=k;return}}function S4e(s){return s=s|0,536870911}function b4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Kt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function x4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function k4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function V9(s){s=s|0,R4e(s)}function Q4e(s){s=s|0,F4e(s+24|0)}function F4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function R4e(s){s=s|0;var l=0;l=Vr()|0,zr(s,1,12,l,T4e()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function T4e(){return 1896}function N4e(s,l,c){s=s|0,l=l|0,c=c|0,M4e(n[(L4e(s)|0)>>2]|0,l,c)}function L4e(s){return s=s|0,(n[(AR()|0)+24>>2]|0)+(s<<3)|0}function M4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=C,C=C+16|0,m=f+4|0,d=f,O4e(m,l),l=U4e(m,l)|0,Ip(d,c),c=Bp(d,c)|0,tf[s&31](l,c),vp(d),C=f}function O4e(s,l){s=s|0,l=l|0}function U4e(s,l){return s=s|0,l=l|0,_4e(l)|0}function _4e(s){return s=s|0,s|0}function H4e(){var s=0;return o[8080]|0||(z9(11040),ir(70,11040,U|0)|0,s=8080,n[s>>2]=1,n[s+4>>2]=0),Rr(11040)|0||z9(11040),11040}function z9(s){s=s|0,G4e(s),S0(s,71)}function q4e(s){s=s|0,j4e(s+24|0)}function j4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function G4e(s){s=s|0;var l=0;l=Vr()|0,zr(s,5,7,l,V4e()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Y4e(s){s=s|0,W4e(s)}function W4e(s){s=s|0,K4e(s)}function K4e(s){s=s|0,o[s+8>>0]=1}function V4e(){return 1936}function z4e(){return J4e()|0}function J4e(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Va(8)|0,s=c,m=s+4|0,n[m>>2]=Kt(1)|0,f=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],X4e(f,m,d),n[c>>2]=f,C=l,s|0}function X4e(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1916,n[c+12>>2]=l,n[s+4>>2]=c}function Z4e(s){s=s|0,Md(s),gt(s)}function $4e(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function eUe(s){s=s|0,gt(s)}function tUe(){var s=0;return o[8088]|0||(lUe(11076),ir(25,11076,U|0)|0,s=8088,n[s>>2]=1,n[s+4>>2]=0),11076}function rUe(s,l){s=s|0,l=l|0,n[s>>2]=nUe()|0,n[s+4>>2]=iUe()|0,n[s+12>>2]=l,n[s+8>>2]=sUe()|0,n[s+32>>2]=10}function nUe(){return 11745}function iUe(){return 1940}function sUe(){return Gv()|0}function oUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Dp(f,896)|0)==512?c|0&&(aUe(c),gt(c)):l|0&>(l)}function aUe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Sp(s)}function lUe(s){s=s|0,wp(s)}function xc(s,l){s=s|0,l=l|0,n[s>>2]=l}function fR(s){return s=s|0,n[s>>2]|0}function cUe(s){return s=s|0,o[n[s>>2]>>0]|0}function uUe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,n[f>>2]=n[s>>2],AUe(l,f)|0,C=c}function AUe(s,l){s=s|0,l=l|0;var c=0;return c=fUe(n[s>>2]|0,l)|0,l=s+4|0,n[(n[l>>2]|0)+8>>2]=c,n[(n[l>>2]|0)+8>>2]|0}function fUe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,za(f),s=ya(s)|0,l=pUe(s,n[l>>2]|0)|0,Ja(f),C=c,l|0}function za(s){s=s|0,n[s>>2]=n[2701],n[s+4>>2]=n[2703]}function pUe(s,l){s=s|0,l=l|0;var c=0;return c=Pl(hUe()|0)|0,Qn(0,c|0,s|0,sR(l)|0)|0}function Ja(s){s=s|0,O9(n[s>>2]|0,n[s+4>>2]|0)}function hUe(){var s=0;return o[8096]|0||(gUe(11120),s=8096,n[s>>2]=1,n[s+4>>2]=0),11120}function gUe(s){s=s|0,Sl(s,dUe()|0,1)}function dUe(){return 1948}function mUe(){yUe()}function yUe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0;if(Oe=C,C=C+16|0,M=Oe+4|0,j=Oe,Ti(65536,10804,n[2702]|0,10812),c=E9()|0,l=n[c>>2]|0,s=n[l>>2]|0,s|0)for(f=n[c+8>>2]|0,c=n[c+4>>2]|0;Ac(s|0,u[c>>0]|0|0,o[f>>0]|0),l=l+4|0,s=n[l>>2]|0,s;)f=f+1|0,c=c+1|0;if(s=C9()|0,l=n[s>>2]|0,l|0)do fu(l|0,n[s+4>>2]|0),s=s+8|0,l=n[s>>2]|0;while(l|0);fu(EUe()|0,5167),O=Fd()|0,s=n[O>>2]|0;e:do if(s|0){do CUe(n[s+4>>2]|0),s=n[s>>2]|0;while(s|0);if(s=n[O>>2]|0,s|0){Q=O;do{for(;d=s,s=n[s>>2]|0,d=n[d+4>>2]|0,!!(wUe(d)|0);)if(n[j>>2]=Q,n[M>>2]=n[j>>2],IUe(O,M)|0,!s)break e;if(BUe(d),Q=n[Q>>2]|0,l=J9(d)|0,m=Hi()|0,B=C,C=C+((1*(l<<2)|0)+15&-16)|0,k=C,C=C+((1*(l<<2)|0)+15&-16)|0,l=n[(F9(d)|0)>>2]|0,l|0)for(c=B,f=k;n[c>>2]=n[(Rd(n[l+4>>2]|0)|0)>>2],n[f>>2]=n[l+8>>2],l=n[l>>2]|0,l;)c=c+4|0,f=f+4|0;Qe=Rd(d)|0,l=vUe(d)|0,c=J9(d)|0,f=DUe(d)|0,pu(Qe|0,l|0,B|0,k|0,c|0,f|0,$F(d)|0),_i(m|0)}while(s|0)}}while(!1);if(s=n[(eR()|0)>>2]|0,s|0)do Qe=s+4|0,O=tR(Qe)|0,d=Cw(O)|0,m=yw(O)|0,B=(Ew(O)|0)+1|0,k=zv(O)|0,Q=X9(Qe)|0,O=Rr(O)|0,M=Wv(Qe)|0,j=pR(Qe)|0,El(0,d|0,m|0,B|0,k|0,Q|0,O|0,M|0,j|0,hR(Qe)|0),s=n[s>>2]|0;while(s|0);s=n[(Fd()|0)>>2]|0;e:do if(s|0){t:for(;;){if(l=n[s+4>>2]|0,l|0&&(se=n[(Rd(l)|0)>>2]|0,je=n[(R9(l)|0)>>2]|0,je|0)){c=je;do{l=c+4|0,f=tR(l)|0;r:do if(f|0)switch(Rr(f)|0){case 0:break t;case 4:case 3:case 2:{k=Cw(f)|0,Q=yw(f)|0,O=(Ew(f)|0)+1|0,M=zv(f)|0,j=Rr(f)|0,Qe=Wv(l)|0,El(se|0,k|0,Q|0,O|0,M|0,0,j|0,Qe|0,pR(l)|0,hR(l)|0);break r}case 1:{B=Cw(f)|0,k=yw(f)|0,Q=(Ew(f)|0)+1|0,O=zv(f)|0,M=X9(l)|0,j=Rr(f)|0,Qe=Wv(l)|0,El(se|0,B|0,k|0,Q|0,O|0,M|0,j|0,Qe|0,pR(l)|0,hR(l)|0);break r}case 5:{O=Cw(f)|0,M=yw(f)|0,j=(Ew(f)|0)+1|0,Qe=zv(f)|0,El(se|0,O|0,M|0,j|0,Qe|0,PUe(f)|0,Rr(f)|0,0,0,0);break r}default:break r}while(!1);c=n[c>>2]|0}while(c|0)}if(s=n[s>>2]|0,!s)break e}Tt()}while(!1);Ie(),C=Oe}function EUe(){return 11703}function CUe(s){s=s|0,o[s+40>>0]=0}function wUe(s){return s=s|0,(o[s+40>>0]|0)!=0|0}function IUe(s,l){return s=s|0,l=l|0,l=SUe(l)|0,s=n[l>>2]|0,n[l>>2]=n[s>>2],gt(s),n[l>>2]|0}function BUe(s){s=s|0,o[s+40>>0]=1}function J9(s){return s=s|0,n[s+20>>2]|0}function vUe(s){return s=s|0,n[s+8>>2]|0}function DUe(s){return s=s|0,n[s+32>>2]|0}function zv(s){return s=s|0,n[s+4>>2]|0}function X9(s){return s=s|0,n[s+4>>2]|0}function pR(s){return s=s|0,n[s+8>>2]|0}function hR(s){return s=s|0,n[s+16>>2]|0}function PUe(s){return s=s|0,n[s+20>>2]|0}function SUe(s){return s=s|0,n[s>>2]|0}function Jv(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0,$e=0,Je=0,lt=0,_e=0,qe=0,Lt=0;Lt=C,C=C+16|0,se=Lt;do if(s>>>0<245){if(O=s>>>0<11?16:s+11&-8,s=O>>>3,j=n[2783]|0,c=j>>>s,c&3|0)return l=(c&1^1)+s|0,s=11172+(l<<1<<2)|0,c=s+8|0,f=n[c>>2]|0,d=f+8|0,m=n[d>>2]|0,(s|0)==(m|0)?n[2783]=j&~(1<<l):(n[m+12>>2]=s,n[c>>2]=m),qe=l<<3,n[f+4>>2]=qe|3,qe=f+qe+4|0,n[qe>>2]=n[qe>>2]|1,qe=d,C=Lt,qe|0;if(M=n[2785]|0,O>>>0>M>>>0){if(c|0)return l=2<<s,l=c<<s&(l|0-l),l=(l&0-l)+-1|0,B=l>>>12&16,l=l>>>B,c=l>>>5&8,l=l>>>c,d=l>>>2&4,l=l>>>d,s=l>>>1&2,l=l>>>s,f=l>>>1&1,f=(c|B|d|s|f)+(l>>>f)|0,l=11172+(f<<1<<2)|0,s=l+8|0,d=n[s>>2]|0,B=d+8|0,c=n[B>>2]|0,(l|0)==(c|0)?(s=j&~(1<<f),n[2783]=s):(n[c+12>>2]=l,n[s>>2]=c,s=j),m=(f<<3)-O|0,n[d+4>>2]=O|3,f=d+O|0,n[f+4>>2]=m|1,n[f+m>>2]=m,M|0&&(d=n[2788]|0,l=M>>>3,c=11172+(l<<1<<2)|0,l=1<<l,s&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=d,n[l+12>>2]=d,n[d+8>>2]=l,n[d+12>>2]=c),n[2785]=m,n[2788]=f,qe=B,C=Lt,qe|0;if(k=n[2784]|0,k){if(c=(k&0-k)+-1|0,B=c>>>12&16,c=c>>>B,m=c>>>5&8,c=c>>>m,Q=c>>>2&4,c=c>>>Q,f=c>>>1&2,c=c>>>f,s=c>>>1&1,s=n[11436+((m|B|Q|f|s)+(c>>>s)<<2)>>2]|0,c=(n[s+4>>2]&-8)-O|0,f=n[s+16+(((n[s+16>>2]|0)==0&1)<<2)>>2]|0,!f)Q=s,m=c;else{do B=(n[f+4>>2]&-8)-O|0,Q=B>>>0<c>>>0,c=Q?B:c,s=Q?f:s,f=n[f+16+(((n[f+16>>2]|0)==0&1)<<2)>>2]|0;while(f|0);Q=s,m=c}if(B=Q+O|0,Q>>>0<B>>>0){d=n[Q+24>>2]|0,l=n[Q+12>>2]|0;do if((l|0)==(Q|0)){if(s=Q+20|0,l=n[s>>2]|0,!l&&(s=Q+16|0,l=n[s>>2]|0,!l)){c=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0,c=l}else c=n[Q+8>>2]|0,n[c+12>>2]=l,n[l+8>>2]=c,c=l;while(!1);do if(d|0){if(l=n[Q+28>>2]|0,s=11436+(l<<2)|0,(Q|0)==(n[s>>2]|0)){if(n[s>>2]=c,!c){n[2784]=k&~(1<<l);break}}else if(n[d+16+(((n[d+16>>2]|0)!=(Q|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=d,l=n[Q+16>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),l=n[Q+20>>2]|0,l|0&&(n[c+20>>2]=l,n[l+24>>2]=c)}while(!1);return m>>>0<16?(qe=m+O|0,n[Q+4>>2]=qe|3,qe=Q+qe+4|0,n[qe>>2]=n[qe>>2]|1):(n[Q+4>>2]=O|3,n[B+4>>2]=m|1,n[B+m>>2]=m,M|0&&(f=n[2788]|0,l=M>>>3,c=11172+(l<<1<<2)|0,l=1<<l,j&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=j|l,l=c,s=c+8|0),n[s>>2]=f,n[l+12>>2]=f,n[f+8>>2]=l,n[f+12>>2]=c),n[2785]=m,n[2788]=B),qe=Q+8|0,C=Lt,qe|0}else j=O}else j=O}else j=O}else if(s>>>0<=4294967231)if(s=s+11|0,O=s&-8,Q=n[2784]|0,Q){f=0-O|0,s=s>>>8,s?O>>>0>16777215?k=31:(j=(s+1048320|0)>>>16&8,_e=s<<j,M=(_e+520192|0)>>>16&4,_e=_e<<M,k=(_e+245760|0)>>>16&2,k=14-(M|j|k)+(_e<<k>>>15)|0,k=O>>>(k+7|0)&1|k<<1):k=0,c=n[11436+(k<<2)>>2]|0;e:do if(!c)c=0,s=0,_e=57;else for(s=0,B=O<<((k|0)==31?0:25-(k>>>1)|0),m=0;;){if(d=(n[c+4>>2]&-8)-O|0,d>>>0<f>>>0)if(d)s=c,f=d;else{s=c,f=0,d=c,_e=61;break e}if(d=n[c+20>>2]|0,c=n[c+16+(B>>>31<<2)>>2]|0,m=(d|0)==0|(d|0)==(c|0)?m:d,d=(c|0)==0,d){c=m,_e=57;break}else B=B<<((d^1)&1)}while(!1);if((_e|0)==57){if((c|0)==0&(s|0)==0){if(s=2<<k,s=Q&(s|0-s),!s){j=O;break}j=(s&0-s)+-1|0,B=j>>>12&16,j=j>>>B,m=j>>>5&8,j=j>>>m,k=j>>>2&4,j=j>>>k,M=j>>>1&2,j=j>>>M,c=j>>>1&1,s=0,c=n[11436+((m|B|k|M|c)+(j>>>c)<<2)>>2]|0}c?(d=c,_e=61):(k=s,B=f)}if((_e|0)==61)for(;;)if(_e=0,c=(n[d+4>>2]&-8)-O|0,j=c>>>0<f>>>0,c=j?c:f,s=j?d:s,d=n[d+16+(((n[d+16>>2]|0)==0&1)<<2)>>2]|0,d)f=c,_e=61;else{k=s,B=c;break}if(k|0&&B>>>0<((n[2785]|0)-O|0)>>>0){if(m=k+O|0,k>>>0>=m>>>0)return qe=0,C=Lt,qe|0;d=n[k+24>>2]|0,l=n[k+12>>2]|0;do if((l|0)==(k|0)){if(s=k+20|0,l=n[s>>2]|0,!l&&(s=k+16|0,l=n[s>>2]|0,!l)){l=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0}else qe=n[k+8>>2]|0,n[qe+12>>2]=l,n[l+8>>2]=qe;while(!1);do if(d){if(s=n[k+28>>2]|0,c=11436+(s<<2)|0,(k|0)==(n[c>>2]|0)){if(n[c>>2]=l,!l){f=Q&~(1<<s),n[2784]=f;break}}else if(n[d+16+(((n[d+16>>2]|0)!=(k|0)&1)<<2)>>2]=l,!l){f=Q;break}n[l+24>>2]=d,s=n[k+16>>2]|0,s|0&&(n[l+16>>2]=s,n[s+24>>2]=l),s=n[k+20>>2]|0,s&&(n[l+20>>2]=s,n[s+24>>2]=l),f=Q}else f=Q;while(!1);do if(B>>>0>=16){if(n[k+4>>2]=O|3,n[m+4>>2]=B|1,n[m+B>>2]=B,l=B>>>3,B>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<<l,s&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=m,n[l+12>>2]=m,n[m+8>>2]=l,n[m+12>>2]=c;break}if(l=B>>>8,l?B>>>0>16777215?l=31:(_e=(l+1048320|0)>>>16&8,qe=l<<_e,lt=(qe+520192|0)>>>16&4,qe=qe<<lt,l=(qe+245760|0)>>>16&2,l=14-(lt|_e|l)+(qe<<l>>>15)|0,l=B>>>(l+7|0)&1|l<<1):l=0,c=11436+(l<<2)|0,n[m+28>>2]=l,s=m+16|0,n[s+4>>2]=0,n[s>>2]=0,s=1<<l,!(f&s)){n[2784]=f|s,n[c>>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}for(s=B<<((l|0)==31?0:25-(l>>>1)|0),c=n[c>>2]|0;;){if((n[c+4>>2]&-8|0)==(B|0)){_e=97;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{_e=96;break}}if((_e|0)==96){n[f>>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}else if((_e|0)==97){_e=c+8|0,qe=n[_e>>2]|0,n[qe+12>>2]=m,n[_e>>2]=m,n[m+8>>2]=qe,n[m+12>>2]=c,n[m+24>>2]=0;break}}else qe=B+O|0,n[k+4>>2]=qe|3,qe=k+qe+4|0,n[qe>>2]=n[qe>>2]|1;while(!1);return qe=k+8|0,C=Lt,qe|0}else j=O}else j=O;else j=-1;while(!1);if(c=n[2785]|0,c>>>0>=j>>>0)return l=c-j|0,s=n[2788]|0,l>>>0>15?(qe=s+j|0,n[2788]=qe,n[2785]=l,n[qe+4>>2]=l|1,n[qe+l>>2]=l,n[s+4>>2]=j|3):(n[2785]=0,n[2788]=0,n[s+4>>2]=c|3,qe=s+c+4|0,n[qe>>2]=n[qe>>2]|1),qe=s+8|0,C=Lt,qe|0;if(B=n[2786]|0,B>>>0>j>>>0)return lt=B-j|0,n[2786]=lt,qe=n[2789]|0,_e=qe+j|0,n[2789]=_e,n[_e+4>>2]=lt|1,n[qe+4>>2]=j|3,qe=qe+8|0,C=Lt,qe|0;if(n[2901]|0?s=n[2903]|0:(n[2903]=4096,n[2902]=4096,n[2904]=-1,n[2905]=-1,n[2906]=0,n[2894]=0,s=se&-16^1431655768,n[se>>2]=s,n[2901]=s,s=4096),k=j+48|0,Q=j+47|0,m=s+Q|0,d=0-s|0,O=m&d,O>>>0<=j>>>0||(s=n[2893]|0,s|0&&(M=n[2891]|0,se=M+O|0,se>>>0<=M>>>0|se>>>0>s>>>0)))return qe=0,C=Lt,qe|0;e:do if(n[2894]&4)l=0,_e=133;else{c=n[2789]|0;t:do if(c){for(f=11580;s=n[f>>2]|0,!(s>>>0<=c>>>0&&(Qe=f+4|0,(s+(n[Qe>>2]|0)|0)>>>0>c>>>0));)if(s=n[f+8>>2]|0,s)f=s;else{_e=118;break t}if(l=m-B&d,l>>>0<2147483647)if(s=bp(l|0)|0,(s|0)==((n[f>>2]|0)+(n[Qe>>2]|0)|0)){if((s|0)!=-1){B=l,m=s,_e=135;break e}}else f=s,_e=126;else l=0}else _e=118;while(!1);do if((_e|0)==118)if(c=bp(0)|0,(c|0)!=-1&&(l=c,je=n[2902]|0,Oe=je+-1|0,l=(Oe&l|0?(Oe+l&0-je)-l|0:0)+O|0,je=n[2891]|0,Oe=l+je|0,l>>>0>j>>>0&l>>>0<2147483647)){if(Qe=n[2893]|0,Qe|0&&Oe>>>0<=je>>>0|Oe>>>0>Qe>>>0){l=0;break}if(s=bp(l|0)|0,(s|0)==(c|0)){B=l,m=c,_e=135;break e}else f=s,_e=126}else l=0;while(!1);do if((_e|0)==126){if(c=0-l|0,!(k>>>0>l>>>0&(l>>>0<2147483647&(f|0)!=-1)))if((f|0)==-1){l=0;break}else{B=l,m=f,_e=135;break e}if(s=n[2903]|0,s=Q-l+s&0-s,s>>>0>=2147483647){B=l,m=f,_e=135;break e}if((bp(s|0)|0)==-1){bp(c|0)|0,l=0;break}else{B=s+l|0,m=f,_e=135;break e}}while(!1);n[2894]=n[2894]|4,_e=133}while(!1);if((_e|0)==133&&O>>>0<2147483647&&(lt=bp(O|0)|0,Qe=bp(0)|0,$e=Qe-lt|0,Je=$e>>>0>(j+40|0)>>>0,!((lt|0)==-1|Je^1|lt>>>0<Qe>>>0&((lt|0)!=-1&(Qe|0)!=-1)^1))&&(B=Je?$e:l,m=lt,_e=135),(_e|0)==135){l=(n[2891]|0)+B|0,n[2891]=l,l>>>0>(n[2892]|0)>>>0&&(n[2892]=l),Q=n[2789]|0;do if(Q){for(l=11580;;){if(s=n[l>>2]|0,c=l+4|0,f=n[c>>2]|0,(m|0)==(s+f|0)){_e=145;break}if(d=n[l+8>>2]|0,d)l=d;else break}if((_e|0)==145&&!(n[l+12>>2]&8|0)&&Q>>>0<m>>>0&Q>>>0>=s>>>0){n[c>>2]=f+B,qe=Q+8|0,qe=qe&7|0?0-qe&7:0,_e=Q+qe|0,qe=(n[2786]|0)+(B-qe)|0,n[2789]=_e,n[2786]=qe,n[_e+4>>2]=qe|1,n[_e+qe+4>>2]=40,n[2790]=n[2905];break}for(m>>>0<(n[2787]|0)>>>0&&(n[2787]=m),c=m+B|0,l=11580;;){if((n[l>>2]|0)==(c|0)){_e=153;break}if(s=n[l+8>>2]|0,s)l=s;else break}if((_e|0)==153&&!(n[l+12>>2]&8|0)){n[l>>2]=m,M=l+4|0,n[M>>2]=(n[M>>2]|0)+B,M=m+8|0,M=m+(M&7|0?0-M&7:0)|0,l=c+8|0,l=c+(l&7|0?0-l&7:0)|0,O=M+j|0,k=l-M-j|0,n[M+4>>2]=j|3;do if((l|0)!=(Q|0)){if((l|0)==(n[2788]|0)){qe=(n[2785]|0)+k|0,n[2785]=qe,n[2788]=O,n[O+4>>2]=qe|1,n[O+qe>>2]=qe;break}if(s=n[l+4>>2]|0,(s&3|0)==1){B=s&-8,f=s>>>3;e:do if(s>>>0<256)if(s=n[l+8>>2]|0,c=n[l+12>>2]|0,(c|0)==(s|0)){n[2783]=n[2783]&~(1<<f);break}else{n[s+12>>2]=c,n[c+8>>2]=s;break}else{m=n[l+24>>2]|0,s=n[l+12>>2]|0;do if((s|0)==(l|0)){if(f=l+16|0,c=f+4|0,s=n[c>>2]|0,!s)if(s=n[f>>2]|0,s)c=f;else{s=0;break}for(;;){if(f=s+20|0,d=n[f>>2]|0,d|0){s=d,c=f;continue}if(f=s+16|0,d=n[f>>2]|0,d)s=d,c=f;else break}n[c>>2]=0}else qe=n[l+8>>2]|0,n[qe+12>>2]=s,n[s+8>>2]=qe;while(!1);if(!m)break;c=n[l+28>>2]|0,f=11436+(c<<2)|0;do if((l|0)!=(n[f>>2]|0)){if(n[m+16+(((n[m+16>>2]|0)!=(l|0)&1)<<2)>>2]=s,!s)break e}else{if(n[f>>2]=s,s|0)break;n[2784]=n[2784]&~(1<<c);break e}while(!1);if(n[s+24>>2]=m,c=l+16|0,f=n[c>>2]|0,f|0&&(n[s+16>>2]=f,n[f+24>>2]=s),c=n[c+4>>2]|0,!c)break;n[s+20>>2]=c,n[c+24>>2]=s}while(!1);l=l+B|0,d=B+k|0}else d=k;if(l=l+4|0,n[l>>2]=n[l>>2]&-2,n[O+4>>2]=d|1,n[O+d>>2]=d,l=d>>>3,d>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<<l,s&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=O,n[l+12>>2]=O,n[O+8>>2]=l,n[O+12>>2]=c;break}l=d>>>8;do if(!l)l=0;else{if(d>>>0>16777215){l=31;break}_e=(l+1048320|0)>>>16&8,qe=l<<_e,lt=(qe+520192|0)>>>16&4,qe=qe<<lt,l=(qe+245760|0)>>>16&2,l=14-(lt|_e|l)+(qe<<l>>>15)|0,l=d>>>(l+7|0)&1|l<<1}while(!1);if(f=11436+(l<<2)|0,n[O+28>>2]=l,s=O+16|0,n[s+4>>2]=0,n[s>>2]=0,s=n[2784]|0,c=1<<l,!(s&c)){n[2784]=s|c,n[f>>2]=O,n[O+24>>2]=f,n[O+12>>2]=O,n[O+8>>2]=O;break}for(s=d<<((l|0)==31?0:25-(l>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){_e=194;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{_e=193;break}}if((_e|0)==193){n[f>>2]=O,n[O+24>>2]=c,n[O+12>>2]=O,n[O+8>>2]=O;break}else if((_e|0)==194){_e=c+8|0,qe=n[_e>>2]|0,n[qe+12>>2]=O,n[_e>>2]=O,n[O+8>>2]=qe,n[O+12>>2]=c,n[O+24>>2]=0;break}}else qe=(n[2786]|0)+k|0,n[2786]=qe,n[2789]=O,n[O+4>>2]=qe|1;while(!1);return qe=M+8|0,C=Lt,qe|0}for(l=11580;s=n[l>>2]|0,!(s>>>0<=Q>>>0&&(qe=s+(n[l+4>>2]|0)|0,qe>>>0>Q>>>0));)l=n[l+8>>2]|0;d=qe+-47|0,s=d+8|0,s=d+(s&7|0?0-s&7:0)|0,d=Q+16|0,s=s>>>0<d>>>0?Q:s,l=s+8|0,c=m+8|0,c=c&7|0?0-c&7:0,_e=m+c|0,c=B+-40-c|0,n[2789]=_e,n[2786]=c,n[_e+4>>2]=c|1,n[_e+c+4>>2]=40,n[2790]=n[2905],c=s+4|0,n[c>>2]=27,n[l>>2]=n[2895],n[l+4>>2]=n[2896],n[l+8>>2]=n[2897],n[l+12>>2]=n[2898],n[2895]=m,n[2896]=B,n[2898]=0,n[2897]=l,l=s+24|0;do _e=l,l=l+4|0,n[l>>2]=7;while((_e+8|0)>>>0<qe>>>0);if((s|0)!=(Q|0)){if(m=s-Q|0,n[c>>2]=n[c>>2]&-2,n[Q+4>>2]=m|1,n[s>>2]=m,l=m>>>3,m>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<<l,s&l?(s=c+8|0,l=n[s>>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=Q,n[l+12>>2]=Q,n[Q+8>>2]=l,n[Q+12>>2]=c;break}if(l=m>>>8,l?m>>>0>16777215?c=31:(_e=(l+1048320|0)>>>16&8,qe=l<<_e,lt=(qe+520192|0)>>>16&4,qe=qe<<lt,c=(qe+245760|0)>>>16&2,c=14-(lt|_e|c)+(qe<<c>>>15)|0,c=m>>>(c+7|0)&1|c<<1):c=0,f=11436+(c<<2)|0,n[Q+28>>2]=c,n[Q+20>>2]=0,n[d>>2]=0,l=n[2784]|0,s=1<<c,!(l&s)){n[2784]=l|s,n[f>>2]=Q,n[Q+24>>2]=f,n[Q+12>>2]=Q,n[Q+8>>2]=Q;break}for(s=m<<((c|0)==31?0:25-(c>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(m|0)){_e=216;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{_e=215;break}}if((_e|0)==215){n[f>>2]=Q,n[Q+24>>2]=c,n[Q+12>>2]=Q,n[Q+8>>2]=Q;break}else if((_e|0)==216){_e=c+8|0,qe=n[_e>>2]|0,n[qe+12>>2]=Q,n[_e>>2]=Q,n[Q+8>>2]=qe,n[Q+12>>2]=c,n[Q+24>>2]=0;break}}}else{qe=n[2787]|0,(qe|0)==0|m>>>0<qe>>>0&&(n[2787]=m),n[2895]=m,n[2896]=B,n[2898]=0,n[2792]=n[2901],n[2791]=-1,l=0;do qe=11172+(l<<1<<2)|0,n[qe+12>>2]=qe,n[qe+8>>2]=qe,l=l+1|0;while((l|0)!=32);qe=m+8|0,qe=qe&7|0?0-qe&7:0,_e=m+qe|0,qe=B+-40-qe|0,n[2789]=_e,n[2786]=qe,n[_e+4>>2]=qe|1,n[_e+qe+4>>2]=40,n[2790]=n[2905]}while(!1);if(l=n[2786]|0,l>>>0>j>>>0)return lt=l-j|0,n[2786]=lt,qe=n[2789]|0,_e=qe+j|0,n[2789]=_e,n[_e+4>>2]=lt|1,n[qe+4>>2]=j|3,qe=qe+8|0,C=Lt,qe|0}return n[(Nd()|0)>>2]=12,qe=0,C=Lt,qe|0}function Xv(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0;if(s){c=s+-8|0,d=n[2787]|0,s=n[s+-4>>2]|0,l=s&-8,Q=c+l|0;do if(s&1)k=c,B=c;else{if(f=n[c>>2]|0,!(s&3)||(B=c+(0-f)|0,m=f+l|0,B>>>0<d>>>0))return;if((B|0)==(n[2788]|0)){if(s=Q+4|0,l=n[s>>2]|0,(l&3|0)!=3){k=B,l=m;break}n[2785]=m,n[s>>2]=l&-2,n[B+4>>2]=m|1,n[B+m>>2]=m;return}if(c=f>>>3,f>>>0<256)if(s=n[B+8>>2]|0,l=n[B+12>>2]|0,(l|0)==(s|0)){n[2783]=n[2783]&~(1<<c),k=B,l=m;break}else{n[s+12>>2]=l,n[l+8>>2]=s,k=B,l=m;break}d=n[B+24>>2]|0,s=n[B+12>>2]|0;do if((s|0)==(B|0)){if(c=B+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{s=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0}else k=n[B+8>>2]|0,n[k+12>>2]=s,n[s+8>>2]=k;while(!1);if(d){if(l=n[B+28>>2]|0,c=11436+(l<<2)|0,(B|0)==(n[c>>2]|0)){if(n[c>>2]=s,!s){n[2784]=n[2784]&~(1<<l),k=B,l=m;break}}else if(n[d+16+(((n[d+16>>2]|0)!=(B|0)&1)<<2)>>2]=s,!s){k=B,l=m;break}n[s+24>>2]=d,l=B+16|0,c=n[l>>2]|0,c|0&&(n[s+16>>2]=c,n[c+24>>2]=s),l=n[l+4>>2]|0,l?(n[s+20>>2]=l,n[l+24>>2]=s,k=B,l=m):(k=B,l=m)}else k=B,l=m}while(!1);if(!(B>>>0>=Q>>>0)&&(s=Q+4|0,f=n[s>>2]|0,!!(f&1))){if(f&2)n[s>>2]=f&-2,n[k+4>>2]=l|1,n[B+l>>2]=l,d=l;else{if(s=n[2788]|0,(Q|0)==(n[2789]|0)){if(Q=(n[2786]|0)+l|0,n[2786]=Q,n[2789]=k,n[k+4>>2]=Q|1,(k|0)!=(s|0))return;n[2788]=0,n[2785]=0;return}if((Q|0)==(s|0)){Q=(n[2785]|0)+l|0,n[2785]=Q,n[2788]=B,n[k+4>>2]=Q|1,n[B+Q>>2]=Q;return}d=(f&-8)+l|0,c=f>>>3;do if(f>>>0<256)if(l=n[Q+8>>2]|0,s=n[Q+12>>2]|0,(s|0)==(l|0)){n[2783]=n[2783]&~(1<<c);break}else{n[l+12>>2]=s,n[s+8>>2]=l;break}else{m=n[Q+24>>2]|0,s=n[Q+12>>2]|0;do if((s|0)==(Q|0)){if(c=Q+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{c=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0,c=s}else c=n[Q+8>>2]|0,n[c+12>>2]=s,n[s+8>>2]=c,c=s;while(!1);if(m|0){if(s=n[Q+28>>2]|0,l=11436+(s<<2)|0,(Q|0)==(n[l>>2]|0)){if(n[l>>2]=c,!c){n[2784]=n[2784]&~(1<<s);break}}else if(n[m+16+(((n[m+16>>2]|0)!=(Q|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=m,s=Q+16|0,l=n[s>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),s=n[s+4>>2]|0,s|0&&(n[c+20>>2]=s,n[s+24>>2]=c)}}while(!1);if(n[k+4>>2]=d|1,n[B+d>>2]=d,(k|0)==(n[2788]|0)){n[2785]=d;return}}if(s=d>>>3,d>>>0<256){c=11172+(s<<1<<2)|0,l=n[2783]|0,s=1<<s,l&s?(l=c+8|0,s=n[l>>2]|0):(n[2783]=l|s,s=c,l=c+8|0),n[l>>2]=k,n[s+12>>2]=k,n[k+8>>2]=s,n[k+12>>2]=c;return}s=d>>>8,s?d>>>0>16777215?s=31:(B=(s+1048320|0)>>>16&8,Q=s<<B,m=(Q+520192|0)>>>16&4,Q=Q<<m,s=(Q+245760|0)>>>16&2,s=14-(m|B|s)+(Q<<s>>>15)|0,s=d>>>(s+7|0)&1|s<<1):s=0,f=11436+(s<<2)|0,n[k+28>>2]=s,n[k+20>>2]=0,n[k+16>>2]=0,l=n[2784]|0,c=1<<s;do if(l&c){for(l=d<<((s|0)==31?0:25-(s>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){s=73;break}if(f=c+16+(l>>>31<<2)|0,s=n[f>>2]|0,s)l=l<<1,c=s;else{s=72;break}}if((s|0)==72){n[f>>2]=k,n[k+24>>2]=c,n[k+12>>2]=k,n[k+8>>2]=k;break}else if((s|0)==73){B=c+8|0,Q=n[B>>2]|0,n[Q+12>>2]=k,n[B>>2]=k,n[k+8>>2]=Q,n[k+12>>2]=c,n[k+24>>2]=0;break}}else n[2784]=l|c,n[f>>2]=k,n[k+24>>2]=f,n[k+12>>2]=k,n[k+8>>2]=k;while(!1);if(Q=(n[2791]|0)+-1|0,n[2791]=Q,!Q)s=11588;else return;for(;s=n[s>>2]|0,s;)s=s+8|0;n[2791]=-1}}}function bUe(){return 11628}function xUe(s){s=s|0;var l=0,c=0;return l=C,C=C+16|0,c=l,n[c>>2]=FUe(n[s+60>>2]|0)|0,s=Zv(gc(6,c|0)|0)|0,C=l,s|0}function Z9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0;j=C,C=C+48|0,O=j+16|0,m=j,d=j+32|0,k=s+28|0,f=n[k>>2]|0,n[d>>2]=f,Q=s+20|0,f=(n[Q>>2]|0)-f|0,n[d+4>>2]=f,n[d+8>>2]=l,n[d+12>>2]=c,f=f+c|0,B=s+60|0,n[m>>2]=n[B>>2],n[m+4>>2]=d,n[m+8>>2]=2,m=Zv(Ni(146,m|0)|0)|0;e:do if((f|0)!=(m|0)){for(l=2;!((m|0)<0);)if(f=f-m|0,je=n[d+4>>2]|0,se=m>>>0>je>>>0,d=se?d+8|0:d,l=(se<<31>>31)+l|0,je=m-(se?je:0)|0,n[d>>2]=(n[d>>2]|0)+je,se=d+4|0,n[se>>2]=(n[se>>2]|0)-je,n[O>>2]=n[B>>2],n[O+4>>2]=d,n[O+8>>2]=l,m=Zv(Ni(146,O|0)|0)|0,(f|0)==(m|0)){M=3;break e}n[s+16>>2]=0,n[k>>2]=0,n[Q>>2]=0,n[s>>2]=n[s>>2]|32,(l|0)==2?c=0:c=c-(n[d+4>>2]|0)|0}else M=3;while(!1);return(M|0)==3&&(je=n[s+44>>2]|0,n[s+16>>2]=je+(n[s+48>>2]|0),n[k>>2]=je,n[Q>>2]=je),C=j,c|0}function kUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return d=C,C=C+32|0,m=d,f=d+20|0,n[m>>2]=n[s+60>>2],n[m+4>>2]=0,n[m+8>>2]=l,n[m+12>>2]=f,n[m+16>>2]=c,(Zv(aa(140,m|0)|0)|0)<0?(n[f>>2]=-1,s=-1):s=n[f>>2]|0,C=d,s|0}function Zv(s){return s=s|0,s>>>0>4294963200&&(n[(Nd()|0)>>2]=0-s,s=-1),s|0}function Nd(){return(QUe()|0)+64|0}function QUe(){return gR()|0}function gR(){return 2084}function FUe(s){return s=s|0,s|0}function RUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return d=C,C=C+32|0,f=d,n[s+36>>2]=1,!(n[s>>2]&64|0)&&(n[f>>2]=n[s+60>>2],n[f+4>>2]=21523,n[f+8>>2]=d+16,hu(54,f|0)|0)&&(o[s+75>>0]=-1),f=Z9(s,l,c)|0,C=d,f|0}function $9(s,l){s=s|0,l=l|0;var c=0,f=0;if(c=o[s>>0]|0,f=o[l>>0]|0,!(c<<24>>24)||c<<24>>24!=f<<24>>24)s=f;else{do s=s+1|0,l=l+1|0,c=o[s>>0]|0,f=o[l>>0]|0;while(!(!(c<<24>>24)||c<<24>>24!=f<<24>>24));s=f}return(c&255)-(s&255)|0}function TUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;e:do if(!c)s=0;else{for(;f=o[s>>0]|0,d=o[l>>0]|0,f<<24>>24==d<<24>>24;)if(c=c+-1|0,c)s=s+1|0,l=l+1|0;else{s=0;break e}s=(f&255)-(d&255)|0}while(!1);return s|0}function e7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0;Qe=C,C=C+224|0,M=Qe+120|0,j=Qe+80|0,je=Qe,Oe=Qe+136|0,f=j,d=f+40|0;do n[f>>2]=0,f=f+4|0;while((f|0)<(d|0));return n[M>>2]=n[c>>2],(dR(0,l,M,je,j)|0)<0?c=-1:((n[s+76>>2]|0)>-1?se=NUe(s)|0:se=0,c=n[s>>2]|0,O=c&32,(o[s+74>>0]|0)<1&&(n[s>>2]=c&-33),f=s+48|0,n[f>>2]|0?c=dR(s,l,M,je,j)|0:(d=s+44|0,m=n[d>>2]|0,n[d>>2]=Oe,B=s+28|0,n[B>>2]=Oe,k=s+20|0,n[k>>2]=Oe,n[f>>2]=80,Q=s+16|0,n[Q>>2]=Oe+80,c=dR(s,l,M,je,j)|0,m&&(rD[n[s+36>>2]&7](s,0,0)|0,c=n[k>>2]|0?c:-1,n[d>>2]=m,n[f>>2]=0,n[Q>>2]=0,n[B>>2]=0,n[k>>2]=0)),f=n[s>>2]|0,n[s>>2]=f|O,se|0&&LUe(s),c=f&32|0?-1:c),C=Qe,c|0}function dR(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0,$e=0,Je=0,lt=0,_e=0,qe=0,Lt=0,Or=0,cr=0,Xt=0,Pr=0,Tr=0,ar=0;ar=C,C=C+64|0,cr=ar+16|0,Xt=ar,Lt=ar+24|0,Pr=ar+8|0,Tr=ar+20|0,n[cr>>2]=l,lt=(s|0)!=0,_e=Lt+40|0,qe=_e,Lt=Lt+39|0,Or=Pr+4|0,B=0,m=0,M=0;e:for(;;){do if((m|0)>-1)if((B|0)>(2147483647-m|0)){n[(Nd()|0)>>2]=75,m=-1;break}else{m=B+m|0;break}while(!1);if(B=o[l>>0]|0,B<<24>>24)k=l;else{Je=87;break}t:for(;;){switch(B<<24>>24){case 37:{B=k,Je=9;break t}case 0:{B=k;break t}default:}$e=k+1|0,n[cr>>2]=$e,B=o[$e>>0]|0,k=$e}t:do if((Je|0)==9)for(;;){if(Je=0,(o[k+1>>0]|0)!=37)break t;if(B=B+1|0,k=k+2|0,n[cr>>2]=k,(o[k>>0]|0)==37)Je=9;else break}while(!1);if(B=B-l|0,lt&&as(s,l,B),B|0){l=k;continue}Q=k+1|0,B=(o[Q>>0]|0)+-48|0,B>>>0<10?($e=(o[k+2>>0]|0)==36,Qe=$e?B:-1,M=$e?1:M,Q=$e?k+3|0:Q):Qe=-1,n[cr>>2]=Q,B=o[Q>>0]|0,k=(B<<24>>24)+-32|0;t:do if(k>>>0<32)for(O=0,j=B;;){if(B=1<<k,!(B&75913)){B=j;break t}if(O=B|O,Q=Q+1|0,n[cr>>2]=Q,B=o[Q>>0]|0,k=(B<<24>>24)+-32|0,k>>>0>=32)break;j=B}else O=0;while(!1);if(B<<24>>24==42){if(k=Q+1|0,B=(o[k>>0]|0)+-48|0,B>>>0<10&&(o[Q+2>>0]|0)==36)n[d+(B<<2)>>2]=10,B=n[f+((o[k>>0]|0)+-48<<3)>>2]|0,M=1,Q=Q+3|0;else{if(M|0){m=-1;break}lt?(M=(n[c>>2]|0)+3&-4,B=n[M>>2]|0,n[c>>2]=M+4,M=0,Q=k):(B=0,M=0,Q=k)}n[cr>>2]=Q,$e=(B|0)<0,B=$e?0-B|0:B,O=$e?O|8192:O}else{if(B=t7(cr)|0,(B|0)<0){m=-1;break}Q=n[cr>>2]|0}do if((o[Q>>0]|0)==46){if((o[Q+1>>0]|0)!=42){n[cr>>2]=Q+1,k=t7(cr)|0,Q=n[cr>>2]|0;break}if(j=Q+2|0,k=(o[j>>0]|0)+-48|0,k>>>0<10&&(o[Q+3>>0]|0)==36){n[d+(k<<2)>>2]=10,k=n[f+((o[j>>0]|0)+-48<<3)>>2]|0,Q=Q+4|0,n[cr>>2]=Q;break}if(M|0){m=-1;break e}lt?($e=(n[c>>2]|0)+3&-4,k=n[$e>>2]|0,n[c>>2]=$e+4):k=0,n[cr>>2]=j,Q=j}else k=-1;while(!1);for(Oe=0;;){if(((o[Q>>0]|0)+-65|0)>>>0>57){m=-1;break e}if($e=Q+1|0,n[cr>>2]=$e,j=o[(o[Q>>0]|0)+-65+(5178+(Oe*58|0))>>0]|0,se=j&255,(se+-1|0)>>>0<8)Oe=se,Q=$e;else break}if(!(j<<24>>24)){m=-1;break}je=(Qe|0)>-1;do if(j<<24>>24==19)if(je){m=-1;break e}else Je=49;else{if(je){n[d+(Qe<<2)>>2]=se,je=f+(Qe<<3)|0,Qe=n[je+4>>2]|0,Je=Xt,n[Je>>2]=n[je>>2],n[Je+4>>2]=Qe,Je=49;break}if(!lt){m=0;break e}r7(Xt,se,c)}while(!1);if((Je|0)==49&&(Je=0,!lt)){B=0,l=$e;continue}Q=o[Q>>0]|0,Q=(Oe|0)!=0&(Q&15|0)==3?Q&-33:Q,je=O&-65537,Qe=O&8192|0?je:O;t:do switch(Q|0){case 110:switch((Oe&255)<<24>>24){case 0:{n[n[Xt>>2]>>2]=m,B=0,l=$e;continue e}case 1:{n[n[Xt>>2]>>2]=m,B=0,l=$e;continue e}case 2:{B=n[Xt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=$e;continue e}case 3:{a[n[Xt>>2]>>1]=m,B=0,l=$e;continue e}case 4:{o[n[Xt>>2]>>0]=m,B=0,l=$e;continue e}case 6:{n[n[Xt>>2]>>2]=m,B=0,l=$e;continue e}case 7:{B=n[Xt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=$e;continue e}default:{B=0,l=$e;continue e}}case 112:{Q=120,k=k>>>0>8?k:8,l=Qe|8,Je=61;break}case 88:case 120:{l=Qe,Je=61;break}case 111:{Q=Xt,l=n[Q>>2]|0,Q=n[Q+4>>2]|0,se=OUe(l,Q,_e)|0,je=qe-se|0,O=0,j=5642,k=(Qe&8|0)==0|(k|0)>(je|0)?k:je+1|0,je=Qe,Je=67;break}case 105:case 100:if(Q=Xt,l=n[Q>>2]|0,Q=n[Q+4>>2]|0,(Q|0)<0){l=$v(0,0,l|0,Q|0)|0,Q=we,O=Xt,n[O>>2]=l,n[O+4>>2]=Q,O=1,j=5642,Je=66;break t}else{O=(Qe&2049|0)!=0&1,j=Qe&2048|0?5643:Qe&1|0?5644:5642,Je=66;break t}case 117:{Q=Xt,O=0,j=5642,l=n[Q>>2]|0,Q=n[Q+4>>2]|0,Je=66;break}case 99:{o[Lt>>0]=n[Xt>>2],l=Lt,O=0,j=5642,se=_e,Q=1,k=je;break}case 109:{Q=UUe(n[(Nd()|0)>>2]|0)|0,Je=71;break}case 115:{Q=n[Xt>>2]|0,Q=Q|0?Q:5652,Je=71;break}case 67:{n[Pr>>2]=n[Xt>>2],n[Or>>2]=0,n[Xt>>2]=Pr,se=-1,Q=Pr,Je=75;break}case 83:{l=n[Xt>>2]|0,k?(se=k,Q=l,Je=75):(Ds(s,32,B,0,Qe),l=0,Je=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{B=HUe(s,+E[Xt>>3],B,k,Qe,Q)|0,l=$e;continue e}default:O=0,j=5642,se=_e,Q=k,k=Qe}while(!1);t:do if((Je|0)==61)Qe=Xt,Oe=n[Qe>>2]|0,Qe=n[Qe+4>>2]|0,se=MUe(Oe,Qe,_e,Q&32)|0,j=(l&8|0)==0|(Oe|0)==0&(Qe|0)==0,O=j?0:2,j=j?5642:5642+(Q>>4)|0,je=l,l=Oe,Q=Qe,Je=67;else if((Je|0)==66)se=Ld(l,Q,_e)|0,je=Qe,Je=67;else if((Je|0)==71)Je=0,Qe=_Ue(Q,0,k)|0,Oe=(Qe|0)==0,l=Q,O=0,j=5642,se=Oe?Q+k|0:Qe,Q=Oe?k:Qe-Q|0,k=je;else if((Je|0)==75){for(Je=0,j=Q,l=0,k=0;O=n[j>>2]|0,!(!O||(k=n7(Tr,O)|0,(k|0)<0|k>>>0>(se-l|0)>>>0));)if(l=k+l|0,se>>>0>l>>>0)j=j+4|0;else break;if((k|0)<0){m=-1;break e}if(Ds(s,32,B,l,Qe),!l)l=0,Je=84;else for(O=0;;){if(k=n[Q>>2]|0,!k){Je=84;break t}if(k=n7(Tr,k)|0,O=k+O|0,(O|0)>(l|0)){Je=84;break t}if(as(s,Tr,k),O>>>0>=l>>>0){Je=84;break}else Q=Q+4|0}}while(!1);if((Je|0)==67)Je=0,Q=(l|0)!=0|(Q|0)!=0,Qe=(k|0)!=0|Q,Q=((Q^1)&1)+(qe-se)|0,l=Qe?se:_e,se=_e,Q=Qe?(k|0)>(Q|0)?k:Q:k,k=(k|0)>-1?je&-65537:je;else if((Je|0)==84){Je=0,Ds(s,32,B,l,Qe^8192),B=(B|0)>(l|0)?B:l,l=$e;continue}Oe=se-l|0,je=(Q|0)<(Oe|0)?Oe:Q,Qe=je+O|0,B=(B|0)<(Qe|0)?Qe:B,Ds(s,32,B,Qe,k),as(s,j,O),Ds(s,48,B,Qe,k^65536),Ds(s,48,je,Oe,0),as(s,l,Oe),Ds(s,32,B,Qe,k^8192),l=$e}e:do if((Je|0)==87&&!s)if(!M)m=0;else{for(m=1;l=n[d+(m<<2)>>2]|0,!!l;)if(r7(f+(m<<3)|0,l,c),m=m+1|0,(m|0)>=10){m=1;break e}for(;;){if(n[d+(m<<2)>>2]|0){m=-1;break e}if(m=m+1|0,(m|0)>=10){m=1;break}}}while(!1);return C=ar,m|0}function NUe(s){return s=s|0,0}function LUe(s){s=s|0}function as(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]&32||JUe(l,c,s)|0}function t7(s){s=s|0;var l=0,c=0,f=0;if(c=n[s>>2]|0,f=(o[c>>0]|0)+-48|0,f>>>0<10){l=0;do l=f+(l*10|0)|0,c=c+1|0,n[s>>2]=c,f=(o[c>>0]|0)+-48|0;while(f>>>0<10)}else l=0;return l|0}function r7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;e:do if(l>>>0<=20)do switch(l|0){case 9:{f=(n[c>>2]|0)+3&-4,l=n[f>>2]|0,n[c>>2]=f+4,n[s>>2]=l;break e}case 10:{f=(n[c>>2]|0)+3&-4,l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=((l|0)<0)<<31>>31;break e}case 11:{f=(n[c>>2]|0)+3&-4,l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=0;break e}case 12:{f=(n[c>>2]|0)+7&-8,l=f,d=n[l>>2]|0,l=n[l+4>>2]|0,n[c>>2]=f+8,f=s,n[f>>2]=d,n[f+4>>2]=l;break e}case 13:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,f=(f&65535)<<16>>16,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 14:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&65535,n[d+4>>2]=0;break e}case 15:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,f=(f&255)<<24>>24,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 16:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&255,n[d+4>>2]=0;break e}case 17:{d=(n[c>>2]|0)+7&-8,m=+E[d>>3],n[c>>2]=d+8,E[s>>3]=m;break e}case 18:{d=(n[c>>2]|0)+7&-8,m=+E[d>>3],n[c>>2]=d+8,E[s>>3]=m;break e}default:break e}while(!1);while(!1)}function MUe(s,l,c,f){if(s=s|0,l=l|0,c=c|0,f=f|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=u[5694+(s&15)>>0]|0|f,s=eD(s|0,l|0,4)|0,l=we;while(!((s|0)==0&(l|0)==0));return c|0}function OUe(s,l,c){if(s=s|0,l=l|0,c=c|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=s&7|48,s=eD(s|0,l|0,3)|0,l=we;while(!((s|0)==0&(l|0)==0));return c|0}function Ld(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if(l>>>0>0|(l|0)==0&s>>>0>4294967295){for(;f=CR(s|0,l|0,10,0)|0,c=c+-1|0,o[c>>0]=f&255|48,f=s,s=ER(s|0,l|0,10,0)|0,l>>>0>9|(l|0)==9&f>>>0>4294967295;)l=we;l=s}else l=s;if(l)for(;c=c+-1|0,o[c>>0]=(l>>>0)%10|0|48,!(l>>>0<10);)l=(l>>>0)/10|0;return c|0}function UUe(s){return s=s|0,WUe(s,n[(YUe()|0)+188>>2]|0)|0}function _Ue(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;m=l&255,f=(c|0)!=0;e:do if(f&(s&3|0)!=0)for(d=l&255;;){if((o[s>>0]|0)==d<<24>>24){B=6;break e}if(s=s+1|0,c=c+-1|0,f=(c|0)!=0,!(f&(s&3|0)!=0)){B=5;break}}else B=5;while(!1);(B|0)==5&&(f?B=6:c=0);e:do if((B|0)==6&&(d=l&255,(o[s>>0]|0)!=d<<24>>24)){f=Ue(m,16843009)|0;t:do if(c>>>0>3){for(;m=n[s>>2]^f,!((m&-2139062144^-2139062144)&m+-16843009|0);)if(s=s+4|0,c=c+-4|0,c>>>0<=3){B=11;break t}}else B=11;while(!1);if((B|0)==11&&!c){c=0;break}for(;;){if((o[s>>0]|0)==d<<24>>24)break e;if(s=s+1|0,c=c+-1|0,!c){c=0;break}}}while(!1);return(c|0?s:0)|0}function Ds(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0;if(B=C,C=C+256|0,m=B,(c|0)>(f|0)&(d&73728|0)==0){if(d=c-f|0,Od(m|0,l|0,(d>>>0<256?d:256)|0)|0,d>>>0>255){l=c-f|0;do as(s,m,256),d=d+-256|0;while(d>>>0>255);d=l&255}as(s,m,d)}C=B}function n7(s,l){return s=s|0,l=l|0,s?s=jUe(s,l,0)|0:s=0,s|0}function HUe(s,l,c,f,d,m){s=s|0,l=+l,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0,Qe=0,$e=0,Je=0,lt=0,_e=0,qe=0,Lt=0,Or=0,cr=0,Xt=0,Pr=0,Tr=0,ar=0,xn=0;xn=C,C=C+560|0,Q=xn+8|0,$e=xn,ar=xn+524|0,Tr=ar,O=xn+512|0,n[$e>>2]=0,Pr=O+12|0,i7(l)|0,(we|0)<0?(l=-l,cr=1,Or=5659):(cr=(d&2049|0)!=0&1,Or=d&2048|0?5662:d&1|0?5665:5660),i7(l)|0,Xt=we&2146435072;do if(Xt>>>0<2146435072|(Xt|0)==2146435072&!1){if(je=+qUe(l,$e)*2,B=je!=0,B&&(n[$e>>2]=(n[$e>>2]|0)+-1),lt=m|32,(lt|0)==97){Oe=m&32,se=Oe|0?Or+9|0:Or,j=cr|2,B=12-f|0;do if(f>>>0>11|(B|0)==0)l=je;else{l=8;do B=B+-1|0,l=l*16;while(B|0);if((o[se>>0]|0)==45){l=-(l+(-je-l));break}else{l=je+l-l;break}}while(!1);k=n[$e>>2]|0,B=(k|0)<0?0-k|0:k,B=Ld(B,((B|0)<0)<<31>>31,Pr)|0,(B|0)==(Pr|0)&&(B=O+11|0,o[B>>0]=48),o[B+-1>>0]=(k>>31&2)+43,M=B+-2|0,o[M>>0]=m+15,O=(f|0)<1,Q=(d&8|0)==0,B=ar;do Xt=~~l,k=B+1|0,o[B>>0]=u[5694+Xt>>0]|Oe,l=(l-+(Xt|0))*16,(k-Tr|0)==1&&!(Q&(O&l==0))?(o[k>>0]=46,B=B+2|0):B=k;while(l!=0);Xt=B-Tr|0,Tr=Pr-M|0,Pr=(f|0)!=0&(Xt+-2|0)<(f|0)?f+2|0:Xt,B=Tr+j+Pr|0,Ds(s,32,c,B,d),as(s,se,j),Ds(s,48,c,B,d^65536),as(s,ar,Xt),Ds(s,48,Pr-Xt|0,0,0),as(s,M,Tr),Ds(s,32,c,B,d^8192);break}k=(f|0)<0?6:f,B?(B=(n[$e>>2]|0)+-28|0,n[$e>>2]=B,l=je*268435456):(l=je,B=n[$e>>2]|0),Xt=(B|0)<0?Q:Q+288|0,Q=Xt;do qe=~~l>>>0,n[Q>>2]=qe,Q=Q+4|0,l=(l-+(qe>>>0))*1e9;while(l!=0);if((B|0)>0)for(O=Xt,j=Q;;){if(M=(B|0)<29?B:29,B=j+-4|0,B>>>0>=O>>>0){Q=0;do _e=u7(n[B>>2]|0,0,M|0)|0,_e=yR(_e|0,we|0,Q|0,0)|0,qe=we,Je=CR(_e|0,qe|0,1e9,0)|0,n[B>>2]=Je,Q=ER(_e|0,qe|0,1e9,0)|0,B=B+-4|0;while(B>>>0>=O>>>0);Q&&(O=O+-4|0,n[O>>2]=Q)}for(Q=j;!(Q>>>0<=O>>>0);)if(B=Q+-4|0,!(n[B>>2]|0))Q=B;else break;if(B=(n[$e>>2]|0)-M|0,n[$e>>2]=B,(B|0)>0)j=Q;else break}else O=Xt;if((B|0)<0){f=((k+25|0)/9|0)+1|0,Qe=(lt|0)==102;do{if(Oe=0-B|0,Oe=(Oe|0)<9?Oe:9,O>>>0<Q>>>0){M=(1<<Oe)+-1|0,j=1e9>>>Oe,se=0,B=O;do qe=n[B>>2]|0,n[B>>2]=(qe>>>Oe)+se,se=Ue(qe&M,j)|0,B=B+4|0;while(B>>>0<Q>>>0);B=n[O>>2]|0?O:O+4|0,se?(n[Q>>2]=se,O=B,B=Q+4|0):(O=B,B=Q)}else O=n[O>>2]|0?O:O+4|0,B=Q;Q=Qe?Xt:O,Q=(B-Q>>2|0)>(f|0)?Q+(f<<2)|0:B,B=(n[$e>>2]|0)+Oe|0,n[$e>>2]=B}while((B|0)<0);B=O,f=Q}else B=O,f=Q;if(qe=Xt,B>>>0<f>>>0){if(Q=(qe-B>>2)*9|0,M=n[B>>2]|0,M>>>0>=10){O=10;do O=O*10|0,Q=Q+1|0;while(M>>>0>=O>>>0)}}else Q=0;if(Qe=(lt|0)==103,Je=(k|0)!=0,O=k-((lt|0)!=102?Q:0)+((Je&Qe)<<31>>31)|0,(O|0)<(((f-qe>>2)*9|0)+-9|0)){if(O=O+9216|0,Oe=Xt+4+(((O|0)/9|0)+-1024<<2)|0,O=((O|0)%9|0)+1|0,(O|0)<9){M=10;do M=M*10|0,O=O+1|0;while((O|0)!=9)}else M=10;if(j=n[Oe>>2]|0,se=(j>>>0)%(M>>>0)|0,O=(Oe+4|0)==(f|0),O&(se|0)==0)O=Oe;else if(je=((j>>>0)/(M>>>0)|0)&1|0?9007199254740994:9007199254740992,_e=(M|0)/2|0,l=se>>>0<_e>>>0?.5:O&(se|0)==(_e|0)?1:1.5,cr&&(_e=(o[Or>>0]|0)==45,l=_e?-l:l,je=_e?-je:je),O=j-se|0,n[Oe>>2]=O,je+l!=je){if(_e=O+M|0,n[Oe>>2]=_e,_e>>>0>999999999)for(Q=Oe;O=Q+-4|0,n[Q>>2]=0,O>>>0<B>>>0&&(B=B+-4|0,n[B>>2]=0),_e=(n[O>>2]|0)+1|0,n[O>>2]=_e,_e>>>0>999999999;)Q=O;else O=Oe;if(Q=(qe-B>>2)*9|0,j=n[B>>2]|0,j>>>0>=10){M=10;do M=M*10|0,Q=Q+1|0;while(j>>>0>=M>>>0)}}else O=Oe;O=O+4|0,O=f>>>0>O>>>0?O:f,_e=B}else O=f,_e=B;for(lt=O;;){if(lt>>>0<=_e>>>0){$e=0;break}if(B=lt+-4|0,!(n[B>>2]|0))lt=B;else{$e=1;break}}f=0-Q|0;do if(Qe)if(B=((Je^1)&1)+k|0,(B|0)>(Q|0)&(Q|0)>-5?(M=m+-1|0,k=B+-1-Q|0):(M=m+-2|0,k=B+-1|0),B=d&8,B)Oe=B;else{if($e&&(Lt=n[lt+-4>>2]|0,(Lt|0)!=0))if((Lt>>>0)%10|0)O=0;else{O=0,B=10;do B=B*10|0,O=O+1|0;while(!((Lt>>>0)%(B>>>0)|0|0))}else O=9;if(B=((lt-qe>>2)*9|0)+-9|0,(M|32|0)==102){Oe=B-O|0,Oe=(Oe|0)>0?Oe:0,k=(k|0)<(Oe|0)?k:Oe,Oe=0;break}else{Oe=B+Q-O|0,Oe=(Oe|0)>0?Oe:0,k=(k|0)<(Oe|0)?k:Oe,Oe=0;break}}else M=m,Oe=d&8;while(!1);if(Qe=k|Oe,j=(Qe|0)!=0&1,se=(M|32|0)==102,se)Je=0,B=(Q|0)>0?Q:0;else{if(B=(Q|0)<0?f:Q,B=Ld(B,((B|0)<0)<<31>>31,Pr)|0,O=Pr,(O-B|0)<2)do B=B+-1|0,o[B>>0]=48;while((O-B|0)<2);o[B+-1>>0]=(Q>>31&2)+43,B=B+-2|0,o[B>>0]=M,Je=B,B=O-B|0}if(B=cr+1+k+j+B|0,Ds(s,32,c,B,d),as(s,Or,cr),Ds(s,48,c,B,d^65536),se){M=_e>>>0>Xt>>>0?Xt:_e,Oe=ar+9|0,j=Oe,se=ar+8|0,O=M;do{if(Q=Ld(n[O>>2]|0,0,Oe)|0,(O|0)==(M|0))(Q|0)==(Oe|0)&&(o[se>>0]=48,Q=se);else if(Q>>>0>ar>>>0){Od(ar|0,48,Q-Tr|0)|0;do Q=Q+-1|0;while(Q>>>0>ar>>>0)}as(s,Q,j-Q|0),O=O+4|0}while(O>>>0<=Xt>>>0);if(Qe|0&&as(s,5710,1),O>>>0<lt>>>0&(k|0)>0)for(;;){if(Q=Ld(n[O>>2]|0,0,Oe)|0,Q>>>0>ar>>>0){Od(ar|0,48,Q-Tr|0)|0;do Q=Q+-1|0;while(Q>>>0>ar>>>0)}if(as(s,Q,(k|0)<9?k:9),O=O+4|0,Q=k+-9|0,O>>>0<lt>>>0&(k|0)>9)k=Q;else{k=Q;break}}Ds(s,48,k+9|0,9,0)}else{if(Qe=$e?lt:_e+4|0,(k|0)>-1){$e=ar+9|0,Oe=(Oe|0)==0,f=$e,j=0-Tr|0,se=ar+8|0,M=_e;do{Q=Ld(n[M>>2]|0,0,$e)|0,(Q|0)==($e|0)&&(o[se>>0]=48,Q=se);do if((M|0)==(_e|0)){if(O=Q+1|0,as(s,Q,1),Oe&(k|0)<1){Q=O;break}as(s,5710,1),Q=O}else{if(Q>>>0<=ar>>>0)break;Od(ar|0,48,Q+j|0)|0;do Q=Q+-1|0;while(Q>>>0>ar>>>0)}while(!1);Tr=f-Q|0,as(s,Q,(k|0)>(Tr|0)?Tr:k),k=k-Tr|0,M=M+4|0}while(M>>>0<Qe>>>0&(k|0)>-1)}Ds(s,48,k+18|0,18,0),as(s,Je,Pr-Je|0)}Ds(s,32,c,B,d^8192)}else ar=(m&32|0)!=0,B=cr+3|0,Ds(s,32,c,B,d&-65537),as(s,Or,cr),as(s,l!=l|!1?ar?5686:5690:ar?5678:5682,3),Ds(s,32,c,B,d^8192);while(!1);return C=xn,((B|0)<(c|0)?c:B)|0}function i7(s){s=+s;var l=0;return E[v>>3]=s,l=n[v>>2]|0,we=n[v+4>>2]|0,l|0}function qUe(s,l){return s=+s,l=l|0,+ +s7(s,l)}function s7(s,l){s=+s,l=l|0;var c=0,f=0,d=0;switch(E[v>>3]=s,c=n[v>>2]|0,f=n[v+4>>2]|0,d=eD(c|0,f|0,52)|0,d&2047){case 0:{s!=0?(s=+s7(s*18446744073709552e3,l),c=(n[l>>2]|0)+-64|0):c=0,n[l>>2]=c;break}case 2047:break;default:n[l>>2]=(d&2047)+-1022,n[v>>2]=c,n[v+4>>2]=f&-2146435073|1071644672,s=+E[v>>3]}return+s}function jUe(s,l,c){s=s|0,l=l|0,c=c|0;do if(s){if(l>>>0<128){o[s>>0]=l,s=1;break}if(!(n[n[(GUe()|0)+188>>2]>>2]|0))if((l&-128|0)==57216){o[s>>0]=l,s=1;break}else{n[(Nd()|0)>>2]=84,s=-1;break}if(l>>>0<2048){o[s>>0]=l>>>6|192,o[s+1>>0]=l&63|128,s=2;break}if(l>>>0<55296|(l&-8192|0)==57344){o[s>>0]=l>>>12|224,o[s+1>>0]=l>>>6&63|128,o[s+2>>0]=l&63|128,s=3;break}if((l+-65536|0)>>>0<1048576){o[s>>0]=l>>>18|240,o[s+1>>0]=l>>>12&63|128,o[s+2>>0]=l>>>6&63|128,o[s+3>>0]=l&63|128,s=4;break}else{n[(Nd()|0)>>2]=84,s=-1;break}}else s=1;while(!1);return s|0}function GUe(){return gR()|0}function YUe(){return gR()|0}function WUe(s,l){s=s|0,l=l|0;var c=0,f=0;for(f=0;;){if((u[5712+f>>0]|0)==(s|0)){s=2;break}if(c=f+1|0,(c|0)==87){c=5800,f=87,s=5;break}else f=c}if((s|0)==2&&(f?(c=5800,s=5):c=5800),(s|0)==5)for(;;){do s=c,c=c+1|0;while(o[s>>0]|0);if(f=f+-1|0,f)s=5;else break}return KUe(c,n[l+20>>2]|0)|0}function KUe(s,l){return s=s|0,l=l|0,VUe(s,l)|0}function VUe(s,l){return s=s|0,l=l|0,l?l=zUe(n[l>>2]|0,n[l+4>>2]|0,s)|0:l=0,(l|0?l:s)|0}function zUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0;se=(n[s>>2]|0)+1794895138|0,m=x0(n[s+8>>2]|0,se)|0,f=x0(n[s+12>>2]|0,se)|0,d=x0(n[s+16>>2]|0,se)|0;e:do if(m>>>0<l>>>2>>>0&&(j=l-(m<<2)|0,f>>>0<j>>>0&d>>>0<j>>>0)&&!((d|f)&3|0)){for(j=f>>>2,M=d>>>2,O=0;;){if(k=m>>>1,Q=O+k|0,B=Q<<1,d=B+j|0,f=x0(n[s+(d<<2)>>2]|0,se)|0,d=x0(n[s+(d+1<<2)>>2]|0,se)|0,!(d>>>0<l>>>0&f>>>0<(l-d|0)>>>0)){f=0;break e}if(o[s+(d+f)>>0]|0){f=0;break e}if(f=$9(c,s+d|0)|0,!f)break;if(f=(f|0)<0,(m|0)==1){f=0;break e}else O=f?O:Q,m=f?k:m-k|0}f=B+M|0,d=x0(n[s+(f<<2)>>2]|0,se)|0,f=x0(n[s+(f+1<<2)>>2]|0,se)|0,f>>>0<l>>>0&d>>>0<(l-f|0)>>>0?f=o[s+(f+d)>>0]|0?0:s+f|0:f=0}else f=0;while(!1);return f|0}function x0(s,l){s=s|0,l=l|0;var c=0;return c=p7(s|0)|0,(l|0?c:s)|0}function JUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=c+16|0,d=n[f>>2]|0,d?m=5:XUe(c)|0?f=0:(d=n[f>>2]|0,m=5);e:do if((m|0)==5){if(k=c+20|0,B=n[k>>2]|0,f=B,(d-B|0)>>>0<l>>>0){f=rD[n[c+36>>2]&7](c,s,l)|0;break}t:do if((o[c+75>>0]|0)>-1){for(B=l;;){if(!B){m=0,d=s;break t}if(d=B+-1|0,(o[s+d>>0]|0)==10)break;B=d}if(f=rD[n[c+36>>2]&7](c,s,B)|0,f>>>0<B>>>0)break e;m=B,d=s+B|0,l=l-B|0,f=n[k>>2]|0}else m=0,d=s;while(!1);Dr(f|0,d|0,l|0)|0,n[k>>2]=(n[k>>2]|0)+l,f=m+l|0}while(!1);return f|0}function XUe(s){s=s|0;var l=0,c=0;return l=s+74|0,c=o[l>>0]|0,o[l>>0]=c+255|c,l=n[s>>2]|0,l&8?(n[s>>2]=l|32,s=-1):(n[s+8>>2]=0,n[s+4>>2]=0,c=n[s+44>>2]|0,n[s+28>>2]=c,n[s+20>>2]=c,n[s+16>>2]=c+(n[s+48>>2]|0),s=0),s|0}function _n(s,l){s=y(s),l=y(l);var c=0,f=0;c=o7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=o7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?l:s;break}else{s=s<l?l:s;break}}else s=l;while(!1);return y(s)}function o7(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function k0(s,l){s=y(s),l=y(l);var c=0,f=0;c=a7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=a7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?s:l;break}else{s=s<l?s:l;break}}else s=l;while(!1);return y(s)}function a7(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function mR(s,l){s=y(s),l=y(l);var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,O=0;m=(h[v>>2]=s,n[v>>2]|0),k=(h[v>>2]=l,n[v>>2]|0),c=m>>>23&255,B=k>>>23&255,Q=m&-2147483648,d=k<<1;e:do if(d|0&&!((c|0)==255|((ZUe(l)|0)&2147483647)>>>0>2139095040)){if(f=m<<1,f>>>0<=d>>>0)return l=y(s*y(0)),y((f|0)==(d|0)?l:s);if(c)f=m&8388607|8388608;else{if(c=m<<9,(c|0)>-1){f=c,c=0;do c=c+-1|0,f=f<<1;while((f|0)>-1)}else c=0;f=m<<1-c}if(B)k=k&8388607|8388608;else{if(m=k<<9,(m|0)>-1){d=0;do d=d+-1|0,m=m<<1;while((m|0)>-1)}else d=0;B=d,k=k<<1-d}d=f-k|0,m=(d|0)>-1;t:do if((c|0)>(B|0)){for(;;){if(m)if(d)f=d;else break;if(f=f<<1,c=c+-1|0,d=f-k|0,m=(d|0)>-1,(c|0)<=(B|0))break t}l=y(s*y(0));break e}while(!1);if(m)if(d)f=d;else{l=y(s*y(0));break}if(f>>>0<8388608)do f=f<<1,c=c+-1|0;while(f>>>0<8388608);(c|0)>0?c=f+-8388608|c<<23:c=f>>>(1-c|0),l=(n[v>>2]=c|Q,y(h[v>>2]))}else O=3;while(!1);return(O|0)==3&&(l=y(s*l),l=y(l/l)),y(l)}function ZUe(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function $Ue(s,l){return s=s|0,l=l|0,e7(n[582]|0,s,l)|0}function Jr(s){s=s|0,Tt()}function Md(s){s=s|0}function e3e(s,l){return s=s|0,l=l|0,0}function t3e(s){return s=s|0,(l7(s+4|0)|0)==-1?(ef[n[(n[s>>2]|0)+8>>2]&127](s),s=1):s=0,s|0}function l7(s){s=s|0;var l=0;return l=n[s>>2]|0,n[s>>2]=l+-1,l+-1|0}function Sp(s){s=s|0,t3e(s)|0&&r3e(s)}function r3e(s){s=s|0;var l=0;l=s+8|0,n[l>>2]|0&&(l7(l)|0)!=-1||ef[n[(n[s>>2]|0)+16>>2]&127](s)}function Kt(s){s=s|0;var l=0;for(l=s|0?s:1;s=Jv(l)|0,!(s|0);){if(s=i3e()|0,!s){s=0;break}B7[s&0]()}return s|0}function c7(s){return s=s|0,Kt(s)|0}function gt(s){s=s|0,Xv(s)}function n3e(s){s=s|0,(o[s+11>>0]|0)<0&>(n[s>>2]|0)}function i3e(){var s=0;return s=n[2923]|0,n[2923]=s+0,s|0}function s3e(){}function $v(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,f=l-f-(c>>>0>s>>>0|0)>>>0,we=f,s-c>>>0|0|0}function yR(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,c=s+c>>>0,we=l+f+(c>>>0<s>>>0|0)>>>0,c|0|0}function Od(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(m=s+c|0,l=l&255,(c|0)>=67){for(;s&3;)o[s>>0]=l,s=s+1|0;for(f=m&-4|0,d=f-64|0,B=l|l<<8|l<<16|l<<24;(s|0)<=(d|0);)n[s>>2]=B,n[s+4>>2]=B,n[s+8>>2]=B,n[s+12>>2]=B,n[s+16>>2]=B,n[s+20>>2]=B,n[s+24>>2]=B,n[s+28>>2]=B,n[s+32>>2]=B,n[s+36>>2]=B,n[s+40>>2]=B,n[s+44>>2]=B,n[s+48>>2]=B,n[s+52>>2]=B,n[s+56>>2]=B,n[s+60>>2]=B,s=s+64|0;for(;(s|0)<(f|0);)n[s>>2]=B,s=s+4|0}for(;(s|0)<(m|0);)o[s>>0]=l,s=s+1|0;return m-c|0}function u7(s,l,c){return s=s|0,l=l|0,c=c|0,(c|0)<32?(we=l<<c|(s&(1<<c)-1<<32-c)>>>32-c,s<<c):(we=s<<c-32,0)}function eD(s,l,c){return s=s|0,l=l|0,c=c|0,(c|0)<32?(we=l>>>c,s>>>c|(l&(1<<c)-1)<<32-c):(we=0,l>>>c-32|0)}function Dr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;if((c|0)>=8192)return fc(s|0,l|0,c|0)|0;if(m=s|0,d=s+c|0,(s&3)==(l&3)){for(;s&3;){if(!c)return m|0;o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0,c=c-1|0}for(c=d&-4|0,f=c-64|0;(s|0)<=(f|0);)n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2],n[s+16>>2]=n[l+16>>2],n[s+20>>2]=n[l+20>>2],n[s+24>>2]=n[l+24>>2],n[s+28>>2]=n[l+28>>2],n[s+32>>2]=n[l+32>>2],n[s+36>>2]=n[l+36>>2],n[s+40>>2]=n[l+40>>2],n[s+44>>2]=n[l+44>>2],n[s+48>>2]=n[l+48>>2],n[s+52>>2]=n[l+52>>2],n[s+56>>2]=n[l+56>>2],n[s+60>>2]=n[l+60>>2],s=s+64|0,l=l+64|0;for(;(s|0)<(c|0);)n[s>>2]=n[l>>2],s=s+4|0,l=l+4|0}else for(c=d-4|0;(s|0)<(c|0);)o[s>>0]=o[l>>0]|0,o[s+1>>0]=o[l+1>>0]|0,o[s+2>>0]=o[l+2>>0]|0,o[s+3>>0]=o[l+3>>0]|0,s=s+4|0,l=l+4|0;for(;(s|0)<(d|0);)o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0;return m|0}function A7(s){s=s|0;var l=0;return l=o[L+(s&255)>>0]|0,(l|0)<8?l|0:(l=o[L+(s>>8&255)>>0]|0,(l|0)<8?l+8|0:(l=o[L+(s>>16&255)>>0]|0,(l|0)<8?l+16|0:(o[L+(s>>>24)>>0]|0)+24|0))}function f7(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,O=0,M=0,j=0,se=0,je=0,Oe=0;if(M=s,Q=l,O=Q,B=c,se=f,k=se,!O)return m=(d|0)!=0,k?m?(n[d>>2]=s|0,n[d+4>>2]=l&0,se=0,d=0,we=se,d|0):(se=0,d=0,we=se,d|0):(m&&(n[d>>2]=(M>>>0)%(B>>>0),n[d+4>>2]=0),se=0,d=(M>>>0)/(B>>>0)>>>0,we=se,d|0);m=(k|0)==0;do if(B){if(!m){if(m=(S(k|0)|0)-(S(O|0)|0)|0,m>>>0<=31){j=m+1|0,k=31-m|0,l=m-31>>31,B=j,s=M>>>(j>>>0)&l|O<<k,l=O>>>(j>>>0)&l,m=0,k=M<<k;break}return d?(n[d>>2]=s|0,n[d+4>>2]=Q|l&0,se=0,d=0,we=se,d|0):(se=0,d=0,we=se,d|0)}if(m=B-1|0,m&B|0){k=(S(B|0)|0)+33-(S(O|0)|0)|0,Oe=64-k|0,j=32-k|0,Q=j>>31,je=k-32|0,l=je>>31,B=k,s=j-1>>31&O>>>(je>>>0)|(O<<j|M>>>(k>>>0))&l,l=l&O>>>(k>>>0),m=M<<Oe&Q,k=(O<<Oe|M>>>(je>>>0))&Q|M<<j&k-33>>31;break}return d|0&&(n[d>>2]=m&M,n[d+4>>2]=0),(B|0)==1?(je=Q|l&0,Oe=s|0|0,we=je,Oe|0):(Oe=A7(B|0)|0,je=O>>>(Oe>>>0)|0,Oe=O<<32-Oe|M>>>(Oe>>>0)|0,we=je,Oe|0)}else{if(m)return d|0&&(n[d>>2]=(O>>>0)%(B>>>0),n[d+4>>2]=0),je=0,Oe=(O>>>0)/(B>>>0)>>>0,we=je,Oe|0;if(!M)return d|0&&(n[d>>2]=0,n[d+4>>2]=(O>>>0)%(k>>>0)),je=0,Oe=(O>>>0)/(k>>>0)>>>0,we=je,Oe|0;if(m=k-1|0,!(m&k))return d|0&&(n[d>>2]=s|0,n[d+4>>2]=m&O|l&0),je=0,Oe=O>>>((A7(k|0)|0)>>>0),we=je,Oe|0;if(m=(S(k|0)|0)-(S(O|0)|0)|0,m>>>0<=30){l=m+1|0,k=31-m|0,B=l,s=O<<k|M>>>(l>>>0),l=O>>>(l>>>0),m=0,k=M<<k;break}return d?(n[d>>2]=s|0,n[d+4>>2]=Q|l&0,je=0,Oe=0,we=je,Oe|0):(je=0,Oe=0,we=je,Oe|0)}while(!1);if(!B)O=k,Q=0,k=0;else{j=c|0|0,M=se|f&0,O=yR(j|0,M|0,-1,-1)|0,c=we,Q=k,k=0;do f=Q,Q=m>>>31|Q<<1,m=k|m<<1,f=s<<1|f>>>31|0,se=s>>>31|l<<1|0,$v(O|0,c|0,f|0,se|0)|0,Oe=we,je=Oe>>31|((Oe|0)<0?-1:0)<<1,k=je&1,s=$v(f|0,se|0,je&j|0,(((Oe|0)<0?-1:0)>>31|((Oe|0)<0?-1:0)<<1)&M|0)|0,l=we,B=B-1|0;while(B|0);O=Q,Q=0}return B=0,d|0&&(n[d>>2]=s,n[d+4>>2]=l),je=(m|0)>>>31|(O|B)<<1|(B<<1|m>>>31)&0|Q,Oe=(m<<1|0)&-2|k,we=je,Oe|0}function ER(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,f7(s,l,c,f,0)|0}function bp(s){s=s|0;var l=0,c=0;return c=s+15&-16|0,l=n[I>>2]|0,s=l+c|0,(c|0)>0&(s|0)<(l|0)|(s|0)<0?(ie()|0,vA(12),-1):(n[I>>2]=s,(s|0)>($()|0)&&!(X()|0)?(n[I>>2]=l,vA(12),-1):l|0)}function ww(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if((l|0)<(s|0)&(s|0)<(l+c|0)){for(f=s,l=l+c|0,s=s+c|0;(c|0)>0;)s=s-1|0,l=l-1|0,c=c-1|0,o[s>>0]=o[l>>0]|0;s=f}else Dr(s,l,c)|0;return s|0}function CR(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;return m=C,C=C+16|0,d=m|0,f7(s,l,c,f,d)|0,C=m,we=n[d+4>>2]|0,n[d>>2]|0|0}function p7(s){return s=s|0,(s&255)<<24|(s>>8&255)<<16|(s>>16&255)<<8|s>>>24|0}function o3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,h7[s&1](l|0,c|0,f|0,d|0,m|0)}function a3e(s,l,c){s=s|0,l=l|0,c=y(c),g7[s&1](l|0,y(c))}function l3e(s,l,c){s=s|0,l=l|0,c=+c,d7[s&31](l|0,+c)}function c3e(s,l,c,f){return s=s|0,l=l|0,c=y(c),f=y(f),y(m7[s&0](l|0,y(c),y(f)))}function u3e(s,l){s=s|0,l=l|0,ef[s&127](l|0)}function A3e(s,l,c){s=s|0,l=l|0,c=c|0,tf[s&31](l|0,c|0)}function f3e(s,l){return s=s|0,l=l|0,F0[s&31](l|0)|0}function p3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,y7[s&1](l|0,+c,+f,d|0)}function h3e(s,l,c,f){s=s|0,l=l|0,c=+c,f=+f,V3e[s&1](l|0,+c,+f)}function g3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,rD[s&7](l|0,c|0,f|0)|0}function d3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,+z3e[s&1](l|0,c|0,f|0)}function m3e(s,l){return s=s|0,l=l|0,+E7[s&15](l|0)}function y3e(s,l,c){return s=s|0,l=l|0,c=+c,J3e[s&1](l|0,+c)|0}function E3e(s,l,c){return s=s|0,l=l|0,c=c|0,IR[s&15](l|0,c|0)|0}function C3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=+f,d=+d,m=m|0,X3e[s&1](l|0,c|0,+f,+d,m|0)}function w3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,Z3e[s&1](l|0,c|0,f|0,d|0,m|0,B|0)}function I3e(s,l,c){return s=s|0,l=l|0,c=c|0,+C7[s&7](l|0,c|0)}function B3e(s){return s=s|0,nD[s&7]()|0}function v3e(s,l,c,f,d,m){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,w7[s&1](l|0,c|0,f|0,d|0,m|0)|0}function D3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=+d,$3e[s&1](l|0,c|0,f|0,+d)}function P3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,I7[s&1](l|0,c|0,y(f),d|0,y(m),B|0)}function S3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,vw[s&15](l|0,c|0,f|0)}function b3e(s){s=s|0,B7[s&0]()}function x3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,v7[s&15](l|0,c|0,+f)}function k3e(s,l,c){return s=s|0,l=+l,c=+c,e_e[s&1](+l,+c)|0}function Q3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,BR[s&15](l|0,c|0,f|0,d|0)}function F3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(0)}function R3e(s,l){s=s|0,l=y(l),F(1)}function Ea(s,l){s=s|0,l=+l,F(2)}function T3e(s,l,c){return s=s|0,l=y(l),c=y(c),F(3),Xe}function Er(s){s=s|0,F(4)}function Iw(s,l){s=s|0,l=l|0,F(5)}function Xa(s){return s=s|0,F(6),0}function N3e(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,F(7)}function L3e(s,l,c){s=s|0,l=+l,c=+c,F(8)}function M3e(s,l,c){return s=s|0,l=l|0,c=c|0,F(9),0}function O3e(s,l,c){return s=s|0,l=l|0,c=c|0,F(10),0}function Q0(s){return s=s|0,F(11),0}function U3e(s,l){return s=s|0,l=+l,F(12),0}function Bw(s,l){return s=s|0,l=l|0,F(13),0}function _3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,F(14)}function H3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,F(15)}function wR(s,l){return s=s|0,l=l|0,F(16),0}function q3e(){return F(17),0}function j3e(s,l,c,f,d){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(18),0}function G3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,F(19)}function Y3e(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0,F(20)}function tD(s,l,c){s=s|0,l=l|0,c=c|0,F(21)}function W3e(){F(22)}function Ud(s,l,c){s=s|0,l=l|0,c=+c,F(23)}function K3e(s,l){return s=+s,l=+l,F(24),0}function _d(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,F(25)}var h7=[F3e,jLe],g7=[R3e,fo],d7=[Ea,fw,pw,lF,cF,Dl,hw,uF,xd,ku,dw,AF,Lv,WA,Mv,kd,Ov,Uv,Qd,Ea,Ea,Ea,Ea,Ea,Ea,Ea,Ea,Ea,Ea,Ea,Ea,Ea],m7=[T3e],ef=[Er,Md,BDe,vDe,DDe,exe,txe,rxe,yNe,ENe,CNe,kLe,QLe,FLe,Z4e,$4e,eUe,ds,Qv,bd,YA,gw,Eve,Cve,pDe,RDe,YDe,cPe,DPe,qPe,sSe,CSe,NSe,XSe,pbe,xbe,Ybe,Exe,Nxe,Xxe,pke,xke,Yke,uQe,DQe,UQe,tFe,bc,FFe,VFe,pRe,QRe,WRe,pTe,BTe,PTe,jTe,WTe,cNe,INe,DNe,qNe,oLe,eG,HMe,yOe,ROe,VOe,d4e,Q4e,q4e,Y4e,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er],tf=[Iw,tF,rF,Aw,xu,nF,iF,Cp,sF,oF,aF,Nv,KA,Ve,At,Wt,vr,Sn,Qr,pF,ove,xve,hQe,bQe,NRe,GMe,hLe,O9,Iw,Iw,Iw,Iw],F0=[Xa,xUe,eF,D,fe,De,vt,wt,bt,_r,di,po,nve,ive,wve,iFe,JRe,YNe,VMe,Va,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa],y7=[N3e,Ive],V3e=[L3e,fNe],rD=[M3e,Z9,kUe,RUe,WPe,Bxe,LFe,ZOe],z3e=[O3e,mbe],E7=[Q0,Yo,nt,bn,Bve,vve,Dve,Pve,Sve,bve,Q0,Q0,Q0,Q0,Q0,Q0],J3e=[U3e,CTe],IR=[Bw,e3e,sve,mDe,pPe,lSe,BSe,zbe,Uxe,jQe,xv,MOe,Bw,Bw,Bw,Bw],X3e=[_3e,zDe],Z3e=[H3e,C4e],C7=[wR,ai,kve,Qve,Fve,Rbe,wR,wR],nD=[q3e,Rve,cw,ma,kTe,JTe,xNe,z4e],w7=[j3e,nw],$3e=[G3e,mke],I7=[Y3e,ave],vw=[tD,T,os,tn,ho,xPe,OSe,Rke,zke,Sd,fMe,IOe,N4e,tD,tD,tD],B7=[W3e],v7=[Ud,Fv,Rv,Tv,GA,_v,fF,P,tke,ZFe,dTe,Ud,Ud,Ud,Ud,Ud],e_e=[K3e,dNe],BR=[_d,tbe,fFe,mRe,sTe,LTe,rNe,LNe,ALe,eOe,oUe,_d,_d,_d,_d,_d];return{_llvm_bswap_i32:p7,dynCall_idd:k3e,dynCall_i:B3e,_i64Subtract:$v,___udivdi3:ER,dynCall_vif:a3e,setThrew:du,dynCall_viii:S3e,_bitshift64Lshr:eD,_bitshift64Shl:u7,dynCall_vi:u3e,dynCall_viiddi:C3e,dynCall_diii:d3e,dynCall_iii:E3e,_memset:Od,_sbrk:bp,_memcpy:Dr,__GLOBAL__sub_I_Yoga_cpp:Pd,dynCall_vii:A3e,___uremdi3:CR,dynCall_vid:l3e,stackAlloc:lo,_nbind_init:mUe,getTempRet0:qa,dynCall_di:m3e,dynCall_iid:y3e,setTempRet0:bA,_i64Add:yR,dynCall_fiff:c3e,dynCall_iiii:g3e,_emscripten_get_global_libc:bUe,dynCall_viid:x3e,dynCall_viiid:D3e,dynCall_viififi:P3e,dynCall_ii:f3e,__GLOBAL__sub_I_Binding_cc:RMe,dynCall_viiii:Q3e,dynCall_iiiiii:v3e,stackSave:dc,dynCall_viiiii:o3e,__GLOBAL__sub_I_nbind_cc:Tve,dynCall_vidd:h3e,_free:Xv,runPostSets:s3e,dynCall_viiiiii:w3e,establishStackSpace:qi,_memmove:ww,stackRestore:gu,_malloc:Jv,__GLOBAL__sub_I_common_cc:$Ne,dynCall_viddi:p3e,dynCall_dii:I3e,dynCall_v:b3e}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function t(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=t)},Module.callMain=Module.callMain=function t(e){e=e||[],ensureInitRuntime();var r=e.length+1;function o(){for(var p=0;p<3;p++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];o();for(var n=0;n<r-1;n=n+1)a.push(allocate(intArrayFromString(e[n]),"i8",ALLOC_NORMAL)),o();a.push(0),a=allocate(a,"i32",ALLOC_NORMAL);try{var u=Module._main(r,a,0);exit(u,!0)}catch(p){if(p instanceof ExitStatus)return;if(p=="SimulateInfiniteLoop"){Module.noExitRuntime=!0;return}else{var A=p;p&&typeof p=="object"&&p.stack&&(A=[p,p.stack]),Module.printErr("exception thrown: "+A),Module.quit(1,p)}}finally{calledMain=!0}};function run(t){if(t=t||Module.arguments,preloadStartTime===null&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0)||Module.calledRun)return;function e(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(t),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),e()},1)):e()}Module.run=Module.run=run;function exit(t,e){e&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=t,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(t)),ENVIRONMENT_IS_NODE&&process.exit(t),Module.quit(t,new ExitStatus(t)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(t){Module.onAbort&&Module.onAbort(t),t!==void 0?(Module.print(t),Module.printErr(t),t=JSON.stringify(t)):t="",ABORT=!0,EXITSTATUS=1;var e=` -If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+t+") at "+stackTrace()+e;throw abortDecorators&&abortDecorators.forEach(function(o){r=o(r,t)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var Jg=_((SKt,_Ee)=>{"use strict";var Jyt=OEe(),Xyt=UEe(),v6=!1,D6=null;Xyt({},function(t,e){if(!v6){if(v6=!0,t)throw t;D6=e}});if(!v6)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");_Ee.exports=Jyt(D6.bind,D6.lib)});var S6=_((bKt,P6)=>{"use strict";var HEe=t=>Number.isNaN(t)?!1:t>=4352&&(t<=4447||t===9001||t===9002||11904<=t&&t<=12871&&t!==12351||12880<=t&&t<=19903||19968<=t&&t<=42182||43360<=t&&t<=43388||44032<=t&&t<=55203||63744<=t&&t<=64255||65040<=t&&t<=65049||65072<=t&&t<=65131||65281<=t&&t<=65376||65504<=t&&t<=65510||110592<=t&&t<=110593||127488<=t&&t<=127569||131072<=t&&t<=262141);P6.exports=HEe;P6.exports.default=HEe});var jEe=_((xKt,qEe)=>{"use strict";qEe.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var Lk=_((kKt,b6)=>{"use strict";var Zyt=BP(),$yt=S6(),eEt=jEe(),GEe=t=>{if(typeof t!="string"||t.length===0||(t=Zyt(t),t.length===0))return 0;t=t.replace(eEt()," ");let e=0;for(let r=0;r<t.length;r++){let o=t.codePointAt(r);o<=31||o>=127&&o<=159||o>=768&&o<=879||(o>65535&&r++,e+=$yt(o)?2:1)}return e};b6.exports=GEe;b6.exports.default=GEe});var k6=_((QKt,x6)=>{"use strict";var tEt=Lk(),YEe=t=>{let e=0;for(let r of t.split(` -`))e=Math.max(e,tEt(r));return e};x6.exports=YEe;x6.exports.default=YEe});var WEe=_(W2=>{"use strict";var rEt=W2&&W2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(W2,"__esModule",{value:!0});var nEt=rEt(k6()),Q6={};W2.default=t=>{if(t.length===0)return{width:0,height:0};if(Q6[t])return Q6[t];let e=nEt.default(t),r=t.split(` -`).length;return Q6[t]={width:e,height:r},{width:e,height:r}}});var KEe=_(K2=>{"use strict";var iEt=K2&&K2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(K2,"__esModule",{value:!0});var dn=iEt(Jg()),sEt=(t,e)=>{"position"in e&&t.setPositionType(e.position==="absolute"?dn.default.POSITION_TYPE_ABSOLUTE:dn.default.POSITION_TYPE_RELATIVE)},oEt=(t,e)=>{"marginLeft"in e&&t.setMargin(dn.default.EDGE_START,e.marginLeft||0),"marginRight"in e&&t.setMargin(dn.default.EDGE_END,e.marginRight||0),"marginTop"in e&&t.setMargin(dn.default.EDGE_TOP,e.marginTop||0),"marginBottom"in e&&t.setMargin(dn.default.EDGE_BOTTOM,e.marginBottom||0)},aEt=(t,e)=>{"paddingLeft"in e&&t.setPadding(dn.default.EDGE_LEFT,e.paddingLeft||0),"paddingRight"in e&&t.setPadding(dn.default.EDGE_RIGHT,e.paddingRight||0),"paddingTop"in e&&t.setPadding(dn.default.EDGE_TOP,e.paddingTop||0),"paddingBottom"in e&&t.setPadding(dn.default.EDGE_BOTTOM,e.paddingBottom||0)},lEt=(t,e)=>{var r;"flexGrow"in e&&t.setFlexGrow((r=e.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in e&&t.setFlexShrink(typeof e.flexShrink=="number"?e.flexShrink:1),"flexDirection"in e&&(e.flexDirection==="row"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_ROW),e.flexDirection==="row-reverse"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_ROW_REVERSE),e.flexDirection==="column"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_COLUMN),e.flexDirection==="column-reverse"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in e&&(typeof e.flexBasis=="number"?t.setFlexBasis(e.flexBasis):typeof e.flexBasis=="string"?t.setFlexBasisPercent(Number.parseInt(e.flexBasis,10)):t.setFlexBasis(NaN)),"alignItems"in e&&((e.alignItems==="stretch"||!e.alignItems)&&t.setAlignItems(dn.default.ALIGN_STRETCH),e.alignItems==="flex-start"&&t.setAlignItems(dn.default.ALIGN_FLEX_START),e.alignItems==="center"&&t.setAlignItems(dn.default.ALIGN_CENTER),e.alignItems==="flex-end"&&t.setAlignItems(dn.default.ALIGN_FLEX_END)),"alignSelf"in e&&((e.alignSelf==="auto"||!e.alignSelf)&&t.setAlignSelf(dn.default.ALIGN_AUTO),e.alignSelf==="flex-start"&&t.setAlignSelf(dn.default.ALIGN_FLEX_START),e.alignSelf==="center"&&t.setAlignSelf(dn.default.ALIGN_CENTER),e.alignSelf==="flex-end"&&t.setAlignSelf(dn.default.ALIGN_FLEX_END)),"justifyContent"in e&&((e.justifyContent==="flex-start"||!e.justifyContent)&&t.setJustifyContent(dn.default.JUSTIFY_FLEX_START),e.justifyContent==="center"&&t.setJustifyContent(dn.default.JUSTIFY_CENTER),e.justifyContent==="flex-end"&&t.setJustifyContent(dn.default.JUSTIFY_FLEX_END),e.justifyContent==="space-between"&&t.setJustifyContent(dn.default.JUSTIFY_SPACE_BETWEEN),e.justifyContent==="space-around"&&t.setJustifyContent(dn.default.JUSTIFY_SPACE_AROUND))},cEt=(t,e)=>{var r,o;"width"in e&&(typeof e.width=="number"?t.setWidth(e.width):typeof e.width=="string"?t.setWidthPercent(Number.parseInt(e.width,10)):t.setWidthAuto()),"height"in e&&(typeof e.height=="number"?t.setHeight(e.height):typeof e.height=="string"?t.setHeightPercent(Number.parseInt(e.height,10)):t.setHeightAuto()),"minWidth"in e&&(typeof e.minWidth=="string"?t.setMinWidthPercent(Number.parseInt(e.minWidth,10)):t.setMinWidth((r=e.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in e&&(typeof e.minHeight=="string"?t.setMinHeightPercent(Number.parseInt(e.minHeight,10)):t.setMinHeight((o=e.minHeight)!==null&&o!==void 0?o:0))},uEt=(t,e)=>{"display"in e&&t.setDisplay(e.display==="flex"?dn.default.DISPLAY_FLEX:dn.default.DISPLAY_NONE)},AEt=(t,e)=>{if("borderStyle"in e){let r=typeof e.borderStyle=="string"?1:0;t.setBorder(dn.default.EDGE_TOP,r),t.setBorder(dn.default.EDGE_BOTTOM,r),t.setBorder(dn.default.EDGE_LEFT,r),t.setBorder(dn.default.EDGE_RIGHT,r)}};K2.default=(t,e={})=>{sEt(t,e),oEt(t,e),aEt(t,e),lEt(t,e),cEt(t,e),uEt(t,e),AEt(t,e)}});var JEe=_((TKt,zEe)=>{"use strict";var V2=Lk(),fEt=BP(),pEt=aI(),R6=new Set(["\x1B","\x9B"]),hEt=39,VEe=t=>`${R6.values().next().value}[${t}m`,gEt=t=>t.split(" ").map(e=>V2(e)),F6=(t,e,r)=>{let o=[...e],a=!1,n=V2(fEt(t[t.length-1]));for(let[u,A]of o.entries()){let p=V2(A);if(n+p<=r?t[t.length-1]+=A:(t.push(A),n=0),R6.has(A))a=!0;else if(a&&A==="m"){a=!1;continue}a||(n+=p,n===r&&u<o.length-1&&(t.push(""),n=0))}!n&&t[t.length-1].length>0&&t.length>1&&(t[t.length-2]+=t.pop())},dEt=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(V2(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},mEt=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let o="",a="",n,u=gEt(t),A=[""];for(let[p,h]of t.split(" ").entries()){r.trim!==!1&&(A[A.length-1]=A[A.length-1].trimLeft());let E=V2(A[A.length-1]);if(p!==0&&(E>=e&&(r.wordWrap===!1||r.trim===!1)&&(A.push(""),E=0),(E>0||r.trim===!1)&&(A[A.length-1]+=" ",E++)),r.hard&&u[p]>e){let I=e-E,v=1+Math.floor((u[p]-I-1)/e);Math.floor((u[p]-1)/e)<v&&A.push(""),F6(A,h,e);continue}if(E+u[p]>e&&E>0&&u[p]>0){if(r.wordWrap===!1&&E<e){F6(A,h,e);continue}A.push("")}if(E+u[p]>e&&r.wordWrap===!1){F6(A,h,e);continue}A[A.length-1]+=h}r.trim!==!1&&(A=A.map(dEt)),o=A.join(` -`);for(let[p,h]of[...o].entries()){if(a+=h,R6.has(h)){let I=parseFloat(/\d[^m]*/.exec(o.slice(p,p+4)));n=I===hEt?null:I}let E=pEt.codes.get(Number(n));n&&E&&(o[p+1]===` -`?a+=VEe(E):h===` -`&&(a+=VEe(n)))}return a};zEe.exports=(t,e,r)=>String(t).normalize().replace(/\r\n/g,` -`).split(` -`).map(o=>mEt(o,e,r)).join(` -`)});var $Ee=_((NKt,ZEe)=>{"use strict";var XEe="[\uD800-\uDBFF][\uDC00-\uDFFF]",yEt=t=>t&&t.exact?new RegExp(`^${XEe}$`):new RegExp(XEe,"g");ZEe.exports=yEt});var T6=_((LKt,nCe)=>{"use strict";var EEt=S6(),CEt=$Ee(),eCe=aI(),rCe=["\x1B","\x9B"],Mk=t=>`${rCe[0]}[${t}m`,tCe=(t,e,r)=>{let o=[];t=[...t];for(let a of t){let n=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let u=eCe.codes.get(parseInt(a,10));if(u){let A=t.indexOf(u.toString());A>=0?t.splice(A,1):o.push(Mk(e?u:n))}else if(e){o.push(Mk(0));break}else o.push(Mk(n))}if(e&&(o=o.filter((a,n)=>o.indexOf(a)===n),r!==void 0)){let a=Mk(eCe.codes.get(parseInt(r,10)));o=o.reduce((n,u)=>u===a?[u,...n]:[...n,u],[])}return o.join("")};nCe.exports=(t,e,r)=>{let o=[...t.normalize()],a=[];r=typeof r=="number"?r:o.length;let n=!1,u,A=0,p="";for(let[h,E]of o.entries()){let I=!1;if(rCe.includes(E)){let v=/\d[^m]*/.exec(t.slice(h,h+18));u=v&&v.length>0?v[0]:void 0,A<r&&(n=!0,u!==void 0&&a.push(u))}else n&&E==="m"&&(n=!1,I=!0);if(!n&&!I&&++A,!CEt({exact:!0}).test(E)&&EEt(E.codePointAt())&&++A,A>e&&A<=r)p+=E;else if(A===e&&!n&&u!==void 0)p=tCe(a);else if(A>=r){p+=tCe(a,!0,u);break}}return p}});var sCe=_((MKt,iCe)=>{"use strict";var Nh=T6(),wEt=Lk();function Ok(t,e,r){if(t.charAt(e)===" ")return e;for(let o=1;o<=3;o++)if(r){if(t.charAt(e+o)===" ")return e+o}else if(t.charAt(e-o)===" ")return e-o;return e}iCe.exports=(t,e,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:o,space:a,preferTruncationOnSpace:n}=r,u="\u2026",A=1;if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof e!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof e}`);if(e<1)return"";if(e===1)return u;let p=wEt(t);if(p<=e)return t;if(o==="start"){if(n){let h=Ok(t,p-e+1,!0);return u+Nh(t,h,p).trim()}return a===!0&&(u+=" ",A=2),u+Nh(t,p-e+A,p)}if(o==="middle"){a===!0&&(u=" "+u+" ",A=3);let h=Math.floor(e/2);if(n){let E=Ok(t,h),I=Ok(t,p-(e-h)+1,!0);return Nh(t,0,E)+u+Nh(t,I,p).trim()}return Nh(t,0,h)+u+Nh(t,p-(e-h)+A,p)}if(o==="end"){if(n){let h=Ok(t,e-1);return Nh(t,0,h)+u}return a===!0&&(u=" "+u,A=2),Nh(t,0,e-A)+u}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${o}`)}});var L6=_(z2=>{"use strict";var oCe=z2&&z2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(z2,"__esModule",{value:!0});var IEt=oCe(JEe()),BEt=oCe(sCe()),N6={};z2.default=(t,e,r)=>{let o=t+String(e)+String(r);if(N6[o])return N6[o];let a=t;if(r==="wrap"&&(a=IEt.default(t,e,{trim:!1,hard:!0})),r.startsWith("truncate")){let n="end";r==="truncate-middle"&&(n="middle"),r==="truncate-start"&&(n="start"),a=BEt.default(t,e,{position:n})}return N6[o]=a,a}});var O6=_(M6=>{"use strict";Object.defineProperty(M6,"__esModule",{value:!0});var aCe=t=>{let e="";if(t.childNodes.length>0)for(let r of t.childNodes){let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=aCe(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o))),e+=o}return e};M6.default=aCe});var U6=_(pi=>{"use strict";var J2=pi&&pi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pi,"__esModule",{value:!0});pi.setTextNodeValue=pi.createTextNode=pi.setStyle=pi.setAttribute=pi.removeChildNode=pi.insertBeforeNode=pi.appendChildNode=pi.createNode=pi.TEXT_NAME=void 0;var vEt=J2(Jg()),lCe=J2(WEe()),DEt=J2(KEe()),PEt=J2(L6()),SEt=J2(O6());pi.TEXT_NAME="#text";pi.createNode=t=>{var e;let r={nodeName:t,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:t==="ink-virtual-text"?void 0:vEt.default.Node.create()};return t==="ink-text"&&((e=r.yogaNode)===null||e===void 0||e.setMeasureFunc(bEt.bind(null,r))),r};pi.appendChildNode=(t,e)=>{var r;e.parentNode&&pi.removeChildNode(e.parentNode,e),e.parentNode=t,t.childNodes.push(e),e.yogaNode&&((r=t.yogaNode)===null||r===void 0||r.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&Uk(t)};pi.insertBeforeNode=(t,e,r)=>{var o,a;e.parentNode&&pi.removeChildNode(e.parentNode,e),e.parentNode=t;let n=t.childNodes.indexOf(r);if(n>=0){t.childNodes.splice(n,0,e),e.yogaNode&&((o=t.yogaNode)===null||o===void 0||o.insertChild(e.yogaNode,n));return}t.childNodes.push(e),e.yogaNode&&((a=t.yogaNode)===null||a===void 0||a.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&Uk(t)};pi.removeChildNode=(t,e)=>{var r,o;e.yogaNode&&((o=(r=e.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||o===void 0||o.removeChild(e.yogaNode)),e.parentNode=null;let a=t.childNodes.indexOf(e);a>=0&&t.childNodes.splice(a,1),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&Uk(t)};pi.setAttribute=(t,e,r)=>{t.attributes[e]=r};pi.setStyle=(t,e)=>{t.style=e,t.yogaNode&&DEt.default(t.yogaNode,e)};pi.createTextNode=t=>{let e={nodeName:"#text",nodeValue:t,yogaNode:void 0,parentNode:null,style:{}};return pi.setTextNodeValue(e,t),e};var bEt=function(t,e){var r,o;let a=t.nodeName==="#text"?t.nodeValue:SEt.default(t),n=lCe.default(a);if(n.width<=e||n.width>=1&&e>0&&e<1)return n;let u=(o=(r=t.style)===null||r===void 0?void 0:r.textWrap)!==null&&o!==void 0?o:"wrap",A=PEt.default(a,e,u);return lCe.default(A)},cCe=t=>{var e;if(!(!t||!t.parentNode))return(e=t.yogaNode)!==null&&e!==void 0?e:cCe(t.parentNode)},Uk=t=>{let e=cCe(t);e?.markDirty()};pi.setTextNodeValue=(t,e)=>{typeof e!="string"&&(e=String(e)),t.nodeValue=e,Uk(t)}});var hCe=_(X2=>{"use strict";var pCe=X2&&X2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(X2,"__esModule",{value:!0});var uCe=w6(),xEt=pCe(FEe()),ACe=pCe(Jg()),Mo=U6(),fCe=t=>{t?.unsetMeasureFunc(),t?.freeRecursive()};X2.default=xEt.default({schedulePassiveEffects:uCe.unstable_scheduleCallback,cancelPassiveEffects:uCe.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>{},resetAfterCommit:t=>{if(t.isStaticDirty){t.isStaticDirty=!1,typeof t.onImmediateRender=="function"&&t.onImmediateRender();return}typeof t.onRender=="function"&&t.onRender()},getChildHostContext:(t,e)=>{let r=t.isInsideText,o=e==="ink-text"||e==="ink-virtual-text";return r===o?t:{isInsideText:o}},shouldSetTextContent:()=>!1,createInstance:(t,e,r,o)=>{if(o.isInsideText&&t==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let a=t==="ink-text"&&o.isInsideText?"ink-virtual-text":t,n=Mo.createNode(a);for(let[u,A]of Object.entries(e))u!=="children"&&(u==="style"?Mo.setStyle(n,A):u==="internal_transform"?n.internal_transform=A:u==="internal_static"?n.internal_static=!0:Mo.setAttribute(n,u,A));return n},createTextInstance:(t,e,r)=>{if(!r.isInsideText)throw new Error(`Text string "${t}" must be rendered inside <Text> component`);return Mo.createTextNode(t)},resetTextContent:()=>{},hideTextInstance:t=>{Mo.setTextNodeValue(t,"")},unhideTextInstance:(t,e)=>{Mo.setTextNodeValue(t,e)},getPublicInstance:t=>t,hideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(ACe.default.DISPLAY_NONE)},unhideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(ACe.default.DISPLAY_FLEX)},appendInitialChild:Mo.appendChildNode,appendChild:Mo.appendChildNode,insertBefore:Mo.insertBeforeNode,finalizeInitialChildren:(t,e,r,o)=>(t.internal_static&&(o.isStaticDirty=!0,o.staticNode=t),!1),supportsMutation:!0,appendChildToContainer:Mo.appendChildNode,insertInContainerBefore:Mo.insertBeforeNode,removeChildFromContainer:(t,e)=>{Mo.removeChildNode(t,e),fCe(e.yogaNode)},prepareUpdate:(t,e,r,o,a)=>{t.internal_static&&(a.isStaticDirty=!0);let n={},u=Object.keys(o);for(let A of u)if(o[A]!==r[A]){if(A==="style"&&typeof o.style=="object"&&typeof r.style=="object"){let h=o.style,E=r.style,I=Object.keys(h);for(let v of I){if(v==="borderStyle"||v==="borderColor"){if(typeof n.style!="object"){let x={};n.style=x}n.style.borderStyle=h.borderStyle,n.style.borderColor=h.borderColor}if(h[v]!==E[v]){if(typeof n.style!="object"){let x={};n.style=x}n.style[v]=h[v]}}continue}n[A]=o[A]}return n},commitUpdate:(t,e)=>{for(let[r,o]of Object.entries(e))r!=="children"&&(r==="style"?Mo.setStyle(t,o):r==="internal_transform"?t.internal_transform=o:r==="internal_static"?t.internal_static=!0:Mo.setAttribute(t,r,o))},commitTextUpdate:(t,e,r)=>{Mo.setTextNodeValue(t,r)},removeChild:(t,e)=>{Mo.removeChildNode(t,e),fCe(e.yogaNode)}})});var dCe=_((qKt,gCe)=>{"use strict";gCe.exports=(t,e=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof t!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof t}\``);if(typeof e!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof e}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(e===0)return t;let o=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return t.replace(o,r.indent.repeat(e))}});var mCe=_(Z2=>{"use strict";var kEt=Z2&&Z2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Z2,"__esModule",{value:!0});var _k=kEt(Jg());Z2.default=t=>t.getComputedWidth()-t.getComputedPadding(_k.default.EDGE_LEFT)-t.getComputedPadding(_k.default.EDGE_RIGHT)-t.getComputedBorder(_k.default.EDGE_LEFT)-t.getComputedBorder(_k.default.EDGE_RIGHT)});var yCe=_((GKt,QEt)=>{QEt.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var CCe=_((YKt,_6)=>{"use strict";var ECe=yCe();_6.exports=ECe;_6.exports.default=ECe});var ICe=_((WKt,wCe)=>{"use strict";var FEt=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},REt=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r -`:` -`)+r,a=o+1,o=t.indexOf(` -`,a)}while(o!==-1);return n+=t.substr(a),n};wCe.exports={stringReplaceAll:FEt,stringEncaseCRLFWithFirstIndex:REt}});var SCe=_((KKt,PCe)=>{"use strict";var TEt=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,BCe=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,NEt=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,LEt=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,MEt=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function DCe(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):MEt.get(t)||t}function OEt(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(NEt))r.push(a[2].replace(LEt,(A,p,h)=>p?DCe(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function UEt(t){BCe.lastIndex=0;let e=[],r;for(;(r=BCe.exec(t))!==null;){let o=r[1];if(r[2]){let a=OEt(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function vCe(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}PCe.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(TEt,(n,u,A,p,h,E)=>{if(u)a.push(DCe(u));else if(p){let I=a.join("");a=[],o.push(r.length===0?I:vCe(t,r)(I)),r.push({inverse:A,styles:UEt(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(vCe(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var Yk=_((VKt,RCe)=>{"use strict";var $2=aI(),{stdout:q6,stderr:j6}=aN(),{stringReplaceAll:_Et,stringEncaseCRLFWithFirstIndex:HEt}=ICe(),{isArray:Hk}=Array,xCe=["ansi","ansi","ansi256","ansi16m"],nC=Object.create(null),qEt=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=q6?q6.level:0;t.level=e.level===void 0?r:e.level},G6=class{constructor(e){return kCe(e)}},kCe=t=>{let e={};return qEt(e,t),e.template=(...r)=>FCe(e.template,...r),Object.setPrototypeOf(e,qk.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=G6,e.template};function qk(t){return kCe(t)}for(let[t,e]of Object.entries($2))nC[t]={get(){let r=jk(this,Y6(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};nC.visible={get(){let t=jk(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var QCe=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of QCe)nC[t]={get(){let{level:e}=this;return function(...r){let o=Y6($2.color[xCe[e]][t](...r),$2.color.close,this._styler);return jk(this,o,this._isEmpty)}}};for(let t of QCe){let e="bg"+t[0].toUpperCase()+t.slice(1);nC[e]={get(){let{level:r}=this;return function(...o){let a=Y6($2.bgColor[xCe[r]][t](...o),$2.bgColor.close,this._styler);return jk(this,a,this._isEmpty)}}}}var jEt=Object.defineProperties(()=>{},{...nC,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),Y6=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},jk=(t,e,r)=>{let o=(...a)=>Hk(a[0])&&Hk(a[0].raw)?bCe(o,FCe(o,...a)):bCe(o,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(o,jEt),o._generator=t,o._styler=e,o._isEmpty=r,o},bCe=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=_Et(e,r.close,r.open),r=r.parent;let n=e.indexOf(` -`);return n!==-1&&(e=HEt(e,a,o,n)),o+e+a},H6,FCe=(t,...e)=>{let[r]=e;if(!Hk(r)||!Hk(r.raw))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n<r.length;n++)a.push(String(o[n-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[n]));return H6===void 0&&(H6=SCe()),H6(t,a.join(""))};Object.defineProperties(qk.prototype,nC);var Gk=qk();Gk.supportsColor=q6;Gk.stderr=qk({level:j6?j6.level:0});Gk.stderr.supportsColor=j6;RCe.exports=Gk});var W6=_(tB=>{"use strict";var GEt=tB&&tB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(tB,"__esModule",{value:!0});var eB=GEt(Yk()),YEt=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,WEt=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,Wk=(t,e)=>e==="foreground"?t:"bg"+t[0].toUpperCase()+t.slice(1);tB.default=(t,e,r)=>{if(!e)return t;if(e in eB.default){let a=Wk(e,r);return eB.default[a](t)}if(e.startsWith("#")){let a=Wk("hex",r);return eB.default[a](e)(t)}if(e.startsWith("ansi")){let a=WEt.exec(e);if(!a)return t;let n=Wk(a[1],r),u=Number(a[2]);return eB.default[n](u)(t)}if(e.startsWith("rgb")||e.startsWith("hsl")||e.startsWith("hsv")||e.startsWith("hwb")){let a=YEt.exec(e);if(!a)return t;let n=Wk(a[1],r),u=Number(a[2]),A=Number(a[3]),p=Number(a[4]);return eB.default[n](u,A,p)(t)}return t}});var NCe=_(rB=>{"use strict";var TCe=rB&&rB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(rB,"__esModule",{value:!0});var KEt=TCe(CCe()),K6=TCe(W6());rB.default=(t,e,r,o)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),n=r.yogaNode.getComputedHeight(),u=r.style.borderColor,A=KEt.default[r.style.borderStyle],p=K6.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,u,"foreground"),h=(K6.default(A.vertical,u,"foreground")+` -`).repeat(n-2),E=K6.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,u,"foreground");o.write(t,e,p,{transformers:[]}),o.write(t,e+1,h,{transformers:[]}),o.write(t+a-1,e+1,h,{transformers:[]}),o.write(t,e+n-1,E,{transformers:[]})}}});var MCe=_(nB=>{"use strict";var Xg=nB&&nB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nB,"__esModule",{value:!0});var VEt=Xg(Jg()),zEt=Xg(k6()),JEt=Xg(dCe()),XEt=Xg(L6()),ZEt=Xg(mCe()),$Et=Xg(O6()),eCt=Xg(NCe()),tCt=(t,e)=>{var r;let o=(r=t.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(o){let a=o.getComputedLeft(),n=o.getComputedTop();e=` -`.repeat(n)+JEt.default(e,a)}return e},LCe=(t,e,r)=>{var o;let{offsetX:a=0,offsetY:n=0,transformers:u=[],skipStaticElements:A}=r;if(A&&t.internal_static)return;let{yogaNode:p}=t;if(p){if(p.getDisplay()===VEt.default.DISPLAY_NONE)return;let h=a+p.getComputedLeft(),E=n+p.getComputedTop(),I=u;if(typeof t.internal_transform=="function"&&(I=[t.internal_transform,...u]),t.nodeName==="ink-text"){let v=$Et.default(t);if(v.length>0){let x=zEt.default(v),C=ZEt.default(p);if(x>C){let R=(o=t.style.textWrap)!==null&&o!==void 0?o:"wrap";v=XEt.default(v,C,R)}v=tCt(t,v),e.write(h,E,v,{transformers:I})}return}if(t.nodeName==="ink-box"&&eCt.default(h,E,t,e),t.nodeName==="ink-root"||t.nodeName==="ink-box")for(let v of t.childNodes)LCe(v,e,{offsetX:h,offsetY:E,transformers:I,skipStaticElements:A})}};nB.default=LCe});var UCe=_((ZKt,OCe)=>{"use strict";OCe.exports=t=>{t=Object.assign({onlyFirst:!1},t);let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t.onlyFirst?void 0:"g")}});var HCe=_(($Kt,V6)=>{"use strict";var rCt=UCe(),_Ce=t=>typeof t=="string"?t.replace(rCt(),""):t;V6.exports=_Ce;V6.exports.default=_Ce});var GCe=_((eVt,jCe)=>{"use strict";var qCe="[\uD800-\uDBFF][\uDC00-\uDFFF]";jCe.exports=t=>t&&t.exact?new RegExp(`^${qCe}$`):new RegExp(qCe,"g")});var WCe=_((tVt,z6)=>{"use strict";var nCt=HCe(),iCt=GCe(),YCe=t=>nCt(t).replace(iCt()," ").length;z6.exports=YCe;z6.exports.default=YCe});var zCe=_(iB=>{"use strict";var VCe=iB&&iB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(iB,"__esModule",{value:!0});var KCe=VCe(T6()),sCt=VCe(WCe()),J6=class{constructor(e){this.writes=[];let{width:r,height:o}=e;this.width=r,this.height=o}write(e,r,o,a){let{transformers:n}=a;o&&this.writes.push({x:e,y:r,text:o,transformers:n})}get(){let e=[];for(let o=0;o<this.height;o++)e.push(" ".repeat(this.width));for(let o of this.writes){let{x:a,y:n,text:u,transformers:A}=o,p=u.split(` -`),h=0;for(let E of p){let I=e[n+h];if(!I)continue;let v=sCt.default(E);for(let x of A)E=x(E);e[n+h]=KCe.default(I,0,a)+E+KCe.default(I,a+v),h++}}return{output:e.map(o=>o.trimRight()).join(` -`),height:e.length}}};iB.default=J6});var ZCe=_(sB=>{"use strict";var X6=sB&&sB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(sB,"__esModule",{value:!0});var oCt=X6(Jg()),JCe=X6(MCe()),XCe=X6(zCe());sB.default=(t,e)=>{var r;if(t.yogaNode.setWidth(e),t.yogaNode){t.yogaNode.calculateLayout(void 0,void 0,oCt.default.DIRECTION_LTR);let o=new XCe.default({width:t.yogaNode.getComputedWidth(),height:t.yogaNode.getComputedHeight()});JCe.default(t,o,{skipStaticElements:!0});let a;!((r=t.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new XCe.default({width:t.staticNode.yogaNode.getComputedWidth(),height:t.staticNode.yogaNode.getComputedHeight()}),JCe.default(t.staticNode,a,{skipStaticElements:!1}));let{output:n,height:u}=o.get();return{output:n,outputHeight:u,staticOutput:a?`${a.get().output} -`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var rwe=_((iVt,twe)=>{"use strict";var $Ce=ve("stream"),ewe=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],Z6={},aCt=t=>{let e=new $Ce.PassThrough,r=new $Ce.PassThrough;e.write=a=>t("stdout",a),r.write=a=>t("stderr",a);let o=new console.Console(e,r);for(let a of ewe)Z6[a]=console[a],console[a]=o[a];return()=>{for(let a of ewe)console[a]=Z6[a];Z6={}}};twe.exports=aCt});var eq=_($6=>{"use strict";Object.defineProperty($6,"__esModule",{value:!0});$6.default=new WeakMap});var rq=_(tq=>{"use strict";Object.defineProperty(tq,"__esModule",{value:!0});var lCt=an(),nwe=lCt.createContext({exit:()=>{}});nwe.displayName="InternalAppContext";tq.default=nwe});var iq=_(nq=>{"use strict";Object.defineProperty(nq,"__esModule",{value:!0});var cCt=an(),iwe=cCt.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});iwe.displayName="InternalStdinContext";nq.default=iwe});var oq=_(sq=>{"use strict";Object.defineProperty(sq,"__esModule",{value:!0});var uCt=an(),swe=uCt.createContext({stdout:void 0,write:()=>{}});swe.displayName="InternalStdoutContext";sq.default=swe});var lq=_(aq=>{"use strict";Object.defineProperty(aq,"__esModule",{value:!0});var ACt=an(),owe=ACt.createContext({stderr:void 0,write:()=>{}});owe.displayName="InternalStderrContext";aq.default=owe});var Kk=_(cq=>{"use strict";Object.defineProperty(cq,"__esModule",{value:!0});var fCt=an(),awe=fCt.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{}});awe.displayName="InternalFocusContext";cq.default=awe});var cwe=_((AVt,lwe)=>{"use strict";var pCt=/[|\\{}()[\]^$+*?.-]/g;lwe.exports=t=>{if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(pCt,"\\$&")}});var pwe=_((fVt,fwe)=>{"use strict";var hCt=cwe(),gCt=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",Awe=[].concat(ve("module").builtinModules,"bootstrap_node","node").map(t=>new RegExp(`(?:\\((?:node:)?${t}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${t}(?:\\.js)?:\\d+:\\d+$)`));Awe.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var uq=class t{constructor(e){e={ignoredPackages:[],...e},"internals"in e||(e.internals=t.nodeInternals()),"cwd"in e||(e.cwd=gCt),this._cwd=e.cwd.replace(/\\/g,"/"),this._internals=[].concat(e.internals,dCt(e.ignoredPackages)),this._wrapCallSite=e.wrapCallSite||!1}static nodeInternals(){return[...Awe]}clean(e,r=0){r=" ".repeat(r),Array.isArray(e)||(e=e.split(` -`)),!/^\s*at /.test(e[0])&&/^\s*at /.test(e[1])&&(e=e.slice(1));let o=!1,a=null,n=[];return e.forEach(u=>{if(u=u.replace(/\\/g,"/"),this._internals.some(p=>p.test(u)))return;let A=/^\s*at /.test(u);o?u=u.trimEnd().replace(/^(\s+)at /,"$1"):(u=u.trim(),A&&(u=u.slice(3))),u=u.replace(`${this._cwd}/`,""),u&&(A?(a&&(n.push(a),a=null),n.push(u)):(o=!0,a=u))}),n.map(u=>`${r}${u} -`).join("")}captureString(e,r=this.captureString){typeof e=="function"&&(r=e,e=1/0);let{stackTraceLimit:o}=Error;e&&(Error.stackTraceLimit=e);let a={};Error.captureStackTrace(a,r);let{stack:n}=a;return Error.stackTraceLimit=o,this.clean(n)}capture(e,r=this.capture){typeof e=="function"&&(r=e,e=1/0);let{prepareStackTrace:o,stackTraceLimit:a}=Error;Error.prepareStackTrace=(A,p)=>this._wrapCallSite?p.map(this._wrapCallSite):p,e&&(Error.stackTraceLimit=e);let n={};Error.captureStackTrace(n,r);let{stack:u}=n;return Object.assign(Error,{prepareStackTrace:o,stackTraceLimit:a}),u}at(e=this.at){let[r]=this.capture(1,e);if(!r)return{};let o={line:r.getLineNumber(),column:r.getColumnNumber()};uwe(o,r.getFileName(),this._cwd),r.isConstructor()&&(o.constructor=!0),r.isEval()&&(o.evalOrigin=r.getEvalOrigin()),r.isNative()&&(o.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(o.type=a);let n=r.getFunctionName();n&&(o.function=n);let u=r.getMethodName();return u&&n!==u&&(o.method=u),o}parseLine(e){let r=e&&e.match(mCt);if(!r)return null;let o=r[1]==="new",a=r[2],n=r[3],u=r[4],A=Number(r[5]),p=Number(r[6]),h=r[7],E=r[8],I=r[9],v=r[10]==="native",x=r[11]===")",C,R={};if(E&&(R.line=Number(E)),I&&(R.column=Number(I)),x&&h){let L=0;for(let U=h.length-1;U>0;U--)if(h.charAt(U)===")")L++;else if(h.charAt(U)==="("&&h.charAt(U-1)===" "&&(L--,L===-1&&h.charAt(U-1)===" ")){let z=h.slice(0,U-1);h=h.slice(U+1),a+=` (${z}`;break}}if(a){let L=a.match(yCt);L&&(a=L[1],C=L[2])}return uwe(R,h,this._cwd),o&&(R.constructor=!0),n&&(R.evalOrigin=n,R.evalLine=A,R.evalColumn=p,R.evalFile=u&&u.replace(/\\/g,"/")),v&&(R.native=!0),a&&(R.function=a),C&&a!==C&&(R.method=C),R}};function uwe(t,e,r){e&&(e=e.replace(/\\/g,"/"),e.startsWith(`${r}/`)&&(e=e.slice(r.length+1)),t.file=e)}function dCt(t){if(t.length===0)return[];let e=t.map(r=>hCt(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${e.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var mCt=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),yCt=/^(.*?) \[as (.*?)\]$/;fwe.exports=uq});var gwe=_((pVt,hwe)=>{"use strict";hwe.exports=(t,e)=>t.replace(/^\t+/gm,r=>" ".repeat(r.length*(e||2)))});var mwe=_((hVt,dwe)=>{"use strict";var ECt=gwe(),CCt=(t,e)=>{let r=[],o=t-e,a=t+e;for(let n=o;n<=a;n++)r.push(n);return r};dwe.exports=(t,e,r)=>{if(typeof t!="string")throw new TypeError("Source code is missing.");if(!e||e<1)throw new TypeError("Line number must start from `1`.");if(t=ECt(t).split(/\r?\n/),!(e>t.length))return r={around:3,...r},CCt(e,r.around).filter(o=>t[o-1]!==void 0).map(o=>({line:o,value:t[o-1]}))}});var Vk=_(iu=>{"use strict";var wCt=iu&&iu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),ICt=iu&&iu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),BCt=iu&&iu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&wCt(e,t,r);return ICt(e,t),e},vCt=iu&&iu.__rest||function(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,o=Object.getOwnPropertySymbols(t);a<o.length;a++)e.indexOf(o[a])<0&&Object.prototype.propertyIsEnumerable.call(t,o[a])&&(r[o[a]]=t[o[a]]);return r};Object.defineProperty(iu,"__esModule",{value:!0});var ywe=BCt(an()),Aq=ywe.forwardRef((t,e)=>{var{children:r}=t,o=vCt(t,["children"]);let a=Object.assign(Object.assign({},o),{marginLeft:o.marginLeft||o.marginX||o.margin||0,marginRight:o.marginRight||o.marginX||o.margin||0,marginTop:o.marginTop||o.marginY||o.margin||0,marginBottom:o.marginBottom||o.marginY||o.margin||0,paddingLeft:o.paddingLeft||o.paddingX||o.padding||0,paddingRight:o.paddingRight||o.paddingX||o.padding||0,paddingTop:o.paddingTop||o.paddingY||o.padding||0,paddingBottom:o.paddingBottom||o.paddingY||o.padding||0});return ywe.default.createElement("ink-box",{ref:e,style:a},r)});Aq.displayName="Box";Aq.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};iu.default=Aq});var hq=_(oB=>{"use strict";var fq=oB&&oB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(oB,"__esModule",{value:!0});var DCt=fq(an()),iC=fq(Yk()),Ewe=fq(W6()),pq=({color:t,backgroundColor:e,dimColor:r,bold:o,italic:a,underline:n,strikethrough:u,inverse:A,wrap:p,children:h})=>{if(h==null)return null;let E=I=>(r&&(I=iC.default.dim(I)),t&&(I=Ewe.default(I,t,"foreground")),e&&(I=Ewe.default(I,e,"background")),o&&(I=iC.default.bold(I)),a&&(I=iC.default.italic(I)),n&&(I=iC.default.underline(I)),u&&(I=iC.default.strikethrough(I)),A&&(I=iC.default.inverse(I)),I);return DCt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:p},internal_transform:E},h)};pq.displayName="Text";pq.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};oB.default=pq});var Bwe=_(su=>{"use strict";var PCt=su&&su.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),SCt=su&&su.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),bCt=su&&su.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&PCt(e,t,r);return SCt(e,t),e},aB=su&&su.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(su,"__esModule",{value:!0});var Cwe=bCt(ve("fs")),hs=aB(an()),wwe=aB(pwe()),xCt=aB(mwe()),Vf=aB(Vk()),hA=aB(hq()),Iwe=new wwe.default({cwd:process.cwd(),internals:wwe.default.nodeInternals()}),kCt=({error:t})=>{let e=t.stack?t.stack.split(` -`).slice(1):void 0,r=e?Iwe.parseLine(e[0]):void 0,o,a=0;if(r?.file&&r?.line&&Cwe.existsSync(r.file)){let n=Cwe.readFileSync(r.file,"utf8");if(o=xCt.default(n,r.line),o)for(let{line:u}of o)a=Math.max(a,String(u).length)}return hs.default.createElement(Vf.default,{flexDirection:"column",padding:1},hs.default.createElement(Vf.default,null,hs.default.createElement(hA.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),hs.default.createElement(hA.default,null," ",t.message)),r&&hs.default.createElement(Vf.default,{marginTop:1},hs.default.createElement(hA.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&o&&hs.default.createElement(Vf.default,{marginTop:1,flexDirection:"column"},o.map(({line:n,value:u})=>hs.default.createElement(Vf.default,{key:n},hs.default.createElement(Vf.default,{width:a+1},hs.default.createElement(hA.default,{dimColor:n!==r.line,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0},String(n).padStart(a," "),":")),hs.default.createElement(hA.default,{key:n,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0}," "+u)))),t.stack&&hs.default.createElement(Vf.default,{marginTop:1,flexDirection:"column"},t.stack.split(` -`).slice(1).map(n=>{let u=Iwe.parseLine(n);return u?hs.default.createElement(Vf.default,{key:n},hs.default.createElement(hA.default,{dimColor:!0},"- "),hs.default.createElement(hA.default,{dimColor:!0,bold:!0},u.function),hs.default.createElement(hA.default,{dimColor:!0,color:"gray"}," ","(",u.file,":",u.line,":",u.column,")")):hs.default.createElement(Vf.default,{key:n},hs.default.createElement(hA.default,{dimColor:!0},"- "),hs.default.createElement(hA.default,{dimColor:!0,bold:!0},n))})))};su.default=kCt});var Dwe=_(ou=>{"use strict";var QCt=ou&&ou.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),FCt=ou&&ou.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),RCt=ou&&ou.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&QCt(e,t,r);return FCt(e,t),e},$g=ou&&ou.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ou,"__esModule",{value:!0});var Zg=RCt(an()),vwe=$g(u6()),TCt=$g(rq()),NCt=$g(iq()),LCt=$g(oq()),MCt=$g(lq()),OCt=$g(Kk()),UCt=$g(Bwe()),_Ct=" ",HCt="\x1B[Z",qCt="\x1B",zk=class extends Zg.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=e=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. -Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. -Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),e){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=e=>{e===""&&this.props.exitOnCtrlC&&this.handleExit(),e===qCt&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(e===_Ct&&this.focusNext(),e===HCt&&this.focusPrevious())},this.handleExit=e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focusNext=()=>{this.setState(e=>{let r=e.focusables[0].id;return{activeFocusId:this.findNextFocusable(e)||r}})},this.focusPrevious=()=>{this.setState(e=>{let r=e.focusables[e.focusables.length-1].id;return{activeFocusId:this.findPreviousFocusable(e)||r}})},this.addFocusable=(e,{autoFocus:r})=>{this.setState(o=>{let a=o.activeFocusId;return!a&&r&&(a=e),{activeFocusId:a,focusables:[...o.focusables,{id:e,isActive:!0}]}})},this.removeFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.filter(o=>o.id!==e)}))},this.activateFocusable=e=>{this.setState(r=>({focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!0})}))},this.deactivateFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!1})}))},this.findNextFocusable=e=>{let r=e.focusables.findIndex(o=>o.id===e.activeFocusId);for(let o=r+1;o<e.focusables.length;o++)if(e.focusables[o].isActive)return e.focusables[o].id},this.findPreviousFocusable=e=>{let r=e.focusables.findIndex(o=>o.id===e.activeFocusId);for(let o=r-1;o>=0;o--)if(e.focusables[o].isActive)return e.focusables[o].id}}static getDerivedStateFromError(e){return{error:e}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return Zg.default.createElement(TCt.default.Provider,{value:{exit:this.handleExit}},Zg.default.createElement(NCt.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},Zg.default.createElement(LCt.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},Zg.default.createElement(MCt.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},Zg.default.createElement(OCt.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious}},this.state.error?Zg.default.createElement(UCt.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){vwe.default.hide(this.props.stdout)}componentWillUnmount(){vwe.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}};ou.default=zk;zk.displayName="InternalApp"});var bwe=_(au=>{"use strict";var jCt=au&&au.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),GCt=au&&au.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),YCt=au&&au.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&jCt(e,t,r);return GCt(e,t),e},lu=au&&au.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(au,"__esModule",{value:!0});var WCt=lu(an()),Pwe=eO(),KCt=lu(pEe()),VCt=lu(s6()),zCt=lu(EEe()),JCt=lu(wEe()),gq=lu(hCe()),XCt=lu(ZCe()),ZCt=lu(c6()),$Ct=lu(rwe()),ewt=YCt(U6()),twt=lu(eq()),rwt=lu(Dwe()),sC=process.env.CI==="false"?!1:zCt.default,Swe=()=>{},dq=class{constructor(e){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:o,staticOutput:a}=XCt.default(this.rootNode,this.options.stdout.columns||80),n=a&&a!==` -`;if(this.options.debug){n&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(sC){n&&this.options.stdout.write(a),this.lastOutput=r;return}if(n&&(this.fullStaticOutput+=a),o>=this.options.stdout.rows){this.options.stdout.write(VCt.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}n&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!n&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},JCt.default(this),this.options=e,this.rootNode=ewt.createNode("ink-root"),this.rootNode.onRender=e.debug?this.onRender:Pwe(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=KCt.default.create(e.stdout),this.throttledLog=e.debug?this.log:Pwe(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=gq.default.createContainer(this.rootNode,!1,!1),this.unsubscribeExit=ZCt.default(this.unmount,{alwaysLast:!1}),e.patchConsole&&this.patchConsole(),sC||(e.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{e.stdout.off("resize",this.onRender)})}render(e){let r=WCt.default.createElement(rwt.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);gq.default.updateContainer(r,this.container,null,Swe)}writeToStdout(e){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(e+this.fullStaticOutput+this.lastOutput);return}if(sC){this.options.stdout.write(e);return}this.log.clear(),this.options.stdout.write(e),this.log(this.lastOutput)}}writeToStderr(e){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(e),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(sC){this.options.stderr.write(e);return}this.log.clear(),this.options.stderr.write(e),this.log(this.lastOutput)}}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),sC?this.options.stdout.write(this.lastOutput+` -`):this.options.debug||this.log.done(),this.isUnmounted=!0,gq.default.updateContainer(null,this.container,null,Swe),twt.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((e,r)=>{this.resolveExitPromise=e,this.rejectExitPromise=r})),this.exitPromise}clear(){!sC&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=$Ct.default((e,r)=>{e==="stdout"&&this.writeToStdout(r),e==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};au.default=dq});var kwe=_(lB=>{"use strict";var xwe=lB&&lB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lB,"__esModule",{value:!0});var nwt=xwe(bwe()),Jk=xwe(eq()),iwt=ve("stream"),swt=(t,e)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},owt(e)),o=awt(r.stdout,()=>new nwt.default(r));return o.render(t),{rerender:o.render,unmount:()=>o.unmount(),waitUntilExit:o.waitUntilExit,cleanup:()=>Jk.default.delete(r.stdout),clear:o.clear}};lB.default=swt;var owt=(t={})=>t instanceof iwt.Stream?{stdout:t,stdin:process.stdin}:t,awt=(t,e)=>{let r;return Jk.default.has(t)?r=Jk.default.get(t):(r=e(),Jk.default.set(t,r)),r}});var Fwe=_(zf=>{"use strict";var lwt=zf&&zf.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),cwt=zf&&zf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),uwt=zf&&zf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&lwt(e,t,r);return cwt(e,t),e};Object.defineProperty(zf,"__esModule",{value:!0});var cB=uwt(an()),Qwe=t=>{let{items:e,children:r,style:o}=t,[a,n]=cB.useState(0),u=cB.useMemo(()=>e.slice(a),[e,a]);cB.useLayoutEffect(()=>{n(e.length)},[e.length]);let A=u.map((h,E)=>r(h,a+E)),p=cB.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},o),[o]);return cB.default.createElement("ink-box",{internal_static:!0,style:p},A)};Qwe.displayName="Static";zf.default=Qwe});var Twe=_(uB=>{"use strict";var Awt=uB&&uB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uB,"__esModule",{value:!0});var fwt=Awt(an()),Rwe=({children:t,transform:e})=>t==null?null:fwt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:e},t);Rwe.displayName="Transform";uB.default=Rwe});var Lwe=_(AB=>{"use strict";var pwt=AB&&AB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(AB,"__esModule",{value:!0});var hwt=pwt(an()),Nwe=({count:t=1})=>hwt.default.createElement("ink-text",null,` -`.repeat(t));Nwe.displayName="Newline";AB.default=Nwe});var Uwe=_(fB=>{"use strict";var Mwe=fB&&fB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fB,"__esModule",{value:!0});var gwt=Mwe(an()),dwt=Mwe(Vk()),Owe=()=>gwt.default.createElement(dwt.default,{flexGrow:1});Owe.displayName="Spacer";fB.default=Owe});var Xk=_(pB=>{"use strict";var mwt=pB&&pB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pB,"__esModule",{value:!0});var ywt=an(),Ewt=mwt(iq()),Cwt=()=>ywt.useContext(Ewt.default);pB.default=Cwt});var Hwe=_(hB=>{"use strict";var wwt=hB&&hB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(hB,"__esModule",{value:!0});var _we=an(),Iwt=wwt(Xk()),Bwt=(t,e={})=>{let{stdin:r,setRawMode:o,internal_exitOnCtrlC:a}=Iwt.default();_we.useEffect(()=>{if(e.isActive!==!1)return o(!0),()=>{o(!1)}},[e.isActive,o]),_we.useEffect(()=>{if(e.isActive===!1)return;let n=u=>{let A=String(u),p={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!p.return&&(A=String.fromCharCode(A.charCodeAt(0)+97-1),p.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),p.meta=!0);let h=A>="A"&&A<="Z",E=A>="\u0410"&&A<="\u042F";A.length===1&&(h||E)&&(p.shift=!0),p.tab&&A==="[Z"&&(p.shift=!0),(p.tab||p.backspace||p.delete)&&(A=""),(!(A==="c"&&p.ctrl)||!a)&&t(A,p)};return r?.on("data",n),()=>{r?.off("data",n)}},[e.isActive,r,a,t])};hB.default=Bwt});var qwe=_(gB=>{"use strict";var vwt=gB&&gB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(gB,"__esModule",{value:!0});var Dwt=an(),Pwt=vwt(rq()),Swt=()=>Dwt.useContext(Pwt.default);gB.default=Swt});var jwe=_(dB=>{"use strict";var bwt=dB&&dB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(dB,"__esModule",{value:!0});var xwt=an(),kwt=bwt(oq()),Qwt=()=>xwt.useContext(kwt.default);dB.default=Qwt});var Gwe=_(mB=>{"use strict";var Fwt=mB&&mB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(mB,"__esModule",{value:!0});var Rwt=an(),Twt=Fwt(lq()),Nwt=()=>Rwt.useContext(Twt.default);mB.default=Nwt});var Wwe=_(EB=>{"use strict";var Ywe=EB&&EB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(EB,"__esModule",{value:!0});var yB=an(),Lwt=Ywe(Kk()),Mwt=Ywe(Xk()),Owt=({isActive:t=!0,autoFocus:e=!1}={})=>{let{isRawModeSupported:r,setRawMode:o}=Mwt.default(),{activeId:a,add:n,remove:u,activate:A,deactivate:p}=yB.useContext(Lwt.default),h=yB.useMemo(()=>Math.random().toString().slice(2,7),[]);return yB.useEffect(()=>(n(h,{autoFocus:e}),()=>{u(h)}),[h,e]),yB.useEffect(()=>{t?A(h):p(h)},[t,h]),yB.useEffect(()=>{if(!(!r||!t))return o(!0),()=>{o(!1)}},[t]),{isFocused:!!h&&a===h}};EB.default=Owt});var Kwe=_(CB=>{"use strict";var Uwt=CB&&CB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(CB,"__esModule",{value:!0});var _wt=an(),Hwt=Uwt(Kk()),qwt=()=>{let t=_wt.useContext(Hwt.default);return{enableFocus:t.enableFocus,disableFocus:t.disableFocus,focusNext:t.focusNext,focusPrevious:t.focusPrevious}};CB.default=qwt});var Vwe=_(mq=>{"use strict";Object.defineProperty(mq,"__esModule",{value:!0});mq.default=t=>{var e,r,o,a;return{width:(r=(e=t.yogaNode)===null||e===void 0?void 0:e.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(o=t.yogaNode)===null||o===void 0?void 0:o.getComputedHeight())!==null&&a!==void 0?a:0}}});var ic=_(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});var jwt=kwe();Object.defineProperty(ro,"render",{enumerable:!0,get:function(){return jwt.default}});var Gwt=Vk();Object.defineProperty(ro,"Box",{enumerable:!0,get:function(){return Gwt.default}});var Ywt=hq();Object.defineProperty(ro,"Text",{enumerable:!0,get:function(){return Ywt.default}});var Wwt=Fwe();Object.defineProperty(ro,"Static",{enumerable:!0,get:function(){return Wwt.default}});var Kwt=Twe();Object.defineProperty(ro,"Transform",{enumerable:!0,get:function(){return Kwt.default}});var Vwt=Lwe();Object.defineProperty(ro,"Newline",{enumerable:!0,get:function(){return Vwt.default}});var zwt=Uwe();Object.defineProperty(ro,"Spacer",{enumerable:!0,get:function(){return zwt.default}});var Jwt=Hwe();Object.defineProperty(ro,"useInput",{enumerable:!0,get:function(){return Jwt.default}});var Xwt=qwe();Object.defineProperty(ro,"useApp",{enumerable:!0,get:function(){return Xwt.default}});var Zwt=Xk();Object.defineProperty(ro,"useStdin",{enumerable:!0,get:function(){return Zwt.default}});var $wt=jwe();Object.defineProperty(ro,"useStdout",{enumerable:!0,get:function(){return $wt.default}});var eIt=Gwe();Object.defineProperty(ro,"useStderr",{enumerable:!0,get:function(){return eIt.default}});var tIt=Wwe();Object.defineProperty(ro,"useFocus",{enumerable:!0,get:function(){return tIt.default}});var rIt=Kwe();Object.defineProperty(ro,"useFocusManager",{enumerable:!0,get:function(){return rIt.default}});var nIt=Vwe();Object.defineProperty(ro,"measureElement",{enumerable:!0,get:function(){return nIt.default}})});var Eq={};Vt(Eq,{Gem:()=>yq});var zwe,ed,yq,Zk=Et(()=>{zwe=Ze(ic()),ed=Ze(an()),yq=(0,ed.memo)(({active:t})=>{let e=(0,ed.useMemo)(()=>t?"\u25C9":"\u25EF",[t]),r=(0,ed.useMemo)(()=>t?"green":"yellow",[t]);return ed.default.createElement(zwe.Text,{color:r},e)})});var Xwe={};Vt(Xwe,{useKeypress:()=>td});function td({active:t},e,r){let{stdin:o}=(0,Jwe.useStdin)(),a=(0,$k.useCallback)((n,u)=>e(n,u),r);(0,$k.useEffect)(()=>{if(!(!t||!o))return o.on("keypress",a),()=>{o.off("keypress",a)}},[t,a,o])}var Jwe,$k,wB=Et(()=>{Jwe=Ze(ic()),$k=Ze(an())});var $we={};Vt($we,{FocusRequest:()=>Zwe,useFocusRequest:()=>Cq});var Zwe,Cq,wq=Et(()=>{wB();Zwe=(r=>(r.BEFORE="before",r.AFTER="after",r))(Zwe||{}),Cq=function({active:t},e,r){td({active:t},(o,a)=>{a.name==="tab"&&(a.shift?e("before"):e("after"))},r)}});var eIe={};Vt(eIe,{useListInput:()=>IB});var IB,eQ=Et(()=>{wB();IB=function(t,e,{active:r,minus:o,plus:a,set:n,loop:u=!0}){td({active:r},(A,p)=>{let h=e.indexOf(t);switch(p.name){case o:{let E=h-1;if(u){n(e[(e.length+E)%e.length]);return}if(E<0)return;n(e[E])}break;case a:{let E=h+1;if(u){n(e[E%e.length]);return}if(E>=e.length)return;n(e[E])}break}},[e,t,a,n,u])}});var tQ={};Vt(tQ,{ScrollableItems:()=>iIt});var Lh,Oa,iIt,rQ=Et(()=>{Lh=Ze(ic()),Oa=Ze(an());wq();eQ();iIt=({active:t=!0,children:e=[],radius:r=10,size:o=1,loop:a=!0,onFocusRequest:n,willReachEnd:u})=>{let A=L=>{if(L.key===null)throw new Error("Expected all children to have a key");return L.key},p=Oa.default.Children.map(e,L=>A(L)),h=p[0],[E,I]=(0,Oa.useState)(h),v=p.indexOf(E);(0,Oa.useEffect)(()=>{p.includes(E)||I(h)},[e]),(0,Oa.useEffect)(()=>{u&&v>=p.length-2&&u()},[v]),Cq({active:t&&!!n},L=>{n?.(L)},[n]),IB(E,p,{active:t,minus:"up",plus:"down",set:I,loop:a});let x=v-r,C=v+r;C>p.length&&(x-=C-p.length,C=p.length),x<0&&(C+=-x,x=0),C>=p.length&&(C=p.length-1);let R=[];for(let L=x;L<=C;++L){let U=p[L],z=t&&U===E;R.push(Oa.default.createElement(Lh.Box,{key:U,height:o},Oa.default.createElement(Lh.Box,{marginLeft:1,marginRight:1},Oa.default.createElement(Lh.Text,null,z?Oa.default.createElement(Lh.Text,{color:"cyan",bold:!0},">"):" ")),Oa.default.createElement(Lh.Box,null,Oa.default.cloneElement(e[L],{active:z}))))}return Oa.default.createElement(Lh.Box,{flexDirection:"column",width:"100%"},R)}});var tIe,Jf,rIe,Iq,nIe,Bq=Et(()=>{tIe=Ze(ic()),Jf=Ze(an()),rIe=ve("readline"),Iq=Jf.default.createContext(null),nIe=({children:t})=>{let{stdin:e,setRawMode:r}=(0,tIe.useStdin)();(0,Jf.useEffect)(()=>{r&&r(!0),e&&(0,rIe.emitKeypressEvents)(e)},[e,r]);let[o,a]=(0,Jf.useState)(new Map),n=(0,Jf.useMemo)(()=>({getAll:()=>o,get:u=>o.get(u),set:(u,A)=>a(new Map([...o,[u,A]]))}),[o,a]);return Jf.default.createElement(Iq.Provider,{value:n,children:t})}});var vq={};Vt(vq,{useMinistore:()=>sIt});function sIt(t,e){let r=(0,nQ.useContext)(Iq);if(r===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof t>"u")return r.getAll();let o=(0,nQ.useCallback)(n=>{r.set(t,n)},[t,r.set]),a=r.get(t);return typeof a>"u"&&(a=e),[a,o]}var nQ,Dq=Et(()=>{nQ=Ze(an());Bq()});var sQ={};Vt(sQ,{renderForm:()=>oIt});async function oIt(t,e,{stdin:r,stdout:o,stderr:a}){let n,u=p=>{let{exit:h}=(0,iQ.useApp)();td({active:!0},(E,I)=>{I.name==="return"&&(n=p,h())},[h,p])},{waitUntilExit:A}=(0,iQ.render)(Pq.default.createElement(nIe,null,Pq.default.createElement(t,{...e,useSubmit:u})),{stdin:r,stdout:o,stderr:a});return await A(),n}var iQ,Pq,oQ=Et(()=>{iQ=Ze(ic()),Pq=Ze(an());Bq();wB()});var aIe=_(BB=>{"use strict";Object.defineProperty(BB,"__esModule",{value:!0});BB.UncontrolledTextInput=void 0;var sIe=an(),Sq=an(),iIe=ic(),rd=Yk(),oIe=({value:t,placeholder:e="",focus:r=!0,mask:o,highlightPastedText:a=!1,showCursor:n=!0,onChange:u,onSubmit:A})=>{let[{cursorOffset:p,cursorWidth:h},E]=Sq.useState({cursorOffset:(t||"").length,cursorWidth:0});Sq.useEffect(()=>{E(R=>{if(!r||!n)return R;let L=t||"";return R.cursorOffset>L.length-1?{cursorOffset:L.length,cursorWidth:0}:R})},[t,r,n]);let I=a?h:0,v=o?o.repeat(t.length):t,x=v,C=e?rd.grey(e):void 0;if(n&&r){C=e.length>0?rd.inverse(e[0])+rd.grey(e.slice(1)):rd.inverse(" "),x=v.length>0?"":rd.inverse(" ");let R=0;for(let L of v)R>=p-I&&R<=p?x+=rd.inverse(L):x+=L,R++;v.length>0&&p===v.length&&(x+=rd.inverse(" "))}return iIe.useInput((R,L)=>{if(L.upArrow||L.downArrow||L.ctrl&&R==="c"||L.tab||L.shift&&L.tab)return;if(L.return){A&&A(t);return}let U=p,z=t,te=0;L.leftArrow?n&&U--:L.rightArrow?n&&U++:L.backspace||L.delete?p>0&&(z=t.slice(0,p-1)+t.slice(p,t.length),U--):(z=t.slice(0,p)+R+t.slice(p,t.length),U+=R.length,R.length>1&&(te=R.length)),p<0&&(U=0),p>t.length&&(U=t.length),E({cursorOffset:U,cursorWidth:te}),z!==t&&u(z)},{isActive:r}),sIe.createElement(iIe.Text,null,e?v.length>0?x:C:x)};BB.default=oIe;BB.UncontrolledTextInput=t=>{let[e,r]=Sq.useState("");return sIe.createElement(oIe,Object.assign({},t,{value:e,onChange:r}))}});var uIe={};Vt(uIe,{Pad:()=>bq});var lIe,cIe,bq,xq=Et(()=>{lIe=Ze(ic()),cIe=Ze(an()),bq=({length:t,active:e})=>{if(t===0)return null;let r=t>1?` ${"-".repeat(t-1)}`:" ";return cIe.default.createElement(lIe.Text,{dimColor:!e},r)}});var AIe={};Vt(AIe,{ItemOptions:()=>aIt});var DB,Mh,aIt,fIe=Et(()=>{DB=Ze(ic()),Mh=Ze(an());eQ();Zk();xq();aIt=function({active:t,skewer:e,options:r,value:o,onChange:a,sizes:n=[]}){let u=r.filter(({label:p})=>!!p).map(({value:p})=>p),A=r.findIndex(p=>p.value===o&&p.label!="");return IB(o,u,{active:t,minus:"left",plus:"right",set:a}),Mh.default.createElement(Mh.default.Fragment,null,r.map(({label:p},h)=>{let E=h===A,I=n[h]-1||0,v=p.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),x=Math.max(0,I-v.length-2);return p?Mh.default.createElement(DB.Box,{key:p,width:I,marginLeft:1},Mh.default.createElement(DB.Text,{wrap:"truncate"},Mh.default.createElement(yq,{active:E})," ",p),e?Mh.default.createElement(bq,{active:t,length:x}):null):Mh.default.createElement(DB.Box,{key:`spacer-${h}`,width:I,marginLeft:1})}))}});var SIe=_((rJt,PIe)=>{var Oq;PIe.exports=()=>(typeof Oq>"u"&&(Oq=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),Oq)});var VIe=_((SJt,KIe)=>{var Kq=Symbol("arg flag"),sc=class t extends Error{constructor(e,r){super(e),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,t.prototype)}};function HB(t,{argv:e=process.argv.slice(2),permissive:r=!1,stopAtPositional:o=!1}={}){if(!t)throw new sc("argument specification object is required","ARG_CONFIG_NO_SPEC");let a={_:[]},n={},u={};for(let A of Object.keys(t)){if(!A)throw new sc("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(A[0]!=="-")throw new sc(`argument key must start with '-' but found: '${A}'`,"ARG_CONFIG_NONOPT_KEY");if(A.length===1)throw new sc(`argument key must have a name; singular '-' keys are not allowed: ${A}`,"ARG_CONFIG_NONAME_KEY");if(typeof t[A]=="string"){n[A]=t[A];continue}let p=t[A],h=!1;if(Array.isArray(p)&&p.length===1&&typeof p[0]=="function"){let[E]=p;p=(I,v,x=[])=>(x.push(E(I,v,x[x.length-1])),x),h=E===Boolean||E[Kq]===!0}else if(typeof p=="function")h=p===Boolean||p[Kq]===!0;else throw new sc(`type missing or not a function or valid array type: ${A}`,"ARG_CONFIG_VAD_TYPE");if(A[1]!=="-"&&A.length>2)throw new sc(`short argument keys (with a single hyphen) must have only one character: ${A}`,"ARG_CONFIG_SHORTOPT_TOOLONG");u[A]=[p,h]}for(let A=0,p=e.length;A<p;A++){let h=e[A];if(o&&a._.length>0){a._=a._.concat(e.slice(A));break}if(h==="--"){a._=a._.concat(e.slice(A+1));break}if(h.length>1&&h[0]==="-"){let E=h[1]==="-"||h.length===2?[h]:h.slice(1).split("").map(I=>`-${I}`);for(let I=0;I<E.length;I++){let v=E[I],[x,C]=v[1]==="-"?v.split(/=(.*)/,2):[v,void 0],R=x;for(;R in n;)R=n[R];if(!(R in u))if(r){a._.push(v);continue}else throw new sc(`unknown or unexpected option: ${x}`,"ARG_UNKNOWN_OPTION");let[L,U]=u[R];if(!U&&I+1<E.length)throw new sc(`option requires argument (but was followed by another short argument): ${x}`,"ARG_MISSING_REQUIRED_SHORTARG");if(U)a[R]=L(!0,R,a[R]);else if(C===void 0){if(e.length<A+2||e[A+1].length>1&&e[A+1][0]==="-"&&!(e[A+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(L===Number||typeof BigInt<"u"&&L===BigInt))){let z=x===R?"":` (alias for ${R})`;throw new sc(`option requires argument: ${x}${z}`,"ARG_MISSING_REQUIRED_LONGARG")}a[R]=L(e[A+1],R,a[R]),++A}else a[R]=L(C,R,a[R])}}else a._.push(h)}return a}HB.flag=t=>(t[Kq]=!0,t);HB.COUNT=HB.flag((t,e,r)=>(r||0)+1);HB.ArgError=sc;KIe.exports=HB});var r1e=_((nXt,t1e)=>{var Xq;t1e.exports=()=>(typeof Xq>"u"&&(Xq=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),Xq)});var a1e=_((nj,ij)=>{(function(t){nj&&typeof nj=="object"&&typeof ij<"u"?ij.exports=t():typeof define=="function"&&define.amd?define([],t):typeof window<"u"?window.isWindows=t():typeof global<"u"?global.isWindows=t():typeof self<"u"?self.isWindows=t():this.isWindows=t()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var A1e=_((tZt,u1e)=>{"use strict";sj.ifExists=i1t;var uC=ve("util"),oc=ve("path"),l1e=a1e(),t1t=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,r1t={createPwshFile:!0,createCmdFile:l1e(),fs:ve("fs")},n1t=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function c1e(t){let e={...r1t,...t},r=e.fs;return e.fs_={chmod:r.chmod?uC.promisify(r.chmod):async()=>{},mkdir:uC.promisify(r.mkdir),readFile:uC.promisify(r.readFile),stat:uC.promisify(r.stat),unlink:uC.promisify(r.unlink),writeFile:uC.promisify(r.writeFile)},e}async function sj(t,e,r){let o=c1e(r);await o.fs_.stat(t),await o1t(t,e,o)}function i1t(t,e,r){return sj(t,e,r).catch(()=>{})}function s1t(t,e){return e.fs_.unlink(t).catch(()=>{})}async function o1t(t,e,r){let o=await A1t(t,r);return await a1t(e,r),l1t(t,e,o,r)}function a1t(t,e){return e.fs_.mkdir(oc.dirname(t),{recursive:!0})}function l1t(t,e,r,o){let a=c1e(o),n=[{generator:h1t,extension:""}];return a.createCmdFile&&n.push({generator:p1t,extension:".cmd"}),a.createPwshFile&&n.push({generator:g1t,extension:".ps1"}),Promise.all(n.map(u=>f1t(t,e+u.extension,r,u.generator,a)))}function c1t(t,e){return s1t(t,e)}function u1t(t,e){return d1t(t,e)}async function A1t(t,e){let a=(await e.fs_.readFile(t,"utf8")).trim().split(/\r*\n/)[0].match(t1t);if(!a){let n=oc.extname(t).toLowerCase();return{program:n1t.get(n)||null,additionalArgs:""}}return{program:a[1],additionalArgs:a[2]}}async function f1t(t,e,r,o,a){let n=a.preserveSymlinks?"--preserve-symlinks":"",u=[r.additionalArgs,n].filter(A=>A).join(" ");return a=Object.assign({},a,{prog:r.program,args:u}),await c1t(e,a),await a.fs_.writeFile(e,o(t,e,a),"utf8"),u1t(e,a)}function p1t(t,e,r){let a=oc.relative(oc.dirname(e),t).split("/").join("\\"),n=oc.isAbsolute(a)?`"${a}"`:`"%~dp0\\${a}"`,u,A=r.prog,p=r.args||"",h=oj(r.nodePath).win32;A?(u=`"%~dp0\\${A}.exe"`,a=n):(A=n,p="",a="");let E=r.progArgs?`${r.progArgs.join(" ")} `:"",I=h?`@SET NODE_PATH=${h}\r -`:"";return u?I+=`@IF EXIST ${u} (\r - ${u} ${p} ${a} ${E}%*\r -) ELSE (\r - @SETLOCAL\r - @SET PATHEXT=%PATHEXT:;.JS;=;%\r - ${A} ${p} ${a} ${E}%*\r -)\r -`:I+=`@${A} ${p} ${a} ${E}%*\r -`,I}function h1t(t,e,r){let o=oc.relative(oc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n;o=o.split("\\").join("/");let u=oc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,A=r.args||"",p=oj(r.nodePath).posix;a?(n=`"$basedir/${r.prog}"`,o=u):(a=u,A="",o="");let h=r.progArgs?`${r.progArgs.join(" ")} `:"",E=`#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") - -case \`uname\` in - *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; -esac - -`,I=r.nodePath?`export NODE_PATH="${p}" -`:"";return n?E+=`${I}if [ -x ${n} ]; then - exec ${n} ${A} ${o} ${h}"$@" -else - exec ${a} ${A} ${o} ${h}"$@" -fi -`:E+=`${I}${a} ${A} ${o} ${h}"$@" -exit $? -`,E}function g1t(t,e,r){let o=oc.relative(oc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n=a&&`"${a}$exe"`,u;o=o.split("\\").join("/");let A=oc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,p=r.args||"",h=oj(r.nodePath),E=h.win32,I=h.posix;n?(u=`"$basedir/${r.prog}$exe"`,o=A):(n=A,p="",o="");let v=r.progArgs?`${r.progArgs.join(" ")} `:"",x=`#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -${r.nodePath?`$env_node_path=$env:NODE_PATH -$env:NODE_PATH="${E}" -`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -}`;return r.nodePath&&(x+=` else { - $env:NODE_PATH="${I}" -}`),u?x+=` -$ret=0 -if (Test-Path ${u}) { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & ${u} ${p} ${o} ${v}$args - } else { - & ${u} ${p} ${o} ${v}$args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & ${n} ${p} ${o} ${v}$args - } else { - & ${n} ${p} ${o} ${v}$args - } - $ret=$LASTEXITCODE -} -${r.nodePath?`$env:NODE_PATH=$env_node_path -`:""}exit $ret -`:x+=` -# Support pipeline input -if ($MyInvocation.ExpectingInput) { - $input | & ${n} ${p} ${o} ${v}$args -} else { - & ${n} ${p} ${o} ${v}$args -} -${r.nodePath?`$env:NODE_PATH=$env_node_path -`:""}exit $LASTEXITCODE -`,x}function d1t(t,e){return e.fs_.chmod(t,493)}function oj(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(oc.delimiter):Array.from(t),r={};for(let o=0;o<e.length;o++){let a=e[o].split("/").join("\\"),n=l1e()?e[o].split("\\").join("/").replace(/^([^:\\/]*):/,(u,A)=>`/mnt/${A.toLowerCase()}`):e[o];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${n}`:n,r[o]={win32:a,posix:n}}return r}u1e.exports=sj});var Cj=_((I$t,Q1e)=>{Q1e.exports=ve("stream")});var N1e=_((B$t,T1e)=>{"use strict";function F1e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function j1t(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?F1e(Object(r),!0).forEach(function(o){G1t(t,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):F1e(Object(r)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(r,o))})}return t}function G1t(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Y1t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function R1e(t,e){for(var r=0;r<e.length;r++){var o=e[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function W1t(t,e,r){return e&&R1e(t.prototype,e),r&&R1e(t,r),t}var K1t=ve("buffer"),yQ=K1t.Buffer,V1t=ve("util"),wj=V1t.inspect,z1t=wj&&wj.custom||"inspect";function J1t(t,e,r){yQ.prototype.copy.call(t,e,r)}T1e.exports=function(){function t(){Y1t(this,t),this.head=null,this.tail=null,this.length=0}return W1t(t,[{key:"push",value:function(r){var o={data:r,next:null};this.length>0?this.tail.next=o:this.head=o,this.tail=o,++this.length}},{key:"unshift",value:function(r){var o={data:r,next:this.head};this.length===0&&(this.tail=o),this.head=o,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var o=this.head,a=""+o.data;o=o.next;)a+=r+o.data;return a}},{key:"concat",value:function(r){if(this.length===0)return yQ.alloc(0);for(var o=yQ.allocUnsafe(r>>>0),a=this.head,n=0;a;)J1t(a.data,o,n),n+=a.data.length,a=a.next;return o}},{key:"consume",value:function(r,o){var a;return r<this.head.data.length?(a=this.head.data.slice(0,r),this.head.data=this.head.data.slice(r)):r===this.head.data.length?a=this.shift():a=o?this._getString(r):this._getBuffer(r),a}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(r){var o=this.head,a=1,n=o.data;for(r-=n.length;o=o.next;){var u=o.data,A=r>u.length?u.length:r;if(A===u.length?n+=u:n+=u.slice(0,r),r-=A,r===0){A===u.length?(++a,o.next?this.head=o.next:this.head=this.tail=null):(this.head=o,o.data=u.slice(A));break}++a}return this.length-=a,n}},{key:"_getBuffer",value:function(r){var o=yQ.allocUnsafe(r),a=this.head,n=1;for(a.data.copy(o),r-=a.data.length;a=a.next;){var u=a.data,A=r>u.length?u.length:r;if(u.copy(o,o.length-r,0,A),r-=A,r===0){A===u.length?(++n,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=u.slice(A));break}++n}return this.length-=n,o}},{key:z1t,value:function(r,o){return wj(this,j1t({},o,{depth:0,customInspect:!1}))}}]),t}()});var Bj=_((v$t,M1e)=>{"use strict";function X1t(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return o||a?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(Ij,this,t)):process.nextTick(Ij,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(n){!e&&n?r._writableState?r._writableState.errorEmitted?process.nextTick(EQ,r):(r._writableState.errorEmitted=!0,process.nextTick(L1e,r,n)):process.nextTick(L1e,r,n):e?(process.nextTick(EQ,r),e(n)):process.nextTick(EQ,r)}),this)}function L1e(t,e){Ij(t,e),EQ(t)}function EQ(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function Z1t(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Ij(t,e){t.emit("error",e)}function $1t(t,e){var r=t._readableState,o=t._writableState;r&&r.autoDestroy||o&&o.autoDestroy?t.destroy(e):t.emit("error",e)}M1e.exports={destroy:X1t,undestroy:Z1t,errorOrDestroy:$1t}});var Gh=_((D$t,_1e)=>{"use strict";var U1e={};function lc(t,e,r){r||(r=Error);function o(n,u,A){return typeof e=="string"?e:e(n,u,A)}class a extends r{constructor(u,A,p){super(o(u,A,p))}}a.prototype.name=r.name,a.prototype.code=t,U1e[t]=a}function O1e(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(o=>String(o)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function e2t(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function t2t(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function r2t(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}lc("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);lc("ERR_INVALID_ARG_TYPE",function(t,e,r){let o;typeof e=="string"&&e2t(e,"not ")?(o="must not be",e=e.replace(/^not /,"")):o="must be";let a;if(t2t(t," argument"))a=`The ${t} ${o} ${O1e(e,"type")}`;else{let n=r2t(t,".")?"property":"argument";a=`The "${t}" ${n} ${o} ${O1e(e,"type")}`}return a+=`. Received type ${typeof r}`,a},TypeError);lc("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");lc("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});lc("ERR_STREAM_PREMATURE_CLOSE","Premature close");lc("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});lc("ERR_MULTIPLE_CALLBACK","Callback called multiple times");lc("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");lc("ERR_STREAM_WRITE_AFTER_END","write after end");lc("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);lc("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);lc("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");_1e.exports.codes=U1e});var vj=_((P$t,H1e)=>{"use strict";var n2t=Gh().codes.ERR_INVALID_OPT_VALUE;function i2t(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function s2t(t,e,r,o){var a=i2t(e,o,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=o?r:"highWaterMark";throw new n2t(n,a)}return Math.floor(a)}return t.objectMode?16:16*1024}H1e.exports={getHighWaterMark:s2t}});var q1e=_((S$t,Dj)=>{typeof Object.create=="function"?Dj.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Dj.exports=function(e,r){if(r){e.super_=r;var o=function(){};o.prototype=r.prototype,e.prototype=new o,e.prototype.constructor=e}}});var Yh=_((b$t,Sj)=>{try{if(Pj=ve("util"),typeof Pj.inherits!="function")throw"";Sj.exports=Pj.inherits}catch{Sj.exports=q1e()}var Pj});var G1e=_((x$t,j1e)=>{j1e.exports=ve("util").deprecate});var kj=_((k$t,J1e)=>{"use strict";J1e.exports=Fi;function W1e(t){var e=this;this.next=null,this.entry=null,this.finish=function(){F2t(e,t)}}var gC;Fi.WritableState=$B;var o2t={deprecate:G1e()},K1e=Cj(),wQ=ve("buffer").Buffer,a2t=global.Uint8Array||function(){};function l2t(t){return wQ.from(t)}function c2t(t){return wQ.isBuffer(t)||t instanceof a2t}var xj=Bj(),u2t=vj(),A2t=u2t.getHighWaterMark,Wh=Gh().codes,f2t=Wh.ERR_INVALID_ARG_TYPE,p2t=Wh.ERR_METHOD_NOT_IMPLEMENTED,h2t=Wh.ERR_MULTIPLE_CALLBACK,g2t=Wh.ERR_STREAM_CANNOT_PIPE,d2t=Wh.ERR_STREAM_DESTROYED,m2t=Wh.ERR_STREAM_NULL_VALUES,y2t=Wh.ERR_STREAM_WRITE_AFTER_END,E2t=Wh.ERR_UNKNOWN_ENCODING,dC=xj.errorOrDestroy;Yh()(Fi,K1e);function C2t(){}function $B(t,e,r){gC=gC||ld(),t=t||{},typeof r!="boolean"&&(r=e instanceof gC),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=A2t(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=t.decodeStrings===!1;this.decodeStrings=!o,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){S2t(e,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new W1e(this)}$B.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty($B.prototype,"buffer",{get:o2t.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var CQ;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(CQ=Function.prototype[Symbol.hasInstance],Object.defineProperty(Fi,Symbol.hasInstance,{value:function(e){return CQ.call(this,e)?!0:this!==Fi?!1:e&&e._writableState instanceof $B}})):CQ=function(e){return e instanceof this};function Fi(t){gC=gC||ld();var e=this instanceof gC;if(!e&&!CQ.call(Fi,this))return new Fi(t);this._writableState=new $B(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),K1e.call(this)}Fi.prototype.pipe=function(){dC(this,new g2t)};function w2t(t,e){var r=new y2t;dC(t,r),process.nextTick(e,r)}function I2t(t,e,r,o){var a;return r===null?a=new m2t:typeof r!="string"&&!e.objectMode&&(a=new f2t("chunk",["string","Buffer"],r)),a?(dC(t,a),process.nextTick(o,a),!1):!0}Fi.prototype.write=function(t,e,r){var o=this._writableState,a=!1,n=!o.objectMode&&c2t(t);return n&&!wQ.isBuffer(t)&&(t=l2t(t)),typeof e=="function"&&(r=e,e=null),n?e="buffer":e||(e=o.defaultEncoding),typeof r!="function"&&(r=C2t),o.ending?w2t(this,r):(n||I2t(this,o,t,r))&&(o.pendingcb++,a=v2t(this,o,n,t,e,r)),a};Fi.prototype.cork=function(){this._writableState.corked++};Fi.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&V1e(this,t))};Fi.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new E2t(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Fi.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function B2t(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=wQ.from(e,r)),e}Object.defineProperty(Fi.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function v2t(t,e,r,o,a,n){if(!r){var u=B2t(e,o,a);o!==u&&(r=!0,a="buffer",o=u)}var A=e.objectMode?1:o.length;e.length+=A;var p=e.length<e.highWaterMark;if(p||(e.needDrain=!0),e.writing||e.corked){var h=e.lastBufferedRequest;e.lastBufferedRequest={chunk:o,encoding:a,isBuf:r,callback:n,next:null},h?h.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else bj(t,e,!1,A,o,a,n);return p}function bj(t,e,r,o,a,n,u){e.writelen=o,e.writecb=u,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new d2t("write")):r?t._writev(a,e.onwrite):t._write(a,n,e.onwrite),e.sync=!1}function D2t(t,e,r,o,a){--e.pendingcb,r?(process.nextTick(a,o),process.nextTick(ZB,t,e),t._writableState.errorEmitted=!0,dC(t,o)):(a(o),t._writableState.errorEmitted=!0,dC(t,o),ZB(t,e))}function P2t(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}function S2t(t,e){var r=t._writableState,o=r.sync,a=r.writecb;if(typeof a!="function")throw new h2t;if(P2t(r),e)D2t(t,r,o,e,a);else{var n=z1e(r)||t.destroyed;!n&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&V1e(t,r),o?process.nextTick(Y1e,t,r,n,a):Y1e(t,r,n,a)}}function Y1e(t,e,r,o){r||b2t(t,e),e.pendingcb--,o(),ZB(t,e)}function b2t(t,e){e.length===0&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}function V1e(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var o=e.bufferedRequestCount,a=new Array(o),n=e.corkedRequestsFree;n.entry=r;for(var u=0,A=!0;r;)a[u]=r,r.isBuf||(A=!1),r=r.next,u+=1;a.allBuffers=A,bj(t,e,!0,e.length,a,"",n.finish),e.pendingcb++,e.lastBufferedRequest=null,n.next?(e.corkedRequestsFree=n.next,n.next=null):e.corkedRequestsFree=new W1e(e),e.bufferedRequestCount=0}else{for(;r;){var p=r.chunk,h=r.encoding,E=r.callback,I=e.objectMode?1:p.length;if(bj(t,e,!1,I,p,h,E),r=r.next,e.bufferedRequestCount--,e.writing)break}r===null&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}Fi.prototype._write=function(t,e,r){r(new p2t("_write()"))};Fi.prototype._writev=null;Fi.prototype.end=function(t,e,r){var o=this._writableState;return typeof t=="function"?(r=t,t=null,e=null):typeof e=="function"&&(r=e,e=null),t!=null&&this.write(t,e),o.corked&&(o.corked=1,this.uncork()),o.ending||Q2t(this,o,r),this};Object.defineProperty(Fi.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function z1e(t){return t.ending&&t.length===0&&t.bufferedRequest===null&&!t.finished&&!t.writing}function x2t(t,e){t._final(function(r){e.pendingcb--,r&&dC(t,r),e.prefinished=!0,t.emit("prefinish"),ZB(t,e)})}function k2t(t,e){!e.prefinished&&!e.finalCalled&&(typeof t._final=="function"&&!e.destroyed?(e.pendingcb++,e.finalCalled=!0,process.nextTick(x2t,t,e)):(e.prefinished=!0,t.emit("prefinish")))}function ZB(t,e){var r=z1e(e);if(r&&(k2t(t,e),e.pendingcb===0&&(e.finished=!0,t.emit("finish"),e.autoDestroy))){var o=t._readableState;(!o||o.autoDestroy&&o.endEmitted)&&t.destroy()}return r}function Q2t(t,e,r){e.ending=!0,ZB(t,e),r&&(e.finished?process.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}function F2t(t,e,r){var o=t.entry;for(t.entry=null;o;){var a=o.callback;e.pendingcb--,a(r),o=o.next}e.corkedRequestsFree.next=t}Object.defineProperty(Fi.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}});Fi.prototype.destroy=xj.destroy;Fi.prototype._undestroy=xj.undestroy;Fi.prototype._destroy=function(t,e){e(t)}});var ld=_((Q$t,Z1e)=>{"use strict";var R2t=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};Z1e.exports=yA;var X1e=Rj(),Fj=kj();Yh()(yA,X1e);for(Qj=R2t(Fj.prototype),IQ=0;IQ<Qj.length;IQ++)BQ=Qj[IQ],yA.prototype[BQ]||(yA.prototype[BQ]=Fj.prototype[BQ]);var Qj,BQ,IQ;function yA(t){if(!(this instanceof yA))return new yA(t);X1e.call(this,t),Fj.call(this,t),this.allowHalfOpen=!0,t&&(t.readable===!1&&(this.readable=!1),t.writable===!1&&(this.writable=!1),t.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",T2t)))}Object.defineProperty(yA.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});Object.defineProperty(yA.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(yA.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function T2t(){this._writableState.ended||process.nextTick(N2t,this)}function N2t(t){t.end()}Object.defineProperty(yA.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}})});var t2e=_((Tj,e2e)=>{var vQ=ve("buffer"),rp=vQ.Buffer;function $1e(t,e){for(var r in t)e[r]=t[r]}rp.from&&rp.alloc&&rp.allocUnsafe&&rp.allocUnsafeSlow?e2e.exports=vQ:($1e(vQ,Tj),Tj.Buffer=mC);function mC(t,e,r){return rp(t,e,r)}$1e(rp,mC);mC.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return rp(t,e,r)};mC.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var o=rp(t);return e!==void 0?typeof r=="string"?o.fill(e,r):o.fill(e):o.fill(0),o};mC.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return rp(t)};mC.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return vQ.SlowBuffer(t)}});var Mj=_(n2e=>{"use strict";var Lj=t2e().Buffer,r2e=Lj.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function L2t(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function M2t(t){var e=L2t(t);if(typeof e!="string"&&(Lj.isEncoding===r2e||!r2e(t)))throw new Error("Unknown encoding: "+t);return e||t}n2e.StringDecoder=ev;function ev(t){this.encoding=M2t(t);var e;switch(this.encoding){case"utf16le":this.text=j2t,this.end=G2t,e=4;break;case"utf8":this.fillLast=_2t,e=4;break;case"base64":this.text=Y2t,this.end=W2t,e=3;break;default:this.write=K2t,this.end=V2t;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Lj.allocUnsafe(e)}ev.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<t.length?e?e+this.text(t,r):this.text(t,r):e||""};ev.prototype.end=q2t;ev.prototype.text=H2t;ev.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length};function Nj(t){return t<=127?0:t>>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function O2t(t,e,r){var o=e.length-1;if(o<r)return 0;var a=Nj(e[o]);return a>=0?(a>0&&(t.lastNeed=a-1),a):--o<r||a===-2?0:(a=Nj(e[o]),a>=0?(a>0&&(t.lastNeed=a-2),a):--o<r||a===-2?0:(a=Nj(e[o]),a>=0?(a>0&&(a===2?a=0:t.lastNeed=a-3),a):0))}function U2t(t,e,r){if((e[0]&192)!==128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"\uFFFD"}}function _2t(t){var e=this.lastTotal-this.lastNeed,r=U2t(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function H2t(t,e){var r=O2t(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var o=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,o),t.toString("utf8",e,o)}function q2t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function j2t(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var o=r.charCodeAt(r.length-1);if(o>=55296&&o<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function G2t(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function Y2t(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function W2t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function K2t(t){return t.toString(this.encoding)}function V2t(t){return t&&t.length?this.write(t):""}});var DQ=_((R$t,o2e)=>{"use strict";var i2e=Gh().codes.ERR_STREAM_PREMATURE_CLOSE;function z2t(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];t.apply(this,o)}}}function J2t(){}function X2t(t){return t.setHeader&&typeof t.abort=="function"}function s2e(t,e,r){if(typeof e=="function")return s2e(t,null,e);e||(e={}),r=z2t(r||J2t);var o=e.readable||e.readable!==!1&&t.readable,a=e.writable||e.writable!==!1&&t.writable,n=function(){t.writable||A()},u=t._writableState&&t._writableState.finished,A=function(){a=!1,u=!0,o||r.call(t)},p=t._readableState&&t._readableState.endEmitted,h=function(){o=!1,p=!0,a||r.call(t)},E=function(C){r.call(t,C)},I=function(){var C;if(o&&!p)return(!t._readableState||!t._readableState.ended)&&(C=new i2e),r.call(t,C);if(a&&!u)return(!t._writableState||!t._writableState.ended)&&(C=new i2e),r.call(t,C)},v=function(){t.req.on("finish",A)};return X2t(t)?(t.on("complete",A),t.on("abort",I),t.req?v():t.on("request",v)):a&&!t._writableState&&(t.on("end",n),t.on("close",n)),t.on("end",h),t.on("finish",A),e.error!==!1&&t.on("error",E),t.on("close",I),function(){t.removeListener("complete",A),t.removeListener("abort",I),t.removeListener("request",v),t.req&&t.req.removeListener("finish",A),t.removeListener("end",n),t.removeListener("close",n),t.removeListener("finish",A),t.removeListener("end",h),t.removeListener("error",E),t.removeListener("close",I)}}o2e.exports=s2e});var l2e=_((T$t,a2e)=>{"use strict";var PQ;function Kh(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var Z2t=DQ(),Vh=Symbol("lastResolve"),cd=Symbol("lastReject"),tv=Symbol("error"),SQ=Symbol("ended"),ud=Symbol("lastPromise"),Oj=Symbol("handlePromise"),Ad=Symbol("stream");function zh(t,e){return{value:t,done:e}}function $2t(t){var e=t[Vh];if(e!==null){var r=t[Ad].read();r!==null&&(t[ud]=null,t[Vh]=null,t[cd]=null,e(zh(r,!1)))}}function eBt(t){process.nextTick($2t,t)}function tBt(t,e){return function(r,o){t.then(function(){if(e[SQ]){r(zh(void 0,!0));return}e[Oj](r,o)},o)}}var rBt=Object.getPrototypeOf(function(){}),nBt=Object.setPrototypeOf((PQ={get stream(){return this[Ad]},next:function(){var e=this,r=this[tv];if(r!==null)return Promise.reject(r);if(this[SQ])return Promise.resolve(zh(void 0,!0));if(this[Ad].destroyed)return new Promise(function(u,A){process.nextTick(function(){e[tv]?A(e[tv]):u(zh(void 0,!0))})});var o=this[ud],a;if(o)a=new Promise(tBt(o,this));else{var n=this[Ad].read();if(n!==null)return Promise.resolve(zh(n,!1));a=new Promise(this[Oj])}return this[ud]=a,a}},Kh(PQ,Symbol.asyncIterator,function(){return this}),Kh(PQ,"return",function(){var e=this;return new Promise(function(r,o){e[Ad].destroy(null,function(a){if(a){o(a);return}r(zh(void 0,!0))})})}),PQ),rBt),iBt=function(e){var r,o=Object.create(nBt,(r={},Kh(r,Ad,{value:e,writable:!0}),Kh(r,Vh,{value:null,writable:!0}),Kh(r,cd,{value:null,writable:!0}),Kh(r,tv,{value:null,writable:!0}),Kh(r,SQ,{value:e._readableState.endEmitted,writable:!0}),Kh(r,Oj,{value:function(n,u){var A=o[Ad].read();A?(o[ud]=null,o[Vh]=null,o[cd]=null,n(zh(A,!1))):(o[Vh]=n,o[cd]=u)},writable:!0}),r));return o[ud]=null,Z2t(e,function(a){if(a&&a.code!=="ERR_STREAM_PREMATURE_CLOSE"){var n=o[cd];n!==null&&(o[ud]=null,o[Vh]=null,o[cd]=null,n(a)),o[tv]=a;return}var u=o[Vh];u!==null&&(o[ud]=null,o[Vh]=null,o[cd]=null,u(zh(void 0,!0))),o[SQ]=!0}),e.on("readable",eBt.bind(null,o)),o};a2e.exports=iBt});var f2e=_((N$t,A2e)=>{"use strict";function c2e(t,e,r,o,a,n,u){try{var A=t[n](u),p=A.value}catch(h){r(h);return}A.done?e(p):Promise.resolve(p).then(o,a)}function sBt(t){return function(){var e=this,r=arguments;return new Promise(function(o,a){var n=t.apply(e,r);function u(p){c2e(n,o,a,u,A,"next",p)}function A(p){c2e(n,o,a,u,A,"throw",p)}u(void 0)})}}function u2e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function oBt(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?u2e(Object(r),!0).forEach(function(o){aBt(t,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):u2e(Object(r)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(r,o))})}return t}function aBt(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var lBt=Gh().codes.ERR_INVALID_ARG_TYPE;function cBt(t,e,r){var o;if(e&&typeof e.next=="function")o=e;else if(e&&e[Symbol.asyncIterator])o=e[Symbol.asyncIterator]();else if(e&&e[Symbol.iterator])o=e[Symbol.iterator]();else throw new lBt("iterable",["Iterable"],e);var a=new t(oBt({objectMode:!0},r)),n=!1;a._read=function(){n||(n=!0,u())};function u(){return A.apply(this,arguments)}function A(){return A=sBt(function*(){try{var p=yield o.next(),h=p.value,E=p.done;E?a.push(null):a.push(yield h)?u():n=!1}catch(I){a.destroy(I)}}),A.apply(this,arguments)}return a}A2e.exports=cBt});var Rj=_((M$t,I2e)=>{"use strict";I2e.exports=mn;var yC;mn.ReadableState=d2e;var L$t=ve("events").EventEmitter,g2e=function(e,r){return e.listeners(r).length},nv=Cj(),bQ=ve("buffer").Buffer,uBt=global.Uint8Array||function(){};function ABt(t){return bQ.from(t)}function fBt(t){return bQ.isBuffer(t)||t instanceof uBt}var Uj=ve("util"),en;Uj&&Uj.debuglog?en=Uj.debuglog("stream"):en=function(){};var pBt=N1e(),Wj=Bj(),hBt=vj(),gBt=hBt.getHighWaterMark,xQ=Gh().codes,dBt=xQ.ERR_INVALID_ARG_TYPE,mBt=xQ.ERR_STREAM_PUSH_AFTER_EOF,yBt=xQ.ERR_METHOD_NOT_IMPLEMENTED,EBt=xQ.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,EC,_j,Hj;Yh()(mn,nv);var rv=Wj.errorOrDestroy,qj=["error","close","destroy","pause","resume"];function CBt(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function d2e(t,e,r){yC=yC||ld(),t=t||{},typeof r!="boolean"&&(r=e instanceof yC),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=gBt(this,t,"readableHighWaterMark",r),this.buffer=new pBt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(EC||(EC=Mj().StringDecoder),this.decoder=new EC(t.encoding),this.encoding=t.encoding)}function mn(t){if(yC=yC||ld(),!(this instanceof mn))return new mn(t);var e=this instanceof yC;this._readableState=new d2e(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),nv.call(this)}Object.defineProperty(mn.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}});mn.prototype.destroy=Wj.destroy;mn.prototype._undestroy=Wj.undestroy;mn.prototype._destroy=function(t,e){e(t)};mn.prototype.push=function(t,e){var r=this._readableState,o;return r.objectMode?o=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=bQ.from(t,e),e=""),o=!0),m2e(this,t,e,!1,o)};mn.prototype.unshift=function(t){return m2e(this,t,null,!0,!1)};function m2e(t,e,r,o,a){en("readableAddChunk",e);var n=t._readableState;if(e===null)n.reading=!1,BBt(t,n);else{var u;if(a||(u=wBt(n,e)),u)rv(t,u);else if(n.objectMode||e&&e.length>0)if(typeof e!="string"&&!n.objectMode&&Object.getPrototypeOf(e)!==bQ.prototype&&(e=ABt(e)),o)n.endEmitted?rv(t,new EBt):jj(t,n,e,!0);else if(n.ended)rv(t,new mBt);else{if(n.destroyed)return!1;n.reading=!1,n.decoder&&!r?(e=n.decoder.write(e),n.objectMode||e.length!==0?jj(t,n,e,!1):Yj(t,n)):jj(t,n,e,!1)}else o||(n.reading=!1,Yj(t,n))}return!n.ended&&(n.length<n.highWaterMark||n.length===0)}function jj(t,e,r,o){e.flowing&&e.length===0&&!e.sync?(e.awaitDrain=0,t.emit("data",r)):(e.length+=e.objectMode?1:r.length,o?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&kQ(t)),Yj(t,e)}function wBt(t,e){var r;return!fBt(e)&&typeof e!="string"&&e!==void 0&&!t.objectMode&&(r=new dBt("chunk",["string","Buffer","Uint8Array"],e)),r}mn.prototype.isPaused=function(){return this._readableState.flowing===!1};mn.prototype.setEncoding=function(t){EC||(EC=Mj().StringDecoder);var e=new EC(t);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var r=this._readableState.buffer.head,o="";r!==null;)o+=e.write(r.data),r=r.next;return this._readableState.buffer.clear(),o!==""&&this._readableState.buffer.push(o),this._readableState.length=o.length,this};var p2e=1073741824;function IBt(t){return t>=p2e?t=p2e:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function h2e(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=IBt(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}mn.prototype.read=function(t){en("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return en("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?Gj(this):kQ(this),null;if(t=h2e(t,e),t===0&&e.ended)return e.length===0&&Gj(this),null;var o=e.needReadable;en("need readable",o),(e.length===0||e.length-t<e.highWaterMark)&&(o=!0,en("length less than watermark",o)),e.ended||e.reading?(o=!1,en("reading or ended",o)):o&&(en("do read"),e.reading=!0,e.sync=!0,e.length===0&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=h2e(r,e)));var a;return t>0?a=C2e(t,e):a=null,a===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&Gj(this)),a!==null&&this.emit("data",a),a};function BBt(t,e){if(en("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?kQ(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,y2e(t)))}}function kQ(t){var e=t._readableState;en("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(en("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(y2e,t))}function y2e(t){var e=t._readableState;en("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,Kj(t)}function Yj(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(vBt,t,e))}function vBt(t,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&e.length===0);){var r=e.length;if(en("maybeReadMore read 0"),t.read(0),r===e.length)break}e.readingMore=!1}mn.prototype._read=function(t){rv(this,new yBt("_read()"))};mn.prototype.pipe=function(t,e){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t);break}o.pipesCount+=1,en("pipe count=%d opts=%j",o.pipesCount,e);var a=(!e||e.end!==!1)&&t!==process.stdout&&t!==process.stderr,n=a?A:R;o.endEmitted?process.nextTick(n):r.once("end",n),t.on("unpipe",u);function u(L,U){en("onunpipe"),L===r&&U&&U.hasUnpiped===!1&&(U.hasUnpiped=!0,E())}function A(){en("onend"),t.end()}var p=DBt(r);t.on("drain",p);var h=!1;function E(){en("cleanup"),t.removeListener("close",x),t.removeListener("finish",C),t.removeListener("drain",p),t.removeListener("error",v),t.removeListener("unpipe",u),r.removeListener("end",A),r.removeListener("end",R),r.removeListener("data",I),h=!0,o.awaitDrain&&(!t._writableState||t._writableState.needDrain)&&p()}r.on("data",I);function I(L){en("ondata");var U=t.write(L);en("dest.write",U),U===!1&&((o.pipesCount===1&&o.pipes===t||o.pipesCount>1&&w2e(o.pipes,t)!==-1)&&!h&&(en("false write response, pause",o.awaitDrain),o.awaitDrain++),r.pause())}function v(L){en("onerror",L),R(),t.removeListener("error",v),g2e(t,"error")===0&&rv(t,L)}CBt(t,"error",v);function x(){t.removeListener("finish",C),R()}t.once("close",x);function C(){en("onfinish"),t.removeListener("close",x),R()}t.once("finish",C);function R(){en("unpipe"),r.unpipe(t)}return t.emit("pipe",r),o.flowing||(en("pipe resume"),r.resume()),t};function DBt(t){return function(){var r=t._readableState;en("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&g2e(t,"data")&&(r.flowing=!0,Kj(t))}}mn.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var o=e.pipes,a=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var n=0;n<a;n++)o[n].emit("unpipe",this,{hasUnpiped:!1});return this}var u=w2e(e.pipes,t);return u===-1?this:(e.pipes.splice(u,1),e.pipesCount-=1,e.pipesCount===1&&(e.pipes=e.pipes[0]),t.emit("unpipe",this,r),this)};mn.prototype.on=function(t,e){var r=nv.prototype.on.call(this,t,e),o=this._readableState;return t==="data"?(o.readableListening=this.listenerCount("readable")>0,o.flowing!==!1&&this.resume()):t==="readable"&&!o.endEmitted&&!o.readableListening&&(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,en("on readable",o.length,o.reading),o.length?kQ(this):o.reading||process.nextTick(PBt,this)),r};mn.prototype.addListener=mn.prototype.on;mn.prototype.removeListener=function(t,e){var r=nv.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(E2e,this),r};mn.prototype.removeAllListeners=function(t){var e=nv.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(E2e,this),e};function E2e(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function PBt(t){en("readable nexttick read 0"),t.read(0)}mn.prototype.resume=function(){var t=this._readableState;return t.flowing||(en("resume"),t.flowing=!t.readableListening,SBt(this,t)),t.paused=!1,this};function SBt(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(bBt,t,e))}function bBt(t,e){en("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),Kj(t),e.flowing&&!e.reading&&t.read(0)}mn.prototype.pause=function(){return en("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(en("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function Kj(t){var e=t._readableState;for(en("flow",e.flowing);e.flowing&&t.read()!==null;);}mn.prototype.wrap=function(t){var e=this,r=this._readableState,o=!1;t.on("end",function(){if(en("wrapped end"),r.decoder&&!r.ended){var u=r.decoder.end();u&&u.length&&e.push(u)}e.push(null)}),t.on("data",function(u){if(en("wrapped data"),r.decoder&&(u=r.decoder.write(u)),!(r.objectMode&&u==null)&&!(!r.objectMode&&(!u||!u.length))){var A=e.push(u);A||(o=!0,t.pause())}});for(var a in t)this[a]===void 0&&typeof t[a]=="function"&&(this[a]=function(A){return function(){return t[A].apply(t,arguments)}}(a));for(var n=0;n<qj.length;n++)t.on(qj[n],this.emit.bind(this,qj[n]));return this._read=function(u){en("wrapped _read",u),o&&(o=!1,t.resume())},this};typeof Symbol=="function"&&(mn.prototype[Symbol.asyncIterator]=function(){return _j===void 0&&(_j=l2e()),_j(this)});Object.defineProperty(mn.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(mn.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(mn.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});mn._fromList=C2e;Object.defineProperty(mn.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function C2e(t,e){if(e.length===0)return null;var r;return e.objectMode?r=e.buffer.shift():!t||t>=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function Gj(t){var e=t._readableState;en("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(xBt,e,t))}function xBt(t,e){if(en("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(mn.from=function(t,e){return Hj===void 0&&(Hj=f2e()),Hj(mn,t,e)});function w2e(t,e){for(var r=0,o=t.length;r<o;r++)if(t[r]===e)return r;return-1}});var Vj=_((O$t,v2e)=>{"use strict";v2e.exports=np;var QQ=Gh().codes,kBt=QQ.ERR_METHOD_NOT_IMPLEMENTED,QBt=QQ.ERR_MULTIPLE_CALLBACK,FBt=QQ.ERR_TRANSFORM_ALREADY_TRANSFORMING,RBt=QQ.ERR_TRANSFORM_WITH_LENGTH_0,FQ=ld();Yh()(np,FQ);function TBt(t,e){var r=this._transformState;r.transforming=!1;var o=r.writecb;if(o===null)return this.emit("error",new QBt);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),o(t);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function np(t){if(!(this instanceof np))return new np(t);FQ.call(this,t),this._transformState={afterTransform:TBt.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&(typeof t.transform=="function"&&(this._transform=t.transform),typeof t.flush=="function"&&(this._flush=t.flush)),this.on("prefinish",NBt)}function NBt(){var t=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(e,r){B2e(t,e,r)}):B2e(this,null,null)}np.prototype.push=function(t,e){return this._transformState.needTransform=!1,FQ.prototype.push.call(this,t,e)};np.prototype._transform=function(t,e,r){r(new kBt("_transform()"))};np.prototype._write=function(t,e,r){var o=this._transformState;if(o.writecb=r,o.writechunk=t,o.writeencoding=e,!o.transforming){var a=this._readableState;(o.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};np.prototype._read=function(t){var e=this._transformState;e.writechunk!==null&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0};np.prototype._destroy=function(t,e){FQ.prototype._destroy.call(this,t,function(r){e(r)})};function B2e(t,e,r){if(e)return t.emit("error",e);if(r!=null&&t.push(r),t._writableState.length)throw new RBt;if(t._transformState.transforming)throw new FBt;return t.push(null)}});var S2e=_((U$t,P2e)=>{"use strict";P2e.exports=iv;var D2e=Vj();Yh()(iv,D2e);function iv(t){if(!(this instanceof iv))return new iv(t);D2e.call(this,t)}iv.prototype._transform=function(t,e,r){r(null,t)}});var F2e=_((_$t,Q2e)=>{"use strict";var zj;function LBt(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var k2e=Gh().codes,MBt=k2e.ERR_MISSING_ARGS,OBt=k2e.ERR_STREAM_DESTROYED;function b2e(t){if(t)throw t}function UBt(t){return t.setHeader&&typeof t.abort=="function"}function _Bt(t,e,r,o){o=LBt(o);var a=!1;t.on("close",function(){a=!0}),zj===void 0&&(zj=DQ()),zj(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,UBt(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();o(u||new OBt("pipe"))}}}function x2e(t){t()}function HBt(t,e){return t.pipe(e)}function qBt(t){return!t.length||typeof t[t.length-1]!="function"?b2e:t.pop()}function jBt(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];var o=qBt(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new MBt("streams");var a,n=e.map(function(u,A){var p=A<e.length-1,h=A>0;return _Bt(u,p,h,function(E){a||(a=E),E&&n.forEach(x2e),!p&&(n.forEach(x2e),o(a))})});return e.reduce(HBt)}Q2e.exports=jBt});var CC=_((cc,ov)=>{var sv=ve("stream");process.env.READABLE_STREAM==="disable"&&sv?(ov.exports=sv.Readable,Object.assign(ov.exports,sv),ov.exports.Stream=sv):(cc=ov.exports=Rj(),cc.Stream=sv||cc,cc.Readable=cc,cc.Writable=kj(),cc.Duplex=ld(),cc.Transform=Vj(),cc.PassThrough=S2e(),cc.finished=DQ(),cc.pipeline=F2e())});var N2e=_((H$t,T2e)=>{"use strict";var{Buffer:uu}=ve("buffer"),R2e=Symbol.for("BufferList");function ni(t){if(!(this instanceof ni))return new ni(t);ni._init.call(this,t)}ni._init=function(e){Object.defineProperty(this,R2e,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ni.prototype._new=function(e){return new ni(e)};ni.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let o=0;o<this._bufs.length;o++){let a=r+this._bufs[o].length;if(e<a||o===this._bufs.length-1)return[o,e-r];r=a}};ni.prototype._reverseOffset=function(t){let e=t[0],r=t[1];for(let o=0;o<e;o++)r+=this._bufs[o].length;return r};ni.prototype.get=function(e){if(e>this.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};ni.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};ni.prototype.copy=function(e,r,o,a){if((typeof o!="number"||o<0)&&(o=0),(typeof a!="number"||a>this.length)&&(a=this.length),o>=this.length||a<=0)return e||uu.alloc(0);let n=!!e,u=this._offset(o),A=a-o,p=A,h=n&&r||0,E=u[1];if(o===0&&a===this.length){if(!n)return this._bufs.length===1?this._bufs[0]:uu.concat(this._bufs,this.length);for(let I=0;I<this._bufs.length;I++)this._bufs[I].copy(e,h),h+=this._bufs[I].length;return e}if(p<=this._bufs[u[0]].length-E)return n?this._bufs[u[0]].copy(e,r,E,E+p):this._bufs[u[0]].slice(E,E+p);n||(e=uu.allocUnsafe(A));for(let I=u[0];I<this._bufs.length;I++){let v=this._bufs[I].length-E;if(p>v)this._bufs[I].copy(e,h,E),h+=v;else{this._bufs[I].copy(e,h,E,E+p),h+=v;break}p-=v,E&&(E=0)}return e.length>h?e.slice(0,h):e};ni.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let o=this._offset(e),a=this._offset(r),n=this._bufs.slice(o[0],a[0]+1);return a[1]===0?n.pop():n[n.length-1]=n[n.length-1].slice(0,a[1]),o[1]!==0&&(n[0]=n[0].slice(o[1])),this._new(n)};ni.prototype.toString=function(e,r,o){return this.slice(r,o).toString(e)};ni.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ni.prototype.duplicate=function(){let e=this._new();for(let r=0;r<this._bufs.length;r++)e.append(this._bufs[r]);return e};ni.prototype.append=function(e){if(e==null)return this;if(e.buffer)this._appendBuffer(uu.from(e.buffer,e.byteOffset,e.byteLength));else if(Array.isArray(e))for(let r=0;r<e.length;r++)this.append(e[r]);else if(this._isBufferList(e))for(let r=0;r<e._bufs.length;r++)this.append(e._bufs[r]);else typeof e=="number"&&(e=e.toString()),this._appendBuffer(uu.from(e));return this};ni.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length};ni.prototype.indexOf=function(t,e,r){if(r===void 0&&typeof e=="string"&&(r=e,e=void 0),typeof t=="function"||Array.isArray(t))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if(typeof t=="number"?t=uu.from([t]):typeof t=="string"?t=uu.from(t,r):this._isBufferList(t)?t=t.slice():Array.isArray(t.buffer)?t=uu.from(t.buffer,t.byteOffset,t.byteLength):uu.isBuffer(t)||(t=uu.from(t)),e=Number(e||0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let o=this._offset(e),a=o[0],n=o[1];for(;a<this._bufs.length;a++){let u=this._bufs[a];for(;n<u.length;)if(u.length-n>=t.length){let p=u.indexOf(t,n);if(p!==-1)return this._reverseOffset([a,p]);n=u.length-t.length+1}else{let p=this._reverseOffset([a,n]);if(this._match(p,t))return p;n++}n=0}return-1};ni.prototype._match=function(t,e){if(this.length-t<e.length)return!1;for(let r=0;r<e.length;r++)if(this.get(t+r)!==e[r])return!1;return!0};(function(){let t={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(let e in t)(function(r){t[r]===null?ni.prototype[r]=function(o,a){return this.slice(o,o+a)[r](0,a)}:ni.prototype[r]=function(o=0){return this.slice(o,o+t[r])[r](0)}})(e)})();ni.prototype._isBufferList=function(e){return e instanceof ni||ni.isBufferList(e)};ni.isBufferList=function(e){return e!=null&&e[R2e]};T2e.exports=ni});var L2e=_((q$t,RQ)=>{"use strict";var Jj=CC().Duplex,GBt=Yh(),av=N2e();function Uo(t){if(!(this instanceof Uo))return new Uo(t);if(typeof t=="function"){this._callback=t;let e=function(o){this._callback&&(this._callback(o),this._callback=null)}.bind(this);this.on("pipe",function(o){o.on("error",e)}),this.on("unpipe",function(o){o.removeListener("error",e)}),t=null}av._init.call(this,t),Jj.call(this)}GBt(Uo,Jj);Object.assign(Uo.prototype,av.prototype);Uo.prototype._new=function(e){return new Uo(e)};Uo.prototype._write=function(e,r,o){this._appendBuffer(e),typeof o=="function"&&o()};Uo.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Uo.prototype.end=function(e){Jj.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Uo.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};Uo.prototype._isBufferList=function(e){return e instanceof Uo||e instanceof av||Uo.isBufferList(e)};Uo.isBufferList=av.isBufferList;RQ.exports=Uo;RQ.exports.BufferListStream=Uo;RQ.exports.BufferList=av});var $j=_(IC=>{var YBt=Buffer.alloc,WBt="0000000000000000000",KBt="7777777777777777777",M2e=48,O2e=Buffer.from("ustar\0","binary"),VBt=Buffer.from("00","binary"),zBt=Buffer.from("ustar ","binary"),JBt=Buffer.from(" \0","binary"),XBt=parseInt("7777",8),lv=257,Zj=263,ZBt=function(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},$Bt=function(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},evt=function(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},U2e=function(t,e,r,o){for(;r<o;r++)if(t[r]===e)return r;return o},_2e=function(t){for(var e=256,r=0;r<148;r++)e+=t[r];for(var o=156;o<512;o++)e+=t[o];return e},Jh=function(t,e){return t=t.toString(8),t.length>e?KBt.slice(0,e)+" ":WBt.slice(0,e-t.length)+t+" "};function tvt(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],o=t.length-1;o>0;o--){var a=t[o];e?r.push(a):r.push(255-a)}var n=0,u=r.length;for(o=0;o<u;o++)n+=r[o]*Math.pow(256,o);return e?n:-1*n}var Xh=function(t,e,r){if(t=t.slice(e,e+r),e=0,t[e]&128)return tvt(t);for(;e<t.length&&t[e]===32;)e++;for(var o=ZBt(U2e(t,32,e,t.length),t.length,t.length);e<o&&t[e]===0;)e++;return o===e?0:parseInt(t.slice(e,o).toString(),8)},wC=function(t,e,r,o){return t.slice(e,U2e(t,0,e,e+r)).toString(o)},Xj=function(t){var e=Buffer.byteLength(t),r=Math.floor(Math.log(e)/Math.log(10))+1;return e+r>=Math.pow(10,r)&&r++,e+r+t};IC.decodeLongPath=function(t,e){return wC(t,0,t.length,e)};IC.encodePax=function(t){var e="";t.name&&(e+=Xj(" path="+t.name+` -`)),t.linkname&&(e+=Xj(" linkpath="+t.linkname+` -`));var r=t.pax;if(r)for(var o in r)e+=Xj(" "+o+"="+r[o]+` -`);return Buffer.from(e)};IC.decodePax=function(t){for(var e={};t.length;){for(var r=0;r<t.length&&t[r]!==32;)r++;var o=parseInt(t.slice(0,r).toString(),10);if(!o)return e;var a=t.slice(r+1,o-1).toString(),n=a.indexOf("=");if(n===-1)return e;e[a.slice(0,n)]=a.slice(n+1),t=t.slice(o)}return e};IC.encode=function(t){var e=YBt(512),r=t.name,o="";if(t.typeflag===5&&r[r.length-1]!=="/"&&(r+="/"),Buffer.byteLength(r)!==r.length)return null;for(;Buffer.byteLength(r)>100;){var a=r.indexOf("/");if(a===-1)return null;o+=o?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(o)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(Jh(t.mode&XBt,6),100),e.write(Jh(t.uid,6),108),e.write(Jh(t.gid,6),116),e.write(Jh(t.size,11),124),e.write(Jh(t.mtime.getTime()/1e3|0,11),136),e[156]=M2e+evt(t.type),t.linkname&&e.write(t.linkname,157),O2e.copy(e,lv),VBt.copy(e,Zj),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(Jh(t.devmajor||0,6),329),e.write(Jh(t.devminor||0,6),337),o&&e.write(o,345),e.write(Jh(_2e(e),6),148),e)};IC.decode=function(t,e,r){var o=t[156]===0?0:t[156]-M2e,a=wC(t,0,100,e),n=Xh(t,100,8),u=Xh(t,108,8),A=Xh(t,116,8),p=Xh(t,124,12),h=Xh(t,136,12),E=$Bt(o),I=t[157]===0?null:wC(t,157,100,e),v=wC(t,265,32),x=wC(t,297,32),C=Xh(t,329,8),R=Xh(t,337,8),L=_2e(t);if(L===8*32)return null;if(L!==Xh(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(O2e.compare(t,lv,lv+6)===0)t[345]&&(a=wC(t,345,155,e)+"/"+a);else if(!(zBt.compare(t,lv,lv+6)===0&&JBt.compare(t,Zj,Zj+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return o===0&&a&&a[a.length-1]==="/"&&(o=5),{name:a,mode:n,uid:u,gid:A,size:p,mtime:new Date(1e3*h),type:E,linkname:I,uname:v,gname:x,devmajor:C,devminor:R}}});var K2e=_((G$t,W2e)=>{var q2e=ve("util"),rvt=L2e(),cv=$j(),j2e=CC().Writable,G2e=CC().PassThrough,Y2e=function(){},H2e=function(t){return t&=511,t&&512-t},nvt=function(t,e){var r=new TQ(t,e);return r.end(),r},ivt=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},TQ=function(t,e){this._parent=t,this.offset=e,G2e.call(this,{autoDestroy:!1})};q2e.inherits(TQ,G2e);TQ.prototype.destroy=function(t){this._parent.destroy(t)};var ip=function(t){if(!(this instanceof ip))return new ip(t);j2e.call(this,t),t=t||{},this._offset=0,this._buffer=rvt(),this._missing=0,this._partial=!1,this._onparse=Y2e,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,o=function(){e._continue()},a=function(v){if(e._locked=!1,v)return e.destroy(v);e._stream||o()},n=function(){e._stream=null;var v=H2e(e._header.size);v?e._parse(v,u):e._parse(512,I),e._locked||o()},u=function(){e._buffer.consume(H2e(e._header.size)),e._parse(512,I),o()},A=function(){var v=e._header.size;e._paxGlobal=cv.decodePax(r.slice(0,v)),r.consume(v),n()},p=function(){var v=e._header.size;e._pax=cv.decodePax(r.slice(0,v)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(v),n()},h=function(){var v=e._header.size;this._gnuLongPath=cv.decodeLongPath(r.slice(0,v),t.filenameEncoding),r.consume(v),n()},E=function(){var v=e._header.size;this._gnuLongLinkPath=cv.decodeLongPath(r.slice(0,v),t.filenameEncoding),r.consume(v),n()},I=function(){var v=e._offset,x;try{x=e._header=cv.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(C){e.emit("error",C)}if(r.consume(512),!x){e._parse(512,I),o();return}if(x.type==="gnu-long-path"){e._parse(x.size,h),o();return}if(x.type==="gnu-long-link-path"){e._parse(x.size,E),o();return}if(x.type==="pax-global-header"){e._parse(x.size,A),o();return}if(x.type==="pax-header"){e._parse(x.size,p),o();return}if(e._gnuLongPath&&(x.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(x.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=x=ivt(x,e._pax),e._pax=null),e._locked=!0,!x.size||x.type==="directory"){e._parse(512,I),e.emit("entry",x,nvt(e,v),a);return}e._stream=new TQ(e,v),e.emit("entry",x,e._stream,a),e._parse(x.size,n),o()};this._onheader=I,this._parse(512,I)};q2e.inherits(ip,j2e);ip.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};ip.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};ip.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=Y2e,this._overflow?this._write(this._overflow,void 0,t):t()}};ip.prototype._write=function(t,e,r){if(!this._destroyed){var o=this._stream,a=this._buffer,n=this._missing;if(t.length&&(this._partial=!0),t.length<n)return this._missing-=t.length,this._overflow=null,o?o.write(t,r):(a.append(t),r());this._cb=r,this._missing=0;var u=null;t.length>n&&(u=t.slice(n),t=t.slice(0,n)),o?o.end(t):a.append(t),this._overflow=u,this._onparse()}};ip.prototype._final=function(t){if(this._partial)return this.destroy(new Error("Unexpected end of data"));t()};W2e.exports=ip});var z2e=_((Y$t,V2e)=>{V2e.exports=ve("fs").constants||ve("constants")});var eBe=_((W$t,$2e)=>{var BC=z2e(),J2e=bO(),LQ=Yh(),svt=Buffer.alloc,X2e=CC().Readable,vC=CC().Writable,ovt=ve("string_decoder").StringDecoder,NQ=$j(),avt=parseInt("755",8),lvt=parseInt("644",8),Z2e=svt(1024),t5=function(){},e5=function(t,e){e&=511,e&&t.push(Z2e.slice(0,512-e))};function cvt(t){switch(t&BC.S_IFMT){case BC.S_IFBLK:return"block-device";case BC.S_IFCHR:return"character-device";case BC.S_IFDIR:return"directory";case BC.S_IFIFO:return"fifo";case BC.S_IFLNK:return"symlink"}return"file"}var MQ=function(t){vC.call(this),this.written=0,this._to=t,this._destroyed=!1};LQ(MQ,vC);MQ.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};MQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var OQ=function(){vC.call(this),this.linkname="",this._decoder=new ovt("utf-8"),this._destroyed=!1};LQ(OQ,vC);OQ.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};OQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var uv=function(){vC.call(this),this._destroyed=!1};LQ(uv,vC);uv.prototype._write=function(t,e,r){r(new Error("No body allowed for this entry"))};uv.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var EA=function(t){if(!(this instanceof EA))return new EA(t);X2e.call(this,t),this._drain=t5,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};LQ(EA,X2e);EA.prototype.entry=function(t,e,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(r=e,e=null),r||(r=t5);var o=this;if((!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=cvt(t.mode)),t.mode||(t.mode=t.type==="directory"?avt:lvt),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var a=this.push(e);return e5(o,t.size),a?process.nextTick(r):this._drain=r,new uv}if(t.type==="symlink"&&!t.linkname){var n=new OQ;return J2e(n,function(A){if(A)return o.destroy(),r(A);t.linkname=n.linkname,o._encode(t),r()}),n}if(this._encode(t),t.type!=="file"&&t.type!=="contiguous-file")return process.nextTick(r),new uv;var u=new MQ(this);return this._stream=u,J2e(u,function(A){if(o._stream=null,A)return o.destroy(),r(A);if(u.written!==t.size)return o.destroy(),r(new Error("size mismatch"));e5(o,t.size),o._finalizing&&o.finalize(),r()}),u}};EA.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Z2e),this.push(null))};EA.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};EA.prototype._encode=function(t){if(!t.pax){var e=NQ.encode(t);if(e){this.push(e);return}}this._encodePax(t)};EA.prototype._encodePax=function(t){var e=NQ.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(NQ.encode(r)),this.push(e),e5(this,e.length),r.size=t.size,r.type=t.type,this.push(NQ.encode(r))};EA.prototype._read=function(t){var e=this._drain;this._drain=t5,e()};$2e.exports=EA});var tBe=_(r5=>{r5.extract=K2e();r5.pack=eBe()});var pBe=_((fer,fBe)=>{"use strict";var Av=class t{constructor(e,r,o){this.__specs=e||{},Object.keys(this.__specs).forEach(a=>{if(typeof this.__specs[a]=="string"){let n=this.__specs[a],u=this.__specs[n];if(u){let A=u.aliases||[];A.push(a,n),u.aliases=[...new Set(A)],this.__specs[a]=u}else throw new Error(`Alias refers to invalid key: ${n} -> ${a}`)}}),this.__opts=r||{},this.__providers=uBe(o.filter(a=>a!=null&&typeof a=="object")),this.__isFiggyPudding=!0}get(e){return l5(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,r=this){for(let[o,a]of this.entries())e.call(r,a,o,this)}toJSON(){let e={};return this.forEach((r,o)=>{e[o]=r}),e}*entries(e){for(let o of Object.keys(this.__specs))yield[o,this.get(o)];let r=e||this.__opts.other;if(r){let o=new Set;for(let a of this.__providers){let n=a.entries?a.entries(r):vvt(a);for(let[u,A]of n)r(u)&&!o.has(u)&&(o.add(u),yield[u,A])}}}*[Symbol.iterator](){for(let[e,r]of this.entries())yield[e,r]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new t(this.__specs,this.__opts,uBe(this.__providers).concat(e)),ABe)}};try{let t=ve("util");Av.prototype[t.inspect.custom]=function(e,r){return this[Symbol.toStringTag]+" "+t.inspect(this.toJSON(),r)}}catch{}function Ivt(t){throw Object.assign(new Error(`invalid config key requested: ${t}`),{code:"EBADKEY"})}function l5(t,e,r){let o=t.__specs[e];if(r&&!o&&(!t.__opts.other||!t.__opts.other(e)))Ivt(e);else{o||(o={});let a;for(let n of t.__providers){if(a=cBe(e,n),a===void 0&&o.aliases&&o.aliases.length){for(let u of o.aliases)if(u!==e&&(a=cBe(u,n),a!==void 0))break}if(a!==void 0)break}return a===void 0&&o.default!==void 0?typeof o.default=="function"?o.default(t):o.default:a}}function cBe(t,e){let r;return e.__isFiggyPudding?r=l5(e,t,!1):typeof e.get=="function"?r=e.get(t):r=e[t],r}var ABe={has(t,e){return e in t.__specs&&l5(t,e,!1)!==void 0},ownKeys(t){return Object.keys(t.__specs)},get(t,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in Av.prototype?t[e]:t.get(e)},set(t,e,r){if(typeof e=="symbol"||e.slice(0,2)==="__")return t[e]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};fBe.exports=Bvt;function Bvt(t,e){function r(...o){return new Proxy(new Av(t,e,o),ABe)}return r}function uBe(t){let e=[];return t.forEach(r=>e.unshift(r)),e}function vvt(t){return Object.keys(t).map(e=>[e,t[e]])}});var dBe=_((per,IA)=>{"use strict";var pv=ve("crypto"),Dvt=pBe(),Pvt=ve("stream").Transform,hBe=["sha256","sha384","sha512"],Svt=/^[a-z0-9+/]+(?:=?=?)$/i,bvt=/^([^-]+)-([^?]+)([?\S*]*)$/,xvt=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,kvt=/^[\x21-\x7E]+$/,oa=Dvt({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>Ovt},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Zh=class{get isHash(){return!0}constructor(e,r){r=oa(r);let o=!!r.strict;this.source=e.trim();let a=this.source.match(o?xvt:bvt);if(!a||o&&!hBe.some(u=>u===a[1]))return;this.algorithm=a[1],this.digest=a[2];let n=a[3];this.options=n?n.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=oa(e),e.strict&&!(hBe.some(o=>o===this.algorithm)&&this.digest.match(Svt)&&(this.options||[]).every(o=>o.match(kvt))))return"";let r=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${r}`}},fd=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=oa(e);let r=e.sep||" ";return e.strict&&(r=r.replace(/\S+/g," ")),Object.keys(this).map(o=>this[o].map(a=>Zh.prototype.toString.call(a,e)).filter(a=>a.length).join(r)).filter(o=>o.length).join(r)}concat(e,r){r=oa(r);let o=typeof e=="string"?e:fv(e,r);return wA(`${this.toString(r)} ${o}`,r)}hexDigest(){return wA(this,{single:!0}).hexDigest()}match(e,r){r=oa(r);let o=wA(e,r),a=o.pickAlgorithm(r);return this[a]&&o[a]&&this[a].find(n=>o[a].find(u=>n.digest===u.digest))||!1}pickAlgorithm(e){e=oa(e);let r=e.pickAlgorithm,o=Object.keys(this);if(!o.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return o.reduce((a,n)=>r(a,n)||a)}};IA.exports.parse=wA;function wA(t,e){if(e=oa(e),typeof t=="string")return c5(t,e);if(t.algorithm&&t.digest){let r=new fd;return r[t.algorithm]=[t],c5(fv(r,e),e)}else return c5(fv(t,e),e)}function c5(t,e){return e.single?new Zh(t,e):t.trim().split(/\s+/).reduce((r,o)=>{let a=new Zh(o,e);if(a.algorithm&&a.digest){let n=a.algorithm;r[n]||(r[n]=[]),r[n].push(a)}return r},new fd)}IA.exports.stringify=fv;function fv(t,e){return e=oa(e),t.algorithm&&t.digest?Zh.prototype.toString.call(t,e):typeof t=="string"?fv(wA(t,e),e):fd.prototype.toString.call(t,e)}IA.exports.fromHex=Qvt;function Qvt(t,e,r){r=oa(r);let o=r.options&&r.options.length?`?${r.options.join("?")}`:"";return wA(`${e}-${Buffer.from(t,"hex").toString("base64")}${o}`,r)}IA.exports.fromData=Fvt;function Fvt(t,e){e=oa(e);let r=e.algorithms,o=e.options&&e.options.length?`?${e.options.join("?")}`:"";return r.reduce((a,n)=>{let u=pv.createHash(n).update(t).digest("base64"),A=new Zh(`${n}-${u}${o}`,e);if(A.algorithm&&A.digest){let p=A.algorithm;a[p]||(a[p]=[]),a[p].push(A)}return a},new fd)}IA.exports.fromStream=Rvt;function Rvt(t,e){e=oa(e);let r=e.Promise||Promise,o=u5(e);return new r((a,n)=>{t.pipe(o),t.on("error",n),o.on("error",n);let u;o.on("integrity",A=>{u=A}),o.on("end",()=>a(u)),o.on("data",()=>{})})}IA.exports.checkData=Tvt;function Tvt(t,e,r){if(r=oa(r),e=wA(e,r),!Object.keys(e).length){if(r.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let o=e.pickAlgorithm(r),a=pv.createHash(o).update(t).digest("base64"),n=wA({algorithm:o,digest:a}),u=n.match(e,r);if(u||!r.error)return u;if(typeof r.size=="number"&&t.length!==r.size){let A=new Error(`data size mismatch when checking ${e}. - Wanted: ${r.size} - Found: ${t.length}`);throw A.code="EBADSIZE",A.found=t.length,A.expected=r.size,A.sri=e,A}else{let A=new Error(`Integrity checksum failed when using ${o}: Wanted ${e}, but got ${n}. (${t.length} bytes)`);throw A.code="EINTEGRITY",A.found=n,A.expected=e,A.algorithm=o,A.sri=e,A}}IA.exports.checkStream=Nvt;function Nvt(t,e,r){r=oa(r);let o=r.Promise||Promise,a=u5(r.concat({integrity:e}));return new o((n,u)=>{t.pipe(a),t.on("error",u),a.on("error",u);let A;a.on("verified",p=>{A=p}),a.on("end",()=>n(A)),a.on("data",()=>{})})}IA.exports.integrityStream=u5;function u5(t){t=oa(t);let e=t.integrity&&wA(t.integrity,t),r=e&&Object.keys(e).length,o=r&&e.pickAlgorithm(t),a=r&&e[o],n=Array.from(new Set(t.algorithms.concat(o?[o]:[]))),u=n.map(pv.createHash),A=0,p=new Pvt({transform(h,E,I){A+=h.length,u.forEach(v=>v.update(h,E)),I(null,h,E)}}).on("end",()=>{let h=t.options&&t.options.length?`?${t.options.join("?")}`:"",E=wA(u.map((v,x)=>`${n[x]}-${v.digest("base64")}${h}`).join(" "),t),I=r&&E.match(e,t);if(typeof t.size=="number"&&A!==t.size){let v=new Error(`stream size mismatch when checking ${e}. - Wanted: ${t.size} - Found: ${A}`);v.code="EBADSIZE",v.found=A,v.expected=t.size,v.sri=e,p.emit("error",v)}else if(t.integrity&&!I){let v=new Error(`${e} integrity checksum failed when using ${o}: wanted ${a} but got ${E}. (${A} bytes)`);v.code="EINTEGRITY",v.found=E,v.expected=a,v.algorithm=o,v.sri=e,p.emit("error",v)}else p.emit("size",A),p.emit("integrity",E),I&&p.emit("verified",I)});return p}IA.exports.create=Lvt;function Lvt(t){t=oa(t);let e=t.algorithms,r=t.options.length?`?${t.options.join("?")}`:"",o=e.map(pv.createHash);return{update:function(a,n){return o.forEach(u=>u.update(a,n)),this},digest:function(a){return e.reduce((u,A)=>{let p=o.shift().digest("base64"),h=new Zh(`${A}-${p}${r}`,t);if(h.algorithm&&h.digest){let E=h.algorithm;u[E]||(u[E]=[]),u[E].push(h)}return u},new fd)}}}var Mvt=new Set(pv.getHashes()),gBe=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>Mvt.has(t));function Ovt(t,e){return gBe.indexOf(t.toLowerCase())>=gBe.indexOf(e.toLowerCase())?t:e}});var YBe=_((dir,GBe)=>{var ODt=$N();function UDt(t){return ODt(t)?void 0:t}GBe.exports=UDt});var KBe=_((mir,WBe)=>{var _Dt=kb(),HDt=B8(),qDt=S8(),jDt=Mg(),GDt=Ag(),YDt=YBe(),WDt=m_(),KDt=I8(),VDt=1,zDt=2,JDt=4,XDt=WDt(function(t,e){var r={};if(t==null)return r;var o=!1;e=_Dt(e,function(n){return n=jDt(n,t),o||(o=n.length>1),n}),GDt(t,KDt(t),r),o&&(r=HDt(r,VDt|zDt|JDt,YDt));for(var a=e.length;a--;)qDt(r,e[a]);return r});WBe.exports=XDt});Pt();Ge();Pt();var ZBe=ve("child_process"),$Be=Ze(X0());qt();var Uy=new Map([]);var W1={};Vt(W1,{BaseCommand:()=>ut,WorkspaceRequiredError:()=>sr,getCli:()=>ihe,getDynamicLibs:()=>nhe,getPluginConfiguration:()=>Hy,openWorkspace:()=>_y,pluginCommands:()=>Uy,runExit:()=>Wx});qt();var ut=class extends it{constructor(){super(...arguments);this.cwd=ge.String("--cwd",{hidden:!0})}validateAndExecute(){if(typeof this.cwd<"u")throw new st("The --cwd option is ambiguous when used anywhere else than the very first parameter provided in the command line, before even the command path");return super.validateAndExecute()}};Ge();Pt();qt();var sr=class extends st{constructor(e,r){let o=K.relative(e,r),a=K.join(e,Ut.fileName);super(`This command can only be run from within a workspace of your project (${o} isn't a workspace of ${a}).`)}};Ge();Pt();nA();Nl();g1();qt();var OAt=Ze(Jn());el();var nhe=()=>new Map([["@yarnpkg/cli",W1],["@yarnpkg/core",Y1],["@yarnpkg/fslib",kw],["@yarnpkg/libzip",p1],["@yarnpkg/parsers",Ow],["@yarnpkg/shell",E1],["clipanion",Jw],["semver",OAt],["typanion",Vo]]);Ge();async function _y(t,e){let{project:r,workspace:o}=await kt.find(t,e);if(!o)throw new sr(r.cwd,e);return o}Ge();Pt();nA();Nl();g1();qt();var oPt=Ze(Jn());el();var K8={};Vt(K8,{AddCommand:()=>Yy,BinCommand:()=>Wy,CacheCleanCommand:()=>Ky,ClipanionCommand:()=>$y,ConfigCommand:()=>Xy,ConfigGetCommand:()=>Vy,ConfigSetCommand:()=>zy,ConfigUnsetCommand:()=>Jy,DedupeCommand:()=>Zy,EntryCommand:()=>tE,ExecCommand:()=>nE,ExplainCommand:()=>oE,ExplainPeerRequirementsCommand:()=>iE,HelpCommand:()=>eE,InfoCommand:()=>aE,LinkCommand:()=>cE,NodeCommand:()=>uE,PluginCheckCommand:()=>AE,PluginImportCommand:()=>hE,PluginImportSourcesCommand:()=>gE,PluginListCommand:()=>fE,PluginRemoveCommand:()=>dE,PluginRuntimeCommand:()=>mE,RebuildCommand:()=>yE,RemoveCommand:()=>EE,RunCommand:()=>wE,RunIndexCommand:()=>CE,SetResolutionCommand:()=>IE,SetVersionCommand:()=>sE,SetVersionSourcesCommand:()=>pE,UnlinkCommand:()=>BE,UpCommand:()=>vE,VersionCommand:()=>rE,WhyCommand:()=>DE,WorkspaceCommand:()=>kE,WorkspacesListCommand:()=>xE,YarnCommand:()=>lE,dedupeUtils:()=>rk,default:()=>Fgt,suggestUtils:()=>Zc});var Nde=Ze(X0());Ge();Ge();Ge();qt();var Y0e=Ze(J1());el();var Zc={};Vt(Zc,{Modifier:()=>m8,Strategy:()=>$x,Target:()=>X1,WorkspaceModifier:()=>_0e,applyModifier:()=>ipt,extractDescriptorFromPath:()=>y8,extractRangeModifier:()=>H0e,fetchDescriptorFrom:()=>E8,findProjectDescriptors:()=>G0e,getModifier:()=>Z1,getSuggestedDescriptors:()=>$1,makeWorkspaceDescriptor:()=>j0e,toWorkspaceModifier:()=>q0e});Ge();Ge();Pt();var d8=Ze(Jn()),rpt="workspace:",X1=(o=>(o.REGULAR="dependencies",o.DEVELOPMENT="devDependencies",o.PEER="peerDependencies",o))(X1||{}),m8=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="",o))(m8||{}),_0e=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="*",o))(_0e||{}),$x=(n=>(n.KEEP="keep",n.REUSE="reuse",n.PROJECT="project",n.LATEST="latest",n.CACHE="cache",n))($x||{});function Z1(t,e){return t.exact?"":t.caret?"^":t.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var npt=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function H0e(t,{project:e}){let r=t.match(npt);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function ipt(t,e){let{protocol:r,source:o,params:a,selector:n}=G.parseRange(t.range);return d8.default.valid(n)&&(n=`${e}${t.range}`),G.makeDescriptor(t,G.makeRange({protocol:r,source:o,params:a,selector:n}))}function q0e(t){switch(t){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function j0e(t,e){return G.makeDescriptor(t.anchoredDescriptor,`${rpt}${q0e(e)}`)}async function G0e(t,{project:e,target:r}){let o=new Map,a=n=>{let u=o.get(n.descriptorHash);return u||o.set(n.descriptorHash,u={descriptor:n,locators:[]}),u};for(let n of e.workspaces)if(r==="peerDependencies"){let u=n.manifest.peerDependencies.get(t.identHash);u!==void 0&&a(u).locators.push(n.anchoredLocator)}else{let u=n.manifest.dependencies.get(t.identHash),A=n.manifest.devDependencies.get(t.identHash);r==="devDependencies"?A!==void 0?a(A).locators.push(n.anchoredLocator):u!==void 0&&a(u).locators.push(n.anchoredLocator):u!==void 0?a(u).locators.push(n.anchoredLocator):A!==void 0&&a(A).locators.push(n.anchoredLocator)}return o}async function y8(t,{cwd:e,workspace:r}){return await spt(async o=>{K.isAbsolute(t)||(t=K.relative(r.cwd,K.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:a}=r,n=await E8(G.makeIdent(null,"archive"),t,{project:r.project,cache:o,workspace:r});if(!n)throw new Error("Assertion failed: The descriptor should have been found");let u=new ki,A=a.configuration.makeResolver(),p=a.configuration.makeFetcher(),h={checksums:a.storedChecksums,project:a,cache:o,fetcher:p,report:u,resolver:A},E=A.bindDescriptor(n,r.anchoredLocator,h),I=G.convertDescriptorToLocator(E),v=await p.fetch(I,h),x=await Ut.find(v.prefixPath,{baseFs:v.packageFs});if(!x.name)throw new Error("Target path doesn't have a name");return G.makeDescriptor(x.name,t)})}async function $1(t,{project:e,workspace:r,cache:o,target:a,fixed:n,modifier:u,strategies:A,maxResults:p=1/0}){if(!(p>=0))throw new Error(`Invalid maxResults (${p})`);let[h,E]=t.range!=="unknown"?n||Lr.validRange(t.range)||!t.range.match(/^[a-z0-9._-]+$/i)?[t.range,"latest"]:["unknown",t.range]:["unknown","latest"];if(h!=="unknown")return{suggestions:[{descriptor:t,name:`Use ${G.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let I=typeof r<"u"&&r!==null&&r.manifest[a].get(t.identHash)||null,v=[],x=[],C=async R=>{try{await R()}catch(L){x.push(L)}};for(let R of A){if(v.length>=p)break;switch(R){case"keep":await C(async()=>{I&&v.push({descriptor:I,name:`Keep ${G.prettyDescriptor(e.configuration,I)}`,reason:"(no changes)"})});break;case"reuse":await C(async()=>{for(let{descriptor:L,locators:U}of(await G0e(t,{project:e,target:a})).values()){if(U.length===1&&U[0].locatorHash===r.anchoredLocator.locatorHash&&A.includes("keep"))continue;let z=`(originally used by ${G.prettyLocator(e.configuration,U[0])}`;z+=U.length>1?` and ${U.length-1} other${U.length>2?"s":""})`:")",v.push({descriptor:L,name:`Reuse ${G.prettyDescriptor(e.configuration,L)}`,reason:z})}});break;case"cache":await C(async()=>{for(let L of e.storedDescriptors.values())L.identHash===t.identHash&&v.push({descriptor:L,name:`Reuse ${G.prettyDescriptor(e.configuration,L)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await C(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let L=e.tryWorkspaceByIdent(t);if(L===null)return;let U=j0e(L,u);v.push({descriptor:U,name:`Attach ${G.prettyDescriptor(e.configuration,U)}`,reason:`(local workspace at ${pe.pretty(e.configuration,L.relativeCwd,pe.Type.PATH)})`})});break;case"latest":{let L=e.configuration.get("enableNetwork"),U=e.configuration.get("enableOfflineMode");await C(async()=>{if(a==="peerDependencies")v.push({descriptor:G.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!L&&!U)v.push({descriptor:null,name:"Resolve from latest",reason:pe.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let z=await E8(t,E,{project:e,cache:o,workspace:r,modifier:u});z&&v.push({descriptor:z,name:`Use ${G.prettyDescriptor(e.configuration,z)}`,reason:`(resolved from ${U?"the cache":"latest"})`})}})}break}}return{suggestions:v.slice(0,p),rejections:x.slice(0,p)}}async function E8(t,e,{project:r,cache:o,workspace:a,preserveModifier:n=!0,modifier:u}){let A=r.configuration.normalizeDependency(G.makeDescriptor(t,e)),p=new ki,h=r.configuration.makeFetcher(),E=r.configuration.makeResolver(),I={project:r,fetcher:h,cache:o,checksums:r.storedChecksums,report:p,cacheOptions:{skipIntegrityCheck:!0}},v={...I,resolver:E,fetchOptions:I},x=E.bindDescriptor(A,a.anchoredLocator,v),C=await E.getCandidates(x,{},v);if(C.length===0)return null;let R=C[0],{protocol:L,source:U,params:z,selector:te}=G.parseRange(G.convertToManifestRange(R.reference));if(L===r.configuration.get("defaultProtocol")&&(L=null),d8.default.valid(te)){let ae=te;if(typeof u<"u")te=u+te;else if(n!==!1){let Ce=typeof n=="string"?n:A.range;te=H0e(Ce,{project:r})+te}let le=G.makeDescriptor(R,G.makeRange({protocol:L,source:U,params:z,selector:te}));(await E.getCandidates(r.configuration.normalizeDependency(le),{},v)).length!==1&&(te=ae)}return G.makeDescriptor(R,G.makeRange({protocol:L,source:U,params:z,selector:te}))}async function spt(t){return await oe.mktempPromise(async e=>{let r=Ke.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Gr(e,{configuration:r,check:!1,immutable:!1}))})}var Yy=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.fixed=ge.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=ge.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=ge.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=ge.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=ge.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=ge.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=ge.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=ge.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=ge.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=ge.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Js(hl)});this.silent=ge.Boolean("--silent",{hidden:!0});this.packages=ge.Rest()}static{this.paths=[["add"]]}static{this.usage=it.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"<package>\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"],["Add a local package (gzipped tarball format) to the current workspace","$0 add local-package-name@file:../path/to/local-package-name-v0.1.2.tgz"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=r.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),p=A||r.get("preferReuse"),h=Z1(this,o),E=[p?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(U=>typeof U<"u"),I=A?1/0:1,v=await Promise.all(this.packages.map(async U=>{let z=U.match(/^\.{0,2}\//)?await y8(U,{cwd:this.context.cwd,workspace:a}):G.tryParseDescriptor(U),te=U.match(/^(https?:|git@github)/);if(te)throw new st(`It seems you are trying to add a package using a ${pe.pretty(r,`${te[0]}...`,pe.Type.RANGE)} url; we now require package names to be explicitly specified. -Try running the command again with the package name prefixed: ${pe.pretty(r,"yarn add",pe.Type.CODE)} ${pe.pretty(r,G.makeDescriptor(G.makeIdent(null,"my-package"),`${te[0]}...`),pe.Type.DESCRIPTOR)}`);if(!z)throw new st(`The ${pe.pretty(r,U,pe.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let ae=opt(a,z,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(ae.map(async ce=>{let Ce=await $1(z,{project:o,workspace:a,cache:n,fixed:u,target:ce,modifier:h,strategies:E,maxResults:I});return{request:z,suggestedDescriptors:Ce,target:ce}}))})).then(U=>U.flat()),x=await AA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async U=>{for(let{request:z,suggestedDescriptors:{suggestions:te,rejections:ae}}of v)if(te.filter(ce=>ce.descriptor!==null).length===0){let[ce]=ae;if(typeof ce>"u")throw new Error("Assertion failed: Expected an error to have been set");o.configuration.get("enableNetwork")?U.reportError(27,`${G.prettyDescriptor(r,z)} can't be resolved to a satisfying range`):U.reportError(27,`${G.prettyDescriptor(r,z)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),U.reportSeparator(),U.reportExceptionOnce(ce)}});if(x.hasErrors())return x.exitCode();let C=!1,R=[],L=[];for(let{suggestedDescriptors:{suggestions:U},target:z}of v){let te,ae=U.filter(de=>de.descriptor!==null),le=ae[0].descriptor,ce=ae.every(de=>G.areDescriptorsEqual(de.descriptor,le));ae.length===1||ce?te=le:(C=!0,{answer:te}=await(0,Y0e.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:U.map(({descriptor:de,name:Be,reason:Ee})=>de?{name:Be,hint:Ee,descriptor:de}:{name:Be,hint:Ee,disabled:!0}),onCancel:()=>process.exit(130),result(de){return this.find(de,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let Ce=a.manifest[z].get(te.identHash);(typeof Ce>"u"||Ce.descriptorHash!==te.descriptorHash)&&(a.manifest[z].set(te.identHash,te),this.optional&&(z==="dependencies"?a.manifest.ensureDependencyMeta({...te,range:"unknown"}).optional=!0:z==="peerDependencies"&&(a.manifest.ensurePeerDependencyMeta({...te,range:"unknown"}).optional=!0)),typeof Ce>"u"?R.push([a,z,te,E]):L.push([a,z,Ce,te]))}return await r.triggerMultipleHooks(U=>U.afterWorkspaceDependencyAddition,R),await r.triggerMultipleHooks(U=>U.afterWorkspaceDependencyReplacement,L),C&&this.context.stdout.write(` -`),await o.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:n,mode:this.mode})}};function opt(t,e,{dev:r,peer:o,preferDev:a,optional:n}){let u=t.manifest.dependencies.has(e.identHash),A=t.manifest.devDependencies.has(e.identHash),p=t.manifest.peerDependencies.has(e.identHash);if((r||o)&&u)throw new st(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!o&&p)throw new st(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(n&&A)throw new st(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(n&&!o&&p)throw new st(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&n)throw new st(`Package "${G.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let h=[];return o&&h.push("peerDependencies"),(r||a)&&h.push("devDependencies"),n&&h.push("dependencies"),h.length>0?h:A?["devDependencies"]:p?["peerDependencies"]:["dependencies"]}Ge();Ge();qt();var Wy=class extends ut{constructor(){super(...arguments);this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=ge.String({required:!1})}static{this.paths=[["bin"]]}static{this.usage=it.Usage({description:"get the path to a binary script",details:` - When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. - - When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. - `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await kt.find(r,this.context.cwd);if(await o.restoreInstallState(),this.name){let A=(await An.getPackageAccessibleBinaries(a,{project:o})).get(this.name);if(!A)throw new st(`Couldn't find a binary named "${this.name}" for package "${G.prettyLocator(r,a)}"`);let[,p]=A;return this.context.stdout.write(`${p} -`),0}return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async u=>{let A=await An.getPackageAccessibleBinaries(a,{project:o}),h=Array.from(A.keys()).reduce((E,I)=>Math.max(E,I.length),0);for(let[E,[I,v]]of A)u.reportJson({name:E,source:G.stringifyIdent(I),path:v});if(this.verbose)for(let[E,[I]]of A)u.reportInfo(null,`${E.padEnd(h," ")} ${G.prettyLocator(r,I)}`);else for(let E of A.keys())u.reportInfo(null,E)})).exitCode()}};Ge();Pt();qt();var Ky=class extends ut{constructor(){super(...arguments);this.mirror=ge.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=ge.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}static{this.paths=[["cache","clean"],["cache","clear"]]}static{this.usage=it.Usage({description:"remove the shared cache files",details:` - This command will remove all the files from the cache. - `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await Gr.find(r);return(await Rt.start({configuration:r,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&o.mirrorCwd!==null,u=!this.mirror;n&&(await oe.removePromise(o.mirrorCwd),await r.triggerHook(A=>A.cleanGlobalArtifacts,r)),u&&await oe.removePromise(o.cwd)})).exitCode()}};Ge();qt();var K0e=Ze(e2()),C8=ve("util"),Vy=class extends ut{constructor(){super(...arguments);this.why=ge.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=ge.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=ge.String()}static{this.paths=[["config","get"]]}static{this.usage=it.Usage({description:"read a configuration settings",details:` - This command will print a configuration setting. - - Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. - `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*/,"");if(typeof r.settings.get(o)>"u")throw new st(`Couldn't find a configuration settings named "${o}"`);let u=r.getSpecial(o,{hideSecrets:!this.unsafe,getNativePaths:!0}),A=He.convertMapsToIndexableObjects(u),p=a?(0,K0e.default)(A,a):A,h=await Rt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async E=>{E.reportJson(p)});if(!this.json){if(typeof p=="string")return this.context.stdout.write(`${p} -`),h.exitCode();C8.inspect.styles.name="cyan",this.context.stdout.write(`${(0,C8.inspect)(p,{depth:1/0,colors:r.get("enableColors"),compact:!1})} -`)}return h.exitCode()}};Ge();qt();var Mge=Ze(v8()),Oge=Ze(e2()),Uge=Ze(D8()),P8=ve("util"),zy=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=ge.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ge.String();this.value=ge.String()}static{this.paths=[["config","set"]]}static{this.usage=it.Usage({description:"change a configuration settings",details:` - This command will set a configuration setting. - - When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). - - When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. - `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new st("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new st(`Couldn't find a configuration settings named "${a}"`);if(a==="enableStrictSettings")throw new st("This setting only affects the file it's in, and thus cannot be set from the CLI");let A=this.json?JSON.parse(this.value):this.value;await(this.home?C=>Ke.updateHomeConfiguration(C):C=>Ke.updateConfiguration(o(),C))(C=>{if(n){let R=(0,Mge.default)(C);return(0,Uge.default)(R,this.name,A),R}else return{...C,[a]:A}});let E=(await Ke.find(this.context.cwd,this.context.plugins)).getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),I=He.convertMapsToIndexableObjects(E),v=n?(0,Oge.default)(I,n):I;return(await Rt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async C=>{P8.inspect.styles.name="cyan",C.reportInfo(0,`Successfully set ${this.name} to ${(0,P8.inspect)(v,{depth:1/0,colors:r.get("enableColors"),compact:!1})}`)})).exitCode()}};Ge();qt();var Jge=Ze(v8()),Xge=Ze(jge()),Zge=Ze(b8()),Jy=class extends ut{constructor(){super(...arguments);this.home=ge.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ge.String()}static{this.paths=[["config","unset"]]}static{this.usage=it.Usage({description:"unset a configuration setting",details:` - This command will unset a configuration setting. - `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new st("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new st(`Couldn't find a configuration settings named "${a}"`);let A=this.home?h=>Ke.updateHomeConfiguration(h):h=>Ke.updateConfiguration(o(),h);return(await Rt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async h=>{let E=!1;await A(I=>{if(!(0,Xge.default)(I,this.name))return h.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),E=!0,I;let v=n?(0,Jge.default)(I):{...I};return(0,Zge.default)(v,this.name),v}),E||h.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};Ge();Pt();qt();var tk=ve("util"),Xy=class extends ut{constructor(){super(...arguments);this.noDefaults=ge.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.verbose=ge.Boolean("-v,--verbose",{hidden:!0});this.why=ge.Boolean("--why",{hidden:!0});this.names=ge.Rest()}static{this.paths=[["config"]]}static{this.usage=it.Usage({description:"display the current configuration",details:` - This command prints the current active configuration settings. - `,examples:[["Print the active configuration settings","$0 config"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins,{strict:!1}),o=await uy({configuration:r,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:"The --verbose option is deprecated, the settings' descriptions are now always displayed"},{option:this.why,message:"The --why option is deprecated, the settings' sources are now always displayed"}]);if(o!==null)return o;let a=this.names.length>0?[...new Set(this.names)].sort():[...r.settings.keys()].sort(),n,u=await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async A=>{if(r.invalid.size>0&&!this.json){for(let[p,h]of r.invalid)A.reportError(34,`Invalid configuration key "${p}" in ${h}`);A.reportSeparator()}if(this.json)for(let p of a){let h=r.settings.get(p);typeof h>"u"&&A.reportError(34,`No configuration key named "${p}"`);let E=r.getSpecial(p,{hideSecrets:!0,getNativePaths:!0}),I=r.sources.get(p)??"<default>",v=I&&I[0]!=="<"?ue.fromPortablePath(I):I;A.reportJson({key:p,effective:E,source:v,...h})}else{let p={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},h={},E={children:h};for(let I of a){if(this.noDefaults&&!r.sources.has(I))continue;let v=r.settings.get(I),x=r.sources.get(I)??"<default>",C=r.getSpecial(I,{hideSecrets:!0,getNativePaths:!0}),R={Description:{label:"Description",value:pe.tuple(pe.Type.MARKDOWN,{text:v.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:pe.tuple(x[0]==="<"?pe.Type.CODE:pe.Type.PATH,x)}};h[I]={value:pe.tuple(pe.Type.CODE,I),children:R};let L=(U,z)=>{for(let[te,ae]of z)if(ae instanceof Map){let le={};U[te]={children:le},L(le,ae)}else U[te]={label:te,value:pe.tuple(pe.Type.NO_HINT,(0,tk.inspect)(ae,p))}};C instanceof Map?L(R,C):R.Value={label:"Value",value:pe.tuple(pe.Type.NO_HINT,(0,tk.inspect)(C,p))}}a.length!==1&&(n=void 0),fs.emitTree(E,{configuration:r,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof n<"u"){let A=a[0],p=(0,tk.inspect)(r.getSpecial(A,{hideSecrets:!0,getNativePaths:!0}),{colors:r.get("enableColors")});this.context.stdout.write(` -`),this.context.stdout.write(`${p} -`)}return u.exitCode()}};Ge();qt();el();var rk={};Vt(rk,{Strategy:()=>t2,acceptedStrategies:()=>q0t,dedupe:()=>x8});Ge();Ge();var $ge=Ze($o()),t2=(e=>(e.HIGHEST="highest",e))(t2||{}),q0t=new Set(Object.values(t2)),j0t={highest:async(t,e,{resolver:r,fetcher:o,resolveOptions:a,fetchOptions:n})=>{let u=new Map;for(let[p,h]of t.storedResolutions){let E=t.storedDescriptors.get(p);if(typeof E>"u")throw new Error(`Assertion failed: The descriptor (${p}) should have been registered`);He.getSetWithDefault(u,E.identHash).add(h)}let A=new Map(He.mapAndFilter(t.storedDescriptors.values(),p=>G.isVirtualDescriptor(p)?He.mapAndFilter.skip:[p.descriptorHash,He.makeDeferred()]));for(let p of t.storedDescriptors.values()){let h=A.get(p.descriptorHash);if(typeof h>"u")throw new Error(`Assertion failed: The descriptor (${p.descriptorHash}) should have been registered`);let E=t.storedResolutions.get(p.descriptorHash);if(typeof E>"u")throw new Error(`Assertion failed: The resolution (${p.descriptorHash}) should have been registered`);let I=t.originalPackages.get(E);if(typeof I>"u")throw new Error(`Assertion failed: The package (${E}) should have been registered`);Promise.resolve().then(async()=>{let v=r.getResolutionDependencies(p,a),x=Object.fromEntries(await He.allSettledSafe(Object.entries(v).map(async([te,ae])=>{let le=A.get(ae.descriptorHash);if(typeof le>"u")throw new Error(`Assertion failed: The descriptor (${ae.descriptorHash}) should have been registered`);let ce=await le.promise;if(!ce)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[te,ce.updatedPackage]})));if(e.length&&!$ge.default.isMatch(G.stringifyIdent(p),e)||!r.shouldPersistResolution(I,a))return I;let C=u.get(p.identHash);if(typeof C>"u")throw new Error(`Assertion failed: The resolutions (${p.identHash}) should have been registered`);if(C.size===1)return I;let R=[...C].map(te=>{let ae=t.originalPackages.get(te);if(typeof ae>"u")throw new Error(`Assertion failed: The package (${te}) should have been registered`);return ae}),L=await r.getSatisfying(p,x,R,a),U=L.locators?.[0];if(typeof U>"u"||!L.sorted)return I;let z=t.originalPackages.get(U.locatorHash);if(typeof z>"u")throw new Error(`Assertion failed: The package (${U.locatorHash}) should have been registered`);return z}).then(async v=>{let x=await t.preparePackage(v,{resolver:r,resolveOptions:a});h.resolve({descriptor:p,currentPackage:I,updatedPackage:v,resolvedPackage:x})}).catch(v=>{h.reject(v)})}return[...A.values()].map(p=>p.promise)}};async function x8(t,{strategy:e,patterns:r,cache:o,report:a}){let{configuration:n}=t,u=new ki,A=n.makeResolver(),p=n.makeFetcher(),h={cache:o,checksums:t.storedChecksums,fetcher:p,project:t,report:u,cacheOptions:{skipIntegrityCheck:!0}},E={project:t,resolver:A,report:u,fetchOptions:h};return await a.startTimerPromise("Deduplication step",async()=>{let I=j0t[e],v=await I(t,r,{resolver:A,resolveOptions:E,fetcher:p,fetchOptions:h}),x=Zs.progressViaCounter(v.length);await a.reportProgress(x);let C=0;await Promise.all(v.map(U=>U.then(z=>{if(z===null||z.currentPackage.locatorHash===z.updatedPackage.locatorHash)return;C++;let{descriptor:te,currentPackage:ae,updatedPackage:le}=z;a.reportInfo(0,`${G.prettyDescriptor(n,te)} can be deduped from ${G.prettyLocator(n,ae)} to ${G.prettyLocator(n,le)}`),a.reportJson({descriptor:G.stringifyDescriptor(te),currentResolution:G.stringifyLocator(ae),updatedResolution:G.stringifyLocator(le)}),t.storedResolutions.set(te.descriptorHash,le.locatorHash)}).finally(()=>x.tick())));let R;switch(C){case 0:R="No packages";break;case 1:R="One package";break;default:R=`${C} packages`}let L=pe.pretty(n,e,pe.Type.CODE);return a.reportInfo(0,`${R} can be deduped using the ${L} strategy`),C})}var Zy=class extends ut{constructor(){super(...arguments);this.strategy=ge.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Js(t2)});this.check=ge.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Js(hl)});this.patterns=ge.Rest()}static{this.paths=[["dedupe"]]}static{this.usage=it.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd),a=await Gr.find(r);await o.restoreInstallState({restoreResolutions:!1});let n=0,u=await Rt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout,json:this.json},async A=>{n=await x8(o,{strategy:this.strategy,patterns:this.patterns,cache:a,report:A})});return u.hasErrors()?u.exitCode():this.check?n?1:0:await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a,mode:this.mode})}};Ge();qt();var $y=class extends ut{static{this.paths=[["--clipanion=definitions"]]}async execute(){let{plugins:e}=await Ke.find(this.context.cwd,this.context.plugins),r=[];for(let u of e){let{commands:A}=u[1];if(A){let h=Jo.from(A).definitions();r.push([u[0],h])}}let o=this.cli.definitions(),a=(u,A)=>u.split(" ").slice(1).join()===A.split(" ").slice(1).join(),n=ede()["@yarnpkg/builder"].bundles.standard;for(let u of r){let A=u[1];for(let p of A)o.find(h=>a(h.path,p.path)).plugin={name:u[0],isDefault:n.includes(u[0])}}this.context.stdout.write(`${JSON.stringify(o,null,2)} -`)}};var eE=class extends ut{static{this.paths=[["help"],["--help"],["-h"]]}async execute(){this.context.stdout.write(this.cli.usage(null))}};Ge();Pt();qt();var tE=class extends ut{constructor(){super(...arguments);this.leadingArgument=ge.String();this.args=ge.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!G.tryParseIdent(this.leadingArgument)){let r=K.resolve(this.context.cwd,ue.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:r})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};Ge();var rE=class extends ut{static{this.paths=[["-v"],["--version"]]}async execute(){this.context.stdout.write(`${nn||"<unknown>"} -`)}};Ge();Ge();qt();var nE=class extends ut{constructor(){super(...arguments);this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[["exec"]]}static{this.usage=it.Usage({description:"execute a shell script",details:` - This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. - - It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await kt.find(r,this.context.cwd);return await o.restoreInstallState(),await An.executePackageShellcode(a,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:o})}};Ge();qt();el();var iE=class extends ut{constructor(){super(...arguments);this.hash=ge.String({required:!1,validator:YD(om(),[qw(/^p[0-9a-f]{5}$/)])})}static{this.paths=[["explain","peer-requirements"]]}static{this.usage=it.Usage({description:"explain a set of peer requirements",details:` - A peer requirement represents all peer requests that a subject must satisfy when providing a requested package to requesters. - - When the hash argument is specified, this command prints a detailed explanation of the peer requirement corresponding to the hash and whether it is satisfied or not. - - When used without arguments, this command lists all peer requirements and the corresponding hash that can be used to get detailed information about a given requirement. - - **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). - `,examples:[["Explain the corresponding peer requirement for a hash","$0 explain peer-requirements p1a4ed"],["List all peer requirements","$0 explain peer-requirements"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd);return await o.restoreInstallState({restoreResolutions:!1}),await o.applyLightResolution(),typeof this.hash<"u"?await Y0t(this.hash,o,{stdout:this.context.stdout}):await W0t(o,{stdout:this.context.stdout})}};async function Y0t(t,e,r){let o=e.peerRequirementNodes.get(t);if(typeof o>"u")throw new Error(`No peerDependency requirements found for hash: "${t}"`);let a=new Set,n=p=>a.has(p.requester.locatorHash)?{value:pe.tuple(pe.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:p.children.size>0?[{value:pe.tuple(pe.Type.NO_HINT,"...")}]:[]}:(a.add(p.requester.locatorHash),{value:pe.tuple(pe.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:Object.fromEntries(Array.from(p.children.values(),h=>[G.stringifyLocator(h.requester),n(h)]))}),u=e.peerWarnings.find(p=>p.hash===t);return(await Rt.start({configuration:e.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async p=>{let h=pe.mark(e.configuration),E=u?h.Cross:h.Check;if(p.reportInfo(0,`Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} is requested to provide ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)} by its descendants`),p.reportSeparator(),p.reportInfo(0,pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)),fs.emitTree({children:Object.fromEntries(Array.from(o.requests.values(),I=>[G.stringifyLocator(I.requester),n(I)]))},{configuration:e.configuration,stdout:r.stdout,json:!1}),p.reportSeparator(),o.provided.range==="missing:"){let I=u?"":" , but all peer requests are optional";p.reportInfo(0,`${E} Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} does not provide ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)}${I}.`)}else{let I=e.storedResolutions.get(o.provided.descriptorHash);if(!I)throw new Error("Assertion failed: Expected the descriptor to be registered");let v=e.storedPackages.get(I);if(!v)throw new Error("Assertion failed: Expected the package to be registered");p.reportInfo(0,`${E} Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} provides ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)} with version ${G.prettyReference(e.configuration,v.version??"0.0.0")}, ${u?"which does not satisfy all requests.":"which satisfies all requests"}`),u?.type===3&&(u.range?p.reportInfo(0,` The combined requested range is ${pe.pretty(e.configuration,u.range,pe.Type.RANGE)}`):p.reportInfo(0," Unfortunately, the requested ranges have no overlap"))}})).exitCode()}async function W0t(t,e){return(await Rt.start({configuration:t.configuration,stdout:e.stdout,includeFooter:!1,includePrefix:!1},async o=>{let a=pe.mark(t.configuration),n=He.sortMap(t.peerRequirementNodes,[([,u])=>G.stringifyLocator(u.subject),([,u])=>G.stringifyIdent(u.ident)]);for(let[,u]of n.values()){if(!u.root)continue;let A=t.peerWarnings.find(E=>E.hash===u.hash),p=[...G.allPeerRequests(u)],h;if(p.length>2?h=` and ${p.length-1} other dependencies`:p.length===2?h=" and 1 other dependency":h="",u.provided.range!=="missing:"){let E=t.storedResolutions.get(u.provided.descriptorHash);if(!E)throw new Error("Assertion failed: Expected the resolution to have been registered");let I=t.storedPackages.get(E);if(!I)throw new Error("Assertion failed: Expected the provided package to have been registered");let v=`${pe.pretty(t.configuration,u.hash,pe.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${G.prettyLocator(t.configuration,u.subject)} provides ${G.prettyLocator(t.configuration,I)} to ${G.prettyLocator(t.configuration,p[0].requester)}${h}`;A?o.reportWarning(0,v):o.reportInfo(0,v)}else{let E=`${pe.pretty(t.configuration,u.hash,pe.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${G.prettyLocator(t.configuration,u.subject)} doesn't provide ${G.prettyIdent(t.configuration,u.ident)} to ${G.prettyLocator(t.configuration,p[0].requester)}${h}`;A?o.reportWarning(0,E):o.reportInfo(0,E)}}})).exitCode()}Ge();qt();el();Ge();Ge();Pt();qt();var tde=Ze(Jn()),sE=class extends ut{constructor(){super(...arguments);this.useYarnPath=ge.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"});this.onlyIfNeeded=ge.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=ge.String()}static{this.paths=[["set","version"]]}static{this.usage=it.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&r.get("yarnPath")){let A=r.sources.get("yarnPath");if(!A)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let p=r.projectCwd??r.startingCwd;if(K.contains(p,A))return 0}let o=()=>{if(typeof nn>"u")throw new st("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},a,n=(A,p)=>({version:p,url:A.replace(/\{\}/g,p)});if(this.version==="self")a={url:o(),version:nn??"self"};else if(this.version==="latest"||this.version==="berry"||this.version==="stable")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await r2(r,"stable"));else if(this.version==="canary")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await r2(r,"canary"));else if(this.version==="classic")a={url:"https://classic.yarnpkg.com/latest.js",version:"classic"};else if(this.version.match(/^https?:/))a={url:this.version,version:"remote"};else if(this.version.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.version))a={url:`file://${K.resolve(ue.toPortablePath(this.version))}`,version:"file"};else if(Lr.satisfiesWithPrereleases(this.version,">=2.0.0"))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",this.version);else if(Lr.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))a=n("https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js",this.version);else if(Lr.validRange(this.version))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await K0t(r,this.version));else throw new st(`Invalid version descriptor "${this.version}"`);return(await Rt.start({configuration:r,stdout:this.context.stdout,includeLogs:!this.context.quiet},async A=>{let p=async()=>{let h="file://";return a.url.startsWith(h)?(A.reportInfo(0,`Retrieving ${pe.pretty(r,a.url,pe.Type.PATH)}`),await oe.readFilePromise(a.url.slice(h.length))):(A.reportInfo(0,`Downloading ${pe.pretty(r,a.url,pe.Type.URL)}`),await sn.get(a.url,{configuration:r}))};await k8(r,a.version,p,{report:A,useYarnPath:this.useYarnPath})})).exitCode()}};async function K0t(t,e){let o=(await sn.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0})).tags.filter(a=>Lr.satisfiesWithPrereleases(a,e));if(o.length===0)throw new st(`No matching release found for range ${pe.pretty(t,e,pe.Type.RANGE)}.`);return o[0]}async function r2(t,e){let r=await sn.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new st(`Tag ${pe.pretty(t,e,pe.Type.RANGE)} not found`);return r.latest[e]}async function k8(t,e,r,{report:o,useYarnPath:a}){let n,u=async()=>(typeof n>"u"&&(n=await r()),n);if(e===null){let te=await u();await oe.mktempPromise(async ae=>{let le=K.join(ae,"yarn.cjs");await oe.writeFilePromise(le,te);let{stdout:ce}=await Ur.execvp(process.execPath,[ue.fromPortablePath(le),"--version"],{cwd:ae,env:{...t.env,YARN_IGNORE_PATH:"1"}});if(e=ce.trim(),!tde.default.valid(e))throw new Error(`Invalid semver version. ${pe.pretty(t,"yarn --version",pe.Type.CODE)} returned: -${e}`)})}let A=t.projectCwd??t.startingCwd,p=K.resolve(A,".yarn/releases"),h=K.resolve(p,`yarn-${e}.cjs`),E=K.relative(t.startingCwd,h),I=He.isTaggedYarnVersion(e),v=t.get("yarnPath"),x=!I,C=x||!!v||!!a;if(a===!1){if(x)throw new Jt(0,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");C=!1}else!C&&!process.env.COREPACK_ROOT&&(o.reportWarning(0,`You don't seem to have ${pe.applyHyperlink(t,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${pe.applyHyperlink(t,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),C=!0);if(C){let te=await u();o.reportInfo(0,`Saving the new release in ${pe.pretty(t,E,"magenta")}`),await oe.removePromise(K.dirname(h)),await oe.mkdirPromise(K.dirname(h),{recursive:!0}),await oe.writeFilePromise(h,te,{mode:493}),await Ke.updateConfiguration(A,{yarnPath:K.relative(A,h)})}else await oe.removePromise(K.dirname(h)),await Ke.updateConfiguration(A,{yarnPath:Ke.deleteProperty});let R=await Ut.tryFind(A)||new Ut;R.packageManager=`yarn@${I?e:await r2(t,"stable")}`;let L={};R.exportTo(L);let U=K.join(A,Ut.fileName),z=`${JSON.stringify(L,null,R.indent)} -`;return await oe.changeFilePromise(U,z,{automaticNewlines:!0}),{bundleVersion:e}}function rde(t){return wr[ZD(t)]}var V0t=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function z0t(t){let r=`https://repo.yarnpkg.com/${He.isTaggedYarnVersion(nn)?nn:await r2(t,"canary")}/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx`,o=await sn.get(r,{configuration:t});return new Map(Array.from(o.toString().matchAll(V0t),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let n=rde(a.code);if(a.name!==n)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${n}"`);return[a.code,a.details]}))}var oE=class extends ut{constructor(){super(...arguments);this.code=ge.String({required:!1,validator:jw(om(),[qw(/^YN[0-9]{4}$/)])});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["explain"]]}static{this.usage=it.Usage({description:"explain an error code",details:` - When the code argument is specified, this command prints its name and its details. - - When used without arguments, this command lists all error codes and their names. - `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let o=rde(this.code),a=pe.pretty(r,o,pe.Type.CODE),n=this.cli.format().header(`${this.code} - ${a}`),A=(await z0t(r)).get(this.code),p=typeof A<"u"?pe.jsonOrPretty(this.json,r,pe.tuple(pe.Type.MARKDOWN,{text:A,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. - -You can help us by editing this page on GitHub \u{1F642}: -${pe.jsonOrPretty(this.json,r,pe.tuple(pe.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx"))} -`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:o,details:p})} -`):this.context.stdout.write(`${n} - -${p} -`)}else{let o={children:He.mapAndFilter(Object.entries(wr),([a,n])=>Number.isNaN(Number(a))?He.mapAndFilter.skip:{label:Ku(Number(a)),value:pe.tuple(pe.Type.CODE,n)})};fs.emitTree(o,{configuration:r,stdout:this.context.stdout,json:this.json})}}};Ge();Pt();qt();var nde=Ze($o()),aE=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=ge.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=ge.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=ge.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=ge.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=ge.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=ge.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=ge.Rest()}static{this.paths=[["info"]]}static{this.usage=it.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a&&!this.all)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let u=new Set(this.extra);this.cache&&u.add("cache"),this.dependents&&u.add("dependents"),this.manifest&&u.add("manifest");let A=(ae,{recursive:le})=>{let ce=ae.anchoredLocator.locatorHash,Ce=new Map,de=[ce];for(;de.length>0;){let Be=de.shift();if(Ce.has(Be))continue;let Ee=o.storedPackages.get(Be);if(typeof Ee>"u")throw new Error("Assertion failed: Expected the package to be registered");if(Ce.set(Be,Ee),G.isVirtualLocator(Ee)&&de.push(G.devirtualizeLocator(Ee).locatorHash),!(!le&&Be!==ce))for(let g of Ee.dependencies.values()){let me=o.storedResolutions.get(g.descriptorHash);if(typeof me>"u")throw new Error("Assertion failed: Expected the resolution to be registered");de.push(me)}}return Ce.values()},p=({recursive:ae})=>{let le=new Map;for(let ce of o.workspaces)for(let Ce of A(ce,{recursive:ae}))le.set(Ce.locatorHash,Ce);return le.values()},h=({all:ae,recursive:le})=>ae&&le?o.storedPackages.values():ae?p({recursive:le}):A(a,{recursive:le}),E=({all:ae,recursive:le})=>{let ce=h({all:ae,recursive:le}),Ce=this.patterns.map(Ee=>{let g=G.parseLocator(Ee),me=nde.default.makeRe(G.stringifyIdent(g)),we=G.isVirtualLocator(g),Ae=we?G.devirtualizeLocator(g):g;return ne=>{let Z=G.stringifyIdent(ne);if(!me.test(Z))return!1;if(g.reference==="unknown")return!0;let xe=G.isVirtualLocator(ne),Ne=xe?G.devirtualizeLocator(ne):ne;return!(we&&xe&&g.reference!==ne.reference||Ae.reference!==Ne.reference)}}),de=He.sortMap([...ce],Ee=>G.stringifyLocator(Ee));return{selection:de.filter(Ee=>Ce.length===0||Ce.some(g=>g(Ee))),sortedLookup:de}},{selection:I,sortedLookup:v}=E({all:this.all,recursive:this.recursive});if(I.length===0)throw new st("No package matched your request");let x=new Map;if(this.dependents)for(let ae of v)for(let le of ae.dependencies.values()){let ce=o.storedResolutions.get(le.descriptorHash);if(typeof ce>"u")throw new Error("Assertion failed: Expected the resolution to be registered");He.getArrayWithDefault(x,ce).push(ae)}let C=new Map;for(let ae of v){if(!G.isVirtualLocator(ae))continue;let le=G.devirtualizeLocator(ae);He.getArrayWithDefault(C,le.locatorHash).push(ae)}let R={},L={children:R},U=r.makeFetcher(),z={project:o,fetcher:U,cache:n,checksums:o.storedChecksums,report:new ki,cacheOptions:{skipIntegrityCheck:!0}},te=[async(ae,le,ce)=>{if(!le.has("manifest"))return;let Ce=await U.fetch(ae,z),de;try{de=await Ut.find(Ce.prefixPath,{baseFs:Ce.packageFs})}finally{Ce.releaseFs?.()}ce("Manifest",{License:pe.tuple(pe.Type.NO_HINT,de.license),Homepage:pe.tuple(pe.Type.URL,de.raw.homepage??null)})},async(ae,le,ce)=>{if(!le.has("cache"))return;let Ce=o.storedChecksums.get(ae.locatorHash)??null,de=n.getLocatorPath(ae,Ce),Be;if(de!==null)try{Be=await oe.statPromise(de)}catch{}let Ee=typeof Be<"u"?[Be.size,pe.Type.SIZE]:void 0;ce("Cache",{Checksum:pe.tuple(pe.Type.NO_HINT,Ce),Path:pe.tuple(pe.Type.PATH,de),Size:Ee})}];for(let ae of I){let le=G.isVirtualLocator(ae);if(!this.virtuals&&le)continue;let ce={},Ce={value:[ae,pe.Type.LOCATOR],children:ce};if(R[G.stringifyLocator(ae)]=Ce,this.nameOnly){delete Ce.children;continue}let de=C.get(ae.locatorHash);typeof de<"u"&&(ce.Instances={label:"Instances",value:pe.tuple(pe.Type.NUMBER,de.length)}),ce.Version={label:"Version",value:pe.tuple(pe.Type.NO_HINT,ae.version)};let Be=(g,me)=>{let we={};if(ce[g]=we,Array.isArray(me))we.children=me.map(Ae=>({value:Ae}));else{let Ae={};we.children=Ae;for(let[ne,Z]of Object.entries(me))typeof Z>"u"||(Ae[ne]={label:ne,value:Z})}};if(!le){for(let g of te)await g(ae,u,Be);await r.triggerHook(g=>g.fetchPackageInfo,ae,u,Be)}ae.bin.size>0&&!le&&Be("Exported Binaries",[...ae.bin.keys()].map(g=>pe.tuple(pe.Type.PATH,g)));let Ee=x.get(ae.locatorHash);typeof Ee<"u"&&Ee.length>0&&Be("Dependents",Ee.map(g=>pe.tuple(pe.Type.LOCATOR,g))),ae.dependencies.size>0&&!le&&Be("Dependencies",[...ae.dependencies.values()].map(g=>{let me=o.storedResolutions.get(g.descriptorHash),we=typeof me<"u"?o.storedPackages.get(me)??null:null;return pe.tuple(pe.Type.RESOLUTION,{descriptor:g,locator:we})})),ae.peerDependencies.size>0&&le&&Be("Peer dependencies",[...ae.peerDependencies.values()].map(g=>{let me=ae.dependencies.get(g.identHash),we=typeof me<"u"?o.storedResolutions.get(me.descriptorHash)??null:null,Ae=we!==null?o.storedPackages.get(we)??null:null;return pe.tuple(pe.Type.RESOLUTION,{descriptor:g,locator:Ae})}))}fs.emitTree(L,{configuration:r,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};Ge();Pt();Nl();var nk=Ze(X0());qt();var Q8=Ze(Jn());el();var J0t=[{selector:t=>t===-1,name:"nodeLinker",value:"node-modules"},{selector:t=>t!==-1&&t<8,name:"enableGlobalCache",value:!1},{selector:t=>t!==-1&&t<8,name:"compressionLevel",value:"mixed"}],lE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=ge.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=ge.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.refreshLockfile=ge.Boolean("--refresh-lockfile",{description:"Refresh the package metadata stored in the lockfile"});this.checkCache=ge.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"});this.checkResolutions=ge.Boolean("--check-resolutions",{description:"Validates that the package resolutions are coherent"});this.inlineBuilds=ge.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Js(hl)});this.cacheFolder=ge.String("--cache-folder",{hidden:!0});this.frozenLockfile=ge.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=ge.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=ge.Boolean("--non-interactive",{hidden:!0});this.preferOffline=ge.Boolean("--prefer-offline",{hidden:!0});this.production=ge.Boolean("--production",{hidden:!0});this.registry=ge.String("--registry",{hidden:!0});this.silent=ge.Boolean("--silent",{hidden:!0});this.networkTimeout=ge.String("--network-timeout",{hidden:!0})}static{this.paths=[["install"],it.Default]}static{this.usage=it.Usage({description:"install the project dependencies",details:"\n This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the `.pnp.cjs` file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your `.pnp.cjs` file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&r.useWithSource("<cli>",{enableInlineBuilds:this.inlineBuilds},r.startingCwd,{overwrite:!0});let o=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,a=await uy({configuration:r,stdout:this.context.stdout},[{option:this.ignoreEngines,message:"The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",error:!nk.default.VERCEL},{option:this.registry,message:"The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file"},{option:this.preferOffline,message:"The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",error:!nk.default.VERCEL},{option:this.production,message:"The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",error:!0},{option:this.nonInteractive,message:"The --non-interactive option is deprecated",error:!o},{option:this.frozenLockfile,message:"The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",callback:()=>this.immutable=this.frozenLockfile},{option:this.cacheFolder,message:"The cache-folder option has been deprecated; use rc settings instead",error:!nk.default.NETLIFY}]);if(a!==null)return a;let n=this.mode==="update-lockfile";if(n&&(this.immutable||this.immutableCache))throw new st(`${pe.pretty(r,"--immutable",pe.Type.CODE)} and ${pe.pretty(r,"--immutable-cache",pe.Type.CODE)} cannot be used with ${pe.pretty(r,"--mode=update-lockfile",pe.Type.CODE)}`);let u=(this.immutable??r.get("enableImmutableInstalls"))&&!n,A=this.immutableCache&&!n;if(r.projectCwd!==null){let R=await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{let U=!1;await $0t(r,u)&&(L.reportInfo(48,"Automatically removed core plugins that are now builtins \u{1F44D}"),U=!0),await Z0t(r,u)&&(L.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),U=!0),U&&L.reportSeparator()});if(R.hasErrors())return R.exitCode()}if(r.projectCwd!==null){let R=await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{if(Ke.telemetry?.isNew)Ke.telemetry.commitTips(),L.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),L.reportInfo(65,`Run ${pe.pretty(r,"yarn config set --home enableTelemetry 0",pe.Type.CODE)} to disable`),L.reportSeparator();else if(Ke.telemetry?.shouldShowTips){let U=await sn.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0}).catch(()=>null);if(U!==null){let z=null;if(nn!==null){let ae=Q8.default.prerelease(nn)?"canary":"stable",le=U.latest[ae];Q8.default.gt(le,nn)&&(z=[ae,le])}if(z)Ke.telemetry.commitTips(),L.reportInfo(88,`${pe.applyStyle(r,`A new ${z[0]} version of Yarn is available:`,pe.Style.BOLD)} ${G.prettyReference(r,z[1])}!`),L.reportInfo(88,`Upgrade now by running ${pe.pretty(r,`yarn set version ${z[1]}`,pe.Type.CODE)}`),L.reportSeparator();else{let te=Ke.telemetry.selectTip(U.tips);te&&(L.reportInfo(89,pe.pretty(r,te.message,pe.Type.MARKDOWN_INLINE)),te.url&&L.reportInfo(89,`Learn more at ${te.url}`),L.reportSeparator())}}}});if(R.hasErrors())return R.exitCode()}let{project:p,workspace:h}=await kt.find(r,this.context.cwd),E=p.lockfileLastVersion;if(E!==null){let R=await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{let U={};for(let z of J0t)z.selector(E)&&typeof r.sources.get(z.name)>"u"&&(r.use("<compat>",{[z.name]:z.value},p.cwd,{overwrite:!0}),U[z.name]=z.value);Object.keys(U).length>0&&(await Ke.updateConfiguration(p.cwd,U),L.reportInfo(87,"Migrated your project to the latest Yarn version \u{1F680}"),L.reportSeparator())});if(R.hasErrors())return R.exitCode()}let I=await Gr.find(r,{immutable:A,check:this.checkCache});if(!h)throw new sr(p.cwd,this.context.cwd);await p.restoreInstallState({restoreResolutions:!1});let v=r.get("enableHardenedMode");v&&typeof r.sources.get("enableHardenedMode")>"u"&&await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async R=>{R.reportWarning(0,"Yarn detected that the current workflow is executed from a public pull request. For safety the hardened mode has been enabled."),R.reportWarning(0,`It will prevent malicious lockfile manipulations, in exchange for a slower install time. You can opt-out if necessary; check our ${pe.applyHyperlink(r,"documentation","https://yarnpkg.com/features/security#hardened-mode")} for more details.`),R.reportSeparator()}),(this.refreshLockfile??v)&&(p.lockfileNeedsRefresh=!0);let x=this.checkResolutions??v;return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout,forceSectionAlignment:!0,includeLogs:!0,includeVersion:!0},async R=>{await p.install({cache:I,report:R,immutable:u,checkResolutions:x,mode:this.mode})})).exitCode()}},X0t="<<<<<<<";async function Z0t(t,e){if(!t.projectCwd)return!1;let r=K.join(t.projectCwd,dr.lockfile);if(!await oe.existsPromise(r)||!(await oe.readFilePromise(r,"utf8")).includes(X0t))return!1;if(e)throw new Jt(47,"Cannot autofix a lockfile when running an immutable install");let a=await Ur.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:t.projectCwd});if(a.code!==0&&(a=await Ur.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0&&(a=await Ur.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0)throw new Jt(83,"Git returned an error when trying to find the commits pertaining to the conflict");let n=await Promise.all(a.stdout.trim().split(/\n/).map(async A=>{let p=await Ur.execvp("git",["show",`${A}:./${dr.lockfile}`],{cwd:t.projectCwd});if(p.code!==0)throw new Jt(83,`Git returned an error when trying to access the lockfile content in ${A}`);try{return Ki(p.stdout)}catch{throw new Jt(46,"A variant of the conflicting lockfile failed to parse")}}));n=n.filter(A=>!!A.__metadata);for(let A of n){if(A.__metadata.version<7)for(let p of Object.keys(A)){if(p==="__metadata")continue;let h=G.parseDescriptor(p,!0),E=t.normalizeDependency(h),I=G.stringifyDescriptor(E);I!==p&&(A[I]=A[p],delete A[p])}for(let p of Object.keys(A)){if(p==="__metadata")continue;let h=A[p].checksum;typeof h=="string"&&h.includes("/")||(A[p].checksum=`${A.__metadata.cacheKey}/${h}`)}}let u=Object.assign({},...n);u.__metadata.version=`${Math.min(...n.map(A=>parseInt(A.__metadata.version??0)))}`,u.__metadata.cacheKey="merged";for(let[A,p]of Object.entries(u))typeof p=="string"&&delete u[A];return await oe.changeFilePromise(r,Da(u),{automaticNewlines:!0}),!0}async function $0t(t,e){if(!t.projectCwd)return!1;let r=[],o=K.join(t.projectCwd,".yarn/plugins/@yarnpkg");return await Ke.updateConfiguration(t.projectCwd,{plugins:n=>{if(!Array.isArray(n))return n;let u=n.filter(A=>{if(!A.path)return!0;let p=K.resolve(t.projectCwd,A.path),h=l1.has(A.spec)&&K.contains(o,p);return h&&r.push(p),!h});return u.length===0?Ke.deleteProperty:u.length===n.length?n:u}},{immutable:e})?(await Promise.all(r.map(async n=>{await oe.removePromise(n)})),!0):!1}Ge();Pt();qt();var cE=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=ge.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=ge.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=ge.Rest()}static{this.paths=[["link"]]}static{this.usage=it.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=o.topLevelWorkspace,A=[];for(let p of this.destinations){let h=K.resolve(this.context.cwd,ue.toPortablePath(p)),E=await Ke.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:I,workspace:v}=await kt.find(E,h);if(o.cwd===I.cwd)throw new st(`Invalid destination '${p}'; Can't link the project to itself`);if(!v)throw new sr(I.cwd,h);if(this.all){let x=!1;for(let C of I.workspaces)C.manifest.name&&(!C.manifest.private||this.private)&&(A.push(C),x=!0);if(!x)throw new st(`No workspace found to be linked in the target project: ${p}`)}else{if(!v.manifest.name)throw new st(`The target workspace at '${p}' doesn't have a name and thus cannot be linked`);if(v.manifest.private&&!this.private)throw new st(`The target workspace at '${p}' is marked private - use the --private flag to link it anyway`);A.push(v)}}for(let p of A){let h=G.stringifyIdent(p.anchoredLocator),E=this.relative?K.relative(o.cwd,p.cwd):p.cwd;u.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${E}`})}return await o.installWithNewReport({stdout:this.context.stdout},{cache:n})}};qt();var uE=class extends ut{constructor(){super(...arguments);this.args=ge.Proxy()}static{this.paths=[["node"]]}static{this.usage=it.Usage({description:"run node with the hook already setup",details:` - This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - - The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. - `,examples:[["Run a Node script","$0 node ./my-script.js"]]})}async execute(){return this.cli.run(["exec","node",...this.args])}};Ge();qt();var AE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","check"]]}static{this.usage=it.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:` - Check only the plugins from https. - - If this command detects any plugin differences in the CI environment, it will throw an error. - `,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await Ke.findRcFiles(this.context.cwd);return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{for(let u of o)if(u.data?.plugins)for(let A of u.data.plugins){if(!A.checksum||!A.spec.match(/^https?:/))continue;let p=await sn.get(A.spec,{configuration:r}),h=wn.makeHash(p);if(A.checksum===h)continue;let E=pe.pretty(r,A.path,pe.Type.PATH),I=pe.pretty(r,A.spec,pe.Type.URL),v=`${E} is different from the file provided by ${I}`;n.reportJson({...A,newChecksum:h}),n.reportError(0,v)}})).exitCode()}};Ge();Ge();Pt();qt();var lde=ve("os");Ge();Pt();qt();var ide=ve("os");Ge();Nl();qt();var egt="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Hg(t,e){let r=await sn.get(egt,{configuration:t}),o=Ki(r.toString());return Object.fromEntries(Object.entries(o).filter(([a,n])=>!e||Lr.satisfiesWithPrereleases(e,n.range??"<4.0.0-rc.1")))}var fE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","list"]]}static{this.usage=it.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{let n=await Hg(r,nn);for(let[u,{experimental:A,...p}]of Object.entries(n)){let h=u;A&&(h+=" [experimental]"),a.reportJson({name:u,experimental:A,...p}),a.reportInfo(null,h)}})).exitCode()}};var tgt=/^[0-9]+$/,rgt=process.platform==="win32";function sde(t){return tgt.test(t)?`pull/${t}/head`:t}var ngt=({repository:t,branch:e},r)=>[["git","init",ue.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin","--depth=1",sde(e)],["git","reset","--hard","FETCH_HEAD"]],igt=({branch:t})=>[["git","fetch","origin","--depth=1",sde(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],sgt=({plugins:t,noMinify:e},r,o)=>[["yarn","build:cli",...new Array().concat(...t.map(a=>["--plugin",K.resolve(o,a)])),...e?["--no-minify"]:[],"|"],[rgt?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",ue.fromPortablePath(r),"|"]],pE=class extends ut{constructor(){super(...arguments);this.installPath=ge.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ge.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ge.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=ge.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"});this.noMinify=ge.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=ge.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=ge.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}static{this.paths=[["set","version","from","sources"]]}static{this.usage=it.Usage({description:"build Yarn from master",details:` - This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. - - By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. - `,examples:[["Build Yarn from master","$0 set version from sources"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd),a=typeof this.installPath<"u"?K.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):K.resolve(ue.toPortablePath((0,ide.tmpdir)()),"yarnpkg-sources",wn.makeHash(this.repository).slice(0,6));return(await Rt.start({configuration:r,stdout:this.context.stdout},async u=>{await F8(this,{configuration:r,report:u,target:a}),u.reportSeparator(),u.reportInfo(0,"Building a fresh bundle"),u.reportSeparator();let A=await Ur.execvp("git",["rev-parse","--short","HEAD"],{cwd:a,strict:!0}),p=K.join(a,`packages/yarnpkg-cli/bundles/yarn-${A.stdout.trim()}.js`);oe.existsSync(p)||(await n2(sgt(this,p,a),{configuration:r,context:this.context,target:a}),u.reportSeparator());let h=await oe.readFilePromise(p);if(!this.dryRun){let{bundleVersion:E}=await k8(r,null,async()=>h,{report:u});this.skipPlugins||await ogt(this,E,{project:o,report:u,target:a})}})).exitCode()}};async function n2(t,{configuration:e,context:r,target:o}){for(let[a,...n]of t){let u=n[n.length-1]==="|";if(u&&n.pop(),u)await Ur.pipevp(a,n,{cwd:o,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${pe.pretty(e,` $ ${[a,...n].join(" ")}`,"grey")} -`);try{await Ur.execvp(a,n,{cwd:o,strict:!0})}catch(A){throw r.stdout.write(A.stdout||A.stack),A}}}}async function F8(t,{configuration:e,report:r,target:o}){let a=!1;if(!t.force&&oe.existsSync(K.join(o,".git"))){r.reportInfo(0,"Fetching the latest commits"),r.reportSeparator();try{await n2(igt(t),{configuration:e,context:t.context,target:o}),a=!0}catch{r.reportSeparator(),r.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(0,"Cloning the remote repository"),r.reportSeparator(),await oe.removePromise(o),await oe.mkdirPromise(o,{recursive:!0}),await n2(ngt(t,o),{configuration:e,context:t.context,target:o}))}async function ogt(t,e,{project:r,report:o,target:a}){let n=await Hg(r.configuration,e),u=new Set(Object.keys(n));for(let A of r.configuration.plugins.keys())u.has(A)&&await R8(A,t,{project:r,report:o,target:a})}Ge();Ge();Pt();qt();var ode=Ze(Jn()),ade=ve("vm");var hE=class extends ut{constructor(){super(...arguments);this.name=ge.String();this.checksum=ge.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}static{this.paths=[["plugin","import"]]}static{this.usage=it.Usage({category:"Plugin-related commands",description:"download a plugin",details:` - This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. - - Three types of plugin references are accepted: - - - If the plugin is stored within the Yarn repository, it can be referenced by name. - - Third-party plugins can be referenced directly through their public urls. - - Local plugins can be referenced by their path on the disk. - - If the \`--no-checksum\` option is set, Yarn will no longer care if the plugin is modified. - - Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). - `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Rt.start({configuration:r,stdout:this.context.stdout},async a=>{let{project:n}=await kt.find(r,this.context.cwd),u,A;if(this.name.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.name)){let p=K.resolve(this.context.cwd,ue.toPortablePath(this.name));a.reportInfo(0,`Reading ${pe.pretty(r,p,pe.Type.PATH)}`),u=K.relative(n.cwd,p),A=await oe.readFilePromise(p)}else{let p;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new Jt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}u=this.name,p=this.name}else{let h=G.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(h.reference!=="unknown"&&!ode.default.valid(h.reference))throw new Jt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let E=G.stringifyIdent(h),I=await Hg(r,nn);if(!Object.hasOwn(I,E)){let v=`Couldn't find a plugin named ${G.prettyIdent(r,h)} on the remote registry. -`;throw r.plugins.has(E)?v+=`A plugin named ${G.prettyIdent(r,h)} is already installed; possibly attempting to import a built-in plugin.`:v+=`Note that only the plugins referenced on our website (${pe.pretty(r,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",pe.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${pe.pretty(r,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",pe.Type.URL)}).`,new Jt(51,v)}u=E,p=I[E].url,h.reference!=="unknown"?p=p.replace(/\/master\//,`/${E}/${h.reference}/`):nn!==null&&(p=p.replace(/\/master\//,`/@yarnpkg/cli/${nn}/`))}a.reportInfo(0,`Downloading ${pe.pretty(r,p,"green")}`),A=await sn.get(p,{configuration:r})}await T8(u,A,{checksum:this.checksum,project:n,report:a})})).exitCode()}};async function T8(t,e,{checksum:r=!0,project:o,report:a}){let{configuration:n}=o,u={},A={exports:u};(0,ade.runInNewContext)(e.toString(),{module:A,exports:u});let h=`.yarn/plugins/${A.exports.name}.cjs`,E=K.resolve(o.cwd,h);a.reportInfo(0,`Saving the new plugin in ${pe.pretty(n,h,"magenta")}`),await oe.mkdirPromise(K.dirname(E),{recursive:!0}),await oe.writeFilePromise(E,e);let I={path:h,spec:t};r&&(I.checksum=wn.makeHash(e)),await Ke.addPlugin(o.cwd,[I])}var agt=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],gE=class extends ut{constructor(){super(...arguments);this.installPath=ge.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ge.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ge.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=ge.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=ge.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=ge.String()}static{this.paths=[["plugin","import","from","sources"]]}static{this.usage=it.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` - This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. - - The plugins can be referenced by their short name if sourced from the official Yarn repository. - `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=typeof this.installPath<"u"?K.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):K.resolve(ue.toPortablePath((0,lde.tmpdir)()),"yarnpkg-sources",wn.makeHash(this.repository).slice(0,6));return(await Rt.start({configuration:r,stdout:this.context.stdout},async n=>{let{project:u}=await kt.find(r,this.context.cwd),A=G.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),p=G.stringifyIdent(A),h=await Hg(r,nn);if(!Object.hasOwn(h,p))throw new Jt(51,`Couldn't find a plugin named "${p}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let E=p;await F8(this,{configuration:r,report:n,target:o}),await R8(E,this,{project:u,report:n,target:o})})).exitCode()}};async function R8(t,{context:e,noMinify:r},{project:o,report:a,target:n}){let u=t.replace(/@yarnpkg\//,""),{configuration:A}=o;a.reportSeparator(),a.reportInfo(0,`Building a fresh ${u}`),a.reportSeparator(),await n2(agt({pluginName:u,noMinify:r},n),{configuration:A,context:e,target:n}),a.reportSeparator();let p=K.resolve(n,`packages/${u}/bundles/${t}.js`),h=await oe.readFilePromise(p);await T8(t,h,{project:o,report:a})}Ge();Pt();qt();var dE=class extends ut{constructor(){super(...arguments);this.name=ge.String()}static{this.paths=[["plugin","remove"]]}static{this.usage=it.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` - This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. - - **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. - `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd);return(await Rt.start({configuration:r,stdout:this.context.stdout},async n=>{let u=this.name,A=G.parseIdent(u);if(!r.plugins.has(u))throw new st(`${G.prettyIdent(r,A)} isn't referenced by the current configuration`);let p=`.yarn/plugins/${u}.cjs`,h=K.resolve(o.cwd,p);oe.existsSync(h)&&(n.reportInfo(0,`Removing ${pe.pretty(r,p,pe.Type.PATH)}...`),await oe.removePromise(h)),n.reportInfo(0,"Updating the configuration..."),await Ke.updateConfiguration(o.cwd,{plugins:E=>{if(!Array.isArray(E))return E;let I=E.filter(v=>v.path!==p);return I.length===0?Ke.deleteProperty:I.length===E.length?E:I}})})).exitCode()}};Ge();qt();var mE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","runtime"]]}static{this.usage=it.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` - This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. - `,examples:[["List the currently active plugins","$0 plugin runtime"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{for(let n of r.plugins.keys()){let u=this.context.plugins.plugins.has(n),A=n;u&&(A+=" [builtin]"),a.reportJson({name:n,builtin:u}),a.reportInfo(null,`${A}`)}})).exitCode()}};Ge();Ge();qt();var yE=class extends ut{constructor(){super(...arguments);this.idents=ge.Rest()}static{this.paths=[["rebuild"]]}static{this.usage=it.Usage({description:"rebuild the project's native packages",details:` - This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. - - Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). - - By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. - `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);let u=new Set;for(let A of this.idents)u.add(G.parseIdent(A).identHash);if(await o.restoreInstallState({restoreResolutions:!1}),await o.resolveEverything({cache:n,report:new ki}),u.size>0)for(let A of o.storedPackages.values())u.has(A.identHash)&&(o.storedBuildState.delete(A.locatorHash),o.skippedBuilds.delete(A.locatorHash));else o.storedBuildState.clear(),o.skippedBuilds.clear();return await o.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ge();Ge();Ge();qt();var N8=Ze($o());el();var EE=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Js(hl)});this.patterns=ge.Rest()}static{this.paths=[["remove"]]}static{this.usage=it.Usage({description:"remove dependencies from the project",details:` - This command will remove the packages matching the specified patterns from the current workspace. - - If the \`--mode=<mode>\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: - - - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - - - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - - This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. - `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.all?o.workspaces:[a],A=["dependencies","devDependencies","peerDependencies"],p=[],h=!1,E=[];for(let C of this.patterns){let R=!1,L=G.parseIdent(C);for(let U of u){let z=[...U.manifest.peerDependenciesMeta.keys()];for(let te of(0,N8.default)(z,C))U.manifest.peerDependenciesMeta.delete(te),h=!0,R=!0;for(let te of A){let ae=U.manifest.getForScope(te),le=[...ae.values()].map(ce=>G.stringifyIdent(ce));for(let ce of(0,N8.default)(le,G.stringifyIdent(L))){let{identHash:Ce}=G.parseIdent(ce),de=ae.get(Ce);if(typeof de>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");U.manifest[te].delete(Ce),E.push([U,te,de]),h=!0,R=!0}}}R||p.push(C)}let I=p.length>1?"Patterns":"Pattern",v=p.length>1?"don't":"doesn't",x=this.all?"any":"this";if(p.length>0)throw new st(`${I} ${pe.prettyList(r,p,pe.Type.CODE)} ${v} match any packages referenced by ${x} workspace`);return h?(await r.triggerMultipleHooks(C=>C.afterWorkspaceDependencyRemoval,E),await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})):0}};Ge();Ge();qt();var cde=ve("util"),CE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["run"]]}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);return(await Rt.start({configuration:r,stdout:this.context.stdout,json:this.json},async u=>{let A=a.manifest.scripts,p=He.sortMap(A.keys(),I=>I),h={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},E=p.reduce((I,v)=>Math.max(I,v.length),0);for(let[I,v]of A.entries())u.reportInfo(null,`${I.padEnd(E," ")} ${(0,cde.inspect)(v,h)}`),u.reportJson({name:I,script:v})})).exitCode()}};Ge();Ge();qt();var wE=class extends ut{constructor(){super(...arguments);this.inspect=ge.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=ge.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=ge.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=ge.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=ge.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=ge.Boolean("--silent",{hidden:!0});this.scriptName=ge.String();this.args=ge.Proxy()}static{this.paths=[["run"]]}static{this.usage=it.Usage({description:"run a script defined in the package.json",details:` - This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - - - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. - - - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. - - - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. - - Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). - `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a,locator:n}=await kt.find(r,this.context.cwd);await o.restoreInstallState();let u=this.topLevel?o.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await An.hasPackageScript(u,this.scriptName,{project:o}))return await An.executePackageScript(u,this.scriptName,this.args,{project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let A=await An.getPackageAccessibleBinaries(u,{project:o});if(A.get(this.scriptName)){let h=[];return this.inspect&&(typeof this.inspect=="string"?h.push(`--inspect=${this.inspect}`):h.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?h.push(`--inspect-brk=${this.inspectBrk}`):h.push("--inspect-brk")),this.require&&h.push(`--require=${this.require}`),await An.executePackageAccessibleBinary(u,this.scriptName,this.args,{cwd:this.context.cwd,project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:h,packageAccessibleBinaries:A})}if(!this.topLevel&&!this.binariesOnly&&a&&this.scriptName.includes(":")){let E=(await Promise.all(o.workspaces.map(async I=>I.manifest.scripts.has(this.scriptName)?I:null))).filter(I=>I!==null);if(E.length===1)return await An.executeWorkspaceScript(E[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new st(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${G.prettyLocator(r,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new st(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${G.prettyLocator(r,n)}).`);{if(this.scriptName==="global")throw new st("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let h=[this.scriptName].concat(this.args);for(let[E,I]of Uy)for(let v of I)if(h.length>=v.length&&JSON.stringify(h.slice(0,v.length))===JSON.stringify(v))throw new st(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${E} plugin. You can install it with "yarn plugin import ${E}".`);throw new st(`Couldn't find a script named "${this.scriptName}".`)}}};Ge();Ge();qt();var IE=class extends ut{constructor(){super(...arguments);this.descriptor=ge.String();this.resolution=ge.String()}static{this.paths=[["set","resolution"]]}static{this.usage=it.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, edit the `resolutions` field in your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(await o.restoreInstallState({restoreResolutions:!1}),!a)throw new sr(o.cwd,this.context.cwd);let u=G.parseDescriptor(this.descriptor,!0),A=G.makeDescriptor(u,this.resolution);return o.storedDescriptors.set(u.descriptorHash,u),o.storedDescriptors.set(A.descriptorHash,A),o.resolutionAliases.set(u.descriptorHash,A.descriptorHash),await o.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Ge();Pt();qt();var ude=Ze($o()),BE=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=ge.Rest()}static{this.paths=[["unlink"]]}static{this.usage=it.Usage({description:"disconnect the local project from another one",details:` - This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. - `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);let u=o.topLevelWorkspace,A=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:p,reference:h}of u.manifest.resolutions)h.startsWith("portal:")&&A.add(p.descriptor.fullName);if(this.leadingArguments.length>0)for(let p of this.leadingArguments){let h=K.resolve(this.context.cwd,ue.toPortablePath(p));if(He.isPathLike(p)){let E=await Ke.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:I,workspace:v}=await kt.find(E,h);if(!v)throw new sr(I.cwd,h);if(this.all){for(let x of I.workspaces)x.manifest.name&&A.add(G.stringifyIdent(x.anchoredLocator));if(A.size===0)throw new st("No workspace found to be unlinked in the target project")}else{if(!v.manifest.name)throw new st("The target workspace doesn't have a name and thus cannot be unlinked");A.add(G.stringifyIdent(v.anchoredLocator))}}else{let E=[...u.manifest.resolutions.map(({pattern:I})=>I.descriptor.fullName)];for(let I of(0,ude.default)(E,p))A.add(I)}}return u.manifest.resolutions=u.manifest.resolutions.filter(({pattern:p})=>!A.has(p.descriptor.fullName)),await o.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ge();Ge();Ge();qt();var Ade=Ze(J1()),L8=Ze($o());el();var vE=class extends ut{constructor(){super(...arguments);this.interactive=ge.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.fixed=ge.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=ge.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=ge.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=ge.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Js(hl)});this.patterns=ge.Rest()}static{this.paths=[["up"]]}static{this.usage=it.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]})}static{this.schema=[Yw("recursive",Yu.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})]}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=[...o.storedDescriptors.values()],A=u.map(E=>G.stringifyIdent(E)),p=new Set;for(let E of this.patterns){if(G.parseDescriptor(E).range!=="unknown")throw new st("Ranges aren't allowed when using --recursive");for(let I of(0,L8.default)(A,E)){let v=G.parseIdent(I);p.add(v.identHash)}}let h=u.filter(E=>p.has(E.identHash));for(let E of h)o.storedDescriptors.delete(E.descriptorHash),o.storedResolutions.delete(E.descriptorHash);return await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}async executeUpClassic(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=r.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),p=Z1(this,o),h=A?["keep","reuse","project","latest"]:["project","latest"],E=[],I=[];for(let L of this.patterns){let U=!1,z=G.parseDescriptor(L),te=G.stringifyIdent(z);for(let ae of o.workspaces)for(let le of["dependencies","devDependencies"]){let Ce=[...ae.manifest.getForScope(le).values()].map(Be=>G.stringifyIdent(Be)),de=te==="*"?Ce:(0,L8.default)(Ce,te);for(let Be of de){let Ee=G.parseIdent(Be),g=ae.manifest[le].get(Ee.identHash);if(typeof g>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let me=G.makeDescriptor(Ee,z.range);E.push(Promise.resolve().then(async()=>[ae,le,g,await $1(me,{project:o,workspace:ae,cache:n,target:le,fixed:u,modifier:p,strategies:h})])),U=!0}}U||I.push(L)}if(I.length>1)throw new st(`Patterns ${pe.prettyList(r,I,pe.Type.CODE)} don't match any packages referenced by any workspace`);if(I.length>0)throw new st(`Pattern ${pe.prettyList(r,I,pe.Type.CODE)} doesn't match any packages referenced by any workspace`);let v=await Promise.all(E),x=await AA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async L=>{for(let[,,U,{suggestions:z,rejections:te}]of v){let ae=z.filter(le=>le.descriptor!==null);if(ae.length===0){let[le]=te;if(typeof le>"u")throw new Error("Assertion failed: Expected an error to have been set");let ce=this.cli.error(le);o.configuration.get("enableNetwork")?L.reportError(27,`${G.prettyDescriptor(r,U)} can't be resolved to a satisfying range - -${ce}`):L.reportError(27,`${G.prettyDescriptor(r,U)} can't be resolved to a satisfying range (note: network resolution has been disabled) - -${ce}`)}else ae.length>1&&!A&&L.reportError(27,`${G.prettyDescriptor(r,U)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(x.hasErrors())return x.exitCode();let C=!1,R=[];for(let[L,U,,{suggestions:z}]of v){let te,ae=z.filter(de=>de.descriptor!==null),le=ae[0].descriptor,ce=ae.every(de=>G.areDescriptorsEqual(de.descriptor,le));ae.length===1||ce?te=le:(C=!0,{answer:te}=await(0,Ade.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${G.prettyWorkspace(r,L)} \u276F ${U}?`,choices:z.map(({descriptor:de,name:Be,reason:Ee})=>de?{name:Be,hint:Ee,descriptor:de}:{name:Be,hint:Ee,disabled:!0}),onCancel:()=>process.exit(130),result(de){return this.find(de,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let Ce=L.manifest[U].get(te.identHash);if(typeof Ce>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(Ce.descriptorHash!==te.descriptorHash)L.manifest[U].set(te.identHash,te),R.push([L,U,Ce,te]);else{let de=r.makeResolver(),Be={project:o,resolver:de},Ee=r.normalizeDependency(Ce),g=de.bindDescriptor(Ee,L.anchoredLocator,Be);o.forgetResolution(g)}}return await r.triggerMultipleHooks(L=>L.afterWorkspaceDependencyReplacement,R),C&&this.context.stdout.write(` -`),await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}};Ge();Ge();Ge();qt();var DE=class extends ut{constructor(){super(...arguments);this.recursive=ge.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=ge.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=ge.String()}static{this.paths=[["why"]]}static{this.usage=it.Usage({description:"display the reason why a package is needed",details:` - This command prints the exact reasons why a package appears in the dependency tree. - - If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. - `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=G.parseIdent(this.package).identHash,u=this.recursive?cgt(o,n,{configuration:r,peers:this.peers}):lgt(o,n,{configuration:r,peers:this.peers});fs.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1})}};function lgt(t,e,{configuration:r,peers:o}){let a=He.sortMap(t.storedPackages.values(),A=>G.stringifyLocator(A)),n={},u={children:n};for(let A of a){let p={};for(let E of A.dependencies.values()){if(!o&&A.peerDependencies.has(E.identHash))continue;let I=t.storedResolutions.get(E.descriptorHash);if(!I)throw new Error("Assertion failed: The resolution should have been registered");let v=t.storedPackages.get(I);if(!v)throw new Error("Assertion failed: The package should have been registered");if(v.identHash!==e)continue;{let C=G.stringifyLocator(A);n[C]={value:[A,pe.Type.LOCATOR],children:p}}let x=G.stringifyLocator(v);p[x]={value:[{descriptor:E,locator:v},pe.Type.DEPENDENT]}}}return u}function cgt(t,e,{configuration:r,peers:o}){let a=He.sortMap(t.workspaces,v=>G.stringifyLocator(v.anchoredLocator)),n=new Set,u=new Set,A=v=>{if(n.has(v.locatorHash))return u.has(v.locatorHash);if(n.add(v.locatorHash),v.identHash===e)return u.add(v.locatorHash),!0;let x=!1;v.identHash===e&&(x=!0);for(let C of v.dependencies.values()){if(!o&&v.peerDependencies.has(C.identHash))continue;let R=t.storedResolutions.get(C.descriptorHash);if(!R)throw new Error("Assertion failed: The resolution should have been registered");let L=t.storedPackages.get(R);if(!L)throw new Error("Assertion failed: The package should have been registered");A(L)&&(x=!0)}return x&&u.add(v.locatorHash),x};for(let v of a)A(v.anchoredPackage);let p=new Set,h={},E={children:h},I=(v,x,C)=>{if(!u.has(v.locatorHash))return;let R=C!==null?pe.tuple(pe.Type.DEPENDENT,{locator:v,descriptor:C}):pe.tuple(pe.Type.LOCATOR,v),L={},U={value:R,children:L},z=G.stringifyLocator(v);if(x[z]=U,!(C!==null&&t.tryWorkspaceByLocator(v))&&!p.has(v.locatorHash)){p.add(v.locatorHash);for(let te of v.dependencies.values()){if(!o&&v.peerDependencies.has(te.identHash))continue;let ae=t.storedResolutions.get(te.descriptorHash);if(!ae)throw new Error("Assertion failed: The resolution should have been registered");let le=t.storedPackages.get(ae);if(!le)throw new Error("Assertion failed: The package should have been registered");I(le,L,te)}}};for(let v of a)I(v.anchoredPackage,h,null);return E}Ge();var W8={};Vt(W8,{GitFetcher:()=>s2,GitResolver:()=>o2,default:()=>kgt,gitUtils:()=>ia});Ge();Pt();var ia={};Vt(ia,{TreeishProtocols:()=>i2,clone:()=>Y8,fetchBase:()=>Rde,fetchChangedFiles:()=>Tde,fetchChangedWorkspaces:()=>bgt,fetchRoot:()=>Fde,isGitUrl:()=>bE,lsRemote:()=>Qde,normalizeLocator:()=>Sgt,normalizeRepoUrl:()=>PE,resolveUrl:()=>G8,splitRepoUrl:()=>bh,validateRepoUrl:()=>j8});Ge();Pt();qt();var bde=Ze(Dde()),xde=Ze(uU()),SE=Ze(ve("querystring")),H8=Ze(Jn());function _8(t,e,r){let o=t.indexOf(r);return t.lastIndexOf(e,o>-1?o:1/0)}function Pde(t){try{return new URL(t)}catch{return}}function Dgt(t){let e=_8(t,"@","#"),r=_8(t,":","#");return r>e&&(t=`${t.slice(0,r)}/${t.slice(r+1)}`),_8(t,":","#")===-1&&t.indexOf("//")===-1&&(t=`ssh://${t}`),t}function Sde(t){return Pde(t)||Pde(Dgt(t))}function PE(t,{git:e=!1}={}){if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let r=Sde(t);r&&(t=r.href),t=t.replace(/^git\+([^:]+):/,"$1:")}return t}function kde(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var Pgt=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],i2=(a=>(a.Commit="commit",a.Head="head",a.Tag="tag",a.Semver="semver",a))(i2||{});function bE(t){return t?Pgt.some(e=>!!t.match(e)):!1}function bh(t){t=PE(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:"head",request:"HEAD"},extra:{}};let r=t.slice(0,e),o=t.slice(e+1);if(o.match(/^[a-z]+=/)){let a=SE.default.parse(o);for(let[p,h]of Object.entries(a))if(typeof h!="string")throw new Error(`Assertion failed: The ${p} parameter must be a literal string`);let n=Object.values(i2).find(p=>Object.hasOwn(a,p)),[u,A]=typeof n<"u"?[n,a[n]]:["head","HEAD"];for(let p of Object.values(i2))delete a[p];return{repo:r,treeish:{protocol:u,request:A},extra:a}}else{let a=o.indexOf(":"),[n,u]=a===-1?[null,o]:[o.slice(0,a),o.slice(a+1)];return{repo:r,treeish:{protocol:n,request:u},extra:{}}}}function Sgt(t){return G.makeLocator(t,PE(t.reference))}function j8(t,{configuration:e}){let r=PE(t,{git:!0});if(!sn.getNetworkSettings(`https://${(0,bde.default)(r).resource}`,{configuration:e}).enableNetwork)throw new Jt(80,`Request to '${r}' has been blocked because of your configuration settings`);return r}async function Qde(t,e){let r=j8(t,{configuration:e}),o=await q8("listing refs",["ls-remote",r],{cwd:e.startingCwd,env:kde()},{configuration:e,normalizedRepoUrl:r}),a=new Map,n=/^([a-f0-9]{40})\t([^\n]+)/gm,u;for(;(u=n.exec(o.stdout))!==null;)a.set(u[2],u[1]);return a}async function G8(t,e){let{repo:r,treeish:{protocol:o,request:a},extra:n}=bh(t),u=await Qde(r,e),A=(h,E)=>{switch(h){case"commit":{if(!E.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return SE.default.stringify({...n,commit:E})}case"head":{let I=u.get(E==="HEAD"?E:`refs/heads/${E}`);if(typeof I>"u")throw new Error(`Unknown head ("${E}")`);return SE.default.stringify({...n,commit:I})}case"tag":{let I=u.get(`refs/tags/${E}`);if(typeof I>"u")throw new Error(`Unknown tag ("${E}")`);return SE.default.stringify({...n,commit:I})}case"semver":{let I=Lr.validRange(E);if(!I)throw new Error(`Invalid range ("${E}")`);let v=new Map([...u.entries()].filter(([C])=>C.startsWith("refs/tags/")).map(([C,R])=>[H8.default.parse(C.slice(10)),R]).filter(C=>C[0]!==null)),x=H8.default.maxSatisfying([...v.keys()],I);if(x===null)throw new Error(`No matching range ("${E}")`);return SE.default.stringify({...n,commit:v.get(x)})}case null:{let I;if((I=p("commit",E))!==null||(I=p("tag",E))!==null||(I=p("head",E))!==null)return I;throw E.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${h}")`)}},p=(h,E)=>{try{return A(h,E)}catch{return null}};return PE(`${r}#${A(o,a)}`)}async function Y8(t,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:o,request:a}}=bh(t);if(o!=="commit")throw new Error("Invalid treeish protocol when cloning");let n=j8(r,{configuration:e}),u=await oe.mktempPromise(),A={cwd:u,env:kde()};return await q8("cloning the repository",["clone","-c core.autocrlf=false",n,ue.fromPortablePath(u)],A,{configuration:e,normalizedRepoUrl:n}),await q8("switching branch",["checkout",`${a}`],A,{configuration:e,normalizedRepoUrl:n}),u})}async function Fde(t){let e,r=t;do{if(e=r,await oe.existsPromise(K.join(e,".git")))return e;r=K.dirname(e)}while(r!==e);return null}async function Rde(t,{baseRefs:e}){if(e.length===0)throw new st("Can't run this command with zero base refs specified.");let r=[];for(let A of e){let{code:p}=await Ur.execvp("git",["merge-base",A,"HEAD"],{cwd:t});p===0&&r.push(A)}if(r.length===0)throw new st(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:o}=await Ur.execvp("git",["merge-base","HEAD",...r],{cwd:t,strict:!0}),a=o.trim(),{stdout:n}=await Ur.execvp("git",["show","--quiet","--pretty=format:%s",a],{cwd:t,strict:!0}),u=n.trim();return{hash:a,title:u}}async function Tde(t,{base:e,project:r}){let o=He.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:a}=await Ur.execvp("git",["diff","--name-only",`${e}`],{cwd:t,strict:!0}),n=a.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>K.resolve(t,ue.toPortablePath(h))),{stdout:u}=await Ur.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:t,strict:!0}),A=u.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>K.resolve(t,ue.toPortablePath(h))),p=[...new Set([...n,...A].sort())];return o?p.filter(h=>!K.relative(r.cwd,h).match(o)):p}async function bgt({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new st("This command can only be run from within a Yarn project");let r=[K.resolve(e.cwd,dr.lockfile),K.resolve(e.cwd,e.configuration.get("cacheFolder")),K.resolve(e.cwd,e.configuration.get("installStatePath")),K.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(u=>u.populateYarnPaths,e,u=>{u!=null&&r.push(u)});let o=await Fde(e.configuration.projectCwd);if(o==null)throw new st("This command can only be run on Git repositories");let a=await Rde(o,{baseRefs:typeof t=="string"?[t]:e.configuration.get("changesetBaseRefs")}),n=await Tde(o,{base:a.hash,project:e});return new Set(He.mapAndFilter(n,u=>{let A=e.tryWorkspaceByFilePath(u);return A===null?He.mapAndFilter.skip:r.some(p=>u.startsWith(p))?He.mapAndFilter.skip:A}))}async function q8(t,e,r,{configuration:o,normalizedRepoUrl:a}){try{return await Ur.execvp("git",e,{...r,strict:!0})}catch(n){if(!(n instanceof Ur.ExecError))throw n;let u=n.reportExtra,A=n.stderr.toString();throw new Jt(1,`Failed ${t}`,p=>{p.reportError(1,` ${pe.prettyField(o,{label:"Repository URL",value:pe.tuple(pe.Type.URL,a)})}`);for(let h of A.matchAll(/^(.+?): (.*)$/gm)){let[,E,I]=h;E=E.toLowerCase();let v=E==="error"?"Error":`${(0,xde.default)(E)} Error`;p.reportError(1,` ${pe.prettyField(o,{label:v,value:pe.tuple(pe.Type.NO_HINT,I)})}`)}u?.(p)})}}var s2=class{supports(e,r){return bE(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,a=new Map(r.checksums);a.set(e.locatorHash,o);let n={...r,checksums:a},u=await this.downloadHosted(e,n);if(u!==null)return u;let[A,p,h]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(e,n),...r.cacheOptions});return{packageFs:A,releaseFs:p,prefixPath:G.getIdentVendorPath(e),checksum:h}}async downloadHosted(e,r){return r.project.configuration.reduceHook(o=>o.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let o=bh(e.reference),a=await Y8(e.reference,r.project.configuration),n=K.resolve(a,o.extra.cwd??It.dot),u=K.join(n,"package.tgz");await An.prepareExternalProject(n,u,{configuration:r.project.configuration,report:r.report,workspace:o.extra.workspace,locator:e});let A=await oe.readFilePromise(u);return await He.releaseAfterUseAsync(async()=>await $i.convertToZip(A,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1}))}};Ge();Ge();var o2=class{supportsDescriptor(e,r){return bE(e.range)}supportsLocator(e,r){return bE(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=await G8(e.range,o.project.configuration);return[G.makeLocator(e,a)]}async getSatisfying(e,r,o,a){let n=bh(e.range);return{locators:o.filter(A=>{if(A.identHash!==e.identHash)return!1;let p=bh(A.reference);return!(n.repo!==p.repo||n.treeish.protocol==="commit"&&n.treeish.request!==p.treeish.request)}),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await He.releaseAfterUseAsync(async()=>await Ut.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var xgt={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[s2],resolvers:[o2]};var kgt=xgt;qt();var xE=class extends ut{constructor(){super(...arguments);this.since=ge.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=ge.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["workspaces","list"]]}static{this.usage=it.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd);return(await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{let u=this.since?await ia.fetchChangedWorkspaces({ref:this.since,project:o}):o.workspaces,A=new Set(u);if(this.recursive)for(let p of[...u].map(h=>h.getRecursiveWorkspaceDependents()))for(let h of p)A.add(h);for(let p of A){let{manifest:h}=p;if(h.private&&this.noPrivate)continue;let E;if(this.verbose){let I=new Set,v=new Set;for(let x of Ut.hardDependencies)for(let[C,R]of h.getForScope(x)){let L=o.tryWorkspaceByDescriptor(R);L===null?o.workspacesByIdent.has(C)&&v.add(R):I.add(L)}E={workspaceDependencies:Array.from(I).map(x=>x.relativeCwd),mismatchedWorkspaceDependencies:Array.from(v).map(x=>G.stringifyDescriptor(x))}}n.reportInfo(null,`${p.relativeCwd}`),n.reportJson({location:p.relativeCwd,name:h.name?G.stringifyIdent(h.name):null,...E})}})).exitCode()}};Ge();Ge();qt();var kE=class extends ut{constructor(){super(...arguments);this.workspaceName=ge.String();this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[["workspace"]]}static{this.usage=it.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` - This command will run a given sub-command on a single workspace. - `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);let n=o.workspaces,u=new Map(n.map(p=>[G.stringifyIdent(p.anchoredLocator),p])),A=u.get(this.workspaceName);if(A===void 0){let p=Array.from(u.keys()).sort();throw new st(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - - ${p.join(` - - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:A.cwd})}};var Qgt={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:Nde.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[Ky,Vy,zy,Jy,IE,pE,sE,xE,$y,eE,tE,rE,Yy,Wy,Xy,Zy,nE,iE,oE,aE,lE,cE,BE,uE,AE,gE,hE,dE,fE,mE,yE,EE,CE,wE,vE,DE,kE]},Fgt=Qgt;var Z8={};Vt(Z8,{default:()=>Tgt});Ge();var xt={optional:!0},V8=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:xt,zenObservable:xt}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:xt,zenObservable:xt}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{"supports-color":xt}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":xt,"postcss-jsx":xt,"postcss-less":xt,"postcss-markdown":xt,"postcss-scss":xt}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:xt}}],["snowpack@>=3.3.0",{dependencies:{"node-gyp":"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:xt}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:xt,"vue-template-compiler":xt}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:xt,"utf-8-validate":xt}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{"babel-polyfill":"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{"cross-spawn":"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{"prop-types":"^15.7.2"}}],["@rebass/forms@*",{dependencies:{"@styled-system/should-forward-prop":"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":xt,"vuetify-loader":xt}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":xt}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":xt}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":xt}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:xt}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:xt,tinyliquid:xt,"liquid-node":xt,jade:xt,"then-jade":xt,dust:xt,"dustjs-helpers":xt,"dustjs-linkedin":xt,swig:xt,"swig-templates":xt,"razor-tmpl":xt,atpl:xt,liquor:xt,twig:xt,ejs:xt,eco:xt,jazz:xt,jqtpl:xt,hamljs:xt,hamlet:xt,whiskers:xt,"haml-coffee":xt,"hogan.js":xt,templayed:xt,handlebars:xt,underscore:xt,lodash:xt,pug:xt,"then-pug":xt,qejs:xt,walrus:xt,mustache:xt,just:xt,ect:xt,mote:xt,toffee:xt,dot:xt,"bracket-template":xt,ractive:xt,nunjucks:xt,htmling:xt,"babel-core":xt,plates:xt,"react-dom":xt,react:xt,"arc-templates":xt,vash:xt,slm:xt,marko:xt,teacup:xt,"coffee-script":xt,squirrelly:xt,twing:xt}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":xt}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":xt,vue:xt}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:xt}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:xt}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(t=>[t,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":xt,"webpack-command":xt}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":xt}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":xt}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:xt,jimp:xt}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":xt,"eslint-import-resolver-typescript":xt,"eslint-import-resolver-webpack":xt,"@typescript-eslint/parser":xt}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":xt}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":xt}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:xt}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:xt}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{"vue-template-compiler":"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["parcel@*",{peerDependenciesMeta:{"@parcel/core":xt}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:xt}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:xt}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:xt}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":xt}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}],["eslint-import-resolver-vite@<2.0.1",{dependencies:{debug:"^4.3.4",resolve:"^1.22.8"}}]];var z8;function Lde(){return typeof z8>"u"&&(z8=ve("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),z8}var J8;function Mde(){return typeof J8>"u"&&(J8=ve("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),J8}var X8;function Ode(){return typeof X8>"u"&&(X8=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),X8}var Ude=new Map([[G.makeIdent(null,"fsevents").identHash,Lde],[G.makeIdent(null,"resolve").identHash,Mde],[G.makeIdent(null,"typescript").identHash,Ode]]),Rgt={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,o]of V8)e(G.parseDescriptor(r,!0),o)},getBuiltinPatch:async(t,e)=>{let r="compat/";if(!e.startsWith(r))return;let o=G.parseIdent(e.slice(r.length)),a=Ude.get(o.identHash)?.();return typeof a<"u"?a:null},reduceDependency:async(t,e,r,o)=>typeof Ude.get(t.identHash)>"u"?t:G.makeDescriptor(t,G.makeRange({protocol:"patch:",source:G.stringifyDescriptor(t),selector:`optional!builtin<compat/${G.stringifyIdent(t)}>`,params:null}))}},Tgt=Rgt;var dH={};Vt(dH,{ConstraintsCheckCommand:()=>OE,ConstraintsQueryCommand:()=>LE,ConstraintsSourceCommand:()=>ME,default:()=>adt});Ge();Ge();l2();var FE=class{constructor(e){this.project=e}createEnvironment(){let e=new QE(["cwd","ident"]),r=new QE(["workspace","type","ident"]),o=new QE(["ident"]),a={manifestUpdates:new Map,reportedErrors:new Map},n=new Map,u=new Map;for(let A of this.project.storedPackages.values()){let p=Array.from(A.peerDependencies.values(),h=>[G.stringifyIdent(h),h.range]);n.set(A.locatorHash,{workspace:null,ident:G.stringifyIdent(A),version:A.version,dependencies:new Map,peerDependencies:new Map(p.filter(([h])=>A.peerDependenciesMeta.get(h)?.optional!==!0)),optionalPeerDependencies:new Map(p.filter(([h])=>A.peerDependenciesMeta.get(h)?.optional===!0))})}for(let A of this.project.storedPackages.values()){let p=n.get(A.locatorHash);p.dependencies=new Map(Array.from(A.dependencies.values(),h=>{let E=this.project.storedResolutions.get(h.descriptorHash);if(typeof E>"u")throw new Error("Assertion failed: The resolution should have been registered");let I=n.get(E);if(typeof I>"u")throw new Error("Assertion failed: The package should have been registered");return[G.stringifyIdent(h),I]})),p.dependencies.delete(p.ident)}for(let A of this.project.workspaces){let p=G.stringifyIdent(A.anchoredLocator),h=A.manifest.exportTo({}),E=n.get(A.anchoredLocator.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");let I=(R,L,{caller:U=Xi.getCaller()}={})=>{let z=a2(R),te=He.getMapWithDefault(a.manifestUpdates,A.cwd),ae=He.getMapWithDefault(te,z),le=He.getSetWithDefault(ae,L);U!==null&&le.add(U)},v=R=>I(R,void 0,{caller:Xi.getCaller()}),x=R=>{He.getArrayWithDefault(a.reportedErrors,A.cwd).push(R)},C=e.insert({cwd:A.relativeCwd,ident:p,manifest:h,pkg:E,set:I,unset:v,error:x});u.set(A,C);for(let R of Ut.allDependencies)for(let L of A.manifest[R].values()){let U=G.stringifyIdent(L),z=()=>{I([R,U],void 0,{caller:Xi.getCaller()})},te=le=>{I([R,U],le,{caller:Xi.getCaller()})},ae=null;if(R!=="peerDependencies"&&(R!=="dependencies"||!A.manifest.devDependencies.has(L.identHash))){let le=A.anchoredPackage.dependencies.get(L.identHash);if(le){if(typeof le>"u")throw new Error("Assertion failed: The dependency should have been registered");let ce=this.project.storedResolutions.get(le.descriptorHash);if(typeof ce>"u")throw new Error("Assertion failed: The resolution should have been registered");let Ce=n.get(ce);if(typeof Ce>"u")throw new Error("Assertion failed: The package should have been registered");ae=Ce}}r.insert({workspace:C,ident:U,range:L.range,type:R,resolution:ae,update:te,delete:z,error:x})}}for(let A of this.project.storedPackages.values()){let p=this.project.tryWorkspaceByLocator(A);if(!p)continue;let h=u.get(p);if(typeof h>"u")throw new Error("Assertion failed: The workspace should have been registered");let E=n.get(A.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");E.workspace=h}return{workspaces:e,dependencies:r,packages:o,result:a}}async process(){let e=this.createEnvironment(),r={Yarn:{workspace:a=>e.workspaces.find(a)[0]??null,workspaces:a=>e.workspaces.find(a),dependency:a=>e.dependencies.find(a)[0]??null,dependencies:a=>e.dependencies.find(a),package:a=>e.packages.find(a)[0]??null,packages:a=>e.packages.find(a)}},o=await this.project.loadUserConfig();return o?.constraints?(await o.constraints(r),e.result):null}};Ge();Ge();qt();var LE=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.query=ge.String()}static{this.paths=[["constraints","query"]]}static{this.usage=it.Usage({category:"Constraints-related commands",description:"query the constraints fact database",details:` - This command will output all matches to the given prolog query. - `,examples:[["List all dependencies throughout the workspace","yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'"]]})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(f2(),A2)),o=await Ke.find(this.context.cwd,this.context.plugins),{project:a}=await kt.find(o,this.context.cwd),n=await r.find(a),u=this.query;return u.endsWith(".")||(u=`${u}.`),(await Rt.start({configuration:o,json:this.json,stdout:this.context.stdout},async p=>{for await(let h of n.query(u)){let E=Array.from(Object.entries(h)),I=E.length,v=E.reduce((x,[C])=>Math.max(x,C.length),0);for(let x=0;x<I;x++){let[C,R]=E[x];p.reportInfo(null,`${sdt(x,I)}${C.padEnd(v," ")} = ${idt(R)}`)}p.reportJson(h)}})).exitCode()}};function idt(t){return typeof t!="string"?`${t}`:t.match(/^[a-zA-Z][a-zA-Z0-9_]+$/)?t:`'${t}'`}function sdt(t,e){let r=t===0,o=t===e-1;return r&&o?"":r?"\u250C ":o?"\u2514 ":"\u2502 "}Ge();qt();var ME=class extends ut{constructor(){super(...arguments);this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Also print the fact database automatically compiled from the workspace manifests"})}static{this.paths=[["constraints","source"]]}static{this.usage=it.Usage({category:"Constraints-related commands",description:"print the source code for the constraints",details:"\n This command will print the Prolog source code used by the constraints engine. Adding the `-v,--verbose` flag will print the *full* source code, including the fact database automatically compiled from the workspace manifests.\n ",examples:[["Prints the source code","yarn constraints source"],["Print the source code and the fact database","yarn constraints source -v"]]})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(f2(),A2)),o=await Ke.find(this.context.cwd,this.context.plugins),{project:a}=await kt.find(o,this.context.cwd),n=await r.find(a);this.context.stdout.write(this.verbose?n.fullSource:n.source)}};Ge();Ge();qt();l2();var OE=class extends ut{constructor(){super(...arguments);this.fix=ge.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["constraints"]]}static{this.usage=it.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:` - This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code. - - If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution. - - For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints. - `,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd);await o.restoreInstallState();let a=await o.loadUserConfig(),n;if(a?.constraints)n=new FE(o);else{let{Constraints:h}=await Promise.resolve().then(()=>(f2(),A2));n=await h.find(o)}let u,A=!1,p=!1;for(let h=this.fix?10:1;h>0;--h){let E=await n.process();if(!E)break;let{changedWorkspaces:I,remainingErrors:v}=ik(o,E,{fix:this.fix}),x=[];for(let[C,R]of I){let L=C.manifest.indent;C.manifest=new Ut,C.manifest.indent=L,C.manifest.load(R),x.push(C.persistManifest())}if(await Promise.all(x),!(I.size>0&&h>1)){u=Wde(v,{configuration:r}),A=!1,p=!0;for(let[,C]of v)for(let R of C)R.fixable?A=!0:p=!1}}if(u.children.length===0)return 0;if(A){let h=p?`Those errors can all be fixed by running ${pe.pretty(r,"yarn constraints --fix",pe.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${pe.pretty(r,"yarn constraints --fix",pe.Type.CODE)}`;await Rt.start({configuration:r,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async E=>{E.reportInfo(0,h),E.reportSeparator()})}return u.children=He.sortMap(u.children,h=>h.value[1]),fs.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1}),1}};l2();var odt={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:"BOOLEAN",default:!1},constraintsPath:{description:"The path of the constraints file.",type:"ABSOLUTE_PATH",default:"./constraints.pro"}},commands:[LE,ME,OE],hooks:{async validateProjectAfterInstall(t,{reportError:e}){if(!t.configuration.get("enableConstraintsChecks"))return;let r=await t.loadUserConfig(),o;if(r?.constraints)o=new FE(t);else{let{Constraints:u}=await Promise.resolve().then(()=>(f2(),A2));o=await u.find(t)}let a=await o.process();if(!a)return;let{remainingErrors:n}=ik(t,a);if(n.size!==0)if(t.configuration.isCI)for(let[u,A]of n)for(let p of A)e(84,`${pe.pretty(t.configuration,u.anchoredLocator,pe.Type.IDENT)}: ${p.text}`);else e(84,`Constraint check failed; run ${pe.pretty(t.configuration,"yarn constraints",pe.Type.CODE)} for more details`)}}},adt=odt;var mH={};Vt(mH,{CreateCommand:()=>UE,DlxCommand:()=>_E,default:()=>cdt});Ge();qt();var UE=class extends ut{constructor(){super(...arguments);this.pkg=ge.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=ge.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ge.String();this.args=ge.Proxy()}static{this.paths=[["create"]]}async execute(){let r=[];this.pkg&&r.push("--package",this.pkg),this.quiet&&r.push("--quiet");let o=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),a=G.parseDescriptor(o),n=a.name.match(/^create(-|$)/)?a:a.scope?G.makeIdent(a.scope,`create-${a.name}`):G.makeIdent(null,`create-${a.name}`),u=G.stringifyIdent(n);return a.range!=="unknown"&&(u+=`@${a.range}`),this.cli.run(["dlx",...r,u,...this.args])}};Ge();Ge();Pt();qt();var _E=class extends ut{constructor(){super(...arguments);this.packages=ge.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=ge.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ge.String();this.args=ge.Proxy()}static{this.paths=[["dlx"]]}static{this.usage=it.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]})}async execute(){return Ke.telemetry=null,await oe.mktempPromise(async r=>{let o=K.join(r,`dlx-${process.pid}`);await oe.mkdirPromise(o),await oe.writeFilePromise(K.join(o,"package.json"),`{} -`),await oe.writeFilePromise(K.join(o,"yarn.lock"),"");let a=K.join(o,".yarnrc.yml"),n=await Ke.findProjectCwd(this.context.cwd),A={enableGlobalCache:!(await Ke.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:Ku(68),level:pe.LogLevel.Discard}]},p=n!==null?K.join(n,".yarnrc.yml"):null;p!==null&&oe.existsSync(p)?(await oe.copyFilePromise(p,a),await Ke.updateConfiguration(o,L=>{let U=He.toMerged(L,A);return Array.isArray(L.plugins)&&(U.plugins=L.plugins.map(z=>{let te=typeof z=="string"?z:z.path,ae=ue.isAbsolute(te)?te:ue.resolve(ue.fromPortablePath(n),te);return typeof z=="string"?ae:{path:ae,spec:z.spec}})),U})):await oe.writeJsonPromise(a,A);let h=this.packages??[this.command],E=G.parseDescriptor(this.command).name,I=await this.cli.run(["add","--fixed","--",...h],{cwd:o,quiet:this.quiet});if(I!==0)return I;this.quiet||this.context.stdout.write(` -`);let v=await Ke.find(o,this.context.plugins),{project:x,workspace:C}=await kt.find(v,o);if(C===null)throw new sr(x.cwd,o);await x.restoreInstallState();let R=await An.getWorkspaceAccessibleBinaries(C);return R.has(E)===!1&&R.size===1&&typeof this.packages>"u"&&(E=Array.from(R)[0][0]),await An.executeWorkspaceAccessibleBinary(C,E,this.args,{packageAccessibleBinaries:R,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};var ldt={commands:[UE,_E]},cdt=ldt;var CH={};Vt(CH,{ExecFetcher:()=>h2,ExecResolver:()=>g2,default:()=>fdt,execUtils:()=>lk});Ge();Ge();Pt();var fA="exec:";var lk={};Vt(lk,{loadGeneratorFile:()=>p2,makeLocator:()=>EH,makeSpec:()=>yme,parseSpec:()=>yH});Ge();Pt();function yH(t){let{params:e,selector:r}=G.parseRange(t),o=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?G.parseLocator(e.locator):null,path:o}}function yme({parentLocator:t,path:e,generatorHash:r,protocol:o}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return G.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function EH(t,{parentLocator:e,path:r,generatorHash:o,protocol:a}){return G.makeLocator(t,yme({parentLocator:e,path:r,generatorHash:o,protocol:a}))}async function p2(t,e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(t,{protocol:e}),n=K.isAbsolute(a)?{packageFs:new gn(It.root),prefixPath:It.dot,localPath:It.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new gn(It.root),prefixPath:K.relative(It.root,n.localPath)}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=K.join(u.prefixPath,a);return await A.readFilePromise(p,"utf8")}var h2=class{supports(e,r){return!!e.reference.startsWith(fA)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:fA});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){let o=await p2(e.reference,fA,r);return oe.mktempPromise(async a=>{let n=K.join(a,"generator.js");return await oe.writeFilePromise(n,o),oe.mktempPromise(async u=>{if(await this.generatePackage(u,e,n,r),!oe.existsSync(K.join(u,"build")))throw new Error("The script should have generated a build directory");return await $i.makeArchiveFromDirectory(K.join(u,"build"),{prefixPath:G.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(e,r,o,a){return await oe.mktempPromise(async n=>{let u=await An.makeScriptEnv({project:a.project,binFolder:n}),A=K.join(e,"runtime.js");return await oe.mktempPromise(async p=>{let h=K.join(p,"buildfile.log"),E=K.join(e,"generator"),I=K.join(e,"build");await oe.mkdirPromise(E),await oe.mkdirPromise(I);let v={tempDir:ue.fromPortablePath(E),buildDir:ue.fromPortablePath(I),locator:G.stringifyLocator(r)};await oe.writeFilePromise(A,` - // Expose 'Module' as a global variable - Object.defineProperty(global, 'Module', { - get: () => require('module'), - configurable: true, - enumerable: false, - }); - - // Expose non-hidden built-in modules as global variables - for (const name of Module.builtinModules.filter((name) => name !== 'module' && !name.startsWith('_'))) { - Object.defineProperty(global, name, { - get: () => require(name), - configurable: true, - enumerable: false, - }); - } - - // Expose the 'execEnv' global variable - Object.defineProperty(global, 'execEnv', { - value: { - ...${JSON.stringify(v)}, - }, - enumerable: true, - }); - `);let x=u.NODE_OPTIONS||"",C=/\s*--require\s+\S*\.pnp\.c?js\s*/g;x=x.replace(C," ").trim(),u.NODE_OPTIONS=x;let{stdout:R,stderr:L}=a.project.configuration.getSubprocessStreams(h,{header:`# This file contains the result of Yarn generating a package (${G.stringifyLocator(r)}) -`,prefix:G.prettyLocator(a.project.configuration,r),report:a.report}),{code:U}=await Ur.pipevp(process.execPath,["--require",ue.fromPortablePath(A),ue.fromPortablePath(o),G.stringifyIdent(r)],{cwd:e,env:u,stdin:null,stdout:R,stderr:L});if(U!==0)throw oe.detachTemp(p),new Error(`Package generation failed (exit code ${U}, logs can be found here: ${pe.pretty(a.project.configuration,h,pe.Type.PATH)})`)})})}};Ge();Ge();var udt=2,g2=class{supportsDescriptor(e,r){return!!e.range.startsWith(fA)}supportsLocator(e,r){return!!e.reference.startsWith(fA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=yH(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await p2(G.makeRange({protocol:fA,source:a,selector:a,params:{locator:G.stringifyLocator(n)}}),fA,o.fetchOptions),A=wn.makeHash(`${udt}`,u).slice(0,6);return[EH(e,{parentLocator:n,path:a,generatorHash:A,protocol:fA})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await He.releaseAfterUseAsync(async()=>await Ut.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var Adt={fetchers:[h2],resolvers:[g2]},fdt=Adt;var IH={};Vt(IH,{FileFetcher:()=>E2,FileResolver:()=>C2,TarballFileFetcher:()=>w2,TarballFileResolver:()=>I2,default:()=>gdt,fileUtils:()=>Yg});Ge();Pt();var HE=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,d2=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Ui="file:";var Yg={};Vt(Yg,{fetchArchiveFromLocator:()=>y2,makeArchiveFromLocator:()=>ck,makeBufferFromLocator:()=>wH,makeLocator:()=>qE,makeSpec:()=>Eme,parseSpec:()=>m2});Ge();Pt();function m2(t){let{params:e,selector:r}=G.parseRange(t),o=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?G.parseLocator(e.locator):null,path:o}}function Eme({parentLocator:t,path:e,hash:r,protocol:o}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return G.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function qE(t,{parentLocator:e,path:r,hash:o,protocol:a}){return G.makeLocator(t,Eme({parentLocator:e,path:r,hash:o,protocol:a}))}async function y2(t,e){let{parentLocator:r,path:o}=G.parseFileStyleRange(t.reference,{protocol:Ui}),a=K.isAbsolute(o)?{packageFs:new gn(It.root),prefixPath:It.dot,localPath:It.root}:await e.fetcher.fetch(r,e),n=a.localPath?{packageFs:new gn(It.root),prefixPath:K.relative(It.root,a.localPath)}:a;a!==n&&a.releaseFs&&a.releaseFs();let u=n.packageFs,A=K.join(n.prefixPath,o);return await He.releaseAfterUseAsync(async()=>await u.readFilePromise(A),n.releaseFs)}async function ck(t,{protocol:e,fetchOptions:r,inMemory:o=!1}){let{parentLocator:a,path:n}=G.parseFileStyleRange(t.reference,{protocol:e}),u=K.isAbsolute(n)?{packageFs:new gn(It.root),prefixPath:It.dot,localPath:It.root}:await r.fetcher.fetch(a,r),A=u.localPath?{packageFs:new gn(It.root),prefixPath:K.relative(It.root,u.localPath)}:u;u!==A&&u.releaseFs&&u.releaseFs();let p=A.packageFs,h=K.join(A.prefixPath,n);return await He.releaseAfterUseAsync(async()=>await $i.makeArchiveFromDirectory(h,{baseFs:p,prefixPath:G.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:o}),A.releaseFs)}async function wH(t,{protocol:e,fetchOptions:r}){return(await ck(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var E2=class{supports(e,r){return!!e.reference.startsWith(Ui)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:Ui});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){return ck(e,{protocol:Ui,fetchOptions:r})}};Ge();Ge();var pdt=2,C2=class{supportsDescriptor(e,r){return e.range.match(HE)?!0:!!e.range.startsWith(Ui)}supportsLocator(e,r){return!!e.reference.startsWith(Ui)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return HE.test(e.range)&&(e=G.makeDescriptor(e,`${Ui}${e.range}`)),G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=m2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await wH(G.makeLocator(e,G.makeRange({protocol:Ui,source:a,selector:a,params:{locator:G.stringifyLocator(n)}})),{protocol:Ui,fetchOptions:o.fetchOptions}),A=wn.makeHash(`${pdt}`,u).slice(0,6);return[qE(e,{parentLocator:n,path:a,hash:A,protocol:Ui})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await He.releaseAfterUseAsync(async()=>await Ut.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Ge();var w2=class{supports(e,r){return d2.test(e.reference)?!!e.reference.startsWith(Ui):!1}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromDisk(e,r){let o=await y2(e,r);return await $i.convertToZip(o,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ge();Ge();Ge();var I2=class{supportsDescriptor(e,r){return d2.test(e.range)?!!(e.range.startsWith(Ui)||HE.test(e.range)):!1}supportsLocator(e,r){return d2.test(e.reference)?!!e.reference.startsWith(Ui):!1}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return HE.test(e.range)&&(e=G.makeDescriptor(e,`${Ui}${e.range}`)),G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=m2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=qE(e,{parentLocator:n,path:a,hash:"",protocol:Ui}),A=await y2(u,o.fetchOptions),p=wn.makeHash(A).slice(0,6);return[qE(e,{parentLocator:n,path:a,hash:p,protocol:Ui})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await He.releaseAfterUseAsync(async()=>await Ut.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var hdt={fetchers:[w2,E2],resolvers:[I2,C2]},gdt=hdt;var DH={};Vt(DH,{GithubFetcher:()=>B2,default:()=>mdt,githubUtils:()=>uk});Ge();Pt();var uk={};Vt(uk,{invalidGithubUrlMessage:()=>Ime,isGithubUrl:()=>BH,parseGithubUrl:()=>vH});var Cme=Ze(ve("querystring")),wme=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function BH(t){return t?wme.some(e=>!!t.match(e)):!1}function vH(t){let e;for(let A of wme)if(e=t.match(A),e)break;if(!e)throw new Error(Ime(t));let[,r,o,a,n="master"]=e,{commit:u}=Cme.default.parse(n);return n=u||n.replace(/[^:]*:/,""),{auth:r,username:o,reponame:a,treeish:n}}function Ime(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var B2=class{supports(e,r){return!!BH(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await sn.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await oe.mktempPromise(async a=>{let n=new gn(a);await $i.extractArchiveTo(o,n,{stripComponents:1});let u=ia.splitRepoUrl(e.reference),A=K.join(a,"package.tgz");await An.prepareExternalProject(a,A,{configuration:r.project.configuration,report:r.report,workspace:u.extra.workspace,locator:e});let p=await oe.readFilePromise(A);return await $i.convertToZip(p,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:o,username:a,reponame:n,treeish:u}=vH(e.reference);return`https://${o?`${o}@`:""}github.com/${a}/${n}/archive/${u}.tar.gz`}};var ddt={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let o=new B2;if(!o.supports(e,r))return null;try{return await o.fetch(e,r)}catch{return null}}}},mdt=ddt;var PH={};Vt(PH,{TarballHttpFetcher:()=>D2,TarballHttpResolver:()=>P2,default:()=>Edt});Ge();function v2(t){let e;try{e=new URL(t)}catch{return!1}return!(e.protocol!=="http:"&&e.protocol!=="https:"||!e.pathname.match(/(\.tar\.gz|\.tgz|\/[^.]+)$/))}var D2=class{supports(e,r){return v2(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await sn.get(e.reference,{configuration:r.project.configuration});return await $i.convertToZip(o,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ge();Ge();var P2=class{supportsDescriptor(e,r){return v2(e.range)}supportsLocator(e,r){return v2(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[G.convertDescriptorToLocator(e)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await He.releaseAfterUseAsync(async()=>await Ut.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var ydt={fetchers:[D2],resolvers:[P2]},Edt=ydt;var SH={};Vt(SH,{InitCommand:()=>jE,default:()=>wdt});Ge();Ge();Pt();qt();var jE=class extends ut{constructor(){super(...arguments);this.private=ge.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=ge.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=ge.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.name=ge.String("-n,--name",{description:"Initialize a package with the given name"});this.usev2=ge.Boolean("-2",!1,{hidden:!0});this.yes=ge.Boolean("-y,--yes",{hidden:!0})}static{this.paths=[["init"]]}static{this.usage=it.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return o!==null?await this.executeProxy(r,o):await this.executeRegular(r)}async executeProxy(r,o){if(r.projectCwd!==null&&r.projectCwd!==this.context.cwd)throw new st("Cannot use the --install flag from within a project subdirectory");oe.existsSync(this.context.cwd)||await oe.mkdirPromise(this.context.cwd,{recursive:!0});let a=K.join(this.context.cwd,dr.lockfile);oe.existsSync(a)||await oe.writeFilePromise(a,"");let n=await this.cli.run(["set","version",o],{quiet:!0});if(n!==0)return n;let u=[];return this.private&&u.push("-p"),this.workspace&&u.push("-w"),this.name&&u.push(`-n=${this.name}`),this.yes&&u.push("-y"),await oe.mktempPromise(async A=>{let{code:p}=await Ur.pipevp("yarn",["init",...u],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await An.makeScriptEnv({binFolder:A})});return p})}async executeRegular(r){let o=null;try{o=(await kt.find(r,this.context.cwd)).project}catch{o=null}oe.existsSync(this.context.cwd)||await oe.mkdirPromise(this.context.cwd,{recursive:!0});let a=await Ut.tryFind(this.context.cwd),n=a??new Ut,u=Object.fromEntries(r.get("initFields").entries());n.load(u),n.name=n.name??G.makeIdent(r.get("initScope"),this.name??K.basename(this.context.cwd)),n.packageManager=nn&&He.isTaggedYarnVersion(nn)?`yarn@${nn}`:null,(!a&&this.workspace||this.private)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await oe.mkdirPromise(K.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let A={};n.exportTo(A);let p=K.join(this.context.cwd,Ut.fileName);await oe.changeFilePromise(p,`${JSON.stringify(A,null,2)} -`,{automaticNewlines:!0});let h=[p],E=K.join(this.context.cwd,"README.md");if(oe.existsSync(E)||(await oe.writeFilePromise(E,`# ${G.stringifyIdent(n.name)} -`),h.push(E)),!o||o.cwd===this.context.cwd){let I=K.join(this.context.cwd,dr.lockfile);oe.existsSync(I)||(await oe.writeFilePromise(I,""),h.push(I));let x=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you wish to use zero-installs","# In that case, don't forget to run `yarn config set enableGlobalCache false`!","# Documentation here: https://yarnpkg.com/features/caching#zero-installs","","#!.yarn/cache",".pnp.*"].map(le=>`${le} -`).join(""),C=K.join(this.context.cwd,".gitignore");oe.existsSync(C)||(await oe.writeFilePromise(C,x),h.push(C));let L=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(le=>`${le} -`).join(""),U=K.join(this.context.cwd,".gitattributes");oe.existsSync(U)||(await oe.writeFilePromise(U,L),h.push(U));let z={"*":{endOfLine:"lf",insertFinalNewline:!0},"*.{js,json,yml}":{charset:"utf-8",indentStyle:"space",indentSize:2}};He.mergeIntoTarget(z,r.get("initEditorConfig"));let te=`root = true -`;for(let[le,ce]of Object.entries(z)){te+=` -[${le}] -`;for(let[Ce,de]of Object.entries(ce)){let Be=Ce.replace(/[A-Z]/g,Ee=>`_${Ee.toLowerCase()}`);te+=`${Be} = ${de} -`}}let ae=K.join(this.context.cwd,".editorconfig");oe.existsSync(ae)||(await oe.writeFilePromise(ae,te),h.push(ae)),await this.cli.run(["install"],{quiet:!0}),oe.existsSync(K.join(this.context.cwd,".git"))||(await Ur.execvp("git",["init"],{cwd:this.context.cwd}),await Ur.execvp("git",["add","--",...h],{cwd:this.context.cwd}),await Ur.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};var Cdt={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[jE]},wdt=Cdt;var kq={};Vt(kq,{SearchCommand:()=>oC,UpgradeInteractiveCommand:()=>aC,default:()=>cIt});Ge();var vme=Ze(ve("os"));function GE({stdout:t}){if(vme.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!t.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}qt();var Lye=Ze(YH()),WH={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},yyt=(0,Lye.default)(WH.appId,WH.apiKey).initIndex(WH.indexName),KH=async(t,e=0)=>await yyt.search(t,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:e,hitsPerPage:10});var vB=["regular","dev","peer"],oC=class extends ut{static{this.paths=[["search"]]}static{this.usage=it.Usage({category:"Interactive commands",description:"open the search interface",details:` - This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry. - `,examples:[["Open the search window","yarn search"]]})}async execute(){GE(this.context);let{Gem:e}=await Promise.resolve().then(()=>(Zk(),Eq)),{ScrollableItems:r}=await Promise.resolve().then(()=>(rQ(),tQ)),{useKeypress:o}=await Promise.resolve().then(()=>(wB(),Xwe)),{useMinistore:a}=await Promise.resolve().then(()=>(Dq(),vq)),{renderForm:n}=await Promise.resolve().then(()=>(oQ(),sQ)),{default:u}=await Promise.resolve().then(()=>Ze(aIe())),{Box:A,Text:p}=await Promise.resolve().then(()=>Ze(ic())),{default:h,useEffect:E,useState:I}=await Promise.resolve().then(()=>Ze(an())),v=await Ke.find(this.context.cwd,this.context.plugins),x=()=>h.createElement(A,{flexDirection:"row"},h.createElement(A,{flexDirection:"column",width:48},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<up>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<down>")," to move between packages.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<space>")," to select a package.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<space>")," again to change the target."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<enter>")," to install the selected packages.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),C=()=>h.createElement(h.Fragment,null,h.createElement(A,{width:15},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Owner")),h.createElement(A,{width:11},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Version")),h.createElement(A,{width:10},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Downloads"))),R=()=>h.createElement(A,{width:17},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Target")),L=({hit:de,active:Be})=>{let[Ee,g]=a(de.name,null);o({active:Be},(Ae,ne)=>{if(ne.name!=="space")return;if(!Ee){g(vB[0]);return}let Z=vB.indexOf(Ee)+1;Z===vB.length?g(null):g(vB[Z])},[Ee,g]);let me=G.parseIdent(de.name),we=G.prettyIdent(v,me);return h.createElement(A,null,h.createElement(A,{width:45},h.createElement(p,{bold:!0,wrap:"wrap"},we)),h.createElement(A,{width:14,marginLeft:1},h.createElement(p,{bold:!0,wrap:"truncate"},de.owner.name)),h.createElement(A,{width:10,marginLeft:1},h.createElement(p,{italic:!0,wrap:"truncate"},de.version)),h.createElement(A,{width:16,marginLeft:1},h.createElement(p,null,de.humanDownloadsLast30Days)))},U=({name:de,active:Be})=>{let[Ee]=a(de,null),g=G.parseIdent(de);return h.createElement(A,null,h.createElement(A,{width:47},h.createElement(p,{bold:!0}," - ",G.prettyIdent(v,g))),vB.map(me=>h.createElement(A,{key:me,width:14,marginLeft:1},h.createElement(p,null," ",h.createElement(e,{active:Ee===me})," ",h.createElement(p,{bold:!0},me)))))},z=()=>h.createElement(A,{marginTop:1},h.createElement(p,null,"Powered by Algolia.")),ae=await n(({useSubmit:de})=>{let Be=a();de(Be);let Ee=Array.from(Be.keys()).filter(H=>Be.get(H)!==null),[g,me]=I(""),[we,Ae]=I(0),[ne,Z]=I([]),xe=H=>{H.match(/\t| /)||me(H)},Ne=async()=>{Ae(0);let H=await KH(g);H.query===g&&Z(H.hits)},ht=async()=>{let H=await KH(g,we+1);H.query===g&&H.page-1===we&&(Ae(H.page),Z([...ne,...H.hits]))};return E(()=>{g?Ne():Z([])},[g]),h.createElement(A,{flexDirection:"column"},h.createElement(x,null),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(p,{bold:!0},"Search: "),h.createElement(A,{width:41},h.createElement(u,{value:g,onChange:xe,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),h.createElement(C,null)),ne.length?h.createElement(r,{radius:2,loop:!1,children:ne.map(H=>h.createElement(L,{key:H.name,hit:H,active:!1})),willReachEnd:ht}):h.createElement(p,{color:"gray"},"Start typing..."),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(A,{width:49},h.createElement(p,{bold:!0},"Selected:")),h.createElement(R,null)),Ee.length?Ee.map(H=>h.createElement(U,{key:H,name:H,active:!1})):h.createElement(p,{color:"gray"},"No selected packages..."),h.createElement(z,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ae>"u")return 1;let le=Array.from(ae.keys()).filter(de=>ae.get(de)==="regular"),ce=Array.from(ae.keys()).filter(de=>ae.get(de)==="dev"),Ce=Array.from(ae.keys()).filter(de=>ae.get(de)==="peer");return le.length&&await this.cli.run(["add",...le]),ce.length&&await this.cli.run(["add","--dev",...ce]),Ce&&await this.cli.run(["add","--peer",...Ce]),0}};Ge();qt();f_();var hIe=Ze(Jn()),pIe=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/,gIe=(t,e)=>t.length>0?[t.slice(0,e)].concat(gIe(t.slice(e),e)):[],aC=class extends ut{static{this.paths=[["upgrade-interactive"]]}static{this.usage=it.Usage({category:"Interactive commands",description:"open the upgrade interface",details:` - This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade. - `,examples:[["Open the upgrade window","yarn upgrade-interactive"]]})}async execute(){GE(this.context);let{ItemOptions:e}=await Promise.resolve().then(()=>(fIe(),AIe)),{Pad:r}=await Promise.resolve().then(()=>(xq(),uIe)),{ScrollableItems:o}=await Promise.resolve().then(()=>(rQ(),tQ)),{useMinistore:a}=await Promise.resolve().then(()=>(Dq(),vq)),{renderForm:n}=await Promise.resolve().then(()=>(oQ(),sQ)),{Box:u,Text:A}=await Promise.resolve().then(()=>Ze(ic())),{default:p,useEffect:h,useRef:E,useState:I}=await Promise.resolve().then(()=>Ze(an())),v=await Ke.find(this.context.cwd,this.context.plugins),{project:x,workspace:C}=await kt.find(v,this.context.cwd),R=await Gr.find(v);if(!C)throw new sr(x.cwd,this.context.cwd);await x.restoreInstallState({restoreResolutions:!1});let L=this.context.stdout.rows-7,U=(me,we)=>{let Ae=gpe(me,we),ne="";for(let Z of Ae)Z.added?ne+=pe.pretty(v,Z.value,"green"):Z.removed||(ne+=Z.value);return ne},z=(me,we)=>{if(me===we)return we;let Ae=G.parseRange(me),ne=G.parseRange(we),Z=Ae.selector.match(pIe),xe=ne.selector.match(pIe);if(!Z||!xe)return U(me,we);let Ne=["gray","red","yellow","green","magenta"],ht=null,H="";for(let rt=1;rt<Ne.length;++rt)ht!==null||Z[rt]!==xe[rt]?(ht===null&&(ht=Ne[rt-1]),H+=pe.pretty(v,xe[rt],ht)):H+=xe[rt];return H},te=async(me,we,Ae)=>{let ne=await Zc.fetchDescriptorFrom(me,Ae,{project:x,cache:R,preserveModifier:we,workspace:C});return ne!==null?ne.range:me.range},ae=async me=>{let we=hIe.default.valid(me.range)?`^${me.range}`:me.range,[Ae,ne]=await Promise.all([te(me,me.range,we).catch(()=>null),te(me,me.range,"latest").catch(()=>null)]),Z=[{value:null,label:me.range}];return Ae&&Ae!==me.range?Z.push({value:Ae,label:z(me.range,Ae)}):Z.push({value:null,label:""}),ne&&ne!==Ae&&ne!==me.range?Z.push({value:ne,label:z(me.range,ne)}):Z.push({value:null,label:""}),Z},le=()=>p.createElement(u,{flexDirection:"row"},p.createElement(u,{flexDirection:"column",width:49},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<up>"),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"<down>")," to select packages.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<left>"),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"<right>")," to select versions."))),p.createElement(u,{flexDirection:"column"},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<enter>")," to install.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),ce=()=>p.createElement(u,{flexDirection:"row",paddingTop:1,paddingBottom:1},p.createElement(u,{width:50},p.createElement(A,{bold:!0},p.createElement(A,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Current")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Range")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Latest"))),Ce=({active:me,descriptor:we,suggestions:Ae})=>{let[ne,Z]=a(we.descriptorHash,null),xe=G.stringifyIdent(we),Ne=Math.max(0,45-xe.length);return p.createElement(p.Fragment,null,p.createElement(u,null,p.createElement(u,{width:45},p.createElement(A,{bold:!0},G.prettyIdent(v,we)),p.createElement(r,{active:me,length:Ne})),p.createElement(e,{active:me,options:Ae,value:ne,skewer:!0,onChange:Z,sizes:[17,17,17]})))},de=({dependencies:me})=>{let[we,Ae]=I(me.map(()=>null)),ne=E(!0),Z=async xe=>{let Ne=await ae(xe);return Ne.filter(ht=>ht.label!=="").length<=1?null:{descriptor:xe,suggestions:Ne}};return h(()=>()=>{ne.current=!1},[]),h(()=>{let xe=Math.trunc(L*1.75),Ne=me.slice(0,xe),ht=me.slice(xe),H=gIe(ht,L),rt=Ne.map(Z).reduce(async(Te,Fe)=>{await Te;let ke=await Fe;ke!==null&&ne.current&&Ae(Ye=>{let Se=Ye.findIndex(Ue=>Ue===null),et=[...Ye];return et[Se]=ke,et})},Promise.resolve());H.reduce((Te,Fe)=>Promise.all(Fe.map(ke=>Promise.resolve().then(()=>Z(ke)))).then(async ke=>{ke=ke.filter(Ye=>Ye!==null),await Te,ne.current&&Ae(Ye=>{let Se=Ye.findIndex(et=>et===null);return Ye.slice(0,Se).concat(ke).concat(Ye.slice(Se+ke.length))})}),rt).then(()=>{ne.current&&Ae(Te=>Te.filter(Fe=>Fe!==null))})},[]),we.length?p.createElement(o,{radius:L>>1,children:we.map((xe,Ne)=>xe!==null?p.createElement(Ce,{key:Ne,active:!1,descriptor:xe.descriptor,suggestions:xe.suggestions}):p.createElement(A,{key:Ne},"Loading..."))}):p.createElement(A,null,"No upgrades found")},Ee=await n(({useSubmit:me})=>{me(a());let we=new Map;for(let ne of x.workspaces)for(let Z of["dependencies","devDependencies"])for(let xe of ne.manifest[Z].values())x.tryWorkspaceByDescriptor(xe)===null&&(xe.range.startsWith("link:")||we.set(xe.descriptorHash,xe));let Ae=He.sortMap(we.values(),ne=>G.stringifyDescriptor(ne));return p.createElement(u,{flexDirection:"column"},p.createElement(le,null),p.createElement(ce,null),p.createElement(de,{dependencies:Ae}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof Ee>"u")return 1;let g=!1;for(let me of x.workspaces)for(let we of["dependencies","devDependencies"]){let Ae=me.manifest[we];for(let ne of Ae.values()){let Z=Ee.get(ne.descriptorHash);typeof Z<"u"&&Z!==null&&(Ae.set(ne.identHash,G.makeDescriptor(ne,Z)),g=!0)}}return g?await x.installWithNewReport({quiet:this.context.quiet,stdout:this.context.stdout},{cache:R}):0}};var lIt={commands:[oC,aC]},cIt=lIt;var Qq={};Vt(Qq,{LinkFetcher:()=>PB,LinkResolver:()=>SB,PortalFetcher:()=>bB,PortalResolver:()=>xB,default:()=>AIt});Ge();Pt();var Xf="portal:",Zf="link:";var PB=class{supports(e,r){return!!e.reference.startsWith(Zf)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:Zf});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:Zf}),n=K.isAbsolute(a)?{packageFs:new gn(It.root),prefixPath:It.dot,localPath:It.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new gn(It.root),prefixPath:K.relative(It.root,n.localPath),localPath:It.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=K.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new gn(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:It.dot,discardFromLookup:!0,localPath:p}:{packageFs:new qu(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:It.dot,discardFromLookup:!0}}};Ge();Pt();var SB=class{supportsDescriptor(e,r){return!!e.range.startsWith(Zf)}supportsLocator(e,r){return!!e.reference.startsWith(Zf)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(Zf.length);return[G.makeLocator(e,`${Zf}${ue.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){return{...e,version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};Ge();Pt();var bB=class{supports(e,r){return!!e.reference.startsWith(Xf)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:Xf});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:Xf}),n=K.isAbsolute(a)?{packageFs:new gn(It.root),prefixPath:It.dot,localPath:It.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new gn(It.root),prefixPath:K.relative(It.root,n.localPath),localPath:It.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=K.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new gn(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:It.dot,localPath:p}:{packageFs:new qu(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:It.dot}}};Ge();Ge();Pt();var xB=class{supportsDescriptor(e,r){return!!e.range.startsWith(Xf)}supportsLocator(e,r){return!!e.reference.startsWith(Xf)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(Xf.length);return[G.makeLocator(e,`${Xf}${ue.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await He.releaseAfterUseAsync(async()=>await Ut.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var uIt={fetchers:[PB,bB],resolvers:[SB,xB]},AIt=uIt;var hj={};Vt(hj,{NodeModulesLinker:()=>GB,NodeModulesMode:()=>uj,PnpLooseLinker:()=>YB,default:()=>S1t});Pt();Ge();Pt();Pt();var Rq=(t,e)=>`${t}@${e}`,dIe=(t,e)=>{let r=e.indexOf("#"),o=r>=0?e.substring(r+1):e;return Rq(t,o)};var yIe=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),o=e.check||r>=9,a=e.hoistingLimits||new Map,n={check:o,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},u;n.debugLevel>=0&&(u=Date.now());let A=yIt(t,n),p=!1,h=0;do p=Tq(A,[A],new Set([A.locator]),new Map,n).anotherRoundNeeded,n.fastLookupPossible=!1,h++;while(p);if(n.debugLevel>=0&&console.log(`hoist time: ${Date.now()-u}ms, rounds: ${h}`),n.debugLevel>=1){let E=kB(A);if(Tq(A,[A],new Set([A.locator]),new Map,n).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: -${E}, next tree: -${kB(A)}`);let v=EIe(A);if(v)throw new Error(`${v}, after hoisting finished: -${kB(A)}`)}return n.debugLevel>=2&&console.log(kB(A)),EIt(A)},fIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=n=>{if(!o.has(n)){o.add(n);for(let u of n.hoistedDependencies.values())r.set(u.name,u);for(let u of n.dependencies.values())n.peerNames.has(u.name)||a(u)}};return a(e),r},pIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=new Set,n=(u,A)=>{if(o.has(u))return;o.add(u);for(let h of u.hoistedDependencies.values())if(!A.has(h.name)){let E;for(let I of t)E=I.dependencies.get(h.name),E&&r.set(E.name,E)}let p=new Set;for(let h of u.dependencies.values())p.add(h.name);for(let h of u.dependencies.values())u.peerNames.has(h.name)||n(h,p)};return n(e,a),r},mIe=(t,e)=>{if(e.decoupled)return e;let{name:r,references:o,ident:a,locator:n,dependencies:u,originalDependencies:A,hoistedDependencies:p,peerNames:h,reasons:E,isHoistBorder:I,hoistPriority:v,dependencyKind:x,hoistedFrom:C,hoistedTo:R}=e,L={name:r,references:new Set(o),ident:a,locator:n,dependencies:new Map(u),originalDependencies:new Map(A),hoistedDependencies:new Map(p),peerNames:new Set(h),reasons:new Map(E),decoupled:!0,isHoistBorder:I,hoistPriority:v,dependencyKind:x,hoistedFrom:new Map(C),hoistedTo:new Map(R)},U=L.dependencies.get(r);return U&&U.ident==L.ident&&L.dependencies.set(r,L),t.dependencies.set(L.name,L),L},hIt=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let a of t.dependencies.values())t.peerNames.has(a.name)||r.set(a.name,[a.ident]);let o=Array.from(e.keys());o.sort((a,n)=>{let u=e.get(a),A=e.get(n);return A.hoistPriority!==u.hoistPriority?A.hoistPriority-u.hoistPriority:A.peerDependents.size!==u.peerDependents.size?A.peerDependents.size-u.peerDependents.size:A.dependents.size-u.dependents.size});for(let a of o){let n=a.substring(0,a.indexOf("@",1)),u=a.substring(n.length+1);if(!t.peerNames.has(n)){let A=r.get(n);A||(A=[],r.set(n,A)),A.indexOf(u)<0&&A.push(u)}}return r},Fq=t=>{let e=new Set,r=(o,a=new Set)=>{if(!a.has(o)){a.add(o);for(let n of o.peerNames)if(!t.peerNames.has(n)){let u=t.dependencies.get(n);u&&!e.has(u)&&r(u,a)}e.add(o)}};for(let o of t.dependencies.values())t.peerNames.has(o.name)||r(o);return e},Tq=(t,e,r,o,a,n=new Set)=>{let u=e[e.length-1];if(n.has(u))return{anotherRoundNeeded:!1,isGraphChanged:!1};n.add(u);let A=CIt(u),p=hIt(u,A),h=t==u?new Map:a.fastLookupPossible?fIt(e):pIt(e),E,I=!1,v=!1,x=new Map(Array.from(p.entries()).map(([R,L])=>[R,L[0]])),C=new Map;do{let R=mIt(t,e,r,h,x,p,o,C,a);R.isGraphChanged&&(v=!0),R.anotherRoundNeeded&&(I=!0),E=!1;for(let[L,U]of p)U.length>1&&!u.dependencies.has(L)&&(x.delete(L),U.shift(),x.set(L,U[0]),E=!0)}while(E);for(let R of u.dependencies.values())if(!u.peerNames.has(R.name)&&!r.has(R.locator)){r.add(R.locator);let L=Tq(t,[...e,R],r,C,a);L.isGraphChanged&&(v=!0),L.anotherRoundNeeded&&(I=!0),r.delete(R.locator)}return{anotherRoundNeeded:I,isGraphChanged:v}},gIt=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},dIt=(t,e,r,o,a,n,u,A,{outputReason:p,fastLookupPossible:h})=>{let E,I=null,v=new Set;p&&(E=`${Array.from(e).map(L=>no(L)).join("\u2192")}`);let x=r[r.length-1],R=!(o.ident===x.ident);if(p&&!R&&(I="- self-reference"),R&&(R=o.dependencyKind!==1,p&&!R&&(I="- workspace")),R&&o.dependencyKind===2&&(R=!gIt(o),p&&!R&&(I="- external soft link with unhoisted dependencies")),R&&(R=x.dependencyKind!==1||x.hoistedFrom.has(o.name)||e.size===1,p&&!R&&(I=x.reasons.get(o.name))),R&&(R=!t.peerNames.has(o.name),p&&!R&&(I=`- cannot shadow peer: ${no(t.originalDependencies.get(o.name).locator)} at ${E}`)),R){let L=!1,U=a.get(o.name);if(L=!U||U.ident===o.ident,p&&!L&&(I=`- filled by: ${no(U.locator)} at ${E}`),L)for(let z=r.length-1;z>=1;z--){let ae=r[z].dependencies.get(o.name);if(ae&&ae.ident!==o.ident){L=!1;let le=A.get(x);le||(le=new Set,A.set(x,le)),le.add(o.name),p&&(I=`- filled by ${no(ae.locator)} at ${r.slice(0,z).map(ce=>no(ce.locator)).join("\u2192")}`);break}}R=L}if(R&&(R=n.get(o.name)===o.ident,p&&!R&&(I=`- filled by: ${no(u.get(o.name)[0])} at ${E}`)),R){let L=!0,U=new Set(o.peerNames);for(let z=r.length-1;z>=1;z--){let te=r[z];for(let ae of U){if(te.peerNames.has(ae)&&te.originalDependencies.has(ae))continue;let le=te.dependencies.get(ae);le&&t.dependencies.get(ae)!==le&&(z===r.length-1?v.add(le):(v=null,L=!1,p&&(I=`- peer dependency ${no(le.locator)} from parent ${no(te.locator)} was not hoisted to ${E}`))),U.delete(ae)}if(!L)break}R=L}if(R&&!h)for(let L of o.hoistedDependencies.values()){let U=a.get(L.name)||t.dependencies.get(L.name);if(!U||L.ident!==U.ident){R=!1,p&&(I=`- previously hoisted dependency mismatch, needed: ${no(L.locator)}, available: ${no(U?.locator)}`);break}}return v!==null&&v.size>0?{isHoistable:2,dependsOn:v,reason:I}:{isHoistable:R?0:1,reason:I}},aQ=t=>`${t.name}@${t.locator}`,mIt=(t,e,r,o,a,n,u,A,p)=>{let h=e[e.length-1],E=new Set,I=!1,v=!1,x=(U,z,te,ae,le)=>{if(E.has(ae))return;let ce=[...z,aQ(ae)],Ce=[...te,aQ(ae)],de=new Map,Be=new Map;for(let Ae of Fq(ae)){let ne=dIt(h,r,[h,...U,ae],Ae,o,a,n,A,{outputReason:p.debugLevel>=2,fastLookupPossible:p.fastLookupPossible});if(Be.set(Ae,ne),ne.isHoistable===2)for(let Z of ne.dependsOn){let xe=de.get(Z.name)||new Set;xe.add(Ae.name),de.set(Z.name,xe)}}let Ee=new Set,g=(Ae,ne,Z)=>{if(!Ee.has(Ae)){Ee.add(Ae),Be.set(Ae,{isHoistable:1,reason:Z});for(let xe of de.get(Ae.name)||[])g(ae.dependencies.get(xe),ne,p.debugLevel>=2?`- peer dependency ${no(Ae.locator)} from parent ${no(ae.locator)} was not hoisted`:"")}};for(let[Ae,ne]of Be)ne.isHoistable===1&&g(Ae,ne,ne.reason);let me=!1;for(let Ae of Be.keys())if(!Ee.has(Ae)){v=!0;let ne=u.get(ae);ne&&ne.has(Ae.name)&&(I=!0),me=!0,ae.dependencies.delete(Ae.name),ae.hoistedDependencies.set(Ae.name,Ae),ae.reasons.delete(Ae.name);let Z=h.dependencies.get(Ae.name);if(p.debugLevel>=2){let xe=Array.from(z).concat([ae.locator]).map(ht=>no(ht)).join("\u2192"),Ne=h.hoistedFrom.get(Ae.name);Ne||(Ne=[],h.hoistedFrom.set(Ae.name,Ne)),Ne.push(xe),ae.hoistedTo.set(Ae.name,Array.from(e).map(ht=>no(ht.locator)).join("\u2192"))}if(!Z)h.ident!==Ae.ident&&(h.dependencies.set(Ae.name,Ae),le.add(Ae));else for(let xe of Ae.references)Z.references.add(xe)}if(ae.dependencyKind===2&&me&&(I=!0),p.check){let Ae=EIe(t);if(Ae)throw new Error(`${Ae}, after hoisting dependencies of ${[h,...U,ae].map(ne=>no(ne.locator)).join("\u2192")}: -${kB(t)}`)}let we=Fq(ae);for(let Ae of we)if(Ee.has(Ae)){let ne=Be.get(Ae);if((a.get(Ae.name)===Ae.ident||!ae.reasons.has(Ae.name))&&ne.isHoistable!==0&&ae.reasons.set(Ae.name,ne.reason),!Ae.isHoistBorder&&Ce.indexOf(aQ(Ae))<0){E.add(ae);let xe=mIe(ae,Ae);x([...U,ae],ce,Ce,xe,R),E.delete(ae)}}},C,R=new Set(Fq(h)),L=Array.from(e).map(U=>aQ(U));do{C=R,R=new Set;for(let U of C){if(U.locator===h.locator||U.isHoistBorder)continue;let z=mIe(h,U);x([],Array.from(r),L,z,R)}}while(R.size>0);return{anotherRoundNeeded:I,isGraphChanged:v}},EIe=t=>{let e=[],r=new Set,o=new Set,a=(n,u,A)=>{if(r.has(n)||(r.add(n),o.has(n)))return;let p=new Map(u);for(let h of n.dependencies.values())n.peerNames.has(h.name)||p.set(h.name,h);for(let h of n.originalDependencies.values()){let E=p.get(h.name),I=()=>`${Array.from(o).concat([n]).map(v=>no(v.locator)).join("\u2192")}`;if(n.peerNames.has(h.name)){let v=u.get(h.name);(v!==E||!v||v.ident!==h.ident)&&e.push(`${I()} - broken peer promise: expected ${h.ident} but found ${v&&v.ident}`)}else{let v=A.hoistedFrom.get(n.name),x=n.hoistedTo.get(h.name),C=`${v?` hoisted from ${v.join(", ")}`:""}`,R=`${x?` hoisted to ${x}`:""}`,L=`${I()}${C}`;E?E.ident!==h.ident&&e.push(`${L} - broken require promise for ${h.name}${R}: expected ${h.ident}, but found: ${E.ident}`):e.push(`${L} - broken require promise: no required dependency ${h.name}${R} found`)}}o.add(n);for(let h of n.dependencies.values())n.peerNames.has(h.name)||a(h,p,n);o.delete(n)};return a(t,t.dependencies,t),e.join(` -`)},yIt=(t,e)=>{let{identName:r,name:o,reference:a,peerNames:n}=t,u={name:o,references:new Set([a]),locator:Rq(r,a),ident:dIe(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(n),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},A=new Map([[t,u]]),p=(h,E)=>{let I=A.get(h),v=!!I;if(!I){let{name:x,identName:C,reference:R,peerNames:L,hoistPriority:U,dependencyKind:z}=h,te=e.hoistingLimits.get(E.locator);I={name:x,references:new Set([R]),locator:Rq(C,R),ident:dIe(C,R),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(L),reasons:new Map,decoupled:!0,isHoistBorder:te?te.has(x):!1,hoistPriority:U||0,dependencyKind:z||0,hoistedFrom:new Map,hoistedTo:new Map},A.set(h,I)}if(E.dependencies.set(h.name,I),E.originalDependencies.set(h.name,I),v){let x=new Set,C=R=>{if(!x.has(R)){x.add(R),R.decoupled=!1;for(let L of R.dependencies.values())R.peerNames.has(L.name)||C(L)}};C(I)}else for(let x of h.dependencies)p(x,I)};for(let h of t.dependencies)p(h,u);return u},Nq=t=>t.substring(0,t.indexOf("@",1)),EIt=t=>{let e={name:t.name,identName:Nq(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),o=(a,n,u)=>{let A=r.has(a),p;if(n===a)p=u;else{let{name:h,references:E,locator:I}=a;p={name:h,identName:Nq(I),references:E,dependencies:new Set}}if(u.dependencies.add(p),!A){r.add(a);for(let h of a.dependencies.values())a.peerNames.has(h.name)||o(h,a,p);r.delete(a)}};for(let a of t.dependencies.values())o(a,t,e);return e},CIt=t=>{let e=new Map,r=new Set([t]),o=u=>`${u.name}@${u.ident}`,a=u=>{let A=o(u),p=e.get(A);return p||(p={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(A,p)),p},n=(u,A)=>{let p=!!r.has(A);if(a(A).dependents.add(u.ident),!p){r.add(A);for(let E of A.dependencies.values()){let I=a(E);I.hoistPriority=Math.max(I.hoistPriority,E.hoistPriority),A.peerNames.has(E.name)?I.peerDependents.add(A.ident):n(A,E)}}};for(let u of t.dependencies.values())t.peerNames.has(u.name)||n(t,u);return e},no=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let o=t.substring(e+1);if(o==="workspace:.")return".";if(o){let a=(o.indexOf("#")>0?o.split("#")[1]:o).replace("npm:","");return o.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`};var kB=t=>{let e=0,r=(a,n,u="")=>{if(e>5e4||n.has(a))return"";e++;let A=Array.from(a.dependencies.values()).sort((h,E)=>h.name===E.name?0:h.name>E.name?1:-1),p="";n.add(a);for(let h=0;h<A.length;h++){let E=A[h];if(!a.peerNames.has(E.name)&&E!==a){let I=a.reasons.get(E.name),v=Nq(E.locator);p+=`${u}${h<A.length-1?"\u251C\u2500":"\u2514\u2500"}${(n.has(E)?">":"")+(v!==E.name?`a:${E.name}:`:"")+no(E.locator)+(I?` ${I}`:"")} -`,p+=r(E,n,`${u}${h<A.length-1?"\u2502 ":" "}`)}}return n.delete(a),p};return r(t,new Set)+(e>5e4?` -Tree is too large, part of the tree has been dunped -`:"")};var QB=(o=>(o.WORKSPACES="workspaces",o.DEPENDENCIES="dependencies",o.NONE="none",o))(QB||{}),CIe="node_modules",Oh="$wsroot$";var FB=(t,e)=>{let{packageTree:r,hoistingLimits:o,errors:a,preserveSymlinksRequired:n}=IIt(t,e),u=null;if(a.length===0){let A=yIe(r,{hoistingLimits:o});u=vIt(t,A,e)}return{tree:u,errors:a,preserveSymlinksRequired:n}},gA=t=>`${t.name}@${t.reference}`,Mq=t=>{let e=new Map;for(let[r,o]of t.entries())if(!o.dirList){let a=e.get(o.locator);a||(a={target:o.target,linkType:o.linkType,locations:[],aliases:o.aliases},e.set(o.locator,a)),a.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((o,a)=>{let n=o.split(K.delimiter).length,u=a.split(K.delimiter).length;return a===o?0:n!==u?u-n:a>o?1:-1});return e},wIe=(t,e)=>{let r=G.isVirtualLocator(t)?G.devirtualizeLocator(t):t,o=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e;return G.areLocatorsEqual(r,o)},Lq=(t,e,r,o)=>{if(t.linkType!=="SOFT")return!1;let a=ue.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return K.contains(o,a)===null},wIt=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let o=ue.toPortablePath(e.packageLocation.slice(0,-1)),a=new Map,n={children:new Map},u=t.getDependencyTreeRoots(),A=new Map,p=new Set,h=(v,x)=>{let C=gA(v);if(p.has(C))return;p.add(C);let R=t.getPackageInformation(v);if(R){let L=x?gA(x):"";if(gA(v)!==L&&R.linkType==="SOFT"&&!v.reference.startsWith("link:")&&!Lq(R,v,t,o)){let U=IIe(R,v,t);(!A.get(U)||v.reference.startsWith("workspace:"))&&A.set(U,v)}for(let[U,z]of R.packageDependencies)z!==null&&(R.packagePeers.has(U)||h(t.getLocator(U,z),v))}};for(let v of u)h(v,null);let E=o.split(K.sep);for(let v of A.values()){let x=t.getPackageInformation(v),R=ue.toPortablePath(x.packageLocation.slice(0,-1)).split(K.sep).slice(E.length),L=n;for(let U of R){let z=L.children.get(U);z||(z={children:new Map},L.children.set(U,z)),L=z}L.workspaceLocator=v}let I=(v,x)=>{if(v.workspaceLocator){let C=gA(x),R=a.get(C);R||(R=new Set,a.set(C,R)),R.add(v.workspaceLocator)}for(let C of v.children.values())I(C,v.workspaceLocator||x)};for(let v of n.children.values())I(v,n.workspaceLocator);return a},IIt=(t,e)=>{let r=[],o=!1,a=new Map,n=wIt(t),u=t.getPackageInformation(t.topLevel);if(u===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let A=t.findPackageLocator(u.packageLocation);if(A===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let p=ue.toPortablePath(u.packageLocation.slice(0,-1)),h={name:A.name,identName:A.name,reference:A.reference,peerNames:u.packagePeers,dependencies:new Set,dependencyKind:1},E=new Map,I=(x,C)=>`${gA(C)}:${x}`,v=(x,C,R,L,U,z,te,ae)=>{let le=I(x,R),ce=E.get(le),Ce=!!ce;!Ce&&R.name===A.name&&R.reference===A.reference&&(ce=h,E.set(le,h));let de=Lq(C,R,t,p);if(!ce){let Ae=0;de?Ae=2:C.linkType==="SOFT"&&R.name.endsWith(Oh)&&(Ae=1),ce={name:x,identName:R.name,reference:R.reference,dependencies:new Set,peerNames:Ae===1?new Set:C.packagePeers,dependencyKind:Ae},E.set(le,ce)}let Be;if(de?Be=2:U.linkType==="SOFT"?Be=1:Be=0,ce.hoistPriority=Math.max(ce.hoistPriority||0,Be),ae&&!de){let Ae=gA({name:L.identName,reference:L.reference}),ne=a.get(Ae)||new Set;a.set(Ae,ne),ne.add(ce.name)}let Ee=new Map(C.packageDependencies);if(e.project){let Ae=e.project.workspacesByCwd.get(ue.toPortablePath(C.packageLocation.slice(0,-1)));if(Ae){let ne=new Set([...Array.from(Ae.manifest.peerDependencies.values(),Z=>G.stringifyIdent(Z)),...Array.from(Ae.manifest.peerDependenciesMeta.keys())]);for(let Z of ne)Ee.has(Z)||(Ee.set(Z,z.get(Z)||null),ce.peerNames.add(Z))}}let g=gA({name:R.name.replace(Oh,""),reference:R.reference}),me=n.get(g);if(me)for(let Ae of me)Ee.set(`${Ae.name}${Oh}`,Ae.reference);(C!==U||C.linkType!=="SOFT"||!de&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(te)))&&L.dependencies.add(ce);let we=R!==A&&C.linkType==="SOFT"&&!R.name.endsWith(Oh)&&!de;if(!Ce&&!we){let Ae=new Map;for(let[ne,Z]of Ee)if(Z!==null){let xe=t.getLocator(ne,Z),Ne=t.getLocator(ne.replace(Oh,""),Z),ht=t.getPackageInformation(Ne);if(ht===null)throw new Error("Assertion failed: Expected the package to have been registered");let H=Lq(ht,xe,t,p);if(e.validateExternalSoftLinks&&e.project&&H){ht.packageDependencies.size>0&&(o=!0);for(let[Ye,Se]of ht.packageDependencies)if(Se!==null){let et=G.parseLocator(Array.isArray(Se)?`${Se[0]}@${Se[1]}`:`${Ye}@${Se}`);if(gA(et)!==gA(xe)){let Ue=Ee.get(Ye);if(Ue){let b=G.parseLocator(Array.isArray(Ue)?`${Ue[0]}@${Ue[1]}`:`${Ye}@${Ue}`);wIe(b,et)||r.push({messageName:71,text:`Cannot link ${G.prettyIdent(e.project.configuration,G.parseIdent(xe.name))} into ${G.prettyLocator(e.project.configuration,G.parseLocator(`${R.name}@${R.reference}`))} dependency ${G.prettyLocator(e.project.configuration,et)} conflicts with parent dependency ${G.prettyLocator(e.project.configuration,b)}`})}else{let b=Ae.get(Ye);if(b){let w=b.target,S=G.parseLocator(Array.isArray(w)?`${w[0]}@${w[1]}`:`${Ye}@${w}`);wIe(S,et)||r.push({messageName:71,text:`Cannot link ${G.prettyIdent(e.project.configuration,G.parseIdent(xe.name))} into ${G.prettyLocator(e.project.configuration,G.parseLocator(`${R.name}@${R.reference}`))} dependency ${G.prettyLocator(e.project.configuration,et)} conflicts with dependency ${G.prettyLocator(e.project.configuration,S)} from sibling portal ${G.prettyIdent(e.project.configuration,G.parseIdent(b.portal.name))}`})}else Ae.set(Ye,{target:et.reference,portal:xe})}}}}let rt=e.hoistingLimitsByCwd?.get(te),Te=H?te:K.relative(p,ue.toPortablePath(ht.packageLocation))||It.dot,Fe=e.hoistingLimitsByCwd?.get(Te);v(ne,ht,xe,ce,C,Ee,Te,rt==="dependencies"||Fe==="dependencies"||Fe==="workspaces")}}};return v(A.name,u,A,h,u,u.packageDependencies,It.dot,!1),{packageTree:h,hoistingLimits:a,errors:r,preserveSymlinksRequired:o}};function IIe(t,e,r){let o=r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation;return ue.toPortablePath(o||t.packageLocation)}function BIt(t,e,r){let o=e.getLocator(t.name.replace(Oh,""),t.reference),a=e.getPackageInformation(o);if(a===null)throw new Error("Assertion failed: Expected the package to be registered");return r.pnpifyFs?{linkType:"SOFT",target:ue.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:IIe(a,t,e)}}var vIt=(t,e,r)=>{let o=new Map,a=(E,I,v)=>{let{linkType:x,target:C}=BIt(E,t,r);return{locator:gA(E),nodePath:I,target:C,linkType:x,aliases:v}},n=E=>{let[I,v]=E.split("/");return v?{scope:I,name:v}:{scope:null,name:I}},u=new Set,A=(E,I,v)=>{if(u.has(E))return;u.add(E);let x=Array.from(E.references).sort().join("#");for(let C of E.dependencies){let R=Array.from(C.references).sort().join("#");if(C.identName===E.identName.replace(Oh,"")&&R===x)continue;let L=Array.from(C.references).sort(),U={name:C.identName,reference:L[0]},{name:z,scope:te}=n(C.name),ae=te?[te,z]:[z],le=K.join(I,CIe),ce=K.join(le,...ae),Ce=`${v}/${U.name}`,de=a(U,v,L.slice(1)),Be=!1;if(de.linkType==="SOFT"&&r.project){let Ee=r.project.workspacesByCwd.get(de.target.slice(0,-1));Be=!!(Ee&&!Ee.manifest.name)}if(!C.name.endsWith(Oh)&&!Be){let Ee=o.get(ce);if(Ee){if(Ee.dirList)throw new Error(`Assertion failed: ${ce} cannot merge dir node with leaf node`);{let we=G.parseLocator(Ee.locator),Ae=G.parseLocator(de.locator);if(Ee.linkType!==de.linkType)throw new Error(`Assertion failed: ${ce} cannot merge nodes with different link types ${Ee.nodePath}/${G.stringifyLocator(we)} and ${v}/${G.stringifyLocator(Ae)}`);if(we.identHash!==Ae.identHash)throw new Error(`Assertion failed: ${ce} cannot merge nodes with different idents ${Ee.nodePath}/${G.stringifyLocator(we)} and ${v}/s${G.stringifyLocator(Ae)}`);de.aliases=[...de.aliases,...Ee.aliases,G.parseLocator(Ee.locator).reference]}}o.set(ce,de);let g=ce.split("/"),me=g.indexOf(CIe);for(let we=g.length-1;me>=0&&we>me;we--){let Ae=ue.toPortablePath(g.slice(0,we).join(K.sep)),ne=g[we],Z=o.get(Ae);if(!Z)o.set(Ae,{dirList:new Set([ne])});else if(Z.dirList){if(Z.dirList.has(ne))break;Z.dirList.add(ne)}}}A(C,de.linkType==="SOFT"?de.target:ce,Ce)}},p=a({name:e.name,reference:Array.from(e.references)[0]},"",[]),h=p.target;return o.set(h,p),A(e,h,""),o};Ge();Ge();Pt();Pt();nA();Nl();var rj={};Vt(rj,{PnpInstaller:()=>sd,PnpLinker:()=>Hh,UnplugCommand:()=>cC,default:()=>e1t,getPnpPath:()=>qh,jsInstallUtils:()=>mA,pnpUtils:()=>jB,quotePathIfNeeded:()=>o1e});Pt();var s1e=ve("url");Ge();Ge();Pt();Pt();var BIe={DEFAULT:{collapsed:!1,next:{"*":"DEFAULT"}},TOP_LEVEL:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA","*":"DEFAULT"}},FALLBACK_EXCLUSION_LIST:{collapsed:!1,next:{"*":"FALLBACK_EXCLUSION_ENTRIES"}},FALLBACK_EXCLUSION_ENTRIES:{collapsed:!0,next:{"*":"FALLBACK_EXCLUSION_DATA"}},FALLBACK_EXCLUSION_DATA:{collapsed:!0,next:{"*":"DEFAULT"}},PACKAGE_REGISTRY_DATA:{collapsed:!1,next:{"*":"PACKAGE_REGISTRY_ENTRIES"}},PACKAGE_REGISTRY_ENTRIES:{collapsed:!0,next:{"*":"PACKAGE_STORE_DATA"}},PACKAGE_STORE_DATA:{collapsed:!1,next:{"*":"PACKAGE_STORE_ENTRIES"}},PACKAGE_STORE_ENTRIES:{collapsed:!0,next:{"*":"PACKAGE_INFORMATION_DATA"}},PACKAGE_INFORMATION_DATA:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES","*":"DEFAULT"}},PACKAGE_DEPENDENCIES:{collapsed:!1,next:{"*":"PACKAGE_DEPENDENCY"}},PACKAGE_DEPENDENCY:{collapsed:!0,next:{"*":"DEFAULT"}}};function DIt(t,e,r){let o="";o+="[";for(let a=0,n=t.length;a<n;++a)o+=lQ(String(a),t[a],e,r).replace(/^ +/g,""),a+1<n&&(o+=", ");return o+="]",o}function PIt(t,e,r){let o=`${r} `,a="";a+=r,a+=`[ -`;for(let n=0,u=t.length;n<u;++n)a+=o+lQ(String(n),t[n],e,o).replace(/^ +/,""),n+1<u&&(a+=","),a+=` -`;return a+=r,a+="]",a}function SIt(t,e,r){let o=Object.keys(t),a="";a+="{";for(let n=0,u=o.length,A=0;n<u;++n){let p=o[n],h=t[p];typeof h>"u"||(A!==0&&(a+=", "),a+=JSON.stringify(p),a+=": ",a+=lQ(p,h,e,r).replace(/^ +/g,""),A+=1)}return a+="}",a}function bIt(t,e,r){let o=Object.keys(t),a=`${r} `,n="";n+=r,n+=`{ -`;let u=0;for(let A=0,p=o.length;A<p;++A){let h=o[A],E=t[h];typeof E>"u"||(u!==0&&(n+=",",n+=` -`),n+=a,n+=JSON.stringify(h),n+=": ",n+=lQ(h,E,e,a).replace(/^ +/g,""),u+=1)}return u!==0&&(n+=` -`),n+=r,n+="}",n}function lQ(t,e,r,o){let{next:a}=BIe[r],n=a[t]||a["*"];return vIe(e,n,o)}function vIe(t,e,r){let{collapsed:o}=BIe[e];return Array.isArray(t)?o?DIt(t,e,r):PIt(t,e,r):typeof t=="object"&&t!==null?o?SIt(t,e,r):bIt(t,e,r):JSON.stringify(t)}function DIe(t){return vIe(t,"TOP_LEVEL","")}function RB(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]<A[u]?-1:A[n]>A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function xIt(t){let e=new Map,r=RB(t.fallbackExclusionList||[],[({name:o,reference:a})=>o,({name:o,reference:a})=>a]);for(let{name:o,reference:a}of r){let n=e.get(o);typeof n>"u"&&e.set(o,n=new Set),n.add(a)}return Array.from(e).map(([o,a])=>[o,Array.from(a)])}function kIt(t){return RB(t.fallbackPool||[],([e])=>e)}function QIt(t){let e=[];for(let[r,o]of RB(t.packageRegistry,([a])=>a===null?"0":`1${a}`)){let a=[];e.push([r,a]);for(let[n,{packageLocation:u,packageDependencies:A,packagePeers:p,linkType:h,discardFromLookup:E}]of RB(o,([I])=>I===null?"0":`1${I}`)){let I=[];r!==null&&n!==null&&!A.has(r)&&I.push([r,n]);for(let[C,R]of RB(A.entries(),([L])=>L))I.push([C,R]);let v=p&&p.size>0?Array.from(p):void 0,x=E||void 0;a.push([n,{packageLocation:u,packageDependencies:I,packagePeers:v,linkType:h,discardFromLookup:x}])}}return e}function TB(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,fallbackExclusionList:xIt(t),fallbackPool:kIt(t),packageRegistryData:QIt(t)}}var bIe=Ze(SIe());function xIe(t,e){return[t?`${t} -`:"",`/* eslint-disable */ -`,`// @ts-nocheck -`,`"use strict"; -`,` -`,e,` -`,(0,bIe.default)()].join("")}function FIt(t){return JSON.stringify(t,null,2)}function RIt(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ -`)}'`}function TIt(t){return[`const RAW_RUNTIME_STATE = -`,`${RIt(DIe(t))}; - -`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { -`,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); -`,`} -`].join("")}function NIt(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) { -`,` const fs = require('fs'); -`,` const path = require('path'); -`,` const pnpDataFilepath = path.resolve(__dirname, ${JSON.stringify(dr.pnpData)}); -`,` return hydrateRuntimeState(JSON.parse(fs.readFileSync(pnpDataFilepath, 'utf8')), {basePath: basePath || __dirname}); -`,`} -`].join("")}function kIe(t){let e=TB(t),r=TIt(e);return xIe(t.shebang,r)}function QIe(t){let e=TB(t),r=NIt(),o=xIe(t.shebang,r);return{dataFile:FIt(e),loaderFile:o}}Pt();function Uq(t,{basePath:e}){let r=ue.toPortablePath(e),o=K.resolve(r),a=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,n=new Map,u=new Map(t.packageRegistryData.map(([I,v])=>[I,new Map(v.map(([x,C])=>{if(I===null!=(x===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let R=C.discardFromLookup??!1,L={name:I,reference:x},U=n.get(C.packageLocation);U?(U.discardFromLookup=U.discardFromLookup&&R,R||(U.locator=L)):n.set(C.packageLocation,{locator:L,discardFromLookup:R});let z=null;return[x,{packageDependencies:new Map(C.packageDependencies),packagePeers:new Set(C.packagePeers),linkType:C.linkType,discardFromLookup:R,get packageLocation(){return z||(z=K.join(o,C.packageLocation))}}]}))])),A=new Map(t.fallbackExclusionList.map(([I,v])=>[I,new Set(v)])),p=new Map(t.fallbackPool),h=t.dependencyTreeRoots,E=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:h,enableTopLevelFallback:E,fallbackExclusionList:A,fallbackPool:p,ignorePattern:a,packageLocatorsByLocations:n,packageRegistry:u}}Pt();Pt();var ep=ve("module"),id=ve("url"),zq=ve("util");var Oo=ve("url");var NIe=Ze(ve("assert"));var _q=Array.isArray,NB=JSON.stringify,LB=Object.getOwnPropertyNames,nd=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),Hq=(t,e)=>RegExp.prototype.exec.call(t,e),qq=(t,...e)=>RegExp.prototype[Symbol.replace].apply(t,e),Uh=(t,...e)=>String.prototype.endsWith.apply(t,e),jq=(t,...e)=>String.prototype.includes.apply(t,e),Gq=(t,...e)=>String.prototype.lastIndexOf.apply(t,e),MB=(t,...e)=>String.prototype.indexOf.apply(t,e),FIe=(t,...e)=>String.prototype.replace.apply(t,e),_h=(t,...e)=>String.prototype.slice.apply(t,e),dA=(t,...e)=>String.prototype.startsWith.apply(t,e),RIe=Map,TIe=JSON.parse;function OB(t,e,r){return class extends r{constructor(...o){super(e(...o)),this.code=t,this.name=`${r.name} [${t}]`}}}var LIe=OB("ERR_PACKAGE_IMPORT_NOT_DEFINED",(t,e,r)=>`Package import specifier "${t}" is not defined${e?` in package ${e}package.json`:""} imported from ${r}`,TypeError),Yq=OB("ERR_INVALID_MODULE_SPECIFIER",(t,e,r=void 0)=>`Invalid module "${t}" ${e}${r?` imported from ${r}`:""}`,TypeError),MIe=OB("ERR_INVALID_PACKAGE_TARGET",(t,e,r,o=!1,a=void 0)=>{let n=typeof r=="string"&&!o&&r.length&&!dA(r,"./");return e==="."?((0,NIe.default)(o===!1),`Invalid "exports" main target ${NB(r)} defined in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`):`Invalid "${o?"imports":"exports"}" target ${NB(r)} defined for '${e}' in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`},Error),UB=OB("ERR_INVALID_PACKAGE_CONFIG",(t,e,r)=>`Invalid package config ${t}${e?` while importing ${e}`:""}${r?`. ${r}`:""}`,Error),OIe=OB("ERR_PACKAGE_PATH_NOT_EXPORTED",(t,e,r=void 0)=>e==="."?`No "exports" main defined in ${t}package.json${r?` imported from ${r}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${t}package.json${r?` imported from ${r}`:""}`,Error);var uQ=ve("url");function UIe(t,e){let r=Object.create(null);for(let o=0;o<e.length;o++){let a=e[o];nd(t,a)&&(r[a]=t[a])}return r}var cQ=new RIe;function LIt(t,e,r,o){let a=cQ.get(t);if(a!==void 0)return a;let n=o(t);if(n===void 0){let x={pjsonPath:t,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return cQ.set(t,x),x}let u;try{u=TIe(n)}catch(x){throw new UB(t,(r?`"${e}" from `:"")+(0,uQ.fileURLToPath)(r||e),x.message)}let{imports:A,main:p,name:h,type:E}=UIe(u,["imports","main","name","type"]),I=nd(u,"exports")?u.exports:void 0;(typeof A!="object"||A===null)&&(A=void 0),typeof p!="string"&&(p=void 0),typeof h!="string"&&(h=void 0),E!=="module"&&E!=="commonjs"&&(E="none");let v={pjsonPath:t,exists:!0,main:p,name:h,type:E,exports:I,imports:A};return cQ.set(t,v),v}function _Ie(t,e){let r=new URL("./package.json",t);for(;;){let n=r.pathname;if(Uh(n,"node_modules/package.json"))break;let u=LIt((0,uQ.fileURLToPath)(r),t,void 0,e);if(u.exists)return u;let A=r;if(r=new URL("../package.json",r),r.pathname===A.pathname)break}let o=(0,uQ.fileURLToPath)(r),a={pjsonPath:o,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return cQ.set(o,a),a}function MIt(t,e,r){throw new LIe(t,e&&(0,Oo.fileURLToPath)(new URL(".",e)),(0,Oo.fileURLToPath)(r))}function OIt(t,e,r,o){let a=`request is not a valid subpath for the "${r?"imports":"exports"}" resolution of ${(0,Oo.fileURLToPath)(e)}`;throw new Yq(t,a,o&&(0,Oo.fileURLToPath)(o))}function _B(t,e,r,o,a){throw typeof e=="object"&&e!==null?e=NB(e,null,""):e=`${e}`,new MIe((0,Oo.fileURLToPath)(new URL(".",r)),t,e,o,a&&(0,Oo.fileURLToPath)(a))}var HIe=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,qIe=/\*/g;function UIt(t,e,r,o,a,n,u,A){if(e!==""&&!n&&t[t.length-1]!=="/"&&_B(r,t,o,u,a),!dA(t,"./")){if(u&&!dA(t,"../")&&!dA(t,"/")){let I=!1;try{new URL(t),I=!0}catch{}if(!I)return n?qq(qIe,t,()=>e):t+e}_B(r,t,o,u,a)}Hq(HIe,_h(t,2))!==null&&_B(r,t,o,u,a);let p=new URL(t,o),h=p.pathname,E=new URL(".",o).pathname;if(dA(h,E)||_B(r,t,o,u,a),e==="")return p;if(Hq(HIe,e)!==null){let I=n?FIe(r,"*",()=>e):r+e;OIt(I,o,u,a)}return n?new URL(qq(qIe,p.href,()=>e)):new URL(e,p)}function _It(t){let e=+t;return`${e}`!==t?!1:e>=0&&e<4294967295}function lC(t,e,r,o,a,n,u,A){if(typeof e=="string")return UIt(e,r,o,t,a,n,u,A);if(_q(e)){if(e.length===0)return null;let p;for(let h=0;h<e.length;h++){let E=e[h],I;try{I=lC(t,E,r,o,a,n,u,A)}catch(v){if(p=v,v.code==="ERR_INVALID_PACKAGE_TARGET")continue;throw v}if(I!==void 0){if(I===null){p=null;continue}return I}}if(p==null)return p;throw p}else if(typeof e=="object"&&e!==null){let p=LB(e);for(let h=0;h<p.length;h++){let E=p[h];if(_It(E))throw new UB((0,Oo.fileURLToPath)(t),a,'"exports" cannot contain numeric property keys.')}for(let h=0;h<p.length;h++){let E=p[h];if(E==="default"||A.has(E)){let I=e[E],v=lC(t,I,r,o,a,n,u,A);if(v===void 0)continue;return v}}return}else if(e===null)return null;_B(o,e,t,u,a)}function GIe(t,e){let r=MB(t,"*"),o=MB(e,"*"),a=r===-1?t.length:r+1,n=o===-1?e.length:o+1;return a>n?-1:n>a||r===-1?1:o===-1||t.length>e.length?-1:e.length>t.length?1:0}function HIt(t,e,r){if(typeof t=="string"||_q(t))return!0;if(typeof t!="object"||t===null)return!1;let o=LB(t),a=!1,n=0;for(let u=0;u<o.length;u++){let A=o[u],p=A===""||A[0]!==".";if(n++===0)a=p;else if(a!==p)throw new UB((0,Oo.fileURLToPath)(e),r,`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return a}function Wq(t,e,r){throw new OIe((0,Oo.fileURLToPath)(new URL(".",e)),t,r&&(0,Oo.fileURLToPath)(r))}var jIe=new Set;function qIt(t,e,r){let o=(0,Oo.fileURLToPath)(e);jIe.has(o+"|"+t)||(jIe.add(o+"|"+t),process.emitWarning(`Use of deprecated trailing slash pattern mapping "${t}" in the "exports" field module resolution of the package at ${o}${r?` imported from ${(0,Oo.fileURLToPath)(r)}`:""}. Mapping specifiers ending in "/" is no longer supported.`,"DeprecationWarning","DEP0155"))}function YIe({packageJSONUrl:t,packageSubpath:e,exports:r,base:o,conditions:a}){if(HIt(r,t,o)&&(r={".":r}),nd(r,e)&&!jq(e,"*")&&!Uh(e,"/")){let p=r[e],h=lC(t,p,"",e,o,!1,!1,a);return h==null&&Wq(e,t,o),h}let n="",u,A=LB(r);for(let p=0;p<A.length;p++){let h=A[p],E=MB(h,"*");if(E!==-1&&dA(e,_h(h,0,E))){Uh(e,"/")&&qIt(e,t,o);let I=_h(h,E+1);e.length>=h.length&&Uh(e,I)&&GIe(n,h)===1&&Gq(h,"*")===E&&(n=h,u=_h(e,E,e.length-I.length))}}if(n){let p=r[n],h=lC(t,p,u,n,o,!0,!1,a);return h==null&&Wq(e,t,o),h}Wq(e,t,o)}function WIe({name:t,base:e,conditions:r,readFileSyncFn:o}){if(t==="#"||dA(t,"#/")||Uh(t,"/")){let u="is not a valid internal imports specifier name";throw new Yq(t,u,(0,Oo.fileURLToPath)(e))}let a,n=_Ie(e,o);if(n.exists){a=(0,Oo.pathToFileURL)(n.pjsonPath);let u=n.imports;if(u)if(nd(u,t)&&!jq(t,"*")){let A=lC(a,u[t],"",t,e,!1,!0,r);if(A!=null)return A}else{let A="",p,h=LB(u);for(let E=0;E<h.length;E++){let I=h[E],v=MB(I,"*");if(v!==-1&&dA(t,_h(I,0,v))){let x=_h(I,v+1);t.length>=I.length&&Uh(t,x)&&GIe(A,I)===1&&Gq(I,"*")===v&&(A=I,p=_h(t,v,t.length-x.length))}}if(A){let E=u[A],I=lC(a,E,p,A,e,!0,!0,r);if(I!=null)return I}}}MIt(t,a,e)}Pt();var jIt=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ts(t,e,r={},o){o??=jIt.has(t)?"MODULE_NOT_FOUND":t;let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...a,value:o},pnpCode:{...a,value:t},data:{...a,value:r}})}function cu(t){return ue.normalize(ue.fromPortablePath(t))}var JIe=Ze(VIe());function XIe(t){return GIt(),Vq[t]}var Vq;function GIt(){Vq||(Vq={"--conditions":[],...zIe(YIt()),...zIe(process.execArgv)})}function zIe(t){return(0,JIe.default)({"--conditions":[String],"-C":"--conditions"},{argv:t,permissive:!0})}function YIt(){let t=[],e=WIt(process.env.NODE_OPTIONS||"",t);return t.length,e}function WIt(t,e){let r=[],o=!1,a=!0;for(let n=0;n<t.length;++n){let u=t[n];if(u==="\\"&&o){if(n+1===t.length)return e.push(`invalid value for NODE_OPTIONS (invalid escape) -`),r;u=t[++n]}else if(u===" "&&!o){a=!0;continue}else if(u==='"'){o=!o;continue}a?(r.push(u),a=!1):r[r.length-1]+=u}return o&&e.push(`invalid value for NODE_OPTIONS (unterminated string) -`),r}Pt();var[Ua,$f]=process.versions.node.split(".").map(t=>parseInt(t,10)),ZIe=Ua>19||Ua===19&&$f>=2||Ua===18&&$f>=13,xJt=Ua===20&&$f<6||Ua===19&&$f>=3,kJt=Ua>19||Ua===19&&$f>=6,QJt=Ua>=21||Ua===20&&$f>=10||Ua===18&&$f>=19,FJt=Ua>=21||Ua===20&&$f>=10||Ua===18&&$f>=20,RJt=Ua>=22;function $Ie(t){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(t=t.map(e=>ue.fromPortablePath(zs.resolveVirtual(ue.toPortablePath(e)))),ZIe)process.send({"watch:require":t});else for(let e of t)process.send({"watch:require":e})}function Jq(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,o=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,n=/^(\/|\.{1,2}(\/|$))/,u=/\/$/,A=/^\.{0,2}\//,p={name:null,reference:null},h=[],E=new Set;if(t.enableTopLevelFallback===!0&&h.push(p),e.compatibilityMode!==!1)for(let Te of["react-scripts","gatsby"]){let Fe=t.packageRegistry.get(Te);if(Fe)for(let ke of Fe.keys()){if(ke===null)throw new Error("Assertion failed: This reference shouldn't be null");h.push({name:Te,reference:ke})}}let{ignorePattern:I,packageRegistry:v,packageLocatorsByLocations:x}=t;function C(Te,Fe){return{fn:Te,args:Fe,error:null,result:null}}function R(Te){let Fe=process.stderr?.hasColors?.()??process.stdout.isTTY,ke=(et,Ue)=>`\x1B[${et}m${Ue}\x1B[0m`,Ye=Te.error;console.error(Ye?ke("31;1",`\u2716 ${Te.error?.message.replace(/\n.*/s,"")}`):ke("33;1","\u203C Resolution")),Te.args.length>0&&console.error();for(let et of Te.args)console.error(` ${ke("37;1","In \u2190")} ${(0,zq.inspect)(et,{colors:Fe,compact:!0})}`);Te.result&&(console.error(),console.error(` ${ke("37;1","Out \u2192")} ${(0,zq.inspect)(Te.result,{colors:Fe,compact:!0})}`));let Se=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(Se.length>0){console.error();for(let et of Se)console.error(` ${ke("38;5;244",et)}`)}console.error()}function L(Te,Fe){if(e.allowDebug===!1)return Fe;if(Number.isFinite(o)){if(o>=2)return(...ke)=>{let Ye=C(Te,ke);try{return Ye.result=Fe(...ke)}catch(Se){throw Ye.error=Se}finally{R(Ye)}};if(o>=1)return(...ke)=>{try{return Fe(...ke)}catch(Ye){let Se=C(Te,ke);throw Se.error=Ye,R(Se),Ye}}}return Fe}function U(Te){let Fe=g(Te);if(!Fe)throw ts("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Fe}function z(Te){if(Te.name===null)return!0;for(let Fe of t.dependencyTreeRoots)if(Fe.name===Te.name&&Fe.reference===Te.reference)return!0;return!1}let te=new Set(["node","require",...XIe("--conditions")]);function ae(Te,Fe=te,ke){let Ye=Ae(K.join(Te,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(Ye===null)throw ts("INTERNAL",`The locator that owns the "${Te}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:Se}=U(Ye),et=K.join(Se,dr.manifest);if(!e.fakeFs.existsSync(et))return null;let Ue=JSON.parse(e.fakeFs.readFileSync(et,"utf8"));if(Ue.exports==null)return null;let b=K.contains(Se,Te);if(b===null)throw ts("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");b!=="."&&!A.test(b)&&(b=`./${b}`);try{let w=YIe({packageJSONUrl:(0,id.pathToFileURL)(ue.fromPortablePath(et)),packageSubpath:b,exports:Ue.exports,base:ke?(0,id.pathToFileURL)(ue.fromPortablePath(ke)):null,conditions:Fe});return ue.toPortablePath((0,id.fileURLToPath)(w))}catch(w){throw ts("EXPORTS_RESOLUTION_FAILED",w.message,{unqualifiedPath:cu(Te),locator:Ye,pkgJson:Ue,subpath:cu(b),conditions:Fe},w.code)}}function le(Te,Fe,{extensions:ke}){let Ye;try{Fe.push(Te),Ye=e.fakeFs.statSync(Te)}catch{}if(Ye&&!Ye.isDirectory())return e.fakeFs.realpathSync(Te);if(Ye&&Ye.isDirectory()){let Se;try{Se=JSON.parse(e.fakeFs.readFileSync(K.join(Te,dr.manifest),"utf8"))}catch{}let et;if(Se&&Se.main&&(et=K.resolve(Te,Se.main)),et&&et!==Te){let Ue=le(et,Fe,{extensions:ke});if(Ue!==null)return Ue}}for(let Se=0,et=ke.length;Se<et;Se++){let Ue=`${Te}${ke[Se]}`;if(Fe.push(Ue),e.fakeFs.existsSync(Ue))return Ue}if(Ye&&Ye.isDirectory())for(let Se=0,et=ke.length;Se<et;Se++){let Ue=K.format({dir:Te,name:"index",ext:ke[Se]});if(Fe.push(Ue),e.fakeFs.existsSync(Ue))return Ue}return null}function ce(Te){let Fe=new ep.Module(Te,null);return Fe.filename=Te,Fe.paths=ep.Module._nodeModulePaths(Te),Fe}function Ce(Te,Fe){return Fe.endsWith("/")&&(Fe=K.join(Fe,"internal.js")),ep.Module._resolveFilename(ue.fromPortablePath(Te),ce(ue.fromPortablePath(Fe)),!1,{plugnplay:!1})}function de(Te){if(I===null)return!1;let Fe=K.contains(t.basePath,Te);return Fe===null?!1:!!I.test(Fe.replace(/\/$/,""))}let Be={std:3,resolveVirtual:1,getAllLocators:1},Ee=p;function g({name:Te,reference:Fe}){let ke=v.get(Te);if(!ke)return null;let Ye=ke.get(Fe);return Ye||null}function me({name:Te,reference:Fe}){let ke=[];for(let[Ye,Se]of v)if(Ye!==null)for(let[et,Ue]of Se)et===null||Ue.packageDependencies.get(Te)!==Fe||Ye===Te&&et===Fe||ke.push({name:Ye,reference:et});return ke}function we(Te,Fe){let ke=new Map,Ye=new Set,Se=Ue=>{let b=JSON.stringify(Ue.name);if(Ye.has(b))return;Ye.add(b);let w=me(Ue);for(let S of w)if(U(S).packagePeers.has(Te))Se(S);else{let F=ke.get(S.name);typeof F>"u"&&ke.set(S.name,F=new Set),F.add(S.reference)}};Se(Fe);let et=[];for(let Ue of[...ke.keys()].sort())for(let b of[...ke.get(Ue)].sort())et.push({name:Ue,reference:b});return et}function Ae(Te,{resolveIgnored:Fe=!1,includeDiscardFromLookup:ke=!1}={}){if(de(Te)&&!Fe)return null;let Ye=K.relative(t.basePath,Te);Ye.match(n)||(Ye=`./${Ye}`),Ye.endsWith("/")||(Ye=`${Ye}/`);do{let Se=x.get(Ye);if(typeof Se>"u"||Se.discardFromLookup&&!ke){Ye=Ye.substring(0,Ye.lastIndexOf("/",Ye.length-2)+1);continue}return Se.locator}while(Ye!=="");return null}function ne(Te){try{return e.fakeFs.readFileSync(ue.toPortablePath(Te),"utf8")}catch(Fe){if(Fe.code==="ENOENT")return;throw Fe}}function Z(Te,Fe,{considerBuiltins:ke=!0}={}){if(Te.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(Te==="pnpapi")return ue.toPortablePath(e.pnpapiResolution);if(ke&&(0,ep.isBuiltin)(Te))return null;let Ye=cu(Te),Se=Fe&&cu(Fe);if(Fe&&de(Fe)&&(!K.isAbsolute(Te)||Ae(Te)===null)){let b=Ce(Te,Fe);if(b===!1)throw ts("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) - -Require request: "${Ye}" -Required by: ${Se} -`,{request:Ye,issuer:Se});return ue.toPortablePath(b)}let et,Ue=Te.match(a);if(Ue){if(!Fe)throw ts("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:Ye,issuer:Se});let[,b,w]=Ue,S=Ae(Fe);if(!S){let Re=Ce(Te,Fe);if(Re===!1)throw ts("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). - -Require path: "${Ye}" -Required by: ${Se} -`,{request:Ye,issuer:Se});return ue.toPortablePath(Re)}let F=U(S).packageDependencies.get(b),J=null;if(F==null&&S.name!==null){let Re=t.fallbackExclusionList.get(S.name);if(!Re||!Re.has(S.reference)){for(let dt=0,jt=h.length;dt<jt;++dt){let St=U(h[dt]).packageDependencies.get(b);if(St!=null){r?J=St:F=St;break}}if(t.enableTopLevelFallback&&F==null&&J===null){let dt=t.fallbackPool.get(b);dt!=null&&(J=dt)}}}let X=null;if(F===null)if(z(S))X=ts("MISSING_PEER_DEPENDENCY",`Your application tried to access ${b} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. - -Required package: ${b}${b!==Ye?` (via "${Ye}")`:""} -Required by: ${Se} -`,{request:Ye,issuer:Se,dependencyName:b});else{let Re=we(b,S);Re.every(at=>z(at))?X=ts("MISSING_PEER_DEPENDENCY",`${S.name} tried to access ${b} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. - -Required package: ${b}${b!==Ye?` (via "${Ye}")`:""} -Required by: ${S.name}@${S.reference} (via ${Se}) -${Re.map(at=>`Ancestor breaking the chain: ${at.name}@${at.reference} -`).join("")} -`,{request:Ye,issuer:Se,issuerLocator:Object.assign({},S),dependencyName:b,brokenAncestors:Re}):X=ts("MISSING_PEER_DEPENDENCY",`${S.name} tried to access ${b} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. - -Required package: ${b}${b!==Ye?` (via "${Ye}")`:""} -Required by: ${S.name}@${S.reference} (via ${Se}) - -${Re.map(at=>`Ancestor breaking the chain: ${at.name}@${at.reference} -`).join("")} -`,{request:Ye,issuer:Se,issuerLocator:Object.assign({},S),dependencyName:b,brokenAncestors:Re})}else F===void 0&&(!ke&&(0,ep.isBuiltin)(Te)?z(S)?X=ts("UNDECLARED_DEPENDENCY",`Your application tried to access ${b}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${b} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. - -Required package: ${b}${b!==Ye?` (via "${Ye}")`:""} -Required by: ${Se} -`,{request:Ye,issuer:Se,dependencyName:b}):X=ts("UNDECLARED_DEPENDENCY",`${S.name} tried to access ${b}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${b} isn't otherwise declared in ${S.name}'s dependencies, this makes the require call ambiguous and unsound. - -Required package: ${b}${b!==Ye?` (via "${Ye}")`:""} -Required by: ${Se} -`,{request:Ye,issuer:Se,issuerLocator:Object.assign({},S),dependencyName:b}):z(S)?X=ts("UNDECLARED_DEPENDENCY",`Your application tried to access ${b}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. - -Required package: ${b}${b!==Ye?` (via "${Ye}")`:""} -Required by: ${Se} -`,{request:Ye,issuer:Se,dependencyName:b}):X=ts("UNDECLARED_DEPENDENCY",`${S.name} tried to access ${b}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. - -Required package: ${b}${b!==Ye?` (via "${Ye}")`:""} -Required by: ${S.name}@${S.reference} (via ${Se}) -`,{request:Ye,issuer:Se,issuerLocator:Object.assign({},S),dependencyName:b}));if(F==null){if(J===null||X===null)throw X||new Error("Assertion failed: Expected an error to have been set");F=J;let Re=X.message.replace(/\n.*/g,"");X.message=Re,!E.has(Re)&&o!==0&&(E.add(Re),process.emitWarning(X))}let $=Array.isArray(F)?{name:F[0],reference:F[1]}:{name:b,reference:F},ie=U($);if(!ie.packageLocation)throw ts("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. - -Required package: ${$.name}@${$.reference}${$.name!==Ye?` (via "${Ye}")`:""} -Required by: ${S.name}@${S.reference} (via ${Se}) -`,{request:Ye,issuer:Se,dependencyLocator:Object.assign({},$)});let be=ie.packageLocation;w?et=K.join(be,w):et=be}else if(K.isAbsolute(Te))et=K.normalize(Te);else{if(!Fe)throw ts("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:Ye,issuer:Se});let b=K.resolve(Fe);Fe.match(u)?et=K.normalize(K.join(b,Te)):et=K.normalize(K.join(K.dirname(b),Te))}return K.normalize(et)}function xe(Te,Fe,ke=te,Ye){if(n.test(Te))return Fe;let Se=ae(Fe,ke,Ye);return Se?K.normalize(Se):Fe}function Ne(Te,{extensions:Fe=Object.keys(ep.Module._extensions)}={}){let ke=[],Ye=le(Te,ke,{extensions:Fe});if(Ye)return K.normalize(Ye);{$Ie(ke.map(Ue=>ue.fromPortablePath(Ue)));let Se=cu(Te),et=Ae(Te);if(et){let{packageLocation:Ue}=U(et),b=!0;try{e.fakeFs.accessSync(Ue)}catch(w){if(w?.code==="ENOENT")b=!1;else{let S=(w?.message??w??"empty exception thrown").replace(/^[A-Z]/,y=>y.toLowerCase());throw ts("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${S}). - -Missing package: ${et.name}@${et.reference} -Expected package location: ${cu(Ue)} -`,{unqualifiedPath:Se,extensions:Fe})}}if(!b){let w=Ue.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ts("QUALIFIED_PATH_RESOLUTION_FAILED",`${w} - -Missing package: ${et.name}@${et.reference} -Expected package location: ${cu(Ue)} -`,{unqualifiedPath:Se,extensions:Fe})}}throw ts("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. - -Source path: ${Se} -${ke.map(Ue=>`Not found: ${cu(Ue)} -`).join("")}`,{unqualifiedPath:Se,extensions:Fe})}}function ht(Te,Fe,ke){if(!Fe)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let Ye=WIe({name:Te,base:(0,id.pathToFileURL)(ue.fromPortablePath(Fe)),conditions:ke.conditions??te,readFileSyncFn:ne});if(Ye instanceof URL)return Ne(ue.toPortablePath((0,id.fileURLToPath)(Ye)),{extensions:ke.extensions});if(Ye.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return H(Ye,Fe,ke)}function H(Te,Fe,ke={}){try{if(Te.startsWith("#"))return ht(Te,Fe,ke);let{considerBuiltins:Ye,extensions:Se,conditions:et}=ke,Ue=Z(Te,Fe,{considerBuiltins:Ye});if(Te==="pnpapi")return Ue;if(Ue===null)return null;let b=()=>Fe!==null?de(Fe):!1,w=(!Ye||!(0,ep.isBuiltin)(Te))&&!b()?xe(Te,Ue,et,Fe):Ue;return Ne(w,{extensions:Se})}catch(Ye){throw Object.hasOwn(Ye,"pnpCode")&&Object.assign(Ye.data,{request:cu(Te),issuer:Fe&&cu(Fe)}),Ye}}function rt(Te){let Fe=K.normalize(Te),ke=zs.resolveVirtual(Fe);return ke!==Fe?ke:null}return{VERSIONS:Be,topLevel:Ee,getLocator:(Te,Fe)=>Array.isArray(Fe)?{name:Fe[0],reference:Fe[1]}:{name:Te,reference:Fe},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let Te=[];for(let[Fe,ke]of v)for(let Ye of ke.keys())Fe!==null&&Ye!==null&&Te.push({name:Fe,reference:Ye});return Te},getPackageInformation:Te=>{let Fe=g(Te);if(Fe===null)return null;let ke=ue.fromPortablePath(Fe.packageLocation);return{...Fe,packageLocation:ke}},findPackageLocator:Te=>Ae(ue.toPortablePath(Te)),resolveToUnqualified:L("resolveToUnqualified",(Te,Fe,ke)=>{let Ye=Fe!==null?ue.toPortablePath(Fe):null,Se=Z(ue.toPortablePath(Te),Ye,ke);return Se===null?null:ue.fromPortablePath(Se)}),resolveUnqualified:L("resolveUnqualified",(Te,Fe)=>ue.fromPortablePath(Ne(ue.toPortablePath(Te),Fe))),resolveRequest:L("resolveRequest",(Te,Fe,ke)=>{let Ye=Fe!==null?ue.toPortablePath(Fe):null,Se=H(ue.toPortablePath(Te),Ye,ke);return Se===null?null:ue.fromPortablePath(Se)}),resolveVirtual:L("resolveVirtual",Te=>{let Fe=rt(ue.toPortablePath(Te));return Fe!==null?ue.fromPortablePath(Fe):null})}}Pt();var e1e=(t,e,r)=>{let o=TB(t),a=Uq(o,{basePath:e}),n=ue.join(e,dr.pnpCjs);return Jq(a,{fakeFs:r,pnpapiResolution:n})};var Zq=Ze(r1e());qt();var mA={};Vt(mA,{checkManifestCompatibility:()=>n1e,extractBuildRequest:()=>AQ,getExtractHint:()=>$q,hasBindingGyp:()=>ej});Ge();Pt();function n1e(t){return G.isPackageCompatible(t,Xi.getArchitectureSet())}function AQ(t,e,r,{configuration:o}){let a=[];for(let n of["preinstall","install","postinstall"])e.manifest.scripts.has(n)&&a.push({type:0,script:n});return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&a.push({type:1,script:"node-gyp rebuild"}),a.length===0?null:t.linkType!=="HARD"?{skipped:!0,explain:n=>n.reportWarningOnce(6,`${G.prettyLocator(o,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:n=>n.reportInfoOnce(5,`${G.prettyLocator(o,t)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!o.get("enableScripts")&&!r.built?{skipped:!0,explain:n=>n.reportWarningOnce(4,`${G.prettyLocator(o,t)} lists build scripts, but all build scripts have been disabled.`)}:n1e(t)?{skipped:!1,directives:a}:{skipped:!0,explain:n=>n.reportWarningOnce(76,`${G.prettyLocator(o,t)} The ${Xi.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var VIt=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function $q(t){return t.packageFs.getExtractHint({relevantExtensions:VIt})}function ej(t){let e=K.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var jB={};Vt(jB,{getUnpluggedPath:()=>qB});Ge();Pt();function qB(t,{configuration:e}){return K.resolve(e.get("pnpUnpluggedFolder"),G.slugifyLocator(t))}var zIt=new Set([G.makeIdent(null,"open").identHash,G.makeIdent(null,"opn").identHash]),Hh=class{constructor(){this.mode="strict";this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let o=qh(r.project).cjs;if(!oe.existsSync(o))throw new st(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=He.getFactoryWithDefault(this.pnpCache,o,()=>He.dynamicRequire(o,{cachingStrategy:He.CachingStrategy.FsTime})),n={name:G.stringifyIdent(e),reference:e.reference},u=a.getPackageInformation(n);if(!u)throw new st(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return ue.toPortablePath(u.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=qh(r.project).cjs;if(!oe.existsSync(o))return null;let n=He.getFactoryWithDefault(this.pnpCache,o,()=>He.dynamicRequire(o,{cachingStrategy:He.CachingStrategy.FsTime})).findPackageLocator(ue.fromPortablePath(e));return n?G.makeLocator(G.parseIdent(n.name),n.reference):null}makeInstaller(e){return new sd(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},sd=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new He.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}attachCustomData(e){this.customData=e}async installPackage(e,r,o){let a=G.stringifyIdent(e),n=e.reference,u=!!this.opts.project.tryWorkspaceByLocator(e),A=G.isVirtualLocator(e),p=e.peerDependencies.size>0&&!A,h=!p&&!u,E=!p&&e.linkType!=="SOFT",I,v;if(h||E){let te=A?G.devirtualizeLocator(e):e;I=this.customData.store.get(te.locatorHash),typeof I>"u"&&(I=await JIt(r),e.linkType==="HARD"&&this.customData.store.set(te.locatorHash,I)),I.manifest.type==="module"&&(this.isESMLoaderRequired=!0),v=this.opts.project.getDependencyMeta(te,e.version)}let x=h?AQ(e,I,v,{configuration:this.opts.project.configuration}):null,C=E?await this.unplugPackageIfNeeded(e,I,r,v,o):r.packageFs;if(K.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let R=K.resolve(C.getRealPath(),r.prefixPath),L=tj(this.opts.project.cwd,R),U=new Map,z=new Set;if(A){for(let te of e.peerDependencies.values())U.set(G.stringifyIdent(te),null),z.add(G.stringifyIdent(te));if(!u){let te=G.devirtualizeLocator(e);this.virtualTemplates.set(te.locatorHash,{location:tj(this.opts.project.cwd,zs.resolveVirtual(R)),locator:te})}}return He.getMapWithDefault(this.packageRegistry,a).set(n,{packageLocation:L,packageDependencies:U,packagePeers:z,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:R,buildRequest:x}}async attachInternalDependencies(e,r){let o=this.getPackageInformation(e);for(let[a,n]of r){let u=G.areIdentsEqual(a,n)?n.reference:[G.stringifyIdent(n),n.reference];o.packageDependencies.set(G.stringifyIdent(a),u)}}async attachExternalDependents(e,r){for(let o of r)this.getDiskInformation(o).packageDependencies.set(G.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=qh(this.opts.project);if(this.isEsmEnabled()||await oe.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await oe.removePromise(e.cjs),await oe.removePromise(e.data),await oe.removePromise(e.esmLoader),await oe.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:E,location:I}of this.virtualTemplates.values())He.getMapWithDefault(this.packageRegistry,G.stringifyIdent(E)).set(E.reference,{packageLocation:I,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let r=this.opts.project.configuration.get("pnpFallbackMode"),o=this.opts.project.workspaces.map(({anchoredLocator:E})=>({name:G.stringifyIdent(E),reference:E.reference})),a=r!=="none",n=[],u=new Map,A=He.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),p=this.packageRegistry,h=this.opts.project.configuration.get("pnpShebang");if(r==="dependencies-only")for(let E of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(E)&&n.push({name:G.stringifyIdent(E),reference:E.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:o,enableTopLevelFallback:a,fallbackExclusionList:n,fallbackPool:u,ignorePattern:A,packageRegistry:p,shebang:h}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let r=qh(this.opts.project),o=await this.locateNodeModules(e.ignorePattern);if(o.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let n of o)await oe.removePromise(n)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let n=kIe(e);await oe.changeFilePromise(r.cjs,n,{automaticNewlines:!0,mode:493}),await oe.removePromise(r.data)}else{let{dataFile:n,loaderFile:u}=QIe(e);await oe.changeFilePromise(r.cjs,u,{automaticNewlines:!0,mode:493}),await oe.changeFilePromise(r.data,n,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await oe.changeFilePromise(r.esmLoader,(0,Zq.default)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await oe.removePromise(a);else for(let n of await oe.readdirPromise(a)){let u=K.resolve(a,n);this.unpluggedPaths.has(u)||await oe.removePromise(u)}}async locateNodeModules(e){let r=[],o=e?new RegExp(e):null;for(let a of this.opts.project.workspaces){let n=K.join(a.cwd,"node_modules");if(o&&o.test(K.relative(this.opts.project.cwd,a.cwd))||!oe.existsSync(n))continue;let u=await oe.readdirPromise(n,{withFileTypes:!0}),A=u.filter(p=>!p.isDirectory()||p.name===".bin"||!p.name.startsWith("."));if(A.length===u.length)r.push(n);else for(let p of A)r.push(K.join(n,p.name))}return r}async unplugPackageIfNeeded(e,r,o,a,n){return this.shouldBeUnplugged(e,r,a)?this.unplugPackage(e,o,n):o.packageFs}shouldBeUnplugged(e,r,o){return typeof o.unplugged<"u"?o.unplugged:zIt.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(AQ(e,r,o,{configuration:this.opts.project.configuration})?.skipped===!1||r.misc.extractHint)}async unplugPackage(e,r,o){let a=qB(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new Hu(a,{baseFs:r.packageFs,pathUtils:K}):(this.unpluggedPaths.add(a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let n=K.join(a,r.prefixPath,".ready");await oe.existsPromise(n)||(this.opts.project.storedBuildState.delete(e.locatorHash),await oe.mkdirPromise(a,{recursive:!0}),await oe.copyPromise(a,It.dot,{baseFs:r.packageFs,overwrite:!1}),await oe.writeFilePromise(n,""))})),new gn(a))}getPackageInformation(e){let r=G.stringifyIdent(e),o=e.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${G.prettyIdent(this.opts.project.configuration,e)})`);let n=a.get(o);if(!n)throw new Error(`Assertion failed: The package information should have been available (for ${G.prettyLocator(this.opts.project.configuration,e)})`);return n}getDiskInformation(e){let r=He.getMapWithDefault(this.packageRegistry,"@@disk"),o=tj(this.opts.project.cwd,e);return He.getFactoryWithDefault(r,o,()=>({packageLocation:o,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function tj(t,e){let r=K.relative(t,e);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function JIt(t){let e=await Ut.tryFind(t.prefixPath,{baseFs:t.packageFs})??new Ut,r=new Set(["preinstall","install","postinstall"]);for(let o of e.scripts.keys())r.has(o)||e.scripts.delete(o);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:$q(t),hasBindingGyp:ej(t)}}}Ge();Ge();qt();var i1e=Ze($o());var cC=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=ge.Rest()}static{this.paths=[["unplug"]]}static{this.usage=it.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);if(r.get("nodeLinker")!=="pnp")throw new st("This command can only be used if the `nodeLinker` option is set to `pnp`");await o.restoreInstallState();let u=new Set(this.patterns),A=this.patterns.map(x=>{let C=G.parseDescriptor(x),R=C.range!=="unknown"?C:G.makeDescriptor(C,"*");if(!Lr.validRange(R.range))throw new st(`The range of the descriptor patterns must be a valid semver range (${G.prettyDescriptor(r,R)})`);return L=>{let U=G.stringifyIdent(L);return!i1e.default.isMatch(U,G.stringifyIdent(R))||L.version&&!Lr.satisfiesWithPrereleases(L.version,R.range)?!1:(u.delete(x),!0)}}),p=()=>{let x=[];for(let C of o.storedPackages.values())!o.tryWorkspaceByLocator(C)&&!G.isVirtualLocator(C)&&A.some(R=>R(C))&&x.push(C);return x},h=x=>{let C=new Set,R=[],L=(U,z)=>{if(C.has(U.locatorHash))return;let te=!!o.tryWorkspaceByLocator(U);if(!(z>0&&!this.recursive&&te)&&(C.add(U.locatorHash),!o.tryWorkspaceByLocator(U)&&A.some(ae=>ae(U))&&R.push(U),!(z>0&&!this.recursive)))for(let ae of U.dependencies.values()){let le=o.storedResolutions.get(ae.descriptorHash);if(!le)throw new Error("Assertion failed: The resolution should have been registered");let ce=o.storedPackages.get(le);if(!ce)throw new Error("Assertion failed: The package should have been registered");L(ce,z+1)}};for(let U of x)L(U.anchoredPackage,0);return R},E,I;if(this.all&&this.recursive?(E=p(),I="the project"):this.all?(E=h(o.workspaces),I="any workspace"):(E=h([a]),I="this workspace"),u.size>1)throw new st(`Patterns ${pe.prettyList(r,u,pe.Type.CODE)} don't match any packages referenced by ${I}`);if(u.size>0)throw new st(`Pattern ${pe.prettyList(r,u,pe.Type.CODE)} doesn't match any packages referenced by ${I}`);E=He.sortMap(E,x=>G.stringifyLocator(x));let v=await Rt.start({configuration:r,stdout:this.context.stdout,json:this.json},async x=>{for(let C of E){let R=C.version??"unknown",L=o.topLevelWorkspace.manifest.ensureDependencyMeta(G.makeDescriptor(C,R));L.unplugged=!0,x.reportInfo(0,`Will unpack ${G.prettyLocator(r,C)} to ${pe.pretty(r,qB(C,{configuration:r}),pe.Type.PATH)}`),x.reportJson({locator:G.stringifyLocator(C),version:R})}await o.topLevelWorkspace.persistManifest(),this.json||x.reportSeparator()});return v.hasErrors()?v.exitCode():await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};var qh=t=>({cjs:K.join(t.cwd,dr.pnpCjs),data:K.join(t.cwd,dr.pnpData),esmLoader:K.join(t.cwd,dr.pnpEsmLoader)}),o1e=t=>/\s/.test(t)?JSON.stringify(t):t;async function XIt(t,e,r){let o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/,n=(e.NODE_OPTIONS??"").replace(o," ").replace(a," ").trim();if(t.configuration.get("nodeLinker")!=="pnp"){e.NODE_OPTIONS=n||void 0;return}let u=qh(t),A=`--require ${o1e(ue.fromPortablePath(u.cjs))}`;oe.existsSync(u.esmLoader)&&(A=`${A} --experimental-loader ${(0,s1e.pathToFileURL)(ue.fromPortablePath(u.esmLoader)).href}`),oe.existsSync(u.cjs)&&(e.NODE_OPTIONS=n?`${A} ${n}`:A)}async function ZIt(t,e){let r=qh(t);e(r.cjs),e(r.data),e(r.esmLoader),e(t.configuration.get("pnpUnpluggedFolder"))}var $It={hooks:{populateYarnPaths:ZIt,setupScriptEnvironment:XIt},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "pnpm", or "node-modules"',type:"STRING",default:"pnp"},winLinkType:{description:"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.",type:"STRING",values:["junctions","symlinks"],default:"junctions"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"}},linkers:[Hh],commands:[cC]},e1t=$It;var h1e=Ze(A1e());qt();var cj=Ze(ve("crypto")),g1e=Ze(ve("fs")),d1e=1,Di="node_modules",fQ=".bin",m1e=".yarn-state.yml",m1t=1e3,uj=(o=>(o.CLASSIC="classic",o.HARDLINKS_LOCAL="hardlinks-local",o.HARDLINKS_GLOBAL="hardlinks-global",o))(uj||{}),GB=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:"NodeModulesLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let o=r.project.tryWorkspaceByLocator(e);if(o)return o.cwd;let a=await He.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await lj(r.project,{unrollAliases:!0}));if(a===null)throw new st("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let n=a.locatorMap.get(G.stringifyLocator(e));if(!n){let p=new st(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw p.code="LOCATOR_NOT_INSTALLED",p}let u=n.locations.sort((p,h)=>p.split(K.sep).length-h.split(K.sep).length),A=K.join(r.project.configuration.startingCwd,Di);return u.find(p=>K.contains(A,p))||n.locations[0]}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=await He.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await lj(r.project,{unrollAliases:!0}));if(o===null)return null;let{locationRoot:a,segments:n}=pQ(K.resolve(e),{skipPrefix:r.project.cwd}),u=o.locationTree.get(a);if(!u)return null;let A=u.locator;for(let p of n){if(u=u.children.get(p),!u)break;A=u.locator||A}return G.parseLocator(A)}makeInstaller(e){return new aj(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},aj=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}attachCustomData(e){this.customData=e}async installPackage(e,r){let o=K.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(e.locatorHash);if(typeof a>"u"&&(a=await y1t(e,r),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,a)),!G.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildRequest:null};let n=new Map,u=new Set;n.has(G.stringifyIdent(e))||n.set(G.stringifyIdent(e),e.reference);let A=e;if(G.isVirtualLocator(e)){A=G.devirtualizeLocator(e);for(let E of e.peerDependencies.values())n.set(G.stringifyIdent(E),null),u.add(G.stringifyIdent(E))}let p={packageLocation:`${ue.fromPortablePath(o)}/`,packageDependencies:n,packagePeers:u,linkType:e.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:p});let h=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(A.locatorHash,h),{packageLocation:o,buildRequest:null}}async attachInternalDependencies(e,r){let o=this.localStore.get(e.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[a,n]of r){let u=G.areIdentsEqual(a,n)?n.reference:[G.stringifyIdent(n),n.reference];o.pnpNode.packageDependencies.set(G.stringifyIdent(a),u)}}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new zs({baseFs:new rA({maxOpenFiles:80,readOnlyArchives:!0})}),r=await lj(this.opts.project),o=this.opts.project.configuration.get("nmMode");(r===null||o!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:o,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(v=>{let x=this.opts.project.configuration.get("nmHoistingLimits");try{x=He.validateEnum(QB,v.manifest.installConfig?.hoistingLimits??x)}catch{let R=G.prettyWorkspace(this.opts.project.configuration,v);this.opts.report.reportWarning(57,`${R}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(QB).join(", ")}, using default: "${x}"`)}return[v.relativeCwd,x]})),n=new Map(this.opts.project.workspaces.map(v=>{let x=this.opts.project.configuration.get("nmSelfReferences");return x=v.manifest.installConfig?.selfReferences??x,[v.relativeCwd,x]})),u={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(v,x)=>Array.isArray(x)?{name:x[0],reference:x[1]}:{name:v,reference:x},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(v=>{let x=v.anchoredLocator;return{name:G.stringifyIdent(x),reference:x.reference}}),getPackageInformation:v=>{let x=v.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:G.makeLocator(G.parseIdent(v.name),v.reference),C=this.localStore.get(x.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return C.pnpNode},findPackageLocator:v=>{let x=this.opts.project.tryWorkspaceByCwd(ue.toPortablePath(v));if(x!==null){let C=x.anchoredLocator;return{name:G.stringifyIdent(C),reference:C.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:v=>ue.fromPortablePath(zs.resolveVirtual(ue.toPortablePath(v)))},{tree:A,errors:p,preserveSymlinksRequired:h}=FB(u,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:n});if(!A){for(let{messageName:v,text:x}of p)this.opts.report.reportError(v,x);return}let E=Mq(A);await v1t(r,E,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async v=>{let x=G.parseLocator(v),C=this.localStore.get(x.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the slot to exist");return C.customPackageData.manifest}});let I=[];for(let[v,x]of E.entries()){if(C1e(v))continue;let C=G.parseLocator(v),R=this.localStore.get(C.locatorHash);if(typeof R>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(R.pkg))continue;let L=mA.extractBuildRequest(R.pkg,R.customPackageData,R.dependencyMeta,{configuration:this.opts.project.configuration});L&&I.push({buildLocations:x.locations,locator:C,buildRequest:L})}return h&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${pe.pretty(this.opts.project.configuration,"--preserve-symlinks",pe.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:I}}};async function y1t(t,e){let r=await Ut.tryFind(e.prefixPath,{baseFs:e.packageFs})??new Ut,o=new Set(["preinstall","install","postinstall"]);for(let a of r.scripts.keys())o.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:mA.hasBindingGyp(e)}}}async function E1t(t,e,r,o,{installChangedByUser:a}){let n="";n+=`# Warning: This file is automatically generated. Removing it is fine, but will -`,n+=`# cause your node_modules installation to become invalidated. -`,n+=` -`,n+=`__metadata: -`,n+=` version: ${d1e} -`,n+=` nmMode: ${o.value} -`;let u=Array.from(e.keys()).sort(),A=G.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let E of u){let I=e.get(E);n+=` -`,n+=`${JSON.stringify(E)}: -`,n+=` locations: -`;for(let v of I.locations){let x=K.contains(t.cwd,v);if(x===null)throw new Error(`Assertion failed: Expected the path to be within the project (${v})`);n+=` - ${JSON.stringify(x)} -`}if(I.aliases.length>0){n+=` aliases: -`;for(let v of I.aliases)n+=` - ${JSON.stringify(v)} -`}if(E===A&&r.size>0){n+=` bin: -`;for(let[v,x]of r){let C=K.contains(t.cwd,v);if(C===null)throw new Error(`Assertion failed: Expected the path to be within the project (${v})`);n+=` ${JSON.stringify(C)}: -`;for(let[R,L]of x){let U=K.relative(K.join(v,Di),L);n+=` ${JSON.stringify(R)}: ${JSON.stringify(U)} -`}}}}let p=t.cwd,h=K.join(p,Di,m1e);a&&await oe.removePromise(h),await oe.changeFilePromise(h,n,{automaticNewlines:!0})}async function lj(t,{unrollAliases:e=!1}={}){let r=t.cwd,o=K.join(r,Di,m1e),a;try{a=await oe.statPromise(o)}catch{}if(!a)return null;let n=Ki(await oe.readFilePromise(o,"utf8"));if(n.__metadata.version>d1e)return null;let u=n.__metadata.nmMode||"classic",A=new Map,p=new Map;delete n.__metadata;for(let[h,E]of Object.entries(n)){let I=E.locations.map(x=>K.join(r,x)),v=E.bin;if(v)for(let[x,C]of Object.entries(v)){let R=K.join(r,ue.toPortablePath(x)),L=He.getMapWithDefault(p,R);for(let[U,z]of Object.entries(C))L.set(U,ue.toPortablePath([R,Di,z].join(K.sep)))}if(A.set(h,{target:It.dot,linkType:"HARD",locations:I,aliases:E.aliases||[]}),e&&E.aliases)for(let x of E.aliases){let{scope:C,name:R}=G.parseLocator(h),L=G.makeLocator(G.makeIdent(C,R),x),U=G.stringifyLocator(L);A.set(U,{target:It.dot,linkType:"HARD",locations:I,aliases:[]})}}return{locatorMap:A,binSymlinks:p,locationTree:y1e(A,{skipPrefix:t.cwd}),nmMode:u,mtimeMs:a.mtimeMs}}var AC=async(t,e)=>{if(t.split(K.sep).indexOf(Di)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{if(!e.innerLoop){let o=e.allowSymlink?await oe.statPromise(t):await oe.lstatPromise(t);if(e.allowSymlink&&!o.isDirectory()||!e.allowSymlink&&o.isSymbolicLink()){await oe.unlinkPromise(t);return}}let r=await oe.readdirPromise(t,{withFileTypes:!0});for(let o of r){let a=K.join(t,o.name);o.isDirectory()?(o.name!==Di||e&&e.innerLoop)&&await AC(a,{innerLoop:!0,contentsOnly:!1}):await oe.unlinkPromise(a)}e.contentsOnly||await oe.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},f1e=4,pQ=(t,{skipPrefix:e})=>{let r=K.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let o=r.split(K.sep).filter(p=>p!==""),a=o.indexOf(Di),n=o.slice(0,a).join(K.sep),u=K.join(e,n),A=o.slice(a);return{locationRoot:u,segments:A}},y1e=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let o=()=>({children:new Map,linkType:"HARD"});for(let[a,n]of t.entries()){if(n.linkType==="SOFT"&&K.contains(e,n.target)!==null){let A=He.getFactoryWithDefault(r,n.target,o);A.locator=a,A.linkType=n.linkType}for(let u of n.locations){let{locationRoot:A,segments:p}=pQ(u,{skipPrefix:e}),h=He.getFactoryWithDefault(r,A,o);for(let E=0;E<p.length;++E){let I=p[E];if(I!=="."){let v=He.getFactoryWithDefault(h.children,I,o);h.children.set(I,v),h=v}E===p.length-1&&(h.locator=a,h.linkType=n.linkType)}}}return r},Aj=async(t,e,r)=>{if(process.platform==="win32"&&r==="junctions"){let o;try{o=await oe.lstatPromise(t)}catch{}if(!o||o.isDirectory()){await oe.symlinkPromise(t,e,"junction");return}}await oe.symlinkPromise(K.relative(K.dirname(e),t),e)};async function E1e(t,e,r){let o=K.join(t,`${cj.default.randomBytes(16).toString("hex")}.tmp`);try{await oe.writeFilePromise(o,r);try{await oe.linkPromise(o,e)}catch{}}finally{await oe.unlinkPromise(o)}}async function C1t({srcPath:t,dstPath:e,entry:r,globalHardlinksStore:o,baseFs:a,nmMode:n}){if(r.kind==="file"){if(n.value==="hardlinks-global"&&o&&r.digest){let A=K.join(o,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),p;try{let h=await oe.statPromise(A);if(h&&(!r.mtimeMs||h.mtimeMs>r.mtimeMs||h.mtimeMs<r.mtimeMs-m1t))if(await wn.checksumFile(A,{baseFs:oe,algorithm:"sha1"})!==r.digest){let I=K.join(o,`${cj.default.randomBytes(16).toString("hex")}.tmp`);await oe.renamePromise(A,I);let v=await a.readFilePromise(t);await oe.writeFilePromise(I,v);try{await oe.linkPromise(I,A),r.mtimeMs=new Date().getTime(),await oe.unlinkPromise(I)}catch{}}else r.mtimeMs||(r.mtimeMs=Math.ceil(h.mtimeMs));await oe.linkPromise(A,e),p=!0}catch{p=!1}if(!p){let h=await a.readFilePromise(t);await E1e(o,A,h),r.mtimeMs=new Date().getTime();try{await oe.linkPromise(A,e)}catch(E){E&&E.code&&E.code=="EXDEV"&&(n.value="hardlinks-local",await a.copyFilePromise(t,e))}}}else await a.copyFilePromise(t,e);let u=r.mode&511;u!==420&&await oe.chmodPromise(e,u)}}var w1t=async(t,e,{baseFs:r,globalHardlinksStore:o,nmMode:a,windowsLinkType:n,packageChecksum:u})=>{await oe.mkdirPromise(t,{recursive:!0});let A=async(E=It.dot)=>{let I=K.join(e,E),v=await r.readdirPromise(I,{withFileTypes:!0}),x=new Map;for(let C of v){let R=K.join(E,C.name),L,U=K.join(I,C.name);if(C.isFile()){if(L={kind:"file",mode:(await r.lstatPromise(U)).mode},a.value==="hardlinks-global"){let z=await wn.checksumFile(U,{baseFs:r,algorithm:"sha1"});L.digest=z}}else if(C.isDirectory())L={kind:"directory"};else if(C.isSymbolicLink())L={kind:"symlink",symlinkTo:await r.readlinkPromise(U)};else throw new Error(`Unsupported file type (file: ${U}, mode: 0o${await r.statSync(U).mode.toString(8).padStart(6,"0")})`);if(x.set(R,L),C.isDirectory()&&R!==Di){let z=await A(R);for(let[te,ae]of z)x.set(te,ae)}}return x},p;if(a.value==="hardlinks-global"&&o&&u){let E=K.join(o,u.substring(0,2),`${u.substring(2)}.json`);try{p=new Map(Object.entries(JSON.parse(await oe.readFilePromise(E,"utf8"))))}catch{p=await A()}}else p=await A();let h=!1;for(let[E,I]of p){let v=K.join(e,E),x=K.join(t,E);if(I.kind==="directory")await oe.mkdirPromise(x,{recursive:!0});else if(I.kind==="file"){let C=I.mtimeMs;await C1t({srcPath:v,dstPath:x,entry:I,nmMode:a,baseFs:r,globalHardlinksStore:o}),I.mtimeMs!==C&&(h=!0)}else I.kind==="symlink"&&await Aj(K.resolve(K.dirname(x),I.symlinkTo),x,n)}if(a.value==="hardlinks-global"&&o&&h&&u){let E=K.join(o,u.substring(0,2),`${u.substring(2)}.json`);await oe.removePromise(E),await E1e(o,E,Buffer.from(JSON.stringify(Object.fromEntries(p))))}};function I1t(t,e,r,o){let a=new Map,n=new Map,u=new Map,A=!1,p=(h,E,I,v,x)=>{let C=!0,R=K.join(h,E),L=new Set;if(E===Di||E.startsWith("@")){let z;try{z=oe.statSync(R)}catch{}C=!!z,z?z.mtimeMs>r?(A=!0,L=new Set(oe.readdirSync(R))):L=new Set(I.children.get(E).children.keys()):A=!0;let te=e.get(h);if(te){let ae=K.join(h,Di,fQ),le;try{le=oe.statSync(ae)}catch{}if(!le)A=!0;else if(le.mtimeMs>r){A=!0;let ce=new Set(oe.readdirSync(ae)),Ce=new Map;n.set(h,Ce);for(let[de,Be]of te)ce.has(de)&&Ce.set(de,Be)}else n.set(h,te)}}else C=x.has(E);let U=I.children.get(E);if(C){let{linkType:z,locator:te}=U,ae={children:new Map,linkType:z,locator:te};if(v.children.set(E,ae),te){let le=He.getSetWithDefault(u,te);le.add(R),u.set(te,le)}for(let le of U.children.keys())p(R,le,U,ae,L)}else U.locator&&o.storedBuildState.delete(G.parseLocator(U.locator).locatorHash)};for(let[h,E]of t){let{linkType:I,locator:v}=E,x={children:new Map,linkType:I,locator:v};if(a.set(h,x),v){let C=He.getSetWithDefault(u,E.locator);C.add(h),u.set(E.locator,C)}E.children.has(Di)&&p(h,Di,E,x,new Set)}return{locationTree:a,binSymlinks:n,locatorLocations:u,installChangedByUser:A}}function C1e(t){let e=G.parseDescriptor(t);return G.isVirtualDescriptor(e)&&(e=G.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function B1t(t,e,r,{loadManifest:o}){let a=new Map;for(let[A,{locations:p}]of t){let h=C1e(A)?null:await o(A,p[0]),E=new Map;if(h)for(let[I,v]of h.bin){let x=K.join(p[0],v);v!==""&&oe.existsSync(x)&&E.set(I,v)}a.set(A,E)}let n=new Map,u=(A,p,h)=>{let E=new Map,I=K.contains(r,A);if(h.locator&&I!==null){let v=a.get(h.locator);for(let[x,C]of v){let R=K.join(A,ue.toPortablePath(C));E.set(x,R)}for(let[x,C]of h.children){let R=K.join(A,x),L=u(R,R,C);L.size>0&&n.set(A,new Map([...n.get(A)||new Map,...L]))}}else for(let[v,x]of h.children){let C=u(K.join(A,v),p,x);for(let[R,L]of C)E.set(R,L)}return E};for(let[A,p]of e){let h=u(A,A,p);h.size>0&&n.set(A,new Map([...n.get(A)||new Map,...h]))}return n}var p1e=(t,e)=>{if(!t||!e)return t===e;let r=G.parseLocator(t);G.isVirtualLocator(r)&&(r=G.devirtualizeLocator(r));let o=G.parseLocator(e);return G.isVirtualLocator(o)&&(o=G.devirtualizeLocator(o)),G.areLocatorsEqual(r,o)};function fj(t){return K.join(t.get("globalFolder"),"store")}async function v1t(t,e,{baseFs:r,project:o,report:a,loadManifest:n,realLocatorChecksums:u}){let A=K.join(o.cwd,Di),{locationTree:p,binSymlinks:h,locatorLocations:E,installChangedByUser:I}=I1t(t.locationTree,t.binSymlinks,t.mtimeMs,o),v=y1e(e,{skipPrefix:o.cwd}),x=[],C=async({srcDir:Be,dstDir:Ee,linkType:g,globalHardlinksStore:me,nmMode:we,windowsLinkType:Ae,packageChecksum:ne})=>{let Z=(async()=>{try{g==="SOFT"?(await oe.mkdirPromise(K.dirname(Ee),{recursive:!0}),await Aj(K.resolve(Be),Ee,Ae)):await w1t(Ee,Be,{baseFs:r,globalHardlinksStore:me,nmMode:we,windowsLinkType:Ae,packageChecksum:ne})}catch(xe){throw xe.message=`While persisting ${Be} -> ${Ee} ${xe.message}`,xe}finally{ae.tick()}})().then(()=>x.splice(x.indexOf(Z),1));x.push(Z),x.length>f1e&&await Promise.race(x)},R=async(Be,Ee,g)=>{let me=(async()=>{let we=async(Ae,ne,Z)=>{try{Z.innerLoop||await oe.mkdirPromise(ne,{recursive:!0});let xe=await oe.readdirPromise(Ae,{withFileTypes:!0});for(let Ne of xe){if(!Z.innerLoop&&Ne.name===fQ)continue;let ht=K.join(Ae,Ne.name),H=K.join(ne,Ne.name);Ne.isDirectory()?(Ne.name!==Di||Z&&Z.innerLoop)&&(await oe.mkdirPromise(H,{recursive:!0}),await we(ht,H,{...Z,innerLoop:!0})):Ce.value==="hardlinks-local"||Ce.value==="hardlinks-global"?await oe.linkPromise(ht,H):await oe.copyFilePromise(ht,H,g1e.default.constants.COPYFILE_FICLONE)}}catch(xe){throw Z.innerLoop||(xe.message=`While cloning ${Ae} -> ${ne} ${xe.message}`),xe}finally{Z.innerLoop||ae.tick()}};await we(Be,Ee,g)})().then(()=>x.splice(x.indexOf(me),1));x.push(me),x.length>f1e&&await Promise.race(x)},L=async(Be,Ee,g)=>{if(g)for(let[me,we]of Ee.children){let Ae=g.children.get(me);await L(K.join(Be,me),we,Ae)}else{Ee.children.has(Di)&&await AC(K.join(Be,Di),{contentsOnly:!1});let me=K.basename(Be)===Di&&v.has(K.join(K.dirname(Be),K.sep));await AC(Be,{contentsOnly:Be===A,allowSymlink:me})}};for(let[Be,Ee]of p){let g=v.get(Be);for(let[me,we]of Ee.children){if(me===".")continue;let Ae=g&&g.children.get(me),ne=K.join(Be,me);await L(ne,we,Ae)}}let U=async(Be,Ee,g)=>{if(g){p1e(Ee.locator,g.locator)||await AC(Be,{contentsOnly:Ee.linkType==="HARD"});for(let[me,we]of Ee.children){let Ae=g.children.get(me);await U(K.join(Be,me),we,Ae)}}else{Ee.children.has(Di)&&await AC(K.join(Be,Di),{contentsOnly:!0});let me=K.basename(Be)===Di&&v.has(K.join(K.dirname(Be),K.sep));await AC(Be,{contentsOnly:Ee.linkType==="HARD",allowSymlink:me})}};for(let[Be,Ee]of v){let g=p.get(Be);for(let[me,we]of Ee.children){if(me===".")continue;let Ae=g&&g.children.get(me);await U(K.join(Be,me),we,Ae)}}let z=new Map,te=[];for(let[Be,Ee]of E)for(let g of Ee){let{locationRoot:me,segments:we}=pQ(g,{skipPrefix:o.cwd}),Ae=v.get(me),ne=me;if(Ae){for(let Z of we)if(ne=K.join(ne,Z),Ae=Ae.children.get(Z),!Ae)break;if(Ae){let Z=p1e(Ae.locator,Be),xe=e.get(Ae.locator),Ne=xe.target,ht=ne,H=xe.linkType;if(Z)z.has(Ne)||z.set(Ne,ht);else if(Ne!==ht){let rt=G.parseLocator(Ae.locator);G.isVirtualLocator(rt)&&(rt=G.devirtualizeLocator(rt)),te.push({srcDir:Ne,dstDir:ht,linkType:H,realLocatorHash:rt.locatorHash})}}}}for(let[Be,{locations:Ee}]of e.entries())for(let g of Ee){let{locationRoot:me,segments:we}=pQ(g,{skipPrefix:o.cwd}),Ae=p.get(me),ne=v.get(me),Z=me,xe=e.get(Be),Ne=G.parseLocator(Be);G.isVirtualLocator(Ne)&&(Ne=G.devirtualizeLocator(Ne));let ht=Ne.locatorHash,H=xe.target,rt=g;if(H===rt)continue;let Te=xe.linkType;for(let Fe of we)ne=ne.children.get(Fe);if(!Ae)te.push({srcDir:H,dstDir:rt,linkType:Te,realLocatorHash:ht});else for(let Fe of we)if(Z=K.join(Z,Fe),Ae=Ae.children.get(Fe),!Ae){te.push({srcDir:H,dstDir:rt,linkType:Te,realLocatorHash:ht});break}}let ae=Zs.progressViaCounter(te.length),le=a.reportProgress(ae),ce=o.configuration.get("nmMode"),Ce={value:ce},de=o.configuration.get("winLinkType");try{let Be=Ce.value==="hardlinks-global"?`${fj(o.configuration)}/v1`:null;if(Be&&!await oe.existsPromise(Be)){await oe.mkdirpPromise(Be);for(let g=0;g<256;g++)await oe.mkdirPromise(K.join(Be,g.toString(16).padStart(2,"0")))}for(let g of te)(g.linkType==="SOFT"||!z.has(g.srcDir))&&(z.set(g.srcDir,g.dstDir),await C({...g,globalHardlinksStore:Be,nmMode:Ce,windowsLinkType:de,packageChecksum:u.get(g.realLocatorHash)||null}));await Promise.all(x),x.length=0;for(let g of te){let me=z.get(g.srcDir);g.linkType!=="SOFT"&&g.dstDir!==me&&await R(me,g.dstDir,{nmMode:Ce})}await Promise.all(x),await oe.mkdirPromise(A,{recursive:!0});let Ee=await B1t(e,v,o.cwd,{loadManifest:n});await D1t(h,Ee,o.cwd,de),await E1t(o,e,Ee,Ce,{installChangedByUser:I}),ce=="hardlinks-global"&&Ce.value=="hardlinks-local"&&a.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{le.stop()}}async function D1t(t,e,r,o){for(let a of t.keys()){if(K.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!e.has(a)){let n=K.join(a,Di,fQ);await oe.removePromise(n)}}for(let[a,n]of e){if(K.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let u=K.join(a,Di,fQ),A=t.get(a)||new Map;await oe.mkdirPromise(u,{recursive:!0});for(let p of A.keys())n.has(p)||(await oe.removePromise(K.join(u,p)),process.platform==="win32"&&await oe.removePromise(K.join(u,`${p}.cmd`)));for(let[p,h]of n){let E=A.get(p),I=K.join(u,p);E!==h&&(process.platform==="win32"?await(0,h1e.default)(ue.fromPortablePath(h),ue.fromPortablePath(I),{createPwshFile:!1}):(await oe.removePromise(I),await Aj(h,I,o),K.contains(r,await oe.realpathPromise(h))!==null&&await oe.chmodPromise(h,493)))}}}Ge();Pt();nA();var YB=class extends Hh{constructor(){super(...arguments);this.mode="loose"}makeInstaller(r){return new pj(r)}},pj=class extends sd{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(r){let o=new zs({baseFs:new rA({maxOpenFiles:80,readOnlyArchives:!0})}),a=e1e(r,this.opts.project.cwd,o),{tree:n,errors:u}=FB(a,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:I,text:v}of u)this.opts.report.reportError(I,v);return}let A=new Map;r.fallbackPool=A;let p=(I,v)=>{let x=G.parseLocator(v.locator),C=G.stringifyIdent(x);C===I?A.set(I,x.reference):A.set(I,[C,x.reference])},h=K.join(this.opts.project.cwd,dr.nodeModules),E=n.get(h);if(!(typeof E>"u")){if("target"in E)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let I of E.dirList){let v=K.join(h,I),x=n.get(v);if(typeof x>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in x)p(I,x);else for(let C of x.dirList){let R=K.join(v,C),L=n.get(R);if(typeof L>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in L)p(`${I}/${C}`,L);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var P1t={hooks:{cleanGlobalArtifacts:async t=>{let e=fj(t);await oe.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevents packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:"Defines in which measure Yarn must use hardlinks and symlinks when generated `node_modules` directories.",type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"Defines whether the linker should generate self-referencing symlinks for workspaces.",type:"BOOLEAN",default:!0}},linkers:[GB,YB]},S1t=P1t;var f5={};Vt(f5,{NpmHttpFetcher:()=>VB,NpmRemapResolver:()=>zB,NpmSemverFetcher:()=>tp,NpmSemverResolver:()=>JB,NpmTagResolver:()=>XB,default:()=>qvt,npmConfigUtils:()=>Zn,npmHttpUtils:()=>Zr,npmPublishUtils:()=>PC});Ge();var b1e=Ze(Jn());var Wn="npm:";var Zr={};Vt(Zr,{AuthType:()=>D1e,customPackageError:()=>od,del:()=>U1t,get:()=>ad,getIdentUrl:()=>hQ,getPackageMetadata:()=>hC,handleInvalidAuthenticationError:()=>jh,post:()=>M1t,put:()=>O1t});Ge();Ge();Pt();var mj=Ze(J1()),B1e=Ze(y_()),v1e=Ze(Jn());var Zn={};Vt(Zn,{RegistryType:()=>w1e,getAuditRegistry:()=>b1t,getAuthConfiguration:()=>dj,getDefaultRegistry:()=>WB,getPublishRegistry:()=>x1t,getRegistryConfiguration:()=>I1e,getScopeConfiguration:()=>gj,getScopeRegistry:()=>fC,normalizeRegistry:()=>ac});var w1e=(o=>(o.AUDIT_REGISTRY="npmAuditRegistry",o.FETCH_REGISTRY="npmRegistryServer",o.PUBLISH_REGISTRY="npmPublishRegistry",o))(w1e||{});function ac(t){return t.replace(/\/$/,"")}function b1t({configuration:t}){return WB({configuration:t,type:"npmAuditRegistry"})}function x1t(t,{configuration:e}){return t.publishConfig?.registry?ac(t.publishConfig.registry):t.name?fC(t.name.scope,{configuration:e,type:"npmPublishRegistry"}):WB({configuration:e,type:"npmPublishRegistry"})}function fC(t,{configuration:e,type:r="npmRegistryServer"}){let o=gj(t,{configuration:e});if(o===null)return WB({configuration:e,type:r});let a=o.get(r);return a===null?WB({configuration:e,type:r}):ac(a)}function WB({configuration:t,type:e="npmRegistryServer"}){let r=t.get(e);return ac(r!==null?r:t.get("npmRegistryServer"))}function I1e(t,{configuration:e}){let r=e.get("npmRegistries"),o=ac(t),a=r.get(o);if(typeof a<"u")return a;let n=r.get(o.replace(/^[a-z]+:/,""));return typeof n<"u"?n:null}function gj(t,{configuration:e}){if(t===null)return null;let o=e.get("npmScopes").get(t);return o||null}function dj(t,{configuration:e,ident:r}){let o=r&&gj(r.scope,{configuration:e});return o?.get("npmAuthIdent")||o?.get("npmAuthToken")?o:I1e(t,{configuration:e})||e}var D1e=(a=>(a[a.NO_AUTH=0]="NO_AUTH",a[a.BEST_EFFORT=1]="BEST_EFFORT",a[a.CONFIGURATION=2]="CONFIGURATION",a[a.ALWAYS_AUTH=3]="ALWAYS_AUTH",a))(D1e||{});async function jh(t,{attemptedAs:e,registry:r,headers:o,configuration:a}){if(dQ(t))throw new Jt(41,"Invalid OTP token");if(t.originalError?.name==="HTTPError"&&t.originalError?.response.statusCode===401)throw new Jt(41,`Invalid authentication (${typeof e!="string"?`as ${await H1t(r,o,{configuration:a})}`:`attempted as ${e}`})`)}function od(t,e){let r=t.response?.statusCode;return r?r===404?"Package not found":r>=500&&r<600?`The registry appears to be down (using a ${pe.applyHyperlink(e,"local cache","https://yarnpkg.com/advanced/lexicon#local-cache")} might have protected you against such outages)`:null:null}function hQ(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}var P1e=new Map,k1t=new Map;async function Q1t(t){return await He.getFactoryWithDefault(P1e,t,async()=>{let e=null;try{e=await oe.readJsonPromise(t)}catch{}return e})}async function F1t(t,e,{configuration:r,cached:o,registry:a,headers:n,version:u,...A}){return await He.getFactoryWithDefault(k1t,t,async()=>await ad(hQ(e),{...A,customErrorMessage:od,configuration:r,registry:a,ident:e,headers:{...n,"If-None-Match":o?.etag,"If-Modified-Since":o?.lastModified},wrapNetworkRequest:async p=>async()=>{let h=await p();if(h.statusCode===304){if(o===null)throw new Error("Assertion failed: cachedMetadata should not be null");return{...h,body:o.metadata}}let E=R1t(JSON.parse(h.body.toString())),I={metadata:E,etag:h.headers.etag,lastModified:h.headers["last-modified"]};return P1e.set(t,Promise.resolve(I)),Promise.resolve().then(async()=>{let v=`${t}-${process.pid}.tmp`;await oe.mkdirPromise(K.dirname(v),{recursive:!0}),await oe.writeJsonPromise(v,I,{compact:!0}),await oe.renamePromise(v,t)}).catch(()=>{}),{...h,body:E}}}))}async function hC(t,{cache:e,project:r,registry:o,headers:a,version:n,...u}){let{configuration:A}=r;o=KB(A,{ident:t,registry:o});let p=N1t(A,o),h=K.join(p,`${G.slugifyIdent(t)}.json`),E=null;if(!r.lockfileNeedsRefresh&&(E=await Q1t(h),E)){if(typeof n<"u"&&typeof E.metadata.versions[n]<"u")return E.metadata;if(A.get("enableOfflineMode")){let I=structuredClone(E.metadata),v=new Set;if(e){for(let C of Object.keys(I.versions)){let R=G.makeLocator(t,`npm:${C}`),L=e.getLocatorMirrorPath(R);(!L||!oe.existsSync(L))&&(delete I.versions[C],v.add(C))}let x=I["dist-tags"].latest;if(v.has(x)){let C=Object.keys(E.metadata.versions).sort(v1e.default.compare),R=C.indexOf(x);for(;v.has(C[R])&&R>=0;)R-=1;R>=0?I["dist-tags"].latest=C[R]:delete I["dist-tags"].latest}}return I}}return await F1t(h,t,{...u,configuration:A,cached:E,registry:o,headers:a,version:n})}var S1e=["name","dist.tarball","bin","scripts","os","cpu","libc","dependencies","dependenciesMeta","optionalDependencies","peerDependencies","peerDependenciesMeta","deprecated"];function R1t(t){return{"dist-tags":t["dist-tags"],versions:Object.fromEntries(Object.entries(t.versions).map(([e,r])=>[e,(0,B1e.default)(r,S1e)]))}}var T1t=wn.makeHash(...S1e).slice(0,6);function N1t(t,e){let r=L1t(t),o=new URL(e);return K.join(r,T1t,o.hostname)}function L1t(t){return K.join(t.get("globalFolder"),"metadata/npm")}async function ad(t,{configuration:e,headers:r,ident:o,authType:a,registry:n,...u}){n=KB(e,{ident:o,registry:n}),o&&o.scope&&typeof a>"u"&&(a=1);let A=await gQ(n,{authType:a,configuration:e,ident:o});A&&(r={...r,authorization:A});try{return await sn.get(t.charAt(0)==="/"?`${n}${t}`:t,{configuration:e,headers:r,...u})}catch(p){throw await jh(p,{registry:n,configuration:e,headers:r}),p}}async function M1t(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){A=KB(o,{ident:n,registry:A});let E=await gQ(A,{authType:u,configuration:o,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...pC(p)});try{return await sn.post(A+t,e,{configuration:o,headers:a,...h})}catch(I){if(!dQ(I)||p)throw await jh(I,{attemptedAs:r,registry:A,configuration:o,headers:a}),I;p=await yj(I,{configuration:o});let v={...a,...pC(p)};try{return await sn.post(`${A}${t}`,e,{configuration:o,headers:v,...h})}catch(x){throw await jh(x,{attemptedAs:r,registry:A,configuration:o,headers:a}),x}}}async function O1t(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){A=KB(o,{ident:n,registry:A});let E=await gQ(A,{authType:u,configuration:o,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...pC(p)});try{return await sn.put(A+t,e,{configuration:o,headers:a,...h})}catch(I){if(!dQ(I))throw await jh(I,{attemptedAs:r,registry:A,configuration:o,headers:a}),I;p=await yj(I,{configuration:o});let v={...a,...pC(p)};try{return await sn.put(`${A}${t}`,e,{configuration:o,headers:v,...h})}catch(x){throw await jh(x,{attemptedAs:r,registry:A,configuration:o,headers:a}),x}}}async function U1t(t,{attemptedAs:e,configuration:r,headers:o,ident:a,authType:n=3,registry:u,otp:A,...p}){u=KB(r,{ident:a,registry:u});let h=await gQ(u,{authType:n,configuration:r,ident:a});h&&(o={...o,authorization:h}),A&&(o={...o,...pC(A)});try{return await sn.del(u+t,{configuration:r,headers:o,...p})}catch(E){if(!dQ(E)||A)throw await jh(E,{attemptedAs:e,registry:u,configuration:r,headers:o}),E;A=await yj(E,{configuration:r});let I={...o,...pC(A)};try{return await sn.del(`${u}${t}`,{configuration:r,headers:I,...p})}catch(v){throw await jh(v,{attemptedAs:e,registry:u,configuration:r,headers:o}),v}}}function KB(t,{ident:e,registry:r}){if(typeof r>"u"&&e)return fC(e.scope,{configuration:t});if(typeof r!="string")throw new Error("Assertion failed: The registry should be a string");return ac(r)}async function gQ(t,{authType:e=2,configuration:r,ident:o}){let a=dj(t,{configuration:r,ident:o}),n=_1t(a,e);if(!n)return null;let u=await r.reduceHook(A=>A.getNpmAuthenticationHeader,void 0,t,{configuration:r,ident:o});if(u)return u;if(a.get("npmAuthToken"))return`Bearer ${a.get("npmAuthToken")}`;if(a.get("npmAuthIdent")){let A=a.get("npmAuthIdent");return A.includes(":")?`Basic ${Buffer.from(A).toString("base64")}`:`Basic ${A}`}if(n&&e!==1)throw new Jt(33,"No authentication configured for request");return null}function _1t(t,e){switch(e){case 2:return t.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function H1t(t,e,{configuration:r}){if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(await sn.get(new URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username??"an unknown user"}catch{return"an unknown user"}}async function yj(t,{configuration:e}){let r=t.originalError?.response.headers["npm-notice"];if(r&&(await Rt.start({configuration:e,stdout:process.stdout,includeFooter:!1},async a=>{if(a.reportInfo(0,r.replace(/(https?:\/\/\S+)/g,pe.pretty(e,"$1",pe.Type.URL))),!process.env.YARN_IS_TEST_ENV){let n=r.match(/open (https?:\/\/\S+)/i);if(n&&Xi.openUrl){let{openNow:u}=await(0,mj.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});u&&(await Xi.openUrl(n[1])||(a.reportSeparator(),a.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` -`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:o}=await(0,mj.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` -`),o}function dQ(t){if(t.originalError?.name!=="HTTPError")return!1;try{return(t.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function pC(t){return{"npm-otp":t}}var VB=class{supports(e,r){if(!e.reference.startsWith(Wn))return!1;let{selector:o,params:a}=G.parseRange(e.reference);return!(!b1e.default.valid(o)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let{params:o}=G.parseRange(e.reference);if(o===null||typeof o.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await ad(o.__archiveUrl,{customErrorMessage:od,configuration:r.project.configuration,ident:e});return await $i.convertToZip(a,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ge();var zB=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Wn)||!G.tryParseDescriptor(e.range.slice(Wn.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){let o=r.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Wn.length),!0));return r.resolver.getResolutionDependencies(o,r)}async getCandidates(e,r,o){let a=o.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Wn.length),!0));return await o.resolver.getCandidates(a,r,o)}async getSatisfying(e,r,o,a){let n=a.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Wn.length),!0));return a.resolver.getSatisfying(n,r,o,a)}resolve(e,r){throw new Error("Unreachable")}};Ge();Ge();var x1e=Ze(Jn());var tp=class t{supports(e,r){if(!e.reference.startsWith(Wn))return!1;let o=new URL(e.reference);return!(!x1e.default.valid(o.pathname)||o.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o;try{o=await ad(t.getLocatorUrl(e),{customErrorMessage:od,configuration:r.project.configuration,ident:e})}catch{o=await ad(t.getLocatorUrl(e).replace(/%2f/g,"/"),{customErrorMessage:od,configuration:r.project.configuration,ident:e})}return await $i.convertToZip(o,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:o}){let a=fC(e.scope,{configuration:o}),n=t.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+n||r===a+n.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=Lr.clean(e.reference.slice(Wn.length));if(r===null)throw new Jt(10,"The npm semver resolver got selected, but the version isn't semver");return`${hQ(e)}/-/${e.name}-${r}.tgz`}};Ge();Ge();Ge();var Ej=Ze(Jn());var mQ=G.makeIdent(null,"node-gyp"),q1t=/\b(node-gyp|prebuild-install)\b/,JB=class{supportsDescriptor(e,r){return e.range.startsWith(Wn)?!!Lr.validRange(e.range.slice(Wn.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(Wn))return!1;let{selector:o}=G.parseRange(e.reference);return!!Ej.default.valid(o)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=Lr.validRange(e.range.slice(Wn.length));if(a===null)throw new Error(`Expected a valid range, got ${e.range.slice(Wn.length)}`);let n=await hC(e,{cache:o.fetchOptions?.cache,project:o.project,version:Ej.default.valid(a.raw)?a.raw:void 0}),u=He.mapAndFilter(Object.keys(n.versions),h=>{try{let E=new Lr.SemVer(h);if(a.test(E))return E}catch{}return He.mapAndFilter.skip}),A=u.filter(h=>!n.versions[h.raw].deprecated),p=A.length>0?A:u;return p.sort((h,E)=>-h.compare(E)),p.map(h=>{let E=G.makeLocator(e,`${Wn}${h.raw}`),I=n.versions[h.raw].dist.tarball;return tp.isConventionalTarballUrl(E,I,{configuration:o.project.configuration})?E:G.bindLocator(E,{__archiveUrl:I})})}async getSatisfying(e,r,o,a){let n=Lr.validRange(e.range.slice(Wn.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(Wn.length)}`);return{locators:He.mapAndFilter(o,p=>{if(p.identHash!==e.identHash)return He.mapAndFilter.skip;let h=G.tryParseRange(p.reference,{requireProtocol:Wn});if(!h)return He.mapAndFilter.skip;let E=new Lr.SemVer(h.selector);return n.test(E)?{locator:p,version:E}:He.mapAndFilter.skip}).sort((p,h)=>-p.version.compare(h.version)).map(({locator:p})=>p),sorted:!0}}async resolve(e,r){let{selector:o}=G.parseRange(e.reference),a=Lr.clean(o);if(a===null)throw new Jt(10,"The npm semver resolver got selected, but the version isn't semver");let n=await hC(e,{cache:r.fetchOptions?.cache,project:r.project,version:a});if(!Object.hasOwn(n,"versions"))throw new Jt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.hasOwn(n.versions,a))throw new Jt(16,`Registry failed to return reference "${a}"`);let u=new Ut;if(u.load(n.versions[a]),!u.dependencies.has(mQ.identHash)&&!u.peerDependencies.has(mQ.identHash)){for(let A of u.scripts.values())if(A.match(q1t)){u.dependencies.set(mQ.identHash,G.makeDescriptor(mQ,"latest"));break}}return{...e,version:a,languageName:"node",linkType:"HARD",conditions:u.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(u.dependencies),peerDependencies:u.peerDependencies,dependenciesMeta:u.dependenciesMeta,peerDependenciesMeta:u.peerDependenciesMeta,bin:u.bin}}};Ge();Ge();var k1e=Ze(Jn());var XB=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Wn)||!ly.test(e.range.slice(Wn.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(Wn.length),n=await hC(e,{cache:o.fetchOptions?.cache,project:o.project});if(!Object.hasOwn(n,"dist-tags"))throw new Jt(15,'Registry returned invalid data - missing "dist-tags" field');let u=n["dist-tags"];if(!Object.hasOwn(u,a))throw new Jt(16,`Registry failed to return tag "${a}"`);let A=u[a],p=G.makeLocator(e,`${Wn}${A}`),h=n.versions[A].dist.tarball;return tp.isConventionalTarballUrl(p,h,{configuration:o.project.configuration})?[p]:[G.bindLocator(p,{__archiveUrl:h})]}async getSatisfying(e,r,o,a){let n=[];for(let u of o){if(u.identHash!==e.identHash)continue;let A=G.tryParseRange(u.reference,{requireProtocol:Wn});if(!(!A||!k1e.default.valid(A.selector))){if(A.params?.__archiveUrl){let p=G.makeRange({protocol:Wn,selector:A.selector,source:null,params:null}),[h]=await a.resolver.getCandidates(G.makeDescriptor(e,p),r,a);if(u.reference!==h.reference)continue}n.push(u)}}return{locators:n,sorted:!1}}async resolve(e,r){throw new Error("Unreachable")}};var PC={};Vt(PC,{getGitHead:()=>_vt,getPublishAccess:()=>EBe,getReadmeContent:()=>CBe,makePublishBody:()=>Uvt});Ge();Ge();Pt();var a5={};Vt(a5,{PackCommand:()=>DC,default:()=>wvt,packUtils:()=>CA});Ge();Ge();Ge();Pt();qt();var CA={};Vt(CA,{genPackList:()=>_Q,genPackStream:()=>o5,genPackageManifest:()=>aBe,hasPackScripts:()=>i5,prepareForPack:()=>s5});Ge();Pt();var n5=Ze($o()),sBe=Ze(tBe()),oBe=ve("zlib"),uvt=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],Avt=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function i5(t){return!!(An.hasWorkspaceScript(t,"prepack")||An.hasWorkspaceScript(t,"postpack"))}async function s5(t,{report:e},r){await An.maybeExecuteWorkspaceLifecycleScript(t,"prepack",{report:e});try{let o=K.join(t.cwd,Ut.fileName);await oe.existsPromise(o)&&await t.manifest.loadFile(o,{baseFs:oe}),await r()}finally{await An.maybeExecuteWorkspaceLifecycleScript(t,"postpack",{report:e})}}async function o5(t,e){typeof e>"u"&&(e=await _Q(t));let r=new Set;for(let n of t.manifest.publishConfig?.executableFiles??new Set)r.add(K.normalize(n));for(let n of t.manifest.bin.values())r.add(K.normalize(n));let o=sBe.default.pack();process.nextTick(async()=>{for(let n of e){let u=K.normalize(n),A=K.resolve(t.cwd,u),p=K.join("package",u),h=await oe.lstatPromise(A),E={name:p,mtime:new Date(Bi.SAFE_TIME*1e3)},I=r.has(u)?493:420,v,x,C=new Promise((L,U)=>{v=L,x=U}),R=L=>{L?x(L):v()};if(h.isFile()){let L;u==="package.json"?L=Buffer.from(JSON.stringify(await aBe(t),null,2)):L=await oe.readFilePromise(A),o.entry({...E,mode:I,type:"file"},L,R)}else h.isSymbolicLink()?o.entry({...E,mode:I,type:"symlink",linkname:await oe.readlinkPromise(A)},R):R(new Error(`Unsupported file type ${h.mode} for ${ue.fromPortablePath(u)}`));await C}o.finalize()});let a=(0,oBe.createGzip)();return o.pipe(a),a}async function aBe(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function _Q(t){let e=t.project,r=e.configuration,o={accept:[],reject:[]};for(let I of Avt)o.reject.push(I);for(let I of uvt)o.accept.push(I);o.reject.push(r.get("rcFilename"));let a=I=>{if(I===null||!I.startsWith(`${t.cwd}/`))return;let v=K.relative(t.cwd,I),x=K.resolve(It.root,v);o.reject.push(x)};a(K.resolve(e.cwd,dr.lockfile)),a(r.get("cacheFolder")),a(r.get("globalFolder")),a(r.get("installStatePath")),a(r.get("virtualFolder")),a(r.get("yarnPath")),await r.triggerHook(I=>I.populateYarnPaths,e,I=>{a(I)});for(let I of e.workspaces){let v=K.relative(t.cwd,I.cwd);v!==""&&!v.match(/^(\.\.)?\//)&&o.reject.push(`/${v}`)}let n={accept:[],reject:[]},u=t.manifest.publishConfig?.main??t.manifest.main,A=t.manifest.publishConfig?.module??t.manifest.module,p=t.manifest.publishConfig?.browser??t.manifest.browser,h=t.manifest.publishConfig?.bin??t.manifest.bin;u!=null&&n.accept.push(K.resolve(It.root,u)),A!=null&&n.accept.push(K.resolve(It.root,A)),typeof p=="string"&&n.accept.push(K.resolve(It.root,p));for(let I of h.values())n.accept.push(K.resolve(It.root,I));if(p instanceof Map)for(let[I,v]of p.entries())n.accept.push(K.resolve(It.root,I)),typeof v=="string"&&n.accept.push(K.resolve(It.root,v));let E=t.manifest.files!==null;if(E){n.reject.push("/*");for(let I of t.manifest.files)lBe(n.accept,I,{cwd:It.root})}return await fvt(t.cwd,{hasExplicitFileList:E,globalList:o,ignoreList:n})}async function fvt(t,{hasExplicitFileList:e,globalList:r,ignoreList:o}){let a=[],n=new qu(t),u=[[It.root,[o]]];for(;u.length>0;){let[A,p]=u.pop(),h=await n.lstatPromise(A);if(!nBe(A,{globalList:r,ignoreLists:h.isDirectory()?null:p}))if(h.isDirectory()){let E=await n.readdirPromise(A),I=!1,v=!1;if(!e||A!==It.root)for(let R of E)I=I||R===".gitignore",v=v||R===".npmignore";let x=v?await rBe(n,A,".npmignore"):I?await rBe(n,A,".gitignore"):null,C=x!==null?[x].concat(p):p;nBe(A,{globalList:r,ignoreLists:p})&&(C=[...p,{accept:[],reject:["**/*"]}]);for(let R of E)u.push([K.resolve(A,R),C])}else(h.isFile()||h.isSymbolicLink())&&a.push(K.relative(It.root,A))}return a.sort()}async function rBe(t,e,r){let o={accept:[],reject:[]},a=await t.readFilePromise(K.join(e,r),"utf8");for(let n of a.split(/\n/g))lBe(o.reject,n,{cwd:e});return o}function pvt(t,{cwd:e}){let r=t[0]==="!";return r&&(t=t.slice(1)),t.match(/\.{0,1}\//)&&(t=K.resolve(e,t)),r&&(t=`!${t}`),t}function lBe(t,e,{cwd:r}){let o=e.trim();o===""||o[0]==="#"||t.push(pvt(o,{cwd:r}))}function nBe(t,{globalList:e,ignoreLists:r}){let o=UQ(t,e.accept);if(o!==0)return o===2;let a=UQ(t,e.reject);if(a!==0)return a===1;if(r!==null)for(let n of r){let u=UQ(t,n.accept);if(u!==0)return u===2;let A=UQ(t,n.reject);if(A!==0)return A===1}return!1}function UQ(t,e){let r=e,o=[];for(let a=0;a<e.length;++a)e[a][0]!=="!"?r!==e&&r.push(e[a]):(r===e&&(r=e.slice(0,a)),o.push(e[a].slice(1)));return iBe(t,o)?2:iBe(t,r)?1:0}function iBe(t,e){let r=e,o=[];for(let a=0;a<e.length;++a)e[a].includes("/")?r!==e&&r.push(e[a]):(r===e&&(r=e.slice(0,a)),o.push(e[a]));return!!(n5.default.isMatch(t,r,{dot:!0,nocase:!0})||n5.default.isMatch(t,o,{dot:!0,basename:!0,nocase:!0}))}var DC=class extends ut{constructor(){super(...arguments);this.installIfNeeded=ge.Boolean("--install-if-needed",!1,{description:"Run a preliminary `yarn install` if the package contains build scripts"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"Print the file paths without actually generating the package archive"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.out=ge.String("-o,--out",{description:"Create the archive at the specified path"});this.filename=ge.String("--filename",{hidden:!0})}static{this.paths=[["pack"]]}static{this.usage=it.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);await i5(a)&&(this.installIfNeeded?await o.install({cache:await Gr.find(r),report:new ki}):await o.restoreInstallState());let n=this.out??this.filename,u=typeof n<"u"?K.resolve(this.context.cwd,hvt(n,{workspace:a})):K.resolve(a.cwd,"package.tgz");return(await Rt.start({configuration:r,stdout:this.context.stdout,json:this.json},async p=>{await s5(a,{report:p},async()=>{p.reportJson({base:ue.fromPortablePath(a.cwd)});let h=await _Q(a);for(let E of h)p.reportInfo(null,ue.fromPortablePath(E)),p.reportJson({location:ue.fromPortablePath(E)});if(!this.dryRun){let E=await o5(a,h),I=oe.createWriteStream(u);E.pipe(I),await new Promise(v=>{I.on("finish",v)})}}),this.dryRun||(p.reportInfo(0,`Package archive generated in ${pe.pretty(r,u,pe.Type.PATH)}`),p.reportJson({output:ue.fromPortablePath(u)}))})).exitCode()}};function hvt(t,{workspace:e}){let r=t.replace("%s",gvt(e)).replace("%v",dvt(e));return ue.toPortablePath(r)}function gvt(t){return t.manifest.name!==null?G.slugifyIdent(t.manifest.name):"package"}function dvt(t){return t.manifest.version!==null?t.manifest.version:"unknown"}var mvt=["dependencies","devDependencies","peerDependencies"],yvt="workspace:",Evt=(t,e)=>{e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let o of mvt)for(let a of t.manifest.getForScope(o).values()){let n=r.tryWorkspaceByDescriptor(a),u=G.parseRange(a.range);if(u.protocol===yvt)if(n===null){if(r.tryWorkspaceByIdent(a)===null)throw new Jt(21,`${G.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let A;G.areDescriptorsEqual(a,n.anchoredDescriptor)||u.selector==="*"?A=n.manifest.version??"0.0.0":u.selector==="~"||u.selector==="^"?A=`${u.selector}${n.manifest.version??"0.0.0"}`:A=u.selector;let p=o==="dependencies"?G.makeDescriptor(a,"unknown"):null,h=p!==null&&t.manifest.ensureDependencyMeta(p).optional?"optionalDependencies":o;e[h][G.stringifyIdent(a)]=A}}},Cvt={hooks:{beforeWorkspacePacking:Evt},commands:[DC]},wvt=Cvt;var mBe=ve("crypto"),yBe=Ze(dBe());async function Uvt(t,e,{access:r,tag:o,registry:a,gitHead:n}){let u=t.manifest.name,A=t.manifest.version,p=G.stringifyIdent(u),h=(0,mBe.createHash)("sha1").update(e).digest("hex"),E=yBe.default.fromData(e).toString(),I=r??EBe(t,u),v=await CBe(t),x=await CA.genPackageManifest(t),C=`${p}-${A}.tgz`,R=new URL(`${ac(a)}/${p}/-/${C}`);return{_id:p,_attachments:{[C]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:p,access:I,"dist-tags":{[o]:A},versions:{[A]:{...x,_id:`${p}@${A}`,name:p,version:A,gitHead:n,dist:{shasum:h,integrity:E,tarball:R.toString()}}},readme:v}}async function _vt(t){try{let{stdout:e}=await Ur.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return}}function EBe(t,e){let r=t.project.configuration;return t.manifest.publishConfig&&typeof t.manifest.publishConfig.access=="string"?t.manifest.publishConfig.access:r.get("npmPublishAccess")!==null?r.get("npmPublishAccess"):e.scope?"restricted":"public"}async function CBe(t){let e=ue.toPortablePath(`${t.cwd}/README.md`),r=t.manifest.name,a=`# ${G.stringifyIdent(r)} -`;try{a=await oe.readFilePromise(e,"utf8")}catch(n){if(n.code==="ENOENT")return a;throw n}return a}var A5={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},wBe={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},Hvt={configuration:{...A5,...wBe,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...A5,...wBe}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:ac,valueDefinition:{description:"",type:"SHAPE",properties:{...A5}}}},fetchers:[VB,tp],resolvers:[zB,JB,XB]},qvt=Hvt;var w5={};Vt(w5,{NpmAuditCommand:()=>bC,NpmInfoCommand:()=>xC,NpmLoginCommand:()=>kC,NpmLogoutCommand:()=>FC,NpmPublishCommand:()=>RC,NpmTagAddCommand:()=>NC,NpmTagListCommand:()=>TC,NpmTagRemoveCommand:()=>LC,NpmWhoamiCommand:()=>MC,default:()=>zvt,npmAuditTypes:()=>dv,npmAuditUtils:()=>HQ});Ge();Ge();qt();var m5=Ze($o());el();var dv={};Vt(dv,{Environment:()=>hv,Severity:()=>gv});var hv=(o=>(o.All="all",o.Production="production",o.Development="development",o))(hv||{}),gv=(n=>(n.Info="info",n.Low="low",n.Moderate="moderate",n.High="high",n.Critical="critical",n))(gv||{});var HQ={};Vt(HQ,{allSeverities:()=>SC,getPackages:()=>d5,getReportTree:()=>h5,getSeverityInclusions:()=>p5,getTopLevelDependencies:()=>g5});Ge();var IBe=Ze(Jn());var SC=["info","low","moderate","high","critical"];function p5(t){if(typeof t>"u")return new Set(SC);let e=SC.indexOf(t),r=SC.slice(e);return new Set(r)}function h5(t){let e={},r={children:e};for(let[o,a]of He.sortMap(Object.entries(t),n=>n[0]))for(let n of He.sortMap(a,u=>`${u.id}`))e[`${o}/${n.id}`]={value:pe.tuple(pe.Type.IDENT,G.parseIdent(o)),children:{ID:typeof n.id<"u"&&{label:"ID",value:pe.tuple(pe.Type.ID,n.id)},Issue:{label:"Issue",value:pe.tuple(pe.Type.NO_HINT,n.title)},URL:typeof n.url<"u"&&{label:"URL",value:pe.tuple(pe.Type.URL,n.url)},Severity:{label:"Severity",value:pe.tuple(pe.Type.NO_HINT,n.severity)},"Vulnerable Versions":{label:"Vulnerable Versions",value:pe.tuple(pe.Type.RANGE,n.vulnerable_versions)},"Tree Versions":{label:"Tree Versions",children:[...n.versions].sort(IBe.default.compare).map(u=>({value:pe.tuple(pe.Type.REFERENCE,u)}))},Dependents:{label:"Dependents",children:He.sortMap(n.dependents,u=>G.stringifyLocator(u)).map(u=>({value:pe.tuple(pe.Type.LOCATOR,u)}))}}};return r}function g5(t,e,{all:r,environment:o}){let a=[],n=r?t.workspaces:[e],u=["all","production"].includes(o),A=["all","development"].includes(o);for(let p of n)for(let h of p.anchoredPackage.dependencies.values())(p.manifest.devDependencies.has(h.identHash)?!A:!u)||a.push({workspace:p,dependency:h});return a}function d5(t,e,{recursive:r}){let o=new Map,a=new Set,n=[],u=(A,p)=>{let h=t.storedResolutions.get(p.descriptorHash);if(typeof h>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(h))a.add(h);else return;let E=t.storedPackages.get(h);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");if(G.ensureDevirtualizedLocator(E).reference.startsWith("npm:")&&E.version!==null){let v=G.stringifyIdent(E),x=He.getMapWithDefault(o,v);He.getArrayWithDefault(x,E.version).push(A)}if(r)for(let v of E.dependencies.values())n.push([E,v])};for(let{workspace:A,dependency:p}of e)n.push([A.anchoredLocator,p]);for(;n.length>0;){let[A,p]=n.shift();u(A,p)}return o}var bC=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=ge.String("--environment","all",{description:"Which environments to cover",validator:Js(hv)});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.noDeprecations=ge.Boolean("--no-deprecations",!1,{description:"Don't warn about deprecated packages"});this.severity=ge.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Js(gv)});this.excludes=ge.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=ge.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}static{this.paths=[["npm","audit"]]}static{this.usage=it.Usage({description:"perform a vulnerability audit against the installed packages",details:` - This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). - - For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. - - Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${SC.map(r=>`\`${r}\``).join(", ")}. - - If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. - - If certain packages produce false positives for a particular environment, the \`--exclude\` flag can be used to exclude any number of packages from the audit. This can also be set in the configuration file with the \`npmAuditExcludePackages\` option. - - If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. - - To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why package\` to get more information as to who depends on them. - `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=g5(o,a,{all:this.all,environment:this.environment}),u=d5(o,n,{recursive:this.recursive}),A=Array.from(new Set([...r.get("npmAuditExcludePackages"),...this.excludes])),p=Object.create(null);for(let[L,U]of u)A.some(z=>m5.default.isMatch(L,z))||(p[L]=[...U.keys()]);let h=Zn.getAuditRegistry({configuration:r}),E,I=await AA.start({configuration:r,stdout:this.context.stdout},async()=>{let L=Zr.post("/-/npm/v1/security/advisories/bulk",p,{authType:Zr.AuthType.BEST_EFFORT,configuration:r,jsonResponse:!0,registry:h}),U=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(p),async([te,ae])=>{let le=await Zr.getPackageMetadata(G.parseIdent(te),{project:o});return He.mapAndFilter(ae,ce=>{let{deprecated:Ce}=le.versions[ce];return Ce?[te,ce,Ce]:He.mapAndFilter.skip})})),z=await L;for(let[te,ae,le]of U.flat(1))Object.hasOwn(z,te)&&z[te].some(ce=>Lr.satisfiesWithPrereleases(ae,ce.vulnerable_versions))||(z[te]??=[],z[te].push({id:`${te} (deprecation)`,title:le.trim()||"This package has been deprecated.",severity:"moderate",vulnerable_versions:ae}));E=z});if(I.hasErrors())return I.exitCode();let v=p5(this.severity),x=Array.from(new Set([...r.get("npmAuditIgnoreAdvisories"),...this.ignores])),C=Object.create(null);for(let[L,U]of Object.entries(E)){let z=U.filter(te=>!m5.default.isMatch(`${te.id}`,x)&&v.has(te.severity));z.length>0&&(C[L]=z.map(te=>{let ae=u.get(L);if(typeof ae>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let le=[...ae.keys()].filter(Ce=>Lr.satisfiesWithPrereleases(Ce,te.vulnerable_versions)),ce=new Map;for(let Ce of le)for(let de of ae.get(Ce))ce.set(de.locatorHash,de);return{...te,versions:le,dependents:[...ce.values()]}}))}let R=Object.keys(C).length>0;return R?(fs.emitTree(h5(C),{configuration:r,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Rt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async L=>{L.reportInfo(1,"No audit suggestions")}),R?1:0)}};Ge();Ge();Pt();qt();var y5=Ze(Jn()),E5=ve("util"),xC=class extends ut{constructor(){super(...arguments);this.fields=ge.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=ge.Rest()}static{this.paths=[["npm","info"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd),a=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],u=!1,A=await Rt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async p=>{for(let h of this.packages){let E;if(h==="."){let ae=o.topLevelWorkspace;if(!ae.manifest.name)throw new st(`Missing ${pe.pretty(r,"name",pe.Type.CODE)} field in ${ue.fromPortablePath(K.join(ae.cwd,dr.manifest))}`);E=G.makeDescriptor(ae.manifest.name,"unknown")}else E=G.parseDescriptor(h);let I=Zr.getIdentUrl(E),v=C5(await Zr.get(I,{configuration:r,ident:E,jsonResponse:!0,customErrorMessage:Zr.customPackageError})),x=Object.keys(v.versions).sort(y5.default.compareLoose),R=v["dist-tags"].latest||x[x.length-1],L=Lr.validRange(E.range);if(L){let ae=y5.default.maxSatisfying(x,L);ae!==null?R=ae:(p.reportWarning(0,`Unmet range ${G.prettyRange(r,E.range)}; falling back to the latest version`),u=!0)}else Object.hasOwn(v["dist-tags"],E.range)?R=v["dist-tags"][E.range]:E.range!=="unknown"&&(p.reportWarning(0,`Unknown tag ${G.prettyRange(r,E.range)}; falling back to the latest version`),u=!0);let U=v.versions[R],z={...v,...U,version:R,versions:x},te;if(a!==null){te={};for(let ae of a){let le=z[ae];if(typeof le<"u")te[ae]=le;else{p.reportWarning(1,`The ${pe.pretty(r,ae,pe.Type.CODE)} field doesn't exist inside ${G.prettyIdent(r,E)}'s information`),u=!0;continue}}}else this.json||(delete z.dist,delete z.readme,delete z.users),te=z;p.reportJson(te),this.json||n.push(te)}});E5.inspect.styles.name="cyan";for(let p of n)(p!==n[0]||u)&&this.context.stdout.write(` -`),this.context.stdout.write(`${(0,E5.inspect)(p,{depth:1/0,colors:!0,compact:!1})} -`);return A.exitCode()}};function C5(t){if(Array.isArray(t)){let e=[];for(let r of t)r=C5(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let o=C5(t[r]);o&&(e[r]=o)}return e}else return t||null}Ge();Ge();qt();var BBe=Ze(J1()),kC=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=ge.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}static{this.paths=[["npm","login"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await qQ({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Rt.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let u=await Yvt({configuration:r,registry:o,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),A=await jvt(o,u,r);return await Gvt(o,A,{alwaysAuth:this.alwaysAuth,scope:this.scope}),n.reportInfo(0,"Successfully logged in")})).exitCode()}};async function qQ({scope:t,publish:e,configuration:r,cwd:o}){return t&&e?Zn.getScopeRegistry(t,{configuration:r,type:Zn.RegistryType.PUBLISH_REGISTRY}):t?Zn.getScopeRegistry(t,{configuration:r}):e?Zn.getPublishRegistry((await _y(r,o)).manifest,{configuration:r}):Zn.getDefaultRegistry({configuration:r})}async function jvt(t,e,r){let o=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,a={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},n={attemptedAs:e.name,configuration:r,registry:t,jsonResponse:!0,authType:Zr.AuthType.NO_AUTH};try{return(await Zr.put(o,a,n)).token}catch(E){if(!(E.originalError?.name==="HTTPError"&&E.originalError?.response.statusCode===409))throw E}let u={...n,authType:Zr.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},A=await Zr.get(o,u);for(let[E,I]of Object.entries(A))(!a[E]||E==="roles")&&(a[E]=I);let p=`${o}/-rev/${a._rev}`;return(await Zr.put(p,a,u)).token}async function Gvt(t,e,{alwaysAuth:r,scope:o}){let a=u=>A=>{let p=He.isIndexableObject(A)?A:{},h=p[u],E=He.isIndexableObject(h)?h:{};return{...p,[u]:{...E,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:e}}},n=o?{npmScopes:a(o)}:{npmRegistries:a(t)};return await Ke.updateHomeConfiguration(n)}async function Yvt({configuration:t,registry:e,report:r,stdin:o,stdout:a}){r.reportInfo(0,`Logging in to ${pe.pretty(t,e,pe.Type.URL)}`);let n=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),r.reportSeparator(),t.env.YARN_IS_TEST_ENV)return{name:t.env.YARN_INJECT_NPM_USER||"",password:t.env.YARN_INJECT_NPM_PASSWORD||""};let u=await(0,BBe.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a}]);return r.reportSeparator(),u}Ge();Ge();qt();var QC=new Set(["npmAuthIdent","npmAuthToken"]),FC=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=ge.Boolean("-A,--all",!1,{description:"Logout of all registries"})}static{this.paths=[["npm","logout"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=async()=>{let n=await qQ({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),u=await Ke.find(this.context.cwd,this.context.plugins),A=G.makeIdent(this.scope??null,"pkg");return!Zn.getAuthConfiguration(n,{configuration:u,ident:A}).get("npmAuthToken")};return(await Rt.start({configuration:r,stdout:this.context.stdout},async n=>{if(this.all&&(await Kvt(),n.reportInfo(0,"Successfully logged out from everything")),this.scope){await vBe("npmScopes",this.scope),await o()?n.reportInfo(0,`Successfully logged out from ${this.scope}`):n.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let u=await qQ({configuration:r,cwd:this.context.cwd,publish:this.publish});await vBe("npmRegistries",u),await o()?n.reportInfo(0,`Successfully logged out from ${u}`):n.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};function Wvt(t,e){let r=t[e];if(!He.isIndexableObject(r))return!1;let o=new Set(Object.keys(r));if([...QC].every(n=>!o.has(n)))return!1;for(let n of QC)o.delete(n);if(o.size===0)return t[e]=void 0,!0;let a={...r};for(let n of QC)delete a[n];return t[e]=a,!0}async function Kvt(){let t=e=>{let r=!1,o=He.isIndexableObject(e)?{...e}:{};o.npmAuthToken&&(delete o.npmAuthToken,r=!0);for(let a of Object.keys(o))Wvt(o,a)&&(r=!0);if(Object.keys(o).length!==0)return r?o:e};return await Ke.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function vBe(t,e){return await Ke.updateHomeConfiguration({[t]:r=>{let o=He.isIndexableObject(r)?r:{};if(!Object.hasOwn(o,e))return r;let a=o[e],n=He.isIndexableObject(a)?a:{},u=new Set(Object.keys(n));if([...QC].every(p=>!u.has(p)))return r;for(let p of QC)u.delete(p);if(u.size===0)return Object.keys(o).length===1?void 0:{...o,[e]:void 0};let A={};for(let p of QC)A[p]=void 0;return{...o,[e]:{...n,...A}}}})}Ge();qt();var RC=class extends ut{constructor(){super(...arguments);this.access=ge.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=ge.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=ge.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=ge.String("--otp",{description:"The OTP token to use with the command"})}static{this.paths=[["npm","publish"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overridden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);if(a.manifest.private)throw new st("Private workspaces cannot be published");if(a.manifest.name===null||a.manifest.version===null)throw new st("Workspaces must have valid names and versions to be published on an external registry");await o.restoreInstallState();let n=a.manifest.name,u=a.manifest.version,A=Zn.getPublishRegistry(a.manifest,{configuration:r});return(await Rt.start({configuration:r,stdout:this.context.stdout},async h=>{if(this.tolerateRepublish)try{let E=await Zr.get(Zr.getIdentUrl(n),{configuration:r,registry:A,ident:n,jsonResponse:!0});if(!Object.hasOwn(E,"versions"))throw new Jt(15,'Registry returned invalid data for - missing "versions" field');if(Object.hasOwn(E.versions,u)){h.reportWarning(0,`Registry already knows about version ${u}; skipping.`);return}}catch(E){if(E.originalError?.response?.statusCode!==404)throw E}await An.maybeExecuteWorkspaceLifecycleScript(a,"prepublish",{report:h}),await CA.prepareForPack(a,{report:h},async()=>{let E=await CA.genPackList(a);for(let R of E)h.reportInfo(null,R);let I=await CA.genPackStream(a,E),v=await He.bufferStream(I),x=await PC.getGitHead(a.cwd),C=await PC.makePublishBody(a,v,{access:this.access,tag:this.tag,registry:A,gitHead:x});await Zr.put(Zr.getIdentUrl(n),C,{configuration:r,registry:A,ident:n,otp:this.otp,jsonResponse:!0})}),h.reportInfo(0,"Package archive published")})).exitCode()}};Ge();qt();var DBe=Ze(Jn());Ge();Pt();qt();var TC=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=ge.String({required:!1})}static{this.paths=[["npm","tag","list"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` - This command will list all tags of a package from the npm registry. - - If the package is not specified, Yarn will default to the current workspace. - `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n;if(typeof this.package<"u")n=G.parseIdent(this.package);else{if(!a)throw new sr(o.cwd,this.context.cwd);if(!a.manifest.name)throw new st(`Missing 'name' field in ${ue.fromPortablePath(K.join(a.cwd,dr.manifest))}`);n=a.manifest.name}let u=await mv(n,r),p={children:He.sortMap(Object.entries(u),([h])=>h).map(([h,E])=>({value:pe.tuple(pe.Type.RESOLUTION,{descriptor:G.makeDescriptor(n,h),locator:G.makeLocator(n,E)})}))};return fs.emitTree(p,{configuration:r,json:this.json,stdout:this.context.stdout})}};async function mv(t,e){let r=`/-/package${Zr.getIdentUrl(t)}/dist-tags`;return Zr.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:Zr.customPackageError})}var NC=class extends ut{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}static{this.paths=[["npm","tag","add"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` - This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. - `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);let n=G.parseDescriptor(this.package,!0),u=n.range;if(!DBe.default.valid(u))throw new st(`The range ${pe.pretty(r,n.range,pe.Type.RANGE)} must be a valid semver version`);let A=Zn.getPublishRegistry(a.manifest,{configuration:r}),p=pe.pretty(r,n,pe.Type.IDENT),h=pe.pretty(r,u,pe.Type.RANGE),E=pe.pretty(r,this.tag,pe.Type.CODE);return(await Rt.start({configuration:r,stdout:this.context.stdout},async v=>{let x=await mv(n,r);Object.hasOwn(x,this.tag)&&x[this.tag]===u&&v.reportWarning(0,`Tag ${E} is already set to version ${h}`);let C=`/-/package${Zr.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Zr.put(C,u,{configuration:r,registry:A,ident:n,jsonRequest:!0,jsonResponse:!0}),v.reportInfo(0,`Tag ${E} added to version ${h} of package ${p}`)})).exitCode()}};Ge();qt();var LC=class extends ut{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}static{this.paths=[["npm","tag","remove"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` - This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]})}async execute(){if(this.tag==="latest")throw new st("The 'latest' tag cannot be removed.");let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);let n=G.parseIdent(this.package),u=Zn.getPublishRegistry(a.manifest,{configuration:r}),A=pe.pretty(r,this.tag,pe.Type.CODE),p=pe.pretty(r,n,pe.Type.IDENT),h=await mv(n,r);if(!Object.hasOwn(h,this.tag))throw new st(`${A} is not a tag of package ${p}`);return(await Rt.start({configuration:r,stdout:this.context.stdout},async I=>{let v=`/-/package${Zr.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Zr.del(v,{configuration:r,registry:u,ident:n,jsonResponse:!0}),I.reportInfo(0,`Tag ${A} removed from package ${p}`)})).exitCode()}};Ge();Ge();qt();var MC=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Print username for the publish registry"})}static{this.paths=[["npm","whoami"]]}static{this.usage=it.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o;return this.scope&&this.publish?o=Zn.getScopeRegistry(this.scope,{configuration:r,type:Zn.RegistryType.PUBLISH_REGISTRY}):this.scope?o=Zn.getScopeRegistry(this.scope,{configuration:r}):this.publish?o=Zn.getPublishRegistry((await _y(r,this.context.cwd)).manifest,{configuration:r}):o=Zn.getDefaultRegistry({configuration:r}),(await Rt.start({configuration:r,stdout:this.context.stdout},async n=>{let u;try{u=await Zr.get("/-/whoami",{configuration:r,registry:o,authType:Zr.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?G.makeIdent(this.scope,""):void 0})}catch(A){if(A.response?.statusCode===401||A.response?.statusCode===403){n.reportError(41,"Authentication failed - your credentials may have expired");return}else throw A}n.reportInfo(0,u.username)})).exitCode()}};var Vvt={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[bC,xC,kC,FC,RC,NC,TC,LC,MC]},zvt=Vvt;var b5={};Vt(b5,{PatchCommand:()=>jC,PatchCommitCommand:()=>qC,PatchFetcher:()=>Iv,PatchResolver:()=>Bv,default:()=>pDt,patchUtils:()=>pd});Ge();Ge();Pt();nA();var pd={};Vt(pd,{applyPatchFile:()=>GQ,diffFolders:()=>P5,ensureUnpatchedDescriptor:()=>I5,ensureUnpatchedLocator:()=>WQ,extractPackageToDisk:()=>D5,extractPatchFlags:()=>FBe,isParentRequired:()=>v5,isPatchDescriptor:()=>YQ,isPatchLocator:()=>$h,loadPatchFiles:()=>wv,makeDescriptor:()=>KQ,makeLocator:()=>B5,makePatchHash:()=>S5,parseDescriptor:()=>Ev,parseLocator:()=>Cv,parsePatchFile:()=>yv,unpatchDescriptor:()=>uDt,unpatchLocator:()=>ADt});Ge();Pt();Ge();Pt();var Jvt=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function OC(t){return K.relative(It.root,K.resolve(It.root,ue.toPortablePath(t)))}function Xvt(t){let e=t.trim().match(Jvt);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var Zvt=420,$vt=493;var PBe=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),eDt=t=>({header:Xvt(t),parts:[]}),tDt={"@":"header","-":"deletion","+":"insertion"," ":"context","\\":"pragma",undefined:"context"};function rDt(t){let e=[],r=PBe(),o="parsing header",a=null,n=null;function u(){a&&(n&&(a.parts.push(n),n=null),r.hunks.push(a),a=null)}function A(){u(),e.push(r),r=PBe()}for(let p=0;p<t.length;p++){let h=t[p];if(o==="parsing header")if(h.startsWith("@@"))o="parsing hunks",r.hunks=[],p-=1;else if(h.startsWith("diff --git ")){r&&r.diffLineFromPath&&A();let E=h.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/);if(!E)throw new Error(`Bad diff line: ${h}`);r.diffLineFromPath=E[1],r.diffLineToPath=E[2]}else if(h.startsWith("old mode "))r.oldMode=h.slice(9).trim();else if(h.startsWith("new mode "))r.newMode=h.slice(9).trim();else if(h.startsWith("deleted file mode "))r.deletedFileMode=h.slice(18).trim();else if(h.startsWith("new file mode "))r.newFileMode=h.slice(14).trim();else if(h.startsWith("rename from "))r.renameFrom=h.slice(12).trim();else if(h.startsWith("rename to "))r.renameTo=h.slice(10).trim();else if(h.startsWith("index ")){let E=h.match(/(\w+)\.\.(\w+)/);if(!E)continue;r.beforeHash=E[1],r.afterHash=E[2]}else h.startsWith("semver exclusivity ")?r.semverExclusivity=h.slice(19).trim():h.startsWith("--- ")?r.fromPath=h.slice(6).trim():h.startsWith("+++ ")&&(r.toPath=h.slice(6).trim());else{let E=tDt[h[0]]||null;switch(E){case"header":u(),a=eDt(h);break;case null:o="parsing header",A(),p-=1;break;case"pragma":{if(!h.startsWith("\\ No newline at end of file"))throw new Error(`Unrecognized pragma in patch file: ${h}`);if(!n)throw new Error("Bad parser state: No newline at EOF pragma encountered without context");n.noNewlineAtEndOfFile=!0}break;case"context":case"deletion":case"insertion":{if(!a)throw new Error("Bad parser state: Hunk lines encountered before hunk header");n&&n.type!==E&&(a.parts.push(n),n=null),n||(n={type:E,lines:[],noNewlineAtEndOfFile:!1}),n.lines.push(h.slice(1))}break;default:He.assertNever(E);break}}}A();for(let{hunks:p}of e)if(p)for(let h of p)iDt(h);return e}function nDt(t){let e=[];for(let r of t){let{semverExclusivity:o,diffLineFromPath:a,diffLineToPath:n,oldMode:u,newMode:A,deletedFileMode:p,newFileMode:h,renameFrom:E,renameTo:I,beforeHash:v,afterHash:x,fromPath:C,toPath:R,hunks:L}=r,U=E?"rename":p?"file deletion":h?"file creation":L&&L.length>0?"patch":"mode change",z=null;switch(U){case"rename":{if(!E||!I)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:o,fromPath:OC(E),toPath:OC(I)}),z=I}break;case"file deletion":{let te=a||C;if(!te)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:o,hunk:L&&L[0]||null,path:OC(te),mode:jQ(p),hash:v})}break;case"file creation":{let te=n||R;if(!te)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:o,hunk:L&&L[0]||null,path:OC(te),mode:jQ(h),hash:x})}break;case"patch":case"mode change":z=R||n;break;default:He.assertNever(U);break}z&&u&&A&&u!==A&&e.push({type:"mode change",semverExclusivity:o,path:OC(z),oldMode:jQ(u),newMode:jQ(A)}),z&&L&&L.length&&e.push({type:"patch",semverExclusivity:o,path:OC(z),hunks:L,beforeHash:v,afterHash:x})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function jQ(t){let e=parseInt(t,8)&511;if(e!==Zvt&&e!==$vt)throw new Error(`Unexpected file mode string: ${t}`);return e}function yv(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),nDt(rDt(e))}function iDt(t){let e=0,r=0;for(let{type:o,lines:a}of t.parts)switch(o){case"context":r+=a.length,e+=a.length;break;case"deletion":e+=a.length;break;case"insertion":r+=a.length;break;default:He.assertNever(o);break}if(e!==t.header.original.length||r!==t.header.patched.length){let o=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${o(t.header.original.length)} ${o(t.header.patched.length)} @@, got @@ ${o(e)} ${o(r)} @@)`)}}Ge();Pt();var UC=class extends Error{constructor(r,o){super(`Cannot apply hunk #${r+1}`);this.hunk=o}};async function _C(t,e,r){let o=await t.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await t.lutimesPromise(e,o.atime,o.mtime)}async function GQ(t,{baseFs:e=new Tn,dryRun:r=!1,version:o=null}={}){for(let a of t)if(!(a.semverExclusivity!==null&&o!==null&&!Lr.satisfiesWithPrereleases(o,a.semverExclusivity)))switch(a.type){case"file deletion":if(r){if(!e.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await _C(e,K.dirname(a.path),async()=>{await e.unlinkPromise(a.path)});break;case"rename":if(r){if(!e.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await _C(e,K.dirname(a.fromPath),async()=>{await _C(e,K.dirname(a.toPath),async()=>{await _C(e,a.fromPath,async()=>(await e.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case"file creation":if(r){if(e.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let n=a.hunk?a.hunk.parts[0].lines.join(` -`)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":` -`):"";await e.mkdirpPromise(K.dirname(a.path),{chmod:493,utimes:[Bi.SAFE_TIME,Bi.SAFE_TIME]}),await e.writeFilePromise(a.path,n,{mode:a.mode}),await e.utimesPromise(a.path,Bi.SAFE_TIME,Bi.SAFE_TIME)}break;case"patch":await _C(e,a.path,async()=>{await aDt(a,{baseFs:e,dryRun:r})});break;case"mode change":{let u=(await e.statPromise(a.path)).mode;if(SBe(a.newMode)!==SBe(u))continue;await _C(e,a.path,async()=>{await e.chmodPromise(a.path,a.newMode)})}break;default:He.assertNever(a);break}}function SBe(t){return(t&64)>0}function bBe(t){return t.replace(/\s+$/,"")}function oDt(t,e){return bBe(t)===bBe(e)}async function aDt({hunks:t,path:e},{baseFs:r,dryRun:o=!1}){let a=await r.statSync(e).mode,u=(await r.readFileSync(e,"utf8")).split(/\n/),A=[],p=0,h=0;for(let I of t){let v=Math.max(h,I.header.patched.start+p),x=Math.max(0,v-h),C=Math.max(0,u.length-v-I.header.original.length),R=Math.max(x,C),L=0,U=0,z=null;for(;L<=R;){if(L<=x&&(U=v-L,z=xBe(I,u,U),z!==null)){L=-L;break}if(L<=C&&(U=v+L,z=xBe(I,u,U),z!==null))break;L+=1}if(z===null)throw new UC(t.indexOf(I),I);A.push(z),p+=L,h=U+I.header.original.length}if(o)return;let E=0;for(let I of A)for(let v of I)switch(v.type){case"splice":{let x=v.index+E;u.splice(x,v.numToDelete,...v.linesToInsert),E+=v.linesToInsert.length-v.numToDelete}break;case"pop":u.pop();break;case"push":u.push(v.line);break;default:He.assertNever(v);break}await r.writeFilePromise(e,u.join(` -`),{mode:a})}function xBe(t,e,r){let o=[];for(let a of t.parts)switch(a.type){case"context":case"deletion":{for(let n of a.lines){let u=e[r];if(u==null||!oDt(u,n))return null;r+=1}a.type==="deletion"&&(o.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&o.push({type:"push",line:""}))}break;case"insertion":o.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&o.push({type:"pop"});break;default:He.assertNever(a.type);break}return o}var cDt=/^builtin<([^>]+)>$/;function HC(t,e){let{protocol:r,source:o,selector:a,params:n}=G.parseRange(t);if(r!=="patch:")throw new Error("Invalid patch range");if(o===null)throw new Error("Patch locators must explicitly define their source");let u=a?a.split(/&/).map(E=>ue.toPortablePath(E)):[],A=n&&typeof n.locator=="string"?G.parseLocator(n.locator):null,p=n&&typeof n.version=="string"?n.version:null,h=e(o);return{parentLocator:A,sourceItem:h,patchPaths:u,sourceVersion:p}}function YQ(t){return t.range.startsWith("patch:")}function $h(t){return t.reference.startsWith("patch:")}function Ev(t){let{sourceItem:e,...r}=HC(t.range,G.parseDescriptor);return{...r,sourceDescriptor:e}}function Cv(t){let{sourceItem:e,...r}=HC(t.reference,G.parseLocator);return{...r,sourceLocator:e}}function uDt(t){let{sourceItem:e}=HC(t.range,G.parseDescriptor);return e}function ADt(t){let{sourceItem:e}=HC(t.reference,G.parseLocator);return e}function I5(t){if(!YQ(t))return t;let{sourceItem:e}=HC(t.range,G.parseDescriptor);return e}function WQ(t){if(!$h(t))return t;let{sourceItem:e}=HC(t.reference,G.parseLocator);return e}function kBe({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:o,patchHash:a},n){let u=t!==null?{locator:G.stringifyLocator(t)}:{},A=typeof o<"u"?{version:o}:{},p=typeof a<"u"?{hash:a}:{};return G.makeRange({protocol:"patch:",source:n(e),selector:r.join("&"),params:{...A,...p,...u}})}function KQ(t,{parentLocator:e,sourceDescriptor:r,patchPaths:o}){return G.makeDescriptor(t,kBe({parentLocator:e,sourceItem:r,patchPaths:o},G.stringifyDescriptor))}function B5(t,{parentLocator:e,sourcePackage:r,patchPaths:o,patchHash:a}){return G.makeLocator(t,kBe({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:o,patchHash:a},G.stringifyLocator))}function QBe({onAbsolute:t,onRelative:e,onProject:r,onBuiltin:o},a){let n=a.lastIndexOf("!");n!==-1&&(a=a.slice(n+1));let u=a.match(cDt);return u!==null?o(u[1]):a.startsWith("~/")?r(a.slice(2)):K.isAbsolute(a)?t(a):e(a)}function FBe(t){let e=t.lastIndexOf("!");return{optional:(e!==-1?new Set(t.slice(0,e).split(/!/)):new Set).has("optional")}}function v5(t){return QBe({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},t)}async function wv(t,e,r){let o=t!==null?await r.fetcher.fetch(t,r):null,a=o&&o.localPath?{packageFs:new gn(It.root),prefixPath:K.relative(It.root,o.localPath)}:o;o&&o!==a&&o.releaseFs&&o.releaseFs();let n=await He.releaseAfterUseAsync(async()=>await Promise.all(e.map(async u=>{let A=FBe(u),p=await QBe({onAbsolute:async h=>await oe.readFilePromise(h,"utf8"),onRelative:async h=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(K.join(a.prefixPath,h),"utf8")},onProject:async h=>await oe.readFilePromise(K.join(r.project.cwd,h),"utf8"),onBuiltin:async h=>await r.project.configuration.firstHook(E=>E.getBuiltinPatch,r.project,h)},u);return{...A,source:p}})));for(let u of n)typeof u.source=="string"&&(u.source=u.source.replace(/\r\n?/g,` -`));return n}async function D5(t,{cache:e,project:r}){let o=r.storedPackages.get(t.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=WQ(t),n=r.storedChecksums,u=new ki,A=await oe.mktempPromise(),p=K.join(A,"source"),h=K.join(A,"user"),E=K.join(A,".yarn-patch.json"),I=r.configuration.makeFetcher(),v=[];try{let x,C;if(t.locatorHash===a.locatorHash){let R=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u});v.push(()=>R.releaseFs?.()),x=R,C=R}else x=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u}),v.push(()=>x.releaseFs?.()),C=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u}),v.push(()=>C.releaseFs?.());await Promise.all([oe.copyPromise(p,x.prefixPath,{baseFs:x.packageFs}),oe.copyPromise(h,C.prefixPath,{baseFs:C.packageFs}),oe.writeJsonPromise(E,{locator:G.stringifyLocator(t),version:o.version})])}finally{for(let x of v)x()}return oe.detachTemp(A),h}async function P5(t,e){let r=ue.fromPortablePath(t).replace(/\\/g,"/"),o=ue.fromPortablePath(e).replace(/\\/g,"/"),{stdout:a,stderr:n}=await Ur.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,o],{cwd:ue.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(n.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. -The following error was reported by 'git': -${n}`);let u=r.startsWith("/")?A=>A.slice(1):A=>A;return a.replace(new RegExp(`(a|b)(${He.escapeRegExp(`/${u(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${He.escapeRegExp(`/${u(o)}/`)}`,"g"),"$1/").replace(new RegExp(He.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(He.escapeRegExp(`${o}/`),"g"),"")}function S5(t,e){let r=[];for(let{source:o}of t){if(o===null)continue;let a=yv(o);for(let n of a){let{semverExclusivity:u,...A}=n;u!==null&&e!==null&&!Lr.satisfiesWithPrereleases(e,u)||r.push(JSON.stringify(A))}}return wn.makeHash(`${3}`,...r).slice(0,6)}Ge();function RBe(t,{configuration:e,report:r}){for(let o of t.parts)for(let a of o.lines)switch(o.type){case"context":r.reportInfo(null,` ${pe.pretty(e,a,"grey")}`);break;case"deletion":r.reportError(28,`- ${pe.pretty(e,a,pe.Type.REMOVED)}`);break;case"insertion":r.reportError(28,`+ ${pe.pretty(e,a,pe.Type.ADDED)}`);break;default:He.assertNever(o.type)}}var Iv=class{supports(e,r){return!!$h(e)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async patchPackage(e,r){let{parentLocator:o,sourceLocator:a,sourceVersion:n,patchPaths:u}=Cv(e),A=await wv(o,u,r),p=await oe.mktempPromise(),h=K.join(p,"current.zip"),E=await r.fetcher.fetch(a,r),I=G.getIdentVendorPath(e),v=new Zi(h,{create:!0,level:r.project.configuration.get("compressionLevel")});await He.releaseAfterUseAsync(async()=>{await v.copyPromise(I,E.prefixPath,{baseFs:E.packageFs,stableSort:!0})},E.releaseFs),v.saveAndClose();for(let{source:x,optional:C}of A){if(x===null)continue;let R=new Zi(h,{level:r.project.configuration.get("compressionLevel")}),L=new gn(K.resolve(It.root,I),{baseFs:R});try{await GQ(yv(x),{baseFs:L,version:n})}catch(U){if(!(U instanceof UC))throw U;let z=r.project.configuration.get("enableInlineHunks"),te=!z&&!C?" (set enableInlineHunks for details)":"",ae=`${G.prettyLocator(r.project.configuration,e)}: ${U.message}${te}`,le=ce=>{z&&RBe(U.hunk,{configuration:r.project.configuration,report:ce})};if(R.discardAndClose(),C){r.report.reportWarningOnce(66,ae,{reportExtra:le});continue}else throw new Jt(66,ae,le)}R.saveAndClose()}return new Zi(h,{level:r.project.configuration.get("compressionLevel")})}};Ge();var Bv=class{supportsDescriptor(e,r){return!!YQ(e)}supportsLocator(e,r){return!!$h(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){let{patchPaths:a}=Ev(e);return a.every(n=>!v5(n))?e:G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:o}=Ev(e);return{sourceDescriptor:r.project.configuration.normalizeDependency(o)}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:n}=Ev(e),u=await wv(a,n,o.fetchOptions),A=r.sourceDescriptor;if(typeof A>"u")throw new Error("Assertion failed: The dependency should have been resolved");let p=S5(u,A.version);return[B5(e,{parentLocator:a,sourcePackage:A,patchPaths:n,patchHash:p})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let{sourceLocator:o}=Cv(e);return{...await r.resolver.resolve(o,r),...e}}};Ge();Pt();qt();var qC=class extends ut{constructor(){super(...arguments);this.save=ge.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=ge.String()}static{this.paths=[["patch-commit"]]}static{this.usage=it.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=K.resolve(this.context.cwd,ue.toPortablePath(this.patchFolder)),u=K.join(n,"../source"),A=K.join(n,"../.yarn-patch.json");if(!oe.existsSync(u))throw new st("The argument folder didn't get created by 'yarn patch'");let p=await P5(u,n),h=await oe.readJsonPromise(A),E=G.parseLocator(h.locator,!0);if(!o.storedPackages.has(E.locatorHash))throw new st("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(p);return}let I=r.get("patchFolder"),v=K.join(I,`${G.slugifyLocator(E)}.patch`);await oe.mkdirPromise(I,{recursive:!0}),await oe.writeFilePromise(v,p);let x=[],C=new Map;for(let R of o.storedPackages.values()){if(G.isVirtualLocator(R))continue;let L=R.dependencies.get(E.identHash);if(!L)continue;let U=G.ensureDevirtualizedDescriptor(L),z=I5(U),te=o.storedResolutions.get(z.descriptorHash);if(!te)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!o.storedPackages.get(te))throw new Error("Assertion failed: Expected the package to have been registered");let le=o.tryWorkspaceByLocator(R);if(le)x.push(le);else{let ce=o.originalPackages.get(R.locatorHash);if(!ce)throw new Error("Assertion failed: Expected the original package to have been registered");let Ce=ce.dependencies.get(L.identHash);if(!Ce)throw new Error("Assertion failed: Expected the original dependency to have been registered");C.set(Ce.descriptorHash,Ce)}}for(let R of x)for(let L of Ut.hardDependencies){let U=R.manifest[L].get(E.identHash);if(!U)continue;let z=KQ(U,{parentLocator:null,sourceDescriptor:G.convertLocatorToDescriptor(E),patchPaths:[K.join(dr.home,K.relative(o.cwd,v))]});R.manifest[L].set(U.identHash,z)}for(let R of C.values()){let L=KQ(R,{parentLocator:null,sourceDescriptor:G.convertLocatorToDescriptor(E),patchPaths:[K.join(dr.home,K.relative(o.cwd,v))]});o.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:G.stringifyIdent(L),description:R.range}},reference:L.range})}await o.persist()}};Ge();Pt();qt();var jC=class extends ut{constructor(){super(...arguments);this.update=ge.Boolean("-u,--update",!1,{description:"Reapply local patches that already apply to this packages"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=ge.String()}static{this.paths=[["patch"]]}static{this.usage=it.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n\n Once you're done with your changes, run `yarn patch-commit -s path` (with `path` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n\n Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\n "})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let u=G.parseLocator(this.package);if(u.reference==="unknown"){let A=He.mapAndFilter([...o.storedPackages.values()],p=>p.identHash!==u.identHash?He.mapAndFilter.skip:G.isVirtualLocator(p)?He.mapAndFilter.skip:$h(p)!==this.update?He.mapAndFilter.skip:p);if(A.length===0)throw new st("No package found in the project for the given locator");if(A.length>1)throw new st(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why <package>\` to get more information as to who depends on them): -${A.map(p=>` -- ${G.prettyLocator(r,p)}`).join("")}`);u=A[0]}if(!o.storedPackages.has(u.locatorHash))throw new st("No package found in the project for the given locator");await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=WQ(u),h=await D5(u,{cache:n,project:o});A.reportJson({locator:G.stringifyLocator(p),path:ue.fromPortablePath(h)});let E=this.update?" along with its current modifications":"";A.reportInfo(0,`Package ${G.prettyLocator(r,p)} got extracted with success${E}!`),A.reportInfo(0,`You can now edit the following folder: ${pe.pretty(r,ue.fromPortablePath(h),"magenta")}`),A.reportInfo(0,`Once you are done run ${pe.pretty(r,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${ue.fromPortablePath(h)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};var fDt={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[qC,jC],fetchers:[Iv],resolvers:[Bv]},pDt=fDt;var Q5={};Vt(Q5,{PnpmLinker:()=>vv,default:()=>yDt});Ge();Pt();qt();var vv=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new st(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=a.pathsByLocator.get(e.locatorHash);if(typeof n>"u")throw new st(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return n.packageLocation}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new st(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(n){let p=a.locatorByPath.get(n[1]);if(p)return p}let u=e,A=e;do{A=u,u=K.dirname(A);let p=a.locatorByPath.get(A);if(p)return p}while(u!==A);return null}makeInstaller(e){return new x5(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},x5=class{constructor(e){this.opts=e;this.asyncActions=new He.AsyncActions(10);this.customData={pathsByLocator:new Map,locatorByPath:new Map};this.indexFolderPromise=cD(oe,{indexPath:K.join(e.project.configuration.get("globalFolder"),"index")})}attachCustomData(e){}async installPackage(e,r,o){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,r,o);case"HARD":return this.installPackageHard(e,r,o)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,o){let a=K.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.opts.project.tryWorkspaceByLocator(e)?K.join(a,dr.nodeModules):null;return this.customData.pathsByLocator.set(e.locatorHash,{packageLocation:a,dependenciesLocation:n}),{packageLocation:a,buildRequest:null}}async installPackageHard(e,r,o){let a=hDt(e,{project:this.opts.project}),n=a.packageLocation;this.customData.locatorByPath.set(n,G.stringifyLocator(e)),this.customData.pathsByLocator.set(e.locatorHash,a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await oe.mkdirPromise(n,{recursive:!0}),await oe.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let A=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e,p={manifest:await Ut.tryFind(r.prefixPath,{baseFs:r.packageFs})??new Ut,misc:{hasBindingGyp:mA.hasBindingGyp(r)}},h=this.opts.project.getDependencyMeta(A,e.version),E=mA.extractBuildRequest(e,p,h,{configuration:this.opts.project.configuration});return{packageLocation:n,buildRequest:E}}async attachInternalDependencies(e,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!TBe(e,{project:this.opts.project}))return;let o=this.customData.pathsByLocator.get(e.locatorHash);if(typeof o>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${G.stringifyLocator(e)})`);let{dependenciesLocation:a}=o;a&&this.asyncActions.reduce(e.locatorHash,async n=>{await oe.mkdirPromise(a,{recursive:!0});let u=await gDt(a),A=new Map(u),p=[n],h=(I,v)=>{let x=v;TBe(v,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),x=G.devirtualizeLocator(v));let C=this.customData.pathsByLocator.get(x.locatorHash);if(typeof C>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${G.stringifyLocator(v)})`);let R=G.stringifyIdent(I),L=K.join(a,R),U=K.relative(K.dirname(L),C.packageLocation),z=A.get(R);A.delete(R),p.push(Promise.resolve().then(async()=>{if(z){if(z.isSymbolicLink()&&await oe.readlinkPromise(L)===U)return;await oe.removePromise(L)}await oe.mkdirpPromise(K.dirname(L)),process.platform=="win32"&&this.opts.project.configuration.get("winLinkType")==="junctions"?await oe.symlinkPromise(C.packageLocation,L,"junction"):await oe.symlinkPromise(U,L)}))},E=!1;for(let[I,v]of r)I.identHash===e.identHash&&(E=!0),h(I,v);!E&&!this.opts.project.tryWorkspaceByLocator(e)&&h(G.convertLocatorToDescriptor(e),e),p.push(dDt(a,A)),await Promise.all(p)})}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=LBe(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await oe.removePromise(e);else{let r;try{r=new Set(await oe.readdirPromise(e))}catch{r=new Set}for(let{dependenciesLocation:o}of this.customData.pathsByLocator.values()){if(!o)continue;let a=K.contains(e,o);if(a===null)continue;let[n]=a.split(K.sep);r.delete(n)}await Promise.all([...r].map(async o=>{await oe.removePromise(K.join(e,o))}))}return await this.asyncActions.wait(),await k5(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await k5(NBe(this.opts.project)),{customData:this.customData}}};function NBe(t){return K.join(t.cwd,dr.nodeModules)}function LBe(t){return K.join(NBe(t),".store")}function hDt(t,{project:e}){let r=G.slugifyLocator(t),o=LBe(e),a=K.join(o,r,"package"),n=K.join(o,r,dr.nodeModules);return{packageLocation:a,dependenciesLocation:n}}function TBe(t,{project:e}){return!G.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function gDt(t){let e=new Map,r=[];try{r=await oe.readdirPromise(t,{withFileTypes:!0})}catch(o){if(o.code!=="ENOENT")throw o}try{for(let o of r)if(!o.name.startsWith("."))if(o.name.startsWith("@")){let a=await oe.readdirPromise(K.join(t,o.name),{withFileTypes:!0});if(a.length===0)e.set(o.name,o);else for(let n of a)e.set(`${o.name}/${n.name}`,n)}else e.set(o.name,o)}catch(o){if(o.code!=="ENOENT")throw o}return e}async function dDt(t,e){let r=[],o=new Set;for(let a of e.keys()){r.push(oe.removePromise(K.join(t,a)));let n=G.tryParseIdent(a)?.scope;n&&o.add(`@${n}`)}return Promise.all(r).then(()=>Promise.all([...o].map(a=>k5(K.join(t,a)))))}async function k5(t){try{await oe.rmdirPromise(t)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var mDt={linkers:[vv]},yDt=mDt;var O5={};Vt(O5,{StageCommand:()=>GC,default:()=>xDt,stageUtils:()=>zQ});Ge();Pt();qt();Ge();Pt();var zQ={};Vt(zQ,{ActionType:()=>F5,checkConsensus:()=>VQ,expandDirectory:()=>N5,findConsensus:()=>L5,findVcsRoot:()=>R5,genCommitMessage:()=>M5,getCommitPrefix:()=>MBe,isYarnFile:()=>T5});Pt();var F5=(n=>(n[n.CREATE=0]="CREATE",n[n.DELETE=1]="DELETE",n[n.ADD=2]="ADD",n[n.REMOVE=3]="REMOVE",n[n.MODIFY=4]="MODIFY",n))(F5||{});async function R5(t,{marker:e}){do if(!oe.existsSync(K.join(t,e)))t=K.dirname(t);else return t;while(t!=="/");return null}function T5(t,{roots:e,names:r}){if(r.has(K.basename(t)))return!0;do if(!e.has(t))t=K.dirname(t);else return!0;while(t!=="/");return!1}function N5(t){let e=[],r=[t];for(;r.length>0;){let o=r.pop(),a=oe.readdirSync(o);for(let n of a){let u=K.resolve(o,n);oe.lstatSync(u).isDirectory()?r.push(u):e.push(u)}}return e}function VQ(t,e){let r=0,o=0;for(let a of t)a!=="wip"&&(e.test(a)?r+=1:o+=1);return r>=o}function L5(t){let e=VQ(t,/^(\w\(\w+\):\s*)?\w+s/),r=VQ(t,/^(\w\(\w+\):\s*)?[A-Z]/),o=VQ(t,/^\w\(\w+\):/);return{useThirdPerson:e,useUpperCase:r,useComponent:o}}function MBe(t){return t.useComponent?"chore(yarn): ":""}var EDt=new Map([[0,"create"],[1,"delete"],[2,"add"],[3,"remove"],[4,"update"]]);function M5(t,e){let r=MBe(t),o=[],a=e.slice().sort((n,u)=>n[0]-u[0]);for(;a.length>0;){let[n,u]=a.shift(),A=EDt.get(n);t.useUpperCase&&o.length===0&&(A=`${A[0].toUpperCase()}${A.slice(1)}`),t.useThirdPerson&&(A+="s");let p=[u];for(;a.length>0&&a[0][0]===n;){let[,E]=a.shift();p.push(E)}p.sort();let h=p.shift();p.length===1?h+=" (and one other)":p.length>1&&(h+=` (and ${p.length} others)`),o.push(`${A} ${h}`)}return`${r}${o.join(", ")}`}var CDt="Commit generated via `yarn stage`",wDt=11;async function OBe(t){let{code:e,stdout:r}=await Ur.execvp("git",["log","-1","--pretty=format:%H"],{cwd:t});return e===0?r.trim():null}async function IDt(t,e){let r=[],o=e.filter(h=>K.basename(h.path)==="package.json");for(let{action:h,path:E}of o){let I=K.relative(t,E);if(h===4){let v=await OBe(t),{stdout:x}=await Ur.execvp("git",["show",`${v}:${I}`],{cwd:t,strict:!0}),C=await Ut.fromText(x),R=await Ut.fromFile(E),L=new Map([...R.dependencies,...R.devDependencies]),U=new Map([...C.dependencies,...C.devDependencies]);for(let[z,te]of U){let ae=G.stringifyIdent(te),le=L.get(z);le?le.range!==te.range&&r.push([4,`${ae} to ${le.range}`]):r.push([3,ae])}for(let[z,te]of L)U.has(z)||r.push([2,G.stringifyIdent(te)])}else if(h===0){let v=await Ut.fromFile(E);v.name?r.push([0,G.stringifyIdent(v.name)]):r.push([0,"a package"])}else if(h===1){let v=await OBe(t),{stdout:x}=await Ur.execvp("git",["show",`${v}:${I}`],{cwd:t,strict:!0}),C=await Ut.fromText(x);C.name?r.push([1,G.stringifyIdent(C.name)]):r.push([1,"a package"])}else throw new Error("Assertion failed: Unsupported action type")}let{code:a,stdout:n}=await Ur.execvp("git",["log",`-${wDt}`,"--pretty=format:%s"],{cwd:t}),u=a===0?n.split(/\n/g).filter(h=>h!==""):[],A=L5(u);return M5(A,r)}var BDt={0:[" A ","?? "],4:[" M "],1:[" D "]},vDt={0:["A "],4:["M "],1:["D "]},UBe={async findRoot(t){return await R5(t,{marker:".git"})},async filterChanges(t,e,r,o){let{stdout:a}=await Ur.execvp("git",["status","-s"],{cwd:t,strict:!0}),n=a.toString().split(/\n/g),u=o?.staged?vDt:BDt;return[].concat(...n.map(p=>{if(p==="")return[];let h=p.slice(0,3),E=K.resolve(t,p.slice(3));if(!o?.staged&&h==="?? "&&p.endsWith("/"))return N5(E).map(I=>({action:0,path:I}));{let v=[0,4,1].find(x=>u[x].includes(h));return v!==void 0?[{action:v,path:E}]:[]}})).filter(p=>T5(p.path,{roots:e,names:r}))},async genCommitMessage(t,e){return await IDt(t,e)},async makeStage(t,e){let r=e.map(o=>ue.fromPortablePath(o.path));await Ur.execvp("git",["add","--",...r],{cwd:t,strict:!0})},async makeCommit(t,e,r){let o=e.map(a=>ue.fromPortablePath(a.path));await Ur.execvp("git",["add","-N","--",...o],{cwd:t,strict:!0}),await Ur.execvp("git",["commit","-m",`${r} - -${CDt} -`,"--",...o],{cwd:t,strict:!0})},async makeReset(t,e){let r=e.map(o=>ue.fromPortablePath(o.path));await Ur.execvp("git",["reset","HEAD","--",...r],{cwd:t,strict:!0})}};var DDt=[UBe],GC=class extends ut{constructor(){super(...arguments);this.commit=ge.Boolean("-c,--commit",!1,{description:"Commit the staged files"});this.reset=ge.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"});this.update=ge.Boolean("-u,--update",!1,{hidden:!0})}static{this.paths=[["stage"]]}static{this.usage=it.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await kt.find(r,this.context.cwd),{driver:a,root:n}=await PDt(o.cwd),u=[r.get("cacheFolder"),r.get("globalFolder"),r.get("virtualFolder"),r.get("yarnPath")];await r.triggerHook(I=>I.populateYarnPaths,o,I=>{u.push(I)});let A=new Set;for(let I of u)for(let v of SDt(n,I))A.add(v);let p=new Set([r.get("rcFilename"),dr.lockfile,dr.manifest]),h=await a.filterChanges(n,A,p),E=await a.genCommitMessage(n,h);if(this.dryRun)if(this.commit)this.context.stdout.write(`${E} -`);else for(let I of h)this.context.stdout.write(`${ue.fromPortablePath(I.path)} -`);else if(this.reset){let I=await a.filterChanges(n,A,p,{staged:!0});I.length===0?this.context.stdout.write("No staged changes found!"):await a.makeReset(n,I)}else h.length===0?this.context.stdout.write("No changes found!"):this.commit?await a.makeCommit(n,h,E):(await a.makeStage(n,h),this.context.stdout.write(E))}};async function PDt(t){let e=null,r=null;for(let o of DDt)if((r=await o.findRoot(t))!==null){e=o;break}if(e===null||r===null)throw new st("No stage driver has been found for your current project");return{driver:e,root:r}}function SDt(t,e){let r=[];if(e===null)return r;for(;;){(e===t||e.startsWith(`${t}/`))&&r.push(e);let o;try{o=oe.statSync(e)}catch{break}if(o.isSymbolicLink())e=K.resolve(K.dirname(e),oe.readlinkSync(e));else break}return r}var bDt={commands:[GC]},xDt=bDt;var U5={};Vt(U5,{default:()=>MDt});Ge();Ge();Pt();var qBe=Ze(Jn());Ge();var _Be=Ze(YH()),kDt="e8e1bd300d860104bb8c58453ffa1eb4",QDt="OFCNCOG2CU",HBe=async(t,e)=>{let r=G.stringifyIdent(t),a=FDt(e).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}},FDt=t=>(0,_Be.default)(QDt,kDt,{requester:{async send(r){try{let o=await sn.request(r.url,r.data||null,{configuration:t,headers:r.headers});return{content:o.body,isTimedOut:!1,status:o.statusCode}}catch(o){return{content:o.response.body,isTimedOut:!1,status:o.response.statusCode}}}}});var jBe=t=>t.scope?`${t.scope}__${t.name}`:`${t.name}`,RDt=async(t,e,r,o)=>{if(r.scope==="types")return;let{project:a}=t,{configuration:n}=a;if(!(n.get("tsEnableAutoTypes")??(oe.existsSync(K.join(t.cwd,"tsconfig.json"))||oe.existsSync(K.join(a.cwd,"tsconfig.json")))))return;let A=n.makeResolver(),p={project:a,resolver:A,report:new ki};if(!await HBe(r,n))return;let E=jBe(r),I=G.parseRange(r.range).selector;if(!Lr.validRange(I)){let L=n.normalizeDependency(r),U=await A.getCandidates(L,{},p);I=G.parseRange(U[0].reference).selector}let v=qBe.default.coerce(I);if(v===null)return;let x=`${Zc.Modifier.CARET}${v.major}`,C=G.makeDescriptor(G.makeIdent("types",E),x),R=He.mapAndFind(a.workspaces,L=>{let U=L.manifest.dependencies.get(r.identHash)?.descriptorHash,z=L.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(U!==r.descriptorHash&&z!==r.descriptorHash)return He.mapAndFind.skip;let te=[];for(let ae of Ut.allDependencies){let le=L.manifest[ae].get(C.identHash);typeof le>"u"||te.push([ae,le])}return te.length===0?He.mapAndFind.skip:te});if(typeof R<"u")for(let[L,U]of R)t.manifest[L].set(U.identHash,U);else{try{let L=n.normalizeDependency(C);if((await A.getCandidates(L,{},p)).length===0)return}catch{return}t.manifest[Zc.Target.DEVELOPMENT].set(C.identHash,C)}},TDt=async(t,e,r)=>{if(r.scope==="types")return;let{project:o}=t,{configuration:a}=o;if(!(a.get("tsEnableAutoTypes")??(oe.existsSync(K.join(t.cwd,"tsconfig.json"))||oe.existsSync(K.join(o.cwd,"tsconfig.json")))))return;let u=jBe(r),A=G.makeIdent("types",u);for(let p of Ut.allDependencies)typeof t.manifest[p].get(A.identHash)>"u"||t.manifest[p].delete(A.identHash)},NDt=(t,e)=>{e.publishConfig&&e.publishConfig.typings&&(e.typings=e.publishConfig.typings),e.publishConfig&&e.publishConfig.types&&(e.types=e.publishConfig.types)},LDt={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:"BOOLEAN",isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:RDt,afterWorkspaceDependencyRemoval:TDt,beforeWorkspacePacking:NDt}},MDt=LDt;var G5={};Vt(G5,{VersionApplyCommand:()=>zC,VersionCheckCommand:()=>JC,VersionCommand:()=>XC,default:()=>rPt,versionUtils:()=>VC});Ge();Ge();qt();var VC={};Vt(VC,{Decision:()=>WC,applyPrerelease:()=>zBe,applyReleases:()=>j5,applyStrategy:()=>XQ,clearVersionFiles:()=>_5,getUndecidedDependentWorkspaces:()=>Pv,getUndecidedWorkspaces:()=>JQ,openVersionFile:()=>KC,requireMoreDecisions:()=>$Dt,resolveVersionFiles:()=>Dv,suggestStrategy:()=>q5,updateVersionFiles:()=>H5,validateReleaseDecision:()=>YC});Ge();Pt();Nl();qt();var VBe=Ze(KBe()),BA=Ze(Jn()),ZDt=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,WC=(u=>(u.UNDECIDED="undecided",u.DECLINE="decline",u.MAJOR="major",u.MINOR="minor",u.PATCH="patch",u.PRERELEASE="prerelease",u))(WC||{});function YC(t){let e=BA.default.valid(t);return e||He.validateEnum((0,VBe.default)(WC,"UNDECIDED"),t)}async function Dv(t,{prerelease:e=null}={}){let r=new Map,o=t.configuration.get("deferredVersionFolder");if(!oe.existsSync(o))return r;let a=await oe.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=K.join(o,n),A=await oe.readFilePromise(u,"utf8"),p=Ki(A);for(let[h,E]of Object.entries(p.releases||{})){if(E==="decline")continue;let I=G.parseIdent(h),v=t.tryWorkspaceByIdent(I);if(v===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${K.basename(u)} references ${h})`);if(v.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${G.prettyLocator(t.configuration,v.anchoredLocator)})`);let x=v.manifest.raw.stableVersion??v.manifest.version,C=r.get(v),R=XQ(x,YC(E));if(R===null)throw new Error(`Assertion failed: Expected ${x} to support being bumped via strategy ${E}`);let L=typeof C<"u"?BA.default.gt(R,C)?R:C:R;r.set(v,L)}}return e&&(r=new Map([...r].map(([n,u])=>[n,zBe(u,{current:n.manifest.version,prerelease:e})]))),r}async function _5(t){let e=t.configuration.get("deferredVersionFolder");oe.existsSync(e)&&await oe.removePromise(e)}async function H5(t,e){let r=new Set(e),o=t.configuration.get("deferredVersionFolder");if(!oe.existsSync(o))return;let a=await oe.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=K.join(o,n),A=await oe.readFilePromise(u,"utf8"),p=Ki(A),h=p?.releases;if(h){for(let E of Object.keys(h)){let I=G.parseIdent(E),v=t.tryWorkspaceByIdent(I);(v===null||r.has(v))&&delete p.releases[E]}Object.keys(p.releases).length>0?await oe.changeFilePromise(u,Da(new Da.PreserveOrdering(p))):await oe.unlinkPromise(u)}}}async function KC(t,{allowEmpty:e=!1}={}){let r=t.configuration;if(r.projectCwd===null)throw new st("This command can only be run from within a Yarn project");let o=await ia.fetchRoot(r.projectCwd),a=o!==null?await ia.fetchBase(o,{baseRefs:r.get("changesetBaseRefs")}):null,n=o!==null?await ia.fetchChangedFiles(o,{base:a.hash,project:t}):[],u=r.get("deferredVersionFolder"),A=n.filter(x=>K.contains(u,x)!==null);if(A.length>1)throw new st(`Your current branch contains multiple versioning files; this isn't supported: -- ${A.map(x=>ue.fromPortablePath(x)).join(` -- `)}`);let p=new Set(He.mapAndFilter(n,x=>{let C=t.tryWorkspaceByFilePath(x);return C===null?He.mapAndFilter.skip:C}));if(A.length===0&&p.size===0&&!e)return null;let h=A.length===1?A[0]:K.join(u,`${wn.makeHash(Math.random().toString()).slice(0,8)}.yml`),E=oe.existsSync(h)?await oe.readFilePromise(h,"utf8"):"{}",I=Ki(E),v=new Map;for(let x of I.declined||[]){let C=G.parseIdent(x),R=t.getWorkspaceByIdent(C);v.set(R,"decline")}for(let[x,C]of Object.entries(I.releases||{})){let R=G.parseIdent(x),L=t.getWorkspaceByIdent(R);v.set(L,YC(C))}return{project:t,root:o,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(n),changedWorkspaces:p,releaseRoots:new Set([...p].filter(x=>x.manifest.version!==null)),releases:v,async saveAll(){let x={},C=[],R=[];for(let L of t.workspaces){if(L.manifest.version===null)continue;let U=G.stringifyIdent(L.anchoredLocator),z=v.get(L);z==="decline"?C.push(U):typeof z<"u"?x[U]=YC(z):p.has(L)&&R.push(U)}await oe.mkdirPromise(K.dirname(h),{recursive:!0}),await oe.changeFilePromise(h,Da(new Da.PreserveOrdering({releases:Object.keys(x).length>0?x:void 0,declined:C.length>0?C:void 0,undecided:R.length>0?R:void 0})))}}}function $Dt(t){return JQ(t).size>0||Pv(t).length>0}function JQ(t){let e=new Set;for(let r of t.changedWorkspaces)r.manifest.version!==null&&(t.releases.has(r)||e.add(r));return e}function Pv(t,{include:e=new Set}={}){let r=[],o=new Map(He.mapAndFilter([...t.releases],([n,u])=>u==="decline"?He.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n])),a=new Map(He.mapAndFilter([...t.releases],([n,u])=>u!=="decline"?He.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n]));for(let n of t.project.workspaces)if(!(!e.has(n)&&(a.has(n.anchoredLocator.locatorHash)||o.has(n.anchoredLocator.locatorHash)))&&n.manifest.version!==null)for(let u of Ut.hardDependencies)for(let A of n.manifest.getForScope(u).values()){let p=t.project.tryWorkspaceByDescriptor(A);p!==null&&o.has(p.anchoredLocator.locatorHash)&&r.push([n,p])}return r}function q5(t,e){let r=BA.default.clean(e);for(let o of Object.values(WC))if(o!=="undecided"&&o!=="decline"&&BA.default.inc(t,o)===r)return o;return null}function XQ(t,e){if(BA.default.valid(e))return e;if(t===null)throw new st(`Cannot apply the release strategy "${e}" unless the workspace already has a valid version`);if(!BA.default.valid(t))throw new st(`Cannot apply the release strategy "${e}" on a non-semver version (${t})`);let r=BA.default.inc(t,e);if(r===null)throw new st(`Cannot apply the release strategy "${e}" on the specified version (${t})`);return r}function j5(t,e,{report:r}){let o=new Map;for(let a of t.workspaces)for(let n of Ut.allDependencies)for(let u of a.manifest[n].values()){let A=t.tryWorkspaceByDescriptor(u);if(A===null||!e.has(A))continue;He.getArrayWithDefault(o,A).push([a,n,u.identHash])}for(let[a,n]of e){let u=a.manifest.version;a.manifest.version=n,BA.default.prerelease(n)===null?delete a.manifest.raw.stableVersion:a.manifest.raw.stableVersion||(a.manifest.raw.stableVersion=u);let A=a.manifest.name!==null?G.stringifyIdent(a.manifest.name):null;r.reportInfo(0,`${G.prettyLocator(t.configuration,a.anchoredLocator)}: Bumped to ${n}`),r.reportJson({cwd:ue.fromPortablePath(a.cwd),ident:A,oldVersion:u,newVersion:n});let p=o.get(a);if(!(typeof p>"u"))for(let[h,E,I]of p){let v=h.manifest[E].get(I);if(typeof v>"u")throw new Error("Assertion failed: The dependency should have existed");let x=v.range,C=!1;if(x.startsWith(ei.protocol)&&(x=x.slice(ei.protocol.length),C=!0,x===a.relativeCwd))continue;let R=x.match(ZDt);if(!R){r.reportWarning(0,`Couldn't auto-upgrade range ${x} (in ${G.prettyLocator(t.configuration,h.anchoredLocator)})`);continue}let L=`${R[1]}${n}`;C&&(L=`${ei.protocol}${L}`);let U=G.makeDescriptor(v,L);h.manifest[E].set(I,U)}}}var ePt=new Map([["%n",{extract:t=>t.length>=1?[t[0],t.slice(1)]:null,generate:(t=0)=>`${t+1}`}]]);function zBe(t,{current:e,prerelease:r}){let o=new BA.default.SemVer(e),a=o.prerelease.slice(),n=[];o.prerelease=[],o.format()!==t&&(a.length=0);let u=!0,A=r.split(/\./g);for(let p of A){let h=ePt.get(p);if(typeof h>"u")n.push(p),a[0]===p?a.shift():u=!1;else{let E=u?h.extract(a):null;E!==null&&typeof E[0]=="number"?(n.push(h.generate(E[0])),a=E[1]):(n.push(h.generate()),u=!1)}}return o.prerelease&&(o.prerelease=[]),`${t}-${n.join(".")}`}var zC=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"});this.dryRun=ge.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"});this.prerelease=ge.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0});this.recursive=ge.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["version","apply"]]}static{this.usage=it.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` - This command will apply the deferred version changes and remove their definitions from the repository. - - Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%n\`) will be used on all new versions and the version definitions will be kept as-is. - - By default only the current workspace will be bumped, but you can configure this behavior by using one of: - - - \`--recursive\` to also apply the version bump on its dependencies - - \`--all\` to apply the version bump on all packages in the repository - - Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump. - `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);if(!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=await Rt.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,h=await Dv(o,{prerelease:p}),E=new Map;if(this.all)E=h;else{let I=this.recursive?a.getRecursiveWorkspaceDependencies():[a];for(let v of I){let x=h.get(v);typeof x<"u"&&E.set(v,x)}}if(E.size===0){let I=h.size>0?" Did you want to add --all?":"";A.reportWarning(0,`The current workspace doesn't seem to require a version bump.${I}`);return}j5(o,E,{report:A}),this.dryRun||(p||(this.all?await _5(o):await H5(o,[...E.keys()])),A.reportSeparator())});return this.dryRun||u.hasErrors()?u.exitCode():await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};Ge();Pt();qt();var ZQ=Ze(Jn());var JC=class extends ut{constructor(){super(...arguments);this.interactive=ge.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}static{this.paths=[["version","check"]]}static{this.usage=it.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){GE(this.context);let{Gem:r}=await Promise.resolve().then(()=>(Zk(),Eq)),{ScrollableItems:o}=await Promise.resolve().then(()=>(rQ(),tQ)),{FocusRequest:a}=await Promise.resolve().then(()=>(wq(),$we)),{useListInput:n}=await Promise.resolve().then(()=>(eQ(),eIe)),{renderForm:u}=await Promise.resolve().then(()=>(oQ(),sQ)),{Box:A,Text:p}=await Promise.resolve().then(()=>Ze(ic())),{default:h,useCallback:E,useState:I}=await Promise.resolve().then(()=>Ze(an())),v=await Ke.find(this.context.cwd,this.context.plugins),{project:x,workspace:C}=await kt.find(v,this.context.cwd);if(!C)throw new sr(x.cwd,this.context.cwd);await x.restoreInstallState();let R=await KC(x);if(R===null||R.releaseRoots.size===0)return 0;if(R.root===null)throw new st("This command can only be run on Git repositories");let L=()=>h.createElement(A,{flexDirection:"row",paddingBottom:1},h.createElement(A,{flexDirection:"column",width:60},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<up>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<down>")," to select workspaces.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<left>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<right>")," to select release strategies."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<enter>")," to save.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),U=({workspace:Ce,active:de,decision:Be,setDecision:Ee})=>{let g=Ce.manifest.raw.stableVersion??Ce.manifest.version;if(g===null)throw new Error(`Assertion failed: The version should have been set (${G.prettyLocator(v,Ce.anchoredLocator)})`);if(ZQ.default.prerelease(g)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${g})`);let me=["undecided","decline","patch","minor","major"];n(Be,me,{active:de,minus:"left",plus:"right",set:Ee});let we=Be==="undecided"?h.createElement(p,{color:"yellow"},g):Be==="decline"?h.createElement(p,{color:"green"},g):h.createElement(p,null,h.createElement(p,{color:"magenta"},g)," \u2192 ",h.createElement(p,{color:"green"},ZQ.default.valid(Be)?Be:ZQ.default.inc(g,Be)));return h.createElement(A,{flexDirection:"column"},h.createElement(A,null,h.createElement(p,null,G.prettyLocator(v,Ce.anchoredLocator)," - ",we)),h.createElement(A,null,me.map(Ae=>h.createElement(A,{key:Ae,paddingLeft:2},h.createElement(p,null,h.createElement(r,{active:Ae===Be})," ",Ae)))))},z=Ce=>{let de=new Set(R.releaseRoots),Be=new Map([...Ce].filter(([Ee])=>de.has(Ee)));for(;;){let Ee=Pv({project:R.project,releases:Be}),g=!1;if(Ee.length>0){for(let[me]of Ee)if(!de.has(me)){de.add(me),g=!0;let we=Ce.get(me);typeof we<"u"&&Be.set(me,we)}}if(!g)break}return{relevantWorkspaces:de,relevantReleases:Be}},te=()=>{let[Ce,de]=I(()=>new Map(R.releases)),Be=E((Ee,g)=>{let me=new Map(Ce);g!=="undecided"?me.set(Ee,g):me.delete(Ee);let{relevantReleases:we}=z(me);de(we)},[Ce,de]);return[Ce,Be]},ae=({workspaces:Ce,releases:de})=>{let Be=[];Be.push(`${Ce.size} total`);let Ee=0,g=0;for(let me of Ce){let we=de.get(me);typeof we>"u"?g+=1:we!=="decline"&&(Ee+=1)}return Be.push(`${Ee} release${Ee===1?"":"s"}`),Be.push(`${g} remaining`),h.createElement(p,{color:"yellow"},Be.join(", "))},ce=await u(({useSubmit:Ce})=>{let[de,Be]=te();Ce(de);let{relevantWorkspaces:Ee}=z(de),g=new Set([...Ee].filter(ne=>!R.releaseRoots.has(ne))),[me,we]=I(0),Ae=E(ne=>{switch(ne){case a.BEFORE:we(me-1);break;case a.AFTER:we(me+1);break}},[me,we]);return h.createElement(A,{flexDirection:"column"},h.createElement(L,null),h.createElement(A,null,h.createElement(p,{wrap:"wrap"},"The following files have been modified in your local checkout.")),h.createElement(A,{flexDirection:"column",marginTop:1,paddingLeft:2},[...R.changedFiles].map(ne=>h.createElement(A,{key:ne},h.createElement(p,null,h.createElement(p,{color:"grey"},ue.fromPortablePath(R.root)),ue.sep,ue.relative(ue.fromPortablePath(R.root),ue.fromPortablePath(ne)))))),R.releaseRoots.size>0&&h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),g.size>3?h.createElement(A,{marginTop:1},h.createElement(ae,{workspaces:R.releaseRoots,releases:de})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:me%2===0,radius:1,size:2,onFocusRequest:Ae},[...R.releaseRoots].map(ne=>h.createElement(U,{key:ne.cwd,workspace:ne,decision:de.get(ne)||"undecided",setDecision:Z=>Be(ne,Z)}))))),g.size>0?h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),h.createElement(A,null,h.createElement(p,null,"(Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<tab>")," to move the focus between the workspace groups.)")),g.size>5?h.createElement(A,{marginTop:1},h.createElement(ae,{workspaces:g,releases:de})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:me%2===1,radius:2,size:2,onFocusRequest:Ae},[...g].map(ne=>h.createElement(U,{key:ne.cwd,workspace:ne,decision:de.get(ne)||"undecided",setDecision:Z=>Be(ne,Z)}))))):null)},{versionFile:R},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ce>"u")return 1;R.releases.clear();for(let[Ce,de]of ce)R.releases.set(Ce,de);await R.saveAll()}async executeStandard(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);return await o.restoreInstallState(),(await Rt.start({configuration:r,stdout:this.context.stdout},async u=>{let A=await KC(o);if(A===null||A.releaseRoots.size===0)return;if(A.root===null)throw new st("This command can only be run on Git repositories");if(u.reportInfo(0,`Your PR was started right after ${pe.pretty(r,A.baseHash.slice(0,7),"yellow")} ${pe.pretty(r,A.baseTitle,"magenta")}`),A.changedFiles.size>0){u.reportInfo(0,"You have changed the following files since then:"),u.reportSeparator();for(let v of A.changedFiles)u.reportInfo(null,`${pe.pretty(r,ue.fromPortablePath(A.root),"gray")}${ue.sep}${ue.relative(ue.fromPortablePath(A.root),ue.fromPortablePath(v))}`)}let p=!1,h=!1,E=JQ(A);if(E.size>0){p||u.reportSeparator();for(let v of E)u.reportError(0,`${G.prettyLocator(r,v.anchoredLocator)} has been modified but doesn't have a release strategy attached`);p=!0}let I=Pv(A);for(let[v,x]of I)h||u.reportSeparator(),u.reportError(0,`${G.prettyLocator(r,v.anchoredLocator)} doesn't have a release strategy attached, but depends on ${G.prettyWorkspace(r,x)} which is planned for release.`),h=!0;(p||h)&&(u.reportSeparator(),u.reportInfo(0,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),u.reportInfo(0,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};Ge();qt();var $Q=Ze(Jn());var XC=class extends ut{constructor(){super(...arguments);this.deferred=ge.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"});this.immediate=ge.Boolean("-i,--immediate",{description:"Bump the version immediately"});this.strategy=ge.String()}static{this.paths=[["version"]]}static{this.usage=it.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!a)throw new sr(o.cwd,this.context.cwd);let n=r.get("preferDeferredVersions");this.deferred&&(n=!0),this.immediate&&(n=!1);let u=$Q.default.valid(this.strategy),A=this.strategy==="decline",p;if(u)if(a.manifest.version!==null){let E=q5(a.manifest.version,this.strategy);E!==null?p=E:p=this.strategy}else p=this.strategy;else{let E=a.manifest.version;if(!A){if(E===null)throw new st("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof E!="string"||!$Q.default.valid(E))throw new st(`Can't bump the version (${E}) if it's not valid semver`)}p=YC(this.strategy)}if(!n){let I=(await Dv(o)).get(a);if(typeof I<"u"&&p!=="decline"){let v=XQ(a.manifest.version,p);if($Q.default.lt(v,I))throw new st(`Can't bump the version to one that would be lower than the current deferred one (${I})`)}}let h=await KC(o,{allowEmpty:!0});return h.releases.set(a,p),await h.saveAll(),n?0:await this.cli.run(["version","apply"])}};var tPt={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:"ABSOLUTE_PATH",default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:"BOOLEAN",default:!1}},commands:[zC,JC,XC]},rPt=tPt;var Y5={};Vt(Y5,{WorkspacesFocusCommand:()=>ZC,WorkspacesForeachCommand:()=>ew,default:()=>sPt});Ge();Ge();qt();var ZC=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=ge.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=ge.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=ge.Rest()}static{this.paths=[["workspaces","focus"]]}static{this.usage=it.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd),n=await Gr.find(r);await o.restoreInstallState({restoreResolutions:!1});let u;if(this.all)u=new Set(o.workspaces);else if(this.workspaces.length===0){if(!a)throw new sr(o.cwd,this.context.cwd);u=new Set([a])}else u=new Set(this.workspaces.map(A=>o.getWorkspaceByIdent(G.parseIdent(A))));for(let A of u)for(let p of this.production?["dependencies"]:Ut.hardDependencies)for(let h of A.manifest.getForScope(p).values()){let E=o.tryWorkspaceByDescriptor(h);E!==null&&u.add(E)}for(let A of o.workspaces)u.has(A)?this.production&&A.manifest.devDependencies.clear():(A.manifest.installConfig=A.manifest.installConfig||{},A.manifest.installConfig.selfReferences=!1,A.manifest.dependencies.clear(),A.manifest.devDependencies.clear(),A.manifest.peerDependencies.clear(),A.manifest.scripts.clear());return await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n,persistProject:!1})}};Ge();Ge();Ge();qt();var $C=Ze($o()),XBe=Ze(eg());el();var ew=class extends ut{constructor(){super(...arguments);this.from=ge.Array("--from",{description:"An array of glob pattern idents or paths from which to base any recursion"});this.all=ge.Boolean("-A,--all",{description:"Run the command on all workspaces of a project"});this.recursive=ge.Boolean("-R,--recursive",{description:"Run the command on the current workspace and all of its recursive dependencies"});this.worktree=ge.Boolean("-W,--worktree",{description:"Run the command on all workspaces of the current worktree"});this.verbose=ge.Counter("-v,--verbose",{description:"Increase level of logging verbosity up to 2 times"});this.parallel=ge.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=ge.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=ge.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:IT([Js(["unlimited"]),jw(wT(),[vT(),BT(1)])])});this.topological=ge.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=ge.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=ge.Array("--include",[],{description:"An array of glob pattern idents or paths; only matching workspaces will be traversed"});this.exclude=ge.Array("--exclude",[],{description:"An array of glob pattern idents or paths; matching workspaces won't be traversed"});this.publicOnly=ge.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=ge.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.dryRun=ge.Boolean("-n,--dry-run",{description:"Print the commands that would be run, without actually running them"});this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[["workspaces","foreach"]]}static{this.usage=it.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `-W,--worktree` is set, Yarn will find workspaces to run the command on by looking at the current worktree.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `--dry-run` is set, Yarn will explain what it would do without actually doing anything.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n The `-v,--verbose` flag can be passed up to twice: once to prefix output lines with the originating workspace's name, and again to include start/finish/timing log lines. Maximum verbosity is enabled by default in terminal environments.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish all packages","yarn workspaces foreach -A npm publish --tolerate-republish"],["Run the build script on all descendant packages","yarn workspaces foreach -A run build"],["Run the build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -Apt run build"],["Run the build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build"]]})}static{this.schema=[Yw("all",Yu.Forbids,["from","recursive","since","worktree"],{missingIf:"undefined"}),DT(["all","recursive","since","worktree"],{missingIf:"undefined"})]}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await kt.find(r,this.context.cwd);if(!this.all&&!a)throw new sr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=this.cli.process([this.commandName,...this.args]),u=n.path.length===1&&n.path[0]==="run"&&typeof n.scriptName<"u"?n.scriptName:null;if(n.path.length===0)throw new st("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let A=Ee=>{this.dryRun&&this.context.stdout.write(`${Ee} -`)},p=()=>{let Ee=this.from.map(g=>$C.default.matcher(g));return o.workspaces.filter(g=>{let me=G.stringifyIdent(g.anchoredLocator),we=g.relativeCwd;return Ee.some(Ae=>Ae(me)||Ae(we))})},h=[];if(this.since?(A("Option --since is set; selecting the changed workspaces as root for workspace selection"),h=Array.from(await ia.fetchChangedWorkspaces({ref:this.since,project:o}))):this.from?(A("Option --from is set; selecting the specified workspaces"),h=[...p()]):this.worktree?(A("Option --worktree is set; selecting the current workspace"),h=[a]):this.recursive?(A("Option --recursive is set; selecting the current workspace"),h=[a]):this.all&&(A("Option --all is set; selecting all workspaces"),h=[...o.workspaces]),this.dryRun&&!this.all){for(let Ee of h)A(` -- ${Ee.relativeCwd} - ${G.prettyLocator(r,Ee.anchoredLocator)}`);h.length>0&&A("")}let E;if(this.recursive?this.since?(A("Option --recursive --since is set; recursively selecting all dependent workspaces"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceDependents()]).flat())):(A("Option --recursive is set; recursively selecting all transitive dependencies"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceDependencies()]).flat())):this.worktree?(A("Option --worktree is set; recursively selecting all nested workspaces"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceChildren()]).flat())):E=null,E!==null&&(h=[...new Set([...h,...E])],this.dryRun))for(let Ee of E)A(` -- ${Ee.relativeCwd} - ${G.prettyLocator(r,Ee.anchoredLocator)}`);let I=[],v=!1;if(u?.includes(":")){for(let Ee of o.workspaces)if(Ee.manifest.scripts.has(u)&&(v=!v,v===!1))break}for(let Ee of h){if(u&&!Ee.manifest.scripts.has(u)&&!v&&!(await An.getWorkspaceAccessibleBinaries(Ee)).has(u)){A(`Excluding ${Ee.relativeCwd} because it doesn't have a "${u}" script`);continue}if(!(u===r.env.npm_lifecycle_event&&Ee.cwd===a.cwd)){if(this.include.length>0&&!$C.default.isMatch(G.stringifyIdent(Ee.anchoredLocator),this.include)&&!$C.default.isMatch(Ee.relativeCwd,this.include)){A(`Excluding ${Ee.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&($C.default.isMatch(G.stringifyIdent(Ee.anchoredLocator),this.exclude)||$C.default.isMatch(Ee.relativeCwd,this.exclude))){A(`Excluding ${Ee.relativeCwd} because it matches the --include filter`);continue}if(this.publicOnly&&Ee.manifest.private===!0){A(`Excluding ${Ee.relativeCwd} because it's a private workspace and --no-private was set`);continue}I.push(Ee)}}if(this.dryRun)return 0;let x=this.verbose??(this.context.stdout.isTTY?1/0:0),C=x>0,R=x>1,L=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(Xi.availableParallelism()/2):1,U=L===1?!1:this.parallel,z=U?this.interlaced:!0,te=(0,XBe.default)(L),ae=new Map,le=new Set,ce=0,Ce=null,de=!1,Be=await Rt.start({configuration:r,stdout:this.context.stdout,includePrefix:!1},async Ee=>{let g=async(me,{commandIndex:we})=>{if(de)return-1;!U&&R&&we>1&&Ee.reportSeparator();let Ae=nPt(me,{configuration:r,label:C,commandIndex:we}),[ne,Z]=JBe(Ee,{prefix:Ae,interlaced:z}),[xe,Ne]=JBe(Ee,{prefix:Ae,interlaced:z});try{R&&Ee.reportInfo(null,`${Ae?`${Ae} `:""}Process started`);let ht=Date.now(),H=await this.cli.run([this.commandName,...this.args],{cwd:me.cwd,stdout:ne,stderr:xe})||0;ne.end(),xe.end(),await Z,await Ne;let rt=Date.now();if(R){let Te=r.get("enableTimers")?`, completed in ${pe.pretty(r,rt-ht,pe.Type.DURATION)}`:"";Ee.reportInfo(null,`${Ae?`${Ae} `:""}Process exited (exit code ${H})${Te}`)}return H===130&&(de=!0,Ce=H),H}catch(ht){throw ne.end(),xe.end(),await Z,await Ne,ht}};for(let me of I)ae.set(me.anchoredLocator.locatorHash,me);for(;ae.size>0&&!Ee.hasErrors();){let me=[];for(let[ne,Z]of ae){if(le.has(Z.anchoredDescriptor.descriptorHash))continue;let xe=!0;if(this.topological||this.topologicalDev){let Ne=this.topologicalDev?new Map([...Z.manifest.dependencies,...Z.manifest.devDependencies]):Z.manifest.dependencies;for(let ht of Ne.values()){let H=o.tryWorkspaceByDescriptor(ht);if(xe=H===null||!ae.has(H.anchoredLocator.locatorHash),!xe)break}}if(xe&&(le.add(Z.anchoredDescriptor.descriptorHash),me.push(te(async()=>{let Ne=await g(Z,{commandIndex:++ce});return ae.delete(ne),le.delete(Z.anchoredDescriptor.descriptorHash),Ne})),!U))break}if(me.length===0){let ne=Array.from(ae.values()).map(Z=>G.prettyLocator(r,Z.anchoredLocator)).join(", ");Ee.reportError(3,`Dependency cycle detected (${ne})`);return}let Ae=(await Promise.all(me)).find(ne=>ne!==0);Ce===null&&(Ce=typeof Ae<"u"?1:Ce),(this.topological||this.topologicalDev)&&typeof Ae<"u"&&Ee.reportError(0,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return Ce!==null?Ce:Be.exitCode()}};function JBe(t,{prefix:e,interlaced:r}){let o=t.createStreamReporter(e),a=new He.DefaultStream;a.pipe(o,{end:!1}),a.on("finish",()=>{o.end()});let n=new Promise(A=>{o.on("finish",()=>{A(a.active)})});if(r)return[a,n];let u=new He.BufferStream;return u.pipe(a,{end:!1}),u.on("finish",()=>{a.end()}),[u,n]}function nPt(t,{configuration:e,commandIndex:r,label:o}){if(!o)return null;let n=`[${G.stringifyIdent(t.anchoredLocator)}]:`,u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[r%u.length];return pe.pretty(e,n,A)}var iPt={commands:[ZC,ew]},sPt=iPt;var Hy=()=>({modules:new Map([["@yarnpkg/cli",W1],["@yarnpkg/core",Y1],["@yarnpkg/fslib",kw],["@yarnpkg/libzip",p1],["@yarnpkg/parsers",Ow],["@yarnpkg/shell",E1],["clipanion",Jw],["semver",oPt],["typanion",Vo],["@yarnpkg/plugin-essentials",K8],["@yarnpkg/plugin-compat",Z8],["@yarnpkg/plugin-constraints",dH],["@yarnpkg/plugin-dlx",mH],["@yarnpkg/plugin-exec",CH],["@yarnpkg/plugin-file",IH],["@yarnpkg/plugin-git",W8],["@yarnpkg/plugin-github",DH],["@yarnpkg/plugin-http",PH],["@yarnpkg/plugin-init",SH],["@yarnpkg/plugin-interactive-tools",kq],["@yarnpkg/plugin-link",Qq],["@yarnpkg/plugin-nm",hj],["@yarnpkg/plugin-npm",f5],["@yarnpkg/plugin-npm-cli",w5],["@yarnpkg/plugin-pack",a5],["@yarnpkg/plugin-patch",b5],["@yarnpkg/plugin-pnp",rj],["@yarnpkg/plugin-pnpm",Q5],["@yarnpkg/plugin-stage",O5],["@yarnpkg/plugin-typescript",U5],["@yarnpkg/plugin-version",G5],["@yarnpkg/plugin-workspace-tools",Y5]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"])});function eve({cwd:t,pluginConfiguration:e}){let r=new Jo({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:nn??"<unknown>"});return Object.assign(r,{defaultContext:{...Jo.defaultContext,cwd:t,plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr}})}function aPt(t){if(He.parseOptionalBoolean(process.env.YARN_IGNORE_NODE))return!0;let r=process.versions.node,o=">=18.12.0";if(Lr.satisfiesWithPrereleases(r,o))return!0;let a=new st(`This tool requires a Node version compatible with ${o} (got ${r}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);return Jo.defaultContext.stdout.write(t.error(a)),!1}async function tve({selfPath:t,pluginConfiguration:e}){return await Ke.find(ue.toPortablePath(process.cwd()),e,{strict:!1,usePathCheck:t})}function lPt(t,e,{yarnPath:r}){if(!oe.existsSync(r))return t.error(new Error(`The "yarn-path" option has been set, but the specified location doesn't exist (${r}).`)),1;process.on("SIGINT",()=>{});let o={stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1"}};try{(0,ZBe.execFileSync)(process.execPath,[ue.fromPortablePath(r),...e],o)}catch(a){return a.status??1}return 0}function cPt(t,e){let r=null,o=e;return e.length>=2&&e[0]==="--cwd"?(r=ue.toPortablePath(e[1]),o=e.slice(2)):e.length>=1&&e[0].startsWith("--cwd=")?(r=ue.toPortablePath(e[0].slice(6)),o=e.slice(1)):e[0]==="add"&&e[e.length-2]==="--cwd"&&(r=ue.toPortablePath(e[e.length-1]),o=e.slice(0,e.length-2)),t.defaultContext.cwd=r!==null?K.resolve(r):K.cwd(),o}function uPt(t,{configuration:e}){if(!e.get("enableTelemetry")||$Be.isCI||!process.stdout.isTTY)return;Ke.telemetry=new Oy(e,"puba9cdc10ec5790a2cf4969dd413a47270");let o=/^@yarnpkg\/plugin-(.*)$/;for(let a of e.plugins.keys())Uy.has(a.match(o)?.[1]??"")&&Ke.telemetry?.reportPluginName(a);t.binaryVersion&&Ke.telemetry.reportVersion(t.binaryVersion)}function rve(t,{configuration:e}){for(let r of e.plugins.values())for(let o of r.commands||[])t.register(o)}async function APt(t,e,{selfPath:r,pluginConfiguration:o}){if(!aPt(t))return 1;let a=await tve({selfPath:r,pluginConfiguration:o}),n=a.get("yarnPath"),u=a.get("ignorePath");if(n&&!u)return lPt(t,e,{yarnPath:n});delete process.env.YARN_IGNORE_PATH;let A=cPt(t,e);uPt(t,{configuration:a}),rve(t,{configuration:a});let p=t.process(A,t.defaultContext);return p.help||Ke.telemetry?.reportCommandName(p.path.join(" ")),await t.run(p,t.defaultContext)}async function ihe({cwd:t=K.cwd(),pluginConfiguration:e=Hy()}={}){let r=eve({cwd:t,pluginConfiguration:e}),o=await tve({pluginConfiguration:e,selfPath:null});return rve(r,{configuration:o}),r}async function Wx(t,{cwd:e=K.cwd(),selfPath:r,pluginConfiguration:o}){let a=eve({cwd:e,pluginConfiguration:o});function n(){Jo.defaultContext.stdout.write(`ERROR: Yarn is terminating due to an unexpected empty event loop. -Please report this issue at https://github.com/yarnpkg/berry/issues.`)}process.once("beforeExit",n);try{process.exitCode=42,process.exitCode=await APt(a,t,{selfPath:r,pluginConfiguration:o})}catch(u){Jo.defaultContext.stdout.write(a.error(u)),process.exitCode=1}finally{process.off("beforeExit",n),await oe.rmtempPromise()}}Wx(process.argv.slice(2),{cwd:K.cwd(),selfPath:ue.toPortablePath(ue.resolve(process.argv[1])),pluginConfiguration:Hy()});})(); -/** - @license - Copyright (c) 2015, Rebecca Turner - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - PERFORMANCE OF THIS SOFTWARE. - */ -/** - @license - Copyright Node.js contributors. All rights reserved. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to - deal in the Software without restriction, including without limitation the - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -/** - @license - The MIT License (MIT) - - Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ -/** - @license - Copyright Joyent, Inc. and other Node contributors. - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ -/*! Bundled license information: - -is-number/index.js: - (*! - * is-number <https://github.com/jonschlinkert/is-number> - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. - *) - -to-regex-range/index.js: - (*! - * to-regex-range <https://github.com/micromatch/to-regex-range> - * - * Copyright (c) 2015-present, Jon Schlinkert. - * Released under the MIT License. - *) - -fill-range/index.js: - (*! - * fill-range <https://github.com/jonschlinkert/fill-range> - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Licensed under the MIT License. - *) - -is-extglob/index.js: - (*! - * is-extglob <https://github.com/jonschlinkert/is-extglob> - * - * Copyright (c) 2014-2016, Jon Schlinkert. - * Licensed under the MIT License. - *) - -is-glob/index.js: - (*! - * is-glob <https://github.com/jonschlinkert/is-glob> - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - *) - -queue-microtask/index.js: - (*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *) - -run-parallel/index.js: - (*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *) - -git-url-parse/lib/index.js: - (*! - * buildToken - * Builds OAuth token prefix (helper function) - * - * @name buildToken - * @function - * @param {GitUrl} obj The parsed Git url object. - * @return {String} token prefix - *) - -object-assign/index.js: - (* - object-assign - (c) Sindre Sorhus - @license MIT - *) - -react/cjs/react.production.min.js: - (** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - *) - -scheduler/cjs/scheduler.production.min.js: - (** @license React v0.18.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - *) - -react-reconciler/cjs/react-reconciler.production.min.js: - (** @license React v0.24.0 - * react-reconciler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - *) - -is-windows/index.js: - (*! - * is-windows <https://github.com/jonschlinkert/is-windows> - * - * Copyright © 2015-2018, Jon Schlinkert. - * Released under the MIT License. - *) -*/ diff --git a/.yarnrc.yml b/.yarnrc.yml index b094c9570..16d44da90 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1,3 +1,3 @@ nodeLinker: node-modules -yarnPath: .yarn/releases/yarn-4.4.0.cjs +yarnPath: .yarn/releases/yarn-4.9.2.cjs diff --git a/yarn.lock b/yarn.lock index 24110fdd8..bbdc4123b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8936,11 +8936,11 @@ __metadata: "typescript@patch:typescript@npm%3A^5.7.2#optional!builtin<compat/typescript>": version: 5.8.3 - resolution: "typescript@patch:typescript@npm%3A5.8.3#optional!builtin<compat/typescript>::version=5.8.3&hash=74658d" + resolution: "typescript@patch:typescript@npm%3A5.8.3#optional!builtin<compat/typescript>::version=5.8.3&hash=5786d5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/92ea03509e06598948559ddcdd8a4ae5a7ab475766d5589f1b796f5731b3d631a4c7ddfb86a3bd44d58d10102b132cd4b4994dda9b63e6273c66d77d6a271dbd + checksum: 10c0/39117e346ff8ebd87ae1510b3a77d5d92dae5a89bde588c747d25da5c146603a99c8ee588c7ef80faaf123d89ed46f6dbd918d534d641083177d5fac38b8a1cb languageName: node linkType: hard From a9f723b182a5cef0575df200ace1c8bbd9e3e972 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Wed, 23 Jul 2025 12:03:39 -0400 Subject: [PATCH 46/74] chore: add yarn release --- .yarn/releases/yarn-4.9.2.cjs | 942 ++++++++++++++++++++++++++++++++++ 1 file changed, 942 insertions(+) create mode 100755 .yarn/releases/yarn-4.9.2.cjs diff --git a/.yarn/releases/yarn-4.9.2.cjs b/.yarn/releases/yarn-4.9.2.cjs new file mode 100755 index 000000000..28f25b14b --- /dev/null +++ b/.yarn/releases/yarn-4.9.2.cjs @@ -0,0 +1,942 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var UVe=Object.create;var E_=Object.defineProperty;var HVe=Object.getOwnPropertyDescriptor;var jVe=Object.getOwnPropertyNames;var qVe=Object.getPrototypeOf,GVe=Object.prototype.hasOwnProperty;var Ie=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var Ct=(t,e)=>()=>(t&&(e=t(t=0)),e);var L=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Vt=(t,e)=>{for(var r in e)E_(t,r,{get:e[r],enumerable:!0})},WVe=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of jVe(e))!GVe.call(t,a)&&a!==r&&E_(t,a,{get:()=>e[a],enumerable:!(s=HVe(e,a))||s.enumerable});return t};var et=(t,e,r)=>(r=t!=null?UVe(qVe(t)):{},WVe(e||!t||!t.__esModule?E_(r,"default",{value:t,enumerable:!0}):r,t));var fi={};Vt(fi,{SAFE_TIME:()=>d$,S_IFDIR:()=>rx,S_IFLNK:()=>nx,S_IFMT:()=>_f,S_IFREG:()=>N2});var _f,rx,N2,nx,d$,m$=Ct(()=>{_f=61440,rx=16384,N2=32768,nx=40960,d$=456789e3});var or={};Vt(or,{EBADF:()=>Uo,EBUSY:()=>YVe,EEXIST:()=>XVe,EINVAL:()=>KVe,EISDIR:()=>ZVe,ENOENT:()=>JVe,ENOSYS:()=>VVe,ENOTDIR:()=>zVe,ENOTEMPTY:()=>e7e,EOPNOTSUPP:()=>t7e,EROFS:()=>$Ve,ERR_DIR_CLOSED:()=>I_});function wc(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function YVe(t){return wc("EBUSY",t)}function VVe(t,e){return wc("ENOSYS",`${t}, ${e}`)}function KVe(t){return wc("EINVAL",`invalid argument, ${t}`)}function Uo(t){return wc("EBADF",`bad file descriptor, ${t}`)}function JVe(t){return wc("ENOENT",`no such file or directory, ${t}`)}function zVe(t){return wc("ENOTDIR",`not a directory, ${t}`)}function ZVe(t){return wc("EISDIR",`illegal operation on a directory, ${t}`)}function XVe(t){return wc("EEXIST",`file already exists, ${t}`)}function $Ve(t){return wc("EROFS",`read-only filesystem, ${t}`)}function e7e(t){return wc("ENOTEMPTY",`directory not empty, ${t}`)}function t7e(t){return wc("EOPNOTSUPP",`operation not supported, ${t}`)}function I_(){return wc("ERR_DIR_CLOSED","Directory handle was closed")}var ix=Ct(()=>{});var el={};Vt(el,{BigIntStatsEntry:()=>rE,DEFAULT_MODE:()=>B_,DirEntry:()=>C_,StatEntry:()=>tE,areStatsEqual:()=>v_,clearStats:()=>sx,convertToBigIntStats:()=>n7e,makeDefaultStats:()=>y$,makeEmptyStats:()=>r7e});function y$(){return new tE}function r7e(){return sx(y$())}function sx(t){for(let e in t)if(Object.hasOwn(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):w_.types.isDate(r)&&(t[e]=new Date(0))}return t}function n7e(t){let e=new rE;for(let r in t)if(Object.hasOwn(t,r)){let s=t[r];typeof s=="number"?e[r]=BigInt(s):w_.types.isDate(s)&&(e[r]=new Date(s))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function v_(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,s=e;return!(r.atimeNs!==s.atimeNs||r.mtimeNs!==s.mtimeNs||r.ctimeNs!==s.ctimeNs||r.birthtimeNs!==s.birthtimeNs)}var w_,B_,C_,tE,rE,S_=Ct(()=>{w_=et(Ie("util")),B_=33188,C_=class{constructor(){this.name="";this.path="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},tE=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=B_;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},rE=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(B_);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}}});function l7e(t){let e,r;if(e=t.match(o7e))t=e[1];else if(r=t.match(a7e))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function c7e(t){t=t.replace(/\\/g,"/");let e,r;return(e=t.match(i7e))?t=`/${e[1]}`:(r=t.match(s7e))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t}function ox(t,e){return t===ue?I$(e):D_(e)}var O2,vt,Er,ue,K,E$,i7e,s7e,o7e,a7e,D_,I$,tl=Ct(()=>{O2=et(Ie("path")),vt={root:"/",dot:".",parent:".."},Er={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml",env:".env"},ue=Object.create(O2.default),K=Object.create(O2.default.posix);ue.cwd=()=>process.cwd();K.cwd=process.platform==="win32"?()=>D_(process.cwd()):process.cwd;process.platform==="win32"&&(K.resolve=(...t)=>t.length>0&&K.isAbsolute(t[0])?O2.default.posix.resolve(...t):O2.default.posix.resolve(K.cwd(),...t));E$=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};ue.contains=(t,e)=>E$(ue,t,e);K.contains=(t,e)=>E$(K,t,e);i7e=/^([a-zA-Z]:.*)$/,s7e=/^\/\/(\.\/)?(.*)$/,o7e=/^\/([a-zA-Z]:.*)$/,a7e=/^\/unc\/(\.dot\/)?(.*)$/;D_=process.platform==="win32"?c7e:t=>t,I$=process.platform==="win32"?l7e:t=>t;ue.fromPortablePath=I$;ue.toPortablePath=D_});async function ax(t,e){let r="0123456789abcdef";await t.mkdirPromise(e.indexPath,{recursive:!0});let s=[];for(let a of r)for(let n of r)s.push(t.mkdirPromise(t.pathUtils.join(e.indexPath,`${a}${n}`),{recursive:!0}));return await Promise.all(s),e.indexPath}async function C$(t,e,r,s,a){let n=t.pathUtils.normalize(e),c=r.pathUtils.normalize(s),f=[],p=[],{atime:h,mtime:E}=a.stableTime?{atime:gd,mtime:gd}:await r.lstatPromise(c);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[h,E]}),await b_(f,p,t,n,r,c,{...a,didParentExist:!0});for(let C of f)await C();await Promise.all(p.map(C=>C()))}async function b_(t,e,r,s,a,n,c){let f=c.didParentExist?await w$(r,s):null,p=await a.lstatPromise(n),{atime:h,mtime:E}=c.stableTime?{atime:gd,mtime:gd}:p,C;switch(!0){case p.isDirectory():C=await f7e(t,e,r,s,f,a,n,p,c);break;case p.isFile():C=await h7e(t,e,r,s,f,a,n,p,c);break;case p.isSymbolicLink():C=await g7e(t,e,r,s,f,a,n,p,c);break;default:throw new Error(`Unsupported file type (${p.mode})`)}return(c.linkStrategy?.type!=="HardlinkFromIndex"||!p.isFile())&&((C||f?.mtime?.getTime()!==E.getTime()||f?.atime?.getTime()!==h.getTime())&&(e.push(()=>r.lutimesPromise(s,h,E)),C=!0),(f===null||(f.mode&511)!==(p.mode&511))&&(e.push(()=>r.chmodPromise(s,p.mode&511)),C=!0)),C}async function w$(t,e){try{return await t.lstatPromise(e)}catch{return null}}async function f7e(t,e,r,s,a,n,c,f,p){if(a!==null&&!a.isDirectory())if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1;let h=!1;a===null&&(t.push(async()=>{try{await r.mkdirPromise(s,{mode:f.mode})}catch(S){if(S.code!=="EEXIST")throw S}}),h=!0);let E=await n.readdirPromise(c),C=p.didParentExist&&!a?{...p,didParentExist:!1}:p;if(p.stableSort)for(let S of E.sort())await b_(t,e,r,r.pathUtils.join(s,S),n,n.pathUtils.join(c,S),C)&&(h=!0);else(await Promise.all(E.map(async P=>{await b_(t,e,r,r.pathUtils.join(s,P),n,n.pathUtils.join(c,P),C)}))).some(P=>P)&&(h=!0);return h}async function A7e(t,e,r,s,a,n,c,f,p,h){let E=await n.checksumFilePromise(c,{algorithm:"sha1"}),C=420,S=f.mode&511,P=`${E}${S!==C?S.toString(8):""}`,I=r.pathUtils.join(h.indexPath,E.slice(0,2),`${P}.dat`),R;(ce=>(ce[ce.Lock=0]="Lock",ce[ce.Rename=1]="Rename"))(R||={});let N=1,U=await w$(r,I);if(a){let ie=U&&a.dev===U.dev&&a.ino===U.ino,Ae=U?.mtimeMs!==u7e;if(ie&&Ae&&h.autoRepair&&(N=0,U=null),!ie)if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1}let W=!U&&N===1?`${I}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,te=!1;return t.push(async()=>{if(!U&&(N===0&&await r.lockPromise(I,async()=>{let ie=await n.readFilePromise(c);await r.writeFilePromise(I,ie)}),N===1&&W)){let ie=await n.readFilePromise(c);await r.writeFilePromise(W,ie);try{await r.linkPromise(W,I)}catch(Ae){if(Ae.code==="EEXIST")te=!0,await r.unlinkPromise(W);else throw Ae}}a||await r.linkPromise(I,s)}),e.push(async()=>{U||(await r.lutimesPromise(I,gd,gd),S!==C&&await r.chmodPromise(I,S)),W&&!te&&await r.unlinkPromise(W)}),!1}async function p7e(t,e,r,s,a,n,c,f,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1;return t.push(async()=>{let h=await n.readFilePromise(c);await r.writeFilePromise(s,h)}),!0}async function h7e(t,e,r,s,a,n,c,f,p){return p.linkStrategy?.type==="HardlinkFromIndex"?A7e(t,e,r,s,a,n,c,f,p,p.linkStrategy):p7e(t,e,r,s,a,n,c,f,p)}async function g7e(t,e,r,s,a,n,c,f,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(s)),a=null;else return!1;return t.push(async()=>{await r.symlinkPromise(ox(r.pathUtils,await n.readlinkPromise(c)),s)}),!0}var gd,u7e,P_=Ct(()=>{tl();gd=new Date(456789e3*1e3),u7e=gd.getTime()});function lx(t,e,r,s){let a=()=>{let n=r.shift();if(typeof n>"u")return null;let c=t.pathUtils.join(e,n);return Object.assign(t.statSync(c),{name:n,path:void 0})};return new L2(e,a,s)}var L2,B$=Ct(()=>{ix();L2=class{constructor(e,r,s={}){this.path=e;this.nextDirent=r;this.opts=s;this.closed=!1}throwIfClosed(){if(this.closed)throw I_()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e<"u"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){this.throwIfClosed(),this.opts.onClose?.(),this.closed=!0}}});function v$(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var S$,cx,D$=Ct(()=>{S$=Ie("events");S_();cx=class t extends S$.EventEmitter{constructor(r,s,{bigint:a=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=r,this.path=s,this.bigint=a,this.lastStats=this.stat()}static create(r,s,a){let n=new t(r,s,a);return n.start(),n}start(){v$(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){v$(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let r=this.bigint?new rE:new tE;return sx(r)}}makeInterval(r){let s=setInterval(()=>{let a=this.stat(),n=this.lastStats;v_(a,n)||(this.lastStats=a,this.emit("change",a,n))},r.interval);return r.persistent?s:s.unref()}registerChangeListener(r,s){this.addListener("change",r),this.changeListeners.set(r,this.makeInterval(s))}unregisterChangeListener(r){this.removeListener("change",r);let s=this.changeListeners.get(r);typeof s<"u"&&clearInterval(s),this.changeListeners.delete(r)}unregisterAllChangeListeners(){for(let r of this.changeListeners.keys())this.unregisterChangeListener(r)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let r of this.changeListeners.values())r.ref();return this}unref(){for(let r of this.changeListeners.values())r.unref();return this}}});function nE(t,e,r,s){let a,n,c,f;switch(typeof r){case"function":a=!1,n=!0,c=5007,f=r;break;default:({bigint:a=!1,persistent:n=!0,interval:c=5007}=r),f=s;break}let p=ux.get(t);typeof p>"u"&&ux.set(t,p=new Map);let h=p.get(e);return typeof h>"u"&&(h=cx.create(t,e,{bigint:a}),p.set(e,h)),h.registerChangeListener(f,{persistent:n,interval:c}),h}function dd(t,e,r){let s=ux.get(t);if(typeof s>"u")return;let a=s.get(e);typeof a>"u"||(typeof r>"u"?a.unregisterAllChangeListeners():a.unregisterChangeListener(r),a.hasChangeListeners()||(a.stop(),s.delete(e)))}function md(t){let e=ux.get(t);if(!(typeof e>"u"))for(let r of e.keys())dd(t,r)}var ux,x_=Ct(()=>{D$();ux=new WeakMap});function d7e(t){let e=t.match(/\r?\n/g);if(e===null)return P$.EOL;let r=e.filter(a=>a===`\r +`).length,s=e.length-r;return r>s?`\r +`:` +`}function yd(t,e){return e.replace(/\r?\n/g,d7e(t))}var b$,P$,Ep,Uf,Ed=Ct(()=>{b$=Ie("crypto"),P$=Ie("os");P_();tl();Ep=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let s=[e];for(;s.length>0;){let a=s.shift();if((await this.lstatPromise(a)).isDirectory()){let c=await this.readdirPromise(a);if(r)for(let f of c.sort())s.push(this.pathUtils.join(a,f));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(e,{algorithm:r="sha512"}={}){let s=await this.openPromise(e,"r");try{let n=Buffer.allocUnsafeSlow(65536),c=(0,b$.createHash)(r),f=0;for(;(f=await this.readPromise(s,n,0,65536))!==0;)c.update(f===65536?n:n.slice(0,f));return c.digest("hex")}finally{await this.closePromise(s)}}async removePromise(e,{recursive:r=!0,maxRetries:s=5}={}){let a;try{a=await this.lstatPromise(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(e);await Promise.all(n.map(c=>this.removePromise(this.pathUtils.resolve(e,c))))}for(let n=0;n<=s;n++)try{await this.rmdirPromise(e);break}catch(c){if(c.code!=="EBUSY"&&c.code!=="ENOTEMPTY")throw c;n<s&&await new Promise(f=>setTimeout(f,n*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let s;try{s=this.lstatSync(e)}catch(a){if(a.code==="ENOENT")return;throw a}if(s.isDirectory()){if(r)for(let a of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,a));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:s}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let c=2;c<=a.length;++c){let f=a.slice(0,c).join(this.pathUtils.sep);if(!this.existsSync(f)){try{await this.mkdirPromise(f)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=f,r!=null&&await this.chmodPromise(f,r),s!=null)await this.utimesPromise(f,s[0],s[1]);else{let p=await this.statPromise(this.pathUtils.dirname(f));await this.utimesPromise(f,p.atime,p.mtime)}}}return n}mkdirpSync(e,{chmod:r,utimes:s}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let c=2;c<=a.length;++c){let f=a.slice(0,c).join(this.pathUtils.sep);if(!this.existsSync(f)){try{this.mkdirSync(f)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=f,r!=null&&this.chmodSync(f,r),s!=null)this.utimesSync(f,s[0],s[1]);else{let p=this.statSync(this.pathUtils.dirname(f));this.utimesSync(f,p.atime,p.mtime)}}}return n}async copyPromise(e,r,{baseFs:s=this,overwrite:a=!0,stableSort:n=!1,stableTime:c=!1,linkStrategy:f=null}={}){return await C$(this,e,s,r,{overwrite:a,stableSort:n,stableTime:c,linkStrategy:f})}copySync(e,r,{baseFs:s=this,overwrite:a=!0}={}){let n=s.lstatSync(r),c=this.existsSync(e);if(n.isDirectory()){this.mkdirpSync(e);let p=s.readdirSync(r);for(let h of p)this.copySync(this.pathUtils.join(e,h),s.pathUtils.join(r,h),{baseFs:s,overwrite:a})}else if(n.isFile()){if(!c||a){c&&this.removeSync(e);let p=s.readFileSync(r);this.writeFileSync(e,p)}}else if(n.isSymbolicLink()){if(!c||a){c&&this.removeSync(e);let p=s.readlinkSync(r);this.symlinkSync(ox(this.pathUtils,p),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,"0")})`);let f=n.mode&511;this.chmodSync(e,f)}async changeFilePromise(e,r,s={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,s):this.changeFileTextPromise(e,r,s)}async changeFileBufferPromise(e,r,{mode:s}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(e)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(e,r,{mode:s})}async changeFileTextPromise(e,r,{automaticNewlines:s,mode:a}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch{}let c=s?yd(n,r):r;n!==c&&await this.writeFilePromise(e,c,{mode:a})}changeFileSync(e,r,s={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,s):this.changeFileTextSync(e,r,s)}changeFileBufferSync(e,r,{mode:s}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(e)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(e,r,{mode:s})}changeFileTextSync(e,r,{automaticNewlines:s=!1,mode:a}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch{}let c=s?yd(n,r):r;n!==c&&this.writeFileSync(e,c,{mode:a})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(s){if(s.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw s}}moveSync(e,r){try{this.renameSync(e,r)}catch(s){if(s.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw s}}async lockPromise(e,r){let s=`${e}.flock`,a=1e3/60,n=Date.now(),c=null,f=async()=>{let p;try{[p]=await this.readJsonPromise(s)}catch{return Date.now()-n<500}try{return process.kill(p,0),!0}catch{return!1}};for(;c===null;)try{c=await this.openPromise(s,"wx")}catch(p){if(p.code==="EEXIST"){if(!await f())try{await this.unlinkPromise(s);continue}catch{}if(Date.now()-n<60*1e3)await new Promise(h=>setTimeout(h,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${s})`)}else throw p}await this.writePromise(c,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(c),await this.unlinkPromise(s)}catch{}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(s){throw s.message+=` (in ${e})`,s}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(s){throw s.message+=` (in ${e})`,s}}async writeJsonPromise(e,r,{compact:s=!1}={}){let a=s?0:2;return await this.writeFilePromise(e,`${JSON.stringify(r,null,a)} +`)}writeJsonSync(e,r,{compact:s=!1}={}){let a=s?0:2;return this.writeFileSync(e,`${JSON.stringify(r,null,a)} +`)}async preserveTimePromise(e,r){let s=await this.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await this.lutimesPromise(e,s.atime,s.mtime)}async preserveTimeSync(e,r){let s=this.lstatSync(e),a=r();typeof a<"u"&&(e=a),this.lutimesSync(e,s.atime,s.mtime)}},Uf=class extends Ep{constructor(){super(K)}}});var js,Ip=Ct(()=>{Ed();js=class extends Ep{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,s){return this.baseFs.openPromise(this.mapToBase(e),r,s)}openSync(e,r,s){return this.baseFs.openSync(this.mapToBase(e),r,s)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,s,a,n){return await this.baseFs.readPromise(e,r,s,a,n)}readSync(e,r,s,a,n){return this.baseFs.readSync(e,r,s,a,n)}async writePromise(e,r,s,a,n){return typeof r=="string"?await this.baseFs.writePromise(e,r,s):await this.baseFs.writePromise(e,r,s,a,n)}writeSync(e,r,s,a,n){return typeof r=="string"?this.baseFs.writeSync(e,r,s):this.baseFs.writeSync(e,r,s,a,n)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async fchownPromise(e,r,s){return this.baseFs.fchownPromise(e,r,s)}fchownSync(e,r,s){return this.baseFs.fchownSync(e,r,s)}async chownPromise(e,r,s){return this.baseFs.chownPromise(this.mapToBase(e),r,s)}chownSync(e,r,s){return this.baseFs.chownSync(this.mapToBase(e),r,s)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,s=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),s)}copyFileSync(e,r,s=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),s)}async appendFilePromise(e,r,s){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,s)}appendFileSync(e,r,s){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,s)}async writeFilePromise(e,r,s){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,s)}writeFileSync(e,r,s){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,s)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,s){return this.baseFs.utimesPromise(this.mapToBase(e),r,s)}utimesSync(e,r,s){return this.baseFs.utimesSync(this.mapToBase(e),r,s)}async lutimesPromise(e,r,s){return this.baseFs.lutimesPromise(this.mapToBase(e),r,s)}lutimesSync(e,r,s){return this.baseFs.lutimesSync(this.mapToBase(e),r,s)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async rmPromise(e,r){return this.baseFs.rmPromise(this.mapToBase(e),r)}rmSync(e,r){return this.baseFs.rmSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,s){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),a,s);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),c=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkPromise(c,a,s)}symlinkSync(e,r,s){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),a,s);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),c=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkSync(c,a,s)}async readFilePromise(e,r){return this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return this.baseFs.readFileSync(this.fsMapToBase(e),r)}readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}async ftruncatePromise(e,r){return this.baseFs.ftruncatePromise(e,r)}ftruncateSync(e,r){return this.baseFs.ftruncateSync(e,r)}watch(e,r,s){return this.baseFs.watch(this.mapToBase(e),r,s)}watchFile(e,r,s){return this.baseFs.watchFile(this.mapToBase(e),r,s)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}}});var Hf,x$=Ct(()=>{Ip();Hf=class extends js{constructor(e,{baseFs:r,pathUtils:s}){super(s),this.target=e,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}}});function k$(t){let e=t;return typeof t.path=="string"&&(e.path=ue.toPortablePath(t.path)),e}var Q$,Yn,Id=Ct(()=>{Q$=et(Ie("fs"));Ed();tl();Yn=class extends Uf{constructor(e=Q$.default){super(),this.realFs=e}getExtractHint(){return!1}getRealPath(){return vt.root}resolve(e){return K.resolve(e)}async openPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.open(ue.fromPortablePath(e),r,s,this.makeCallback(a,n))})}openSync(e,r,s){return this.realFs.openSync(ue.fromPortablePath(e),r,s)}async opendirPromise(e,r){return await new Promise((s,a)=>{typeof r<"u"?this.realFs.opendir(ue.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.opendir(ue.fromPortablePath(e),this.makeCallback(s,a))}).then(s=>{let a=s;return Object.defineProperty(a,"path",{value:e,configurable:!0,writable:!0}),a})}opendirSync(e,r){let a=typeof r<"u"?this.realFs.opendirSync(ue.fromPortablePath(e),r):this.realFs.opendirSync(ue.fromPortablePath(e));return Object.defineProperty(a,"path",{value:e,configurable:!0,writable:!0}),a}async readPromise(e,r,s=0,a=0,n=-1){return await new Promise((c,f)=>{this.realFs.read(e,r,s,a,n,(p,h)=>{p?f(p):c(h)})})}readSync(e,r,s,a,n){return this.realFs.readSync(e,r,s,a,n)}async writePromise(e,r,s,a,n){return await new Promise((c,f)=>typeof r=="string"?this.realFs.write(e,r,s,this.makeCallback(c,f)):this.realFs.write(e,r,s,a,n,this.makeCallback(c,f)))}writeSync(e,r,s,a,n){return typeof r=="string"?this.realFs.writeSync(e,r,s):this.realFs.writeSync(e,r,s,a,n)}async closePromise(e){await new Promise((r,s)=>{this.realFs.close(e,this.makeCallback(r,s))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,r){let s=e!==null?ue.fromPortablePath(e):e;return this.realFs.createReadStream(s,r)}createWriteStream(e,r){let s=e!==null?ue.fromPortablePath(e):e;return this.realFs.createWriteStream(s,r)}async realpathPromise(e){return await new Promise((r,s)=>{this.realFs.realpath(ue.fromPortablePath(e),{},this.makeCallback(r,s))}).then(r=>ue.toPortablePath(r))}realpathSync(e){return ue.toPortablePath(this.realFs.realpathSync(ue.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(r=>{this.realFs.exists(ue.fromPortablePath(e),r)})}accessSync(e,r){return this.realFs.accessSync(ue.fromPortablePath(e),r)}async accessPromise(e,r){return await new Promise((s,a)=>{this.realFs.access(ue.fromPortablePath(e),r,this.makeCallback(s,a))})}existsSync(e){return this.realFs.existsSync(ue.fromPortablePath(e))}async statPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.stat(ue.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.stat(ue.fromPortablePath(e),this.makeCallback(s,a))})}statSync(e,r){return r?this.realFs.statSync(ue.fromPortablePath(e),r):this.realFs.statSync(ue.fromPortablePath(e))}async fstatPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.fstat(e,r,this.makeCallback(s,a)):this.realFs.fstat(e,this.makeCallback(s,a))})}fstatSync(e,r){return r?this.realFs.fstatSync(e,r):this.realFs.fstatSync(e)}async lstatPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.lstat(ue.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.lstat(ue.fromPortablePath(e),this.makeCallback(s,a))})}lstatSync(e,r){return r?this.realFs.lstatSync(ue.fromPortablePath(e),r):this.realFs.lstatSync(ue.fromPortablePath(e))}async fchmodPromise(e,r){return await new Promise((s,a)=>{this.realFs.fchmod(e,r,this.makeCallback(s,a))})}fchmodSync(e,r){return this.realFs.fchmodSync(e,r)}async chmodPromise(e,r){return await new Promise((s,a)=>{this.realFs.chmod(ue.fromPortablePath(e),r,this.makeCallback(s,a))})}chmodSync(e,r){return this.realFs.chmodSync(ue.fromPortablePath(e),r)}async fchownPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.fchown(e,r,s,this.makeCallback(a,n))})}fchownSync(e,r,s){return this.realFs.fchownSync(e,r,s)}async chownPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.chown(ue.fromPortablePath(e),r,s,this.makeCallback(a,n))})}chownSync(e,r,s){return this.realFs.chownSync(ue.fromPortablePath(e),r,s)}async renamePromise(e,r){return await new Promise((s,a)=>{this.realFs.rename(ue.fromPortablePath(e),ue.fromPortablePath(r),this.makeCallback(s,a))})}renameSync(e,r){return this.realFs.renameSync(ue.fromPortablePath(e),ue.fromPortablePath(r))}async copyFilePromise(e,r,s=0){return await new Promise((a,n)=>{this.realFs.copyFile(ue.fromPortablePath(e),ue.fromPortablePath(r),s,this.makeCallback(a,n))})}copyFileSync(e,r,s=0){return this.realFs.copyFileSync(ue.fromPortablePath(e),ue.fromPortablePath(r),s)}async appendFilePromise(e,r,s){return await new Promise((a,n)=>{let c=typeof e=="string"?ue.fromPortablePath(e):e;s?this.realFs.appendFile(c,r,s,this.makeCallback(a,n)):this.realFs.appendFile(c,r,this.makeCallback(a,n))})}appendFileSync(e,r,s){let a=typeof e=="string"?ue.fromPortablePath(e):e;s?this.realFs.appendFileSync(a,r,s):this.realFs.appendFileSync(a,r)}async writeFilePromise(e,r,s){return await new Promise((a,n)=>{let c=typeof e=="string"?ue.fromPortablePath(e):e;s?this.realFs.writeFile(c,r,s,this.makeCallback(a,n)):this.realFs.writeFile(c,r,this.makeCallback(a,n))})}writeFileSync(e,r,s){let a=typeof e=="string"?ue.fromPortablePath(e):e;s?this.realFs.writeFileSync(a,r,s):this.realFs.writeFileSync(a,r)}async unlinkPromise(e){return await new Promise((r,s)=>{this.realFs.unlink(ue.fromPortablePath(e),this.makeCallback(r,s))})}unlinkSync(e){return this.realFs.unlinkSync(ue.fromPortablePath(e))}async utimesPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.utimes(ue.fromPortablePath(e),r,s,this.makeCallback(a,n))})}utimesSync(e,r,s){this.realFs.utimesSync(ue.fromPortablePath(e),r,s)}async lutimesPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.lutimes(ue.fromPortablePath(e),r,s,this.makeCallback(a,n))})}lutimesSync(e,r,s){this.realFs.lutimesSync(ue.fromPortablePath(e),r,s)}async mkdirPromise(e,r){return await new Promise((s,a)=>{this.realFs.mkdir(ue.fromPortablePath(e),r,this.makeCallback(s,a))})}mkdirSync(e,r){return this.realFs.mkdirSync(ue.fromPortablePath(e),r)}async rmdirPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.rmdir(ue.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.rmdir(ue.fromPortablePath(e),this.makeCallback(s,a))})}rmdirSync(e,r){return this.realFs.rmdirSync(ue.fromPortablePath(e),r)}async rmPromise(e,r){return await new Promise((s,a)=>{r?this.realFs.rm(ue.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.rm(ue.fromPortablePath(e),this.makeCallback(s,a))})}rmSync(e,r){return this.realFs.rmSync(ue.fromPortablePath(e),r)}async linkPromise(e,r){return await new Promise((s,a)=>{this.realFs.link(ue.fromPortablePath(e),ue.fromPortablePath(r),this.makeCallback(s,a))})}linkSync(e,r){return this.realFs.linkSync(ue.fromPortablePath(e),ue.fromPortablePath(r))}async symlinkPromise(e,r,s){return await new Promise((a,n)=>{this.realFs.symlink(ue.fromPortablePath(e.replace(/\/+$/,"")),ue.fromPortablePath(r),s,this.makeCallback(a,n))})}symlinkSync(e,r,s){return this.realFs.symlinkSync(ue.fromPortablePath(e.replace(/\/+$/,"")),ue.fromPortablePath(r),s)}async readFilePromise(e,r){return await new Promise((s,a)=>{let n=typeof e=="string"?ue.fromPortablePath(e):e;this.realFs.readFile(n,r,this.makeCallback(s,a))})}readFileSync(e,r){let s=typeof e=="string"?ue.fromPortablePath(e):e;return this.realFs.readFileSync(s,r)}async readdirPromise(e,r){return await new Promise((s,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(ue.fromPortablePath(e),r,this.makeCallback(n=>s(n.map(k$)),a)):this.realFs.readdir(ue.fromPortablePath(e),r,this.makeCallback(n=>s(n.map(ue.toPortablePath)),a)):this.realFs.readdir(ue.fromPortablePath(e),r,this.makeCallback(s,a)):this.realFs.readdir(ue.fromPortablePath(e),this.makeCallback(s,a))})}readdirSync(e,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(ue.fromPortablePath(e),r).map(k$):this.realFs.readdirSync(ue.fromPortablePath(e),r).map(ue.toPortablePath):this.realFs.readdirSync(ue.fromPortablePath(e),r):this.realFs.readdirSync(ue.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((r,s)=>{this.realFs.readlink(ue.fromPortablePath(e),this.makeCallback(r,s))}).then(r=>ue.toPortablePath(r))}readlinkSync(e){return ue.toPortablePath(this.realFs.readlinkSync(ue.fromPortablePath(e)))}async truncatePromise(e,r){return await new Promise((s,a)=>{this.realFs.truncate(ue.fromPortablePath(e),r,this.makeCallback(s,a))})}truncateSync(e,r){return this.realFs.truncateSync(ue.fromPortablePath(e),r)}async ftruncatePromise(e,r){return await new Promise((s,a)=>{this.realFs.ftruncate(e,r,this.makeCallback(s,a))})}ftruncateSync(e,r){return this.realFs.ftruncateSync(e,r)}watch(e,r,s){return this.realFs.watch(ue.fromPortablePath(e),r,s)}watchFile(e,r,s){return this.realFs.watchFile(ue.fromPortablePath(e),r,s)}unwatchFile(e,r){return this.realFs.unwatchFile(ue.fromPortablePath(e),r)}makeCallback(e,r){return(s,a)=>{s?r(s):e(a)}}}});var Sn,T$=Ct(()=>{Id();Ip();tl();Sn=class extends js{constructor(e,{baseFs:r=new Yn}={}){super(K),this.target=this.pathUtils.normalize(e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?K.normalize(e):this.baseFs.resolve(K.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}}});var R$,jf,F$=Ct(()=>{Id();Ip();tl();R$=vt.root,jf=class extends js{constructor(e,{baseFs:r=new Yn}={}){super(K),this.target=this.pathUtils.resolve(vt.root,e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(vt.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){let r=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(R$,e));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(R$,this.pathUtils.relative(this.target,e))}}});var iE,N$=Ct(()=>{Ip();iE=class extends js{constructor(r,s){super(s);this.instance=null;this.factory=r}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(r){this.instance=r}mapFromBase(r){return r}mapToBase(r){return r}}});var Cd,rl,r0,O$=Ct(()=>{Cd=Ie("fs");Ed();Id();x_();ix();tl();rl=4278190080,r0=class extends Uf{constructor({baseFs:r=new Yn,filter:s=null,magicByte:a=42,maxOpenFiles:n=1/0,useCache:c=!0,maxAge:f=5e3,typeCheck:p=Cd.constants.S_IFREG,getMountPoint:h,factoryPromise:E,factorySync:C}){if(Math.floor(a)!==a||!(a>1&&a<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super();this.fdMap=new Map;this.nextFd=3;this.isMount=new Set;this.notMount=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.baseFs=r,this.mountInstances=c?new Map:null,this.factoryPromise=E,this.factorySync=C,this.filter=s,this.getMountPoint=h,this.magic=a<<24,this.maxAge=f,this.maxOpenFiles=n,this.typeCheck=p}getExtractHint(r){return this.baseFs.getExtractHint(r)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(md(this),this.mountInstances)for(let[r,{childFs:s}]of this.mountInstances.entries())s.saveAndClose?.(),this.mountInstances.delete(r)}discardAndClose(){if(md(this),this.mountInstances)for(let[r,{childFs:s}]of this.mountInstances.entries())s.discardAndClose?.(),this.mountInstances.delete(r)}resolve(r){return this.baseFs.resolve(r)}remapFd(r,s){let a=this.nextFd++|this.magic;return this.fdMap.set(a,[r,s]),a}async openPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.openPromise(r,s,a),async(n,{subPath:c})=>this.remapFd(n,await n.openPromise(c,s,a)))}openSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.openSync(r,s,a),(n,{subPath:c})=>this.remapFd(n,n.openSync(c,s,a)))}async opendirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.opendirPromise(r,s),async(a,{subPath:n})=>await a.opendirPromise(n,s),{requireSubpath:!1})}opendirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.opendirSync(r,s),(a,{subPath:n})=>a.opendirSync(n,s),{requireSubpath:!1})}async readPromise(r,s,a,n,c){if((r&rl)!==this.magic)return await this.baseFs.readPromise(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>"u")throw Uo("read");let[p,h]=f;return await p.readPromise(h,s,a,n,c)}readSync(r,s,a,n,c){if((r&rl)!==this.magic)return this.baseFs.readSync(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>"u")throw Uo("readSync");let[p,h]=f;return p.readSync(h,s,a,n,c)}async writePromise(r,s,a,n,c){if((r&rl)!==this.magic)return typeof s=="string"?await this.baseFs.writePromise(r,s,a):await this.baseFs.writePromise(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>"u")throw Uo("write");let[p,h]=f;return typeof s=="string"?await p.writePromise(h,s,a):await p.writePromise(h,s,a,n,c)}writeSync(r,s,a,n,c){if((r&rl)!==this.magic)return typeof s=="string"?this.baseFs.writeSync(r,s,a):this.baseFs.writeSync(r,s,a,n,c);let f=this.fdMap.get(r);if(typeof f>"u")throw Uo("writeSync");let[p,h]=f;return typeof s=="string"?p.writeSync(h,s,a):p.writeSync(h,s,a,n,c)}async closePromise(r){if((r&rl)!==this.magic)return await this.baseFs.closePromise(r);let s=this.fdMap.get(r);if(typeof s>"u")throw Uo("close");this.fdMap.delete(r);let[a,n]=s;return await a.closePromise(n)}closeSync(r){if((r&rl)!==this.magic)return this.baseFs.closeSync(r);let s=this.fdMap.get(r);if(typeof s>"u")throw Uo("closeSync");this.fdMap.delete(r);let[a,n]=s;return a.closeSync(n)}createReadStream(r,s){return r===null?this.baseFs.createReadStream(r,s):this.makeCallSync(r,()=>this.baseFs.createReadStream(r,s),(a,{archivePath:n,subPath:c})=>{let f=a.createReadStream(c,s);return f.path=ue.fromPortablePath(this.pathUtils.join(n,c)),f})}createWriteStream(r,s){return r===null?this.baseFs.createWriteStream(r,s):this.makeCallSync(r,()=>this.baseFs.createWriteStream(r,s),(a,{subPath:n})=>a.createWriteStream(n,s))}async realpathPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.realpathPromise(r),async(s,{archivePath:a,subPath:n})=>{let c=this.realPaths.get(a);return typeof c>"u"&&(c=await this.baseFs.realpathPromise(a),this.realPaths.set(a,c)),this.pathUtils.join(c,this.pathUtils.relative(vt.root,await s.realpathPromise(n)))})}realpathSync(r){return this.makeCallSync(r,()=>this.baseFs.realpathSync(r),(s,{archivePath:a,subPath:n})=>{let c=this.realPaths.get(a);return typeof c>"u"&&(c=this.baseFs.realpathSync(a),this.realPaths.set(a,c)),this.pathUtils.join(c,this.pathUtils.relative(vt.root,s.realpathSync(n)))})}async existsPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.existsPromise(r),async(s,{subPath:a})=>await s.existsPromise(a))}existsSync(r){return this.makeCallSync(r,()=>this.baseFs.existsSync(r),(s,{subPath:a})=>s.existsSync(a))}async accessPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.accessPromise(r,s),async(a,{subPath:n})=>await a.accessPromise(n,s))}accessSync(r,s){return this.makeCallSync(r,()=>this.baseFs.accessSync(r,s),(a,{subPath:n})=>a.accessSync(n,s))}async statPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.statPromise(r,s),async(a,{subPath:n})=>await a.statPromise(n,s))}statSync(r,s){return this.makeCallSync(r,()=>this.baseFs.statSync(r,s),(a,{subPath:n})=>a.statSync(n,s))}async fstatPromise(r,s){if((r&rl)!==this.magic)return this.baseFs.fstatPromise(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Uo("fstat");let[n,c]=a;return n.fstatPromise(c,s)}fstatSync(r,s){if((r&rl)!==this.magic)return this.baseFs.fstatSync(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Uo("fstatSync");let[n,c]=a;return n.fstatSync(c,s)}async lstatPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.lstatPromise(r,s),async(a,{subPath:n})=>await a.lstatPromise(n,s))}lstatSync(r,s){return this.makeCallSync(r,()=>this.baseFs.lstatSync(r,s),(a,{subPath:n})=>a.lstatSync(n,s))}async fchmodPromise(r,s){if((r&rl)!==this.magic)return this.baseFs.fchmodPromise(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Uo("fchmod");let[n,c]=a;return n.fchmodPromise(c,s)}fchmodSync(r,s){if((r&rl)!==this.magic)return this.baseFs.fchmodSync(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Uo("fchmodSync");let[n,c]=a;return n.fchmodSync(c,s)}async chmodPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.chmodPromise(r,s),async(a,{subPath:n})=>await a.chmodPromise(n,s))}chmodSync(r,s){return this.makeCallSync(r,()=>this.baseFs.chmodSync(r,s),(a,{subPath:n})=>a.chmodSync(n,s))}async fchownPromise(r,s,a){if((r&rl)!==this.magic)return this.baseFs.fchownPromise(r,s,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Uo("fchown");let[c,f]=n;return c.fchownPromise(f,s,a)}fchownSync(r,s,a){if((r&rl)!==this.magic)return this.baseFs.fchownSync(r,s,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Uo("fchownSync");let[c,f]=n;return c.fchownSync(f,s,a)}async chownPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.chownPromise(r,s,a),async(n,{subPath:c})=>await n.chownPromise(c,s,a))}chownSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.chownSync(r,s,a),(n,{subPath:c})=>n.chownSync(c,s,a))}async renamePromise(r,s){return await this.makeCallPromise(r,async()=>await this.makeCallPromise(s,async()=>await this.baseFs.renamePromise(r,s),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(a,{subPath:n})=>await this.makeCallPromise(s,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(c,{subPath:f})=>{if(a!==c)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await a.renamePromise(n,f)}))}renameSync(r,s){return this.makeCallSync(r,()=>this.makeCallSync(s,()=>this.baseFs.renameSync(r,s),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(a,{subPath:n})=>this.makeCallSync(s,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(c,{subPath:f})=>{if(a!==c)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return a.renameSync(n,f)}))}async copyFilePromise(r,s,a=0){let n=async(c,f,p,h)=>{if(a&Cd.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${f}' -> ${h}'`),{code:"EXDEV"});if(a&Cd.constants.COPYFILE_EXCL&&await this.existsPromise(f))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${f}' -> '${h}'`),{code:"EEXIST"});let E;try{E=await c.readFilePromise(f)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${f}' -> '${h}'`),{code:"EINVAL"})}await p.writeFilePromise(h,E)};return await this.makeCallPromise(r,async()=>await this.makeCallPromise(s,async()=>await this.baseFs.copyFilePromise(r,s,a),async(c,{subPath:f})=>await n(this.baseFs,r,c,f)),async(c,{subPath:f})=>await this.makeCallPromise(s,async()=>await n(c,f,this.baseFs,s),async(p,{subPath:h})=>c!==p?await n(c,f,p,h):await c.copyFilePromise(f,h,a)))}copyFileSync(r,s,a=0){let n=(c,f,p,h)=>{if(a&Cd.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${f}' -> ${h}'`),{code:"EXDEV"});if(a&Cd.constants.COPYFILE_EXCL&&this.existsSync(f))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${f}' -> '${h}'`),{code:"EEXIST"});let E;try{E=c.readFileSync(f)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${f}' -> '${h}'`),{code:"EINVAL"})}p.writeFileSync(h,E)};return this.makeCallSync(r,()=>this.makeCallSync(s,()=>this.baseFs.copyFileSync(r,s,a),(c,{subPath:f})=>n(this.baseFs,r,c,f)),(c,{subPath:f})=>this.makeCallSync(s,()=>n(c,f,this.baseFs,s),(p,{subPath:h})=>c!==p?n(c,f,p,h):c.copyFileSync(f,h,a)))}async appendFilePromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.appendFilePromise(r,s,a),async(n,{subPath:c})=>await n.appendFilePromise(c,s,a))}appendFileSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.appendFileSync(r,s,a),(n,{subPath:c})=>n.appendFileSync(c,s,a))}async writeFilePromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.writeFilePromise(r,s,a),async(n,{subPath:c})=>await n.writeFilePromise(c,s,a))}writeFileSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.writeFileSync(r,s,a),(n,{subPath:c})=>n.writeFileSync(c,s,a))}async unlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.unlinkPromise(r),async(s,{subPath:a})=>await s.unlinkPromise(a))}unlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.unlinkSync(r),(s,{subPath:a})=>s.unlinkSync(a))}async utimesPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.utimesPromise(r,s,a),async(n,{subPath:c})=>await n.utimesPromise(c,s,a))}utimesSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.utimesSync(r,s,a),(n,{subPath:c})=>n.utimesSync(c,s,a))}async lutimesPromise(r,s,a){return await this.makeCallPromise(r,async()=>await this.baseFs.lutimesPromise(r,s,a),async(n,{subPath:c})=>await n.lutimesPromise(c,s,a))}lutimesSync(r,s,a){return this.makeCallSync(r,()=>this.baseFs.lutimesSync(r,s,a),(n,{subPath:c})=>n.lutimesSync(c,s,a))}async mkdirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.mkdirPromise(r,s),async(a,{subPath:n})=>await a.mkdirPromise(n,s))}mkdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.mkdirSync(r,s),(a,{subPath:n})=>a.mkdirSync(n,s))}async rmdirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.rmdirPromise(r,s),async(a,{subPath:n})=>await a.rmdirPromise(n,s))}rmdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.rmdirSync(r,s),(a,{subPath:n})=>a.rmdirSync(n,s))}async rmPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.rmPromise(r,s),async(a,{subPath:n})=>await a.rmPromise(n,s))}rmSync(r,s){return this.makeCallSync(r,()=>this.baseFs.rmSync(r,s),(a,{subPath:n})=>a.rmSync(n,s))}async linkPromise(r,s){return await this.makeCallPromise(s,async()=>await this.baseFs.linkPromise(r,s),async(a,{subPath:n})=>await a.linkPromise(r,n))}linkSync(r,s){return this.makeCallSync(s,()=>this.baseFs.linkSync(r,s),(a,{subPath:n})=>a.linkSync(r,n))}async symlinkPromise(r,s,a){return await this.makeCallPromise(s,async()=>await this.baseFs.symlinkPromise(r,s,a),async(n,{subPath:c})=>await n.symlinkPromise(r,c))}symlinkSync(r,s,a){return this.makeCallSync(s,()=>this.baseFs.symlinkSync(r,s,a),(n,{subPath:c})=>n.symlinkSync(r,c))}async readFilePromise(r,s){return this.makeCallPromise(r,async()=>await this.baseFs.readFilePromise(r,s),async(a,{subPath:n})=>await a.readFilePromise(n,s))}readFileSync(r,s){return this.makeCallSync(r,()=>this.baseFs.readFileSync(r,s),(a,{subPath:n})=>a.readFileSync(n,s))}async readdirPromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.readdirPromise(r,s),async(a,{subPath:n})=>await a.readdirPromise(n,s),{requireSubpath:!1})}readdirSync(r,s){return this.makeCallSync(r,()=>this.baseFs.readdirSync(r,s),(a,{subPath:n})=>a.readdirSync(n,s),{requireSubpath:!1})}async readlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.readlinkPromise(r),async(s,{subPath:a})=>await s.readlinkPromise(a))}readlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.readlinkSync(r),(s,{subPath:a})=>s.readlinkSync(a))}async truncatePromise(r,s){return await this.makeCallPromise(r,async()=>await this.baseFs.truncatePromise(r,s),async(a,{subPath:n})=>await a.truncatePromise(n,s))}truncateSync(r,s){return this.makeCallSync(r,()=>this.baseFs.truncateSync(r,s),(a,{subPath:n})=>a.truncateSync(n,s))}async ftruncatePromise(r,s){if((r&rl)!==this.magic)return this.baseFs.ftruncatePromise(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Uo("ftruncate");let[n,c]=a;return n.ftruncatePromise(c,s)}ftruncateSync(r,s){if((r&rl)!==this.magic)return this.baseFs.ftruncateSync(r,s);let a=this.fdMap.get(r);if(typeof a>"u")throw Uo("ftruncateSync");let[n,c]=a;return n.ftruncateSync(c,s)}watch(r,s,a){return this.makeCallSync(r,()=>this.baseFs.watch(r,s,a),(n,{subPath:c})=>n.watch(c,s,a))}watchFile(r,s,a){return this.makeCallSync(r,()=>this.baseFs.watchFile(r,s,a),()=>nE(this,r,s,a))}unwatchFile(r,s){return this.makeCallSync(r,()=>this.baseFs.unwatchFile(r,s),()=>dd(this,r,s))}async makeCallPromise(r,s,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return await s();let c=this.resolve(r),f=this.findMount(c);return f?n&&f.subPath==="/"?await s():await this.getMountPromise(f.archivePath,async p=>await a(p,f)):await s()}makeCallSync(r,s,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return s();let c=this.resolve(r),f=this.findMount(c);return!f||n&&f.subPath==="/"?s():this.getMountSync(f.archivePath,p=>a(p,f))}findMount(r){if(this.filter&&!this.filter.test(r))return null;let s="";for(;;){let a=r.substring(s.length),n=this.getMountPoint(a,s);if(!n)return null;if(s=this.pathUtils.join(s,n),!this.isMount.has(s)){if(this.notMount.has(s))continue;try{if(this.typeCheck!==null&&(this.baseFs.statSync(s).mode&Cd.constants.S_IFMT)!==this.typeCheck){this.notMount.add(s);continue}}catch{return null}this.isMount.add(s)}return{archivePath:s,subPath:this.pathUtils.join(vt.root,r.substring(s.length))}}}limitOpenFiles(r){if(this.mountInstances===null)return;let s=Date.now(),a=s+this.maxAge,n=r===null?0:this.mountInstances.size-r;for(let[c,{childFs:f,expiresAt:p,refCount:h}]of this.mountInstances.entries())if(!(h!==0||f.hasOpenFileHandles?.())){if(s>=p){f.saveAndClose?.(),this.mountInstances.delete(c),n-=1;continue}else if(r===null||n<=0){a=p;break}f.saveAndClose?.(),this.mountInstances.delete(c),n-=1}this.limitOpenFilesTimeout===null&&(r===null&&this.mountInstances.size>0||r!==null)&&isFinite(a)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},a-s).unref())}async getMountPromise(r,s){if(this.mountInstances){let a=this.mountInstances.get(r);if(!a){let n=await this.factoryPromise(this.baseFs,r);a=this.mountInstances.get(r),a||(a={childFs:n(),expiresAt:0,refCount:0})}this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,a.refCount+=1;try{return await s(a.childFs)}finally{a.refCount-=1}}else{let a=(await this.factoryPromise(this.baseFs,r))();try{return await s(a)}finally{a.saveAndClose?.()}}}getMountSync(r,s){if(this.mountInstances){let a=this.mountInstances.get(r);return a||(a={childFs:this.factorySync(this.baseFs,r),expiresAt:0,refCount:0}),this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,s(a.childFs)}else{let a=this.factorySync(this.baseFs,r);try{return s(a)}finally{a.saveAndClose?.()}}}}});var er,fx,L$=Ct(()=>{Ed();tl();er=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),fx=class t extends Ep{static{this.instance=new t}constructor(){super(K)}getExtractHint(){throw er()}getRealPath(){throw er()}resolve(){throw er()}async openPromise(){throw er()}openSync(){throw er()}async opendirPromise(){throw er()}opendirSync(){throw er()}async readPromise(){throw er()}readSync(){throw er()}async writePromise(){throw er()}writeSync(){throw er()}async closePromise(){throw er()}closeSync(){throw er()}createWriteStream(){throw er()}createReadStream(){throw er()}async realpathPromise(){throw er()}realpathSync(){throw er()}async readdirPromise(){throw er()}readdirSync(){throw er()}async existsPromise(e){throw er()}existsSync(e){throw er()}async accessPromise(){throw er()}accessSync(){throw er()}async statPromise(){throw er()}statSync(){throw er()}async fstatPromise(e){throw er()}fstatSync(e){throw er()}async lstatPromise(e){throw er()}lstatSync(e){throw er()}async fchmodPromise(){throw er()}fchmodSync(){throw er()}async chmodPromise(){throw er()}chmodSync(){throw er()}async fchownPromise(){throw er()}fchownSync(){throw er()}async chownPromise(){throw er()}chownSync(){throw er()}async mkdirPromise(){throw er()}mkdirSync(){throw er()}async rmdirPromise(){throw er()}rmdirSync(){throw er()}async rmPromise(){throw er()}rmSync(){throw er()}async linkPromise(){throw er()}linkSync(){throw er()}async symlinkPromise(){throw er()}symlinkSync(){throw er()}async renamePromise(){throw er()}renameSync(){throw er()}async copyFilePromise(){throw er()}copyFileSync(){throw er()}async appendFilePromise(){throw er()}appendFileSync(){throw er()}async writeFilePromise(){throw er()}writeFileSync(){throw er()}async unlinkPromise(){throw er()}unlinkSync(){throw er()}async utimesPromise(){throw er()}utimesSync(){throw er()}async lutimesPromise(){throw er()}lutimesSync(){throw er()}async readFilePromise(){throw er()}readFileSync(){throw er()}async readlinkPromise(){throw er()}readlinkSync(){throw er()}async truncatePromise(){throw er()}truncateSync(){throw er()}async ftruncatePromise(e,r){throw er()}ftruncateSync(e,r){throw er()}watch(){throw er()}watchFile(){throw er()}unwatchFile(){throw er()}}});var n0,M$=Ct(()=>{Ip();tl();n0=class extends js{constructor(e){super(ue),this.baseFs=e}mapFromBase(e){return ue.fromPortablePath(e)}mapToBase(e){return ue.toPortablePath(e)}}});var m7e,k_,y7e,Ao,_$=Ct(()=>{Id();Ip();tl();m7e=/^[0-9]+$/,k_=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,y7e=/^([^/]+-)?[a-f0-9]+$/,Ao=class t extends js{static makeVirtualPath(e,r,s){if(K.basename(e)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!K.basename(r).match(y7e))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let n=K.relative(K.dirname(e),s).split("/"),c=0;for(;c<n.length&&n[c]==="..";)c+=1;let f=n.slice(c);return K.join(e,r,String(c),...f)}static resolveVirtual(e){let r=e.match(k_);if(!r||!r[3]&&r[5])return e;let s=K.dirname(r[1]);if(!r[3]||!r[4])return s;if(!m7e.test(r[4]))return e;let n=Number(r[4]),c="../".repeat(n),f=r[5]||".";return t.resolveVirtual(K.join(s,c,f))}constructor({baseFs:e=new Yn}={}){super(K),this.baseFs=e}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}realpathSync(e){let r=e.match(k_);if(!r)return this.baseFs.realpathSync(e);if(!r[5])return e;let s=this.baseFs.realpathSync(this.mapToBase(e));return t.makeVirtualPath(r[1],r[3],s)}async realpathPromise(e){let r=e.match(k_);if(!r)return await this.baseFs.realpathPromise(e);if(!r[5])return e;let s=await this.baseFs.realpathPromise(this.mapToBase(e));return t.makeVirtualPath(r[1],r[3],s)}mapToBase(e){if(e==="")return e;if(this.pathUtils.isAbsolute(e))return t.resolveVirtual(e);let r=t.resolveVirtual(this.baseFs.resolve(vt.dot)),s=t.resolveVirtual(this.baseFs.resolve(e));return K.relative(r,s)||vt.dot}mapFromBase(e){return e}}});function E7e(t,e){return typeof Q_.default.isUtf8<"u"?Q_.default.isUtf8(t):Buffer.byteLength(e)===t.byteLength}var Q_,U$,H$,Ax,j$=Ct(()=>{Q_=et(Ie("buffer")),U$=Ie("url"),H$=Ie("util");Ip();tl();Ax=class extends js{constructor(e){super(ue),this.baseFs=e}mapFromBase(e){return e}mapToBase(e){if(typeof e=="string")return e;if(e instanceof URL)return(0,U$.fileURLToPath)(e);if(Buffer.isBuffer(e)){let r=e.toString();if(!E7e(e,r))throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return r}throw new Error(`Unsupported path type: ${(0,H$.inspect)(e)}`)}}});var V$,Ho,Cp,i0,px,hx,sE,Nu,Ou,q$,G$,W$,Y$,M2,K$=Ct(()=>{V$=Ie("readline"),Ho=Symbol("kBaseFs"),Cp=Symbol("kFd"),i0=Symbol("kClosePromise"),px=Symbol("kCloseResolve"),hx=Symbol("kCloseReject"),sE=Symbol("kRefs"),Nu=Symbol("kRef"),Ou=Symbol("kUnref"),M2=class{constructor(e,r){this[Y$]=1;this[W$]=void 0;this[G$]=void 0;this[q$]=void 0;this[Ho]=r,this[Cp]=e}get fd(){return this[Cp]}async appendFile(e,r){try{this[Nu](this.appendFile);let s=(typeof r=="string"?r:r?.encoding)??void 0;return await this[Ho].appendFilePromise(this.fd,e,s?{encoding:s}:void 0)}finally{this[Ou]()}}async chown(e,r){try{return this[Nu](this.chown),await this[Ho].fchownPromise(this.fd,e,r)}finally{this[Ou]()}}async chmod(e){try{return this[Nu](this.chmod),await this[Ho].fchmodPromise(this.fd,e)}finally{this[Ou]()}}createReadStream(e){return this[Ho].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Ho].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,r,s,a){try{this[Nu](this.read);let n;return Buffer.isBuffer(e)?n=e:(e??={},n=e.buffer??Buffer.alloc(16384),r=e.offset||0,s=e.length??n.byteLength,a=e.position??null),r??=0,s??=0,s===0?{bytesRead:s,buffer:n}:{bytesRead:await this[Ho].readPromise(this.fd,n,r,s,a),buffer:n}}finally{this[Ou]()}}async readFile(e){try{this[Nu](this.readFile);let r=(typeof e=="string"?e:e?.encoding)??void 0;return await this[Ho].readFilePromise(this.fd,r)}finally{this[Ou]()}}readLines(e){return(0,V$.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Nu](this.stat),await this[Ho].fstatPromise(this.fd,e)}finally{this[Ou]()}}async truncate(e){try{return this[Nu](this.truncate),await this[Ho].ftruncatePromise(this.fd,e)}finally{this[Ou]()}}utimes(e,r){throw new Error("Method not implemented.")}async writeFile(e,r){try{this[Nu](this.writeFile);let s=(typeof r=="string"?r:r?.encoding)??void 0;await this[Ho].writeFilePromise(this.fd,e,s)}finally{this[Ou]()}}async write(...e){try{if(this[Nu](this.write),ArrayBuffer.isView(e[0])){let[r,s,a,n]=e;return{bytesWritten:await this[Ho].writePromise(this.fd,r,s??void 0,a??void 0,n??void 0),buffer:r}}else{let[r,s,a]=e;return{bytesWritten:await this[Ho].writePromise(this.fd,r,s,a),buffer:r}}}finally{this[Ou]()}}async writev(e,r){try{this[Nu](this.writev);let s=0;if(typeof r<"u")for(let a of e){let n=await this.write(a,void 0,void 0,r);s+=n.bytesWritten,r+=n.bytesWritten}else for(let a of e){let n=await this.write(a);s+=n.bytesWritten}return{buffers:e,bytesWritten:s}}finally{this[Ou]()}}readv(e,r){throw new Error("Method not implemented.")}close(){if(this[Cp]===-1)return Promise.resolve();if(this[i0])return this[i0];if(this[sE]--,this[sE]===0){let e=this[Cp];this[Cp]=-1,this[i0]=this[Ho].closePromise(e).finally(()=>{this[i0]=void 0})}else this[i0]=new Promise((e,r)=>{this[px]=e,this[hx]=r}).finally(()=>{this[i0]=void 0,this[hx]=void 0,this[px]=void 0});return this[i0]}[(Ho,Cp,Y$=sE,W$=i0,G$=px,q$=hx,Nu)](e){if(this[Cp]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=e.name,r}this[sE]++}[Ou](){if(this[sE]--,this[sE]===0){let e=this[Cp];this[Cp]=-1,this[Ho].closePromise(e).then(this[px],this[hx])}}}});function _2(t,e){e=new Ax(e);let r=(s,a,n)=>{let c=s[a];s[a]=n,typeof c?.[oE.promisify.custom]<"u"&&(n[oE.promisify.custom]=c[oE.promisify.custom])};{r(t,"exists",(s,...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{e.existsPromise(s).then(f=>{c(f)},()=>{c(!1)})})}),r(t,"read",(...s)=>{let[a,n,c,f,p,h]=s;if(s.length<=3){let E={};s.length<3?h=s[1]:(E=s[1],h=s[2]),{buffer:n=Buffer.alloc(16384),offset:c=0,length:f=n.byteLength,position:p}=E}if(c==null&&(c=0),f|=0,f===0){process.nextTick(()=>{h(null,0,n)});return}p==null&&(p=-1),process.nextTick(()=>{e.readPromise(a,n,c,f,p).then(E=>{h(null,E,n)},E=>{h(E,0,n)})})});for(let s of J$){let a=s.replace(/Promise$/,"");if(typeof t[a]>"u")continue;let n=e[s];if(typeof n>"u")continue;r(t,a,(...f)=>{let h=typeof f[f.length-1]=="function"?f.pop():()=>{};process.nextTick(()=>{n.apply(e,f).then(E=>{h(null,E)},E=>{h(E)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",s=>{try{return e.existsSync(s)}catch{return!1}}),r(t,"readSync",(...s)=>{let[a,n,c,f,p]=s;return s.length<=3&&({offset:c=0,length:f=n.byteLength,position:p}=s[2]||{}),c==null&&(c=0),f|=0,f===0?0:(p==null&&(p=-1),e.readSync(a,n,c,f,p))});for(let s of I7e){let a=s;if(typeof t[a]>"u")continue;let n=e[s];typeof n>"u"||r(t,a,n.bind(e))}t.realpathSync.native=t.realpathSync}{let s=t.promises;for(let a of J$){let n=a.replace(/Promise$/,"");if(typeof s[n]>"u")continue;let c=e[a];typeof c>"u"||a!=="open"&&r(s,n,(f,...p)=>f instanceof M2?f[n].apply(f,p):c.call(e,f,...p))}r(s,"open",async(...a)=>{let n=await e.openPromise(...a);return new M2(n,e)})}t.read[oE.promisify.custom]=async(s,a,...n)=>({bytesRead:await e.readPromise(s,a,...n),buffer:a}),t.write[oE.promisify.custom]=async(s,a,...n)=>({bytesWritten:await e.writePromise(s,a,...n),buffer:a})}function gx(t,e){let r=Object.create(t);return _2(r,e),r}var oE,I7e,J$,z$=Ct(()=>{oE=Ie("util");j$();K$();I7e=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","rmSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),J$=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","rmPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"])});function Z$(t){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${t}${e}`}function X$(){if(T_)return T_;let t=ue.toPortablePath($$.default.tmpdir()),e=le.realpathSync(t);return process.once("exit",()=>{le.rmtempSync()}),T_={tmpdir:t,realTmpdir:e}}var $$,Lu,T_,le,eee=Ct(()=>{$$=et(Ie("os"));Id();tl();Lu=new Set,T_=null;le=Object.assign(new Yn,{detachTemp(t){Lu.delete(t)},mktempSync(t){let{tmpdir:e,realTmpdir:r}=X$();for(;;){let s=Z$("xfs-");try{this.mkdirSync(K.join(e,s))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=K.join(r,s);if(Lu.add(a),typeof t>"u")return a;try{return t(a)}finally{if(Lu.has(a)){Lu.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(t){let{tmpdir:e,realTmpdir:r}=X$();for(;;){let s=Z$("xfs-");try{await this.mkdirPromise(K.join(e,s))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=K.join(r,s);if(Lu.add(a),typeof t>"u")return a;try{return await t(a)}finally{if(Lu.has(a)){Lu.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(Lu.values()).map(async t=>{try{await le.removePromise(t,{maxRetries:0}),Lu.delete(t)}catch{}}))},rmtempSync(){for(let t of Lu)try{le.removeSync(t),Lu.delete(t)}catch{}}})});var U2={};Vt(U2,{AliasFS:()=>Hf,BasePortableFakeFS:()=>Uf,CustomDir:()=>L2,CwdFS:()=>Sn,FakeFS:()=>Ep,Filename:()=>Er,JailFS:()=>jf,LazyFS:()=>iE,MountFS:()=>r0,NoFS:()=>fx,NodeFS:()=>Yn,PortablePath:()=>vt,PosixFS:()=>n0,ProxiedFS:()=>js,VirtualFS:()=>Ao,constants:()=>fi,errors:()=>or,extendFs:()=>gx,normalizeLineEndings:()=>yd,npath:()=>ue,opendir:()=>lx,patchFs:()=>_2,ppath:()=>K,setupCopyIndex:()=>ax,statUtils:()=>el,unwatchAllFiles:()=>md,unwatchFile:()=>dd,watchFile:()=>nE,xfs:()=>le});var bt=Ct(()=>{m$();ix();S_();P_();B$();x_();Ed();tl();tl();x$();Ed();T$();F$();N$();O$();L$();Id();M$();Ip();_$();z$();eee()});var see=L((wGt,iee)=>{iee.exports=nee;nee.sync=w7e;var tee=Ie("fs");function C7e(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var s=0;s<r.length;s++){var a=r[s].toLowerCase();if(a&&t.substr(-a.length).toLowerCase()===a)return!0}return!1}function ree(t,e,r){return!t.isSymbolicLink()&&!t.isFile()?!1:C7e(e,r)}function nee(t,e,r){tee.stat(t,function(s,a){r(s,s?!1:ree(a,t,e))})}function w7e(t,e){return ree(tee.statSync(t),t,e)}});var uee=L((BGt,cee)=>{cee.exports=aee;aee.sync=B7e;var oee=Ie("fs");function aee(t,e,r){oee.stat(t,function(s,a){r(s,s?!1:lee(a,e))})}function B7e(t,e){return lee(oee.statSync(t),e)}function lee(t,e){return t.isFile()&&v7e(t,e)}function v7e(t,e){var r=t.mode,s=t.uid,a=t.gid,n=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),c=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),f=parseInt("100",8),p=parseInt("010",8),h=parseInt("001",8),E=f|p,C=r&h||r&p&&a===c||r&f&&s===n||r&E&&n===0;return C}});var Aee=L((SGt,fee)=>{var vGt=Ie("fs"),dx;process.platform==="win32"||global.TESTING_WINDOWS?dx=see():dx=uee();fee.exports=R_;R_.sync=S7e;function R_(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(s,a){R_(t,e||{},function(n,c){n?a(n):s(c)})})}dx(t,e||{},function(s,a){s&&(s.code==="EACCES"||e&&e.ignoreErrors)&&(s=null,a=!1),r(s,a)})}function S7e(t,e){try{return dx.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var Eee=L((DGt,yee)=>{var aE=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",pee=Ie("path"),D7e=aE?";":":",hee=Aee(),gee=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),dee=(t,e)=>{let r=e.colon||D7e,s=t.match(/\//)||aE&&t.match(/\\/)?[""]:[...aE?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],a=aE?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",n=aE?a.split(r):[""];return aE&&t.indexOf(".")!==-1&&n[0]!==""&&n.unshift(""),{pathEnv:s,pathExt:n,pathExtExe:a}},mee=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:s,pathExt:a,pathExtExe:n}=dee(t,e),c=[],f=h=>new Promise((E,C)=>{if(h===s.length)return e.all&&c.length?E(c):C(gee(t));let S=s[h],P=/^".*"$/.test(S)?S.slice(1,-1):S,I=pee.join(P,t),R=!P&&/^\.[\\\/]/.test(t)?t.slice(0,2)+I:I;E(p(R,h,0))}),p=(h,E,C)=>new Promise((S,P)=>{if(C===a.length)return S(f(E+1));let I=a[C];hee(h+I,{pathExt:n},(R,N)=>{if(!R&&N)if(e.all)c.push(h+I);else return S(h+I);return S(p(h,E,C+1))})});return r?f(0).then(h=>r(null,h),r):f(0)},b7e=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:s,pathExtExe:a}=dee(t,e),n=[];for(let c=0;c<r.length;c++){let f=r[c],p=/^".*"$/.test(f)?f.slice(1,-1):f,h=pee.join(p,t),E=!p&&/^\.[\\\/]/.test(t)?t.slice(0,2)+h:h;for(let C=0;C<s.length;C++){let S=E+s[C];try{if(hee.sync(S,{pathExt:a}))if(e.all)n.push(S);else return S}catch{}}}if(e.all&&n.length)return n;if(e.nothrow)return null;throw gee(t)};yee.exports=mee;mee.sync=b7e});var Cee=L((bGt,F_)=>{"use strict";var Iee=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(s=>s.toUpperCase()==="PATH")||"Path"};F_.exports=Iee;F_.exports.default=Iee});var See=L((PGt,vee)=>{"use strict";var wee=Ie("path"),P7e=Eee(),x7e=Cee();function Bee(t,e){let r=t.options.env||process.env,s=process.cwd(),a=t.options.cwd!=null,n=a&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(t.options.cwd)}catch{}let c;try{c=P7e.sync(t.command,{path:r[x7e({env:r})],pathExt:e?wee.delimiter:void 0})}catch{}finally{n&&process.chdir(s)}return c&&(c=wee.resolve(a?t.options.cwd:"",c)),c}function k7e(t){return Bee(t)||Bee(t,!0)}vee.exports=k7e});var Dee=L((xGt,O_)=>{"use strict";var N_=/([()\][%!^"`<>&|;, *?])/g;function Q7e(t){return t=t.replace(N_,"^$1"),t}function T7e(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(N_,"^$1"),e&&(t=t.replace(N_,"^$1")),t}O_.exports.command=Q7e;O_.exports.argument=T7e});var Pee=L((kGt,bee)=>{"use strict";bee.exports=/^#!(.*)/});var kee=L((QGt,xee)=>{"use strict";var R7e=Pee();xee.exports=(t="")=>{let e=t.match(R7e);if(!e)return null;let[r,s]=e[0].replace(/#! ?/,"").split(" "),a=r.split("/").pop();return a==="env"?s:s?`${a} ${s}`:a}});var Tee=L((TGt,Qee)=>{"use strict";var L_=Ie("fs"),F7e=kee();function N7e(t){let r=Buffer.alloc(150),s;try{s=L_.openSync(t,"r"),L_.readSync(s,r,0,150,0),L_.closeSync(s)}catch{}return F7e(r.toString())}Qee.exports=N7e});var Oee=L((RGt,Nee)=>{"use strict";var O7e=Ie("path"),Ree=See(),Fee=Dee(),L7e=Tee(),M7e=process.platform==="win32",_7e=/\.(?:com|exe)$/i,U7e=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function H7e(t){t.file=Ree(t);let e=t.file&&L7e(t.file);return e?(t.args.unshift(t.file),t.command=e,Ree(t)):t.file}function j7e(t){if(!M7e)return t;let e=H7e(t),r=!_7e.test(e);if(t.options.forceShell||r){let s=U7e.test(e);t.command=O7e.normalize(t.command),t.command=Fee.command(t.command),t.args=t.args.map(n=>Fee.argument(n,s));let a=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${a}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function q7e(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let s={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?s:j7e(s)}Nee.exports=q7e});var _ee=L((FGt,Mee)=>{"use strict";var M_=process.platform==="win32";function __(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function G7e(t,e){if(!M_)return;let r=t.emit;t.emit=function(s,a){if(s==="exit"){let n=Lee(a,e);if(n)return r.call(t,"error",n)}return r.apply(t,arguments)}}function Lee(t,e){return M_&&t===1&&!e.file?__(e.original,"spawn"):null}function W7e(t,e){return M_&&t===1&&!e.file?__(e.original,"spawnSync"):null}Mee.exports={hookChildProcess:G7e,verifyENOENT:Lee,verifyENOENTSync:W7e,notFoundError:__}});var j_=L((NGt,lE)=>{"use strict";var Uee=Ie("child_process"),U_=Oee(),H_=_ee();function Hee(t,e,r){let s=U_(t,e,r),a=Uee.spawn(s.command,s.args,s.options);return H_.hookChildProcess(a,s),a}function Y7e(t,e,r){let s=U_(t,e,r),a=Uee.spawnSync(s.command,s.args,s.options);return a.error=a.error||H_.verifyENOENTSync(a.status,s),a}lE.exports=Hee;lE.exports.spawn=Hee;lE.exports.sync=Y7e;lE.exports._parse=U_;lE.exports._enoent=H_});var qee=L((OGt,jee)=>{"use strict";function V7e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function wd(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.location=s,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,wd)}V7e(wd,Error);wd.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",C;for(C=0;C<h.parts.length;C++)E+=h.parts[C]instanceof Array?n(h.parts[C][0])+"-"+n(h.parts[C][1]):n(h.parts[C]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function s(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+s(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+s(E)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+s(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+s(E)})}function c(h){return r[h.type](h)}function f(h){var E=new Array(h.length),C,S;for(C=0;C<h.length;C++)E[C]=c(h[C]);if(E.sort(),E.length>0){for(C=1,S=1;C<E.length;C++)E[C-1]!==E[C]&&(E[S]=E[C],S++);E.length=S}switch(E.length){case 1:return E[0];case 2:return E[0]+" or "+E[1];default:return E.slice(0,-1).join(", ")+", or "+E[E.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+f(t)+" but "+p(e)+" found."};function K7e(t,e){e=e!==void 0?e:{};var r={},s={Start:Ya},a=Ya,n=function(O){return O||[]},c=function(O,J,re){return[{command:O,type:J}].concat(re||[])},f=function(O,J){return[{command:O,type:J||";"}]},p=function(O){return O},h=";",E=ur(";",!1),C="&",S=ur("&",!1),P=function(O,J){return J?{chain:O,then:J}:{chain:O}},I=function(O,J){return{type:O,line:J}},R="&&",N=ur("&&",!1),U="||",W=ur("||",!1),te=function(O,J){return J?{...O,then:J}:O},ie=function(O,J){return{type:O,chain:J}},Ae="|&",ce=ur("|&",!1),me="|",pe=ur("|",!1),Be="=",Ce=ur("=",!1),g=function(O,J){return{name:O,args:[J]}},we=function(O){return{name:O,args:[]}},ye="(",fe=ur("(",!1),se=")",X=ur(")",!1),De=function(O,J){return{type:"subshell",subshell:O,args:J}},Re="{",dt=ur("{",!1),j="}",rt=ur("}",!1),Fe=function(O,J){return{type:"group",group:O,args:J}},Ne=function(O,J){return{type:"command",args:J,envs:O}},Pe=function(O){return{type:"envs",envs:O}},Ye=function(O){return O},ke=function(O){return O},it=/^[0-9]/,_e=Zi([["0","9"]],!1,!1),x=function(O,J,re){return{type:"redirection",subtype:J,fd:O!==null?parseInt(O):null,args:[re]}},w=">>",b=ur(">>",!1),y=">&",F=ur(">&",!1),z=">",Z=ur(">",!1),$="<<<",oe=ur("<<<",!1),xe="<&",Te=ur("<&",!1),lt="<",It=ur("<",!1),qt=function(O){return{type:"argument",segments:[].concat(...O)}},ir=function(O){return O},Pt="$'",gn=ur("$'",!1),Pr="'",Ir=ur("'",!1),Nr=function(O){return[{type:"text",text:O}]},nn='""',ai=ur('""',!1),wo=function(){return{type:"text",text:""}},ns='"',to=ur('"',!1),Bo=function(O){return O},ji=function(O){return{type:"arithmetic",arithmetic:O,quoted:!0}},ro=function(O){return{type:"shell",shell:O,quoted:!0}},vo=function(O){return{type:"variable",...O,quoted:!0}},RA=function(O){return{type:"text",text:O}},pf=function(O){return{type:"arithmetic",arithmetic:O,quoted:!1}},yh=function(O){return{type:"shell",shell:O,quoted:!1}},Eh=function(O){return{type:"variable",...O,quoted:!1}},no=function(O){return{type:"glob",pattern:O}},jn=/^[^']/,Fs=Zi(["'"],!0,!1),io=function(O){return O.join("")},lu=/^[^$"]/,cu=Zi(["$",'"'],!0,!1),uu=`\\ +`,FA=ur(`\\ +`,!1),NA=function(){return""},aa="\\",la=ur("\\",!1),OA=/^[\\$"`]/,gr=Zi(["\\","$",'"',"`"],!1,!1),So=function(O){return O},Me="\\a",fu=ur("\\a",!1),Cr=function(){return"a"},hf="\\b",LA=ur("\\b",!1),MA=function(){return"\b"},Au=/^[Ee]/,pu=Zi(["E","e"],!1,!1),ac=function(){return"\x1B"},ve="\\f",Nt=ur("\\f",!1),lc=function(){return"\f"},Li="\\n",so=ur("\\n",!1),Rt=function(){return` +`},xn="\\r",ca=ur("\\r",!1),qi=function(){return"\r"},Mi="\\t",Oa=ur("\\t",!1),dn=function(){return" "},Jn="\\v",hu=ur("\\v",!1),Ih=function(){return"\v"},La=/^[\\'"?]/,Ma=Zi(["\\","'",'"',"?"],!1,!1),Ua=function(O){return String.fromCharCode(parseInt(O,16))},Xe="\\x",Ha=ur("\\x",!1),gf="\\u",cc=ur("\\u",!1),wn="\\U",ua=ur("\\U",!1),_A=function(O){return String.fromCodePoint(parseInt(O,16))},UA=/^[0-7]/,fa=Zi([["0","7"]],!1,!1),vl=/^[0-9a-fA-f]/,Mt=Zi([["0","9"],["a","f"],["A","f"]],!1,!1),kn=Ef(),Aa="{}",ja=ur("{}",!1),is=function(){return"{}"},uc="-",gu=ur("-",!1),fc="+",qa=ur("+",!1),_i=".",ws=ur(".",!1),Sl=function(O,J,re){return{type:"number",value:(O==="-"?-1:1)*parseFloat(J.join("")+"."+re.join(""))}},df=function(O,J){return{type:"number",value:(O==="-"?-1:1)*parseInt(J.join(""))}},Ac=function(O){return{type:"variable",...O}},Bi=function(O){return{type:"variable",name:O}},Qn=function(O){return O},pc="*",Je=ur("*",!1),st="/",St=ur("/",!1),lr=function(O,J,re){return{type:J==="*"?"multiplication":"division",right:re}},ee=function(O,J){return J.reduce((re,de)=>({left:re,...de}),O)},Ee=function(O,J,re){return{type:J==="+"?"addition":"subtraction",right:re}},Oe="$((",gt=ur("$((",!1),yt="))",Dt=ur("))",!1),tr=function(O){return O},fn="$(",li=ur("$(",!1),Gi=function(O){return O},Tn="${",Ga=ur("${",!1),gy=":-",X1=ur(":-",!1),Do=function(O,J){return{name:O,defaultValue:J}},dy=":-}",Ch=ur(":-}",!1),$1=function(O){return{name:O,defaultValue:[]}},bo=":+",wh=ur(":+",!1),Bh=function(O,J){return{name:O,alternativeValue:J}},du=":+}",vh=ur(":+}",!1),Rg=function(O){return{name:O,alternativeValue:[]}},Fg=function(O){return{name:O}},Ng="$",my=ur("$",!1),mf=function(O){return e.isGlobPattern(O)},Po=function(O){return O},Dl=/^[a-zA-Z0-9_]/,Sh=Zi([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Og=function(){return Cy()},bl=/^[$@*?#a-zA-Z0-9_\-]/,Pl=Zi(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),yy=/^[()}<>$|&; \t"']/,HA=Zi(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),Ey=/^[<>&; \t"']/,Iy=Zi(["<",">","&",";"," "," ",'"',"'"],!1,!1),jA=/^[ \t]/,qA=Zi([" "," "],!1,!1),Y=0,xt=0,GA=[{line:1,column:1}],xo=0,yf=[],mt=0,mu;if("startRule"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=s[e.startRule]}function Cy(){return t.substring(xt,Y)}function Lg(){return If(xt,Y)}function e2(O,J){throw J=J!==void 0?J:If(xt,Y),WA([Mg(O)],t.substring(xt,Y),J)}function Dh(O,J){throw J=J!==void 0?J:If(xt,Y),di(O,J)}function ur(O,J){return{type:"literal",text:O,ignoreCase:J}}function Zi(O,J,re){return{type:"class",parts:O,inverted:J,ignoreCase:re}}function Ef(){return{type:"any"}}function Wa(){return{type:"end"}}function Mg(O){return{type:"other",description:O}}function yu(O){var J=GA[O],re;if(J)return J;for(re=O-1;!GA[re];)re--;for(J=GA[re],J={line:J.line,column:J.column};re<O;)t.charCodeAt(re)===10?(J.line++,J.column=1):J.column++,re++;return GA[O]=J,J}function If(O,J){var re=yu(O),de=yu(J);return{start:{offset:O,line:re.line,column:re.column},end:{offset:J,line:de.line,column:de.column}}}function wt(O){Y<xo||(Y>xo&&(xo=Y,yf=[]),yf.push(O))}function di(O,J){return new wd(O,null,null,J)}function WA(O,J,re){return new wd(wd.buildMessage(O,J),O,J,re)}function Ya(){var O,J,re;for(O=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();return J!==r?(re=pa(),re===r&&(re=null),re!==r?(xt=O,J=n(re),O=J):(Y=O,O=r)):(Y=O,O=r),O}function pa(){var O,J,re,de,Ke;if(O=Y,J=bh(),J!==r){for(re=[],de=kt();de!==r;)re.push(de),de=kt();re!==r?(de=_g(),de!==r?(Ke=Va(),Ke===r&&(Ke=null),Ke!==r?(xt=O,J=c(J,de,Ke),O=J):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;if(O===r)if(O=Y,J=bh(),J!==r){for(re=[],de=kt();de!==r;)re.push(de),de=kt();re!==r?(de=_g(),de===r&&(de=null),de!==r?(xt=O,J=f(J,de),O=J):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;return O}function Va(){var O,J,re,de,Ke;for(O=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();if(J!==r)if(re=pa(),re!==r){for(de=[],Ke=kt();Ke!==r;)de.push(Ke),Ke=kt();de!==r?(xt=O,J=p(re),O=J):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r;return O}function _g(){var O;return t.charCodeAt(Y)===59?(O=h,Y++):(O=r,mt===0&&wt(E)),O===r&&(t.charCodeAt(Y)===38?(O=C,Y++):(O=r,mt===0&&wt(S))),O}function bh(){var O,J,re;return O=Y,J=YA(),J!==r?(re=Ug(),re===r&&(re=null),re!==r?(xt=O,J=P(J,re),O=J):(Y=O,O=r)):(Y=O,O=r),O}function Ug(){var O,J,re,de,Ke,ft,dr;for(O=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();if(J!==r)if(re=wy(),re!==r){for(de=[],Ke=kt();Ke!==r;)de.push(Ke),Ke=kt();if(de!==r)if(Ke=bh(),Ke!==r){for(ft=[],dr=kt();dr!==r;)ft.push(dr),dr=kt();ft!==r?(xt=O,J=I(re,Ke),O=J):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r;return O}function wy(){var O;return t.substr(Y,2)===R?(O=R,Y+=2):(O=r,mt===0&&wt(N)),O===r&&(t.substr(Y,2)===U?(O=U,Y+=2):(O=r,mt===0&&wt(W))),O}function YA(){var O,J,re;return O=Y,J=Cf(),J!==r?(re=Hg(),re===r&&(re=null),re!==r?(xt=O,J=te(J,re),O=J):(Y=O,O=r)):(Y=O,O=r),O}function Hg(){var O,J,re,de,Ke,ft,dr;for(O=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();if(J!==r)if(re=Eu(),re!==r){for(de=[],Ke=kt();Ke!==r;)de.push(Ke),Ke=kt();if(de!==r)if(Ke=YA(),Ke!==r){for(ft=[],dr=kt();dr!==r;)ft.push(dr),dr=kt();ft!==r?(xt=O,J=ie(re,Ke),O=J):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r;return O}function Eu(){var O;return t.substr(Y,2)===Ae?(O=Ae,Y+=2):(O=r,mt===0&&wt(ce)),O===r&&(t.charCodeAt(Y)===124?(O=me,Y++):(O=r,mt===0&&wt(pe))),O}function Iu(){var O,J,re,de,Ke,ft;if(O=Y,J=kh(),J!==r)if(t.charCodeAt(Y)===61?(re=Be,Y++):(re=r,mt===0&&wt(Ce)),re!==r)if(de=VA(),de!==r){for(Ke=[],ft=kt();ft!==r;)Ke.push(ft),ft=kt();Ke!==r?(xt=O,J=g(J,de),O=J):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r;else Y=O,O=r;if(O===r)if(O=Y,J=kh(),J!==r)if(t.charCodeAt(Y)===61?(re=Be,Y++):(re=r,mt===0&&wt(Ce)),re!==r){for(de=[],Ke=kt();Ke!==r;)de.push(Ke),Ke=kt();de!==r?(xt=O,J=we(J),O=J):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r;return O}function Cf(){var O,J,re,de,Ke,ft,dr,Br,_n,mi,Bs;for(O=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();if(J!==r)if(t.charCodeAt(Y)===40?(re=ye,Y++):(re=r,mt===0&&wt(fe)),re!==r){for(de=[],Ke=kt();Ke!==r;)de.push(Ke),Ke=kt();if(de!==r)if(Ke=pa(),Ke!==r){for(ft=[],dr=kt();dr!==r;)ft.push(dr),dr=kt();if(ft!==r)if(t.charCodeAt(Y)===41?(dr=se,Y++):(dr=r,mt===0&&wt(X)),dr!==r){for(Br=[],_n=kt();_n!==r;)Br.push(_n),_n=kt();if(Br!==r){for(_n=[],mi=qn();mi!==r;)_n.push(mi),mi=qn();if(_n!==r){for(mi=[],Bs=kt();Bs!==r;)mi.push(Bs),Bs=kt();mi!==r?(xt=O,J=De(Ke,_n),O=J):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r;if(O===r){for(O=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();if(J!==r)if(t.charCodeAt(Y)===123?(re=Re,Y++):(re=r,mt===0&&wt(dt)),re!==r){for(de=[],Ke=kt();Ke!==r;)de.push(Ke),Ke=kt();if(de!==r)if(Ke=pa(),Ke!==r){for(ft=[],dr=kt();dr!==r;)ft.push(dr),dr=kt();if(ft!==r)if(t.charCodeAt(Y)===125?(dr=j,Y++):(dr=r,mt===0&&wt(rt)),dr!==r){for(Br=[],_n=kt();_n!==r;)Br.push(_n),_n=kt();if(Br!==r){for(_n=[],mi=qn();mi!==r;)_n.push(mi),mi=qn();if(_n!==r){for(mi=[],Bs=kt();Bs!==r;)mi.push(Bs),Bs=kt();mi!==r?(xt=O,J=Fe(Ke,_n),O=J):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;else Y=O,O=r;if(O===r){for(O=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();if(J!==r){for(re=[],de=Iu();de!==r;)re.push(de),de=Iu();if(re!==r){for(de=[],Ke=kt();Ke!==r;)de.push(Ke),Ke=kt();if(de!==r){if(Ke=[],ft=Cu(),ft!==r)for(;ft!==r;)Ke.push(ft),ft=Cu();else Ke=r;if(Ke!==r){for(ft=[],dr=kt();dr!==r;)ft.push(dr),dr=kt();ft!==r?(xt=O,J=Ne(re,Ke),O=J):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r}else Y=O,O=r}else Y=O,O=r;if(O===r){for(O=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();if(J!==r){if(re=[],de=Iu(),de!==r)for(;de!==r;)re.push(de),de=Iu();else re=r;if(re!==r){for(de=[],Ke=kt();Ke!==r;)de.push(Ke),Ke=kt();de!==r?(xt=O,J=Pe(re),O=J):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r}}}return O}function Ns(){var O,J,re,de,Ke;for(O=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();if(J!==r){if(re=[],de=ki(),de!==r)for(;de!==r;)re.push(de),de=ki();else re=r;if(re!==r){for(de=[],Ke=kt();Ke!==r;)de.push(Ke),Ke=kt();de!==r?(xt=O,J=Ye(re),O=J):(Y=O,O=r)}else Y=O,O=r}else Y=O,O=r;return O}function Cu(){var O,J,re;for(O=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();if(J!==r?(re=qn(),re!==r?(xt=O,J=ke(re),O=J):(Y=O,O=r)):(Y=O,O=r),O===r){for(O=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();J!==r?(re=ki(),re!==r?(xt=O,J=ke(re),O=J):(Y=O,O=r)):(Y=O,O=r)}return O}function qn(){var O,J,re,de,Ke;for(O=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();return J!==r?(it.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,mt===0&&wt(_e)),re===r&&(re=null),re!==r?(de=ss(),de!==r?(Ke=ki(),Ke!==r?(xt=O,J=x(re,de,Ke),O=J):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O}function ss(){var O;return t.substr(Y,2)===w?(O=w,Y+=2):(O=r,mt===0&&wt(b)),O===r&&(t.substr(Y,2)===y?(O=y,Y+=2):(O=r,mt===0&&wt(F)),O===r&&(t.charCodeAt(Y)===62?(O=z,Y++):(O=r,mt===0&&wt(Z)),O===r&&(t.substr(Y,3)===$?(O=$,Y+=3):(O=r,mt===0&&wt(oe)),O===r&&(t.substr(Y,2)===xe?(O=xe,Y+=2):(O=r,mt===0&&wt(Te)),O===r&&(t.charCodeAt(Y)===60?(O=lt,Y++):(O=r,mt===0&&wt(It))))))),O}function ki(){var O,J,re;for(O=Y,J=[],re=kt();re!==r;)J.push(re),re=kt();return J!==r?(re=VA(),re!==r?(xt=O,J=ke(re),O=J):(Y=O,O=r)):(Y=O,O=r),O}function VA(){var O,J,re;if(O=Y,J=[],re=wf(),re!==r)for(;re!==r;)J.push(re),re=wf();else J=r;return J!==r&&(xt=O,J=qt(J)),O=J,O}function wf(){var O,J;return O=Y,J=mn(),J!==r&&(xt=O,J=ir(J)),O=J,O===r&&(O=Y,J=jg(),J!==r&&(xt=O,J=ir(J)),O=J,O===r&&(O=Y,J=qg(),J!==r&&(xt=O,J=ir(J)),O=J,O===r&&(O=Y,J=os(),J!==r&&(xt=O,J=ir(J)),O=J))),O}function mn(){var O,J,re,de;return O=Y,t.substr(Y,2)===Pt?(J=Pt,Y+=2):(J=r,mt===0&&wt(gn)),J!==r?(re=yn(),re!==r?(t.charCodeAt(Y)===39?(de=Pr,Y++):(de=r,mt===0&&wt(Ir)),de!==r?(xt=O,J=Nr(re),O=J):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O}function jg(){var O,J,re,de;return O=Y,t.charCodeAt(Y)===39?(J=Pr,Y++):(J=r,mt===0&&wt(Ir)),J!==r?(re=Bf(),re!==r?(t.charCodeAt(Y)===39?(de=Pr,Y++):(de=r,mt===0&&wt(Ir)),de!==r?(xt=O,J=Nr(re),O=J):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O}function qg(){var O,J,re,de;if(O=Y,t.substr(Y,2)===nn?(J=nn,Y+=2):(J=r,mt===0&&wt(ai)),J!==r&&(xt=O,J=wo()),O=J,O===r)if(O=Y,t.charCodeAt(Y)===34?(J=ns,Y++):(J=r,mt===0&&wt(to)),J!==r){for(re=[],de=xl();de!==r;)re.push(de),de=xl();re!==r?(t.charCodeAt(Y)===34?(de=ns,Y++):(de=r,mt===0&&wt(to)),de!==r?(xt=O,J=Bo(re),O=J):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;return O}function os(){var O,J,re;if(O=Y,J=[],re=ko(),re!==r)for(;re!==r;)J.push(re),re=ko();else J=r;return J!==r&&(xt=O,J=Bo(J)),O=J,O}function xl(){var O,J;return O=Y,J=Xr(),J!==r&&(xt=O,J=ji(J)),O=J,O===r&&(O=Y,J=xh(),J!==r&&(xt=O,J=ro(J)),O=J,O===r&&(O=Y,J=JA(),J!==r&&(xt=O,J=vo(J)),O=J,O===r&&(O=Y,J=vf(),J!==r&&(xt=O,J=RA(J)),O=J))),O}function ko(){var O,J;return O=Y,J=Xr(),J!==r&&(xt=O,J=pf(J)),O=J,O===r&&(O=Y,J=xh(),J!==r&&(xt=O,J=yh(J)),O=J,O===r&&(O=Y,J=JA(),J!==r&&(xt=O,J=Eh(J)),O=J,O===r&&(O=Y,J=By(),J!==r&&(xt=O,J=no(J)),O=J,O===r&&(O=Y,J=Ph(),J!==r&&(xt=O,J=RA(J)),O=J)))),O}function Bf(){var O,J,re;for(O=Y,J=[],jn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,mt===0&&wt(Fs));re!==r;)J.push(re),jn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,mt===0&&wt(Fs));return J!==r&&(xt=O,J=io(J)),O=J,O}function vf(){var O,J,re;if(O=Y,J=[],re=kl(),re===r&&(lu.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,mt===0&&wt(cu))),re!==r)for(;re!==r;)J.push(re),re=kl(),re===r&&(lu.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,mt===0&&wt(cu)));else J=r;return J!==r&&(xt=O,J=io(J)),O=J,O}function kl(){var O,J,re;return O=Y,t.substr(Y,2)===uu?(J=uu,Y+=2):(J=r,mt===0&&wt(FA)),J!==r&&(xt=O,J=NA()),O=J,O===r&&(O=Y,t.charCodeAt(Y)===92?(J=aa,Y++):(J=r,mt===0&&wt(la)),J!==r?(OA.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,mt===0&&wt(gr)),re!==r?(xt=O,J=So(re),O=J):(Y=O,O=r)):(Y=O,O=r)),O}function yn(){var O,J,re;for(O=Y,J=[],re=Qo(),re===r&&(jn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,mt===0&&wt(Fs)));re!==r;)J.push(re),re=Qo(),re===r&&(jn.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,mt===0&&wt(Fs)));return J!==r&&(xt=O,J=io(J)),O=J,O}function Qo(){var O,J,re;return O=Y,t.substr(Y,2)===Me?(J=Me,Y+=2):(J=r,mt===0&&wt(fu)),J!==r&&(xt=O,J=Cr()),O=J,O===r&&(O=Y,t.substr(Y,2)===hf?(J=hf,Y+=2):(J=r,mt===0&&wt(LA)),J!==r&&(xt=O,J=MA()),O=J,O===r&&(O=Y,t.charCodeAt(Y)===92?(J=aa,Y++):(J=r,mt===0&&wt(la)),J!==r?(Au.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,mt===0&&wt(pu)),re!==r?(xt=O,J=ac(),O=J):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===ve?(J=ve,Y+=2):(J=r,mt===0&&wt(Nt)),J!==r&&(xt=O,J=lc()),O=J,O===r&&(O=Y,t.substr(Y,2)===Li?(J=Li,Y+=2):(J=r,mt===0&&wt(so)),J!==r&&(xt=O,J=Rt()),O=J,O===r&&(O=Y,t.substr(Y,2)===xn?(J=xn,Y+=2):(J=r,mt===0&&wt(ca)),J!==r&&(xt=O,J=qi()),O=J,O===r&&(O=Y,t.substr(Y,2)===Mi?(J=Mi,Y+=2):(J=r,mt===0&&wt(Oa)),J!==r&&(xt=O,J=dn()),O=J,O===r&&(O=Y,t.substr(Y,2)===Jn?(J=Jn,Y+=2):(J=r,mt===0&&wt(hu)),J!==r&&(xt=O,J=Ih()),O=J,O===r&&(O=Y,t.charCodeAt(Y)===92?(J=aa,Y++):(J=r,mt===0&&wt(la)),J!==r?(La.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,mt===0&&wt(Ma)),re!==r?(xt=O,J=So(re),O=J):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=wu()))))))))),O}function wu(){var O,J,re,de,Ke,ft,dr,Br,_n,mi,Bs,zA;return O=Y,t.charCodeAt(Y)===92?(J=aa,Y++):(J=r,mt===0&&wt(la)),J!==r?(re=ha(),re!==r?(xt=O,J=Ua(re),O=J):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===Xe?(J=Xe,Y+=2):(J=r,mt===0&&wt(Ha)),J!==r?(re=Y,de=Y,Ke=ha(),Ke!==r?(ft=Os(),ft!==r?(Ke=[Ke,ft],de=Ke):(Y=de,de=r)):(Y=de,de=r),de===r&&(de=ha()),de!==r?re=t.substring(re,Y):re=de,re!==r?(xt=O,J=Ua(re),O=J):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===gf?(J=gf,Y+=2):(J=r,mt===0&&wt(cc)),J!==r?(re=Y,de=Y,Ke=Os(),Ke!==r?(ft=Os(),ft!==r?(dr=Os(),dr!==r?(Br=Os(),Br!==r?(Ke=[Ke,ft,dr,Br],de=Ke):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r),de!==r?re=t.substring(re,Y):re=de,re!==r?(xt=O,J=Ua(re),O=J):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===wn?(J=wn,Y+=2):(J=r,mt===0&&wt(ua)),J!==r?(re=Y,de=Y,Ke=Os(),Ke!==r?(ft=Os(),ft!==r?(dr=Os(),dr!==r?(Br=Os(),Br!==r?(_n=Os(),_n!==r?(mi=Os(),mi!==r?(Bs=Os(),Bs!==r?(zA=Os(),zA!==r?(Ke=[Ke,ft,dr,Br,_n,mi,Bs,zA],de=Ke):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r)):(Y=de,de=r),de!==r?re=t.substring(re,Y):re=de,re!==r?(xt=O,J=_A(re),O=J):(Y=O,O=r)):(Y=O,O=r)))),O}function ha(){var O;return UA.test(t.charAt(Y))?(O=t.charAt(Y),Y++):(O=r,mt===0&&wt(fa)),O}function Os(){var O;return vl.test(t.charAt(Y))?(O=t.charAt(Y),Y++):(O=r,mt===0&&wt(Mt)),O}function Ph(){var O,J,re,de,Ke;if(O=Y,J=[],re=Y,t.charCodeAt(Y)===92?(de=aa,Y++):(de=r,mt===0&&wt(la)),de!==r?(t.length>Y?(Ke=t.charAt(Y),Y++):(Ke=r,mt===0&&wt(kn)),Ke!==r?(xt=re,de=So(Ke),re=de):(Y=re,re=r)):(Y=re,re=r),re===r&&(re=Y,t.substr(Y,2)===Aa?(de=Aa,Y+=2):(de=r,mt===0&&wt(ja)),de!==r&&(xt=re,de=is()),re=de,re===r&&(re=Y,de=Y,mt++,Ke=vy(),mt--,Ke===r?de=void 0:(Y=de,de=r),de!==r?(t.length>Y?(Ke=t.charAt(Y),Y++):(Ke=r,mt===0&&wt(kn)),Ke!==r?(xt=re,de=So(Ke),re=de):(Y=re,re=r)):(Y=re,re=r))),re!==r)for(;re!==r;)J.push(re),re=Y,t.charCodeAt(Y)===92?(de=aa,Y++):(de=r,mt===0&&wt(la)),de!==r?(t.length>Y?(Ke=t.charAt(Y),Y++):(Ke=r,mt===0&&wt(kn)),Ke!==r?(xt=re,de=So(Ke),re=de):(Y=re,re=r)):(Y=re,re=r),re===r&&(re=Y,t.substr(Y,2)===Aa?(de=Aa,Y+=2):(de=r,mt===0&&wt(ja)),de!==r&&(xt=re,de=is()),re=de,re===r&&(re=Y,de=Y,mt++,Ke=vy(),mt--,Ke===r?de=void 0:(Y=de,de=r),de!==r?(t.length>Y?(Ke=t.charAt(Y),Y++):(Ke=r,mt===0&&wt(kn)),Ke!==r?(xt=re,de=So(Ke),re=de):(Y=re,re=r)):(Y=re,re=r)));else J=r;return J!==r&&(xt=O,J=io(J)),O=J,O}function KA(){var O,J,re,de,Ke,ft;if(O=Y,t.charCodeAt(Y)===45?(J=uc,Y++):(J=r,mt===0&&wt(gu)),J===r&&(t.charCodeAt(Y)===43?(J=fc,Y++):(J=r,mt===0&&wt(qa))),J===r&&(J=null),J!==r){if(re=[],it.test(t.charAt(Y))?(de=t.charAt(Y),Y++):(de=r,mt===0&&wt(_e)),de!==r)for(;de!==r;)re.push(de),it.test(t.charAt(Y))?(de=t.charAt(Y),Y++):(de=r,mt===0&&wt(_e));else re=r;if(re!==r)if(t.charCodeAt(Y)===46?(de=_i,Y++):(de=r,mt===0&&wt(ws)),de!==r){if(Ke=[],it.test(t.charAt(Y))?(ft=t.charAt(Y),Y++):(ft=r,mt===0&&wt(_e)),ft!==r)for(;ft!==r;)Ke.push(ft),it.test(t.charAt(Y))?(ft=t.charAt(Y),Y++):(ft=r,mt===0&&wt(_e));else Ke=r;Ke!==r?(xt=O,J=Sl(J,re,Ke),O=J):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;if(O===r){if(O=Y,t.charCodeAt(Y)===45?(J=uc,Y++):(J=r,mt===0&&wt(gu)),J===r&&(t.charCodeAt(Y)===43?(J=fc,Y++):(J=r,mt===0&&wt(qa))),J===r&&(J=null),J!==r){if(re=[],it.test(t.charAt(Y))?(de=t.charAt(Y),Y++):(de=r,mt===0&&wt(_e)),de!==r)for(;de!==r;)re.push(de),it.test(t.charAt(Y))?(de=t.charAt(Y),Y++):(de=r,mt===0&&wt(_e));else re=r;re!==r?(xt=O,J=df(J,re),O=J):(Y=O,O=r)}else Y=O,O=r;if(O===r&&(O=Y,J=JA(),J!==r&&(xt=O,J=Ac(J)),O=J,O===r&&(O=Y,J=hc(),J!==r&&(xt=O,J=Bi(J)),O=J,O===r)))if(O=Y,t.charCodeAt(Y)===40?(J=ye,Y++):(J=r,mt===0&&wt(fe)),J!==r){for(re=[],de=kt();de!==r;)re.push(de),de=kt();if(re!==r)if(de=oo(),de!==r){for(Ke=[],ft=kt();ft!==r;)Ke.push(ft),ft=kt();Ke!==r?(t.charCodeAt(Y)===41?(ft=se,Y++):(ft=r,mt===0&&wt(X)),ft!==r?(xt=O,J=Qn(de),O=J):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r}return O}function Sf(){var O,J,re,de,Ke,ft,dr,Br;if(O=Y,J=KA(),J!==r){for(re=[],de=Y,Ke=[],ft=kt();ft!==r;)Ke.push(ft),ft=kt();if(Ke!==r)if(t.charCodeAt(Y)===42?(ft=pc,Y++):(ft=r,mt===0&&wt(Je)),ft===r&&(t.charCodeAt(Y)===47?(ft=st,Y++):(ft=r,mt===0&&wt(St))),ft!==r){for(dr=[],Br=kt();Br!==r;)dr.push(Br),Br=kt();dr!==r?(Br=KA(),Br!==r?(xt=de,Ke=lr(J,ft,Br),de=Ke):(Y=de,de=r)):(Y=de,de=r)}else Y=de,de=r;else Y=de,de=r;for(;de!==r;){for(re.push(de),de=Y,Ke=[],ft=kt();ft!==r;)Ke.push(ft),ft=kt();if(Ke!==r)if(t.charCodeAt(Y)===42?(ft=pc,Y++):(ft=r,mt===0&&wt(Je)),ft===r&&(t.charCodeAt(Y)===47?(ft=st,Y++):(ft=r,mt===0&&wt(St))),ft!==r){for(dr=[],Br=kt();Br!==r;)dr.push(Br),Br=kt();dr!==r?(Br=KA(),Br!==r?(xt=de,Ke=lr(J,ft,Br),de=Ke):(Y=de,de=r)):(Y=de,de=r)}else Y=de,de=r;else Y=de,de=r}re!==r?(xt=O,J=ee(J,re),O=J):(Y=O,O=r)}else Y=O,O=r;return O}function oo(){var O,J,re,de,Ke,ft,dr,Br;if(O=Y,J=Sf(),J!==r){for(re=[],de=Y,Ke=[],ft=kt();ft!==r;)Ke.push(ft),ft=kt();if(Ke!==r)if(t.charCodeAt(Y)===43?(ft=fc,Y++):(ft=r,mt===0&&wt(qa)),ft===r&&(t.charCodeAt(Y)===45?(ft=uc,Y++):(ft=r,mt===0&&wt(gu))),ft!==r){for(dr=[],Br=kt();Br!==r;)dr.push(Br),Br=kt();dr!==r?(Br=Sf(),Br!==r?(xt=de,Ke=Ee(J,ft,Br),de=Ke):(Y=de,de=r)):(Y=de,de=r)}else Y=de,de=r;else Y=de,de=r;for(;de!==r;){for(re.push(de),de=Y,Ke=[],ft=kt();ft!==r;)Ke.push(ft),ft=kt();if(Ke!==r)if(t.charCodeAt(Y)===43?(ft=fc,Y++):(ft=r,mt===0&&wt(qa)),ft===r&&(t.charCodeAt(Y)===45?(ft=uc,Y++):(ft=r,mt===0&&wt(gu))),ft!==r){for(dr=[],Br=kt();Br!==r;)dr.push(Br),Br=kt();dr!==r?(Br=Sf(),Br!==r?(xt=de,Ke=Ee(J,ft,Br),de=Ke):(Y=de,de=r)):(Y=de,de=r)}else Y=de,de=r;else Y=de,de=r}re!==r?(xt=O,J=ee(J,re),O=J):(Y=O,O=r)}else Y=O,O=r;return O}function Xr(){var O,J,re,de,Ke,ft;if(O=Y,t.substr(Y,3)===Oe?(J=Oe,Y+=3):(J=r,mt===0&&wt(gt)),J!==r){for(re=[],de=kt();de!==r;)re.push(de),de=kt();if(re!==r)if(de=oo(),de!==r){for(Ke=[],ft=kt();ft!==r;)Ke.push(ft),ft=kt();Ke!==r?(t.substr(Y,2)===yt?(ft=yt,Y+=2):(ft=r,mt===0&&wt(Dt)),ft!==r?(xt=O,J=tr(de),O=J):(Y=O,O=r)):(Y=O,O=r)}else Y=O,O=r;else Y=O,O=r}else Y=O,O=r;return O}function xh(){var O,J,re,de;return O=Y,t.substr(Y,2)===fn?(J=fn,Y+=2):(J=r,mt===0&&wt(li)),J!==r?(re=pa(),re!==r?(t.charCodeAt(Y)===41?(de=se,Y++):(de=r,mt===0&&wt(X)),de!==r?(xt=O,J=Gi(re),O=J):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O}function JA(){var O,J,re,de,Ke,ft;return O=Y,t.substr(Y,2)===Tn?(J=Tn,Y+=2):(J=r,mt===0&&wt(Ga)),J!==r?(re=hc(),re!==r?(t.substr(Y,2)===gy?(de=gy,Y+=2):(de=r,mt===0&&wt(X1)),de!==r?(Ke=Ns(),Ke!==r?(t.charCodeAt(Y)===125?(ft=j,Y++):(ft=r,mt===0&&wt(rt)),ft!==r?(xt=O,J=Do(re,Ke),O=J):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===Tn?(J=Tn,Y+=2):(J=r,mt===0&&wt(Ga)),J!==r?(re=hc(),re!==r?(t.substr(Y,3)===dy?(de=dy,Y+=3):(de=r,mt===0&&wt(Ch)),de!==r?(xt=O,J=$1(re),O=J):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===Tn?(J=Tn,Y+=2):(J=r,mt===0&&wt(Ga)),J!==r?(re=hc(),re!==r?(t.substr(Y,2)===bo?(de=bo,Y+=2):(de=r,mt===0&&wt(wh)),de!==r?(Ke=Ns(),Ke!==r?(t.charCodeAt(Y)===125?(ft=j,Y++):(ft=r,mt===0&&wt(rt)),ft!==r?(xt=O,J=Bh(re,Ke),O=J):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===Tn?(J=Tn,Y+=2):(J=r,mt===0&&wt(Ga)),J!==r?(re=hc(),re!==r?(t.substr(Y,3)===du?(de=du,Y+=3):(de=r,mt===0&&wt(vh)),de!==r?(xt=O,J=Rg(re),O=J):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.substr(Y,2)===Tn?(J=Tn,Y+=2):(J=r,mt===0&&wt(Ga)),J!==r?(re=hc(),re!==r?(t.charCodeAt(Y)===125?(de=j,Y++):(de=r,mt===0&&wt(rt)),de!==r?(xt=O,J=Fg(re),O=J):(Y=O,O=r)):(Y=O,O=r)):(Y=O,O=r),O===r&&(O=Y,t.charCodeAt(Y)===36?(J=Ng,Y++):(J=r,mt===0&&wt(my)),J!==r?(re=hc(),re!==r?(xt=O,J=Fg(re),O=J):(Y=O,O=r)):(Y=O,O=r)))))),O}function By(){var O,J,re;return O=Y,J=Gg(),J!==r?(xt=Y,re=mf(J),re?re=void 0:re=r,re!==r?(xt=O,J=Po(J),O=J):(Y=O,O=r)):(Y=O,O=r),O}function Gg(){var O,J,re,de,Ke;if(O=Y,J=[],re=Y,de=Y,mt++,Ke=Qh(),mt--,Ke===r?de=void 0:(Y=de,de=r),de!==r?(t.length>Y?(Ke=t.charAt(Y),Y++):(Ke=r,mt===0&&wt(kn)),Ke!==r?(xt=re,de=So(Ke),re=de):(Y=re,re=r)):(Y=re,re=r),re!==r)for(;re!==r;)J.push(re),re=Y,de=Y,mt++,Ke=Qh(),mt--,Ke===r?de=void 0:(Y=de,de=r),de!==r?(t.length>Y?(Ke=t.charAt(Y),Y++):(Ke=r,mt===0&&wt(kn)),Ke!==r?(xt=re,de=So(Ke),re=de):(Y=re,re=r)):(Y=re,re=r);else J=r;return J!==r&&(xt=O,J=io(J)),O=J,O}function kh(){var O,J,re;if(O=Y,J=[],Dl.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,mt===0&&wt(Sh)),re!==r)for(;re!==r;)J.push(re),Dl.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,mt===0&&wt(Sh));else J=r;return J!==r&&(xt=O,J=Og()),O=J,O}function hc(){var O,J,re;if(O=Y,J=[],bl.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,mt===0&&wt(Pl)),re!==r)for(;re!==r;)J.push(re),bl.test(t.charAt(Y))?(re=t.charAt(Y),Y++):(re=r,mt===0&&wt(Pl));else J=r;return J!==r&&(xt=O,J=Og()),O=J,O}function vy(){var O;return yy.test(t.charAt(Y))?(O=t.charAt(Y),Y++):(O=r,mt===0&&wt(HA)),O}function Qh(){var O;return Ey.test(t.charAt(Y))?(O=t.charAt(Y),Y++):(O=r,mt===0&&wt(Iy)),O}function kt(){var O,J;if(O=[],jA.test(t.charAt(Y))?(J=t.charAt(Y),Y++):(J=r,mt===0&&wt(qA)),J!==r)for(;J!==r;)O.push(J),jA.test(t.charAt(Y))?(J=t.charAt(Y),Y++):(J=r,mt===0&&wt(qA));else O=r;return O}if(mu=a(),mu!==r&&Y===t.length)return mu;throw mu!==r&&Y<t.length&&wt(Wa()),WA(yf,xo<t.length?t.charAt(xo):null,xo<t.length?If(xo,xo+1):If(xo,xo))}jee.exports={SyntaxError:wd,parse:K7e}});function yx(t,e={isGlobPattern:()=>!1}){try{return(0,Gee.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function cE(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:s},a)=>`${Ex(r)}${s===";"?a!==t.length-1||e?";":"":" &"}`).join(" ")}function Ex(t){return`${uE(t.chain)}${t.then?` ${q_(t.then)}`:""}`}function q_(t){return`${t.type} ${Ex(t.line)}`}function uE(t){return`${W_(t)}${t.then?` ${G_(t.then)}`:""}`}function G_(t){return`${t.type} ${uE(t.chain)}`}function W_(t){switch(t.type){case"command":return`${t.envs.length>0?`${t.envs.map(e=>mx(e)).join(" ")} `:""}${t.args.map(e=>Y_(e)).join(" ")}`;case"subshell":return`(${cE(t.subshell)})${t.args.length>0?` ${t.args.map(e=>H2(e)).join(" ")}`:""}`;case"group":return`{ ${cE(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>H2(e)).join(" ")}`:""}`;case"envs":return t.envs.map(e=>mx(e)).join(" ");default:throw new Error(`Unsupported command type: "${t.type}"`)}}function mx(t){return`${t.name}=${t.args[0]?Bd(t.args[0]):""}`}function Y_(t){switch(t.type){case"redirection":return H2(t);case"argument":return Bd(t);default:throw new Error(`Unsupported argument type: "${t.type}"`)}}function H2(t){return`${t.subtype} ${t.args.map(e=>Bd(e)).join(" ")}`}function Bd(t){return t.segments.map(e=>V_(e)).join("")}function V_(t){let e=(s,a)=>a?`"${s}"`:s,r=s=>s===""?"''":s.match(/[()}<>$|&;"'\n\t ]/)?s.match(/['\t\p{C}]/u)?s.match(/'/)?`"${s.replace(/["$\t\p{C}]/u,z7e)}"`:`$'${s.replace(/[\t\p{C}]/u,Yee)}'`:`'${s}'`:s;switch(t.type){case"text":return r(t.text);case"glob":return t.pattern;case"shell":return e(`$(${cE(t.shell)})`,t.quoted);case"variable":return e(typeof t.defaultValue>"u"?typeof t.alternativeValue>"u"?`\${${t.name}}`:t.alternativeValue.length===0?`\${${t.name}:+}`:`\${${t.name}:+${t.alternativeValue.map(s=>Bd(s)).join(" ")}}`:t.defaultValue.length===0?`\${${t.name}:-}`:`\${${t.name}:-${t.defaultValue.map(s=>Bd(s)).join(" ")}}`,t.quoted);case"arithmetic":return`$(( ${Ix(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${t.type}"`)}}function Ix(t){let e=a=>{switch(a){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${a}"`)}},r=(a,n)=>n?`( ${a} )`:a,s=a=>r(Ix(a),!["number","variable"].includes(a.type));switch(t.type){case"number":return String(t.value);case"variable":return t.name;default:return`${s(t.left)} ${e(t.type)} ${s(t.right)}`}}var Gee,Wee,J7e,Yee,z7e,Vee=Ct(()=>{Gee=et(qee());Wee=new Map([["\f","\\f"],[` +`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),J7e=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(Wee,([t,e])=>[t,`"$'${e}'"`])]),Yee=t=>Wee.get(t)??`\\x${t.charCodeAt(0).toString(16).padStart(2,"0")}`,z7e=t=>J7e.get(t)??`"$'${Yee(t)}'"`});var Jee=L((zGt,Kee)=>{"use strict";function Z7e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function vd(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.location=s,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,vd)}Z7e(vd,Error);vd.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",C;for(C=0;C<h.parts.length;C++)E+=h.parts[C]instanceof Array?n(h.parts[C][0])+"-"+n(h.parts[C][1]):n(h.parts[C]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function s(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+s(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+s(E)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+s(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+s(E)})}function c(h){return r[h.type](h)}function f(h){var E=new Array(h.length),C,S;for(C=0;C<h.length;C++)E[C]=c(h[C]);if(E.sort(),E.length>0){for(C=1,S=1;C<E.length;C++)E[C-1]!==E[C]&&(E[S]=E[C],S++);E.length=S}switch(E.length){case 1:return E[0];case 2:return E[0]+" or "+E[1];default:return E.slice(0,-1).join(", ")+", or "+E[E.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+f(t)+" but "+p(e)+" found."};function X7e(t,e){e=e!==void 0?e:{};var r={},s={resolution:Ne},a=Ne,n="/",c=ye("/",!1),f=function(_e,x){return{from:_e,descriptor:x}},p=function(_e){return{descriptor:_e}},h="@",E=ye("@",!1),C=function(_e,x){return{fullName:_e,description:x}},S=function(_e){return{fullName:_e}},P=function(){return Be()},I=/^[^\/@]/,R=fe(["/","@"],!0,!1),N=/^[^\/]/,U=fe(["/"],!0,!1),W=0,te=0,ie=[{line:1,column:1}],Ae=0,ce=[],me=0,pe;if("startRule"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=s[e.startRule]}function Be(){return t.substring(te,W)}function Ce(){return dt(te,W)}function g(_e,x){throw x=x!==void 0?x:dt(te,W),Fe([De(_e)],t.substring(te,W),x)}function we(_e,x){throw x=x!==void 0?x:dt(te,W),rt(_e,x)}function ye(_e,x){return{type:"literal",text:_e,ignoreCase:x}}function fe(_e,x,w){return{type:"class",parts:_e,inverted:x,ignoreCase:w}}function se(){return{type:"any"}}function X(){return{type:"end"}}function De(_e){return{type:"other",description:_e}}function Re(_e){var x=ie[_e],w;if(x)return x;for(w=_e-1;!ie[w];)w--;for(x=ie[w],x={line:x.line,column:x.column};w<_e;)t.charCodeAt(w)===10?(x.line++,x.column=1):x.column++,w++;return ie[_e]=x,x}function dt(_e,x){var w=Re(_e),b=Re(x);return{start:{offset:_e,line:w.line,column:w.column},end:{offset:x,line:b.line,column:b.column}}}function j(_e){W<Ae||(W>Ae&&(Ae=W,ce=[]),ce.push(_e))}function rt(_e,x){return new vd(_e,null,null,x)}function Fe(_e,x,w){return new vd(vd.buildMessage(_e,x),_e,x,w)}function Ne(){var _e,x,w,b;return _e=W,x=Pe(),x!==r?(t.charCodeAt(W)===47?(w=n,W++):(w=r,me===0&&j(c)),w!==r?(b=Pe(),b!==r?(te=_e,x=f(x,b),_e=x):(W=_e,_e=r)):(W=_e,_e=r)):(W=_e,_e=r),_e===r&&(_e=W,x=Pe(),x!==r&&(te=_e,x=p(x)),_e=x),_e}function Pe(){var _e,x,w,b;return _e=W,x=Ye(),x!==r?(t.charCodeAt(W)===64?(w=h,W++):(w=r,me===0&&j(E)),w!==r?(b=it(),b!==r?(te=_e,x=C(x,b),_e=x):(W=_e,_e=r)):(W=_e,_e=r)):(W=_e,_e=r),_e===r&&(_e=W,x=Ye(),x!==r&&(te=_e,x=S(x)),_e=x),_e}function Ye(){var _e,x,w,b,y;return _e=W,t.charCodeAt(W)===64?(x=h,W++):(x=r,me===0&&j(E)),x!==r?(w=ke(),w!==r?(t.charCodeAt(W)===47?(b=n,W++):(b=r,me===0&&j(c)),b!==r?(y=ke(),y!==r?(te=_e,x=P(),_e=x):(W=_e,_e=r)):(W=_e,_e=r)):(W=_e,_e=r)):(W=_e,_e=r),_e===r&&(_e=W,x=ke(),x!==r&&(te=_e,x=P()),_e=x),_e}function ke(){var _e,x,w;if(_e=W,x=[],I.test(t.charAt(W))?(w=t.charAt(W),W++):(w=r,me===0&&j(R)),w!==r)for(;w!==r;)x.push(w),I.test(t.charAt(W))?(w=t.charAt(W),W++):(w=r,me===0&&j(R));else x=r;return x!==r&&(te=_e,x=P()),_e=x,_e}function it(){var _e,x,w;if(_e=W,x=[],N.test(t.charAt(W))?(w=t.charAt(W),W++):(w=r,me===0&&j(U)),w!==r)for(;w!==r;)x.push(w),N.test(t.charAt(W))?(w=t.charAt(W),W++):(w=r,me===0&&j(U));else x=r;return x!==r&&(te=_e,x=P()),_e=x,_e}if(pe=a(),pe!==r&&W===t.length)return pe;throw pe!==r&&W<t.length&&j(X()),Fe(ce,Ae<t.length?t.charAt(Ae):null,Ae<t.length?dt(Ae,Ae+1):dt(Ae,Ae))}Kee.exports={SyntaxError:vd,parse:X7e}});function Cx(t){let e=t.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${t}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,zee.parse)(t)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function wx(t){let e="";return t.from&&(e+=t.from.fullName,t.from.description&&(e+=`@${t.from.description}`),e+="/"),e+=t.descriptor.fullName,t.descriptor.description&&(e+=`@${t.descriptor.description}`),e}var zee,Zee=Ct(()=>{zee=et(Jee())});var Dd=L((XGt,Sd)=>{"use strict";function Xee(t){return typeof t>"u"||t===null}function $7e(t){return typeof t=="object"&&t!==null}function eKe(t){return Array.isArray(t)?t:Xee(t)?[]:[t]}function tKe(t,e){var r,s,a,n;if(e)for(n=Object.keys(e),r=0,s=n.length;r<s;r+=1)a=n[r],t[a]=e[a];return t}function rKe(t,e){var r="",s;for(s=0;s<e;s+=1)r+=t;return r}function nKe(t){return t===0&&Number.NEGATIVE_INFINITY===1/t}Sd.exports.isNothing=Xee;Sd.exports.isObject=$7e;Sd.exports.toArray=eKe;Sd.exports.repeat=rKe;Sd.exports.isNegativeZero=nKe;Sd.exports.extend=tKe});var fE=L(($Gt,$ee)=>{"use strict";function j2(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}j2.prototype=Object.create(Error.prototype);j2.prototype.constructor=j2;j2.prototype.toString=function(e){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!e&&this.mark&&(r+=" "+this.mark.toString()),r};$ee.exports=j2});var rte=L((e5t,tte)=>{"use strict";var ete=Dd();function K_(t,e,r,s,a){this.name=t,this.buffer=e,this.position=r,this.line=s,this.column=a}K_.prototype.getSnippet=function(e,r){var s,a,n,c,f;if(!this.buffer)return null;for(e=e||4,r=r||75,s="",a=this.position;a>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){s=" ... ",a+=5;break}for(n="",c=this.position;c<this.buffer.length&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(c))===-1;)if(c+=1,c-this.position>r/2-1){n=" ... ",c-=5;break}return f=this.buffer.slice(a,c),ete.repeat(" ",e)+s+f+n+` +`+ete.repeat(" ",e+this.position-a+s.length)+"^"};K_.prototype.toString=function(e){var r,s="";return this.name&&(s+='in "'+this.name+'" '),s+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(s+=`: +`+r)),s};tte.exports=K_});var bs=L((t5t,ite)=>{"use strict";var nte=fE(),iKe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],sKe=["scalar","sequence","mapping"];function oKe(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(s){e[String(s)]=r})}),e}function aKe(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(iKe.indexOf(r)===-1)throw new nte('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=oKe(e.styleAliases||null),sKe.indexOf(this.kind)===-1)throw new nte('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}ite.exports=aKe});var bd=L((r5t,ote)=>{"use strict";var ste=Dd(),Bx=fE(),lKe=bs();function J_(t,e,r){var s=[];return t.include.forEach(function(a){r=J_(a,e,r)}),t[e].forEach(function(a){r.forEach(function(n,c){n.tag===a.tag&&n.kind===a.kind&&s.push(c)}),r.push(a)}),r.filter(function(a,n){return s.indexOf(n)===-1})}function cKe(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function s(a){t[a.kind][a.tag]=t.fallback[a.tag]=a}for(e=0,r=arguments.length;e<r;e+=1)arguments[e].forEach(s);return t}function AE(t){this.include=t.include||[],this.implicit=t.implicit||[],this.explicit=t.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&e.loadKind!=="scalar")throw new Bx("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=J_(this,"implicit",[]),this.compiledExplicit=J_(this,"explicit",[]),this.compiledTypeMap=cKe(this.compiledImplicit,this.compiledExplicit)}AE.DEFAULT=null;AE.create=function(){var e,r;switch(arguments.length){case 1:e=AE.DEFAULT,r=arguments[0];break;case 2:e=arguments[0],r=arguments[1];break;default:throw new Bx("Wrong number of arguments for Schema.create function")}if(e=ste.toArray(e),r=ste.toArray(r),!e.every(function(s){return s instanceof AE}))throw new Bx("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!r.every(function(s){return s instanceof lKe}))throw new Bx("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new AE({include:e,explicit:r})};ote.exports=AE});var lte=L((n5t,ate)=>{"use strict";var uKe=bs();ate.exports=new uKe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var ute=L((i5t,cte)=>{"use strict";var fKe=bs();cte.exports=new fKe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var Ate=L((s5t,fte)=>{"use strict";var AKe=bs();fte.exports=new AKe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var vx=L((o5t,pte)=>{"use strict";var pKe=bd();pte.exports=new pKe({explicit:[lte(),ute(),Ate()]})});var gte=L((a5t,hte)=>{"use strict";var hKe=bs();function gKe(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function dKe(){return null}function mKe(t){return t===null}hte.exports=new hKe("tag:yaml.org,2002:null",{kind:"scalar",resolve:gKe,construct:dKe,predicate:mKe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var mte=L((l5t,dte)=>{"use strict";var yKe=bs();function EKe(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function IKe(t){return t==="true"||t==="True"||t==="TRUE"}function CKe(t){return Object.prototype.toString.call(t)==="[object Boolean]"}dte.exports=new yKe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:EKe,construct:IKe,predicate:CKe,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var Ete=L((c5t,yte)=>{"use strict";var wKe=Dd(),BKe=bs();function vKe(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function SKe(t){return 48<=t&&t<=55}function DKe(t){return 48<=t&&t<=57}function bKe(t){if(t===null)return!1;var e=t.length,r=0,s=!1,a;if(!e)return!1;if(a=t[r],(a==="-"||a==="+")&&(a=t[++r]),a==="0"){if(r+1===e)return!0;if(a=t[++r],a==="b"){for(r++;r<e;r++)if(a=t[r],a!=="_"){if(a!=="0"&&a!=="1")return!1;s=!0}return s&&a!=="_"}if(a==="x"){for(r++;r<e;r++)if(a=t[r],a!=="_"){if(!vKe(t.charCodeAt(r)))return!1;s=!0}return s&&a!=="_"}for(;r<e;r++)if(a=t[r],a!=="_"){if(!SKe(t.charCodeAt(r)))return!1;s=!0}return s&&a!=="_"}if(a==="_")return!1;for(;r<e;r++)if(a=t[r],a!=="_"){if(a===":")break;if(!DKe(t.charCodeAt(r)))return!1;s=!0}return!s||a==="_"?!1:a!==":"?!0:/^(:[0-5]?[0-9])+$/.test(t.slice(r))}function PKe(t){var e=t,r=1,s,a,n=[];return e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),s=e[0],(s==="-"||s==="+")&&(s==="-"&&(r=-1),e=e.slice(1),s=e[0]),e==="0"?0:s==="0"?e[1]==="b"?r*parseInt(e.slice(2),2):e[1]==="x"?r*parseInt(e,16):r*parseInt(e,8):e.indexOf(":")!==-1?(e.split(":").forEach(function(c){n.unshift(parseInt(c,10))}),e=0,a=1,n.forEach(function(c){e+=c*a,a*=60}),r*e):r*parseInt(e,10)}function xKe(t){return Object.prototype.toString.call(t)==="[object Number]"&&t%1===0&&!wKe.isNegativeZero(t)}yte.exports=new BKe("tag:yaml.org,2002:int",{kind:"scalar",resolve:bKe,construct:PKe,predicate:xKe,represent:{binary:function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var wte=L((u5t,Cte)=>{"use strict";var Ite=Dd(),kKe=bs(),QKe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function TKe(t){return!(t===null||!QKe.test(t)||t[t.length-1]==="_")}function RKe(t){var e,r,s,a;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,a=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(n){a.unshift(parseFloat(n,10))}),e=0,s=1,a.forEach(function(n){e+=n*s,s*=60}),r*e):r*parseFloat(e,10)}var FKe=/^[-+]?[0-9]+e/;function NKe(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Ite.isNegativeZero(t))return"-0.0";return r=t.toString(10),FKe.test(r)?r.replace("e",".e"):r}function OKe(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||Ite.isNegativeZero(t))}Cte.exports=new kKe("tag:yaml.org,2002:float",{kind:"scalar",resolve:TKe,construct:RKe,predicate:OKe,represent:NKe,defaultStyle:"lowercase"})});var z_=L((f5t,Bte)=>{"use strict";var LKe=bd();Bte.exports=new LKe({include:[vx()],implicit:[gte(),mte(),Ete(),wte()]})});var Z_=L((A5t,vte)=>{"use strict";var MKe=bd();vte.exports=new MKe({include:[z_()]})});var Pte=L((p5t,bte)=>{"use strict";var _Ke=bs(),Ste=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Dte=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function UKe(t){return t===null?!1:Ste.exec(t)!==null||Dte.exec(t)!==null}function HKe(t){var e,r,s,a,n,c,f,p=0,h=null,E,C,S;if(e=Ste.exec(t),e===null&&(e=Dte.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],s=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(r,s,a));if(n=+e[4],c=+e[5],f=+e[6],e[7]){for(p=e[7].slice(0,3);p.length<3;)p+="0";p=+p}return e[9]&&(E=+e[10],C=+(e[11]||0),h=(E*60+C)*6e4,e[9]==="-"&&(h=-h)),S=new Date(Date.UTC(r,s,a,n,c,f,p)),h&&S.setTime(S.getTime()-h),S}function jKe(t){return t.toISOString()}bte.exports=new _Ke("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:UKe,construct:HKe,instanceOf:Date,represent:jKe})});var kte=L((h5t,xte)=>{"use strict";var qKe=bs();function GKe(t){return t==="<<"||t===null}xte.exports=new qKe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:GKe})});var Rte=L((g5t,Tte)=>{"use strict";var Pd;try{Qte=Ie,Pd=Qte("buffer").Buffer}catch{}var Qte,WKe=bs(),X_=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function YKe(t){if(t===null)return!1;var e,r,s=0,a=t.length,n=X_;for(r=0;r<a;r++)if(e=n.indexOf(t.charAt(r)),!(e>64)){if(e<0)return!1;s+=6}return s%8===0}function VKe(t){var e,r,s=t.replace(/[\r\n=]/g,""),a=s.length,n=X_,c=0,f=[];for(e=0;e<a;e++)e%4===0&&e&&(f.push(c>>16&255),f.push(c>>8&255),f.push(c&255)),c=c<<6|n.indexOf(s.charAt(e));return r=a%4*6,r===0?(f.push(c>>16&255),f.push(c>>8&255),f.push(c&255)):r===18?(f.push(c>>10&255),f.push(c>>2&255)):r===12&&f.push(c>>4&255),Pd?Pd.from?Pd.from(f):new Pd(f):f}function KKe(t){var e="",r=0,s,a,n=t.length,c=X_;for(s=0;s<n;s++)s%3===0&&s&&(e+=c[r>>18&63],e+=c[r>>12&63],e+=c[r>>6&63],e+=c[r&63]),r=(r<<8)+t[s];return a=n%3,a===0?(e+=c[r>>18&63],e+=c[r>>12&63],e+=c[r>>6&63],e+=c[r&63]):a===2?(e+=c[r>>10&63],e+=c[r>>4&63],e+=c[r<<2&63],e+=c[64]):a===1&&(e+=c[r>>2&63],e+=c[r<<4&63],e+=c[64],e+=c[64]),e}function JKe(t){return Pd&&Pd.isBuffer(t)}Tte.exports=new WKe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:YKe,construct:VKe,predicate:JKe,represent:KKe})});var Nte=L((m5t,Fte)=>{"use strict";var zKe=bs(),ZKe=Object.prototype.hasOwnProperty,XKe=Object.prototype.toString;function $Ke(t){if(t===null)return!0;var e=[],r,s,a,n,c,f=t;for(r=0,s=f.length;r<s;r+=1){if(a=f[r],c=!1,XKe.call(a)!=="[object Object]")return!1;for(n in a)if(ZKe.call(a,n))if(!c)c=!0;else return!1;if(!c)return!1;if(e.indexOf(n)===-1)e.push(n);else return!1}return!0}function eJe(t){return t!==null?t:[]}Fte.exports=new zKe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:$Ke,construct:eJe})});var Lte=L((y5t,Ote)=>{"use strict";var tJe=bs(),rJe=Object.prototype.toString;function nJe(t){if(t===null)return!0;var e,r,s,a,n,c=t;for(n=new Array(c.length),e=0,r=c.length;e<r;e+=1){if(s=c[e],rJe.call(s)!=="[object Object]"||(a=Object.keys(s),a.length!==1))return!1;n[e]=[a[0],s[a[0]]]}return!0}function iJe(t){if(t===null)return[];var e,r,s,a,n,c=t;for(n=new Array(c.length),e=0,r=c.length;e<r;e+=1)s=c[e],a=Object.keys(s),n[e]=[a[0],s[a[0]]];return n}Ote.exports=new tJe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:nJe,construct:iJe})});var _te=L((E5t,Mte)=>{"use strict";var sJe=bs(),oJe=Object.prototype.hasOwnProperty;function aJe(t){if(t===null)return!0;var e,r=t;for(e in r)if(oJe.call(r,e)&&r[e]!==null)return!1;return!0}function lJe(t){return t!==null?t:{}}Mte.exports=new sJe("tag:yaml.org,2002:set",{kind:"mapping",resolve:aJe,construct:lJe})});var pE=L((I5t,Ute)=>{"use strict";var cJe=bd();Ute.exports=new cJe({include:[Z_()],implicit:[Pte(),kte()],explicit:[Rte(),Nte(),Lte(),_te()]})});var jte=L((C5t,Hte)=>{"use strict";var uJe=bs();function fJe(){return!0}function AJe(){}function pJe(){return""}function hJe(t){return typeof t>"u"}Hte.exports=new uJe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:fJe,construct:AJe,predicate:hJe,represent:pJe})});var Gte=L((w5t,qte)=>{"use strict";var gJe=bs();function dJe(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),s="";return!(e[0]==="/"&&(r&&(s=r[1]),s.length>3||e[e.length-s.length-1]!=="/"))}function mJe(t){var e=t,r=/\/([gim]*)$/.exec(t),s="";return e[0]==="/"&&(r&&(s=r[1]),e=e.slice(1,e.length-s.length-1)),new RegExp(e,s)}function yJe(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function EJe(t){return Object.prototype.toString.call(t)==="[object RegExp]"}qte.exports=new gJe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:dJe,construct:mJe,predicate:EJe,represent:yJe})});var Vte=L((B5t,Yte)=>{"use strict";var Sx;try{Wte=Ie,Sx=Wte("esprima")}catch{typeof window<"u"&&(Sx=window.esprima)}var Wte,IJe=bs();function CJe(t){if(t===null)return!1;try{var e="("+t+")",r=Sx.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function wJe(t){var e="("+t+")",r=Sx.parse(e,{range:!0}),s=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(n){s.push(n.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(s,e.slice(a[0]+1,a[1]-1)):new Function(s,"return "+e.slice(a[0],a[1]))}function BJe(t){return t.toString()}function vJe(t){return Object.prototype.toString.call(t)==="[object Function]"}Yte.exports=new IJe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:CJe,construct:wJe,predicate:vJe,represent:BJe})});var q2=L((S5t,Jte)=>{"use strict";var Kte=bd();Jte.exports=Kte.DEFAULT=new Kte({include:[pE()],explicit:[jte(),Gte(),Vte()]})});var hre=L((D5t,G2)=>{"use strict";var wp=Dd(),rre=fE(),SJe=rte(),nre=pE(),DJe=q2(),o0=Object.prototype.hasOwnProperty,Dx=1,ire=2,sre=3,bx=4,$_=1,bJe=2,zte=3,PJe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,xJe=/[\x85\u2028\u2029]/,kJe=/[,\[\]\{\}]/,ore=/^(?:!|!!|![a-z\-]+!)$/i,are=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Zte(t){return Object.prototype.toString.call(t)}function qf(t){return t===10||t===13}function kd(t){return t===9||t===32}function nl(t){return t===9||t===32||t===10||t===13}function hE(t){return t===44||t===91||t===93||t===123||t===125}function QJe(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function TJe(t){return t===120?2:t===117?4:t===85?8:0}function RJe(t){return 48<=t&&t<=57?t-48:-1}function Xte(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?` +`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function FJe(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var lre=new Array(256),cre=new Array(256);for(xd=0;xd<256;xd++)lre[xd]=Xte(xd)?1:0,cre[xd]=Xte(xd);var xd;function NJe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||DJe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function ure(t,e){return new rre(e,new SJe(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function Rr(t,e){throw ure(t,e)}function Px(t,e){t.onWarning&&t.onWarning.call(null,ure(t,e))}var $te={YAML:function(e,r,s){var a,n,c;e.version!==null&&Rr(e,"duplication of %YAML directive"),s.length!==1&&Rr(e,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(s[0]),a===null&&Rr(e,"ill-formed argument of the YAML directive"),n=parseInt(a[1],10),c=parseInt(a[2],10),n!==1&&Rr(e,"unacceptable YAML version of the document"),e.version=s[0],e.checkLineBreaks=c<2,c!==1&&c!==2&&Px(e,"unsupported YAML version of the document")},TAG:function(e,r,s){var a,n;s.length!==2&&Rr(e,"TAG directive accepts exactly two arguments"),a=s[0],n=s[1],ore.test(a)||Rr(e,"ill-formed tag handle (first argument) of the TAG directive"),o0.call(e.tagMap,a)&&Rr(e,'there is a previously declared suffix for "'+a+'" tag handle'),are.test(n)||Rr(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[a]=n}};function s0(t,e,r,s){var a,n,c,f;if(e<r){if(f=t.input.slice(e,r),s)for(a=0,n=f.length;a<n;a+=1)c=f.charCodeAt(a),c===9||32<=c&&c<=1114111||Rr(t,"expected valid JSON character");else PJe.test(f)&&Rr(t,"the stream contains non-printable characters");t.result+=f}}function ere(t,e,r,s){var a,n,c,f;for(wp.isObject(r)||Rr(t,"cannot merge mappings; the provided source object is unacceptable"),a=Object.keys(r),c=0,f=a.length;c<f;c+=1)n=a[c],o0.call(e,n)||(e[n]=r[n],s[n]=!0)}function gE(t,e,r,s,a,n,c,f){var p,h;if(Array.isArray(a))for(a=Array.prototype.slice.call(a),p=0,h=a.length;p<h;p+=1)Array.isArray(a[p])&&Rr(t,"nested arrays are not supported inside keys"),typeof a=="object"&&Zte(a[p])==="[object Object]"&&(a[p]="[object Object]");if(typeof a=="object"&&Zte(a)==="[object Object]"&&(a="[object Object]"),a=String(a),e===null&&(e={}),s==="tag:yaml.org,2002:merge")if(Array.isArray(n))for(p=0,h=n.length;p<h;p+=1)ere(t,e,n[p],r);else ere(t,e,n,r);else!t.json&&!o0.call(r,a)&&o0.call(e,a)&&(t.line=c||t.line,t.position=f||t.position,Rr(t,"duplicated mapping key")),e[a]=n,delete r[a];return e}function eU(t){var e;e=t.input.charCodeAt(t.position),e===10?t.position++:e===13?(t.position++,t.input.charCodeAt(t.position)===10&&t.position++):Rr(t,"a line break is expected"),t.line+=1,t.lineStart=t.position}function ls(t,e,r){for(var s=0,a=t.input.charCodeAt(t.position);a!==0;){for(;kd(a);)a=t.input.charCodeAt(++t.position);if(e&&a===35)do a=t.input.charCodeAt(++t.position);while(a!==10&&a!==13&&a!==0);if(qf(a))for(eU(t),a=t.input.charCodeAt(t.position),s++,t.lineIndent=0;a===32;)t.lineIndent++,a=t.input.charCodeAt(++t.position);else break}return r!==-1&&s!==0&&t.lineIndent<r&&Px(t,"deficient indentation"),s}function xx(t){var e=t.position,r;return r=t.input.charCodeAt(e),!!((r===45||r===46)&&r===t.input.charCodeAt(e+1)&&r===t.input.charCodeAt(e+2)&&(e+=3,r=t.input.charCodeAt(e),r===0||nl(r)))}function tU(t,e){e===1?t.result+=" ":e>1&&(t.result+=wp.repeat(` +`,e-1))}function OJe(t,e,r){var s,a,n,c,f,p,h,E,C=t.kind,S=t.result,P;if(P=t.input.charCodeAt(t.position),nl(P)||hE(P)||P===35||P===38||P===42||P===33||P===124||P===62||P===39||P===34||P===37||P===64||P===96||(P===63||P===45)&&(a=t.input.charCodeAt(t.position+1),nl(a)||r&&hE(a)))return!1;for(t.kind="scalar",t.result="",n=c=t.position,f=!1;P!==0;){if(P===58){if(a=t.input.charCodeAt(t.position+1),nl(a)||r&&hE(a))break}else if(P===35){if(s=t.input.charCodeAt(t.position-1),nl(s))break}else{if(t.position===t.lineStart&&xx(t)||r&&hE(P))break;if(qf(P))if(p=t.line,h=t.lineStart,E=t.lineIndent,ls(t,!1,-1),t.lineIndent>=e){f=!0,P=t.input.charCodeAt(t.position);continue}else{t.position=c,t.line=p,t.lineStart=h,t.lineIndent=E;break}}f&&(s0(t,n,c,!1),tU(t,t.line-p),n=c=t.position,f=!1),kd(P)||(c=t.position+1),P=t.input.charCodeAt(++t.position)}return s0(t,n,c,!1),t.result?!0:(t.kind=C,t.result=S,!1)}function LJe(t,e){var r,s,a;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,s=a=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(s0(t,s,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)s=t.position,t.position++,a=t.position;else return!0;else qf(r)?(s0(t,s,a,!0),tU(t,ls(t,!1,e)),s=a=t.position):t.position===t.lineStart&&xx(t)?Rr(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);Rr(t,"unexpected end of the stream within a single quoted scalar")}function MJe(t,e){var r,s,a,n,c,f;if(f=t.input.charCodeAt(t.position),f!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=s=t.position;(f=t.input.charCodeAt(t.position))!==0;){if(f===34)return s0(t,r,t.position,!0),t.position++,!0;if(f===92){if(s0(t,r,t.position,!0),f=t.input.charCodeAt(++t.position),qf(f))ls(t,!1,e);else if(f<256&&lre[f])t.result+=cre[f],t.position++;else if((c=TJe(f))>0){for(a=c,n=0;a>0;a--)f=t.input.charCodeAt(++t.position),(c=QJe(f))>=0?n=(n<<4)+c:Rr(t,"expected hexadecimal character");t.result+=FJe(n),t.position++}else Rr(t,"unknown escape sequence");r=s=t.position}else qf(f)?(s0(t,r,s,!0),tU(t,ls(t,!1,e)),r=s=t.position):t.position===t.lineStart&&xx(t)?Rr(t,"unexpected end of the document within a double quoted scalar"):(t.position++,s=t.position)}Rr(t,"unexpected end of the stream within a double quoted scalar")}function _Je(t,e){var r=!0,s,a=t.tag,n,c=t.anchor,f,p,h,E,C,S={},P,I,R,N;if(N=t.input.charCodeAt(t.position),N===91)p=93,C=!1,n=[];else if(N===123)p=125,C=!0,n={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),N=t.input.charCodeAt(++t.position);N!==0;){if(ls(t,!0,e),N=t.input.charCodeAt(t.position),N===p)return t.position++,t.tag=a,t.anchor=c,t.kind=C?"mapping":"sequence",t.result=n,!0;r||Rr(t,"missed comma between flow collection entries"),I=P=R=null,h=E=!1,N===63&&(f=t.input.charCodeAt(t.position+1),nl(f)&&(h=E=!0,t.position++,ls(t,!0,e))),s=t.line,dE(t,e,Dx,!1,!0),I=t.tag,P=t.result,ls(t,!0,e),N=t.input.charCodeAt(t.position),(E||t.line===s)&&N===58&&(h=!0,N=t.input.charCodeAt(++t.position),ls(t,!0,e),dE(t,e,Dx,!1,!0),R=t.result),C?gE(t,n,S,I,P,R):h?n.push(gE(t,null,S,I,P,R)):n.push(P),ls(t,!0,e),N=t.input.charCodeAt(t.position),N===44?(r=!0,N=t.input.charCodeAt(++t.position)):r=!1}Rr(t,"unexpected end of the stream within a flow collection")}function UJe(t,e){var r,s,a=$_,n=!1,c=!1,f=e,p=0,h=!1,E,C;if(C=t.input.charCodeAt(t.position),C===124)s=!1;else if(C===62)s=!0;else return!1;for(t.kind="scalar",t.result="";C!==0;)if(C=t.input.charCodeAt(++t.position),C===43||C===45)$_===a?a=C===43?zte:bJe:Rr(t,"repeat of a chomping mode identifier");else if((E=RJe(C))>=0)E===0?Rr(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?Rr(t,"repeat of an indentation width identifier"):(f=e+E-1,c=!0);else break;if(kd(C)){do C=t.input.charCodeAt(++t.position);while(kd(C));if(C===35)do C=t.input.charCodeAt(++t.position);while(!qf(C)&&C!==0)}for(;C!==0;){for(eU(t),t.lineIndent=0,C=t.input.charCodeAt(t.position);(!c||t.lineIndent<f)&&C===32;)t.lineIndent++,C=t.input.charCodeAt(++t.position);if(!c&&t.lineIndent>f&&(f=t.lineIndent),qf(C)){p++;continue}if(t.lineIndent<f){a===zte?t.result+=wp.repeat(` +`,n?1+p:p):a===$_&&n&&(t.result+=` +`);break}for(s?kd(C)?(h=!0,t.result+=wp.repeat(` +`,n?1+p:p)):h?(h=!1,t.result+=wp.repeat(` +`,p+1)):p===0?n&&(t.result+=" "):t.result+=wp.repeat(` +`,p):t.result+=wp.repeat(` +`,n?1+p:p),n=!0,c=!0,p=0,r=t.position;!qf(C)&&C!==0;)C=t.input.charCodeAt(++t.position);s0(t,r,t.position,!1)}return!0}function tre(t,e){var r,s=t.tag,a=t.anchor,n=[],c,f=!1,p;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),p=t.input.charCodeAt(t.position);p!==0&&!(p!==45||(c=t.input.charCodeAt(t.position+1),!nl(c)));){if(f=!0,t.position++,ls(t,!0,-1)&&t.lineIndent<=e){n.push(null),p=t.input.charCodeAt(t.position);continue}if(r=t.line,dE(t,e,sre,!1,!0),n.push(t.result),ls(t,!0,-1),p=t.input.charCodeAt(t.position),(t.line===r||t.lineIndent>e)&&p!==0)Rr(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break}return f?(t.tag=s,t.anchor=a,t.kind="sequence",t.result=n,!0):!1}function HJe(t,e,r){var s,a,n,c,f=t.tag,p=t.anchor,h={},E={},C=null,S=null,P=null,I=!1,R=!1,N;for(t.anchor!==null&&(t.anchorMap[t.anchor]=h),N=t.input.charCodeAt(t.position);N!==0;){if(s=t.input.charCodeAt(t.position+1),n=t.line,c=t.position,(N===63||N===58)&&nl(s))N===63?(I&&(gE(t,h,E,C,S,null),C=S=P=null),R=!0,I=!0,a=!0):I?(I=!1,a=!0):Rr(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,N=s;else if(dE(t,r,ire,!1,!0))if(t.line===n){for(N=t.input.charCodeAt(t.position);kd(N);)N=t.input.charCodeAt(++t.position);if(N===58)N=t.input.charCodeAt(++t.position),nl(N)||Rr(t,"a whitespace character is expected after the key-value separator within a block mapping"),I&&(gE(t,h,E,C,S,null),C=S=P=null),R=!0,I=!1,a=!1,C=t.tag,S=t.result;else if(R)Rr(t,"can not read an implicit mapping pair; a colon is missed");else return t.tag=f,t.anchor=p,!0}else if(R)Rr(t,"can not read a block mapping entry; a multiline key may not be an implicit key");else return t.tag=f,t.anchor=p,!0;else break;if((t.line===n||t.lineIndent>e)&&(dE(t,e,bx,!0,a)&&(I?S=t.result:P=t.result),I||(gE(t,h,E,C,S,P,n,c),C=S=P=null),ls(t,!0,-1),N=t.input.charCodeAt(t.position)),t.lineIndent>e&&N!==0)Rr(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return I&&gE(t,h,E,C,S,null),R&&(t.tag=f,t.anchor=p,t.kind="mapping",t.result=h),R}function jJe(t){var e,r=!1,s=!1,a,n,c;if(c=t.input.charCodeAt(t.position),c!==33)return!1;if(t.tag!==null&&Rr(t,"duplication of a tag property"),c=t.input.charCodeAt(++t.position),c===60?(r=!0,c=t.input.charCodeAt(++t.position)):c===33?(s=!0,a="!!",c=t.input.charCodeAt(++t.position)):a="!",e=t.position,r){do c=t.input.charCodeAt(++t.position);while(c!==0&&c!==62);t.position<t.length?(n=t.input.slice(e,t.position),c=t.input.charCodeAt(++t.position)):Rr(t,"unexpected end of the stream within a verbatim tag")}else{for(;c!==0&&!nl(c);)c===33&&(s?Rr(t,"tag suffix cannot contain exclamation marks"):(a=t.input.slice(e-1,t.position+1),ore.test(a)||Rr(t,"named tag handle cannot contain such characters"),s=!0,e=t.position+1)),c=t.input.charCodeAt(++t.position);n=t.input.slice(e,t.position),kJe.test(n)&&Rr(t,"tag suffix cannot contain flow indicator characters")}return n&&!are.test(n)&&Rr(t,"tag name cannot contain such characters: "+n),r?t.tag=n:o0.call(t.tagMap,a)?t.tag=t.tagMap[a]+n:a==="!"?t.tag="!"+n:a==="!!"?t.tag="tag:yaml.org,2002:"+n:Rr(t,'undeclared tag handle "'+a+'"'),!0}function qJe(t){var e,r;if(r=t.input.charCodeAt(t.position),r!==38)return!1;for(t.anchor!==null&&Rr(t,"duplication of an anchor property"),r=t.input.charCodeAt(++t.position),e=t.position;r!==0&&!nl(r)&&!hE(r);)r=t.input.charCodeAt(++t.position);return t.position===e&&Rr(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function GJe(t){var e,r,s;if(s=t.input.charCodeAt(t.position),s!==42)return!1;for(s=t.input.charCodeAt(++t.position),e=t.position;s!==0&&!nl(s)&&!hE(s);)s=t.input.charCodeAt(++t.position);return t.position===e&&Rr(t,"name of an alias node must contain at least one character"),r=t.input.slice(e,t.position),o0.call(t.anchorMap,r)||Rr(t,'unidentified alias "'+r+'"'),t.result=t.anchorMap[r],ls(t,!0,-1),!0}function dE(t,e,r,s,a){var n,c,f,p=1,h=!1,E=!1,C,S,P,I,R;if(t.listener!==null&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,n=c=f=bx===r||sre===r,s&&ls(t,!0,-1)&&(h=!0,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)),p===1)for(;jJe(t)||qJe(t);)ls(t,!0,-1)?(h=!0,f=n,t.lineIndent>e?p=1:t.lineIndent===e?p=0:t.lineIndent<e&&(p=-1)):f=!1;if(f&&(f=h||a),(p===1||bx===r)&&(Dx===r||ire===r?I=e:I=e+1,R=t.position-t.lineStart,p===1?f&&(tre(t,R)||HJe(t,R,I))||_Je(t,I)?E=!0:(c&&UJe(t,I)||LJe(t,I)||MJe(t,I)?E=!0:GJe(t)?(E=!0,(t.tag!==null||t.anchor!==null)&&Rr(t,"alias node should not have any properties")):OJe(t,I,Dx===r)&&(E=!0,t.tag===null&&(t.tag="?")),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):p===0&&(E=f&&tre(t,R))),t.tag!==null&&t.tag!=="!")if(t.tag==="?"){for(t.result!==null&&t.kind!=="scalar"&&Rr(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),C=0,S=t.implicitTypes.length;C<S;C+=1)if(P=t.implicitTypes[C],P.resolve(t.result)){t.result=P.construct(t.result),t.tag=P.tag,t.anchor!==null&&(t.anchorMap[t.anchor]=t.result);break}}else o0.call(t.typeMap[t.kind||"fallback"],t.tag)?(P=t.typeMap[t.kind||"fallback"][t.tag],t.result!==null&&P.kind!==t.kind&&Rr(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+P.kind+'", not "'+t.kind+'"'),P.resolve(t.result)?(t.result=P.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Rr(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):Rr(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||E}function WJe(t){var e=t.position,r,s,a,n=!1,c;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(c=t.input.charCodeAt(t.position))!==0&&(ls(t,!0,-1),c=t.input.charCodeAt(t.position),!(t.lineIndent>0||c!==37));){for(n=!0,c=t.input.charCodeAt(++t.position),r=t.position;c!==0&&!nl(c);)c=t.input.charCodeAt(++t.position);for(s=t.input.slice(r,t.position),a=[],s.length<1&&Rr(t,"directive name must not be less than one character in length");c!==0;){for(;kd(c);)c=t.input.charCodeAt(++t.position);if(c===35){do c=t.input.charCodeAt(++t.position);while(c!==0&&!qf(c));break}if(qf(c))break;for(r=t.position;c!==0&&!nl(c);)c=t.input.charCodeAt(++t.position);a.push(t.input.slice(r,t.position))}c!==0&&eU(t),o0.call($te,s)?$te[s](t,s,a):Px(t,'unknown document directive "'+s+'"')}if(ls(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,ls(t,!0,-1)):n&&Rr(t,"directives end mark is expected"),dE(t,t.lineIndent-1,bx,!1,!0),ls(t,!0,-1),t.checkLineBreaks&&xJe.test(t.input.slice(e,t.position))&&Px(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&xx(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,ls(t,!0,-1));return}if(t.position<t.length-1)Rr(t,"end of the stream or a document separator is expected");else return}function fre(t,e){t=String(t),e=e||{},t.length!==0&&(t.charCodeAt(t.length-1)!==10&&t.charCodeAt(t.length-1)!==13&&(t+=` +`),t.charCodeAt(0)===65279&&(t=t.slice(1)));var r=new NJe(t,e),s=t.indexOf("\0");for(s!==-1&&(r.position=s,Rr(r,"null byte is not allowed in input")),r.input+="\0";r.input.charCodeAt(r.position)===32;)r.lineIndent+=1,r.position+=1;for(;r.position<r.length-1;)WJe(r);return r.documents}function Are(t,e,r){e!==null&&typeof e=="object"&&typeof r>"u"&&(r=e,e=null);var s=fre(t,r);if(typeof e!="function")return s;for(var a=0,n=s.length;a<n;a+=1)e(s[a])}function pre(t,e){var r=fre(t,e);if(r.length!==0){if(r.length===1)return r[0];throw new rre("expected a single document in the stream, but found more")}}function YJe(t,e,r){return typeof e=="object"&&e!==null&&typeof r>"u"&&(r=e,e=null),Are(t,e,wp.extend({schema:nre},r))}function VJe(t,e){return pre(t,wp.extend({schema:nre},e))}G2.exports.loadAll=Are;G2.exports.load=pre;G2.exports.safeLoadAll=YJe;G2.exports.safeLoad=VJe});var Lre=L((b5t,sU)=>{"use strict";var Y2=Dd(),V2=fE(),KJe=q2(),JJe=pE(),wre=Object.prototype.toString,Bre=Object.prototype.hasOwnProperty,zJe=9,W2=10,ZJe=13,XJe=32,$Je=33,eze=34,vre=35,tze=37,rze=38,nze=39,ize=42,Sre=44,sze=45,Dre=58,oze=61,aze=62,lze=63,cze=64,bre=91,Pre=93,uze=96,xre=123,fze=124,kre=125,jo={};jo[0]="\\0";jo[7]="\\a";jo[8]="\\b";jo[9]="\\t";jo[10]="\\n";jo[11]="\\v";jo[12]="\\f";jo[13]="\\r";jo[27]="\\e";jo[34]='\\"';jo[92]="\\\\";jo[133]="\\N";jo[160]="\\_";jo[8232]="\\L";jo[8233]="\\P";var Aze=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function pze(t,e){var r,s,a,n,c,f,p;if(e===null)return{};for(r={},s=Object.keys(e),a=0,n=s.length;a<n;a+=1)c=s[a],f=String(e[c]),c.slice(0,2)==="!!"&&(c="tag:yaml.org,2002:"+c.slice(2)),p=t.compiledTypeMap.fallback[c],p&&Bre.call(p.styleAliases,f)&&(f=p.styleAliases[f]),r[c]=f;return r}function gre(t){var e,r,s;if(e=t.toString(16).toUpperCase(),t<=255)r="x",s=2;else if(t<=65535)r="u",s=4;else if(t<=4294967295)r="U",s=8;else throw new V2("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+Y2.repeat("0",s-e.length)+e}function hze(t){this.schema=t.schema||KJe,this.indent=Math.max(1,t.indent||2),this.noArrayIndent=t.noArrayIndent||!1,this.skipInvalid=t.skipInvalid||!1,this.flowLevel=Y2.isNothing(t.flowLevel)?-1:t.flowLevel,this.styleMap=pze(this.schema,t.styles||null),this.sortKeys=t.sortKeys||!1,this.lineWidth=t.lineWidth||80,this.noRefs=t.noRefs||!1,this.noCompatMode=t.noCompatMode||!1,this.condenseFlow=t.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function dre(t,e){for(var r=Y2.repeat(" ",e),s=0,a=-1,n="",c,f=t.length;s<f;)a=t.indexOf(` +`,s),a===-1?(c=t.slice(s),s=f):(c=t.slice(s,a+1),s=a+1),c.length&&c!==` +`&&(n+=r),n+=c;return n}function rU(t,e){return` +`+Y2.repeat(" ",t.indent*e)}function gze(t,e){var r,s,a;for(r=0,s=t.implicitTypes.length;r<s;r+=1)if(a=t.implicitTypes[r],a.resolve(e))return!0;return!1}function iU(t){return t===XJe||t===zJe}function mE(t){return 32<=t&&t<=126||161<=t&&t<=55295&&t!==8232&&t!==8233||57344<=t&&t<=65533&&t!==65279||65536<=t&&t<=1114111}function dze(t){return mE(t)&&!iU(t)&&t!==65279&&t!==ZJe&&t!==W2}function mre(t,e){return mE(t)&&t!==65279&&t!==Sre&&t!==bre&&t!==Pre&&t!==xre&&t!==kre&&t!==Dre&&(t!==vre||e&&dze(e))}function mze(t){return mE(t)&&t!==65279&&!iU(t)&&t!==sze&&t!==lze&&t!==Dre&&t!==Sre&&t!==bre&&t!==Pre&&t!==xre&&t!==kre&&t!==vre&&t!==rze&&t!==ize&&t!==$Je&&t!==fze&&t!==oze&&t!==aze&&t!==nze&&t!==eze&&t!==tze&&t!==cze&&t!==uze}function Qre(t){var e=/^\n* /;return e.test(t)}var Tre=1,Rre=2,Fre=3,Nre=4,kx=5;function yze(t,e,r,s,a){var n,c,f,p=!1,h=!1,E=s!==-1,C=-1,S=mze(t.charCodeAt(0))&&!iU(t.charCodeAt(t.length-1));if(e)for(n=0;n<t.length;n++){if(c=t.charCodeAt(n),!mE(c))return kx;f=n>0?t.charCodeAt(n-1):null,S=S&&mre(c,f)}else{for(n=0;n<t.length;n++){if(c=t.charCodeAt(n),c===W2)p=!0,E&&(h=h||n-C-1>s&&t[C+1]!==" ",C=n);else if(!mE(c))return kx;f=n>0?t.charCodeAt(n-1):null,S=S&&mre(c,f)}h=h||E&&n-C-1>s&&t[C+1]!==" "}return!p&&!h?S&&!a(t)?Tre:Rre:r>9&&Qre(t)?kx:h?Nre:Fre}function Eze(t,e,r,s){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&Aze.indexOf(e)!==-1)return"'"+e+"'";var a=t.indent*Math.max(1,r),n=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),c=s||t.flowLevel>-1&&r>=t.flowLevel;function f(p){return gze(t,p)}switch(yze(e,c,t.indent,n,f)){case Tre:return e;case Rre:return"'"+e.replace(/'/g,"''")+"'";case Fre:return"|"+yre(e,t.indent)+Ere(dre(e,a));case Nre:return">"+yre(e,t.indent)+Ere(dre(Ize(e,n),a));case kx:return'"'+Cze(e,n)+'"';default:throw new V2("impossible error: invalid scalar style")}}()}function yre(t,e){var r=Qre(t)?String(e):"",s=t[t.length-1]===` +`,a=s&&(t[t.length-2]===` +`||t===` +`),n=a?"+":s?"":"-";return r+n+` +`}function Ere(t){return t[t.length-1]===` +`?t.slice(0,-1):t}function Ize(t,e){for(var r=/(\n+)([^\n]*)/g,s=function(){var h=t.indexOf(` +`);return h=h!==-1?h:t.length,r.lastIndex=h,Ire(t.slice(0,h),e)}(),a=t[0]===` +`||t[0]===" ",n,c;c=r.exec(t);){var f=c[1],p=c[2];n=p[0]===" ",s+=f+(!a&&!n&&p!==""?` +`:"")+Ire(p,e),a=n}return s}function Ire(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,s,a=0,n,c=0,f=0,p="";s=r.exec(t);)f=s.index,f-a>e&&(n=c>a?c:f,p+=` +`+t.slice(a,n),a=n+1),c=f;return p+=` +`,t.length-a>e&&c>a?p+=t.slice(a,c)+` +`+t.slice(c+1):p+=t.slice(a),p.slice(1)}function Cze(t){for(var e="",r,s,a,n=0;n<t.length;n++){if(r=t.charCodeAt(n),r>=55296&&r<=56319&&(s=t.charCodeAt(n+1),s>=56320&&s<=57343)){e+=gre((r-55296)*1024+s-56320+65536),n++;continue}a=jo[r],e+=!a&&mE(r)?t[n]:a||gre(r)}return e}function wze(t,e,r){var s="",a=t.tag,n,c;for(n=0,c=r.length;n<c;n+=1)Qd(t,e,r[n],!1,!1)&&(n!==0&&(s+=","+(t.condenseFlow?"":" ")),s+=t.dump);t.tag=a,t.dump="["+s+"]"}function Bze(t,e,r,s){var a="",n=t.tag,c,f;for(c=0,f=r.length;c<f;c+=1)Qd(t,e+1,r[c],!0,!0)&&((!s||c!==0)&&(a+=rU(t,e)),t.dump&&W2===t.dump.charCodeAt(0)?a+="-":a+="- ",a+=t.dump);t.tag=n,t.dump=a||"[]"}function vze(t,e,r){var s="",a=t.tag,n=Object.keys(r),c,f,p,h,E;for(c=0,f=n.length;c<f;c+=1)E="",c!==0&&(E+=", "),t.condenseFlow&&(E+='"'),p=n[c],h=r[p],Qd(t,e,p,!1,!1)&&(t.dump.length>1024&&(E+="? "),E+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),Qd(t,e,h,!1,!1)&&(E+=t.dump,s+=E));t.tag=a,t.dump="{"+s+"}"}function Sze(t,e,r,s){var a="",n=t.tag,c=Object.keys(r),f,p,h,E,C,S;if(t.sortKeys===!0)c.sort();else if(typeof t.sortKeys=="function")c.sort(t.sortKeys);else if(t.sortKeys)throw new V2("sortKeys must be a boolean or a function");for(f=0,p=c.length;f<p;f+=1)S="",(!s||f!==0)&&(S+=rU(t,e)),h=c[f],E=r[h],Qd(t,e+1,h,!0,!0,!0)&&(C=t.tag!==null&&t.tag!=="?"||t.dump&&t.dump.length>1024,C&&(t.dump&&W2===t.dump.charCodeAt(0)?S+="?":S+="? "),S+=t.dump,C&&(S+=rU(t,e)),Qd(t,e+1,E,!0,C)&&(t.dump&&W2===t.dump.charCodeAt(0)?S+=":":S+=": ",S+=t.dump,a+=S));t.tag=n,t.dump=a||"{}"}function Cre(t,e,r){var s,a,n,c,f,p;for(a=r?t.explicitTypes:t.implicitTypes,n=0,c=a.length;n<c;n+=1)if(f=a[n],(f.instanceOf||f.predicate)&&(!f.instanceOf||typeof e=="object"&&e instanceof f.instanceOf)&&(!f.predicate||f.predicate(e))){if(t.tag=r?f.tag:"?",f.represent){if(p=t.styleMap[f.tag]||f.defaultStyle,wre.call(f.represent)==="[object Function]")s=f.represent(e,p);else if(Bre.call(f.represent,p))s=f.represent[p](e,p);else throw new V2("!<"+f.tag+'> tag resolver accepts not "'+p+'" style');t.dump=s}return!0}return!1}function Qd(t,e,r,s,a,n){t.tag=null,t.dump=r,Cre(t,r,!1)||Cre(t,r,!0);var c=wre.call(t.dump);s&&(s=t.flowLevel<0||t.flowLevel>e);var f=c==="[object Object]"||c==="[object Array]",p,h;if(f&&(p=t.duplicates.indexOf(r),h=p!==-1),(t.tag!==null&&t.tag!=="?"||h||t.indent!==2&&e>0)&&(a=!1),h&&t.usedDuplicates[p])t.dump="*ref_"+p;else{if(f&&h&&!t.usedDuplicates[p]&&(t.usedDuplicates[p]=!0),c==="[object Object]")s&&Object.keys(t.dump).length!==0?(Sze(t,e,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(vze(t,e,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump));else if(c==="[object Array]"){var E=t.noArrayIndent&&e>0?e-1:e;s&&t.dump.length!==0?(Bze(t,E,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(wze(t,E,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump))}else if(c==="[object String]")t.tag!=="?"&&Eze(t,t.dump,e,n);else{if(t.skipInvalid)return!1;throw new V2("unacceptable kind of an object to dump "+c)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function Dze(t,e){var r=[],s=[],a,n;for(nU(t,r,s),a=0,n=s.length;a<n;a+=1)e.duplicates.push(r[s[a]]);e.usedDuplicates=new Array(n)}function nU(t,e,r){var s,a,n;if(t!==null&&typeof t=="object")if(a=e.indexOf(t),a!==-1)r.indexOf(a)===-1&&r.push(a);else if(e.push(t),Array.isArray(t))for(a=0,n=t.length;a<n;a+=1)nU(t[a],e,r);else for(s=Object.keys(t),a=0,n=s.length;a<n;a+=1)nU(t[s[a]],e,r)}function Ore(t,e){e=e||{};var r=new hze(e);return r.noRefs||Dze(t,r),Qd(r,0,t,!0,!0)?r.dump+` +`:""}function bze(t,e){return Ore(t,Y2.extend({schema:JJe},e))}sU.exports.dump=Ore;sU.exports.safeDump=bze});var _re=L((P5t,Wi)=>{"use strict";var Qx=hre(),Mre=Lre();function Tx(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}Wi.exports.Type=bs();Wi.exports.Schema=bd();Wi.exports.FAILSAFE_SCHEMA=vx();Wi.exports.JSON_SCHEMA=z_();Wi.exports.CORE_SCHEMA=Z_();Wi.exports.DEFAULT_SAFE_SCHEMA=pE();Wi.exports.DEFAULT_FULL_SCHEMA=q2();Wi.exports.load=Qx.load;Wi.exports.loadAll=Qx.loadAll;Wi.exports.safeLoad=Qx.safeLoad;Wi.exports.safeLoadAll=Qx.safeLoadAll;Wi.exports.dump=Mre.dump;Wi.exports.safeDump=Mre.safeDump;Wi.exports.YAMLException=fE();Wi.exports.MINIMAL_SCHEMA=vx();Wi.exports.SAFE_SCHEMA=pE();Wi.exports.DEFAULT_SCHEMA=q2();Wi.exports.scan=Tx("scan");Wi.exports.parse=Tx("parse");Wi.exports.compose=Tx("compose");Wi.exports.addConstructor=Tx("addConstructor")});var Hre=L((x5t,Ure)=>{"use strict";var Pze=_re();Ure.exports=Pze});var qre=L((k5t,jre)=>{"use strict";function xze(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Td(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.location=s,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Td)}xze(Td,Error);Td.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",C;for(C=0;C<h.parts.length;C++)E+=h.parts[C]instanceof Array?n(h.parts[C][0])+"-"+n(h.parts[C][1]):n(h.parts[C]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function s(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+s(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+s(E)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+s(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+s(E)})}function c(h){return r[h.type](h)}function f(h){var E=new Array(h.length),C,S;for(C=0;C<h.length;C++)E[C]=c(h[C]);if(E.sort(),E.length>0){for(C=1,S=1;C<E.length;C++)E[C-1]!==E[C]&&(E[S]=E[C],S++);E.length=S}switch(E.length){case 1:return E[0];case 2:return E[0]+" or "+E[1];default:return E.slice(0,-1).join(", ")+", or "+E[E.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+f(t)+" but "+p(e)+" found."};function kze(t,e){e=e!==void 0?e:{};var r={},s={Start:cc},a=cc,n=function(ee){return[].concat(...ee)},c="-",f=dn("-",!1),p=function(ee){return ee},h=function(ee){return Object.assign({},...ee)},E="#",C=dn("#",!1),S=hu(),P=function(){return{}},I=":",R=dn(":",!1),N=function(ee,Ee){return{[ee]:Ee}},U=",",W=dn(",",!1),te=function(ee,Ee){return Ee},ie=function(ee,Ee,Oe){return Object.assign({},...[ee].concat(Ee).map(gt=>({[gt]:Oe})))},Ae=function(ee){return ee},ce=function(ee){return ee},me=La("correct indentation"),pe=" ",Be=dn(" ",!1),Ce=function(ee){return ee.length===lr*St},g=function(ee){return ee.length===(lr+1)*St},we=function(){return lr++,!0},ye=function(){return lr--,!0},fe=function(){return ca()},se=La("pseudostring"),X=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,De=Jn(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Re=/^[^\r\n\t ,\][{}:#"']/,dt=Jn(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),j=function(){return ca().replace(/^ *| *$/g,"")},rt="--",Fe=dn("--",!1),Ne=/^[a-zA-Z\/0-9]/,Pe=Jn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),Ye=/^[^\r\n\t :,]/,ke=Jn(["\r",` +`," "," ",":",","],!0,!1),it="null",_e=dn("null",!1),x=function(){return null},w="true",b=dn("true",!1),y=function(){return!0},F="false",z=dn("false",!1),Z=function(){return!1},$=La("string"),oe='"',xe=dn('"',!1),Te=function(){return""},lt=function(ee){return ee},It=function(ee){return ee.join("")},qt=/^[^"\\\0-\x1F\x7F]/,ir=Jn(['"',"\\",["\0",""],"\x7F"],!0,!1),Pt='\\"',gn=dn('\\"',!1),Pr=function(){return'"'},Ir="\\\\",Nr=dn("\\\\",!1),nn=function(){return"\\"},ai="\\/",wo=dn("\\/",!1),ns=function(){return"/"},to="\\b",Bo=dn("\\b",!1),ji=function(){return"\b"},ro="\\f",vo=dn("\\f",!1),RA=function(){return"\f"},pf="\\n",yh=dn("\\n",!1),Eh=function(){return` +`},no="\\r",jn=dn("\\r",!1),Fs=function(){return"\r"},io="\\t",lu=dn("\\t",!1),cu=function(){return" "},uu="\\u",FA=dn("\\u",!1),NA=function(ee,Ee,Oe,gt){return String.fromCharCode(parseInt(`0x${ee}${Ee}${Oe}${gt}`))},aa=/^[0-9a-fA-F]/,la=Jn([["0","9"],["a","f"],["A","F"]],!1,!1),OA=La("blank space"),gr=/^[ \t]/,So=Jn([" "," "],!1,!1),Me=La("white space"),fu=/^[ \t\n\r]/,Cr=Jn([" "," ",` +`,"\r"],!1,!1),hf=`\r +`,LA=dn(`\r +`,!1),MA=` +`,Au=dn(` +`,!1),pu="\r",ac=dn("\r",!1),ve=0,Nt=0,lc=[{line:1,column:1}],Li=0,so=[],Rt=0,xn;if("startRule"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=s[e.startRule]}function ca(){return t.substring(Nt,ve)}function qi(){return Ua(Nt,ve)}function Mi(ee,Ee){throw Ee=Ee!==void 0?Ee:Ua(Nt,ve),gf([La(ee)],t.substring(Nt,ve),Ee)}function Oa(ee,Ee){throw Ee=Ee!==void 0?Ee:Ua(Nt,ve),Ha(ee,Ee)}function dn(ee,Ee){return{type:"literal",text:ee,ignoreCase:Ee}}function Jn(ee,Ee,Oe){return{type:"class",parts:ee,inverted:Ee,ignoreCase:Oe}}function hu(){return{type:"any"}}function Ih(){return{type:"end"}}function La(ee){return{type:"other",description:ee}}function Ma(ee){var Ee=lc[ee],Oe;if(Ee)return Ee;for(Oe=ee-1;!lc[Oe];)Oe--;for(Ee=lc[Oe],Ee={line:Ee.line,column:Ee.column};Oe<ee;)t.charCodeAt(Oe)===10?(Ee.line++,Ee.column=1):Ee.column++,Oe++;return lc[ee]=Ee,Ee}function Ua(ee,Ee){var Oe=Ma(ee),gt=Ma(Ee);return{start:{offset:ee,line:Oe.line,column:Oe.column},end:{offset:Ee,line:gt.line,column:gt.column}}}function Xe(ee){ve<Li||(ve>Li&&(Li=ve,so=[]),so.push(ee))}function Ha(ee,Ee){return new Td(ee,null,null,Ee)}function gf(ee,Ee,Oe){return new Td(Td.buildMessage(ee,Ee),ee,Ee,Oe)}function cc(){var ee;return ee=_A(),ee}function wn(){var ee,Ee,Oe;for(ee=ve,Ee=[],Oe=ua();Oe!==r;)Ee.push(Oe),Oe=ua();return Ee!==r&&(Nt=ee,Ee=n(Ee)),ee=Ee,ee}function ua(){var ee,Ee,Oe,gt,yt;return ee=ve,Ee=vl(),Ee!==r?(t.charCodeAt(ve)===45?(Oe=c,ve++):(Oe=r,Rt===0&&Xe(f)),Oe!==r?(gt=Qn(),gt!==r?(yt=fa(),yt!==r?(Nt=ee,Ee=p(yt),ee=Ee):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r),ee}function _A(){var ee,Ee,Oe;for(ee=ve,Ee=[],Oe=UA();Oe!==r;)Ee.push(Oe),Oe=UA();return Ee!==r&&(Nt=ee,Ee=h(Ee)),ee=Ee,ee}function UA(){var ee,Ee,Oe,gt,yt,Dt,tr,fn,li;if(ee=ve,Ee=Qn(),Ee===r&&(Ee=null),Ee!==r){if(Oe=ve,t.charCodeAt(ve)===35?(gt=E,ve++):(gt=r,Rt===0&&Xe(C)),gt!==r){if(yt=[],Dt=ve,tr=ve,Rt++,fn=st(),Rt--,fn===r?tr=void 0:(ve=tr,tr=r),tr!==r?(t.length>ve?(fn=t.charAt(ve),ve++):(fn=r,Rt===0&&Xe(S)),fn!==r?(tr=[tr,fn],Dt=tr):(ve=Dt,Dt=r)):(ve=Dt,Dt=r),Dt!==r)for(;Dt!==r;)yt.push(Dt),Dt=ve,tr=ve,Rt++,fn=st(),Rt--,fn===r?tr=void 0:(ve=tr,tr=r),tr!==r?(t.length>ve?(fn=t.charAt(ve),ve++):(fn=r,Rt===0&&Xe(S)),fn!==r?(tr=[tr,fn],Dt=tr):(ve=Dt,Dt=r)):(ve=Dt,Dt=r);else yt=r;yt!==r?(gt=[gt,yt],Oe=gt):(ve=Oe,Oe=r)}else ve=Oe,Oe=r;if(Oe===r&&(Oe=null),Oe!==r){if(gt=[],yt=Je(),yt!==r)for(;yt!==r;)gt.push(yt),yt=Je();else gt=r;gt!==r?(Nt=ee,Ee=P(),ee=Ee):(ve=ee,ee=r)}else ve=ee,ee=r}else ve=ee,ee=r;if(ee===r&&(ee=ve,Ee=vl(),Ee!==r?(Oe=ja(),Oe!==r?(gt=Qn(),gt===r&&(gt=null),gt!==r?(t.charCodeAt(ve)===58?(yt=I,ve++):(yt=r,Rt===0&&Xe(R)),yt!==r?(Dt=Qn(),Dt===r&&(Dt=null),Dt!==r?(tr=fa(),tr!==r?(Nt=ee,Ee=N(Oe,tr),ee=Ee):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r),ee===r&&(ee=ve,Ee=vl(),Ee!==r?(Oe=is(),Oe!==r?(gt=Qn(),gt===r&&(gt=null),gt!==r?(t.charCodeAt(ve)===58?(yt=I,ve++):(yt=r,Rt===0&&Xe(R)),yt!==r?(Dt=Qn(),Dt===r&&(Dt=null),Dt!==r?(tr=fa(),tr!==r?(Nt=ee,Ee=N(Oe,tr),ee=Ee):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r),ee===r))){if(ee=ve,Ee=vl(),Ee!==r)if(Oe=is(),Oe!==r)if(gt=Qn(),gt!==r)if(yt=gu(),yt!==r){if(Dt=[],tr=Je(),tr!==r)for(;tr!==r;)Dt.push(tr),tr=Je();else Dt=r;Dt!==r?(Nt=ee,Ee=N(Oe,yt),ee=Ee):(ve=ee,ee=r)}else ve=ee,ee=r;else ve=ee,ee=r;else ve=ee,ee=r;else ve=ee,ee=r;if(ee===r)if(ee=ve,Ee=vl(),Ee!==r)if(Oe=is(),Oe!==r){if(gt=[],yt=ve,Dt=Qn(),Dt===r&&(Dt=null),Dt!==r?(t.charCodeAt(ve)===44?(tr=U,ve++):(tr=r,Rt===0&&Xe(W)),tr!==r?(fn=Qn(),fn===r&&(fn=null),fn!==r?(li=is(),li!==r?(Nt=yt,Dt=te(Oe,li),yt=Dt):(ve=yt,yt=r)):(ve=yt,yt=r)):(ve=yt,yt=r)):(ve=yt,yt=r),yt!==r)for(;yt!==r;)gt.push(yt),yt=ve,Dt=Qn(),Dt===r&&(Dt=null),Dt!==r?(t.charCodeAt(ve)===44?(tr=U,ve++):(tr=r,Rt===0&&Xe(W)),tr!==r?(fn=Qn(),fn===r&&(fn=null),fn!==r?(li=is(),li!==r?(Nt=yt,Dt=te(Oe,li),yt=Dt):(ve=yt,yt=r)):(ve=yt,yt=r)):(ve=yt,yt=r)):(ve=yt,yt=r);else gt=r;gt!==r?(yt=Qn(),yt===r&&(yt=null),yt!==r?(t.charCodeAt(ve)===58?(Dt=I,ve++):(Dt=r,Rt===0&&Xe(R)),Dt!==r?(tr=Qn(),tr===r&&(tr=null),tr!==r?(fn=fa(),fn!==r?(Nt=ee,Ee=ie(Oe,gt,fn),ee=Ee):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)}else ve=ee,ee=r;else ve=ee,ee=r}return ee}function fa(){var ee,Ee,Oe,gt,yt,Dt,tr;if(ee=ve,Ee=ve,Rt++,Oe=ve,gt=st(),gt!==r?(yt=Mt(),yt!==r?(t.charCodeAt(ve)===45?(Dt=c,ve++):(Dt=r,Rt===0&&Xe(f)),Dt!==r?(tr=Qn(),tr!==r?(gt=[gt,yt,Dt,tr],Oe=gt):(ve=Oe,Oe=r)):(ve=Oe,Oe=r)):(ve=Oe,Oe=r)):(ve=Oe,Oe=r),Rt--,Oe!==r?(ve=Ee,Ee=void 0):Ee=r,Ee!==r?(Oe=Je(),Oe!==r?(gt=kn(),gt!==r?(yt=wn(),yt!==r?(Dt=Aa(),Dt!==r?(Nt=ee,Ee=Ae(yt),ee=Ee):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r),ee===r&&(ee=ve,Ee=st(),Ee!==r?(Oe=kn(),Oe!==r?(gt=_A(),gt!==r?(yt=Aa(),yt!==r?(Nt=ee,Ee=Ae(gt),ee=Ee):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r),ee===r))if(ee=ve,Ee=uc(),Ee!==r){if(Oe=[],gt=Je(),gt!==r)for(;gt!==r;)Oe.push(gt),gt=Je();else Oe=r;Oe!==r?(Nt=ee,Ee=ce(Ee),ee=Ee):(ve=ee,ee=r)}else ve=ee,ee=r;return ee}function vl(){var ee,Ee,Oe;for(Rt++,ee=ve,Ee=[],t.charCodeAt(ve)===32?(Oe=pe,ve++):(Oe=r,Rt===0&&Xe(Be));Oe!==r;)Ee.push(Oe),t.charCodeAt(ve)===32?(Oe=pe,ve++):(Oe=r,Rt===0&&Xe(Be));return Ee!==r?(Nt=ve,Oe=Ce(Ee),Oe?Oe=void 0:Oe=r,Oe!==r?(Ee=[Ee,Oe],ee=Ee):(ve=ee,ee=r)):(ve=ee,ee=r),Rt--,ee===r&&(Ee=r,Rt===0&&Xe(me)),ee}function Mt(){var ee,Ee,Oe;for(ee=ve,Ee=[],t.charCodeAt(ve)===32?(Oe=pe,ve++):(Oe=r,Rt===0&&Xe(Be));Oe!==r;)Ee.push(Oe),t.charCodeAt(ve)===32?(Oe=pe,ve++):(Oe=r,Rt===0&&Xe(Be));return Ee!==r?(Nt=ve,Oe=g(Ee),Oe?Oe=void 0:Oe=r,Oe!==r?(Ee=[Ee,Oe],ee=Ee):(ve=ee,ee=r)):(ve=ee,ee=r),ee}function kn(){var ee;return Nt=ve,ee=we(),ee?ee=void 0:ee=r,ee}function Aa(){var ee;return Nt=ve,ee=ye(),ee?ee=void 0:ee=r,ee}function ja(){var ee;return ee=Sl(),ee===r&&(ee=fc()),ee}function is(){var ee,Ee,Oe;if(ee=Sl(),ee===r){if(ee=ve,Ee=[],Oe=qa(),Oe!==r)for(;Oe!==r;)Ee.push(Oe),Oe=qa();else Ee=r;Ee!==r&&(Nt=ee,Ee=fe()),ee=Ee}return ee}function uc(){var ee;return ee=_i(),ee===r&&(ee=ws(),ee===r&&(ee=Sl(),ee===r&&(ee=fc()))),ee}function gu(){var ee;return ee=_i(),ee===r&&(ee=Sl(),ee===r&&(ee=qa())),ee}function fc(){var ee,Ee,Oe,gt,yt,Dt;if(Rt++,ee=ve,X.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Rt===0&&Xe(De)),Ee!==r){for(Oe=[],gt=ve,yt=Qn(),yt===r&&(yt=null),yt!==r?(Re.test(t.charAt(ve))?(Dt=t.charAt(ve),ve++):(Dt=r,Rt===0&&Xe(dt)),Dt!==r?(yt=[yt,Dt],gt=yt):(ve=gt,gt=r)):(ve=gt,gt=r);gt!==r;)Oe.push(gt),gt=ve,yt=Qn(),yt===r&&(yt=null),yt!==r?(Re.test(t.charAt(ve))?(Dt=t.charAt(ve),ve++):(Dt=r,Rt===0&&Xe(dt)),Dt!==r?(yt=[yt,Dt],gt=yt):(ve=gt,gt=r)):(ve=gt,gt=r);Oe!==r?(Nt=ee,Ee=j(),ee=Ee):(ve=ee,ee=r)}else ve=ee,ee=r;return Rt--,ee===r&&(Ee=r,Rt===0&&Xe(se)),ee}function qa(){var ee,Ee,Oe,gt,yt;if(ee=ve,t.substr(ve,2)===rt?(Ee=rt,ve+=2):(Ee=r,Rt===0&&Xe(Fe)),Ee===r&&(Ee=null),Ee!==r)if(Ne.test(t.charAt(ve))?(Oe=t.charAt(ve),ve++):(Oe=r,Rt===0&&Xe(Pe)),Oe!==r){for(gt=[],Ye.test(t.charAt(ve))?(yt=t.charAt(ve),ve++):(yt=r,Rt===0&&Xe(ke));yt!==r;)gt.push(yt),Ye.test(t.charAt(ve))?(yt=t.charAt(ve),ve++):(yt=r,Rt===0&&Xe(ke));gt!==r?(Nt=ee,Ee=j(),ee=Ee):(ve=ee,ee=r)}else ve=ee,ee=r;else ve=ee,ee=r;return ee}function _i(){var ee,Ee;return ee=ve,t.substr(ve,4)===it?(Ee=it,ve+=4):(Ee=r,Rt===0&&Xe(_e)),Ee!==r&&(Nt=ee,Ee=x()),ee=Ee,ee}function ws(){var ee,Ee;return ee=ve,t.substr(ve,4)===w?(Ee=w,ve+=4):(Ee=r,Rt===0&&Xe(b)),Ee!==r&&(Nt=ee,Ee=y()),ee=Ee,ee===r&&(ee=ve,t.substr(ve,5)===F?(Ee=F,ve+=5):(Ee=r,Rt===0&&Xe(z)),Ee!==r&&(Nt=ee,Ee=Z()),ee=Ee),ee}function Sl(){var ee,Ee,Oe,gt;return Rt++,ee=ve,t.charCodeAt(ve)===34?(Ee=oe,ve++):(Ee=r,Rt===0&&Xe(xe)),Ee!==r?(t.charCodeAt(ve)===34?(Oe=oe,ve++):(Oe=r,Rt===0&&Xe(xe)),Oe!==r?(Nt=ee,Ee=Te(),ee=Ee):(ve=ee,ee=r)):(ve=ee,ee=r),ee===r&&(ee=ve,t.charCodeAt(ve)===34?(Ee=oe,ve++):(Ee=r,Rt===0&&Xe(xe)),Ee!==r?(Oe=df(),Oe!==r?(t.charCodeAt(ve)===34?(gt=oe,ve++):(gt=r,Rt===0&&Xe(xe)),gt!==r?(Nt=ee,Ee=lt(Oe),ee=Ee):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)),Rt--,ee===r&&(Ee=r,Rt===0&&Xe($)),ee}function df(){var ee,Ee,Oe;if(ee=ve,Ee=[],Oe=Ac(),Oe!==r)for(;Oe!==r;)Ee.push(Oe),Oe=Ac();else Ee=r;return Ee!==r&&(Nt=ee,Ee=It(Ee)),ee=Ee,ee}function Ac(){var ee,Ee,Oe,gt,yt,Dt;return qt.test(t.charAt(ve))?(ee=t.charAt(ve),ve++):(ee=r,Rt===0&&Xe(ir)),ee===r&&(ee=ve,t.substr(ve,2)===Pt?(Ee=Pt,ve+=2):(Ee=r,Rt===0&&Xe(gn)),Ee!==r&&(Nt=ee,Ee=Pr()),ee=Ee,ee===r&&(ee=ve,t.substr(ve,2)===Ir?(Ee=Ir,ve+=2):(Ee=r,Rt===0&&Xe(Nr)),Ee!==r&&(Nt=ee,Ee=nn()),ee=Ee,ee===r&&(ee=ve,t.substr(ve,2)===ai?(Ee=ai,ve+=2):(Ee=r,Rt===0&&Xe(wo)),Ee!==r&&(Nt=ee,Ee=ns()),ee=Ee,ee===r&&(ee=ve,t.substr(ve,2)===to?(Ee=to,ve+=2):(Ee=r,Rt===0&&Xe(Bo)),Ee!==r&&(Nt=ee,Ee=ji()),ee=Ee,ee===r&&(ee=ve,t.substr(ve,2)===ro?(Ee=ro,ve+=2):(Ee=r,Rt===0&&Xe(vo)),Ee!==r&&(Nt=ee,Ee=RA()),ee=Ee,ee===r&&(ee=ve,t.substr(ve,2)===pf?(Ee=pf,ve+=2):(Ee=r,Rt===0&&Xe(yh)),Ee!==r&&(Nt=ee,Ee=Eh()),ee=Ee,ee===r&&(ee=ve,t.substr(ve,2)===no?(Ee=no,ve+=2):(Ee=r,Rt===0&&Xe(jn)),Ee!==r&&(Nt=ee,Ee=Fs()),ee=Ee,ee===r&&(ee=ve,t.substr(ve,2)===io?(Ee=io,ve+=2):(Ee=r,Rt===0&&Xe(lu)),Ee!==r&&(Nt=ee,Ee=cu()),ee=Ee,ee===r&&(ee=ve,t.substr(ve,2)===uu?(Ee=uu,ve+=2):(Ee=r,Rt===0&&Xe(FA)),Ee!==r?(Oe=Bi(),Oe!==r?(gt=Bi(),gt!==r?(yt=Bi(),yt!==r?(Dt=Bi(),Dt!==r?(Nt=ee,Ee=NA(Oe,gt,yt,Dt),ee=Ee):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)):(ve=ee,ee=r)))))))))),ee}function Bi(){var ee;return aa.test(t.charAt(ve))?(ee=t.charAt(ve),ve++):(ee=r,Rt===0&&Xe(la)),ee}function Qn(){var ee,Ee;if(Rt++,ee=[],gr.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Rt===0&&Xe(So)),Ee!==r)for(;Ee!==r;)ee.push(Ee),gr.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Rt===0&&Xe(So));else ee=r;return Rt--,ee===r&&(Ee=r,Rt===0&&Xe(OA)),ee}function pc(){var ee,Ee;if(Rt++,ee=[],fu.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Rt===0&&Xe(Cr)),Ee!==r)for(;Ee!==r;)ee.push(Ee),fu.test(t.charAt(ve))?(Ee=t.charAt(ve),ve++):(Ee=r,Rt===0&&Xe(Cr));else ee=r;return Rt--,ee===r&&(Ee=r,Rt===0&&Xe(Me)),ee}function Je(){var ee,Ee,Oe,gt,yt,Dt;if(ee=ve,Ee=st(),Ee!==r){for(Oe=[],gt=ve,yt=Qn(),yt===r&&(yt=null),yt!==r?(Dt=st(),Dt!==r?(yt=[yt,Dt],gt=yt):(ve=gt,gt=r)):(ve=gt,gt=r);gt!==r;)Oe.push(gt),gt=ve,yt=Qn(),yt===r&&(yt=null),yt!==r?(Dt=st(),Dt!==r?(yt=[yt,Dt],gt=yt):(ve=gt,gt=r)):(ve=gt,gt=r);Oe!==r?(Ee=[Ee,Oe],ee=Ee):(ve=ee,ee=r)}else ve=ee,ee=r;return ee}function st(){var ee;return t.substr(ve,2)===hf?(ee=hf,ve+=2):(ee=r,Rt===0&&Xe(LA)),ee===r&&(t.charCodeAt(ve)===10?(ee=MA,ve++):(ee=r,Rt===0&&Xe(Au)),ee===r&&(t.charCodeAt(ve)===13?(ee=pu,ve++):(ee=r,Rt===0&&Xe(ac)))),ee}let St=2,lr=0;if(xn=a(),xn!==r&&ve===t.length)return xn;throw xn!==r&&ve<t.length&&Xe(Ih()),gf(so,Li<t.length?t.charAt(Li):null,Li<t.length?Ua(Li,Li+1):Ua(Li,Li))}jre.exports={SyntaxError:Td,parse:kze}});function Wre(t){return t.match(Qze)?t:JSON.stringify(t)}function Vre(t){return typeof t>"u"?!0:typeof t=="object"&&t!==null&&!Array.isArray(t)?Object.keys(t).every(e=>Vre(t[e])):!1}function oU(t,e,r){if(t===null)return`null +`;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()} +`;if(typeof t=="string")return`${Wre(t)} +`;if(Array.isArray(t)){if(t.length===0)return`[] +`;let s=" ".repeat(e);return` +${t.map(n=>`${s}- ${oU(n,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let[s,a]=t instanceof Rx?[t.data,!1]:[t,!0],n=" ".repeat(e),c=Object.keys(s);a&&c.sort((p,h)=>{let E=Gre.indexOf(p),C=Gre.indexOf(h);return E===-1&&C===-1?p<h?-1:p>h?1:0:E!==-1&&C===-1?-1:E===-1&&C!==-1?1:E-C});let f=c.filter(p=>!Vre(s[p])).map((p,h)=>{let E=s[p],C=Wre(p),S=oU(E,e+1,!0),P=h>0||r?n:"",I=C.length>1024?`? ${C} +${P}:`:`${C}:`,R=S.startsWith(` +`)?S:` ${S}`;return`${P}${I}${R}`}).join(e===0?` +`:"")||` +`;return r?` +${f}`:`${f}`}throw new Error(`Unsupported value type (${t})`)}function il(t){try{let e=oU(t,0,!1);return e!==` +`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function Tze(t){return t.endsWith(` +`)||(t+=` +`),(0,Yre.parse)(t)}function Fze(t){if(Rze.test(t))return Tze(t);let e=(0,Fx.safeLoad)(t,{schema:Fx.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function cs(t){return Fze(t)}var Fx,Yre,Qze,Gre,Rx,Rze,Kre=Ct(()=>{Fx=et(Hre()),Yre=et(qre()),Qze=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,Gre=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],Rx=class{constructor(e){this.data=e}};il.PreserveOrdering=Rx;Rze=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i});var K2={};Vt(K2,{parseResolution:()=>Cx,parseShell:()=>yx,parseSyml:()=>cs,stringifyArgument:()=>Y_,stringifyArgumentSegment:()=>V_,stringifyArithmeticExpression:()=>Ix,stringifyCommand:()=>W_,stringifyCommandChain:()=>uE,stringifyCommandChainThen:()=>G_,stringifyCommandLine:()=>Ex,stringifyCommandLineThen:()=>q_,stringifyEnvSegment:()=>mx,stringifyRedirectArgument:()=>H2,stringifyResolution:()=>wx,stringifyShell:()=>cE,stringifyShellLine:()=>cE,stringifySyml:()=>il,stringifyValueArgument:()=>Bd});var Bc=Ct(()=>{Vee();Zee();Kre()});var zre=L((N5t,aU)=>{"use strict";var Nze=t=>{let e=!1,r=!1,s=!1;for(let a=0;a<t.length;a++){let n=t[a];e&&/[a-zA-Z]/.test(n)&&n.toUpperCase()===n?(t=t.slice(0,a)+"-"+t.slice(a),e=!1,s=r,r=!0,a++):r&&s&&/[a-zA-Z]/.test(n)&&n.toLowerCase()===n?(t=t.slice(0,a-1)+"-"+t.slice(a-1),s=r,r=!1,e=!0):(e=n.toLowerCase()===n&&n.toUpperCase()!==n,s=r,r=n.toUpperCase()===n&&n.toLowerCase()!==n)}return t},Jre=(t,e)=>{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=a=>e.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(t)?t=t.map(a=>a.trim()).filter(a=>a.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=Nze(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,n)=>n.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(t))};aU.exports=Jre;aU.exports.default=Jre});var Zre=L((O5t,Oze)=>{Oze.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vela",constant:"VELA",env:"VELA",pr:{VELA_PULL_REQUEST:"1"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]},pr:"VERCEL_GIT_PULL_REQUEST_ID"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var Rd=L(_l=>{"use strict";var $re=Zre(),Ps=process.env;Object.defineProperty(_l,"_vendors",{value:$re.map(function(t){return t.constant})});_l.name=null;_l.isPR=null;$re.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(s){return Xre(s)});if(_l[t.constant]=r,!!r)switch(_l.name=t.name,typeof t.pr){case"string":_l.isPR=!!Ps[t.pr];break;case"object":"env"in t.pr?_l.isPR=t.pr.env in Ps&&Ps[t.pr.env]!==t.pr.ne:"any"in t.pr?_l.isPR=t.pr.any.some(function(s){return!!Ps[s]}):_l.isPR=Xre(t.pr);break;default:_l.isPR=null}});_l.isCI=!!(Ps.CI!=="false"&&(Ps.BUILD_ID||Ps.BUILD_NUMBER||Ps.CI||Ps.CI_APP_ID||Ps.CI_BUILD_ID||Ps.CI_BUILD_NUMBER||Ps.CI_NAME||Ps.CONTINUOUS_INTEGRATION||Ps.RUN_ID||_l.name));function Xre(t){return typeof t=="string"?!!Ps[t]:"env"in t?Ps[t.env]&&Ps[t.env].includes(t.includes):"any"in t?t.any.some(function(e){return!!Ps[e]}):Object.keys(t).every(function(e){return Ps[e]===t[e]})}});var ei,En,Fd,lU,Nx,ene,cU,uU,Ox=Ct(()=>{(function(t){t.StartOfInput="\0",t.EndOfInput="",t.EndOfPartialInput=""})(ei||(ei={}));(function(t){t[t.InitialNode=0]="InitialNode",t[t.SuccessNode=1]="SuccessNode",t[t.ErrorNode=2]="ErrorNode",t[t.CustomNode=3]="CustomNode"})(En||(En={}));Fd=-1,lU=/^(-h|--help)(?:=([0-9]+))?$/,Nx=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,ene=/^-[a-zA-Z]{2,}$/,cU=/^([^=]+)=([\s\S]*)$/,uU=process.env.DEBUG_CLI==="1"});var nt,yE,Lx,fU,Mx=Ct(()=>{Ox();nt=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},yE=class extends Error{constructor(e,r){if(super(),this.input=e,this.candidates=r,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(s=>s.reason!==null&&s.reason===r[0].reason)){let[{reason:s}]=this.candidates;this.message=`${s} + +${this.candidates.map(({usage:a})=>`$ ${a}`).join(` +`)}`}else if(this.candidates.length===1){let[{usage:s}]=this.candidates;this.message=`Command not found; did you mean: + +$ ${s} +${fU(e)}`}else this.message=`Command not found; did you mean one of: + +${this.candidates.map(({usage:s},a)=>`${`${a}.`.padStart(4)} ${s}`).join(` +`)} + +${fU(e)}`}},Lx=class extends Error{constructor(e,r){super(),this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: + +${this.usages.map((s,a)=>`${`${a}.`.padStart(4)} ${s}`).join(` +`)} + +${fU(e)}`}},fU=t=>`While running ${t.filter(e=>e!==ei.EndOfInput&&e!==ei.EndOfPartialInput).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`});function Lze(t){let e=t.split(` +`),r=e.filter(a=>a.match(/\S/)),s=r.length>0?r.reduce((a,n)=>Math.min(a,n.length-n.trimStart().length),Number.MAX_VALUE):0;return e.map(a=>a.slice(s).trimRight()).join(` +`)}function qo(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,` +`),t=Lze(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 + +`),t=t.replace(/\n(\n)?\n*/g,(s,a)=>a||" "),r&&(t=t.split(/\n/).map(s=>{let a=s.match(/^\s*[*-][\t ]+(.*)/);if(!a)return s.match(/(.{1,80})(?: |$)/g).join(` +`);let n=s.length-s.trimStart().length;return a[1].match(new RegExp(`(.{1,${78-n}})(?: |$)`,"g")).map((c,f)=>" ".repeat(n)+(f===0?"- ":" ")+c).join(` +`)}).join(` + +`)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(s,a,n)=>e.code(a+n+a)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(s,a,n)=>e.bold(a+n+a)),t?`${t} +`:""}var AU,tne,rne,pU=Ct(()=>{AU=Array(80).fill("\u2501");for(let t=0;t<=24;++t)AU[AU.length-t]=`\x1B[38;5;${232+t}m\u2501`;tne={header:t=>`\x1B[1m\u2501\u2501\u2501 ${t}${t.length<75?` ${AU.slice(t.length+5).join("")}`:":"}\x1B[0m`,bold:t=>`\x1B[1m${t}\x1B[22m`,error:t=>`\x1B[31m\x1B[1m${t}\x1B[22m\x1B[39m`,code:t=>`\x1B[36m${t}\x1B[39m`},rne={header:t=>t,bold:t=>t,error:t=>t,code:t=>t}});function Ea(t){return{...t,[J2]:!0}}function Gf(t,e){return typeof t>"u"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function _x(t,{mergeName:e=!1}={}){let r=t.match(/^([^:]+): (.*)$/m);if(!r)return"validation failed";let[,s,a]=r;return e&&(a=a[0].toLowerCase()+a.slice(1)),a=s!=="."||!e?`${s.replace(/^\.(\[|$)/,"$1")}: ${a}`:`: ${a}`,a}function z2(t,e){return e.length===1?new nt(`${t}${_x(e[0],{mergeName:!0})}`):new nt(`${t}: +${e.map(r=>` +- ${_x(r)}`).join("")}`)}function Nd(t,e,r){if(typeof r>"u")return e;let s=[],a=[],n=f=>{let p=e;return e=f,n.bind(null,p)};if(!r(e,{errors:s,coercions:a,coercion:n}))throw z2(`Invalid value for ${t}`,s);for(let[,f]of a)f();return e}var J2,Bp=Ct(()=>{Mx();J2=Symbol("clipanion/isOption")});var Ia={};Vt(Ia,{KeyRelationship:()=>Wf,TypeAssertionError:()=>l0,applyCascade:()=>$2,as:()=>rZe,assert:()=>$ze,assertWithErrors:()=>eZe,cascade:()=>qx,fn:()=>nZe,hasAtLeastOneKey:()=>IU,hasExactLength:()=>ane,hasForbiddenKeys:()=>wZe,hasKeyRelationship:()=>tB,hasMaxLength:()=>sZe,hasMinLength:()=>iZe,hasMutuallyExclusiveKeys:()=>BZe,hasRequiredKeys:()=>CZe,hasUniqueItems:()=>oZe,isArray:()=>Ux,isAtLeast:()=>yU,isAtMost:()=>cZe,isBase64:()=>mZe,isBoolean:()=>Wze,isDate:()=>Vze,isDict:()=>zze,isEnum:()=>po,isHexColor:()=>dZe,isISO8601:()=>gZe,isInExclusiveRange:()=>fZe,isInInclusiveRange:()=>uZe,isInstanceOf:()=>Xze,isInteger:()=>EU,isJSON:()=>yZe,isLiteral:()=>ine,isLowerCase:()=>AZe,isMap:()=>Jze,isNegative:()=>aZe,isNullable:()=>IZe,isNumber:()=>dU,isObject:()=>sne,isOneOf:()=>mU,isOptional:()=>EZe,isPartial:()=>Zze,isPayload:()=>Yze,isPositive:()=>lZe,isRecord:()=>jx,isSet:()=>Kze,isString:()=>IE,isTuple:()=>Hx,isUUID4:()=>hZe,isUnknown:()=>gU,isUpperCase:()=>pZe,makeTrait:()=>one,makeValidator:()=>Wr,matchesRegExp:()=>X2,softAssert:()=>tZe});function ti(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":typeof t=="symbol"?`<${t.toString()}>`:Array.isArray(t)?"an array":JSON.stringify(t)}function EE(t,e){if(t.length===0)return"nothing";if(t.length===1)return ti(t[0]);let r=t.slice(0,-1),s=t[t.length-1],a=t.length>2?`, ${e} `:` ${e} `;return`${r.map(n=>ti(n)).join(", ")}${a}${ti(s)}`}function a0(t,e){var r,s,a;return typeof e=="number"?`${(r=t?.p)!==null&&r!==void 0?r:"."}[${e}]`:Mze.test(e)?`${(s=t?.p)!==null&&s!==void 0?s:""}.${e}`:`${(a=t?.p)!==null&&a!==void 0?a:"."}[${JSON.stringify(e)}]`}function hU(t,e,r){return t===1?e:r}function mr({errors:t,p:e}={},r){return t?.push(`${e??"."}: ${r}`),!1}function qze(t,e){return r=>{t[e]=r}}function Yf(t,e){return r=>{let s=t[e];return t[e]=r,Yf(t,e).bind(null,s)}}function Z2(t,e,r){let s=()=>(t(r()),a),a=()=>(t(e),s);return s}function gU(){return Wr({test:(t,e)=>!0})}function ine(t){return Wr({test:(e,r)=>e!==t?mr(r,`Expected ${ti(t)} (got ${ti(e)})`):!0})}function IE(){return Wr({test:(t,e)=>typeof t!="string"?mr(e,`Expected a string (got ${ti(t)})`):!0})}function po(t){let e=Array.isArray(t)?t:Object.values(t),r=e.every(a=>typeof a=="string"||typeof a=="number"),s=new Set(e);return s.size===1?ine([...s][0]):Wr({test:(a,n)=>s.has(a)?!0:r?mr(n,`Expected one of ${EE(e,"or")} (got ${ti(a)})`):mr(n,`Expected a valid enumeration value (got ${ti(a)})`)})}function Wze(){return Wr({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return mr(e,"Unbound coercion result");let s=Gze.get(t);if(typeof s<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,s)]),!0}return mr(e,`Expected a boolean (got ${ti(t)})`)}return!0}})}function dU(){return Wr({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return mr(e,"Unbound coercion result");let s;if(typeof t=="string"){let a;try{a=JSON.parse(t)}catch{}if(typeof a=="number")if(JSON.stringify(a)===t)s=a;else return mr(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof s<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,s)]),!0}return mr(e,`Expected a number (got ${ti(t)})`)}return!0}})}function Yze(t){return Wr({test:(e,r)=>{var s;if(typeof r?.coercions>"u")return mr(r,"The isPayload predicate can only be used with coercion enabled");if(typeof r.coercion>"u")return mr(r,"Unbound coercion result");if(typeof e!="string")return mr(r,`Expected a string (got ${ti(e)})`);let a;try{a=JSON.parse(e)}catch{return mr(r,`Expected a JSON string (got ${ti(e)})`)}let n={value:a};return t(a,Object.assign(Object.assign({},r),{coercion:Yf(n,"value")}))?(r.coercions.push([(s=r.p)!==null&&s!==void 0?s:".",r.coercion.bind(null,n.value)]),!0):!1}})}function Vze(){return Wr({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return mr(e,"Unbound coercion result");let s;if(typeof t=="string"&&nne.test(t))s=new Date(t);else{let a;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch{}typeof n=="number"&&(a=n)}else typeof t=="number"&&(a=t);if(typeof a<"u")if(Number.isSafeInteger(a)||!Number.isSafeInteger(a*1e3))s=new Date(a*1e3);else return mr(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof s<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,s)]),!0}return mr(e,`Expected a date (got ${ti(t)})`)}return!0}})}function Ux(t,{delimiter:e}={}){return Wr({test:(r,s)=>{var a;let n=r;if(typeof r=="string"&&typeof e<"u"&&typeof s?.coercions<"u"){if(typeof s?.coercion>"u")return mr(s,"Unbound coercion result");r=r.split(e)}if(!Array.isArray(r))return mr(s,`Expected an array (got ${ti(r)})`);let c=!0;for(let f=0,p=r.length;f<p&&(c=t(r[f],Object.assign(Object.assign({},s),{p:a0(s,f),coercion:Yf(r,f)}))&&c,!(!c&&s?.errors==null));++f);return r!==n&&s.coercions.push([(a=s.p)!==null&&a!==void 0?a:".",s.coercion.bind(null,r)]),c}})}function Kze(t,{delimiter:e}={}){let r=Ux(t,{delimiter:e});return Wr({test:(s,a)=>{var n,c;if(Object.getPrototypeOf(s).toString()==="[object Set]")if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return mr(a,"Unbound coercion result");let f=[...s],p=[...s];if(!r(p,Object.assign(Object.assign({},a),{coercion:void 0})))return!1;let h=()=>p.some((E,C)=>E!==f[C])?new Set(p):s;return a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",Z2(a.coercion,s,h)]),!0}else{let f=!0;for(let p of s)if(f=t(p,Object.assign({},a))&&f,!f&&a?.errors==null)break;return f}if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return mr(a,"Unbound coercion result");let f={value:s};return r(s,Object.assign(Object.assign({},a),{coercion:Yf(f,"value")}))?(a.coercions.push([(c=a.p)!==null&&c!==void 0?c:".",Z2(a.coercion,s,()=>new Set(f.value))]),!0):!1}return mr(a,`Expected a set (got ${ti(s)})`)}})}function Jze(t,e){let r=Ux(Hx([t,e])),s=jx(e,{keys:t});return Wr({test:(a,n)=>{var c,f,p;if(Object.getPrototypeOf(a).toString()==="[object Map]")if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return mr(n,"Unbound coercion result");let h=[...a],E=[...a];if(!r(E,Object.assign(Object.assign({},n),{coercion:void 0})))return!1;let C=()=>E.some((S,P)=>S[0]!==h[P][0]||S[1]!==h[P][1])?new Map(E):a;return n.coercions.push([(c=n.p)!==null&&c!==void 0?c:".",Z2(n.coercion,a,C)]),!0}else{let h=!0;for(let[E,C]of a)if(h=t(E,Object.assign({},n))&&h,!h&&n?.errors==null||(h=e(C,Object.assign(Object.assign({},n),{p:a0(n,E)}))&&h,!h&&n?.errors==null))break;return h}if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return mr(n,"Unbound coercion result");let h={value:a};return Array.isArray(a)?r(a,Object.assign(Object.assign({},n),{coercion:void 0}))?(n.coercions.push([(f=n.p)!==null&&f!==void 0?f:".",Z2(n.coercion,a,()=>new Map(h.value))]),!0):!1:s(a,Object.assign(Object.assign({},n),{coercion:Yf(h,"value")}))?(n.coercions.push([(p=n.p)!==null&&p!==void 0?p:".",Z2(n.coercion,a,()=>new Map(Object.entries(h.value)))]),!0):!1}return mr(n,`Expected a map (got ${ti(a)})`)}})}function Hx(t,{delimiter:e}={}){let r=ane(t.length);return Wr({test:(s,a)=>{var n;if(typeof s=="string"&&typeof e<"u"&&typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return mr(a,"Unbound coercion result");s=s.split(e),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,s)])}if(!Array.isArray(s))return mr(a,`Expected a tuple (got ${ti(s)})`);let c=r(s,Object.assign({},a));for(let f=0,p=s.length;f<p&&f<t.length&&(c=t[f](s[f],Object.assign(Object.assign({},a),{p:a0(a,f),coercion:Yf(s,f)}))&&c,!(!c&&a?.errors==null));++f);return c}})}function jx(t,{keys:e=null}={}){let r=Ux(Hx([e??IE(),t]));return Wr({test:(s,a)=>{var n;if(Array.isArray(s)&&typeof a?.coercions<"u")return typeof a?.coercion>"u"?mr(a,"Unbound coercion result"):r(s,Object.assign(Object.assign({},a),{coercion:void 0}))?(s=Object.fromEntries(s),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,s)]),!0):!1;if(typeof s!="object"||s===null)return mr(a,`Expected an object (got ${ti(s)})`);let c=Object.keys(s),f=!0;for(let p=0,h=c.length;p<h&&(f||a?.errors!=null);++p){let E=c[p],C=s[E];if(E==="__proto__"||E==="constructor"){f=mr(Object.assign(Object.assign({},a),{p:a0(a,E)}),"Unsafe property name");continue}if(e!==null&&!e(E,a)){f=!1;continue}if(!t(C,Object.assign(Object.assign({},a),{p:a0(a,E),coercion:Yf(s,E)}))){f=!1;continue}}return f}})}function zze(t,e={}){return jx(t,e)}function sne(t,{extra:e=null}={}){let r=Object.keys(t),s=Wr({test:(a,n)=>{if(typeof a!="object"||a===null)return mr(n,`Expected an object (got ${ti(a)})`);let c=new Set([...r,...Object.keys(a)]),f={},p=!0;for(let h of c){if(h==="constructor"||h==="__proto__")p=mr(Object.assign(Object.assign({},n),{p:a0(n,h)}),"Unsafe property name");else{let E=Object.prototype.hasOwnProperty.call(t,h)?t[h]:void 0,C=Object.prototype.hasOwnProperty.call(a,h)?a[h]:void 0;typeof E<"u"?p=E(C,Object.assign(Object.assign({},n),{p:a0(n,h),coercion:Yf(a,h)}))&&p:e===null?p=mr(Object.assign(Object.assign({},n),{p:a0(n,h)}),`Extraneous property (got ${ti(C)})`):Object.defineProperty(f,h,{enumerable:!0,get:()=>C,set:qze(a,h)})}if(!p&&n?.errors==null)break}return e!==null&&(p||n?.errors!=null)&&(p=e(f,n)&&p),p}});return Object.assign(s,{properties:t})}function Zze(t){return sne(t,{extra:jx(gU())})}function one(t){return()=>t}function Wr({test:t}){return one(t)()}function $ze(t,e){if(!e(t))throw new l0}function eZe(t,e){let r=[];if(!e(t,{errors:r}))throw new l0({errors:r})}function tZe(t,e){}function rZe(t,e,{coerce:r=!1,errors:s,throw:a}={}){let n=s?[]:void 0;if(!r){if(e(t,{errors:n}))return a?t:{value:t,errors:void 0};if(a)throw new l0({errors:n});return{value:void 0,errors:n??!0}}let c={value:t},f=Yf(c,"value"),p=[];if(!e(t,{errors:n,coercion:f,coercions:p})){if(a)throw new l0({errors:n});return{value:void 0,errors:n??!0}}for(let[,h]of p)h();return a?c.value:{value:c.value,errors:void 0}}function nZe(t,e){let r=Hx(t);return(...s)=>{if(!r(s))throw new l0;return e(...s)}}function iZe(t){return Wr({test:(e,r)=>e.length>=t?!0:mr(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)})}function sZe(t){return Wr({test:(e,r)=>e.length<=t?!0:mr(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)})}function ane(t){return Wr({test:(e,r)=>e.length!==t?mr(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0})}function oZe({map:t}={}){return Wr({test:(e,r)=>{let s=new Set,a=new Set;for(let n=0,c=e.length;n<c;++n){let f=e[n],p=typeof t<"u"?t(f):f;if(s.has(p)){if(a.has(p))continue;mr(r,`Expected to contain unique elements; got a duplicate with ${ti(e)}`),a.add(p)}else s.add(p)}return a.size===0}})}function aZe(){return Wr({test:(t,e)=>t<=0?!0:mr(e,`Expected to be negative (got ${t})`)})}function lZe(){return Wr({test:(t,e)=>t>=0?!0:mr(e,`Expected to be positive (got ${t})`)})}function yU(t){return Wr({test:(e,r)=>e>=t?!0:mr(r,`Expected to be at least ${t} (got ${e})`)})}function cZe(t){return Wr({test:(e,r)=>e<=t?!0:mr(r,`Expected to be at most ${t} (got ${e})`)})}function uZe(t,e){return Wr({test:(r,s)=>r>=t&&r<=e?!0:mr(s,`Expected to be in the [${t}; ${e}] range (got ${r})`)})}function fZe(t,e){return Wr({test:(r,s)=>r>=t&&r<e?!0:mr(s,`Expected to be in the [${t}; ${e}[ range (got ${r})`)})}function EU({unsafe:t=!1}={}){return Wr({test:(e,r)=>e!==Math.round(e)?mr(r,`Expected to be an integer (got ${e})`):!t&&!Number.isSafeInteger(e)?mr(r,`Expected to be a safe integer (got ${e})`):!0})}function X2(t){return Wr({test:(e,r)=>t.test(e)?!0:mr(r,`Expected to match the pattern ${t.toString()} (got ${ti(e)})`)})}function AZe(){return Wr({test:(t,e)=>t!==t.toLowerCase()?mr(e,`Expected to be all-lowercase (got ${t})`):!0})}function pZe(){return Wr({test:(t,e)=>t!==t.toUpperCase()?mr(e,`Expected to be all-uppercase (got ${t})`):!0})}function hZe(){return Wr({test:(t,e)=>jze.test(t)?!0:mr(e,`Expected to be a valid UUID v4 (got ${ti(t)})`)})}function gZe(){return Wr({test:(t,e)=>nne.test(t)?!0:mr(e,`Expected to be a valid ISO 8601 date string (got ${ti(t)})`)})}function dZe({alpha:t=!1}){return Wr({test:(e,r)=>(t?_ze.test(e):Uze.test(e))?!0:mr(r,`Expected to be a valid hexadecimal color string (got ${ti(e)})`)})}function mZe(){return Wr({test:(t,e)=>Hze.test(t)?!0:mr(e,`Expected to be a valid base 64 string (got ${ti(t)})`)})}function yZe(t=gU()){return Wr({test:(e,r)=>{let s;try{s=JSON.parse(e)}catch{return mr(r,`Expected to be a valid JSON string (got ${ti(e)})`)}return t(s,r)}})}function qx(t,...e){let r=Array.isArray(e[0])?e[0]:e;return Wr({test:(s,a)=>{var n,c;let f={value:s},p=typeof a?.coercions<"u"?Yf(f,"value"):void 0,h=typeof a?.coercions<"u"?[]:void 0;if(!t(s,Object.assign(Object.assign({},a),{coercion:p,coercions:h})))return!1;let E=[];if(typeof h<"u")for(let[,C]of h)E.push(C());try{if(typeof a?.coercions<"u"){if(f.value!==s){if(typeof a?.coercion>"u")return mr(a,"Unbound coercion result");a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,f.value)])}(c=a?.coercions)===null||c===void 0||c.push(...h)}return r.every(C=>C(f.value,a))}finally{for(let C of E)C()}}})}function $2(t,...e){let r=Array.isArray(e[0])?e[0]:e;return qx(t,r)}function EZe(t){return Wr({test:(e,r)=>typeof e>"u"?!0:t(e,r)})}function IZe(t){return Wr({test:(e,r)=>e===null?!0:t(e,r)})}function CZe(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Wr({test:(n,c)=>{let f=new Set(Object.keys(n)),p=[];for(let h of s)a(f,h,n)||p.push(h);return p.length>0?mr(c,`Missing required ${hU(p.length,"property","properties")} ${EE(p,"and")}`):!0}})}function IU(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Wr({test:(n,c)=>Object.keys(n).some(h=>a(s,h,n))?!0:mr(c,`Missing at least one property from ${EE(Array.from(s),"or")}`)})}function wZe(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Wr({test:(n,c)=>{let f=new Set(Object.keys(n)),p=[];for(let h of s)a(f,h,n)&&p.push(h);return p.length>0?mr(c,`Forbidden ${hU(p.length,"property","properties")} ${EE(p,"and")}`):!0}})}function BZe(t,e){var r;let s=new Set(t),a=eB[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Wr({test:(n,c)=>{let f=new Set(Object.keys(n)),p=[];for(let h of s)a(f,h,n)&&p.push(h);return p.length>1?mr(c,`Mutually exclusive properties ${EE(p,"and")}`):!0}})}function tB(t,e,r,s){var a,n;let c=new Set((a=s?.ignore)!==null&&a!==void 0?a:[]),f=eB[(n=s?.missingIf)!==null&&n!==void 0?n:"missing"],p=new Set(r),h=vZe[e],E=e===Wf.Forbids?"or":"and";return Wr({test:(C,S)=>{let P=new Set(Object.keys(C));if(!f(P,t,C)||c.has(C[t]))return!0;let I=[];for(let R of p)(f(P,R,C)&&!c.has(C[R]))!==h.expect&&I.push(R);return I.length>=1?mr(S,`Property "${t}" ${h.message} ${hU(I.length,"property","properties")} ${EE(I,E)}`):!0}})}var Mze,_ze,Uze,Hze,jze,nne,Gze,Xze,mU,l0,eB,Wf,vZe,Ul=Ct(()=>{Mze=/^[a-zA-Z_][a-zA-Z0-9_]*$/;_ze=/^#[0-9a-f]{6}$/i,Uze=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,Hze=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,jze=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,nne=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/;Gze=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]);Xze=t=>Wr({test:(e,r)=>e instanceof t?!0:mr(r,`Expected an instance of ${t.name} (got ${ti(e)})`)}),mU=(t,{exclusive:e=!1}={})=>Wr({test:(r,s)=>{var a,n,c;let f=[],p=typeof s?.errors<"u"?[]:void 0;for(let h=0,E=t.length;h<E;++h){let C=typeof s?.errors<"u"?[]:void 0,S=typeof s?.coercions<"u"?[]:void 0;if(t[h](r,Object.assign(Object.assign({},s),{errors:C,coercions:S,p:`${(a=s?.p)!==null&&a!==void 0?a:"."}#${h+1}`}))){if(f.push([`#${h+1}`,S]),!e)break}else p?.push(C[0])}if(f.length===1){let[,h]=f[0];return typeof h<"u"&&((n=s?.coercions)===null||n===void 0||n.push(...h)),!0}return f.length>1?mr(s,`Expected to match exactly a single predicate (matched ${f.join(", ")})`):(c=s?.errors)===null||c===void 0||c.push(...p),!1}});l0=class extends Error{constructor({errors:e}={}){let r="Type mismatch";if(e&&e.length>0){r+=` +`;for(let s of e)r+=` +- ${s}`}super(r)}};eB={missing:(t,e)=>t.has(e),undefined:(t,e,r)=>t.has(e)&&typeof r[e]<"u",nil:(t,e,r)=>t.has(e)&&r[e]!=null,falsy:(t,e,r)=>t.has(e)&&!!r[e]};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(Wf||(Wf={}));vZe={[Wf.Forbids]:{expect:!1,message:"forbids using"},[Wf.Requires]:{expect:!0,message:"requires using"}}});var ot,c0=Ct(()=>{Bp();ot=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:a,isUnknown:n,applyCascade:c}=await Promise.resolve().then(()=>(Ul(),Ia)),f=c(a(n()),r),p=[],h=[];if(!f(this,{errors:p,coercions:h}))throw z2("Invalid option schema",p);for(let[,C]of h)C()}else if(r!=null)throw new Error("Invalid command schema");let s=await this.execute();return typeof s<"u"?s:0}};ot.isOption=J2;ot.Default=[]});function sl(t){uU&&console.log(t)}function cne(){let t={nodes:[]};for(let e=0;e<En.CustomNode;++e)t.nodes.push(Hl());return t}function SZe(t){let e=cne(),r=[],s=e.nodes.length;for(let a of t){r.push(s);for(let n=0;n<a.nodes.length;++n)fne(n)||e.nodes.push(RZe(a.nodes[n],s));s+=a.nodes.length-En.CustomNode+1}for(let a of r)CE(e,En.InitialNode,a);return e}function Mu(t,e){return t.nodes.push(e),t.nodes.length-1}function DZe(t){let e=new Set,r=s=>{if(e.has(s))return;e.add(s);let a=t.nodes[s];for(let c of Object.values(a.statics))for(let{to:f}of c)r(f);for(let[,{to:c}]of a.dynamics)r(c);for(let{to:c}of a.shortcuts)r(c);let n=new Set(a.shortcuts.map(({to:c})=>c));for(;a.shortcuts.length>0;){let{to:c}=a.shortcuts.shift(),f=t.nodes[c];for(let[p,h]of Object.entries(f.statics)){let E=Object.prototype.hasOwnProperty.call(a.statics,p)?a.statics[p]:a.statics[p]=[];for(let C of h)E.some(({to:S})=>C.to===S)||E.push(C)}for(let[p,h]of f.dynamics)a.dynamics.some(([E,{to:C}])=>p===E&&h.to===C)||a.dynamics.push([p,h]);for(let p of f.shortcuts)n.has(p.to)||(a.shortcuts.push(p),n.add(p.to))}};r(En.InitialNode)}function bZe(t,{prefix:e=""}={}){if(uU){sl(`${e}Nodes are:`);for(let r=0;r<t.nodes.length;++r)sl(`${e} ${r}: ${JSON.stringify(t.nodes[r])}`)}}function PZe(t,e,r=!1){sl(`Running a vm on ${JSON.stringify(e)}`);let s=[{node:En.InitialNode,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null,partial:!1,tokens:[]}}];bZe(t,{prefix:" "});let a=[ei.StartOfInput,...e];for(let n=0;n<a.length;++n){let c=a[n],f=c===ei.EndOfInput||c===ei.EndOfPartialInput,p=n-1;sl(` Processing ${JSON.stringify(c)}`);let h=[];for(let{node:E,state:C}of s){sl(` Current node is ${E}`);let S=t.nodes[E];if(E===En.ErrorNode){h.push({node:E,state:C});continue}console.assert(S.shortcuts.length===0,"Shortcuts should have been eliminated by now");let P=Object.prototype.hasOwnProperty.call(S.statics,c);if(!r||n<a.length-1||P)if(P){let I=S.statics[c];for(let{to:R,reducer:N}of I)h.push({node:R,state:typeof N<"u"?Gx(wU,N,C,c,p):C}),sl(` Static transition to ${R} found`)}else sl(" No static transition found");else{let I=!1;for(let R of Object.keys(S.statics))if(R.startsWith(c)){if(c===R)for(let{to:N,reducer:U}of S.statics[R])h.push({node:N,state:typeof U<"u"?Gx(wU,U,C,c,p):C}),sl(` Static transition to ${N} found`);else for(let{to:N}of S.statics[R])h.push({node:N,state:{...C,remainder:R.slice(c.length)}}),sl(` Static transition to ${N} found (partial match)`);I=!0}I||sl(" No partial static transition found")}if(!f)for(let[I,{to:R,reducer:N}]of S.dynamics)Gx(FZe,I,C,c,p)&&(h.push({node:R,state:typeof N<"u"?Gx(wU,N,C,c,p):C}),sl(` Dynamic transition to ${R} found (via ${I})`))}if(h.length===0&&f&&e.length===1)return[{node:En.InitialNode,state:lne}];if(h.length===0)throw new yE(e,s.filter(({node:E})=>E!==En.ErrorNode).map(({state:E})=>({usage:E.candidateUsage,reason:null})));if(h.every(({node:E})=>E===En.ErrorNode))throw new yE(e,h.map(({state:E})=>({usage:E.candidateUsage,reason:E.errorMessage})));s=kZe(h)}if(s.length>0){sl(" Results:");for(let n of s)sl(` - ${n.node} -> ${JSON.stringify(n.state)}`)}else sl(" No results");return s}function xZe(t,e,{endToken:r=ei.EndOfInput}={}){let s=PZe(t,[...e,r]);return QZe(e,s.map(({state:a})=>a))}function kZe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function QZe(t,e){let r=e.filter(S=>S.selectedIndex!==null),s=r.filter(S=>!S.partial);if(s.length>0&&(r=s),r.length===0)throw new Error;let a=r.filter(S=>S.selectedIndex===Fd||S.requiredOptions.every(P=>P.some(I=>S.options.find(R=>R.name===I))));if(a.length===0)throw new yE(t,r.map(S=>({usage:S.candidateUsage,reason:null})));let n=0;for(let S of a)S.path.length>n&&(n=S.path.length);let c=a.filter(S=>S.path.length===n),f=S=>S.positionals.filter(({extra:P})=>!P).length+S.options.length,p=c.map(S=>({state:S,positionalCount:f(S)})),h=0;for(let{positionalCount:S}of p)S>h&&(h=S);let E=p.filter(({positionalCount:S})=>S===h).map(({state:S})=>S),C=TZe(E);if(C.length>1)throw new Lx(t,C.map(S=>S.candidateUsage));return C[0]}function TZe(t){let e=[],r=[];for(let s of t)s.selectedIndex===Fd?r.push(s):e.push(s);return r.length>0&&e.push({...lne,path:une(...r.map(s=>s.path)),options:r.reduce((s,a)=>s.concat(a.options),[])}),e}function une(t,e,...r){return e===void 0?Array.from(t):une(t.filter((s,a)=>s===e[a]),...r)}function Hl(){return{dynamics:[],shortcuts:[],statics:{}}}function fne(t){return t===En.SuccessNode||t===En.ErrorNode}function CU(t,e=0){return{to:fne(t.to)?t.to:t.to>=En.CustomNode?t.to+e-En.CustomNode+1:t.to+e,reducer:t.reducer}}function RZe(t,e=0){let r=Hl();for(let[s,a]of t.dynamics)r.dynamics.push([s,CU(a,e)]);for(let s of t.shortcuts)r.shortcuts.push(CU(s,e));for(let[s,a]of Object.entries(t.statics))r.statics[s]=a.map(n=>CU(n,e));return r}function qs(t,e,r,s,a){t.nodes[e].dynamics.push([r,{to:s,reducer:a}])}function CE(t,e,r,s){t.nodes[e].shortcuts.push({to:r,reducer:s})}function Ca(t,e,r,s,a){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:s,reducer:a})}function Gx(t,e,r,s,a){if(Array.isArray(e)){let[n,...c]=e;return t[n](r,s,a,...c)}else return t[e](r,s,a)}var lne,FZe,wU,jl,BU,Wx,Yx=Ct(()=>{Ox();Mx();lne={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:Fd,partial:!1,tokens:[]};FZe={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(t,e)=>t.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(t,e,r,s)=>!t.ignoreOptions&&e===s,isBatchOption:(t,e,r,s)=>!t.ignoreOptions&&ene.test(e)&&[...e.slice(1)].every(a=>s.has(`-${a}`)),isBoundOption:(t,e,r,s,a)=>{let n=e.match(cU);return!t.ignoreOptions&&!!n&&Nx.test(n[1])&&s.has(n[1])&&a.filter(c=>c.nameSet.includes(n[1])).every(c=>c.allowBinding)},isNegatedOption:(t,e,r,s)=>!t.ignoreOptions&&e===`--no-${s.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&lU.test(e),isUnsupportedOption:(t,e,r,s)=>!t.ignoreOptions&&e.startsWith("-")&&Nx.test(e)&&!s.has(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith("-")&&!Nx.test(e)},wU={setCandidateState:(t,e,r,s)=>({...t,...s}),setSelectedIndex:(t,e,r,s)=>({...t,selectedIndex:s}),setPartialIndex:(t,e,r,s)=>({...t,selectedIndex:s,partial:!0}),pushBatch:(t,e,r,s)=>{let a=t.options.slice(),n=t.tokens.slice();for(let c=1;c<e.length;++c){let f=s.get(`-${e[c]}`),p=c===1?[0,2]:[c,c+1];a.push({name:f,value:!0}),n.push({segmentIndex:r,type:"option",option:f,slice:p})}return{...t,options:a,tokens:n}},pushBound:(t,e,r)=>{let[,s,a]=e.match(cU),n=t.options.concat({name:s,value:a}),c=t.tokens.concat([{segmentIndex:r,type:"option",slice:[0,s.length],option:s},{segmentIndex:r,type:"assign",slice:[s.length,s.length+1]},{segmentIndex:r,type:"value",slice:[s.length+1,s.length+a.length+1]}]);return{...t,options:n,tokens:c}},pushPath:(t,e,r)=>{let s=t.path.concat(e),a=t.tokens.concat({segmentIndex:r,type:"path"});return{...t,path:s,tokens:a}},pushPositional:(t,e,r)=>{let s=t.positionals.concat({value:e,extra:!1}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:s,tokens:a}},pushExtra:(t,e,r)=>{let s=t.positionals.concat({value:e,extra:!0}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:s,tokens:a}},pushExtraNoLimits:(t,e,r)=>{let s=t.positionals.concat({value:e,extra:jl}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:s,tokens:a}},pushTrue:(t,e,r,s)=>{let a=t.options.concat({name:s,value:!0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:s});return{...t,options:a,tokens:n}},pushFalse:(t,e,r,s)=>{let a=t.options.concat({name:s,value:!1}),n=t.tokens.concat({segmentIndex:r,type:"option",option:s});return{...t,options:a,tokens:n}},pushUndefined:(t,e,r,s)=>{let a=t.options.concat({name:e,value:void 0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:e});return{...t,options:a,tokens:n}},pushStringValue:(t,e,r)=>{var s;let a=t.options[t.options.length-1],n=t.options.slice(),c=t.tokens.concat({segmentIndex:r,type:"value"});return a.value=((s=a.value)!==null&&s!==void 0?s:[]).concat([e]),{...t,options:n,tokens:c}},setStringValue:(t,e,r)=>{let s=t.options[t.options.length-1],a=t.options.slice(),n=t.tokens.concat({segmentIndex:r,type:"value"});return s.value=e,{...t,options:a,tokens:n}},inhibateOptions:t=>({...t,ignoreOptions:!0}),useHelp:(t,e,r,s)=>{let[,,a]=e.match(lU);return typeof a<"u"?{...t,options:[{name:"-c",value:String(s)},{name:"-i",value:a}]}:{...t,options:[{name:"-c",value:String(s)}]}},setError:(t,e,r,s)=>e===ei.EndOfInput||e===ei.EndOfPartialInput?{...t,errorMessage:`${s}.`}:{...t,errorMessage:`${s} ("${e}").`},setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return{...t,errorMessage:`Not enough arguments to option ${r.name}.`}}},jl=Symbol(),BU=class{constructor(e,r){this.allOptionNames=new Map,this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:s=this.arity.extra,proxy:a=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:s,proxy:a})}addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra===jl)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!r&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!r&&this.arity.extra!==jl?this.arity.extra.push(e):this.arity.extra!==jl&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===jl)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let s=0;s<r;++s)this.addPositional({name:e});this.arity.extra=jl}addProxy({required:e=0}={}){this.addRest({required:e}),this.arity.proxy=!0}addOption({names:e,description:r,arity:s=0,hidden:a=!1,required:n=!1,allowBinding:c=!0}){if(!c&&s>1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(s))throw new Error(`The arity must be an integer, got ${s}`);if(s<0)throw new Error(`The arity must be positive, got ${s}`);let f=e.reduce((p,h)=>h.length>p.length?h:p,"");for(let p of e)this.allOptionNames.set(p,f);this.options.push({preferredName:f,nameSet:e,description:r,arity:s,hidden:a,required:n,allowBinding:c})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let s=[this.cliOpts.binaryName],a=[];if(this.paths.length>0&&s.push(...this.paths[0]),e){for(let{preferredName:c,nameSet:f,arity:p,hidden:h,description:E,required:C}of this.options){if(h)continue;let S=[];for(let I=0;I<p;++I)S.push(` #${I}`);let P=`${f.join(",")}${S.join("")}`;!r&&E?a.push({preferredName:c,nameSet:f,definition:P,description:E,required:C}):s.push(C?`<${P}>`:`[${P}]`)}s.push(...this.arity.leading.map(c=>`<${c}>`)),this.arity.extra===jl?s.push("..."):s.push(...this.arity.extra.map(c=>`[${c}]`)),s.push(...this.arity.trailing.map(c=>`<${c}>`))}return{usage:s.join(" "),options:a}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=cne(),r=En.InitialNode,s=this.usage().usage,a=this.options.filter(f=>f.required).map(f=>f.nameSet);r=Mu(e,Hl()),Ca(e,En.InitialNode,ei.StartOfInput,r,["setCandidateState",{candidateUsage:s,requiredOptions:a}]);let n=this.arity.proxy?"always":"isNotOptionLike",c=this.paths.length>0?this.paths:[[]];for(let f of c){let p=r;if(f.length>0){let S=Mu(e,Hl());CE(e,p,S),this.registerOptions(e,S),p=S}for(let S=0;S<f.length;++S){let P=Mu(e,Hl());Ca(e,p,f[S],P,"pushPath"),p=P}if(this.arity.leading.length>0||!this.arity.proxy){let S=Mu(e,Hl());qs(e,p,"isHelp",S,["useHelp",this.cliIndex]),qs(e,S,"always",S,"pushExtra"),Ca(e,S,ei.EndOfInput,En.SuccessNode,["setSelectedIndex",Fd]),this.registerOptions(e,p)}this.arity.leading.length>0&&(Ca(e,p,ei.EndOfInput,En.ErrorNode,["setError","Not enough positional arguments"]),Ca(e,p,ei.EndOfPartialInput,En.SuccessNode,["setPartialIndex",this.cliIndex]));let h=p;for(let S=0;S<this.arity.leading.length;++S){let P=Mu(e,Hl());(!this.arity.proxy||S+1!==this.arity.leading.length)&&this.registerOptions(e,P),(this.arity.trailing.length>0||S+1!==this.arity.leading.length)&&(Ca(e,P,ei.EndOfInput,En.ErrorNode,["setError","Not enough positional arguments"]),Ca(e,P,ei.EndOfPartialInput,En.SuccessNode,["setPartialIndex",this.cliIndex])),qs(e,h,"isNotOptionLike",P,"pushPositional"),h=P}let E=h;if(this.arity.extra===jl||this.arity.extra.length>0){let S=Mu(e,Hl());if(CE(e,h,S),this.arity.extra===jl){let P=Mu(e,Hl());this.arity.proxy||this.registerOptions(e,P),qs(e,h,n,P,"pushExtraNoLimits"),qs(e,P,n,P,"pushExtraNoLimits"),CE(e,P,S)}else for(let P=0;P<this.arity.extra.length;++P){let I=Mu(e,Hl());(!this.arity.proxy||P>0)&&this.registerOptions(e,I),qs(e,E,n,I,"pushExtra"),CE(e,I,S),E=I}E=S}this.arity.trailing.length>0&&(Ca(e,E,ei.EndOfInput,En.ErrorNode,["setError","Not enough positional arguments"]),Ca(e,E,ei.EndOfPartialInput,En.SuccessNode,["setPartialIndex",this.cliIndex]));let C=E;for(let S=0;S<this.arity.trailing.length;++S){let P=Mu(e,Hl());this.arity.proxy||this.registerOptions(e,P),S+1<this.arity.trailing.length&&(Ca(e,P,ei.EndOfInput,En.ErrorNode,["setError","Not enough positional arguments"]),Ca(e,P,ei.EndOfPartialInput,En.SuccessNode,["setPartialIndex",this.cliIndex])),qs(e,C,"isNotOptionLike",P,"pushPositional"),C=P}qs(e,C,n,En.ErrorNode,["setError","Extraneous positional argument"]),Ca(e,C,ei.EndOfInput,En.SuccessNode,["setSelectedIndex",this.cliIndex]),Ca(e,C,ei.EndOfPartialInput,En.SuccessNode,["setSelectedIndex",this.cliIndex])}return{machine:e,context:this.context}}registerOptions(e,r){qs(e,r,["isOption","--"],r,"inhibateOptions"),qs(e,r,["isBatchOption",this.allOptionNames],r,["pushBatch",this.allOptionNames]),qs(e,r,["isBoundOption",this.allOptionNames,this.options],r,"pushBound"),qs(e,r,["isUnsupportedOption",this.allOptionNames],En.ErrorNode,["setError","Unsupported option name"]),qs(e,r,["isInvalidOption"],En.ErrorNode,["setError","Invalid option name"]);for(let s of this.options)if(s.arity===0)for(let a of s.nameSet)qs(e,r,["isOption",a],r,["pushTrue",s.preferredName]),a.startsWith("--")&&!a.startsWith("--no-")&&qs(e,r,["isNegatedOption",a],r,["pushFalse",s.preferredName]);else{let a=Mu(e,Hl());for(let n of s.nameSet)qs(e,r,["isOption",n],a,["pushUndefined",s.preferredName]);for(let n=0;n<s.arity;++n){let c=Mu(e,Hl());Ca(e,a,ei.EndOfInput,En.ErrorNode,"setOptionArityError"),Ca(e,a,ei.EndOfPartialInput,En.ErrorNode,"setOptionArityError"),qs(e,a,"isOptionLike",En.ErrorNode,"setOptionArityError");let f=s.arity===1?"setStringValue":"pushStringValue";qs(e,a,"isNotOptionLike",c,f),a=c}CE(e,a,r)}}},Wx=class t{constructor({binaryName:e="..."}={}){this.builders=[],this.opts={binaryName:e}}static build(e,r={}){return new t(r).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${e})`);return this.builders[e]}commands(e){for(let r of e)r(this.command());return this}command(){let e=new BU(this.builders.length,this.opts);return this.builders.push(e),e}compile(){let e=[],r=[];for(let a of this.builders){let{machine:n,context:c}=a.compile();e.push(n),r.push(c)}let s=SZe(e);return DZe(s),{machine:s,contexts:r,process:(a,{partial:n}={})=>{let c=n?ei.EndOfPartialInput:ei.EndOfInput;return xZe(s,a,{endToken:c})}}}}});function pne(){return Vx.default&&"getColorDepth"in Vx.default.WriteStream.prototype?Vx.default.WriteStream.prototype.getColorDepth():process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}function hne(t){let e=Ane;if(typeof e>"u"){if(t.stdout===process.stdout&&t.stderr===process.stderr)return null;let{AsyncLocalStorage:r}=Ie("async_hooks");e=Ane=new r;let s=process.stdout._write;process.stdout._write=function(n,c,f){let p=e.getStore();return typeof p>"u"?s.call(this,n,c,f):p.stdout.write(n,c,f)};let a=process.stderr._write;process.stderr._write=function(n,c,f){let p=e.getStore();return typeof p>"u"?a.call(this,n,c,f):p.stderr.write(n,c,f)}}return r=>e.run(t,r)}var Vx,Ane,gne=Ct(()=>{Vx=et(Ie("tty"),1)});var Kx,dne=Ct(()=>{c0();Kx=class t extends ot{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,r){let s=new t(r);s.path=e.path;for(let a of e.options)switch(a.name){case"-c":s.commands.push(Number(a.value));break;case"-i":s.index=Number(a.value);break}return s}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index<e.length&&(e=[e[this.index]]),e.length===0)this.context.stdout.write(this.cli.usage());else if(e.length===1)this.context.stdout.write(this.cli.usage(this.contexts[e[0]].commandClass,{detailed:!0}));else if(e.length>1){this.context.stdout.write(`Multiple commands match your selection: +`),this.context.stdout.write(` +`);let r=0;for(let s of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[s].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(` +`),this.context.stdout.write(`Run again with -h=<index> to see the longer details of any of those commands. +`)}}}});async function Ene(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}=Cne(t);return wa.from(r,e).runExit(s,a)}async function Ine(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}=Cne(t);return wa.from(r,e).run(s,a)}function Cne(t){let e,r,s,a;switch(typeof process<"u"&&typeof process.argv<"u"&&(s=process.argv.slice(2)),t.length){case 1:r=t[0];break;case 2:t[0]&&t[0].prototype instanceof ot||Array.isArray(t[0])?(r=t[0],Array.isArray(t[1])?s=t[1]:a=t[1]):(e=t[0],r=t[1]);break;case 3:Array.isArray(t[2])?(e=t[0],r=t[1],s=t[2]):t[0]&&t[0].prototype instanceof ot||Array.isArray(t[0])?(r=t[0],s=t[1],a=t[2]):(e=t[0],r=t[1],a=t[2]);break;default:e=t[0],r=t[1],s=t[2],a=t[3];break}if(typeof s>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}}function yne(t){return t()}var mne,wa,wne=Ct(()=>{Ox();Yx();pU();gne();c0();dne();mne=Symbol("clipanion/errorCommand");wa=class t{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:s,enableCapture:a=!1,enableColors:n}={}){this.registrations=new Map,this.builder=new Wx({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=s,this.enableCapture=a,this.enableColors=n}static from(e,r={}){let s=new t(r),a=Array.isArray(e)?e:[e];for(let n of a)s.register(n);return s}register(e){var r;let s=new Map,a=new e;for(let p in a){let h=a[p];typeof h=="object"&&h!==null&&h[ot.isOption]&&s.set(p,h)}let n=this.builder.command(),c=n.cliIndex,f=(r=e.paths)!==null&&r!==void 0?r:a.paths;if(typeof f<"u")for(let p of f)n.addPath(p);this.registrations.set(e,{specs:s,builder:n,index:c});for(let[p,{definition:h}]of s.entries())h(n,p);n.setContext({commandClass:e})}process(e,r){let{input:s,context:a,partial:n}=typeof e=="object"&&Array.isArray(e)?{input:e,context:r}:e,{contexts:c,process:f}=this.builder.compile(),p=f(s,{partial:n}),h={...t.defaultContext,...a};switch(p.selectedIndex){case Fd:{let E=Kx.from(p,c);return E.context=h,E.tokens=p.tokens,E}default:{let{commandClass:E}=c[p.selectedIndex],C=this.registrations.get(E);if(typeof C>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let S=new E;S.context=h,S.tokens=p.tokens,S.path=p.path;try{for(let[P,{transformer:I}]of C.specs.entries())S[P]=I(C.builder,P,p,h);return S}catch(P){throw P[mne]=S,P}}break}}async run(e,r){var s,a;let n,c={...t.defaultContext,...r},f=(s=this.enableColors)!==null&&s!==void 0?s:c.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e,c)}catch(E){return c.stdout.write(this.error(E,{colored:f})),1}if(n.help)return c.stdout.write(this.usage(n,{colored:f,detailed:!0})),0;n.context=c,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),definition:E=>this.definition(E),error:(E,C)=>this.error(E,C),format:E=>this.format(E),process:(E,C)=>this.process(E,{...c,...C}),run:(E,C)=>this.run(E,{...c,...C}),usage:(E,C)=>this.usage(E,C)};let p=this.enableCapture&&(a=hne(c))!==null&&a!==void 0?a:yne,h;try{h=await p(()=>n.validateAndExecute().catch(E=>n.catch(E).then(()=>0)))}catch(E){return c.stdout.write(this.error(E,{colored:f,command:n})),1}return h}async runExit(e,r){process.exitCode=await this.run(e,r)}definition(e,{colored:r=!1}={}){if(!e.usage)return null;let{usage:s}=this.getUsageByRegistration(e,{detailed:!1}),{usage:a,options:n}=this.getUsageByRegistration(e,{detailed:!0,inlineOptions:!1}),c=typeof e.usage.category<"u"?qo(e.usage.category,{format:this.format(r),paragraphs:!1}):void 0,f=typeof e.usage.description<"u"?qo(e.usage.description,{format:this.format(r),paragraphs:!1}):void 0,p=typeof e.usage.details<"u"?qo(e.usage.details,{format:this.format(r),paragraphs:!0}):void 0,h=typeof e.usage.examples<"u"?e.usage.examples.map(([E,C])=>[qo(E,{format:this.format(r),paragraphs:!1}),C.replace(/\$0/g,this.binaryName)]):void 0;return{path:s,usage:a,category:c,description:f,details:p,examples:h,options:n}}definitions({colored:e=!1}={}){let r=[];for(let s of this.registrations.keys()){let a=this.definition(s,{colored:e});a&&r.push(a)}return r}usage(e=null,{colored:r,detailed:s=!1,prefix:a="$ "}={}){var n;if(e===null){for(let p of this.registrations.keys()){let h=p.paths,E=typeof p.usage<"u";if(!h||h.length===0||h.length===1&&h[0].length===0||((n=h?.some(P=>P.length===0))!==null&&n!==void 0?n:!1))if(e){e=null;break}else e=p;else if(E){e=null;continue}}e&&(s=!0)}let c=e!==null&&e instanceof ot?e.constructor:e,f="";if(c)if(s){let{description:p="",details:h="",examples:E=[]}=c.usage||{};p!==""&&(f+=qo(p,{format:this.format(r),paragraphs:!1}).replace(/^./,P=>P.toUpperCase()),f+=` +`),(h!==""||E.length>0)&&(f+=`${this.format(r).header("Usage")} +`,f+=` +`);let{usage:C,options:S}=this.getUsageByRegistration(c,{inlineOptions:!1});if(f+=`${this.format(r).bold(a)}${C} +`,S.length>0){f+=` +`,f+=`${this.format(r).header("Options")} +`;let P=S.reduce((I,R)=>Math.max(I,R.definition.length),0);f+=` +`;for(let{definition:I,description:R}of S)f+=` ${this.format(r).bold(I.padEnd(P))} ${qo(R,{format:this.format(r),paragraphs:!1})}`}if(h!==""&&(f+=` +`,f+=`${this.format(r).header("Details")} +`,f+=` +`,f+=qo(h,{format:this.format(r),paragraphs:!0})),E.length>0){f+=` +`,f+=`${this.format(r).header("Examples")} +`;for(let[P,I]of E)f+=` +`,f+=qo(P,{format:this.format(r),paragraphs:!1}),f+=`${I.replace(/^/m,` ${this.format(r).bold(a)}`).replace(/\$0/g,this.binaryName)} +`}}else{let{usage:p}=this.getUsageByRegistration(c);f+=`${this.format(r).bold(a)}${p} +`}else{let p=new Map;for(let[S,{index:P}]of this.registrations.entries()){if(typeof S.usage>"u")continue;let I=typeof S.usage.category<"u"?qo(S.usage.category,{format:this.format(r),paragraphs:!1}):null,R=p.get(I);typeof R>"u"&&p.set(I,R=[]);let{usage:N}=this.getUsageByIndex(P);R.push({commandClass:S,usage:N})}let h=Array.from(p.keys()).sort((S,P)=>S===null?-1:P===null?1:S.localeCompare(P,"en",{usage:"sort",caseFirst:"upper"})),E=typeof this.binaryLabel<"u",C=typeof this.binaryVersion<"u";E||C?(E&&C?f+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)} + +`:E?f+=`${this.format(r).header(`${this.binaryLabel}`)} +`:f+=`${this.format(r).header(`${this.binaryVersion}`)} +`,f+=` ${this.format(r).bold(a)}${this.binaryName} <command> +`):f+=`${this.format(r).bold(a)}${this.binaryName} <command> +`;for(let S of h){let P=p.get(S).slice().sort((R,N)=>R.usage.localeCompare(N.usage,"en",{usage:"sort",caseFirst:"upper"})),I=S!==null?S.trim():"General commands";f+=` +`,f+=`${this.format(r).header(`${I}`)} +`;for(let{commandClass:R,usage:N}of P){let U=R.usage.description||"undocumented";f+=` +`,f+=` ${this.format(r).bold(N)} +`,f+=` ${qo(U,{format:this.format(r),paragraphs:!1})}`}}f+=` +`,f+=qo("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return f}error(e,r){var s,{colored:a,command:n=(s=e[mne])!==null&&s!==void 0?s:null}=r===void 0?{}:r;(!e||typeof e!="object"||!("stack"in e))&&(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let c="",f=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");f==="Error"&&(f="Internal Error"),c+=`${this.format(a).error(f)}: ${e.message} +`;let p=e.clipanion;return typeof p<"u"?p.type==="usage"&&(c+=` +`,c+=this.usage(n)):e.stack&&(c+=`${e.stack.replace(/^.*\n/,"")} +`),c}format(e){var r;return((r=e??this.enableColors)!==null&&r!==void 0?r:t.defaultContext.colorDepth>1)?tne:rne}getUsageByRegistration(e,r){let s=this.registrations.get(e);if(typeof s>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(s.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};wa.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:pne()}});var rB,Bne=Ct(()=>{c0();rB=class extends ot{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} +`)}};rB.paths=[["--clipanion=definitions"]]});var nB,vne=Ct(()=>{c0();nB=class extends ot{async execute(){this.context.stdout.write(this.cli.usage())}};nB.paths=[["-h"],["--help"]]});function Jx(t={}){return Ea({definition(e,r){var s;e.addProxy({name:(s=t.name)!==null&&s!==void 0?s:r,required:t.required})},transformer(e,r,s){return s.positionals.map(({value:a})=>a)}})}var vU=Ct(()=>{Bp()});var iB,Sne=Ct(()=>{c0();vU();iB=class extends ot{constructor(){super(...arguments),this.args=Jx()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)} +`)}};iB.paths=[["--clipanion=tokens"]]});var sB,Dne=Ct(()=>{c0();sB=class extends ot{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:"<unknown>"} +`)}};sB.paths=[["-v"],["--version"]]});var SU={};Vt(SU,{DefinitionsCommand:()=>rB,HelpCommand:()=>nB,TokensCommand:()=>iB,VersionCommand:()=>sB});var bne=Ct(()=>{Bne();vne();Sne();Dne()});function Pne(t,e,r){let[s,a]=Gf(e,r??{}),{arity:n=1}=a,c=t.split(","),f=new Set(c);return Ea({definition(p){p.addOption({names:c,arity:n,hidden:a?.hidden,description:a?.description,required:a.required})},transformer(p,h,E){let C,S=typeof s<"u"?[...s]:void 0;for(let{name:P,value:I}of E.options)f.has(P)&&(C=P,S=S??[],S.push(I));return typeof S<"u"?Nd(C??h,S,a.validator):S}})}var xne=Ct(()=>{Bp()});function kne(t,e,r){let[s,a]=Gf(e,r??{}),n=t.split(","),c=new Set(n);return Ea({definition(f){f.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(f,p,h){let E=s;for(let{name:C,value:S}of h.options)c.has(C)&&(E=S);return E}})}var Qne=Ct(()=>{Bp()});function Tne(t,e,r){let[s,a]=Gf(e,r??{}),n=t.split(","),c=new Set(n);return Ea({definition(f){f.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(f,p,h){let E=s;for(let{name:C,value:S}of h.options)c.has(C)&&(E??(E=0),S?E+=1:E=0);return E}})}var Rne=Ct(()=>{Bp()});function Fne(t={}){return Ea({definition(e,r){var s;e.addRest({name:(s=t.name)!==null&&s!==void 0?s:r,required:t.required})},transformer(e,r,s){let a=c=>{let f=s.positionals[c];return f.extra===jl||f.extra===!1&&c<e.arity.leading.length},n=0;for(;n<s.positionals.length&&a(n);)n+=1;return s.positionals.splice(0,n).map(({value:c})=>c)}})}var Nne=Ct(()=>{Yx();Bp()});function NZe(t,e,r){let[s,a]=Gf(e,r??{}),{arity:n=1}=a,c=t.split(","),f=new Set(c);return Ea({definition(p){p.addOption({names:c,arity:a.tolerateBoolean?0:n,hidden:a.hidden,description:a.description,required:a.required})},transformer(p,h,E,C){let S,P=s;typeof a.env<"u"&&C.env[a.env]&&(S=a.env,P=C.env[a.env]);for(let{name:I,value:R}of E.options)f.has(I)&&(S=I,P=R);return typeof P=="string"?Nd(S??h,P,a.validator):P}})}function OZe(t={}){let{required:e=!0}=t;return Ea({definition(r,s){var a;r.addPositional({name:(a=t.name)!==null&&a!==void 0?a:s,required:t.required})},transformer(r,s,a){var n;for(let c=0;c<a.positionals.length;++c){if(a.positionals[c].extra===jl||e&&a.positionals[c].extra===!0||!e&&a.positionals[c].extra===!1)continue;let[f]=a.positionals.splice(c,1);return Nd((n=t.name)!==null&&n!==void 0?n:s,f.value,t.validator)}}})}function One(t,...e){return typeof t=="string"?NZe(t,...e):OZe(t)}var Lne=Ct(()=>{Yx();Bp()});var ge={};Vt(ge,{Array:()=>Pne,Boolean:()=>kne,Counter:()=>Tne,Proxy:()=>Jx,Rest:()=>Fne,String:()=>One,applyValidator:()=>Nd,cleanValidationError:()=>_x,formatError:()=>z2,isOptionSymbol:()=>J2,makeCommandOption:()=>Ea,rerouteArguments:()=>Gf});var Mne=Ct(()=>{Bp();vU();xne();Qne();Rne();Nne();Lne()});var oB={};Vt(oB,{Builtins:()=>SU,Cli:()=>wa,Command:()=>ot,Option:()=>ge,UsageError:()=>nt,formatMarkdownish:()=>qo,run:()=>Ine,runExit:()=>Ene});var Wt=Ct(()=>{Mx();pU();c0();wne();bne();Mne()});var _ne=L((q9t,LZe)=>{LZe.exports={name:"dotenv",version:"16.3.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://github.com/motdotla/dotenv?sponsor=1",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var qne=L((G9t,vp)=>{var Une=Ie("fs"),bU=Ie("path"),MZe=Ie("os"),_Ze=Ie("crypto"),UZe=_ne(),PU=UZe.version,HZe=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function jZe(t){let e={},r=t.toString();r=r.replace(/\r\n?/mg,` +`);let s;for(;(s=HZe.exec(r))!=null;){let a=s[1],n=s[2]||"";n=n.trim();let c=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),c==='"'&&(n=n.replace(/\\n/g,` +`),n=n.replace(/\\r/g,"\r")),e[a]=n}return e}function qZe(t){let e=jne(t),r=Gs.configDotenv({path:e});if(!r.parsed)throw new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);let s=Hne(t).split(","),a=s.length,n;for(let c=0;c<a;c++)try{let f=s[c].trim(),p=YZe(r,f);n=Gs.decrypt(p.ciphertext,p.key);break}catch(f){if(c+1>=a)throw f}return Gs.parse(n)}function GZe(t){console.log(`[dotenv@${PU}][INFO] ${t}`)}function WZe(t){console.log(`[dotenv@${PU}][WARN] ${t}`)}function DU(t){console.log(`[dotenv@${PU}][DEBUG] ${t}`)}function Hne(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function YZe(t,e){let r;try{r=new URL(e)}catch(f){throw f.code==="ERR_INVALID_URL"?new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development"):f}let s=r.password;if(!s)throw new Error("INVALID_DOTENV_KEY: Missing key part");let a=r.searchParams.get("environment");if(!a)throw new Error("INVALID_DOTENV_KEY: Missing environment part");let n=`DOTENV_VAULT_${a.toUpperCase()}`,c=t.parsed[n];if(!c)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${n} in your .env.vault file.`);return{ciphertext:c,key:s}}function jne(t){let e=bU.resolve(process.cwd(),".env");return t&&t.path&&t.path.length>0&&(e=t.path),e.endsWith(".vault")?e:`${e}.vault`}function VZe(t){return t[0]==="~"?bU.join(MZe.homedir(),t.slice(1)):t}function KZe(t){GZe("Loading env from encrypted .env.vault");let e=Gs._parseVault(t),r=process.env;return t&&t.processEnv!=null&&(r=t.processEnv),Gs.populate(r,e,t),{parsed:e}}function JZe(t){let e=bU.resolve(process.cwd(),".env"),r="utf8",s=!!(t&&t.debug);t&&(t.path!=null&&(e=VZe(t.path)),t.encoding!=null&&(r=t.encoding));try{let a=Gs.parse(Une.readFileSync(e,{encoding:r})),n=process.env;return t&&t.processEnv!=null&&(n=t.processEnv),Gs.populate(n,a,t),{parsed:a}}catch(a){return s&&DU(`Failed to load ${e} ${a.message}`),{error:a}}}function zZe(t){let e=jne(t);return Hne(t).length===0?Gs.configDotenv(t):Une.existsSync(e)?Gs._configVault(t):(WZe(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),Gs.configDotenv(t))}function ZZe(t,e){let r=Buffer.from(e.slice(-64),"hex"),s=Buffer.from(t,"base64"),a=s.slice(0,12),n=s.slice(-16);s=s.slice(12,-16);try{let c=_Ze.createDecipheriv("aes-256-gcm",r,a);return c.setAuthTag(n),`${c.update(s)}${c.final()}`}catch(c){let f=c instanceof RangeError,p=c.message==="Invalid key length",h=c.message==="Unsupported state or unable to authenticate data";if(f||p){let E="INVALID_DOTENV_KEY: It must be 64 characters long (or more)";throw new Error(E)}else if(h){let E="DECRYPTION_FAILED: Please check your DOTENV_KEY";throw new Error(E)}else throw console.error("Error: ",c.code),console.error("Error: ",c.message),c}}function XZe(t,e,r={}){let s=!!(r&&r.debug),a=!!(r&&r.override);if(typeof e!="object")throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");for(let n of Object.keys(e))Object.prototype.hasOwnProperty.call(t,n)?(a===!0&&(t[n]=e[n]),s&&DU(a===!0?`"${n}" is already defined and WAS overwritten`:`"${n}" is already defined and was NOT overwritten`)):t[n]=e[n]}var Gs={configDotenv:JZe,_configVault:KZe,_parseVault:qZe,config:zZe,decrypt:ZZe,parse:jZe,populate:XZe};vp.exports.configDotenv=Gs.configDotenv;vp.exports._configVault=Gs._configVault;vp.exports._parseVault=Gs._parseVault;vp.exports.config=Gs.config;vp.exports.decrypt=Gs.decrypt;vp.exports.parse=Gs.parse;vp.exports.populate=Gs.populate;vp.exports=Gs});var Wne=L((W9t,Gne)=>{"use strict";Gne.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var Od=L((Y9t,xU)=>{"use strict";var $Ze=Wne(),Yne=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,s=()=>{r--,e.length>0&&e.shift()()},a=(f,p,...h)=>{r++;let E=$Ze(f,...h);p(E),E.then(s,s)},n=(f,p,...h)=>{r<t?a(f,p,...h):e.push(a.bind(null,f,p,...h))},c=(f,...p)=>new Promise(h=>n(f,h,...p));return Object.defineProperties(c,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),c};xU.exports=Yne;xU.exports.default=Yne});function Vf(t){return`YN${t.toString(10).padStart(4,"0")}`}function zx(t){let e=Number(t.slice(2));if(typeof Dr[e]>"u")throw new Error(`Unknown message name: "${t}"`);return e}var Dr,Zx=Ct(()=>{Dr=(Me=>(Me[Me.UNNAMED=0]="UNNAMED",Me[Me.EXCEPTION=1]="EXCEPTION",Me[Me.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",Me[Me.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",Me[Me.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",Me[Me.BUILD_DISABLED=5]="BUILD_DISABLED",Me[Me.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",Me[Me.MUST_BUILD=7]="MUST_BUILD",Me[Me.MUST_REBUILD=8]="MUST_REBUILD",Me[Me.BUILD_FAILED=9]="BUILD_FAILED",Me[Me.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",Me[Me.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",Me[Me.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",Me[Me.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",Me[Me.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",Me[Me.REMOTE_INVALID=15]="REMOTE_INVALID",Me[Me.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",Me[Me.RESOLUTION_PACK=17]="RESOLUTION_PACK",Me[Me.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",Me[Me.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",Me[Me.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",Me[Me.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",Me[Me.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",Me[Me.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",Me[Me.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",Me[Me.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",Me[Me.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",Me[Me.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",Me[Me.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",Me[Me.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",Me[Me.FETCH_FAILED=30]="FETCH_FAILED",Me[Me.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",Me[Me.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",Me[Me.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",Me[Me.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",Me[Me.NETWORK_ERROR=35]="NETWORK_ERROR",Me[Me.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",Me[Me.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",Me[Me.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",Me[Me.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",Me[Me.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",Me[Me.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",Me[Me.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",Me[Me.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",Me[Me.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",Me[Me.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",Me[Me.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",Me[Me.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",Me[Me.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",Me[Me.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",Me[Me.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",Me[Me.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",Me[Me.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",Me[Me.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",Me[Me.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",Me[Me.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",Me[Me.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",Me[Me.INVALID_MANIFEST=57]="INVALID_MANIFEST",Me[Me.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",Me[Me.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",Me[Me.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",Me[Me.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",Me[Me.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",Me[Me.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",Me[Me.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",Me[Me.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",Me[Me.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",Me[Me.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",Me[Me.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",Me[Me.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",Me[Me.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",Me[Me.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",Me[Me.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",Me[Me.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",Me[Me.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",Me[Me.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",Me[Me.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",Me[Me.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",Me[Me.RESOLUTION_MISMATCH=78]="RESOLUTION_MISMATCH",Me[Me.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",Me[Me.NETWORK_DISABLED=80]="NETWORK_DISABLED",Me[Me.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",Me[Me.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",Me[Me.AUTOMERGE_GIT_ERROR=83]="AUTOMERGE_GIT_ERROR",Me[Me.CONSTRAINTS_CHECK_FAILED=84]="CONSTRAINTS_CHECK_FAILED",Me[Me.UPDATED_RESOLUTION_RECORD=85]="UPDATED_RESOLUTION_RECORD",Me[Me.EXPLAIN_PEER_DEPENDENCIES_CTA=86]="EXPLAIN_PEER_DEPENDENCIES_CTA",Me[Me.MIGRATION_SUCCESS=87]="MIGRATION_SUCCESS",Me[Me.VERSION_NOTICE=88]="VERSION_NOTICE",Me[Me.TIPS_NOTICE=89]="TIPS_NOTICE",Me[Me.OFFLINE_MODE_ENABLED=90]="OFFLINE_MODE_ENABLED",Me[Me.INVALID_PROVENANCE_ENVIRONMENT=91]="INVALID_PROVENANCE_ENVIRONMENT",Me))(Dr||{})});var aB=L((K9t,Vne)=>{var eXe="2.0.0",tXe=Number.MAX_SAFE_INTEGER||9007199254740991,rXe=16,nXe=250,iXe=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Vne.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:rXe,MAX_SAFE_BUILD_LENGTH:nXe,MAX_SAFE_INTEGER:tXe,RELEASE_TYPES:iXe,SEMVER_SPEC_VERSION:eXe,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var lB=L((J9t,Kne)=>{var sXe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};Kne.exports=sXe});var wE=L((Sp,Jne)=>{var{MAX_SAFE_COMPONENT_LENGTH:kU,MAX_SAFE_BUILD_LENGTH:oXe,MAX_LENGTH:aXe}=aB(),lXe=lB();Sp=Jne.exports={};var cXe=Sp.re=[],uXe=Sp.safeRe=[],rr=Sp.src=[],nr=Sp.t={},fXe=0,QU="[a-zA-Z0-9-]",AXe=[["\\s",1],["\\d",aXe],[QU,oXe]],pXe=t=>{for(let[e,r]of AXe)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},Kr=(t,e,r)=>{let s=pXe(e),a=fXe++;lXe(t,a,e),nr[t]=a,rr[a]=e,cXe[a]=new RegExp(e,r?"g":void 0),uXe[a]=new RegExp(s,r?"g":void 0)};Kr("NUMERICIDENTIFIER","0|[1-9]\\d*");Kr("NUMERICIDENTIFIERLOOSE","\\d+");Kr("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${QU}*`);Kr("MAINVERSION",`(${rr[nr.NUMERICIDENTIFIER]})\\.(${rr[nr.NUMERICIDENTIFIER]})\\.(${rr[nr.NUMERICIDENTIFIER]})`);Kr("MAINVERSIONLOOSE",`(${rr[nr.NUMERICIDENTIFIERLOOSE]})\\.(${rr[nr.NUMERICIDENTIFIERLOOSE]})\\.(${rr[nr.NUMERICIDENTIFIERLOOSE]})`);Kr("PRERELEASEIDENTIFIER",`(?:${rr[nr.NUMERICIDENTIFIER]}|${rr[nr.NONNUMERICIDENTIFIER]})`);Kr("PRERELEASEIDENTIFIERLOOSE",`(?:${rr[nr.NUMERICIDENTIFIERLOOSE]}|${rr[nr.NONNUMERICIDENTIFIER]})`);Kr("PRERELEASE",`(?:-(${rr[nr.PRERELEASEIDENTIFIER]}(?:\\.${rr[nr.PRERELEASEIDENTIFIER]})*))`);Kr("PRERELEASELOOSE",`(?:-?(${rr[nr.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${rr[nr.PRERELEASEIDENTIFIERLOOSE]})*))`);Kr("BUILDIDENTIFIER",`${QU}+`);Kr("BUILD",`(?:\\+(${rr[nr.BUILDIDENTIFIER]}(?:\\.${rr[nr.BUILDIDENTIFIER]})*))`);Kr("FULLPLAIN",`v?${rr[nr.MAINVERSION]}${rr[nr.PRERELEASE]}?${rr[nr.BUILD]}?`);Kr("FULL",`^${rr[nr.FULLPLAIN]}$`);Kr("LOOSEPLAIN",`[v=\\s]*${rr[nr.MAINVERSIONLOOSE]}${rr[nr.PRERELEASELOOSE]}?${rr[nr.BUILD]}?`);Kr("LOOSE",`^${rr[nr.LOOSEPLAIN]}$`);Kr("GTLT","((?:<|>)?=?)");Kr("XRANGEIDENTIFIERLOOSE",`${rr[nr.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Kr("XRANGEIDENTIFIER",`${rr[nr.NUMERICIDENTIFIER]}|x|X|\\*`);Kr("XRANGEPLAIN",`[v=\\s]*(${rr[nr.XRANGEIDENTIFIER]})(?:\\.(${rr[nr.XRANGEIDENTIFIER]})(?:\\.(${rr[nr.XRANGEIDENTIFIER]})(?:${rr[nr.PRERELEASE]})?${rr[nr.BUILD]}?)?)?`);Kr("XRANGEPLAINLOOSE",`[v=\\s]*(${rr[nr.XRANGEIDENTIFIERLOOSE]})(?:\\.(${rr[nr.XRANGEIDENTIFIERLOOSE]})(?:\\.(${rr[nr.XRANGEIDENTIFIERLOOSE]})(?:${rr[nr.PRERELEASELOOSE]})?${rr[nr.BUILD]}?)?)?`);Kr("XRANGE",`^${rr[nr.GTLT]}\\s*${rr[nr.XRANGEPLAIN]}$`);Kr("XRANGELOOSE",`^${rr[nr.GTLT]}\\s*${rr[nr.XRANGEPLAINLOOSE]}$`);Kr("COERCEPLAIN",`(^|[^\\d])(\\d{1,${kU}})(?:\\.(\\d{1,${kU}}))?(?:\\.(\\d{1,${kU}}))?`);Kr("COERCE",`${rr[nr.COERCEPLAIN]}(?:$|[^\\d])`);Kr("COERCEFULL",rr[nr.COERCEPLAIN]+`(?:${rr[nr.PRERELEASE]})?(?:${rr[nr.BUILD]})?(?:$|[^\\d])`);Kr("COERCERTL",rr[nr.COERCE],!0);Kr("COERCERTLFULL",rr[nr.COERCEFULL],!0);Kr("LONETILDE","(?:~>?)");Kr("TILDETRIM",`(\\s*)${rr[nr.LONETILDE]}\\s+`,!0);Sp.tildeTrimReplace="$1~";Kr("TILDE",`^${rr[nr.LONETILDE]}${rr[nr.XRANGEPLAIN]}$`);Kr("TILDELOOSE",`^${rr[nr.LONETILDE]}${rr[nr.XRANGEPLAINLOOSE]}$`);Kr("LONECARET","(?:\\^)");Kr("CARETTRIM",`(\\s*)${rr[nr.LONECARET]}\\s+`,!0);Sp.caretTrimReplace="$1^";Kr("CARET",`^${rr[nr.LONECARET]}${rr[nr.XRANGEPLAIN]}$`);Kr("CARETLOOSE",`^${rr[nr.LONECARET]}${rr[nr.XRANGEPLAINLOOSE]}$`);Kr("COMPARATORLOOSE",`^${rr[nr.GTLT]}\\s*(${rr[nr.LOOSEPLAIN]})$|^$`);Kr("COMPARATOR",`^${rr[nr.GTLT]}\\s*(${rr[nr.FULLPLAIN]})$|^$`);Kr("COMPARATORTRIM",`(\\s*)${rr[nr.GTLT]}\\s*(${rr[nr.LOOSEPLAIN]}|${rr[nr.XRANGEPLAIN]})`,!0);Sp.comparatorTrimReplace="$1$2$3";Kr("HYPHENRANGE",`^\\s*(${rr[nr.XRANGEPLAIN]})\\s+-\\s+(${rr[nr.XRANGEPLAIN]})\\s*$`);Kr("HYPHENRANGELOOSE",`^\\s*(${rr[nr.XRANGEPLAINLOOSE]})\\s+-\\s+(${rr[nr.XRANGEPLAINLOOSE]})\\s*$`);Kr("STAR","(<|>)?=?\\s*\\*");Kr("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");Kr("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var Xx=L((z9t,zne)=>{var hXe=Object.freeze({loose:!0}),gXe=Object.freeze({}),dXe=t=>t?typeof t!="object"?hXe:t:gXe;zne.exports=dXe});var TU=L((Z9t,$ne)=>{var Zne=/^[0-9]+$/,Xne=(t,e)=>{let r=Zne.test(t),s=Zne.test(e);return r&&s&&(t=+t,e=+e),t===e?0:r&&!s?-1:s&&!r?1:t<e?-1:1},mXe=(t,e)=>Xne(e,t);$ne.exports={compareIdentifiers:Xne,rcompareIdentifiers:mXe}});var Go=L((X9t,nie)=>{var $x=lB(),{MAX_LENGTH:eie,MAX_SAFE_INTEGER:ek}=aB(),{safeRe:tie,t:rie}=wE(),yXe=Xx(),{compareIdentifiers:BE}=TU(),RU=class t{constructor(e,r){if(r=yXe(r),e instanceof t){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>eie)throw new TypeError(`version is longer than ${eie} characters`);$x("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let s=e.trim().match(r.loose?tie[rie.LOOSE]:tie[rie.FULL]);if(!s)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>ek||this.major<0)throw new TypeError("Invalid major version");if(this.minor>ek||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>ek||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let n=+a;if(n>=0&&n<ek)return n}return a}):this.prerelease=[],this.build=s[5]?s[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if($x("SemVer.compare",this.version,this.options,e),!(e instanceof t)){if(typeof e=="string"&&e===this.version)return 0;e=new t(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof t||(e=new t(e,this.options)),BE(this.major,e.major)||BE(this.minor,e.minor)||BE(this.patch,e.patch)}comparePre(e){if(e instanceof t||(e=new t(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{let s=this.prerelease[r],a=e.prerelease[r];if($x("prerelease compare",r,s,a),s===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(s===void 0)return-1;if(s===a)continue;return BE(s,a)}while(++r)}compareBuild(e){e instanceof t||(e=new t(e,this.options));let r=0;do{let s=this.build[r],a=e.build[r];if($x("prerelease compare",r,s,a),s===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(s===void 0)return-1;if(s===a)continue;return BE(s,a)}while(++r)}inc(e,r,s){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,s);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,s);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,s),this.inc("pre",r,s);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,s),this.inc("pre",r,s);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let a=Number(s)?1:0;if(!r&&s===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[a];else{let n=this.prerelease.length;for(;--n>=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(r===this.prerelease.join(".")&&s===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(a)}}if(r){let n=[r,a];s===!1&&(n=[r]),BE(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};nie.exports=RU});var Ld=L(($9t,sie)=>{var iie=Go(),EXe=(t,e,r=!1)=>{if(t instanceof iie)return t;try{return new iie(t,e)}catch(s){if(!r)return null;throw s}};sie.exports=EXe});var aie=L((eWt,oie)=>{var IXe=Ld(),CXe=(t,e)=>{let r=IXe(t,e);return r?r.version:null};oie.exports=CXe});var cie=L((tWt,lie)=>{var wXe=Ld(),BXe=(t,e)=>{let r=wXe(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};lie.exports=BXe});var Aie=L((rWt,fie)=>{var uie=Go(),vXe=(t,e,r,s,a)=>{typeof r=="string"&&(a=s,s=r,r=void 0);try{return new uie(t instanceof uie?t.version:t,r).inc(e,s,a).version}catch{return null}};fie.exports=vXe});var gie=L((nWt,hie)=>{var pie=Ld(),SXe=(t,e)=>{let r=pie(t,null,!0),s=pie(e,null,!0),a=r.compare(s);if(a===0)return null;let n=a>0,c=n?r:s,f=n?s:r,p=!!c.prerelease.length;if(!!f.prerelease.length&&!p)return!f.patch&&!f.minor?"major":c.patch?"patch":c.minor?"minor":"major";let E=p?"pre":"";return r.major!==s.major?E+"major":r.minor!==s.minor?E+"minor":r.patch!==s.patch?E+"patch":"prerelease"};hie.exports=SXe});var mie=L((iWt,die)=>{var DXe=Go(),bXe=(t,e)=>new DXe(t,e).major;die.exports=bXe});var Eie=L((sWt,yie)=>{var PXe=Go(),xXe=(t,e)=>new PXe(t,e).minor;yie.exports=xXe});var Cie=L((oWt,Iie)=>{var kXe=Go(),QXe=(t,e)=>new kXe(t,e).patch;Iie.exports=QXe});var Bie=L((aWt,wie)=>{var TXe=Ld(),RXe=(t,e)=>{let r=TXe(t,e);return r&&r.prerelease.length?r.prerelease:null};wie.exports=RXe});var vc=L((lWt,Sie)=>{var vie=Go(),FXe=(t,e,r)=>new vie(t,r).compare(new vie(e,r));Sie.exports=FXe});var bie=L((cWt,Die)=>{var NXe=vc(),OXe=(t,e,r)=>NXe(e,t,r);Die.exports=OXe});var xie=L((uWt,Pie)=>{var LXe=vc(),MXe=(t,e)=>LXe(t,e,!0);Pie.exports=MXe});var tk=L((fWt,Qie)=>{var kie=Go(),_Xe=(t,e,r)=>{let s=new kie(t,r),a=new kie(e,r);return s.compare(a)||s.compareBuild(a)};Qie.exports=_Xe});var Rie=L((AWt,Tie)=>{var UXe=tk(),HXe=(t,e)=>t.sort((r,s)=>UXe(r,s,e));Tie.exports=HXe});var Nie=L((pWt,Fie)=>{var jXe=tk(),qXe=(t,e)=>t.sort((r,s)=>jXe(s,r,e));Fie.exports=qXe});var cB=L((hWt,Oie)=>{var GXe=vc(),WXe=(t,e,r)=>GXe(t,e,r)>0;Oie.exports=WXe});var rk=L((gWt,Lie)=>{var YXe=vc(),VXe=(t,e,r)=>YXe(t,e,r)<0;Lie.exports=VXe});var FU=L((dWt,Mie)=>{var KXe=vc(),JXe=(t,e,r)=>KXe(t,e,r)===0;Mie.exports=JXe});var NU=L((mWt,_ie)=>{var zXe=vc(),ZXe=(t,e,r)=>zXe(t,e,r)!==0;_ie.exports=ZXe});var nk=L((yWt,Uie)=>{var XXe=vc(),$Xe=(t,e,r)=>XXe(t,e,r)>=0;Uie.exports=$Xe});var ik=L((EWt,Hie)=>{var e$e=vc(),t$e=(t,e,r)=>e$e(t,e,r)<=0;Hie.exports=t$e});var OU=L((IWt,jie)=>{var r$e=FU(),n$e=NU(),i$e=cB(),s$e=nk(),o$e=rk(),a$e=ik(),l$e=(t,e,r,s)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return r$e(t,r,s);case"!=":return n$e(t,r,s);case">":return i$e(t,r,s);case">=":return s$e(t,r,s);case"<":return o$e(t,r,s);case"<=":return a$e(t,r,s);default:throw new TypeError(`Invalid operator: ${e}`)}};jie.exports=l$e});var Gie=L((CWt,qie)=>{var c$e=Go(),u$e=Ld(),{safeRe:sk,t:ok}=wE(),f$e=(t,e)=>{if(t instanceof c$e)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?sk[ok.COERCEFULL]:sk[ok.COERCE]);else{let p=e.includePrerelease?sk[ok.COERCERTLFULL]:sk[ok.COERCERTL],h;for(;(h=p.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||h.index+h[0].length!==r.index+r[0].length)&&(r=h),p.lastIndex=h.index+h[1].length+h[2].length;p.lastIndex=-1}if(r===null)return null;let s=r[2],a=r[3]||"0",n=r[4]||"0",c=e.includePrerelease&&r[5]?`-${r[5]}`:"",f=e.includePrerelease&&r[6]?`+${r[6]}`:"";return u$e(`${s}.${a}.${n}${c}${f}`,e)};qie.exports=f$e});var Yie=L((wWt,Wie)=>{"use strict";Wie.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var ak=L((BWt,Vie)=>{"use strict";Vie.exports=Fn;Fn.Node=Md;Fn.create=Fn;function Fn(t){var e=this;if(e instanceof Fn||(e=new Fn),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(a){e.push(a)});else if(arguments.length>0)for(var r=0,s=arguments.length;r<s;r++)e.push(arguments[r]);return e}Fn.prototype.removeNode=function(t){if(t.list!==this)throw new Error("removing node which does not belong to this list");var e=t.next,r=t.prev;return e&&(e.prev=r),r&&(r.next=e),t===this.head&&(this.head=e),t===this.tail&&(this.tail=r),t.list.length--,t.next=null,t.prev=null,t.list=null,e};Fn.prototype.unshiftNode=function(t){if(t!==this.head){t.list&&t.list.removeNode(t);var e=this.head;t.list=this,t.next=e,e&&(e.prev=t),this.head=t,this.tail||(this.tail=t),this.length++}};Fn.prototype.pushNode=function(t){if(t!==this.tail){t.list&&t.list.removeNode(t);var e=this.tail;t.list=this,t.prev=e,e&&(e.next=t),this.tail=t,this.head||(this.head=t),this.length++}};Fn.prototype.push=function(){for(var t=0,e=arguments.length;t<e;t++)p$e(this,arguments[t]);return this.length};Fn.prototype.unshift=function(){for(var t=0,e=arguments.length;t<e;t++)h$e(this,arguments[t]);return this.length};Fn.prototype.pop=function(){if(this.tail){var t=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,t}};Fn.prototype.shift=function(){if(this.head){var t=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,t}};Fn.prototype.forEach=function(t,e){e=e||this;for(var r=this.head,s=0;r!==null;s++)t.call(e,r.value,s,this),r=r.next};Fn.prototype.forEachReverse=function(t,e){e=e||this;for(var r=this.tail,s=this.length-1;r!==null;s--)t.call(e,r.value,s,this),r=r.prev};Fn.prototype.get=function(t){for(var e=0,r=this.head;r!==null&&e<t;e++)r=r.next;if(e===t&&r!==null)return r.value};Fn.prototype.getReverse=function(t){for(var e=0,r=this.tail;r!==null&&e<t;e++)r=r.prev;if(e===t&&r!==null)return r.value};Fn.prototype.map=function(t,e){e=e||this;for(var r=new Fn,s=this.head;s!==null;)r.push(t.call(e,s.value,this)),s=s.next;return r};Fn.prototype.mapReverse=function(t,e){e=e||this;for(var r=new Fn,s=this.tail;s!==null;)r.push(t.call(e,s.value,this)),s=s.prev;return r};Fn.prototype.reduce=function(t,e){var r,s=this.head;if(arguments.length>1)r=e;else if(this.head)s=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;s!==null;a++)r=t(r,s.value,a),s=s.next;return r};Fn.prototype.reduceReverse=function(t,e){var r,s=this.tail;if(arguments.length>1)r=e;else if(this.tail)s=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=this.length-1;s!==null;a--)r=t(r,s.value,a),s=s.prev;return r};Fn.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};Fn.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};Fn.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new Fn;if(e<t||e<0)return r;t<0&&(t=0),e>this.length&&(e=this.length);for(var s=0,a=this.head;a!==null&&s<t;s++)a=a.next;for(;a!==null&&s<e;s++,a=a.next)r.push(a.value);return r};Fn.prototype.sliceReverse=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new Fn;if(e<t||e<0)return r;t<0&&(t=0),e>this.length&&(e=this.length);for(var s=this.length,a=this.tail;a!==null&&s>e;s--)a=a.prev;for(;a!==null&&s>t;s--,a=a.prev)r.push(a.value);return r};Fn.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var s=0,a=this.head;a!==null&&s<t;s++)a=a.next;for(var n=[],s=0;a&&s<e;s++)n.push(a.value),a=this.removeNode(a);a===null&&(a=this.tail),a!==this.head&&a!==this.tail&&(a=a.prev);for(var s=0;s<r.length;s++)a=A$e(this,a,r[s]);return n};Fn.prototype.reverse=function(){for(var t=this.head,e=this.tail,r=t;r!==null;r=r.prev){var s=r.prev;r.prev=r.next,r.next=s}return this.head=e,this.tail=t,this};function A$e(t,e,r){var s=e===t.head?new Md(r,null,e,t):new Md(r,e,e.next,t);return s.next===null&&(t.tail=s),s.prev===null&&(t.head=s),t.length++,s}function p$e(t,e){t.tail=new Md(e,t.tail,null,t),t.head||(t.head=t.tail),t.length++}function h$e(t,e){t.head=new Md(e,null,t.head,t),t.tail||(t.tail=t.head),t.length++}function Md(t,e,r,s){if(!(this instanceof Md))return new Md(t,e,r,s);this.list=s,this.value=t,e?(e.next=this,this.prev=e):this.prev=null,r?(r.prev=this,this.next=r):this.next=null}try{Yie()(Fn)}catch{}});var Xie=L((vWt,Zie)=>{"use strict";var g$e=ak(),_d=Symbol("max"),bp=Symbol("length"),vE=Symbol("lengthCalculator"),fB=Symbol("allowStale"),Ud=Symbol("maxAge"),Dp=Symbol("dispose"),Kie=Symbol("noDisposeOnSet"),Ws=Symbol("lruList"),_u=Symbol("cache"),zie=Symbol("updateAgeOnGet"),LU=()=>1,_U=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let r=this[_d]=e.max||1/0,s=e.length||LU;if(this[vE]=typeof s!="function"?LU:s,this[fB]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Ud]=e.maxAge||0,this[Dp]=e.dispose,this[Kie]=e.noDisposeOnSet||!1,this[zie]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[_d]=e||1/0,uB(this)}get max(){return this[_d]}set allowStale(e){this[fB]=!!e}get allowStale(){return this[fB]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Ud]=e,uB(this)}get maxAge(){return this[Ud]}set lengthCalculator(e){typeof e!="function"&&(e=LU),e!==this[vE]&&(this[vE]=e,this[bp]=0,this[Ws].forEach(r=>{r.length=this[vE](r.value,r.key),this[bp]+=r.length})),uB(this)}get lengthCalculator(){return this[vE]}get length(){return this[bp]}get itemCount(){return this[Ws].length}rforEach(e,r){r=r||this;for(let s=this[Ws].tail;s!==null;){let a=s.prev;Jie(this,e,s,r),s=a}}forEach(e,r){r=r||this;for(let s=this[Ws].head;s!==null;){let a=s.next;Jie(this,e,s,r),s=a}}keys(){return this[Ws].toArray().map(e=>e.key)}values(){return this[Ws].toArray().map(e=>e.value)}reset(){this[Dp]&&this[Ws]&&this[Ws].length&&this[Ws].forEach(e=>this[Dp](e.key,e.value)),this[_u]=new Map,this[Ws]=new g$e,this[bp]=0}dump(){return this[Ws].map(e=>lk(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Ws]}set(e,r,s){if(s=s||this[Ud],s&&typeof s!="number")throw new TypeError("maxAge must be a number");let a=s?Date.now():0,n=this[vE](r,e);if(this[_u].has(e)){if(n>this[_d])return SE(this,this[_u].get(e)),!1;let p=this[_u].get(e).value;return this[Dp]&&(this[Kie]||this[Dp](e,p.value)),p.now=a,p.maxAge=s,p.value=r,this[bp]+=n-p.length,p.length=n,this.get(e),uB(this),!0}let c=new UU(e,r,n,a,s);return c.length>this[_d]?(this[Dp]&&this[Dp](e,r),!1):(this[bp]+=c.length,this[Ws].unshift(c),this[_u].set(e,this[Ws].head),uB(this),!0)}has(e){if(!this[_u].has(e))return!1;let r=this[_u].get(e).value;return!lk(this,r)}get(e){return MU(this,e,!0)}peek(e){return MU(this,e,!1)}pop(){let e=this[Ws].tail;return e?(SE(this,e),e.value):null}del(e){SE(this,this[_u].get(e))}load(e){this.reset();let r=Date.now();for(let s=e.length-1;s>=0;s--){let a=e[s],n=a.e||0;if(n===0)this.set(a.k,a.v);else{let c=n-r;c>0&&this.set(a.k,a.v,c)}}}prune(){this[_u].forEach((e,r)=>MU(this,r,!1))}},MU=(t,e,r)=>{let s=t[_u].get(e);if(s){let a=s.value;if(lk(t,a)){if(SE(t,s),!t[fB])return}else r&&(t[zie]&&(s.value.now=Date.now()),t[Ws].unshiftNode(s));return a.value}},lk=(t,e)=>{if(!e||!e.maxAge&&!t[Ud])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[Ud]&&r>t[Ud]},uB=t=>{if(t[bp]>t[_d])for(let e=t[Ws].tail;t[bp]>t[_d]&&e!==null;){let r=e.prev;SE(t,e),e=r}},SE=(t,e)=>{if(e){let r=e.value;t[Dp]&&t[Dp](r.key,r.value),t[bp]-=r.length,t[_u].delete(r.key),t[Ws].removeNode(e)}},UU=class{constructor(e,r,s,a,n){this.key=e,this.value=r,this.length=s,this.now=a,this.maxAge=n||0}},Jie=(t,e,r,s)=>{let a=r.value;lk(t,a)&&(SE(t,r),t[fB]||(a=void 0)),a&&e.call(s,a.value,a.key,t)};Zie.exports=_U});var Sc=L((SWt,rse)=>{var HU=class t{constructor(e,r){if(r=m$e(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof jU)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(s=>this.parseRange(s.trim())).filter(s=>s.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let s=this.set[0];if(this.set=this.set.filter(a=>!ese(a[0])),this.set.length===0)this.set=[s];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&v$e(a[0])){this.set=[a];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){let s=((this.options.includePrerelease&&w$e)|(this.options.loose&&B$e))+":"+e,a=$ie.get(s);if(a)return a;let n=this.options.loose,c=n?ol[Ba.HYPHENRANGELOOSE]:ol[Ba.HYPHENRANGE];e=e.replace(c,F$e(this.options.includePrerelease)),Si("hyphen replace",e),e=e.replace(ol[Ba.COMPARATORTRIM],E$e),Si("comparator trim",e),e=e.replace(ol[Ba.TILDETRIM],I$e),Si("tilde trim",e),e=e.replace(ol[Ba.CARETTRIM],C$e),Si("caret trim",e);let f=e.split(" ").map(C=>S$e(C,this.options)).join(" ").split(/\s+/).map(C=>R$e(C,this.options));n&&(f=f.filter(C=>(Si("loose invalid filter",C,this.options),!!C.match(ol[Ba.COMPARATORLOOSE])))),Si("range list",f);let p=new Map,h=f.map(C=>new jU(C,this.options));for(let C of h){if(ese(C))return[C];p.set(C.value,C)}p.size>1&&p.has("")&&p.delete("");let E=[...p.values()];return $ie.set(s,E),E}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(s=>tse(s,r)&&e.set.some(a=>tse(a,r)&&s.every(n=>a.every(c=>n.intersects(c,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new y$e(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(N$e(this.set[r],e,this.options))return!0;return!1}};rse.exports=HU;var d$e=Xie(),$ie=new d$e({max:1e3}),m$e=Xx(),jU=AB(),Si=lB(),y$e=Go(),{safeRe:ol,t:Ba,comparatorTrimReplace:E$e,tildeTrimReplace:I$e,caretTrimReplace:C$e}=wE(),{FLAG_INCLUDE_PRERELEASE:w$e,FLAG_LOOSE:B$e}=aB(),ese=t=>t.value==="<0.0.0-0",v$e=t=>t.value==="",tse=(t,e)=>{let r=!0,s=t.slice(),a=s.pop();for(;r&&s.length;)r=s.every(n=>a.intersects(n,e)),a=s.pop();return r},S$e=(t,e)=>(Si("comp",t,e),t=P$e(t,e),Si("caret",t),t=D$e(t,e),Si("tildes",t),t=k$e(t,e),Si("xrange",t),t=T$e(t,e),Si("stars",t),t),va=t=>!t||t.toLowerCase()==="x"||t==="*",D$e=(t,e)=>t.trim().split(/\s+/).map(r=>b$e(r,e)).join(" "),b$e=(t,e)=>{let r=e.loose?ol[Ba.TILDELOOSE]:ol[Ba.TILDE];return t.replace(r,(s,a,n,c,f)=>{Si("tilde",t,s,a,n,c,f);let p;return va(a)?p="":va(n)?p=`>=${a}.0.0 <${+a+1}.0.0-0`:va(c)?p=`>=${a}.${n}.0 <${a}.${+n+1}.0-0`:f?(Si("replaceTilde pr",f),p=`>=${a}.${n}.${c}-${f} <${a}.${+n+1}.0-0`):p=`>=${a}.${n}.${c} <${a}.${+n+1}.0-0`,Si("tilde return",p),p})},P$e=(t,e)=>t.trim().split(/\s+/).map(r=>x$e(r,e)).join(" "),x$e=(t,e)=>{Si("caret",t,e);let r=e.loose?ol[Ba.CARETLOOSE]:ol[Ba.CARET],s=e.includePrerelease?"-0":"";return t.replace(r,(a,n,c,f,p)=>{Si("caret",t,a,n,c,f,p);let h;return va(n)?h="":va(c)?h=`>=${n}.0.0${s} <${+n+1}.0.0-0`:va(f)?n==="0"?h=`>=${n}.${c}.0${s} <${n}.${+c+1}.0-0`:h=`>=${n}.${c}.0${s} <${+n+1}.0.0-0`:p?(Si("replaceCaret pr",p),n==="0"?c==="0"?h=`>=${n}.${c}.${f}-${p} <${n}.${c}.${+f+1}-0`:h=`>=${n}.${c}.${f}-${p} <${n}.${+c+1}.0-0`:h=`>=${n}.${c}.${f}-${p} <${+n+1}.0.0-0`):(Si("no pr"),n==="0"?c==="0"?h=`>=${n}.${c}.${f}${s} <${n}.${c}.${+f+1}-0`:h=`>=${n}.${c}.${f}${s} <${n}.${+c+1}.0-0`:h=`>=${n}.${c}.${f} <${+n+1}.0.0-0`),Si("caret return",h),h})},k$e=(t,e)=>(Si("replaceXRanges",t,e),t.split(/\s+/).map(r=>Q$e(r,e)).join(" ")),Q$e=(t,e)=>{t=t.trim();let r=e.loose?ol[Ba.XRANGELOOSE]:ol[Ba.XRANGE];return t.replace(r,(s,a,n,c,f,p)=>{Si("xRange",t,s,a,n,c,f,p);let h=va(n),E=h||va(c),C=E||va(f),S=C;return a==="="&&S&&(a=""),p=e.includePrerelease?"-0":"",h?a===">"||a==="<"?s="<0.0.0-0":s="*":a&&S?(E&&(c=0),f=0,a===">"?(a=">=",E?(n=+n+1,c=0,f=0):(c=+c+1,f=0)):a==="<="&&(a="<",E?n=+n+1:c=+c+1),a==="<"&&(p="-0"),s=`${a+n}.${c}.${f}${p}`):E?s=`>=${n}.0.0${p} <${+n+1}.0.0-0`:C&&(s=`>=${n}.${c}.0${p} <${n}.${+c+1}.0-0`),Si("xRange return",s),s})},T$e=(t,e)=>(Si("replaceStars",t,e),t.trim().replace(ol[Ba.STAR],"")),R$e=(t,e)=>(Si("replaceGTE0",t,e),t.trim().replace(ol[e.includePrerelease?Ba.GTE0PRE:Ba.GTE0],"")),F$e=t=>(e,r,s,a,n,c,f,p,h,E,C,S,P)=>(va(s)?r="":va(a)?r=`>=${s}.0.0${t?"-0":""}`:va(n)?r=`>=${s}.${a}.0${t?"-0":""}`:c?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,va(h)?p="":va(E)?p=`<${+h+1}.0.0-0`:va(C)?p=`<${h}.${+E+1}.0-0`:S?p=`<=${h}.${E}.${C}-${S}`:t?p=`<${h}.${E}.${+C+1}-0`:p=`<=${p}`,`${r} ${p}`.trim()),N$e=(t,e,r)=>{for(let s=0;s<t.length;s++)if(!t[s].test(e))return!1;if(e.prerelease.length&&!r.includePrerelease){for(let s=0;s<t.length;s++)if(Si(t[s].semver),t[s].semver!==jU.ANY&&t[s].semver.prerelease.length>0){let a=t[s].semver;if(a.major===e.major&&a.minor===e.minor&&a.patch===e.patch)return!0}return!1}return!0}});var AB=L((DWt,lse)=>{var pB=Symbol("SemVer ANY"),WU=class t{static get ANY(){return pB}constructor(e,r){if(r=nse(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),GU("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===pB?this.value="":this.value=this.operator+this.semver.version,GU("comp",this)}parse(e){let r=this.options.loose?ise[sse.COMPARATORLOOSE]:ise[sse.COMPARATOR],s=e.match(r);if(!s)throw new TypeError(`Invalid comparator: ${e}`);this.operator=s[1]!==void 0?s[1]:"",this.operator==="="&&(this.operator=""),s[2]?this.semver=new ose(s[2],this.options.loose):this.semver=pB}toString(){return this.value}test(e){if(GU("Comparator.test",e,this.options.loose),this.semver===pB||e===pB)return!0;if(typeof e=="string")try{e=new ose(e,this.options)}catch{return!1}return qU(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new ase(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new ase(this.value,r).test(e.semver):(r=nse(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||qU(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||qU(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};lse.exports=WU;var nse=Xx(),{safeRe:ise,t:sse}=wE(),qU=OU(),GU=lB(),ose=Go(),ase=Sc()});var hB=L((bWt,cse)=>{var O$e=Sc(),L$e=(t,e,r)=>{try{e=new O$e(e,r)}catch{return!1}return e.test(t)};cse.exports=L$e});var fse=L((PWt,use)=>{var M$e=Sc(),_$e=(t,e)=>new M$e(t,e).set.map(r=>r.map(s=>s.value).join(" ").trim().split(" "));use.exports=_$e});var pse=L((xWt,Ase)=>{var U$e=Go(),H$e=Sc(),j$e=(t,e,r)=>{let s=null,a=null,n=null;try{n=new H$e(e,r)}catch{return null}return t.forEach(c=>{n.test(c)&&(!s||a.compare(c)===-1)&&(s=c,a=new U$e(s,r))}),s};Ase.exports=j$e});var gse=L((kWt,hse)=>{var q$e=Go(),G$e=Sc(),W$e=(t,e,r)=>{let s=null,a=null,n=null;try{n=new G$e(e,r)}catch{return null}return t.forEach(c=>{n.test(c)&&(!s||a.compare(c)===1)&&(s=c,a=new q$e(s,r))}),s};hse.exports=W$e});var yse=L((QWt,mse)=>{var YU=Go(),Y$e=Sc(),dse=cB(),V$e=(t,e)=>{t=new Y$e(t,e);let r=new YU("0.0.0");if(t.test(r)||(r=new YU("0.0.0-0"),t.test(r)))return r;r=null;for(let s=0;s<t.set.length;++s){let a=t.set[s],n=null;a.forEach(c=>{let f=new YU(c.semver.version);switch(c.operator){case">":f.prerelease.length===0?f.patch++:f.prerelease.push(0),f.raw=f.format();case"":case">=":(!n||dse(f,n))&&(n=f);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${c.operator}`)}}),n&&(!r||dse(r,n))&&(r=n)}return r&&t.test(r)?r:null};mse.exports=V$e});var Ise=L((TWt,Ese)=>{var K$e=Sc(),J$e=(t,e)=>{try{return new K$e(t,e).range||"*"}catch{return null}};Ese.exports=J$e});var ck=L((RWt,vse)=>{var z$e=Go(),Bse=AB(),{ANY:Z$e}=Bse,X$e=Sc(),$$e=hB(),Cse=cB(),wse=rk(),eet=ik(),tet=nk(),ret=(t,e,r,s)=>{t=new z$e(t,s),e=new X$e(e,s);let a,n,c,f,p;switch(r){case">":a=Cse,n=eet,c=wse,f=">",p=">=";break;case"<":a=wse,n=tet,c=Cse,f="<",p="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if($$e(t,e,s))return!1;for(let h=0;h<e.set.length;++h){let E=e.set[h],C=null,S=null;if(E.forEach(P=>{P.semver===Z$e&&(P=new Bse(">=0.0.0")),C=C||P,S=S||P,a(P.semver,C.semver,s)?C=P:c(P.semver,S.semver,s)&&(S=P)}),C.operator===f||C.operator===p||(!S.operator||S.operator===f)&&n(t,S.semver))return!1;if(S.operator===p&&c(t,S.semver))return!1}return!0};vse.exports=ret});var Dse=L((FWt,Sse)=>{var net=ck(),iet=(t,e,r)=>net(t,e,">",r);Sse.exports=iet});var Pse=L((NWt,bse)=>{var set=ck(),oet=(t,e,r)=>set(t,e,"<",r);bse.exports=oet});var Qse=L((OWt,kse)=>{var xse=Sc(),aet=(t,e,r)=>(t=new xse(t,r),e=new xse(e,r),t.intersects(e,r));kse.exports=aet});var Rse=L((LWt,Tse)=>{var cet=hB(),uet=vc();Tse.exports=(t,e,r)=>{let s=[],a=null,n=null,c=t.sort((E,C)=>uet(E,C,r));for(let E of c)cet(E,e,r)?(n=E,a||(a=E)):(n&&s.push([a,n]),n=null,a=null);a&&s.push([a,null]);let f=[];for(let[E,C]of s)E===C?f.push(E):!C&&E===c[0]?f.push("*"):C?E===c[0]?f.push(`<=${C}`):f.push(`${E} - ${C}`):f.push(`>=${E}`);let p=f.join(" || "),h=typeof e.raw=="string"?e.raw:String(e);return p.length<h.length?p:e}});var _se=L((MWt,Mse)=>{var Fse=Sc(),KU=AB(),{ANY:VU}=KU,gB=hB(),JU=vc(),fet=(t,e,r={})=>{if(t===e)return!0;t=new Fse(t,r),e=new Fse(e,r);let s=!1;e:for(let a of t.set){for(let n of e.set){let c=pet(a,n,r);if(s=s||c!==null,c)continue e}if(s)return!1}return!0},Aet=[new KU(">=0.0.0-0")],Nse=[new KU(">=0.0.0")],pet=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===VU){if(e.length===1&&e[0].semver===VU)return!0;r.includePrerelease?t=Aet:t=Nse}if(e.length===1&&e[0].semver===VU){if(r.includePrerelease)return!0;e=Nse}let s=new Set,a,n;for(let P of t)P.operator===">"||P.operator===">="?a=Ose(a,P,r):P.operator==="<"||P.operator==="<="?n=Lse(n,P,r):s.add(P.semver);if(s.size>1)return null;let c;if(a&&n){if(c=JU(a.semver,n.semver,r),c>0)return null;if(c===0&&(a.operator!==">="||n.operator!=="<="))return null}for(let P of s){if(a&&!gB(P,String(a),r)||n&&!gB(P,String(n),r))return null;for(let I of e)if(!gB(P,String(I),r))return!1;return!0}let f,p,h,E,C=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1,S=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;C&&C.prerelease.length===1&&n.operator==="<"&&C.prerelease[0]===0&&(C=!1);for(let P of e){if(E=E||P.operator===">"||P.operator===">=",h=h||P.operator==="<"||P.operator==="<=",a){if(S&&P.semver.prerelease&&P.semver.prerelease.length&&P.semver.major===S.major&&P.semver.minor===S.minor&&P.semver.patch===S.patch&&(S=!1),P.operator===">"||P.operator===">="){if(f=Ose(a,P,r),f===P&&f!==a)return!1}else if(a.operator===">="&&!gB(a.semver,String(P),r))return!1}if(n){if(C&&P.semver.prerelease&&P.semver.prerelease.length&&P.semver.major===C.major&&P.semver.minor===C.minor&&P.semver.patch===C.patch&&(C=!1),P.operator==="<"||P.operator==="<="){if(p=Lse(n,P,r),p===P&&p!==n)return!1}else if(n.operator==="<="&&!gB(n.semver,String(P),r))return!1}if(!P.operator&&(n||a)&&c!==0)return!1}return!(a&&h&&!n&&c!==0||n&&E&&!a&&c!==0||S||C)},Ose=(t,e,r)=>{if(!t)return e;let s=JU(t.semver,e.semver,r);return s>0?t:s<0||e.operator===">"&&t.operator===">="?e:t},Lse=(t,e,r)=>{if(!t)return e;let s=JU(t.semver,e.semver,r);return s<0?t:s>0||e.operator==="<"&&t.operator==="<="?e:t};Mse.exports=fet});var Ai=L((_Wt,jse)=>{var zU=wE(),Use=aB(),het=Go(),Hse=TU(),get=Ld(),det=aie(),met=cie(),yet=Aie(),Eet=gie(),Iet=mie(),Cet=Eie(),wet=Cie(),Bet=Bie(),vet=vc(),Det=bie(),bet=xie(),Pet=tk(),xet=Rie(),ket=Nie(),Qet=cB(),Tet=rk(),Ret=FU(),Fet=NU(),Net=nk(),Oet=ik(),Let=OU(),Met=Gie(),_et=AB(),Uet=Sc(),Het=hB(),jet=fse(),qet=pse(),Get=gse(),Wet=yse(),Yet=Ise(),Vet=ck(),Ket=Dse(),Jet=Pse(),zet=Qse(),Zet=Rse(),Xet=_se();jse.exports={parse:get,valid:det,clean:met,inc:yet,diff:Eet,major:Iet,minor:Cet,patch:wet,prerelease:Bet,compare:vet,rcompare:Det,compareLoose:bet,compareBuild:Pet,sort:xet,rsort:ket,gt:Qet,lt:Tet,eq:Ret,neq:Fet,gte:Net,lte:Oet,cmp:Let,coerce:Met,Comparator:_et,Range:Uet,satisfies:Het,toComparators:jet,maxSatisfying:qet,minSatisfying:Get,minVersion:Wet,validRange:Yet,outside:Vet,gtr:Ket,ltr:Jet,intersects:zet,simplifyRange:Zet,subset:Xet,SemVer:het,re:zU.re,src:zU.src,tokens:zU.t,SEMVER_SPEC_VERSION:Use.SEMVER_SPEC_VERSION,RELEASE_TYPES:Use.RELEASE_TYPES,compareIdentifiers:Hse.compareIdentifiers,rcompareIdentifiers:Hse.rcompareIdentifiers}});var Gse=L((UWt,qse)=>{"use strict";function $et(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Hd(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.location=s,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Hd)}$et(Hd,Error);Hd.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",C;for(C=0;C<h.parts.length;C++)E+=h.parts[C]instanceof Array?n(h.parts[C][0])+"-"+n(h.parts[C][1]):n(h.parts[C]);return"["+(h.inverted?"^":"")+E+"]"},any:function(h){return"any character"},end:function(h){return"end of input"},other:function(h){return h.description}};function s(h){return h.charCodeAt(0).toString(16).toUpperCase()}function a(h){return h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+s(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+s(E)})}function n(h){return h.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(E){return"\\x0"+s(E)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(E){return"\\x"+s(E)})}function c(h){return r[h.type](h)}function f(h){var E=new Array(h.length),C,S;for(C=0;C<h.length;C++)E[C]=c(h[C]);if(E.sort(),E.length>0){for(C=1,S=1;C<E.length;C++)E[C-1]!==E[C]&&(E[S]=E[C],S++);E.length=S}switch(E.length){case 1:return E[0];case 2:return E[0]+" or "+E[1];default:return E.slice(0,-1).join(", ")+", or "+E[E.length-1]}}function p(h){return h?'"'+a(h)+'"':"end of input"}return"Expected "+f(t)+" but "+p(e)+" found."};function ett(t,e){e=e!==void 0?e:{};var r={},s={Expression:y},a=y,n="|",c=Fe("|",!1),f="&",p=Fe("&",!1),h="^",E=Fe("^",!1),C=function($,oe){return!!oe.reduce((xe,Te)=>{switch(Te[1]){case"|":return xe|Te[3];case"&":return xe&Te[3];case"^":return xe^Te[3]}},$)},S="!",P=Fe("!",!1),I=function($){return!$},R="(",N=Fe("(",!1),U=")",W=Fe(")",!1),te=function($){return $},ie=/^[^ \t\n\r()!|&\^]/,Ae=Ne([" "," ",` +`,"\r","(",")","!","|","&","^"],!0,!1),ce=function($){return e.queryPattern.test($)},me=function($){return e.checkFn($)},pe=ke("whitespace"),Be=/^[ \t\n\r]/,Ce=Ne([" "," ",` +`,"\r"],!1,!1),g=0,we=0,ye=[{line:1,column:1}],fe=0,se=[],X=0,De;if("startRule"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=s[e.startRule]}function Re(){return t.substring(we,g)}function dt(){return _e(we,g)}function j($,oe){throw oe=oe!==void 0?oe:_e(we,g),b([ke($)],t.substring(we,g),oe)}function rt($,oe){throw oe=oe!==void 0?oe:_e(we,g),w($,oe)}function Fe($,oe){return{type:"literal",text:$,ignoreCase:oe}}function Ne($,oe,xe){return{type:"class",parts:$,inverted:oe,ignoreCase:xe}}function Pe(){return{type:"any"}}function Ye(){return{type:"end"}}function ke($){return{type:"other",description:$}}function it($){var oe=ye[$],xe;if(oe)return oe;for(xe=$-1;!ye[xe];)xe--;for(oe=ye[xe],oe={line:oe.line,column:oe.column};xe<$;)t.charCodeAt(xe)===10?(oe.line++,oe.column=1):oe.column++,xe++;return ye[$]=oe,oe}function _e($,oe){var xe=it($),Te=it(oe);return{start:{offset:$,line:xe.line,column:xe.column},end:{offset:oe,line:Te.line,column:Te.column}}}function x($){g<fe||(g>fe&&(fe=g,se=[]),se.push($))}function w($,oe){return new Hd($,null,null,oe)}function b($,oe,xe){return new Hd(Hd.buildMessage($,oe),$,oe,xe)}function y(){var $,oe,xe,Te,lt,It,qt,ir;if($=g,oe=F(),oe!==r){for(xe=[],Te=g,lt=Z(),lt!==r?(t.charCodeAt(g)===124?(It=n,g++):(It=r,X===0&&x(c)),It===r&&(t.charCodeAt(g)===38?(It=f,g++):(It=r,X===0&&x(p)),It===r&&(t.charCodeAt(g)===94?(It=h,g++):(It=r,X===0&&x(E)))),It!==r?(qt=Z(),qt!==r?(ir=F(),ir!==r?(lt=[lt,It,qt,ir],Te=lt):(g=Te,Te=r)):(g=Te,Te=r)):(g=Te,Te=r)):(g=Te,Te=r);Te!==r;)xe.push(Te),Te=g,lt=Z(),lt!==r?(t.charCodeAt(g)===124?(It=n,g++):(It=r,X===0&&x(c)),It===r&&(t.charCodeAt(g)===38?(It=f,g++):(It=r,X===0&&x(p)),It===r&&(t.charCodeAt(g)===94?(It=h,g++):(It=r,X===0&&x(E)))),It!==r?(qt=Z(),qt!==r?(ir=F(),ir!==r?(lt=[lt,It,qt,ir],Te=lt):(g=Te,Te=r)):(g=Te,Te=r)):(g=Te,Te=r)):(g=Te,Te=r);xe!==r?(we=$,oe=C(oe,xe),$=oe):(g=$,$=r)}else g=$,$=r;return $}function F(){var $,oe,xe,Te,lt,It;return $=g,t.charCodeAt(g)===33?(oe=S,g++):(oe=r,X===0&&x(P)),oe!==r?(xe=F(),xe!==r?(we=$,oe=I(xe),$=oe):(g=$,$=r)):(g=$,$=r),$===r&&($=g,t.charCodeAt(g)===40?(oe=R,g++):(oe=r,X===0&&x(N)),oe!==r?(xe=Z(),xe!==r?(Te=y(),Te!==r?(lt=Z(),lt!==r?(t.charCodeAt(g)===41?(It=U,g++):(It=r,X===0&&x(W)),It!==r?(we=$,oe=te(Te),$=oe):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r),$===r&&($=z())),$}function z(){var $,oe,xe,Te,lt;if($=g,oe=Z(),oe!==r){if(xe=g,Te=[],ie.test(t.charAt(g))?(lt=t.charAt(g),g++):(lt=r,X===0&&x(Ae)),lt!==r)for(;lt!==r;)Te.push(lt),ie.test(t.charAt(g))?(lt=t.charAt(g),g++):(lt=r,X===0&&x(Ae));else Te=r;Te!==r?xe=t.substring(xe,g):xe=Te,xe!==r?(we=g,Te=ce(xe),Te?Te=void 0:Te=r,Te!==r?(we=$,oe=me(xe),$=oe):(g=$,$=r)):(g=$,$=r)}else g=$,$=r;return $}function Z(){var $,oe;for(X++,$=[],Be.test(t.charAt(g))?(oe=t.charAt(g),g++):(oe=r,X===0&&x(Ce));oe!==r;)$.push(oe),Be.test(t.charAt(g))?(oe=t.charAt(g),g++):(oe=r,X===0&&x(Ce));return X--,$===r&&(oe=r,X===0&&x(pe)),$}if(De=a(),De!==r&&g===t.length)return De;throw De!==r&&g<t.length&&x(Ye()),b(se,fe<t.length?t.charAt(fe):null,fe<t.length?_e(fe,fe+1):_e(fe,fe))}qse.exports={SyntaxError:Hd,parse:ett}});var Wse=L(uk=>{var{parse:ttt}=Gse();uk.makeParser=(t=/[a-z]+/)=>(e,r)=>ttt(e,{queryPattern:t,checkFn:r});uk.parse=uk.makeParser()});var Vse=L((jWt,Yse)=>{"use strict";Yse.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var ZU=L((qWt,Jse)=>{var dB=Vse(),Kse={};for(let t of Object.keys(dB))Kse[dB[t]]=t;var hr={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};Jse.exports=hr;for(let t of Object.keys(hr)){if(!("channels"in hr[t]))throw new Error("missing channels property: "+t);if(!("labels"in hr[t]))throw new Error("missing channel labels property: "+t);if(hr[t].labels.length!==hr[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=hr[t];delete hr[t].channels,delete hr[t].labels,Object.defineProperty(hr[t],"channels",{value:e}),Object.defineProperty(hr[t],"labels",{value:r})}hr.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,a=Math.min(e,r,s),n=Math.max(e,r,s),c=n-a,f,p;n===a?f=0:e===n?f=(r-s)/c:r===n?f=2+(s-e)/c:s===n&&(f=4+(e-r)/c),f=Math.min(f*60,360),f<0&&(f+=360);let h=(a+n)/2;return n===a?p=0:h<=.5?p=c/(n+a):p=c/(2-n-a),[f,p*100,h*100]};hr.rgb.hsv=function(t){let e,r,s,a,n,c=t[0]/255,f=t[1]/255,p=t[2]/255,h=Math.max(c,f,p),E=h-Math.min(c,f,p),C=function(S){return(h-S)/6/E+1/2};return E===0?(a=0,n=0):(n=E/h,e=C(c),r=C(f),s=C(p),c===h?a=s-r:f===h?a=1/3+e-s:p===h&&(a=2/3+r-e),a<0?a+=1:a>1&&(a-=1)),[a*360,n*100,h*100]};hr.rgb.hwb=function(t){let e=t[0],r=t[1],s=t[2],a=hr.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(r,s));return s=1-1/255*Math.max(e,Math.max(r,s)),[a,n*100,s*100]};hr.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,a=Math.min(1-e,1-r,1-s),n=(1-e-a)/(1-a)||0,c=(1-r-a)/(1-a)||0,f=(1-s-a)/(1-a)||0;return[n*100,c*100,f*100,a*100]};function rtt(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}hr.rgb.keyword=function(t){let e=Kse[t];if(e)return e;let r=1/0,s;for(let a of Object.keys(dB)){let n=dB[a],c=rtt(t,n);c<r&&(r=c,s=a)}return s};hr.keyword.rgb=function(t){return dB[t]};hr.rgb.xyz=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,s=s>.04045?((s+.055)/1.055)**2.4:s/12.92;let a=e*.4124+r*.3576+s*.1805,n=e*.2126+r*.7152+s*.0722,c=e*.0193+r*.1192+s*.9505;return[a*100,n*100,c*100]};hr.rgb.lab=function(t){let e=hr.rgb.xyz(t),r=e[0],s=e[1],a=e[2];r/=95.047,s/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,s=s>.008856?s**(1/3):7.787*s+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let n=116*s-16,c=500*(r-s),f=200*(s-a);return[n,c,f]};hr.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100,a,n,c;if(r===0)return c=s*255,[c,c,c];s<.5?a=s*(1+r):a=s+r-s*r;let f=2*s-a,p=[0,0,0];for(let h=0;h<3;h++)n=e+1/3*-(h-1),n<0&&n++,n>1&&n--,6*n<1?c=f+(a-f)*6*n:2*n<1?c=a:3*n<2?c=f+(a-f)*(2/3-n)*6:c=f,p[h]=c*255;return p};hr.hsl.hsv=function(t){let e=t[0],r=t[1]/100,s=t[2]/100,a=r,n=Math.max(s,.01);s*=2,r*=s<=1?s:2-s,a*=n<=1?n:2-n;let c=(s+r)/2,f=s===0?2*a/(n+a):2*r/(s+r);return[e,f*100,c*100]};hr.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,s=t[2]/100,a=Math.floor(e)%6,n=e-Math.floor(e),c=255*s*(1-r),f=255*s*(1-r*n),p=255*s*(1-r*(1-n));switch(s*=255,a){case 0:return[s,p,c];case 1:return[f,s,c];case 2:return[c,s,p];case 3:return[c,f,s];case 4:return[p,c,s];case 5:return[s,c,f]}};hr.hsv.hsl=function(t){let e=t[0],r=t[1]/100,s=t[2]/100,a=Math.max(s,.01),n,c;c=(2-r)*s;let f=(2-r)*a;return n=r*a,n/=f<=1?f:2-f,n=n||0,c/=2,[e,n*100,c*100]};hr.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100,a=r+s,n;a>1&&(r/=a,s/=a);let c=Math.floor(6*e),f=1-s;n=6*e-c,c&1&&(n=1-n);let p=r+n*(f-r),h,E,C;switch(c){default:case 6:case 0:h=f,E=p,C=r;break;case 1:h=p,E=f,C=r;break;case 2:h=r,E=f,C=p;break;case 3:h=r,E=p,C=f;break;case 4:h=p,E=r,C=f;break;case 5:h=f,E=r,C=p;break}return[h*255,E*255,C*255]};hr.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,a=t[3]/100,n=1-Math.min(1,e*(1-a)+a),c=1-Math.min(1,r*(1-a)+a),f=1-Math.min(1,s*(1-a)+a);return[n*255,c*255,f*255]};hr.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,s=t[2]/100,a,n,c;return a=e*3.2406+r*-1.5372+s*-.4986,n=e*-.9689+r*1.8758+s*.0415,c=e*.0557+r*-.204+s*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,c=c>.0031308?1.055*c**(1/2.4)-.055:c*12.92,a=Math.min(Math.max(0,a),1),n=Math.min(Math.max(0,n),1),c=Math.min(Math.max(0,c),1),[a*255,n*255,c*255]};hr.xyz.lab=function(t){let e=t[0],r=t[1],s=t[2];e/=95.047,r/=100,s/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,s=s>.008856?s**(1/3):7.787*s+16/116;let a=116*r-16,n=500*(e-r),c=200*(r-s);return[a,n,c]};hr.lab.xyz=function(t){let e=t[0],r=t[1],s=t[2],a,n,c;n=(e+16)/116,a=r/500+n,c=n-s/200;let f=n**3,p=a**3,h=c**3;return n=f>.008856?f:(n-16/116)/7.787,a=p>.008856?p:(a-16/116)/7.787,c=h>.008856?h:(c-16/116)/7.787,a*=95.047,n*=100,c*=108.883,[a,n,c]};hr.lab.lch=function(t){let e=t[0],r=t[1],s=t[2],a;a=Math.atan2(s,r)*360/2/Math.PI,a<0&&(a+=360);let c=Math.sqrt(r*r+s*s);return[e,c,a]};hr.lch.lab=function(t){let e=t[0],r=t[1],a=t[2]/360*2*Math.PI,n=r*Math.cos(a),c=r*Math.sin(a);return[e,n,c]};hr.rgb.ansi16=function(t,e=null){let[r,s,a]=t,n=e===null?hr.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),n===0)return 30;let c=30+(Math.round(a/255)<<2|Math.round(s/255)<<1|Math.round(r/255));return n===2&&(c+=60),c};hr.hsv.ansi16=function(t){return hr.rgb.ansi16(hr.hsv.rgb(t),t[2])};hr.rgb.ansi256=function(t){let e=t[0],r=t[1],s=t[2];return e===r&&r===s?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(s/255*5)};hr.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,s=(e&1)*r*255,a=(e>>1&1)*r*255,n=(e>>2&1)*r*255;return[s,a,n]};hr.ansi256.rgb=function(t){if(t>=232){let n=(t-232)*10+8;return[n,n,n]}t-=16;let e,r=Math.floor(t/36)/5*255,s=Math.floor((e=t%36)/6)/5*255,a=e%6/5*255;return[r,s,a]};hr.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};hr.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(f=>f+f).join(""));let s=parseInt(r,16),a=s>>16&255,n=s>>8&255,c=s&255;return[a,n,c]};hr.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,s=t[2]/255,a=Math.max(Math.max(e,r),s),n=Math.min(Math.min(e,r),s),c=a-n,f,p;return c<1?f=n/(1-c):f=0,c<=0?p=0:a===e?p=(r-s)/c%6:a===r?p=2+(s-e)/c:p=4+(e-r)/c,p/=6,p%=1,[p*360,c*100,f*100]};hr.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,s=r<.5?2*e*r:2*e*(1-r),a=0;return s<1&&(a=(r-.5*s)/(1-s)),[t[0],s*100,a*100]};hr.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,s=e*r,a=0;return s<1&&(a=(r-s)/(1-s)),[t[0],s*100,a*100]};hr.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,s=t[2]/100;if(r===0)return[s*255,s*255,s*255];let a=[0,0,0],n=e%1*6,c=n%1,f=1-c,p=0;switch(Math.floor(n)){case 0:a[0]=1,a[1]=c,a[2]=0;break;case 1:a[0]=f,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=c;break;case 3:a[0]=0,a[1]=f,a[2]=1;break;case 4:a[0]=c,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=f}return p=(1-r)*s,[(r*a[0]+p)*255,(r*a[1]+p)*255,(r*a[2]+p)*255]};hr.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,s=e+r*(1-e),a=0;return s>0&&(a=e/s),[t[0],a*100,s*100]};hr.hcg.hsl=function(t){let e=t[1]/100,s=t[2]/100*(1-e)+.5*e,a=0;return s>0&&s<.5?a=e/(2*s):s>=.5&&s<1&&(a=e/(2*(1-s))),[t[0],a*100,s*100]};hr.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,s=e+r*(1-e);return[t[0],(s-e)*100,(1-s)*100]};hr.hwb.hcg=function(t){let e=t[1]/100,s=1-t[2]/100,a=s-e,n=0;return a<1&&(n=(s-a)/(1-a)),[t[0],a*100,n*100]};hr.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};hr.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};hr.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};hr.gray.hsl=function(t){return[0,0,t[0]]};hr.gray.hsv=hr.gray.hsl;hr.gray.hwb=function(t){return[0,100,t[0]]};hr.gray.cmyk=function(t){return[0,0,0,t[0]]};hr.gray.lab=function(t){return[t[0],0,0]};hr.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,s=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(s.length)+s};hr.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var Zse=L((GWt,zse)=>{var fk=ZU();function ntt(){let t={},e=Object.keys(fk);for(let r=e.length,s=0;s<r;s++)t[e[s]]={distance:-1,parent:null};return t}function itt(t){let e=ntt(),r=[t];for(e[t].distance=0;r.length;){let s=r.pop(),a=Object.keys(fk[s]);for(let n=a.length,c=0;c<n;c++){let f=a[c],p=e[f];p.distance===-1&&(p.distance=e[s].distance+1,p.parent=s,r.unshift(f))}}return e}function stt(t,e){return function(r){return e(t(r))}}function ott(t,e){let r=[e[t].parent,t],s=fk[e[t].parent][t],a=e[t].parent;for(;e[a].parent;)r.unshift(e[a].parent),s=stt(fk[e[a].parent][a],s),a=e[a].parent;return s.conversion=r,s}zse.exports=function(t){let e=itt(t),r={},s=Object.keys(e);for(let a=s.length,n=0;n<a;n++){let c=s[n];e[c].parent!==null&&(r[c]=ott(c,e))}return r}});var $se=L((WWt,Xse)=>{var XU=ZU(),att=Zse(),DE={},ltt=Object.keys(XU);function ctt(t){let e=function(...r){let s=r[0];return s==null?s:(s.length>1&&(r=s),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function utt(t){let e=function(...r){let s=r[0];if(s==null)return s;s.length>1&&(r=s);let a=t(r);if(typeof a=="object")for(let n=a.length,c=0;c<n;c++)a[c]=Math.round(a[c]);return a};return"conversion"in t&&(e.conversion=t.conversion),e}ltt.forEach(t=>{DE[t]={},Object.defineProperty(DE[t],"channels",{value:XU[t].channels}),Object.defineProperty(DE[t],"labels",{value:XU[t].labels});let e=att(t);Object.keys(e).forEach(s=>{let a=e[s];DE[t][s]=utt(a),DE[t][s].raw=ctt(a)})});Xse.exports=DE});var pk=L((YWt,ioe)=>{"use strict";var eoe=(t,e)=>(...r)=>`\x1B[${t(...r)+e}m`,toe=(t,e)=>(...r)=>{let s=t(...r);return`\x1B[${38+e};5;${s}m`},roe=(t,e)=>(...r)=>{let s=t(...r);return`\x1B[${38+e};2;${s[0]};${s[1]};${s[2]}m`},Ak=t=>t,noe=(t,e,r)=>[t,e,r],bE=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let s=r();return Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0}),s},enumerable:!0,configurable:!0})},$U,PE=(t,e,r,s)=>{$U===void 0&&($U=$se());let a=s?10:0,n={};for(let[c,f]of Object.entries($U)){let p=c==="ansi16"?"ansi":c;c===e?n[p]=t(r,a):typeof f=="object"&&(n[p]=t(f[e],a))}return n};function ftt(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,s]of Object.entries(e)){for(let[a,n]of Object.entries(s))e[a]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},s[a]=e[a],t.set(n[0],n[1]);Object.defineProperty(e,r,{value:s,enumerable:!1})}return Object.defineProperty(e,"codes",{value:t,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",bE(e.color,"ansi",()=>PE(eoe,"ansi16",Ak,!1)),bE(e.color,"ansi256",()=>PE(toe,"ansi256",Ak,!1)),bE(e.color,"ansi16m",()=>PE(roe,"rgb",noe,!1)),bE(e.bgColor,"ansi",()=>PE(eoe,"ansi16",Ak,!0)),bE(e.bgColor,"ansi256",()=>PE(toe,"ansi256",Ak,!0)),bE(e.bgColor,"ansi16m",()=>PE(roe,"rgb",noe,!0)),e}Object.defineProperty(ioe,"exports",{enumerable:!0,get:ftt})});var ooe=L((VWt,soe)=>{"use strict";soe.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",s=e.indexOf(r+t),a=e.indexOf("--");return s!==-1&&(a===-1||s<a)}});var coe=L((KWt,loe)=>{"use strict";var Att=Ie("os"),aoe=Ie("tty"),Dc=ooe(),{env:xs}=process,u0;Dc("no-color")||Dc("no-colors")||Dc("color=false")||Dc("color=never")?u0=0:(Dc("color")||Dc("colors")||Dc("color=true")||Dc("color=always"))&&(u0=1);"FORCE_COLOR"in xs&&(xs.FORCE_COLOR==="true"?u0=1:xs.FORCE_COLOR==="false"?u0=0:u0=xs.FORCE_COLOR.length===0?1:Math.min(parseInt(xs.FORCE_COLOR,10),3));function e4(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function t4(t,e){if(u0===0)return 0;if(Dc("color=16m")||Dc("color=full")||Dc("color=truecolor"))return 3;if(Dc("color=256"))return 2;if(t&&!e&&u0===void 0)return 0;let r=u0||0;if(xs.TERM==="dumb")return r;if(process.platform==="win32"){let s=Att.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in xs)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(s=>s in xs)||xs.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in xs)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(xs.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in xs)return 1;if(xs.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in xs){let s=parseInt((xs.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(xs.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(xs.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(xs.TERM)||"COLORTERM"in xs?1:r}function ptt(t){let e=t4(t,t&&t.isTTY);return e4(e)}loe.exports={supportsColor:ptt,stdout:e4(t4(!0,aoe.isatty(1))),stderr:e4(t4(!0,aoe.isatty(2)))}});var foe=L((JWt,uoe)=>{"use strict";var htt=(t,e,r)=>{let s=t.indexOf(e);if(s===-1)return t;let a=e.length,n=0,c="";do c+=t.substr(n,s-n)+e+r,n=s+a,s=t.indexOf(e,n);while(s!==-1);return c+=t.substr(n),c},gtt=(t,e,r,s)=>{let a=0,n="";do{let c=t[s-1]==="\r";n+=t.substr(a,(c?s-1:s)-a)+e+(c?`\r +`:` +`)+r,a=s+1,s=t.indexOf(` +`,a)}while(s!==-1);return n+=t.substr(a),n};uoe.exports={stringReplaceAll:htt,stringEncaseCRLFWithFirstIndex:gtt}});var doe=L((zWt,goe)=>{"use strict";var dtt=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,Aoe=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,mtt=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,ytt=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,Ett=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function hoe(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):Ett.get(t)||t}function Itt(t,e){let r=[],s=e.trim().split(/\s*,\s*/g),a;for(let n of s){let c=Number(n);if(!Number.isNaN(c))r.push(c);else if(a=n.match(mtt))r.push(a[2].replace(ytt,(f,p,h)=>p?hoe(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function Ctt(t){Aoe.lastIndex=0;let e=[],r;for(;(r=Aoe.exec(t))!==null;){let s=r[1];if(r[2]){let a=Itt(s,r[2]);e.push([s].concat(a))}else e.push([s])}return e}function poe(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let s=t;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in s))throw new Error(`Unknown Chalk style: ${a}`);s=n.length>0?s[a](...n):s[a]}return s}goe.exports=(t,e)=>{let r=[],s=[],a=[];if(e.replace(dtt,(n,c,f,p,h,E)=>{if(c)a.push(hoe(c));else if(p){let C=a.join("");a=[],s.push(r.length===0?C:poe(t,r)(C)),r.push({inverse:f,styles:Ctt(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");s.push(poe(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),s.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return s.join("")}});var kE=L((ZWt,woe)=>{"use strict";var mB=pk(),{stdout:n4,stderr:i4}=coe(),{stringReplaceAll:wtt,stringEncaseCRLFWithFirstIndex:Btt}=foe(),{isArray:hk}=Array,yoe=["ansi","ansi","ansi256","ansi16m"],xE=Object.create(null),vtt=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=n4?n4.level:0;t.level=e.level===void 0?r:e.level},s4=class{constructor(e){return Eoe(e)}},Eoe=t=>{let e={};return vtt(e,t),e.template=(...r)=>Coe(e.template,...r),Object.setPrototypeOf(e,gk.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=s4,e.template};function gk(t){return Eoe(t)}for(let[t,e]of Object.entries(mB))xE[t]={get(){let r=dk(this,o4(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};xE.visible={get(){let t=dk(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var Ioe=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of Ioe)xE[t]={get(){let{level:e}=this;return function(...r){let s=o4(mB.color[yoe[e]][t](...r),mB.color.close,this._styler);return dk(this,s,this._isEmpty)}}};for(let t of Ioe){let e="bg"+t[0].toUpperCase()+t.slice(1);xE[e]={get(){let{level:r}=this;return function(...s){let a=o4(mB.bgColor[yoe[r]][t](...s),mB.bgColor.close,this._styler);return dk(this,a,this._isEmpty)}}}}var Stt=Object.defineProperties(()=>{},{...xE,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),o4=(t,e,r)=>{let s,a;return r===void 0?(s=t,a=e):(s=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:s,closeAll:a,parent:r}},dk=(t,e,r)=>{let s=(...a)=>hk(a[0])&&hk(a[0].raw)?moe(s,Coe(s,...a)):moe(s,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(s,Stt),s._generator=t,s._styler=e,s._isEmpty=r,s},moe=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:s,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=wtt(e,r.close,r.open),r=r.parent;let n=e.indexOf(` +`);return n!==-1&&(e=Btt(e,a,s,n)),s+e+a},r4,Coe=(t,...e)=>{let[r]=e;if(!hk(r)||!hk(r.raw))return e.join(" ");let s=e.slice(1),a=[r.raw[0]];for(let n=1;n<r.length;n++)a.push(String(s[n-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[n]));return r4===void 0&&(r4=doe()),r4(t,a.join(""))};Object.defineProperties(gk.prototype,xE);var mk=gk();mk.supportsColor=n4;mk.stderr=gk({level:i4?i4.level:0});mk.stderr.supportsColor=i4;woe.exports=mk});var yk=L(bc=>{"use strict";bc.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;bc.find=(t,e)=>t.nodes.find(r=>r.type===e);bc.exceedsLimit=(t,e,r=1,s)=>s===!1||!bc.isInteger(t)||!bc.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=s;bc.escapeNode=(t,e=0,r)=>{let s=t.nodes[e];s&&(r&&s.type===r||s.type==="open"||s.type==="close")&&s.escaped!==!0&&(s.value="\\"+s.value,s.escaped=!0)};bc.encloseBrace=t=>t.type!=="brace"||t.commas>>0+t.ranges>>0?!1:(t.invalid=!0,!0);bc.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:!(t.commas>>0+t.ranges>>0)||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;bc.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;bc.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);bc.flatten=(...t)=>{let e=[],r=s=>{for(let a=0;a<s.length;a++){let n=s[a];Array.isArray(n)?r(n,e):n!==void 0&&e.push(n)}return e};return r(t),e}});var Ek=L(($Wt,voe)=>{"use strict";var Boe=yk();voe.exports=(t,e={})=>{let r=(s,a={})=>{let n=e.escapeInvalid&&Boe.isInvalidBrace(a),c=s.invalid===!0&&e.escapeInvalid===!0,f="";if(s.value)return(n||c)&&Boe.isOpenOrClose(s)?"\\"+s.value:s.value;if(s.value)return s.value;if(s.nodes)for(let p of s.nodes)f+=r(p);return f};return r(t)}});var Doe=L((eYt,Soe)=>{"use strict";Soe.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var Noe=L((tYt,Foe)=>{"use strict";var boe=Doe(),jd=(t,e,r)=>{if(boe(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(boe(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let s={relaxZeros:!0,...r};typeof s.strictZeros=="boolean"&&(s.relaxZeros=s.strictZeros===!1);let a=String(s.relaxZeros),n=String(s.shorthand),c=String(s.capture),f=String(s.wrap),p=t+":"+e+"="+a+n+c+f;if(jd.cache.hasOwnProperty(p))return jd.cache[p].result;let h=Math.min(t,e),E=Math.max(t,e);if(Math.abs(h-E)===1){let R=t+"|"+e;return s.capture?`(${R})`:s.wrap===!1?R:`(?:${R})`}let C=Roe(t)||Roe(e),S={min:t,max:e,a:h,b:E},P=[],I=[];if(C&&(S.isPadded=C,S.maxLen=String(S.max).length),h<0){let R=E<0?Math.abs(E):1;I=Poe(R,Math.abs(h),S,s),h=S.a=0}return E>=0&&(P=Poe(h,E,S,s)),S.negatives=I,S.positives=P,S.result=Dtt(I,P,s),s.capture===!0?S.result=`(${S.result})`:s.wrap!==!1&&P.length+I.length>1&&(S.result=`(?:${S.result})`),jd.cache[p]=S,S.result};function Dtt(t,e,r){let s=a4(t,e,"-",!1,r)||[],a=a4(e,t,"",!1,r)||[],n=a4(t,e,"-?",!0,r)||[];return s.concat(n).concat(a).join("|")}function btt(t,e){let r=1,s=1,a=koe(t,r),n=new Set([e]);for(;t<=a&&a<=e;)n.add(a),r+=1,a=koe(t,r);for(a=Qoe(e+1,s)-1;t<a&&a<=e;)n.add(a),s+=1,a=Qoe(e+1,s)-1;return n=[...n],n.sort(ktt),n}function Ptt(t,e,r){if(t===e)return{pattern:t,count:[],digits:0};let s=xtt(t,e),a=s.length,n="",c=0;for(let f=0;f<a;f++){let[p,h]=s[f];p===h?n+=p:p!=="0"||h!=="9"?n+=Qtt(p,h,r):c++}return c&&(n+=r.shorthand===!0?"\\d":"[0-9]"),{pattern:n,count:[c],digits:a}}function Poe(t,e,r,s){let a=btt(t,e),n=[],c=t,f;for(let p=0;p<a.length;p++){let h=a[p],E=Ptt(String(c),String(h),s),C="";if(!r.isPadded&&f&&f.pattern===E.pattern){f.count.length>1&&f.count.pop(),f.count.push(E.count[0]),f.string=f.pattern+Toe(f.count),c=h+1;continue}r.isPadded&&(C=Ttt(h,r,s)),E.string=C+E.pattern+Toe(E.count),n.push(E),c=h+1,f=E}return n}function a4(t,e,r,s,a){let n=[];for(let c of t){let{string:f}=c;!s&&!xoe(e,"string",f)&&n.push(r+f),s&&xoe(e,"string",f)&&n.push(r+f)}return n}function xtt(t,e){let r=[];for(let s=0;s<t.length;s++)r.push([t[s],e[s]]);return r}function ktt(t,e){return t>e?1:e>t?-1:0}function xoe(t,e,r){return t.some(s=>s[e]===r)}function koe(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function Qoe(t,e){return t-t%Math.pow(10,e)}function Toe(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function Qtt(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function Roe(t){return/^-?(0+)\d/.test(t)}function Ttt(t,e,r){if(!e.isPadded)return t;let s=Math.abs(e.maxLen-String(t).length),a=r.relaxZeros!==!1;switch(s){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${s}}`:`0{${s}}`}}jd.cache={};jd.clearCache=()=>jd.cache={};Foe.exports=jd});var u4=L((rYt,qoe)=>{"use strict";var Rtt=Ie("util"),Moe=Noe(),Ooe=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),Ftt=t=>e=>t===!0?Number(e):String(e),l4=t=>typeof t=="number"||typeof t=="string"&&t!=="",yB=t=>Number.isInteger(+t),c4=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},Ntt=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,Ott=(t,e,r)=>{if(e>0){let s=t[0]==="-"?"-":"";s&&(t=t.slice(1)),t=s+t.padStart(s?e-1:e,"0")}return r===!1?String(t):t},Loe=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length<e;)t="0"+t;return r?"-"+t:t},Ltt=(t,e)=>{t.negatives.sort((c,f)=>c<f?-1:c>f?1:0),t.positives.sort((c,f)=>c<f?-1:c>f?1:0);let r=e.capture?"":"?:",s="",a="",n;return t.positives.length&&(s=t.positives.join("|")),t.negatives.length&&(a=`-(${r}${t.negatives.join("|")})`),s&&a?n=`${s}|${a}`:n=s||a,e.wrap?`(${r}${n})`:n},_oe=(t,e,r,s)=>{if(r)return Moe(t,e,{wrap:!1,...s});let a=String.fromCharCode(t);if(t===e)return a;let n=String.fromCharCode(e);return`[${a}-${n}]`},Uoe=(t,e,r)=>{if(Array.isArray(t)){let s=r.wrap===!0,a=r.capture?"":"?:";return s?`(${a}${t.join("|")})`:t.join("|")}return Moe(t,e,r)},Hoe=(...t)=>new RangeError("Invalid range arguments: "+Rtt.inspect(...t)),joe=(t,e,r)=>{if(r.strictRanges===!0)throw Hoe([t,e]);return[]},Mtt=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},_tt=(t,e,r=1,s={})=>{let a=Number(t),n=Number(e);if(!Number.isInteger(a)||!Number.isInteger(n)){if(s.strictRanges===!0)throw Hoe([t,e]);return[]}a===0&&(a=0),n===0&&(n=0);let c=a>n,f=String(t),p=String(e),h=String(r);r=Math.max(Math.abs(r),1);let E=c4(f)||c4(p)||c4(h),C=E?Math.max(f.length,p.length,h.length):0,S=E===!1&&Ntt(t,e,s)===!1,P=s.transform||Ftt(S);if(s.toRegex&&r===1)return _oe(Loe(t,C),Loe(e,C),!0,s);let I={negatives:[],positives:[]},R=W=>I[W<0?"negatives":"positives"].push(Math.abs(W)),N=[],U=0;for(;c?a>=n:a<=n;)s.toRegex===!0&&r>1?R(a):N.push(Ott(P(a,U),C,S)),a=c?a-r:a+r,U++;return s.toRegex===!0?r>1?Ltt(I,s):Uoe(N,null,{wrap:!1,...s}):N},Utt=(t,e,r=1,s={})=>{if(!yB(t)&&t.length>1||!yB(e)&&e.length>1)return joe(t,e,s);let a=s.transform||(S=>String.fromCharCode(S)),n=`${t}`.charCodeAt(0),c=`${e}`.charCodeAt(0),f=n>c,p=Math.min(n,c),h=Math.max(n,c);if(s.toRegex&&r===1)return _oe(p,h,!1,s);let E=[],C=0;for(;f?n>=c:n<=c;)E.push(a(n,C)),n=f?n-r:n+r,C++;return s.toRegex===!0?Uoe(E,null,{wrap:!1,options:s}):E},Ik=(t,e,r,s={})=>{if(e==null&&l4(t))return[t];if(!l4(t)||!l4(e))return joe(t,e,s);if(typeof r=="function")return Ik(t,e,1,{transform:r});if(Ooe(r))return Ik(t,e,0,r);let a={...s};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,yB(r)?yB(t)&&yB(e)?_tt(t,e,r,a):Utt(t,e,Math.max(Math.abs(r),1),a):r!=null&&!Ooe(r)?Mtt(r,a):Ik(t,e,1,r)};qoe.exports=Ik});var Yoe=L((nYt,Woe)=>{"use strict";var Htt=u4(),Goe=yk(),jtt=(t,e={})=>{let r=(s,a={})=>{let n=Goe.isInvalidBrace(a),c=s.invalid===!0&&e.escapeInvalid===!0,f=n===!0||c===!0,p=e.escapeInvalid===!0?"\\":"",h="";if(s.isOpen===!0||s.isClose===!0)return p+s.value;if(s.type==="open")return f?p+s.value:"(";if(s.type==="close")return f?p+s.value:")";if(s.type==="comma")return s.prev.type==="comma"?"":f?s.value:"|";if(s.value)return s.value;if(s.nodes&&s.ranges>0){let E=Goe.reduce(s.nodes),C=Htt(...E,{...e,wrap:!1,toRegex:!0});if(C.length!==0)return E.length>1&&C.length>1?`(${C})`:C}if(s.nodes)for(let E of s.nodes)h+=r(E,s);return h};return r(t)};Woe.exports=jtt});var Joe=L((iYt,Koe)=>{"use strict";var qtt=u4(),Voe=Ek(),QE=yk(),qd=(t="",e="",r=!1)=>{let s=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?QE.flatten(e).map(a=>`{${a}}`):e;for(let a of t)if(Array.isArray(a))for(let n of a)s.push(qd(n,e,r));else for(let n of e)r===!0&&typeof n=="string"&&(n=`{${n}}`),s.push(Array.isArray(n)?qd(a,n,r):a+n);return QE.flatten(s)},Gtt=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,s=(a,n={})=>{a.queue=[];let c=n,f=n.queue;for(;c.type!=="brace"&&c.type!=="root"&&c.parent;)c=c.parent,f=c.queue;if(a.invalid||a.dollar){f.push(qd(f.pop(),Voe(a,e)));return}if(a.type==="brace"&&a.invalid!==!0&&a.nodes.length===2){f.push(qd(f.pop(),["{}"]));return}if(a.nodes&&a.ranges>0){let C=QE.reduce(a.nodes);if(QE.exceedsLimit(...C,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let S=qtt(...C,e);S.length===0&&(S=Voe(a,e)),f.push(qd(f.pop(),S)),a.nodes=[];return}let p=QE.encloseBrace(a),h=a.queue,E=a;for(;E.type!=="brace"&&E.type!=="root"&&E.parent;)E=E.parent,h=E.queue;for(let C=0;C<a.nodes.length;C++){let S=a.nodes[C];if(S.type==="comma"&&a.type==="brace"){C===1&&h.push(""),h.push("");continue}if(S.type==="close"){f.push(qd(f.pop(),h,p));continue}if(S.value&&S.type!=="open"){h.push(qd(h.pop(),S.value));continue}S.nodes&&s(S,a)}return h};return QE.flatten(s(t))};Koe.exports=Gtt});var Zoe=L((sYt,zoe)=>{"use strict";zoe.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var rae=L((oYt,tae)=>{"use strict";var Wtt=Ek(),{MAX_LENGTH:Xoe,CHAR_BACKSLASH:f4,CHAR_BACKTICK:Ytt,CHAR_COMMA:Vtt,CHAR_DOT:Ktt,CHAR_LEFT_PARENTHESES:Jtt,CHAR_RIGHT_PARENTHESES:ztt,CHAR_LEFT_CURLY_BRACE:Ztt,CHAR_RIGHT_CURLY_BRACE:Xtt,CHAR_LEFT_SQUARE_BRACKET:$oe,CHAR_RIGHT_SQUARE_BRACKET:eae,CHAR_DOUBLE_QUOTE:$tt,CHAR_SINGLE_QUOTE:ert,CHAR_NO_BREAK_SPACE:trt,CHAR_ZERO_WIDTH_NOBREAK_SPACE:rrt}=Zoe(),nrt=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},s=typeof r.maxLength=="number"?Math.min(Xoe,r.maxLength):Xoe;if(t.length>s)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${s})`);let a={type:"root",input:t,nodes:[]},n=[a],c=a,f=a,p=0,h=t.length,E=0,C=0,S,P={},I=()=>t[E++],R=N=>{if(N.type==="text"&&f.type==="dot"&&(f.type="text"),f&&f.type==="text"&&N.type==="text"){f.value+=N.value;return}return c.nodes.push(N),N.parent=c,N.prev=f,f=N,N};for(R({type:"bos"});E<h;)if(c=n[n.length-1],S=I(),!(S===rrt||S===trt)){if(S===f4){R({type:"text",value:(e.keepEscaping?S:"")+I()});continue}if(S===eae){R({type:"text",value:"\\"+S});continue}if(S===$oe){p++;let N=!0,U;for(;E<h&&(U=I());){if(S+=U,U===$oe){p++;continue}if(U===f4){S+=I();continue}if(U===eae&&(p--,p===0))break}R({type:"text",value:S});continue}if(S===Jtt){c=R({type:"paren",nodes:[]}),n.push(c),R({type:"text",value:S});continue}if(S===ztt){if(c.type!=="paren"){R({type:"text",value:S});continue}c=n.pop(),R({type:"text",value:S}),c=n[n.length-1];continue}if(S===$tt||S===ert||S===Ytt){let N=S,U;for(e.keepQuotes!==!0&&(S="");E<h&&(U=I());){if(U===f4){S+=U+I();continue}if(U===N){e.keepQuotes===!0&&(S+=U);break}S+=U}R({type:"text",value:S});continue}if(S===Ztt){C++;let U={type:"brace",open:!0,close:!1,dollar:f.value&&f.value.slice(-1)==="$"||c.dollar===!0,depth:C,commas:0,ranges:0,nodes:[]};c=R(U),n.push(c),R({type:"open",value:S});continue}if(S===Xtt){if(c.type!=="brace"){R({type:"text",value:S});continue}let N="close";c=n.pop(),c.close=!0,R({type:N,value:S}),C--,c=n[n.length-1];continue}if(S===Vtt&&C>0){if(c.ranges>0){c.ranges=0;let N=c.nodes.shift();c.nodes=[N,{type:"text",value:Wtt(c)}]}R({type:"comma",value:S}),c.commas++;continue}if(S===Ktt&&C>0&&c.commas===0){let N=c.nodes;if(C===0||N.length===0){R({type:"text",value:S});continue}if(f.type==="dot"){if(c.range=[],f.value+=S,f.type="range",c.nodes.length!==3&&c.nodes.length!==5){c.invalid=!0,c.ranges=0,f.type="text";continue}c.ranges++,c.args=[];continue}if(f.type==="range"){N.pop();let U=N[N.length-1];U.value+=f.value+S,f=U,c.ranges--;continue}R({type:"dot",value:S});continue}R({type:"text",value:S})}do if(c=n.pop(),c.type!=="root"){c.nodes.forEach(W=>{W.nodes||(W.type==="open"&&(W.isOpen=!0),W.type==="close"&&(W.isClose=!0),W.nodes||(W.type="text"),W.invalid=!0)});let N=n[n.length-1],U=N.nodes.indexOf(c);N.nodes.splice(U,1,...c.nodes)}while(n.length>0);return R({type:"eos"}),a};tae.exports=nrt});var sae=L((aYt,iae)=>{"use strict";var nae=Ek(),irt=Yoe(),srt=Joe(),ort=rae(),ql=(t,e={})=>{let r=[];if(Array.isArray(t))for(let s of t){let a=ql.create(s,e);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(ql.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};ql.parse=(t,e={})=>ort(t,e);ql.stringify=(t,e={})=>nae(typeof t=="string"?ql.parse(t,e):t,e);ql.compile=(t,e={})=>(typeof t=="string"&&(t=ql.parse(t,e)),irt(t,e));ql.expand=(t,e={})=>{typeof t=="string"&&(t=ql.parse(t,e));let r=srt(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};ql.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?ql.compile(t,e):ql.expand(t,e);iae.exports=ql});var EB=L((lYt,uae)=>{"use strict";var art=Ie("path"),Kf="\\\\/",oae=`[^${Kf}]`,Pp="\\.",lrt="\\+",crt="\\?",Ck="\\/",urt="(?=.)",aae="[^/]",A4=`(?:${Ck}|$)`,lae=`(?:^|${Ck})`,p4=`${Pp}{1,2}${A4}`,frt=`(?!${Pp})`,Art=`(?!${lae}${p4})`,prt=`(?!${Pp}{0,1}${A4})`,hrt=`(?!${p4})`,grt=`[^.${Ck}]`,drt=`${aae}*?`,cae={DOT_LITERAL:Pp,PLUS_LITERAL:lrt,QMARK_LITERAL:crt,SLASH_LITERAL:Ck,ONE_CHAR:urt,QMARK:aae,END_ANCHOR:A4,DOTS_SLASH:p4,NO_DOT:frt,NO_DOTS:Art,NO_DOT_SLASH:prt,NO_DOTS_SLASH:hrt,QMARK_NO_DOT:grt,STAR:drt,START_ANCHOR:lae},mrt={...cae,SLASH_LITERAL:`[${Kf}]`,QMARK:oae,STAR:`${oae}*?`,DOTS_SLASH:`${Pp}{1,2}(?:[${Kf}]|$)`,NO_DOT:`(?!${Pp})`,NO_DOTS:`(?!(?:^|[${Kf}])${Pp}{1,2}(?:[${Kf}]|$))`,NO_DOT_SLASH:`(?!${Pp}{0,1}(?:[${Kf}]|$))`,NO_DOTS_SLASH:`(?!${Pp}{1,2}(?:[${Kf}]|$))`,QMARK_NO_DOT:`[^.${Kf}]`,START_ANCHOR:`(?:^|[${Kf}])`,END_ANCHOR:`(?:[${Kf}]|$)`},yrt={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};uae.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:yrt,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:art.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?mrt:cae}}});var IB=L(al=>{"use strict";var Ert=Ie("path"),Irt=process.platform==="win32",{REGEX_BACKSLASH:Crt,REGEX_REMOVE_BACKSLASH:wrt,REGEX_SPECIAL_CHARS:Brt,REGEX_SPECIAL_CHARS_GLOBAL:vrt}=EB();al.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);al.hasRegexChars=t=>Brt.test(t);al.isRegexChar=t=>t.length===1&&al.hasRegexChars(t);al.escapeRegex=t=>t.replace(vrt,"\\$1");al.toPosixSlashes=t=>t.replace(Crt,"/");al.removeBackslashes=t=>t.replace(wrt,e=>e==="\\"?"":e);al.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};al.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:Irt===!0||Ert.sep==="\\";al.escapeLast=(t,e,r)=>{let s=t.lastIndexOf(e,r);return s===-1?t:t[s-1]==="\\"?al.escapeLast(t,e,s-1):`${t.slice(0,s)}\\${t.slice(s)}`};al.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};al.wrapOutput=(t,e={},r={})=>{let s=r.contains?"":"^",a=r.contains?"":"$",n=`${s}(?:${t})${a}`;return e.negated===!0&&(n=`(?:^(?!${n}).*$)`),n}});var yae=L((uYt,mae)=>{"use strict";var fae=IB(),{CHAR_ASTERISK:h4,CHAR_AT:Srt,CHAR_BACKWARD_SLASH:CB,CHAR_COMMA:Drt,CHAR_DOT:g4,CHAR_EXCLAMATION_MARK:d4,CHAR_FORWARD_SLASH:dae,CHAR_LEFT_CURLY_BRACE:m4,CHAR_LEFT_PARENTHESES:y4,CHAR_LEFT_SQUARE_BRACKET:brt,CHAR_PLUS:Prt,CHAR_QUESTION_MARK:Aae,CHAR_RIGHT_CURLY_BRACE:xrt,CHAR_RIGHT_PARENTHESES:pae,CHAR_RIGHT_SQUARE_BRACKET:krt}=EB(),hae=t=>t===dae||t===CB,gae=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},Qrt=(t,e)=>{let r=e||{},s=t.length-1,a=r.parts===!0||r.scanToEnd===!0,n=[],c=[],f=[],p=t,h=-1,E=0,C=0,S=!1,P=!1,I=!1,R=!1,N=!1,U=!1,W=!1,te=!1,ie=!1,Ae=!1,ce=0,me,pe,Be={value:"",depth:0,isGlob:!1},Ce=()=>h>=s,g=()=>p.charCodeAt(h+1),we=()=>(me=pe,p.charCodeAt(++h));for(;h<s;){pe=we();let De;if(pe===CB){W=Be.backslashes=!0,pe=we(),pe===m4&&(U=!0);continue}if(U===!0||pe===m4){for(ce++;Ce()!==!0&&(pe=we());){if(pe===CB){W=Be.backslashes=!0,we();continue}if(pe===m4){ce++;continue}if(U!==!0&&pe===g4&&(pe=we())===g4){if(S=Be.isBrace=!0,I=Be.isGlob=!0,Ae=!0,a===!0)continue;break}if(U!==!0&&pe===Drt){if(S=Be.isBrace=!0,I=Be.isGlob=!0,Ae=!0,a===!0)continue;break}if(pe===xrt&&(ce--,ce===0)){U=!1,S=Be.isBrace=!0,Ae=!0;break}}if(a===!0)continue;break}if(pe===dae){if(n.push(h),c.push(Be),Be={value:"",depth:0,isGlob:!1},Ae===!0)continue;if(me===g4&&h===E+1){E+=2;continue}C=h+1;continue}if(r.noext!==!0&&(pe===Prt||pe===Srt||pe===h4||pe===Aae||pe===d4)===!0&&g()===y4){if(I=Be.isGlob=!0,R=Be.isExtglob=!0,Ae=!0,pe===d4&&h===E&&(ie=!0),a===!0){for(;Ce()!==!0&&(pe=we());){if(pe===CB){W=Be.backslashes=!0,pe=we();continue}if(pe===pae){I=Be.isGlob=!0,Ae=!0;break}}continue}break}if(pe===h4){if(me===h4&&(N=Be.isGlobstar=!0),I=Be.isGlob=!0,Ae=!0,a===!0)continue;break}if(pe===Aae){if(I=Be.isGlob=!0,Ae=!0,a===!0)continue;break}if(pe===brt){for(;Ce()!==!0&&(De=we());){if(De===CB){W=Be.backslashes=!0,we();continue}if(De===krt){P=Be.isBracket=!0,I=Be.isGlob=!0,Ae=!0;break}}if(a===!0)continue;break}if(r.nonegate!==!0&&pe===d4&&h===E){te=Be.negated=!0,E++;continue}if(r.noparen!==!0&&pe===y4){if(I=Be.isGlob=!0,a===!0){for(;Ce()!==!0&&(pe=we());){if(pe===y4){W=Be.backslashes=!0,pe=we();continue}if(pe===pae){Ae=!0;break}}continue}break}if(I===!0){if(Ae=!0,a===!0)continue;break}}r.noext===!0&&(R=!1,I=!1);let ye=p,fe="",se="";E>0&&(fe=p.slice(0,E),p=p.slice(E),C-=E),ye&&I===!0&&C>0?(ye=p.slice(0,C),se=p.slice(C)):I===!0?(ye="",se=p):ye=p,ye&&ye!==""&&ye!=="/"&&ye!==p&&hae(ye.charCodeAt(ye.length-1))&&(ye=ye.slice(0,-1)),r.unescape===!0&&(se&&(se=fae.removeBackslashes(se)),ye&&W===!0&&(ye=fae.removeBackslashes(ye)));let X={prefix:fe,input:t,start:E,base:ye,glob:se,isBrace:S,isBracket:P,isGlob:I,isExtglob:R,isGlobstar:N,negated:te,negatedExtglob:ie};if(r.tokens===!0&&(X.maxDepth=0,hae(pe)||c.push(Be),X.tokens=c),r.parts===!0||r.tokens===!0){let De;for(let Re=0;Re<n.length;Re++){let dt=De?De+1:E,j=n[Re],rt=t.slice(dt,j);r.tokens&&(Re===0&&E!==0?(c[Re].isPrefix=!0,c[Re].value=fe):c[Re].value=rt,gae(c[Re]),X.maxDepth+=c[Re].depth),(Re!==0||rt!=="")&&f.push(rt),De=j}if(De&&De+1<t.length){let Re=t.slice(De+1);f.push(Re),r.tokens&&(c[c.length-1].value=Re,gae(c[c.length-1]),X.maxDepth+=c[c.length-1].depth)}X.slashes=n,X.parts=f}return X};mae.exports=Qrt});var Cae=L((fYt,Iae)=>{"use strict";var wk=EB(),Gl=IB(),{MAX_LENGTH:Bk,POSIX_REGEX_SOURCE:Trt,REGEX_NON_SPECIAL_CHARS:Rrt,REGEX_SPECIAL_CHARS_BACKREF:Frt,REPLACEMENTS:Eae}=wk,Nrt=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch{return t.map(a=>Gl.escapeRegex(a)).join("..")}return r},TE=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,E4=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=Eae[t]||t;let r={...e},s=typeof r.maxLength=="number"?Math.min(Bk,r.maxLength):Bk,a=t.length;if(a>s)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${s}`);let n={type:"bos",value:"",output:r.prepend||""},c=[n],f=r.capture?"":"?:",p=Gl.isWindows(e),h=wk.globChars(p),E=wk.extglobChars(h),{DOT_LITERAL:C,PLUS_LITERAL:S,SLASH_LITERAL:P,ONE_CHAR:I,DOTS_SLASH:R,NO_DOT:N,NO_DOT_SLASH:U,NO_DOTS_SLASH:W,QMARK:te,QMARK_NO_DOT:ie,STAR:Ae,START_ANCHOR:ce}=h,me=x=>`(${f}(?:(?!${ce}${x.dot?R:C}).)*?)`,pe=r.dot?"":N,Be=r.dot?te:ie,Ce=r.bash===!0?me(r):Ae;r.capture&&(Ce=`(${Ce})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let g={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:c};t=Gl.removePrefix(t,g),a=t.length;let we=[],ye=[],fe=[],se=n,X,De=()=>g.index===a-1,Re=g.peek=(x=1)=>t[g.index+x],dt=g.advance=()=>t[++g.index]||"",j=()=>t.slice(g.index+1),rt=(x="",w=0)=>{g.consumed+=x,g.index+=w},Fe=x=>{g.output+=x.output!=null?x.output:x.value,rt(x.value)},Ne=()=>{let x=1;for(;Re()==="!"&&(Re(2)!=="("||Re(3)==="?");)dt(),g.start++,x++;return x%2===0?!1:(g.negated=!0,g.start++,!0)},Pe=x=>{g[x]++,fe.push(x)},Ye=x=>{g[x]--,fe.pop()},ke=x=>{if(se.type==="globstar"){let w=g.braces>0&&(x.type==="comma"||x.type==="brace"),b=x.extglob===!0||we.length&&(x.type==="pipe"||x.type==="paren");x.type!=="slash"&&x.type!=="paren"&&!w&&!b&&(g.output=g.output.slice(0,-se.output.length),se.type="star",se.value="*",se.output=Ce,g.output+=se.output)}if(we.length&&x.type!=="paren"&&(we[we.length-1].inner+=x.value),(x.value||x.output)&&Fe(x),se&&se.type==="text"&&x.type==="text"){se.value+=x.value,se.output=(se.output||"")+x.value;return}x.prev=se,c.push(x),se=x},it=(x,w)=>{let b={...E[w],conditions:1,inner:""};b.prev=se,b.parens=g.parens,b.output=g.output;let y=(r.capture?"(":"")+b.open;Pe("parens"),ke({type:x,value:w,output:g.output?"":I}),ke({type:"paren",extglob:!0,value:dt(),output:y}),we.push(b)},_e=x=>{let w=x.close+(r.capture?")":""),b;if(x.type==="negate"){let y=Ce;if(x.inner&&x.inner.length>1&&x.inner.includes("/")&&(y=me(r)),(y!==Ce||De()||/^\)+$/.test(j()))&&(w=x.close=`)$))${y}`),x.inner.includes("*")&&(b=j())&&/^\.[^\\/.]+$/.test(b)){let F=E4(b,{...e,fastpaths:!1}).output;w=x.close=`)${F})${y})`}x.prev.type==="bos"&&(g.negatedExtglob=!0)}ke({type:"paren",extglob:!0,value:X,output:w}),Ye("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let x=!1,w=t.replace(Frt,(b,y,F,z,Z,$)=>z==="\\"?(x=!0,b):z==="?"?y?y+z+(Z?te.repeat(Z.length):""):$===0?Be+(Z?te.repeat(Z.length):""):te.repeat(F.length):z==="."?C.repeat(F.length):z==="*"?y?y+z+(Z?Ce:""):Ce:y?b:`\\${b}`);return x===!0&&(r.unescape===!0?w=w.replace(/\\/g,""):w=w.replace(/\\+/g,b=>b.length%2===0?"\\\\":b?"\\":"")),w===t&&r.contains===!0?(g.output=t,g):(g.output=Gl.wrapOutput(w,g,e),g)}for(;!De();){if(X=dt(),X==="\0")continue;if(X==="\\"){let b=Re();if(b==="/"&&r.bash!==!0||b==="."||b===";")continue;if(!b){X+="\\",ke({type:"text",value:X});continue}let y=/^\\+/.exec(j()),F=0;if(y&&y[0].length>2&&(F=y[0].length,g.index+=F,F%2!==0&&(X+="\\")),r.unescape===!0?X=dt():X+=dt(),g.brackets===0){ke({type:"text",value:X});continue}}if(g.brackets>0&&(X!=="]"||se.value==="["||se.value==="[^")){if(r.posix!==!1&&X===":"){let b=se.value.slice(1);if(b.includes("[")&&(se.posix=!0,b.includes(":"))){let y=se.value.lastIndexOf("["),F=se.value.slice(0,y),z=se.value.slice(y+2),Z=Trt[z];if(Z){se.value=F+Z,g.backtrack=!0,dt(),!n.output&&c.indexOf(se)===1&&(n.output=I);continue}}}(X==="["&&Re()!==":"||X==="-"&&Re()==="]")&&(X=`\\${X}`),X==="]"&&(se.value==="["||se.value==="[^")&&(X=`\\${X}`),r.posix===!0&&X==="!"&&se.value==="["&&(X="^"),se.value+=X,Fe({value:X});continue}if(g.quotes===1&&X!=='"'){X=Gl.escapeRegex(X),se.value+=X,Fe({value:X});continue}if(X==='"'){g.quotes=g.quotes===1?0:1,r.keepQuotes===!0&&ke({type:"text",value:X});continue}if(X==="("){Pe("parens"),ke({type:"paren",value:X});continue}if(X===")"){if(g.parens===0&&r.strictBrackets===!0)throw new SyntaxError(TE("opening","("));let b=we[we.length-1];if(b&&g.parens===b.parens+1){_e(we.pop());continue}ke({type:"paren",value:X,output:g.parens?")":"\\)"}),Ye("parens");continue}if(X==="["){if(r.nobracket===!0||!j().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(TE("closing","]"));X=`\\${X}`}else Pe("brackets");ke({type:"bracket",value:X});continue}if(X==="]"){if(r.nobracket===!0||se&&se.type==="bracket"&&se.value.length===1){ke({type:"text",value:X,output:`\\${X}`});continue}if(g.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(TE("opening","["));ke({type:"text",value:X,output:`\\${X}`});continue}Ye("brackets");let b=se.value.slice(1);if(se.posix!==!0&&b[0]==="^"&&!b.includes("/")&&(X=`/${X}`),se.value+=X,Fe({value:X}),r.literalBrackets===!1||Gl.hasRegexChars(b))continue;let y=Gl.escapeRegex(se.value);if(g.output=g.output.slice(0,-se.value.length),r.literalBrackets===!0){g.output+=y,se.value=y;continue}se.value=`(${f}${y}|${se.value})`,g.output+=se.value;continue}if(X==="{"&&r.nobrace!==!0){Pe("braces");let b={type:"brace",value:X,output:"(",outputIndex:g.output.length,tokensIndex:g.tokens.length};ye.push(b),ke(b);continue}if(X==="}"){let b=ye[ye.length-1];if(r.nobrace===!0||!b){ke({type:"text",value:X,output:X});continue}let y=")";if(b.dots===!0){let F=c.slice(),z=[];for(let Z=F.length-1;Z>=0&&(c.pop(),F[Z].type!=="brace");Z--)F[Z].type!=="dots"&&z.unshift(F[Z].value);y=Nrt(z,r),g.backtrack=!0}if(b.comma!==!0&&b.dots!==!0){let F=g.output.slice(0,b.outputIndex),z=g.tokens.slice(b.tokensIndex);b.value=b.output="\\{",X=y="\\}",g.output=F;for(let Z of z)g.output+=Z.output||Z.value}ke({type:"brace",value:X,output:y}),Ye("braces"),ye.pop();continue}if(X==="|"){we.length>0&&we[we.length-1].conditions++,ke({type:"text",value:X});continue}if(X===","){let b=X,y=ye[ye.length-1];y&&fe[fe.length-1]==="braces"&&(y.comma=!0,b="|"),ke({type:"comma",value:X,output:b});continue}if(X==="/"){if(se.type==="dot"&&g.index===g.start+1){g.start=g.index+1,g.consumed="",g.output="",c.pop(),se=n;continue}ke({type:"slash",value:X,output:P});continue}if(X==="."){if(g.braces>0&&se.type==="dot"){se.value==="."&&(se.output=C);let b=ye[ye.length-1];se.type="dots",se.output+=X,se.value+=X,b.dots=!0;continue}if(g.braces+g.parens===0&&se.type!=="bos"&&se.type!=="slash"){ke({type:"text",value:X,output:C});continue}ke({type:"dot",value:X,output:C});continue}if(X==="?"){if(!(se&&se.value==="(")&&r.noextglob!==!0&&Re()==="("&&Re(2)!=="?"){it("qmark",X);continue}if(se&&se.type==="paren"){let y=Re(),F=X;if(y==="<"&&!Gl.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(se.value==="("&&!/[!=<:]/.test(y)||y==="<"&&!/<([!=]|\w+>)/.test(j()))&&(F=`\\${X}`),ke({type:"text",value:X,output:F});continue}if(r.dot!==!0&&(se.type==="slash"||se.type==="bos")){ke({type:"qmark",value:X,output:ie});continue}ke({type:"qmark",value:X,output:te});continue}if(X==="!"){if(r.noextglob!==!0&&Re()==="("&&(Re(2)!=="?"||!/[!=<:]/.test(Re(3)))){it("negate",X);continue}if(r.nonegate!==!0&&g.index===0){Ne();continue}}if(X==="+"){if(r.noextglob!==!0&&Re()==="("&&Re(2)!=="?"){it("plus",X);continue}if(se&&se.value==="("||r.regex===!1){ke({type:"plus",value:X,output:S});continue}if(se&&(se.type==="bracket"||se.type==="paren"||se.type==="brace")||g.parens>0){ke({type:"plus",value:X});continue}ke({type:"plus",value:S});continue}if(X==="@"){if(r.noextglob!==!0&&Re()==="("&&Re(2)!=="?"){ke({type:"at",extglob:!0,value:X,output:""});continue}ke({type:"text",value:X});continue}if(X!=="*"){(X==="$"||X==="^")&&(X=`\\${X}`);let b=Rrt.exec(j());b&&(X+=b[0],g.index+=b[0].length),ke({type:"text",value:X});continue}if(se&&(se.type==="globstar"||se.star===!0)){se.type="star",se.star=!0,se.value+=X,se.output=Ce,g.backtrack=!0,g.globstar=!0,rt(X);continue}let x=j();if(r.noextglob!==!0&&/^\([^?]/.test(x)){it("star",X);continue}if(se.type==="star"){if(r.noglobstar===!0){rt(X);continue}let b=se.prev,y=b.prev,F=b.type==="slash"||b.type==="bos",z=y&&(y.type==="star"||y.type==="globstar");if(r.bash===!0&&(!F||x[0]&&x[0]!=="/")){ke({type:"star",value:X,output:""});continue}let Z=g.braces>0&&(b.type==="comma"||b.type==="brace"),$=we.length&&(b.type==="pipe"||b.type==="paren");if(!F&&b.type!=="paren"&&!Z&&!$){ke({type:"star",value:X,output:""});continue}for(;x.slice(0,3)==="/**";){let oe=t[g.index+4];if(oe&&oe!=="/")break;x=x.slice(3),rt("/**",3)}if(b.type==="bos"&&De()){se.type="globstar",se.value+=X,se.output=me(r),g.output=se.output,g.globstar=!0,rt(X);continue}if(b.type==="slash"&&b.prev.type!=="bos"&&!z&&De()){g.output=g.output.slice(0,-(b.output+se.output).length),b.output=`(?:${b.output}`,se.type="globstar",se.output=me(r)+(r.strictSlashes?")":"|$)"),se.value+=X,g.globstar=!0,g.output+=b.output+se.output,rt(X);continue}if(b.type==="slash"&&b.prev.type!=="bos"&&x[0]==="/"){let oe=x[1]!==void 0?"|$":"";g.output=g.output.slice(0,-(b.output+se.output).length),b.output=`(?:${b.output}`,se.type="globstar",se.output=`${me(r)}${P}|${P}${oe})`,se.value+=X,g.output+=b.output+se.output,g.globstar=!0,rt(X+dt()),ke({type:"slash",value:"/",output:""});continue}if(b.type==="bos"&&x[0]==="/"){se.type="globstar",se.value+=X,se.output=`(?:^|${P}|${me(r)}${P})`,g.output=se.output,g.globstar=!0,rt(X+dt()),ke({type:"slash",value:"/",output:""});continue}g.output=g.output.slice(0,-se.output.length),se.type="globstar",se.output=me(r),se.value+=X,g.output+=se.output,g.globstar=!0,rt(X);continue}let w={type:"star",value:X,output:Ce};if(r.bash===!0){w.output=".*?",(se.type==="bos"||se.type==="slash")&&(w.output=pe+w.output),ke(w);continue}if(se&&(se.type==="bracket"||se.type==="paren")&&r.regex===!0){w.output=X,ke(w);continue}(g.index===g.start||se.type==="slash"||se.type==="dot")&&(se.type==="dot"?(g.output+=U,se.output+=U):r.dot===!0?(g.output+=W,se.output+=W):(g.output+=pe,se.output+=pe),Re()!=="*"&&(g.output+=I,se.output+=I)),ke(w)}for(;g.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(TE("closing","]"));g.output=Gl.escapeLast(g.output,"["),Ye("brackets")}for(;g.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(TE("closing",")"));g.output=Gl.escapeLast(g.output,"("),Ye("parens")}for(;g.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(TE("closing","}"));g.output=Gl.escapeLast(g.output,"{"),Ye("braces")}if(r.strictSlashes!==!0&&(se.type==="star"||se.type==="bracket")&&ke({type:"maybe_slash",value:"",output:`${P}?`}),g.backtrack===!0){g.output="";for(let x of g.tokens)g.output+=x.output!=null?x.output:x.value,x.suffix&&(g.output+=x.suffix)}return g};E4.fastpaths=(t,e)=>{let r={...e},s=typeof r.maxLength=="number"?Math.min(Bk,r.maxLength):Bk,a=t.length;if(a>s)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${s}`);t=Eae[t]||t;let n=Gl.isWindows(e),{DOT_LITERAL:c,SLASH_LITERAL:f,ONE_CHAR:p,DOTS_SLASH:h,NO_DOT:E,NO_DOTS:C,NO_DOTS_SLASH:S,STAR:P,START_ANCHOR:I}=wk.globChars(n),R=r.dot?C:E,N=r.dot?S:E,U=r.capture?"":"?:",W={negated:!1,prefix:""},te=r.bash===!0?".*?":P;r.capture&&(te=`(${te})`);let ie=pe=>pe.noglobstar===!0?te:`(${U}(?:(?!${I}${pe.dot?h:c}).)*?)`,Ae=pe=>{switch(pe){case"*":return`${R}${p}${te}`;case".*":return`${c}${p}${te}`;case"*.*":return`${R}${te}${c}${p}${te}`;case"*/*":return`${R}${te}${f}${p}${N}${te}`;case"**":return R+ie(r);case"**/*":return`(?:${R}${ie(r)}${f})?${N}${p}${te}`;case"**/*.*":return`(?:${R}${ie(r)}${f})?${N}${te}${c}${p}${te}`;case"**/.*":return`(?:${R}${ie(r)}${f})?${c}${p}${te}`;default:{let Be=/^(.*?)\.(\w+)$/.exec(pe);if(!Be)return;let Ce=Ae(Be[1]);return Ce?Ce+c+Be[2]:void 0}}},ce=Gl.removePrefix(t,W),me=Ae(ce);return me&&r.strictSlashes!==!0&&(me+=`${f}?`),me};Iae.exports=E4});var Bae=L((AYt,wae)=>{"use strict";var Ort=Ie("path"),Lrt=yae(),I4=Cae(),C4=IB(),Mrt=EB(),_rt=t=>t&&typeof t=="object"&&!Array.isArray(t),$i=(t,e,r=!1)=>{if(Array.isArray(t)){let E=t.map(S=>$i(S,e,r));return S=>{for(let P of E){let I=P(S);if(I)return I}return!1}}let s=_rt(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!s)throw new TypeError("Expected pattern to be a non-empty string");let a=e||{},n=C4.isWindows(e),c=s?$i.compileRe(t,e):$i.makeRe(t,e,!1,!0),f=c.state;delete c.state;let p=()=>!1;if(a.ignore){let E={...e,ignore:null,onMatch:null,onResult:null};p=$i(a.ignore,E,r)}let h=(E,C=!1)=>{let{isMatch:S,match:P,output:I}=$i.test(E,c,e,{glob:t,posix:n}),R={glob:t,state:f,regex:c,posix:n,input:E,output:I,match:P,isMatch:S};return typeof a.onResult=="function"&&a.onResult(R),S===!1?(R.isMatch=!1,C?R:!1):p(E)?(typeof a.onIgnore=="function"&&a.onIgnore(R),R.isMatch=!1,C?R:!1):(typeof a.onMatch=="function"&&a.onMatch(R),C?R:!0)};return r&&(h.state=f),h};$i.test=(t,e,r,{glob:s,posix:a}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let n=r||{},c=n.format||(a?C4.toPosixSlashes:null),f=t===s,p=f&&c?c(t):t;return f===!1&&(p=c?c(t):t,f=p===s),(f===!1||n.capture===!0)&&(n.matchBase===!0||n.basename===!0?f=$i.matchBase(t,e,r,a):f=e.exec(p)),{isMatch:!!f,match:f,output:p}};$i.matchBase=(t,e,r,s=C4.isWindows(r))=>(e instanceof RegExp?e:$i.makeRe(e,r)).test(Ort.basename(t));$i.isMatch=(t,e,r)=>$i(e,r)(t);$i.parse=(t,e)=>Array.isArray(t)?t.map(r=>$i.parse(r,e)):I4(t,{...e,fastpaths:!1});$i.scan=(t,e)=>Lrt(t,e);$i.compileRe=(t,e,r=!1,s=!1)=>{if(r===!0)return t.output;let a=e||{},n=a.contains?"":"^",c=a.contains?"":"$",f=`${n}(?:${t.output})${c}`;t&&t.negated===!0&&(f=`^(?!${f}).*$`);let p=$i.toRegex(f,e);return s===!0&&(p.state=t),p};$i.makeRe=(t,e={},r=!1,s=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(a.output=I4.fastpaths(t,e)),a.output||(a=I4(t,e)),$i.compileRe(a,e,r,s)};$i.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};$i.constants=Mrt;wae.exports=$i});var Sae=L((pYt,vae)=>{"use strict";vae.exports=Bae()});var Sa=L((hYt,xae)=>{"use strict";var bae=Ie("util"),Pae=sae(),Jf=Sae(),w4=IB(),Dae=t=>t===""||t==="./",Qi=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let s=new Set,a=new Set,n=new Set,c=0,f=E=>{n.add(E.output),r&&r.onResult&&r.onResult(E)};for(let E=0;E<e.length;E++){let C=Jf(String(e[E]),{...r,onResult:f},!0),S=C.state.negated||C.state.negatedExtglob;S&&c++;for(let P of t){let I=C(P,!0);(S?!I.isMatch:I.isMatch)&&(S?s.add(I.output):(s.delete(I.output),a.add(I.output)))}}let h=(c===e.length?[...n]:[...a]).filter(E=>!s.has(E));if(r&&h.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(E=>E.replace(/\\/g,"")):e}return h};Qi.match=Qi;Qi.matcher=(t,e)=>Jf(t,e);Qi.isMatch=(t,e,r)=>Jf(e,r)(t);Qi.any=Qi.isMatch;Qi.not=(t,e,r={})=>{e=[].concat(e).map(String);let s=new Set,a=[],n=f=>{r.onResult&&r.onResult(f),a.push(f.output)},c=new Set(Qi(t,e,{...r,onResult:n}));for(let f of a)c.has(f)||s.add(f);return[...s]};Qi.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${bae.inspect(t)}"`);if(Array.isArray(e))return e.some(s=>Qi.contains(t,s,r));if(typeof e=="string"){if(Dae(t)||Dae(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return Qi.isMatch(t,e,{...r,contains:!0})};Qi.matchKeys=(t,e,r)=>{if(!w4.isObject(t))throw new TypeError("Expected the first argument to be an object");let s=Qi(Object.keys(t),e,r),a={};for(let n of s)a[n]=t[n];return a};Qi.some=(t,e,r)=>{let s=[].concat(t);for(let a of[].concat(e)){let n=Jf(String(a),r);if(s.some(c=>n(c)))return!0}return!1};Qi.every=(t,e,r)=>{let s=[].concat(t);for(let a of[].concat(e)){let n=Jf(String(a),r);if(!s.every(c=>n(c)))return!1}return!0};Qi.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${bae.inspect(t)}"`);return[].concat(e).every(s=>Jf(s,r)(t))};Qi.capture=(t,e,r)=>{let s=w4.isWindows(r),n=Jf.makeRe(String(t),{...r,capture:!0}).exec(s?w4.toPosixSlashes(e):e);if(n)return n.slice(1).map(c=>c===void 0?"":c)};Qi.makeRe=(...t)=>Jf.makeRe(...t);Qi.scan=(...t)=>Jf.scan(...t);Qi.parse=(t,e)=>{let r=[];for(let s of[].concat(t||[]))for(let a of Pae(String(s),e))r.push(Jf.parse(a,e));return r};Qi.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(t)?[t]:Pae(t,e)};Qi.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return Qi.braces(t,{...e,expand:!0})};xae.exports=Qi});var Qae=L((gYt,kae)=>{"use strict";kae.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var vk=L((dYt,Tae)=>{"use strict";var Urt=Qae();Tae.exports=t=>typeof t=="string"?t.replace(Urt(),""):t});var Fae=L((mYt,Rae)=>{function Hrt(){this.__data__=[],this.size=0}Rae.exports=Hrt});var RE=L((yYt,Nae)=>{function jrt(t,e){return t===e||t!==t&&e!==e}Nae.exports=jrt});var wB=L((EYt,Oae)=>{var qrt=RE();function Grt(t,e){for(var r=t.length;r--;)if(qrt(t[r][0],e))return r;return-1}Oae.exports=Grt});var Mae=L((IYt,Lae)=>{var Wrt=wB(),Yrt=Array.prototype,Vrt=Yrt.splice;function Krt(t){var e=this.__data__,r=Wrt(e,t);if(r<0)return!1;var s=e.length-1;return r==s?e.pop():Vrt.call(e,r,1),--this.size,!0}Lae.exports=Krt});var Uae=L((CYt,_ae)=>{var Jrt=wB();function zrt(t){var e=this.__data__,r=Jrt(e,t);return r<0?void 0:e[r][1]}_ae.exports=zrt});var jae=L((wYt,Hae)=>{var Zrt=wB();function Xrt(t){return Zrt(this.__data__,t)>-1}Hae.exports=Xrt});var Gae=L((BYt,qae)=>{var $rt=wB();function ent(t,e){var r=this.__data__,s=$rt(r,t);return s<0?(++this.size,r.push([t,e])):r[s][1]=e,this}qae.exports=ent});var BB=L((vYt,Wae)=>{var tnt=Fae(),rnt=Mae(),nnt=Uae(),int=jae(),snt=Gae();function FE(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var s=t[e];this.set(s[0],s[1])}}FE.prototype.clear=tnt;FE.prototype.delete=rnt;FE.prototype.get=nnt;FE.prototype.has=int;FE.prototype.set=snt;Wae.exports=FE});var Vae=L((SYt,Yae)=>{var ont=BB();function ant(){this.__data__=new ont,this.size=0}Yae.exports=ant});var Jae=L((DYt,Kae)=>{function lnt(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}Kae.exports=lnt});var Zae=L((bYt,zae)=>{function cnt(t){return this.__data__.get(t)}zae.exports=cnt});var $ae=L((PYt,Xae)=>{function unt(t){return this.__data__.has(t)}Xae.exports=unt});var B4=L((xYt,ele)=>{var fnt=typeof global=="object"&&global&&global.Object===Object&&global;ele.exports=fnt});var Pc=L((kYt,tle)=>{var Ant=B4(),pnt=typeof self=="object"&&self&&self.Object===Object&&self,hnt=Ant||pnt||Function("return this")();tle.exports=hnt});var Gd=L((QYt,rle)=>{var gnt=Pc(),dnt=gnt.Symbol;rle.exports=dnt});var ole=L((TYt,sle)=>{var nle=Gd(),ile=Object.prototype,mnt=ile.hasOwnProperty,ynt=ile.toString,vB=nle?nle.toStringTag:void 0;function Ent(t){var e=mnt.call(t,vB),r=t[vB];try{t[vB]=void 0;var s=!0}catch{}var a=ynt.call(t);return s&&(e?t[vB]=r:delete t[vB]),a}sle.exports=Ent});var lle=L((RYt,ale)=>{var Int=Object.prototype,Cnt=Int.toString;function wnt(t){return Cnt.call(t)}ale.exports=wnt});var Wd=L((FYt,fle)=>{var cle=Gd(),Bnt=ole(),vnt=lle(),Snt="[object Null]",Dnt="[object Undefined]",ule=cle?cle.toStringTag:void 0;function bnt(t){return t==null?t===void 0?Dnt:Snt:ule&&ule in Object(t)?Bnt(t):vnt(t)}fle.exports=bnt});var Wl=L((NYt,Ale)=>{function Pnt(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}Ale.exports=Pnt});var Sk=L((OYt,ple)=>{var xnt=Wd(),knt=Wl(),Qnt="[object AsyncFunction]",Tnt="[object Function]",Rnt="[object GeneratorFunction]",Fnt="[object Proxy]";function Nnt(t){if(!knt(t))return!1;var e=xnt(t);return e==Tnt||e==Rnt||e==Qnt||e==Fnt}ple.exports=Nnt});var gle=L((LYt,hle)=>{var Ont=Pc(),Lnt=Ont["__core-js_shared__"];hle.exports=Lnt});var yle=L((MYt,mle)=>{var v4=gle(),dle=function(){var t=/[^.]+$/.exec(v4&&v4.keys&&v4.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function Mnt(t){return!!dle&&dle in t}mle.exports=Mnt});var S4=L((_Yt,Ele)=>{var _nt=Function.prototype,Unt=_nt.toString;function Hnt(t){if(t!=null){try{return Unt.call(t)}catch{}try{return t+""}catch{}}return""}Ele.exports=Hnt});var Cle=L((UYt,Ile)=>{var jnt=Sk(),qnt=yle(),Gnt=Wl(),Wnt=S4(),Ynt=/[\\^$.*+?()[\]{}|]/g,Vnt=/^\[object .+?Constructor\]$/,Knt=Function.prototype,Jnt=Object.prototype,znt=Knt.toString,Znt=Jnt.hasOwnProperty,Xnt=RegExp("^"+znt.call(Znt).replace(Ynt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function $nt(t){if(!Gnt(t)||qnt(t))return!1;var e=jnt(t)?Xnt:Vnt;return e.test(Wnt(t))}Ile.exports=$nt});var Ble=L((HYt,wle)=>{function eit(t,e){return t?.[e]}wle.exports=eit});var f0=L((jYt,vle)=>{var tit=Cle(),rit=Ble();function nit(t,e){var r=rit(t,e);return tit(r)?r:void 0}vle.exports=nit});var Dk=L((qYt,Sle)=>{var iit=f0(),sit=Pc(),oit=iit(sit,"Map");Sle.exports=oit});var SB=L((GYt,Dle)=>{var ait=f0(),lit=ait(Object,"create");Dle.exports=lit});var xle=L((WYt,Ple)=>{var ble=SB();function cit(){this.__data__=ble?ble(null):{},this.size=0}Ple.exports=cit});var Qle=L((YYt,kle)=>{function uit(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}kle.exports=uit});var Rle=L((VYt,Tle)=>{var fit=SB(),Ait="__lodash_hash_undefined__",pit=Object.prototype,hit=pit.hasOwnProperty;function git(t){var e=this.__data__;if(fit){var r=e[t];return r===Ait?void 0:r}return hit.call(e,t)?e[t]:void 0}Tle.exports=git});var Nle=L((KYt,Fle)=>{var dit=SB(),mit=Object.prototype,yit=mit.hasOwnProperty;function Eit(t){var e=this.__data__;return dit?e[t]!==void 0:yit.call(e,t)}Fle.exports=Eit});var Lle=L((JYt,Ole)=>{var Iit=SB(),Cit="__lodash_hash_undefined__";function wit(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Iit&&e===void 0?Cit:e,this}Ole.exports=wit});var _le=L((zYt,Mle)=>{var Bit=xle(),vit=Qle(),Sit=Rle(),Dit=Nle(),bit=Lle();function NE(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var s=t[e];this.set(s[0],s[1])}}NE.prototype.clear=Bit;NE.prototype.delete=vit;NE.prototype.get=Sit;NE.prototype.has=Dit;NE.prototype.set=bit;Mle.exports=NE});var jle=L((ZYt,Hle)=>{var Ule=_le(),Pit=BB(),xit=Dk();function kit(){this.size=0,this.__data__={hash:new Ule,map:new(xit||Pit),string:new Ule}}Hle.exports=kit});var Gle=L((XYt,qle)=>{function Qit(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}qle.exports=Qit});var DB=L(($Yt,Wle)=>{var Tit=Gle();function Rit(t,e){var r=t.__data__;return Tit(e)?r[typeof e=="string"?"string":"hash"]:r.map}Wle.exports=Rit});var Vle=L((eVt,Yle)=>{var Fit=DB();function Nit(t){var e=Fit(this,t).delete(t);return this.size-=e?1:0,e}Yle.exports=Nit});var Jle=L((tVt,Kle)=>{var Oit=DB();function Lit(t){return Oit(this,t).get(t)}Kle.exports=Lit});var Zle=L((rVt,zle)=>{var Mit=DB();function _it(t){return Mit(this,t).has(t)}zle.exports=_it});var $le=L((nVt,Xle)=>{var Uit=DB();function Hit(t,e){var r=Uit(this,t),s=r.size;return r.set(t,e),this.size+=r.size==s?0:1,this}Xle.exports=Hit});var bk=L((iVt,ece)=>{var jit=jle(),qit=Vle(),Git=Jle(),Wit=Zle(),Yit=$le();function OE(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e<r;){var s=t[e];this.set(s[0],s[1])}}OE.prototype.clear=jit;OE.prototype.delete=qit;OE.prototype.get=Git;OE.prototype.has=Wit;OE.prototype.set=Yit;ece.exports=OE});var rce=L((sVt,tce)=>{var Vit=BB(),Kit=Dk(),Jit=bk(),zit=200;function Zit(t,e){var r=this.__data__;if(r instanceof Vit){var s=r.__data__;if(!Kit||s.length<zit-1)return s.push([t,e]),this.size=++r.size,this;r=this.__data__=new Jit(s)}return r.set(t,e),this.size=r.size,this}tce.exports=Zit});var Pk=L((oVt,nce)=>{var Xit=BB(),$it=Vae(),est=Jae(),tst=Zae(),rst=$ae(),nst=rce();function LE(t){var e=this.__data__=new Xit(t);this.size=e.size}LE.prototype.clear=$it;LE.prototype.delete=est;LE.prototype.get=tst;LE.prototype.has=rst;LE.prototype.set=nst;nce.exports=LE});var sce=L((aVt,ice)=>{var ist="__lodash_hash_undefined__";function sst(t){return this.__data__.set(t,ist),this}ice.exports=sst});var ace=L((lVt,oce)=>{function ost(t){return this.__data__.has(t)}oce.exports=ost});var cce=L((cVt,lce)=>{var ast=bk(),lst=sce(),cst=ace();function xk(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new ast;++e<r;)this.add(t[e])}xk.prototype.add=xk.prototype.push=lst;xk.prototype.has=cst;lce.exports=xk});var fce=L((uVt,uce)=>{function ust(t,e){for(var r=-1,s=t==null?0:t.length;++r<s;)if(e(t[r],r,t))return!0;return!1}uce.exports=ust});var pce=L((fVt,Ace)=>{function fst(t,e){return t.has(e)}Ace.exports=fst});var D4=L((AVt,hce)=>{var Ast=cce(),pst=fce(),hst=pce(),gst=1,dst=2;function mst(t,e,r,s,a,n){var c=r&gst,f=t.length,p=e.length;if(f!=p&&!(c&&p>f))return!1;var h=n.get(t),E=n.get(e);if(h&&E)return h==e&&E==t;var C=-1,S=!0,P=r&dst?new Ast:void 0;for(n.set(t,e),n.set(e,t);++C<f;){var I=t[C],R=e[C];if(s)var N=c?s(R,I,C,e,t,n):s(I,R,C,t,e,n);if(N!==void 0){if(N)continue;S=!1;break}if(P){if(!pst(e,function(U,W){if(!hst(P,W)&&(I===U||a(I,U,r,s,n)))return P.push(W)})){S=!1;break}}else if(!(I===R||a(I,R,r,s,n))){S=!1;break}}return n.delete(t),n.delete(e),S}hce.exports=mst});var b4=L((pVt,gce)=>{var yst=Pc(),Est=yst.Uint8Array;gce.exports=Est});var mce=L((hVt,dce)=>{function Ist(t){var e=-1,r=Array(t.size);return t.forEach(function(s,a){r[++e]=[a,s]}),r}dce.exports=Ist});var Ece=L((gVt,yce)=>{function Cst(t){var e=-1,r=Array(t.size);return t.forEach(function(s){r[++e]=s}),r}yce.exports=Cst});var vce=L((dVt,Bce)=>{var Ice=Gd(),Cce=b4(),wst=RE(),Bst=D4(),vst=mce(),Sst=Ece(),Dst=1,bst=2,Pst="[object Boolean]",xst="[object Date]",kst="[object Error]",Qst="[object Map]",Tst="[object Number]",Rst="[object RegExp]",Fst="[object Set]",Nst="[object String]",Ost="[object Symbol]",Lst="[object ArrayBuffer]",Mst="[object DataView]",wce=Ice?Ice.prototype:void 0,P4=wce?wce.valueOf:void 0;function _st(t,e,r,s,a,n,c){switch(r){case Mst:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case Lst:return!(t.byteLength!=e.byteLength||!n(new Cce(t),new Cce(e)));case Pst:case xst:case Tst:return wst(+t,+e);case kst:return t.name==e.name&&t.message==e.message;case Rst:case Nst:return t==e+"";case Qst:var f=vst;case Fst:var p=s&Dst;if(f||(f=Sst),t.size!=e.size&&!p)return!1;var h=c.get(t);if(h)return h==e;s|=bst,c.set(t,e);var E=Bst(f(t),f(e),s,a,n,c);return c.delete(t),E;case Ost:if(P4)return P4.call(t)==P4.call(e)}return!1}Bce.exports=_st});var kk=L((mVt,Sce)=>{function Ust(t,e){for(var r=-1,s=e.length,a=t.length;++r<s;)t[a+r]=e[r];return t}Sce.exports=Ust});var xc=L((yVt,Dce)=>{var Hst=Array.isArray;Dce.exports=Hst});var x4=L((EVt,bce)=>{var jst=kk(),qst=xc();function Gst(t,e,r){var s=e(t);return qst(t)?s:jst(s,r(t))}bce.exports=Gst});var xce=L((IVt,Pce)=>{function Wst(t,e){for(var r=-1,s=t==null?0:t.length,a=0,n=[];++r<s;){var c=t[r];e(c,r,t)&&(n[a++]=c)}return n}Pce.exports=Wst});var k4=L((CVt,kce)=>{function Yst(){return[]}kce.exports=Yst});var Qk=L((wVt,Tce)=>{var Vst=xce(),Kst=k4(),Jst=Object.prototype,zst=Jst.propertyIsEnumerable,Qce=Object.getOwnPropertySymbols,Zst=Qce?function(t){return t==null?[]:(t=Object(t),Vst(Qce(t),function(e){return zst.call(t,e)}))}:Kst;Tce.exports=Zst});var Fce=L((BVt,Rce)=>{function Xst(t,e){for(var r=-1,s=Array(t);++r<t;)s[r]=e(r);return s}Rce.exports=Xst});var zf=L((vVt,Nce)=>{function $st(t){return t!=null&&typeof t=="object"}Nce.exports=$st});var Lce=L((SVt,Oce)=>{var eot=Wd(),tot=zf(),rot="[object Arguments]";function not(t){return tot(t)&&eot(t)==rot}Oce.exports=not});var bB=L((DVt,Uce)=>{var Mce=Lce(),iot=zf(),_ce=Object.prototype,sot=_ce.hasOwnProperty,oot=_ce.propertyIsEnumerable,aot=Mce(function(){return arguments}())?Mce:function(t){return iot(t)&&sot.call(t,"callee")&&!oot.call(t,"callee")};Uce.exports=aot});var jce=L((bVt,Hce)=>{function lot(){return!1}Hce.exports=lot});var xB=L((PB,ME)=>{var cot=Pc(),uot=jce(),Wce=typeof PB=="object"&&PB&&!PB.nodeType&&PB,qce=Wce&&typeof ME=="object"&&ME&&!ME.nodeType&&ME,fot=qce&&qce.exports===Wce,Gce=fot?cot.Buffer:void 0,Aot=Gce?Gce.isBuffer:void 0,pot=Aot||uot;ME.exports=pot});var kB=L((PVt,Yce)=>{var hot=9007199254740991,got=/^(?:0|[1-9]\d*)$/;function dot(t,e){var r=typeof t;return e=e??hot,!!e&&(r=="number"||r!="symbol"&&got.test(t))&&t>-1&&t%1==0&&t<e}Yce.exports=dot});var Tk=L((xVt,Vce)=>{var mot=9007199254740991;function yot(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=mot}Vce.exports=yot});var Jce=L((kVt,Kce)=>{var Eot=Wd(),Iot=Tk(),Cot=zf(),wot="[object Arguments]",Bot="[object Array]",vot="[object Boolean]",Sot="[object Date]",Dot="[object Error]",bot="[object Function]",Pot="[object Map]",xot="[object Number]",kot="[object Object]",Qot="[object RegExp]",Tot="[object Set]",Rot="[object String]",Fot="[object WeakMap]",Not="[object ArrayBuffer]",Oot="[object DataView]",Lot="[object Float32Array]",Mot="[object Float64Array]",_ot="[object Int8Array]",Uot="[object Int16Array]",Hot="[object Int32Array]",jot="[object Uint8Array]",qot="[object Uint8ClampedArray]",Got="[object Uint16Array]",Wot="[object Uint32Array]",Di={};Di[Lot]=Di[Mot]=Di[_ot]=Di[Uot]=Di[Hot]=Di[jot]=Di[qot]=Di[Got]=Di[Wot]=!0;Di[wot]=Di[Bot]=Di[Not]=Di[vot]=Di[Oot]=Di[Sot]=Di[Dot]=Di[bot]=Di[Pot]=Di[xot]=Di[kot]=Di[Qot]=Di[Tot]=Di[Rot]=Di[Fot]=!1;function Yot(t){return Cot(t)&&Iot(t.length)&&!!Di[Eot(t)]}Kce.exports=Yot});var Rk=L((QVt,zce)=>{function Vot(t){return function(e){return t(e)}}zce.exports=Vot});var Fk=L((QB,_E)=>{var Kot=B4(),Zce=typeof QB=="object"&&QB&&!QB.nodeType&&QB,TB=Zce&&typeof _E=="object"&&_E&&!_E.nodeType&&_E,Jot=TB&&TB.exports===Zce,Q4=Jot&&Kot.process,zot=function(){try{var t=TB&&TB.require&&TB.require("util").types;return t||Q4&&Q4.binding&&Q4.binding("util")}catch{}}();_E.exports=zot});var Nk=L((TVt,eue)=>{var Zot=Jce(),Xot=Rk(),Xce=Fk(),$ce=Xce&&Xce.isTypedArray,$ot=$ce?Xot($ce):Zot;eue.exports=$ot});var T4=L((RVt,tue)=>{var eat=Fce(),tat=bB(),rat=xc(),nat=xB(),iat=kB(),sat=Nk(),oat=Object.prototype,aat=oat.hasOwnProperty;function lat(t,e){var r=rat(t),s=!r&&tat(t),a=!r&&!s&&nat(t),n=!r&&!s&&!a&&sat(t),c=r||s||a||n,f=c?eat(t.length,String):[],p=f.length;for(var h in t)(e||aat.call(t,h))&&!(c&&(h=="length"||a&&(h=="offset"||h=="parent")||n&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||iat(h,p)))&&f.push(h);return f}tue.exports=lat});var Ok=L((FVt,rue)=>{var cat=Object.prototype;function uat(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||cat;return t===r}rue.exports=uat});var R4=L((NVt,nue)=>{function fat(t,e){return function(r){return t(e(r))}}nue.exports=fat});var sue=L((OVt,iue)=>{var Aat=R4(),pat=Aat(Object.keys,Object);iue.exports=pat});var aue=L((LVt,oue)=>{var hat=Ok(),gat=sue(),dat=Object.prototype,mat=dat.hasOwnProperty;function yat(t){if(!hat(t))return gat(t);var e=[];for(var r in Object(t))mat.call(t,r)&&r!="constructor"&&e.push(r);return e}oue.exports=yat});var RB=L((MVt,lue)=>{var Eat=Sk(),Iat=Tk();function Cat(t){return t!=null&&Iat(t.length)&&!Eat(t)}lue.exports=Cat});var Lk=L((_Vt,cue)=>{var wat=T4(),Bat=aue(),vat=RB();function Sat(t){return vat(t)?wat(t):Bat(t)}cue.exports=Sat});var F4=L((UVt,uue)=>{var Dat=x4(),bat=Qk(),Pat=Lk();function xat(t){return Dat(t,Pat,bat)}uue.exports=xat});var pue=L((HVt,Aue)=>{var fue=F4(),kat=1,Qat=Object.prototype,Tat=Qat.hasOwnProperty;function Rat(t,e,r,s,a,n){var c=r&kat,f=fue(t),p=f.length,h=fue(e),E=h.length;if(p!=E&&!c)return!1;for(var C=p;C--;){var S=f[C];if(!(c?S in e:Tat.call(e,S)))return!1}var P=n.get(t),I=n.get(e);if(P&&I)return P==e&&I==t;var R=!0;n.set(t,e),n.set(e,t);for(var N=c;++C<p;){S=f[C];var U=t[S],W=e[S];if(s)var te=c?s(W,U,S,e,t,n):s(U,W,S,t,e,n);if(!(te===void 0?U===W||a(U,W,r,s,n):te)){R=!1;break}N||(N=S=="constructor")}if(R&&!N){var ie=t.constructor,Ae=e.constructor;ie!=Ae&&"constructor"in t&&"constructor"in e&&!(typeof ie=="function"&&ie instanceof ie&&typeof Ae=="function"&&Ae instanceof Ae)&&(R=!1)}return n.delete(t),n.delete(e),R}Aue.exports=Rat});var gue=L((jVt,hue)=>{var Fat=f0(),Nat=Pc(),Oat=Fat(Nat,"DataView");hue.exports=Oat});var mue=L((qVt,due)=>{var Lat=f0(),Mat=Pc(),_at=Lat(Mat,"Promise");due.exports=_at});var Eue=L((GVt,yue)=>{var Uat=f0(),Hat=Pc(),jat=Uat(Hat,"Set");yue.exports=jat});var Cue=L((WVt,Iue)=>{var qat=f0(),Gat=Pc(),Wat=qat(Gat,"WeakMap");Iue.exports=Wat});var FB=L((YVt,Pue)=>{var N4=gue(),O4=Dk(),L4=mue(),M4=Eue(),_4=Cue(),bue=Wd(),UE=S4(),wue="[object Map]",Yat="[object Object]",Bue="[object Promise]",vue="[object Set]",Sue="[object WeakMap]",Due="[object DataView]",Vat=UE(N4),Kat=UE(O4),Jat=UE(L4),zat=UE(M4),Zat=UE(_4),Yd=bue;(N4&&Yd(new N4(new ArrayBuffer(1)))!=Due||O4&&Yd(new O4)!=wue||L4&&Yd(L4.resolve())!=Bue||M4&&Yd(new M4)!=vue||_4&&Yd(new _4)!=Sue)&&(Yd=function(t){var e=bue(t),r=e==Yat?t.constructor:void 0,s=r?UE(r):"";if(s)switch(s){case Vat:return Due;case Kat:return wue;case Jat:return Bue;case zat:return vue;case Zat:return Sue}return e});Pue.exports=Yd});var Oue=L((VVt,Nue)=>{var U4=Pk(),Xat=D4(),$at=vce(),elt=pue(),xue=FB(),kue=xc(),Que=xB(),tlt=Nk(),rlt=1,Tue="[object Arguments]",Rue="[object Array]",Mk="[object Object]",nlt=Object.prototype,Fue=nlt.hasOwnProperty;function ilt(t,e,r,s,a,n){var c=kue(t),f=kue(e),p=c?Rue:xue(t),h=f?Rue:xue(e);p=p==Tue?Mk:p,h=h==Tue?Mk:h;var E=p==Mk,C=h==Mk,S=p==h;if(S&&Que(t)){if(!Que(e))return!1;c=!0,E=!1}if(S&&!E)return n||(n=new U4),c||tlt(t)?Xat(t,e,r,s,a,n):$at(t,e,p,r,s,a,n);if(!(r&rlt)){var P=E&&Fue.call(t,"__wrapped__"),I=C&&Fue.call(e,"__wrapped__");if(P||I){var R=P?t.value():t,N=I?e.value():e;return n||(n=new U4),a(R,N,r,s,n)}}return S?(n||(n=new U4),elt(t,e,r,s,a,n)):!1}Nue.exports=ilt});var Uue=L((KVt,_ue)=>{var slt=Oue(),Lue=zf();function Mue(t,e,r,s,a){return t===e?!0:t==null||e==null||!Lue(t)&&!Lue(e)?t!==t&&e!==e:slt(t,e,r,s,Mue,a)}_ue.exports=Mue});var jue=L((JVt,Hue)=>{var olt=Uue();function alt(t,e){return olt(t,e)}Hue.exports=alt});var H4=L((zVt,que)=>{var llt=f0(),clt=function(){try{var t=llt(Object,"defineProperty");return t({},"",{}),t}catch{}}();que.exports=clt});var _k=L((ZVt,Wue)=>{var Gue=H4();function ult(t,e,r){e=="__proto__"&&Gue?Gue(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}Wue.exports=ult});var j4=L((XVt,Yue)=>{var flt=_k(),Alt=RE();function plt(t,e,r){(r!==void 0&&!Alt(t[e],r)||r===void 0&&!(e in t))&&flt(t,e,r)}Yue.exports=plt});var Kue=L(($Vt,Vue)=>{function hlt(t){return function(e,r,s){for(var a=-1,n=Object(e),c=s(e),f=c.length;f--;){var p=c[t?f:++a];if(r(n[p],p,n)===!1)break}return e}}Vue.exports=hlt});var zue=L((e7t,Jue)=>{var glt=Kue(),dlt=glt();Jue.exports=dlt});var q4=L((NB,HE)=>{var mlt=Pc(),efe=typeof NB=="object"&&NB&&!NB.nodeType&&NB,Zue=efe&&typeof HE=="object"&&HE&&!HE.nodeType&&HE,ylt=Zue&&Zue.exports===efe,Xue=ylt?mlt.Buffer:void 0,$ue=Xue?Xue.allocUnsafe:void 0;function Elt(t,e){if(e)return t.slice();var r=t.length,s=$ue?$ue(r):new t.constructor(r);return t.copy(s),s}HE.exports=Elt});var Uk=L((t7t,rfe)=>{var tfe=b4();function Ilt(t){var e=new t.constructor(t.byteLength);return new tfe(e).set(new tfe(t)),e}rfe.exports=Ilt});var G4=L((r7t,nfe)=>{var Clt=Uk();function wlt(t,e){var r=e?Clt(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}nfe.exports=wlt});var Hk=L((n7t,ife)=>{function Blt(t,e){var r=-1,s=t.length;for(e||(e=Array(s));++r<s;)e[r]=t[r];return e}ife.exports=Blt});var afe=L((i7t,ofe)=>{var vlt=Wl(),sfe=Object.create,Slt=function(){function t(){}return function(e){if(!vlt(e))return{};if(sfe)return sfe(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();ofe.exports=Slt});var jk=L((s7t,lfe)=>{var Dlt=R4(),blt=Dlt(Object.getPrototypeOf,Object);lfe.exports=blt});var W4=L((o7t,cfe)=>{var Plt=afe(),xlt=jk(),klt=Ok();function Qlt(t){return typeof t.constructor=="function"&&!klt(t)?Plt(xlt(t)):{}}cfe.exports=Qlt});var ffe=L((a7t,ufe)=>{var Tlt=RB(),Rlt=zf();function Flt(t){return Rlt(t)&&Tlt(t)}ufe.exports=Flt});var Y4=L((l7t,pfe)=>{var Nlt=Wd(),Olt=jk(),Llt=zf(),Mlt="[object Object]",_lt=Function.prototype,Ult=Object.prototype,Afe=_lt.toString,Hlt=Ult.hasOwnProperty,jlt=Afe.call(Object);function qlt(t){if(!Llt(t)||Nlt(t)!=Mlt)return!1;var e=Olt(t);if(e===null)return!0;var r=Hlt.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&Afe.call(r)==jlt}pfe.exports=qlt});var V4=L((c7t,hfe)=>{function Glt(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}hfe.exports=Glt});var qk=L((u7t,gfe)=>{var Wlt=_k(),Ylt=RE(),Vlt=Object.prototype,Klt=Vlt.hasOwnProperty;function Jlt(t,e,r){var s=t[e];(!(Klt.call(t,e)&&Ylt(s,r))||r===void 0&&!(e in t))&&Wlt(t,e,r)}gfe.exports=Jlt});var Vd=L((f7t,dfe)=>{var zlt=qk(),Zlt=_k();function Xlt(t,e,r,s){var a=!r;r||(r={});for(var n=-1,c=e.length;++n<c;){var f=e[n],p=s?s(r[f],t[f],f,r,t):void 0;p===void 0&&(p=t[f]),a?Zlt(r,f,p):zlt(r,f,p)}return r}dfe.exports=Xlt});var yfe=L((A7t,mfe)=>{function $lt(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}mfe.exports=$lt});var Ife=L((p7t,Efe)=>{var ect=Wl(),tct=Ok(),rct=yfe(),nct=Object.prototype,ict=nct.hasOwnProperty;function sct(t){if(!ect(t))return rct(t);var e=tct(t),r=[];for(var s in t)s=="constructor"&&(e||!ict.call(t,s))||r.push(s);return r}Efe.exports=sct});var jE=L((h7t,Cfe)=>{var oct=T4(),act=Ife(),lct=RB();function cct(t){return lct(t)?oct(t,!0):act(t)}Cfe.exports=cct});var Bfe=L((g7t,wfe)=>{var uct=Vd(),fct=jE();function Act(t){return uct(t,fct(t))}wfe.exports=Act});var xfe=L((d7t,Pfe)=>{var vfe=j4(),pct=q4(),hct=G4(),gct=Hk(),dct=W4(),Sfe=bB(),Dfe=xc(),mct=ffe(),yct=xB(),Ect=Sk(),Ict=Wl(),Cct=Y4(),wct=Nk(),bfe=V4(),Bct=Bfe();function vct(t,e,r,s,a,n,c){var f=bfe(t,r),p=bfe(e,r),h=c.get(p);if(h){vfe(t,r,h);return}var E=n?n(f,p,r+"",t,e,c):void 0,C=E===void 0;if(C){var S=Dfe(p),P=!S&&yct(p),I=!S&&!P&&wct(p);E=p,S||P||I?Dfe(f)?E=f:mct(f)?E=gct(f):P?(C=!1,E=pct(p,!0)):I?(C=!1,E=hct(p,!0)):E=[]:Cct(p)||Sfe(p)?(E=f,Sfe(f)?E=Bct(f):(!Ict(f)||Ect(f))&&(E=dct(p))):C=!1}C&&(c.set(p,E),a(E,p,s,n,c),c.delete(p)),vfe(t,r,E)}Pfe.exports=vct});var Tfe=L((m7t,Qfe)=>{var Sct=Pk(),Dct=j4(),bct=zue(),Pct=xfe(),xct=Wl(),kct=jE(),Qct=V4();function kfe(t,e,r,s,a){t!==e&&bct(e,function(n,c){if(a||(a=new Sct),xct(n))Pct(t,e,c,r,kfe,s,a);else{var f=s?s(Qct(t,c),n,c+"",t,e,a):void 0;f===void 0&&(f=n),Dct(t,c,f)}},kct)}Qfe.exports=kfe});var K4=L((y7t,Rfe)=>{function Tct(t){return t}Rfe.exports=Tct});var Nfe=L((E7t,Ffe)=>{function Rct(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}Ffe.exports=Rct});var J4=L((I7t,Lfe)=>{var Fct=Nfe(),Ofe=Math.max;function Nct(t,e,r){return e=Ofe(e===void 0?t.length-1:e,0),function(){for(var s=arguments,a=-1,n=Ofe(s.length-e,0),c=Array(n);++a<n;)c[a]=s[e+a];a=-1;for(var f=Array(e+1);++a<e;)f[a]=s[a];return f[e]=r(c),Fct(t,this,f)}}Lfe.exports=Nct});var _fe=L((C7t,Mfe)=>{function Oct(t){return function(){return t}}Mfe.exports=Oct});var jfe=L((w7t,Hfe)=>{var Lct=_fe(),Ufe=H4(),Mct=K4(),_ct=Ufe?function(t,e){return Ufe(t,"toString",{configurable:!0,enumerable:!1,value:Lct(e),writable:!0})}:Mct;Hfe.exports=_ct});var Gfe=L((B7t,qfe)=>{var Uct=800,Hct=16,jct=Date.now;function qct(t){var e=0,r=0;return function(){var s=jct(),a=Hct-(s-r);if(r=s,a>0){if(++e>=Uct)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}qfe.exports=qct});var z4=L((v7t,Wfe)=>{var Gct=jfe(),Wct=Gfe(),Yct=Wct(Gct);Wfe.exports=Yct});var Vfe=L((S7t,Yfe)=>{var Vct=K4(),Kct=J4(),Jct=z4();function zct(t,e){return Jct(Kct(t,e,Vct),t+"")}Yfe.exports=zct});var Jfe=L((D7t,Kfe)=>{var Zct=RE(),Xct=RB(),$ct=kB(),eut=Wl();function tut(t,e,r){if(!eut(r))return!1;var s=typeof e;return(s=="number"?Xct(r)&&$ct(e,r.length):s=="string"&&e in r)?Zct(r[e],t):!1}Kfe.exports=tut});var Zfe=L((b7t,zfe)=>{var rut=Vfe(),nut=Jfe();function iut(t){return rut(function(e,r){var s=-1,a=r.length,n=a>1?r[a-1]:void 0,c=a>2?r[2]:void 0;for(n=t.length>3&&typeof n=="function"?(a--,n):void 0,c&&nut(r[0],r[1],c)&&(n=a<3?void 0:n,a=1),e=Object(e);++s<a;){var f=r[s];f&&t(e,f,s,n)}return e})}zfe.exports=iut});var $fe=L((P7t,Xfe)=>{var sut=Tfe(),out=Zfe(),aut=out(function(t,e,r,s){sut(t,e,r,s)});Xfe.exports=aut});var je={};Vt(je,{AsyncActions:()=>$4,BufferStream:()=>X4,CachingStrategy:()=>fAe,DefaultStream:()=>e3,allSettledSafe:()=>Uu,assertNever:()=>r3,bufferStream:()=>GE,buildIgnorePattern:()=>hut,convertMapsToIndexableObjects:()=>Wk,dynamicRequire:()=>kp,escapeRegExp:()=>cut,getArrayWithDefault:()=>LB,getFactoryWithDefault:()=>Vl,getMapWithDefault:()=>n3,getSetWithDefault:()=>xp,groupBy:()=>mut,isIndexableObject:()=>Z4,isPathLike:()=>gut,isTaggedYarnVersion:()=>lut,makeDeferred:()=>lAe,mapAndFilter:()=>Yl,mapAndFind:()=>A0,mergeIntoTarget:()=>pAe,overrideType:()=>uut,parseBoolean:()=>MB,parseInt:()=>WE,parseOptionalBoolean:()=>AAe,plural:()=>Gk,prettifyAsyncErrors:()=>qE,prettifySyncErrors:()=>i3,releaseAfterUseAsync:()=>Aut,replaceEnvVariables:()=>Yk,sortMap:()=>Ys,toMerged:()=>dut,tryParseOptionalBoolean:()=>s3,validateEnum:()=>fut});function lut(t){return!!(sAe.default.valid(t)&&t.match(/^[^-]+(-rc\.[0-9]+)?$/))}function Gk(t,{one:e,more:r,zero:s=r}){return t===0?s:t===1?e:r}function cut(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function uut(t){}function r3(t){throw new Error(`Assertion failed: Unexpected object '${t}'`)}function fut(t,e){let r=Object.values(t);if(!r.includes(e))throw new nt(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${r.map(s=>JSON.stringify(s)).join(", ")})`);return e}function Yl(t,e){let r=[];for(let s of t){let a=e(s);a!==oAe&&r.push(a)}return r}function A0(t,e){for(let r of t){let s=e(r);if(s!==aAe)return s}}function Z4(t){return typeof t=="object"&&t!==null}async function Uu(t){let e=await Promise.allSettled(t),r=[];for(let s of e){if(s.status==="rejected")throw s.reason;r.push(s.value)}return r}function Wk(t){if(t instanceof Map&&(t=Object.fromEntries(t)),Z4(t))for(let e of Object.keys(t)){let r=t[e];Z4(r)&&(t[e]=Wk(r))}return t}function Vl(t,e,r){let s=t.get(e);return typeof s>"u"&&t.set(e,s=r()),s}function LB(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=[]),r}function xp(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Set),r}function n3(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Map),r}async function Aut(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function qE(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function i3(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function GE(t){return await new Promise((e,r)=>{let s=[];t.on("error",a=>{r(a)}),t.on("data",a=>{s.push(a)}),t.on("end",()=>{e(Buffer.concat(s))})})}function lAe(){let t,e;return{promise:new Promise((s,a)=>{t=s,e=a}),resolve:t,reject:e}}function cAe(t){return OB(ue.fromPortablePath(t))}function uAe(path){let physicalPath=ue.fromPortablePath(path),currentCacheEntry=OB.cache[physicalPath];delete OB.cache[physicalPath];let result;try{result=cAe(physicalPath);let freshCacheEntry=OB.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{OB.cache[physicalPath]=currentCacheEntry}return result}function put(t){let e=eAe.get(t),r=le.statSync(t);if(e?.mtime===r.mtimeMs)return e.instance;let s=uAe(t);return eAe.set(t,{mtime:r.mtimeMs,instance:s}),s}function kp(t,{cachingStrategy:e=2}={}){switch(e){case 0:return uAe(t);case 1:return put(t);case 2:return cAe(t);default:throw new Error("Unsupported caching strategy")}}function Ys(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let s=[];for(let n of e)s.push(r.map(c=>n(c)));let a=r.map((n,c)=>c);return a.sort((n,c)=>{for(let f of s){let p=f[n]<f[c]?-1:f[n]>f[c]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function hut(t){return t.length===0?null:t.map(e=>`(${nAe.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Yk(t,{env:e}){let r=/\${(?<variableName>[\d\w_]+)(?<colon>:)?(?:-(?<fallback>[^}]*))?}/g;return t.replace(r,(...s)=>{let{variableName:a,colon:n,fallback:c}=s[s.length-1],f=Object.hasOwn(e,a),p=e[a];if(p||f&&!n)return p;if(c!=null)return c;throw new nt(`Environment variable not found (${a})`)})}function MB(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${t}" as a boolean`)}}function AAe(t){return typeof t>"u"?t:MB(t)}function s3(t){try{return AAe(t)}catch{return null}}function gut(t){return!!(ue.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}function pAe(t,...e){let r=c=>({value:c}),s=r(t),a=e.map(c=>r(c)),{value:n}=(0,rAe.default)(s,...a,(c,f)=>{if(Array.isArray(c)&&Array.isArray(f)){for(let p of f)c.find(h=>(0,tAe.default)(h,p))||c.push(p);return c}});return n}function dut(...t){return pAe({},...t)}function mut(t,e){let r=Object.create(null);for(let s of t){let a=s[e];r[a]??=[],r[a].push(s)}return r}function WE(t){return typeof t=="string"?Number.parseInt(t,10):t}var tAe,rAe,nAe,iAe,sAe,t3,oAe,aAe,X4,$4,e3,OB,eAe,fAe,kc=Ct(()=>{bt();Wt();tAe=et(jue()),rAe=et($fe()),nAe=et(Sa()),iAe=et(Od()),sAe=et(Ai()),t3=Ie("stream");oAe=Symbol();Yl.skip=oAe;aAe=Symbol();A0.skip=aAe;X4=class extends t3.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(r,s,a){if(s!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(r),a(null,null)}_flush(r){r(null,Buffer.concat(this.chunks))}};$4=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,iAe.default)(e)}set(e,r){let s=this.deferred.get(e);typeof s>"u"&&this.deferred.set(e,s=lAe());let a=this.limit(()=>r());return this.promises.set(e,a),a.then(()=>{this.promises.get(e)===a&&s.resolve()},n=>{this.promises.get(e)===a&&s.reject(n)}),s.promise}reduce(e,r){let s=this.promises.get(e)??Promise.resolve();this.set(e,()=>r(s))}async wait(){await Promise.all(this.promises.values())}},e3=class extends t3.Transform{constructor(r=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=r}_transform(r,s,a){if(s!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,a(null,r)}_flush(r){this.active&&this.ifEmpty.length>0?r(null,this.ifEmpty):r(null)}},OB=eval("require");eAe=new Map;fAe=(s=>(s[s.NoCache=0]="NoCache",s[s.FsTime=1]="FsTime",s[s.Node=2]="Node",s))(fAe||{})});var YE,o3,a3,hAe=Ct(()=>{YE=(r=>(r.HARD="HARD",r.SOFT="SOFT",r))(YE||{}),o3=(s=>(s.Dependency="Dependency",s.PeerDependency="PeerDependency",s.PeerDependencyMeta="PeerDependencyMeta",s))(o3||{}),a3=(s=>(s.Inactive="inactive",s.Redundant="redundant",s.Active="active",s))(a3||{})});var he={};Vt(he,{LogLevel:()=>Xk,Style:()=>Jk,Type:()=>pt,addLogFilterSupport:()=>HB,applyColor:()=>ri,applyHyperlink:()=>KE,applyStyle:()=>Kd,json:()=>Jd,jsonOrPretty:()=>Iut,mark:()=>A3,pretty:()=>Ut,prettyField:()=>Zf,prettyList:()=>f3,prettyTruncatedLocatorList:()=>Zk,stripAnsi:()=>VE.default,supportsColor:()=>zk,supportsHyperlinks:()=>u3,tuple:()=>Hu});function gAe(t){let e=["KiB","MiB","GiB","TiB"],r=e.length;for(;r>1&&t<1024**r;)r-=1;let s=1024**r;return`${Math.floor(t*100/s)/100} ${e[r-1]}`}function Vk(t,e){if(Array.isArray(e))return e.length===0?ri(t,"[]",pt.CODE):ri(t,"[ ",pt.CODE)+e.map(r=>Vk(t,r)).join(", ")+ri(t," ]",pt.CODE);if(typeof e=="string")return ri(t,JSON.stringify(e),pt.STRING);if(typeof e=="number")return ri(t,JSON.stringify(e),pt.NUMBER);if(typeof e=="boolean")return ri(t,JSON.stringify(e),pt.BOOLEAN);if(e===null)return ri(t,"null",pt.NULL);if(typeof e=="object"&&Object.getPrototypeOf(e)===Object.prototype){let r=Object.entries(e);return r.length===0?ri(t,"{}",pt.CODE):ri(t,"{ ",pt.CODE)+r.map(([s,a])=>`${Vk(t,s)}: ${Vk(t,a)}`).join(", ")+ri(t," }",pt.CODE)}if(typeof e>"u")return ri(t,"undefined",pt.NULL);throw new Error("Assertion failed: The value doesn't seem to be a valid JSON object")}function Hu(t,e){return[e,t]}function Kd(t,e,r){return t.get("enableColors")&&r&2&&(e=UB.default.bold(e)),e}function ri(t,e,r){if(!t.get("enableColors"))return e;let s=yut.get(r);if(s===null)return e;let a=typeof s>"u"?r:c3.level>=3?s[0]:s[1],n=typeof a=="number"?l3.ansi256(a):a.startsWith("#")?l3.hex(a):l3[a];if(typeof n!="function")throw new Error(`Invalid format type ${a}`);return n(e)}function KE(t,e,r){return t.get("enableHyperlinks")?Eut?`\x1B]8;;${r}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${r}\x07${e}\x1B]8;;\x07`:e}function Ut(t,e,r){if(e===null)return ri(t,"null",pt.NULL);if(Object.hasOwn(Kk,r))return Kk[r].pretty(t,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return ri(t,e,r)}function f3(t,e,r,{separator:s=", "}={}){return[...e].map(a=>Ut(t,a,r)).join(s)}function Jd(t,e){if(t===null)return null;if(Object.hasOwn(Kk,e))return Kk[e].json(t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function Iut(t,e,[r,s]){return t?Jd(r,s):Ut(e,r,s)}function A3(t){return{Check:ri(t,"\u2713","green"),Cross:ri(t,"\u2718","red"),Question:ri(t,"?","cyan")}}function Zf(t,{label:e,value:[r,s]}){return`${Ut(t,e,pt.CODE)}: ${Ut(t,r,s)}`}function Zk(t,e,r){let s=[],a=[...e],n=r;for(;a.length>0;){let h=a[0],E=`${Yr(t,h)}, `,C=p3(h).length+2;if(s.length>0&&n<C)break;s.push([E,C]),n-=C,a.shift()}if(a.length===0)return s.map(([h])=>h).join("").slice(0,-2);let c="X".repeat(a.length.toString().length),f=`and ${c} more.`,p=a.length;for(;s.length>1&&n<f.length;)n+=s[s.length-1][1],p+=1,s.pop();return[s.map(([h])=>h).join(""),f.replace(c,Ut(t,p,pt.NUMBER))].join("")}function HB(t,{configuration:e}){let r=e.get("logFilters"),s=new Map,a=new Map,n=[];for(let C of r){let S=C.get("level");if(typeof S>"u")continue;let P=C.get("code");typeof P<"u"&&s.set(P,S);let I=C.get("text");typeof I<"u"&&a.set(I,S);let R=C.get("pattern");typeof R<"u"&&n.push([dAe.default.matcher(R,{contains:!0}),S])}n.reverse();let c=(C,S,P)=>{if(C===null||C===0)return P;let I=a.size>0||n.length>0?(0,VE.default)(S):S;if(a.size>0){let R=a.get(I);if(typeof R<"u")return R??P}if(n.length>0){for(let[R,N]of n)if(R(I))return N??P}if(s.size>0){let R=s.get(Vf(C));if(typeof R<"u")return R??P}return P},f=t.reportInfo,p=t.reportWarning,h=t.reportError,E=function(C,S,P,I){switch(c(S,P,I)){case"info":f.call(C,S,P);break;case"warning":p.call(C,S??0,P);break;case"error":h.call(C,S??0,P);break}};t.reportInfo=function(...C){return E(this,...C,"info")},t.reportWarning=function(...C){return E(this,...C,"warning")},t.reportError=function(...C){return E(this,...C,"error")}}var UB,_B,dAe,VE,pt,Jk,c3,zk,u3,l3,yut,Wo,Kk,Eut,Xk,Qc=Ct(()=>{bt();UB=et(kE()),_B=et(Rd());Wt();dAe=et(Sa()),VE=et(vk());Zx();Yo();pt={NO_HINT:"NO_HINT",ID:"ID",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",STRING:"STRING",BOOLEAN:"BOOLEAN",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",INSPECT:"INSPECT",DURATION:"DURATION",SIZE:"SIZE",SIZE_DIFF:"SIZE_DIFF",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN",MARKDOWN_INLINE:"MARKDOWN_INLINE"},Jk=(e=>(e[e.BOLD=2]="BOLD",e))(Jk||{}),c3=_B.default.GITHUB_ACTIONS?{level:2}:UB.default.supportsColor?{level:UB.default.supportsColor.level}:{level:0},zk=c3.level!==0,u3=zk&&!_B.default.GITHUB_ACTIONS&&!_B.default.CIRCLE&&!_B.default.GITLAB,l3=new UB.default.Instance(c3),yut=new Map([[pt.NO_HINT,null],[pt.NULL,["#a853b5",129]],[pt.SCOPE,["#d75f00",166]],[pt.NAME,["#d7875f",173]],[pt.RANGE,["#00afaf",37]],[pt.REFERENCE,["#87afff",111]],[pt.NUMBER,["#ffd700",220]],[pt.STRING,["#b4bd68",32]],[pt.BOOLEAN,["#faa023",209]],[pt.PATH,["#d75fd7",170]],[pt.URL,["#d75fd7",170]],[pt.ADDED,["#5faf00",70]],[pt.REMOVED,["#ff3131",160]],[pt.CODE,["#87afff",111]],[pt.SIZE,["#ffd700",220]]]),Wo=t=>t;Kk={[pt.ID]:Wo({pretty:(t,e)=>typeof e=="number"?ri(t,`${e}`,pt.NUMBER):ri(t,e,pt.CODE),json:t=>t}),[pt.INSPECT]:Wo({pretty:(t,e)=>Vk(t,e),json:t=>t}),[pt.NUMBER]:Wo({pretty:(t,e)=>ri(t,`${e}`,pt.NUMBER),json:t=>t}),[pt.IDENT]:Wo({pretty:(t,e)=>es(t,e),json:t=>cn(t)}),[pt.LOCATOR]:Wo({pretty:(t,e)=>Yr(t,e),json:t=>cl(t)}),[pt.DESCRIPTOR]:Wo({pretty:(t,e)=>ni(t,e),json:t=>ll(t)}),[pt.RESOLUTION]:Wo({pretty:(t,{descriptor:e,locator:r})=>jB(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:ll(t),locator:e!==null?cl(e):null})}),[pt.DEPENDENT]:Wo({pretty:(t,{locator:e,descriptor:r})=>h3(t,e,r),json:({locator:t,descriptor:e})=>({locator:cl(t),descriptor:ll(e)})}),[pt.PACKAGE_EXTENSION]:Wo({pretty:(t,e)=>{switch(e.type){case"Dependency":return`${es(t,e.parentDescriptor)} \u27A4 ${ri(t,"dependencies",pt.CODE)} \u27A4 ${es(t,e.descriptor)}`;case"PeerDependency":return`${es(t,e.parentDescriptor)} \u27A4 ${ri(t,"peerDependencies",pt.CODE)} \u27A4 ${es(t,e.descriptor)}`;case"PeerDependencyMeta":return`${es(t,e.parentDescriptor)} \u27A4 ${ri(t,"peerDependenciesMeta",pt.CODE)} \u27A4 ${es(t,Da(e.selector))} \u27A4 ${ri(t,e.key,pt.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case"Dependency":return`${cn(t.parentDescriptor)} > ${cn(t.descriptor)}`;case"PeerDependency":return`${cn(t.parentDescriptor)} >> ${cn(t.descriptor)}`;case"PeerDependencyMeta":return`${cn(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[pt.SETTING]:Wo({pretty:(t,e)=>(t.get(e),KE(t,ri(t,e,pt.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[pt.DURATION]:Wo({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),s=Math.ceil((e-r*60*1e3)/1e3);return s===0?`${r}m`:`${r}m ${s}s`}else{let r=Math.floor(e/1e3),s=e-r*1e3;return s===0?`${r}s`:`${r}s ${s}ms`}},json:t=>t}),[pt.SIZE]:Wo({pretty:(t,e)=>ri(t,gAe(e),pt.NUMBER),json:t=>t}),[pt.SIZE_DIFF]:Wo({pretty:(t,e)=>{let r=e>=0?"+":"-",s=r==="+"?pt.REMOVED:pt.ADDED;return ri(t,`${r} ${gAe(Math.max(Math.abs(e),1))}`,s)},json:t=>t}),[pt.PATH]:Wo({pretty:(t,e)=>ri(t,ue.fromPortablePath(e),pt.PATH),json:t=>ue.fromPortablePath(t)}),[pt.MARKDOWN]:Wo({pretty:(t,{text:e,format:r,paragraphs:s})=>qo(e,{format:r,paragraphs:s}),json:({text:t})=>t}),[pt.MARKDOWN_INLINE]:Wo({pretty:(t,e)=>(e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(r,s,a)=>Ut(t,s+a+s,pt.CODE)),e=e.replace(/(\*\*)((?:.|[\n])*?)\1/g,(r,s,a)=>Kd(t,a,2)),e),json:t=>t})};Eut=!!process.env.KONSOLE_VERSION;Xk=(a=>(a.Error="error",a.Warning="warning",a.Info="info",a.Discard="discard",a))(Xk||{})});var mAe=L(JE=>{"use strict";Object.defineProperty(JE,"__esModule",{value:!0});JE.splitWhen=JE.flatten=void 0;function Cut(t){return t.reduce((e,r)=>[].concat(e,r),[])}JE.flatten=Cut;function wut(t,e){let r=[[]],s=0;for(let a of t)e(a)?(s++,r[s]=[]):r[s].push(a);return r}JE.splitWhen=wut});var yAe=L($k=>{"use strict";Object.defineProperty($k,"__esModule",{value:!0});$k.isEnoentCodeError=void 0;function But(t){return t.code==="ENOENT"}$k.isEnoentCodeError=But});var EAe=L(eQ=>{"use strict";Object.defineProperty(eQ,"__esModule",{value:!0});eQ.createDirentFromStats=void 0;var g3=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function vut(t,e){return new g3(t,e)}eQ.createDirentFromStats=vut});var BAe=L(us=>{"use strict";Object.defineProperty(us,"__esModule",{value:!0});us.convertPosixPathToPattern=us.convertWindowsPathToPattern=us.convertPathToPattern=us.escapePosixPath=us.escapeWindowsPath=us.escape=us.removeLeadingDotSegment=us.makeAbsolute=us.unixify=void 0;var Sut=Ie("os"),Dut=Ie("path"),IAe=Sut.platform()==="win32",but=2,Put=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g,xut=/(\\?)([()[\]{}]|^!|[!+@](?=\())/g,kut=/^\\\\([.?])/,Qut=/\\(?![!()+@[\]{}])/g;function Tut(t){return t.replace(/\\/g,"/")}us.unixify=Tut;function Rut(t,e){return Dut.resolve(t,e)}us.makeAbsolute=Rut;function Fut(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e==="\\")return t.slice(but)}return t}us.removeLeadingDotSegment=Fut;us.escape=IAe?d3:m3;function d3(t){return t.replace(xut,"\\$2")}us.escapeWindowsPath=d3;function m3(t){return t.replace(Put,"\\$2")}us.escapePosixPath=m3;us.convertPathToPattern=IAe?CAe:wAe;function CAe(t){return d3(t).replace(kut,"//$1").replace(Qut,"/")}us.convertWindowsPathToPattern=CAe;function wAe(t){return m3(t)}us.convertPosixPathToPattern=wAe});var SAe=L((q7t,vAe)=>{vAe.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var PAe=L((G7t,bAe)=>{var Nut=SAe(),DAe={"{":"}","(":")","[":"]"},Out=function(t){if(t[0]==="!")return!0;for(var e=0,r=-2,s=-2,a=-2,n=-2,c=-2;e<t.length;){if(t[e]==="*"||t[e+1]==="?"&&/[\].+)]/.test(t[e])||s!==-1&&t[e]==="["&&t[e+1]!=="]"&&(s<e&&(s=t.indexOf("]",e)),s>e&&(c===-1||c>s||(c=t.indexOf("\\",e),c===-1||c>s)))||a!==-1&&t[e]==="{"&&t[e+1]!=="}"&&(a=t.indexOf("}",e),a>e&&(c=t.indexOf("\\",e),c===-1||c>a))||n!==-1&&t[e]==="("&&t[e+1]==="?"&&/[:!=]/.test(t[e+2])&&t[e+3]!==")"&&(n=t.indexOf(")",e),n>e&&(c=t.indexOf("\\",e),c===-1||c>n))||r!==-1&&t[e]==="("&&t[e+1]!=="|"&&(r<e&&(r=t.indexOf("|",e)),r!==-1&&t[r+1]!==")"&&(n=t.indexOf(")",r),n>r&&(c=t.indexOf("\\",r),c===-1||c>n))))return!0;if(t[e]==="\\"){var f=t[e+1];e+=2;var p=DAe[f];if(p){var h=t.indexOf(p,e);h!==-1&&(e=h+1)}if(t[e]==="!")return!0}else e++}return!1},Lut=function(t){if(t[0]==="!")return!0;for(var e=0;e<t.length;){if(/[*?{}()[\]]/.test(t[e]))return!0;if(t[e]==="\\"){var r=t[e+1];e+=2;var s=DAe[r];if(s){var a=t.indexOf(s,e);a!==-1&&(e=a+1)}if(t[e]==="!")return!0}else e++}return!1};bAe.exports=function(e,r){if(typeof e!="string"||e==="")return!1;if(Nut(e))return!0;var s=Out;return r&&r.strict===!1&&(s=Lut),s(e)}});var kAe=L((W7t,xAe)=>{"use strict";var Mut=PAe(),_ut=Ie("path").posix.dirname,Uut=Ie("os").platform()==="win32",y3="/",Hut=/\\/g,jut=/[\{\[].*[\}\]]$/,qut=/(^|[^\\])([\{\[]|\([^\)]+$)/,Gut=/\\([\!\*\?\|\[\]\(\)\{\}])/g;xAe.exports=function(e,r){var s=Object.assign({flipBackslashes:!0},r);s.flipBackslashes&&Uut&&e.indexOf(y3)<0&&(e=e.replace(Hut,y3)),jut.test(e)&&(e+=y3),e+="a";do e=_ut(e);while(Mut(e)||qut.test(e));return e.replace(Gut,"$1")}});var MAe=L(jr=>{"use strict";Object.defineProperty(jr,"__esModule",{value:!0});jr.removeDuplicateSlashes=jr.matchAny=jr.convertPatternsToRe=jr.makeRe=jr.getPatternParts=jr.expandBraceExpansion=jr.expandPatternsWithBraceExpansion=jr.isAffectDepthOfReadingPattern=jr.endsWithSlashGlobStar=jr.hasGlobStar=jr.getBaseDirectory=jr.isPatternRelatedToParentDirectory=jr.getPatternsOutsideCurrentDirectory=jr.getPatternsInsideCurrentDirectory=jr.getPositivePatterns=jr.getNegativePatterns=jr.isPositivePattern=jr.isNegativePattern=jr.convertToNegativePattern=jr.convertToPositivePattern=jr.isDynamicPattern=jr.isStaticPattern=void 0;var Wut=Ie("path"),Yut=kAe(),E3=Sa(),QAe="**",Vut="\\",Kut=/[*?]|^!/,Jut=/\[[^[]*]/,zut=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,Zut=/[!*+?@]\([^(]*\)/,Xut=/,|\.\./,$ut=/(?!^)\/{2,}/g;function TAe(t,e={}){return!RAe(t,e)}jr.isStaticPattern=TAe;function RAe(t,e={}){return t===""?!1:!!(e.caseSensitiveMatch===!1||t.includes(Vut)||Kut.test(t)||Jut.test(t)||zut.test(t)||e.extglob!==!1&&Zut.test(t)||e.braceExpansion!==!1&&eft(t))}jr.isDynamicPattern=RAe;function eft(t){let e=t.indexOf("{");if(e===-1)return!1;let r=t.indexOf("}",e+1);if(r===-1)return!1;let s=t.slice(e,r);return Xut.test(s)}function tft(t){return tQ(t)?t.slice(1):t}jr.convertToPositivePattern=tft;function rft(t){return"!"+t}jr.convertToNegativePattern=rft;function tQ(t){return t.startsWith("!")&&t[1]!=="("}jr.isNegativePattern=tQ;function FAe(t){return!tQ(t)}jr.isPositivePattern=FAe;function nft(t){return t.filter(tQ)}jr.getNegativePatterns=nft;function ift(t){return t.filter(FAe)}jr.getPositivePatterns=ift;function sft(t){return t.filter(e=>!I3(e))}jr.getPatternsInsideCurrentDirectory=sft;function oft(t){return t.filter(I3)}jr.getPatternsOutsideCurrentDirectory=oft;function I3(t){return t.startsWith("..")||t.startsWith("./..")}jr.isPatternRelatedToParentDirectory=I3;function aft(t){return Yut(t,{flipBackslashes:!1})}jr.getBaseDirectory=aft;function lft(t){return t.includes(QAe)}jr.hasGlobStar=lft;function NAe(t){return t.endsWith("/"+QAe)}jr.endsWithSlashGlobStar=NAe;function cft(t){let e=Wut.basename(t);return NAe(t)||TAe(e)}jr.isAffectDepthOfReadingPattern=cft;function uft(t){return t.reduce((e,r)=>e.concat(OAe(r)),[])}jr.expandPatternsWithBraceExpansion=uft;function OAe(t){let e=E3.braces(t,{expand:!0,nodupes:!0,keepEscaping:!0});return e.sort((r,s)=>r.length-s.length),e.filter(r=>r!=="")}jr.expandBraceExpansion=OAe;function fft(t,e){let{parts:r}=E3.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.length===0&&(r=[t]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}jr.getPatternParts=fft;function LAe(t,e){return E3.makeRe(t,e)}jr.makeRe=LAe;function Aft(t,e){return t.map(r=>LAe(r,e))}jr.convertPatternsToRe=Aft;function pft(t,e){return e.some(r=>r.test(t))}jr.matchAny=pft;function hft(t){return t.replace($ut,"/")}jr.removeDuplicateSlashes=hft});var jAe=L((V7t,HAe)=>{"use strict";var gft=Ie("stream"),_Ae=gft.PassThrough,dft=Array.prototype.slice;HAe.exports=mft;function mft(){let t=[],e=dft.call(arguments),r=!1,s=e[e.length-1];s&&!Array.isArray(s)&&s.pipe==null?e.pop():s={};let a=s.end!==!1,n=s.pipeError===!0;s.objectMode==null&&(s.objectMode=!0),s.highWaterMark==null&&(s.highWaterMark=64*1024);let c=_Ae(s);function f(){for(let E=0,C=arguments.length;E<C;E++)t.push(UAe(arguments[E],s));return p(),this}function p(){if(r)return;r=!0;let E=t.shift();if(!E){process.nextTick(h);return}Array.isArray(E)||(E=[E]);let C=E.length+1;function S(){--C>0||(r=!1,p())}function P(I){function R(){I.removeListener("merge2UnpipeEnd",R),I.removeListener("end",R),n&&I.removeListener("error",N),S()}function N(U){c.emit("error",U)}if(I._readableState.endEmitted)return S();I.on("merge2UnpipeEnd",R),I.on("end",R),n&&I.on("error",N),I.pipe(c,{end:!1}),I.resume()}for(let I=0;I<E.length;I++)P(E[I]);S()}function h(){r=!1,c.emit("queueDrain"),a&&c.end()}return c.setMaxListeners(0),c.add=f,c.on("unpipe",function(E){E.emit("merge2UnpipeEnd")}),e.length&&f.apply(null,e),c}function UAe(t,e){if(Array.isArray(t))for(let r=0,s=t.length;r<s;r++)t[r]=UAe(t[r],e);else{if(!t._readableState&&t.pipe&&(t=t.pipe(_Ae(e))),!t._readableState||!t.pause||!t.pipe)throw new Error("Only readable stream can be merged.");t.pause()}return t}});var GAe=L(rQ=>{"use strict";Object.defineProperty(rQ,"__esModule",{value:!0});rQ.merge=void 0;var yft=jAe();function Eft(t){let e=yft(t);return t.forEach(r=>{r.once("error",s=>e.emit("error",s))}),e.once("close",()=>qAe(t)),e.once("end",()=>qAe(t)),e}rQ.merge=Eft;function qAe(t){t.forEach(e=>e.emit("close"))}});var WAe=L(zE=>{"use strict";Object.defineProperty(zE,"__esModule",{value:!0});zE.isEmpty=zE.isString=void 0;function Ift(t){return typeof t=="string"}zE.isString=Ift;function Cft(t){return t===""}zE.isEmpty=Cft});var Qp=L(Vo=>{"use strict";Object.defineProperty(Vo,"__esModule",{value:!0});Vo.string=Vo.stream=Vo.pattern=Vo.path=Vo.fs=Vo.errno=Vo.array=void 0;var wft=mAe();Vo.array=wft;var Bft=yAe();Vo.errno=Bft;var vft=EAe();Vo.fs=vft;var Sft=BAe();Vo.path=Sft;var Dft=MAe();Vo.pattern=Dft;var bft=GAe();Vo.stream=bft;var Pft=WAe();Vo.string=Pft});var JAe=L(Ko=>{"use strict";Object.defineProperty(Ko,"__esModule",{value:!0});Ko.convertPatternGroupToTask=Ko.convertPatternGroupsToTasks=Ko.groupPatternsByBaseDirectory=Ko.getNegativePatternsAsPositive=Ko.getPositivePatterns=Ko.convertPatternsToTasks=Ko.generate=void 0;var ju=Qp();function xft(t,e){let r=YAe(t,e),s=YAe(e.ignore,e),a=VAe(r),n=KAe(r,s),c=a.filter(E=>ju.pattern.isStaticPattern(E,e)),f=a.filter(E=>ju.pattern.isDynamicPattern(E,e)),p=C3(c,n,!1),h=C3(f,n,!0);return p.concat(h)}Ko.generate=xft;function YAe(t,e){let r=t;return e.braceExpansion&&(r=ju.pattern.expandPatternsWithBraceExpansion(r)),e.baseNameMatch&&(r=r.map(s=>s.includes("/")?s:`**/${s}`)),r.map(s=>ju.pattern.removeDuplicateSlashes(s))}function C3(t,e,r){let s=[],a=ju.pattern.getPatternsOutsideCurrentDirectory(t),n=ju.pattern.getPatternsInsideCurrentDirectory(t),c=w3(a),f=w3(n);return s.push(...B3(c,e,r)),"."in f?s.push(v3(".",n,e,r)):s.push(...B3(f,e,r)),s}Ko.convertPatternsToTasks=C3;function VAe(t){return ju.pattern.getPositivePatterns(t)}Ko.getPositivePatterns=VAe;function KAe(t,e){return ju.pattern.getNegativePatterns(t).concat(e).map(ju.pattern.convertToPositivePattern)}Ko.getNegativePatternsAsPositive=KAe;function w3(t){let e={};return t.reduce((r,s)=>{let a=ju.pattern.getBaseDirectory(s);return a in r?r[a].push(s):r[a]=[s],r},e)}Ko.groupPatternsByBaseDirectory=w3;function B3(t,e,r){return Object.keys(t).map(s=>v3(s,t[s],e,r))}Ko.convertPatternGroupsToTasks=B3;function v3(t,e,r,s){return{dynamic:s,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(ju.pattern.convertToNegativePattern))}}Ko.convertPatternGroupToTask=v3});var ZAe=L(nQ=>{"use strict";Object.defineProperty(nQ,"__esModule",{value:!0});nQ.read=void 0;function kft(t,e,r){e.fs.lstat(t,(s,a)=>{if(s!==null){zAe(r,s);return}if(!a.isSymbolicLink()||!e.followSymbolicLink){S3(r,a);return}e.fs.stat(t,(n,c)=>{if(n!==null){if(e.throwErrorOnBrokenSymbolicLink){zAe(r,n);return}S3(r,a);return}e.markSymbolicLink&&(c.isSymbolicLink=()=>!0),S3(r,c)})})}nQ.read=kft;function zAe(t,e){t(e)}function S3(t,e){t(null,e)}});var XAe=L(iQ=>{"use strict";Object.defineProperty(iQ,"__esModule",{value:!0});iQ.read=void 0;function Qft(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let s=e.fs.statSync(t);return e.markSymbolicLink&&(s.isSymbolicLink=()=>!0),s}catch(s){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw s}}iQ.read=Qft});var $Ae=L(p0=>{"use strict";Object.defineProperty(p0,"__esModule",{value:!0});p0.createFileSystemAdapter=p0.FILE_SYSTEM_ADAPTER=void 0;var sQ=Ie("fs");p0.FILE_SYSTEM_ADAPTER={lstat:sQ.lstat,stat:sQ.stat,lstatSync:sQ.lstatSync,statSync:sQ.statSync};function Tft(t){return t===void 0?p0.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},p0.FILE_SYSTEM_ADAPTER),t)}p0.createFileSystemAdapter=Tft});var epe=L(b3=>{"use strict";Object.defineProperty(b3,"__esModule",{value:!0});var Rft=$Ae(),D3=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=Rft.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e??r}};b3.default=D3});var zd=L(h0=>{"use strict";Object.defineProperty(h0,"__esModule",{value:!0});h0.statSync=h0.stat=h0.Settings=void 0;var tpe=ZAe(),Fft=XAe(),P3=epe();h0.Settings=P3.default;function Nft(t,e,r){if(typeof e=="function"){tpe.read(t,x3(),e);return}tpe.read(t,x3(e),r)}h0.stat=Nft;function Oft(t,e){let r=x3(e);return Fft.read(t,r)}h0.statSync=Oft;function x3(t={}){return t instanceof P3.default?t:new P3.default(t)}});var ipe=L((nKt,npe)=>{var rpe;npe.exports=typeof queueMicrotask=="function"?queueMicrotask.bind(typeof window<"u"?window:global):t=>(rpe||(rpe=Promise.resolve())).then(t).catch(e=>setTimeout(()=>{throw e},0))});var ope=L((iKt,spe)=>{spe.exports=Mft;var Lft=ipe();function Mft(t,e){let r,s,a,n=!0;Array.isArray(t)?(r=[],s=t.length):(a=Object.keys(t),r={},s=a.length);function c(p){function h(){e&&e(p,r),e=null}n?Lft(h):h()}function f(p,h,E){r[p]=E,(--s===0||h)&&c(h)}s?a?a.forEach(function(p){t[p](function(h,E){f(p,h,E)})}):t.forEach(function(p,h){p(function(E,C){f(h,E,C)})}):c(null),n=!1}});var k3=L(aQ=>{"use strict";Object.defineProperty(aQ,"__esModule",{value:!0});aQ.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var oQ=process.versions.node.split(".");if(oQ[0]===void 0||oQ[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var ape=Number.parseInt(oQ[0],10),_ft=Number.parseInt(oQ[1],10),lpe=10,Uft=10,Hft=ape>lpe,jft=ape===lpe&&_ft>=Uft;aQ.IS_SUPPORT_READDIR_WITH_FILE_TYPES=Hft||jft});var cpe=L(lQ=>{"use strict";Object.defineProperty(lQ,"__esModule",{value:!0});lQ.createDirentFromStats=void 0;var Q3=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function qft(t,e){return new Q3(t,e)}lQ.createDirentFromStats=qft});var T3=L(cQ=>{"use strict";Object.defineProperty(cQ,"__esModule",{value:!0});cQ.fs=void 0;var Gft=cpe();cQ.fs=Gft});var R3=L(uQ=>{"use strict";Object.defineProperty(uQ,"__esModule",{value:!0});uQ.joinPathSegments=void 0;function Wft(t,e,r){return t.endsWith(r)?t+e:t+r+e}uQ.joinPathSegments=Wft});var gpe=L(g0=>{"use strict";Object.defineProperty(g0,"__esModule",{value:!0});g0.readdir=g0.readdirWithFileTypes=g0.read=void 0;var Yft=zd(),upe=ope(),Vft=k3(),fpe=T3(),Ape=R3();function Kft(t,e,r){if(!e.stats&&Vft.IS_SUPPORT_READDIR_WITH_FILE_TYPES){ppe(t,e,r);return}hpe(t,e,r)}g0.read=Kft;function ppe(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(s,a)=>{if(s!==null){fQ(r,s);return}let n=a.map(f=>({dirent:f,name:f.name,path:Ape.joinPathSegments(t,f.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){F3(r,n);return}let c=n.map(f=>Jft(f,e));upe(c,(f,p)=>{if(f!==null){fQ(r,f);return}F3(r,p)})})}g0.readdirWithFileTypes=ppe;function Jft(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(s,a)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){r(s);return}r(null,t);return}t.dirent=fpe.fs.createDirentFromStats(t.name,a),r(null,t)})}}function hpe(t,e,r){e.fs.readdir(t,(s,a)=>{if(s!==null){fQ(r,s);return}let n=a.map(c=>{let f=Ape.joinPathSegments(t,c,e.pathSegmentSeparator);return p=>{Yft.stat(f,e.fsStatSettings,(h,E)=>{if(h!==null){p(h);return}let C={name:c,path:f,dirent:fpe.fs.createDirentFromStats(c,E)};e.stats&&(C.stats=E),p(null,C)})}});upe(n,(c,f)=>{if(c!==null){fQ(r,c);return}F3(r,f)})})}g0.readdir=hpe;function fQ(t,e){t(e)}function F3(t,e){t(null,e)}});var Ipe=L(d0=>{"use strict";Object.defineProperty(d0,"__esModule",{value:!0});d0.readdir=d0.readdirWithFileTypes=d0.read=void 0;var zft=zd(),Zft=k3(),dpe=T3(),mpe=R3();function Xft(t,e){return!e.stats&&Zft.IS_SUPPORT_READDIR_WITH_FILE_TYPES?ype(t,e):Epe(t,e)}d0.read=Xft;function ype(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(s=>{let a={dirent:s,name:s.name,path:mpe.joinPathSegments(t,s.name,e.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let n=e.fs.statSync(a.path);a.dirent=dpe.fs.createDirentFromStats(a.name,n)}catch(n){if(e.throwErrorOnBrokenSymbolicLink)throw n}return a})}d0.readdirWithFileTypes=ype;function Epe(t,e){return e.fs.readdirSync(t).map(s=>{let a=mpe.joinPathSegments(t,s,e.pathSegmentSeparator),n=zft.statSync(a,e.fsStatSettings),c={name:s,path:a,dirent:dpe.fs.createDirentFromStats(s,n)};return e.stats&&(c.stats=n),c})}d0.readdir=Epe});var Cpe=L(m0=>{"use strict";Object.defineProperty(m0,"__esModule",{value:!0});m0.createFileSystemAdapter=m0.FILE_SYSTEM_ADAPTER=void 0;var ZE=Ie("fs");m0.FILE_SYSTEM_ADAPTER={lstat:ZE.lstat,stat:ZE.stat,lstatSync:ZE.lstatSync,statSync:ZE.statSync,readdir:ZE.readdir,readdirSync:ZE.readdirSync};function $ft(t){return t===void 0?m0.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},m0.FILE_SYSTEM_ADAPTER),t)}m0.createFileSystemAdapter=$ft});var wpe=L(O3=>{"use strict";Object.defineProperty(O3,"__esModule",{value:!0});var eAt=Ie("path"),tAt=zd(),rAt=Cpe(),N3=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=rAt.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,eAt.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new tAt.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};O3.default=N3});var AQ=L(y0=>{"use strict";Object.defineProperty(y0,"__esModule",{value:!0});y0.Settings=y0.scandirSync=y0.scandir=void 0;var Bpe=gpe(),nAt=Ipe(),L3=wpe();y0.Settings=L3.default;function iAt(t,e,r){if(typeof e=="function"){Bpe.read(t,M3(),e);return}Bpe.read(t,M3(e),r)}y0.scandir=iAt;function sAt(t,e){let r=M3(e);return nAt.read(t,r)}y0.scandirSync=sAt;function M3(t={}){return t instanceof L3.default?t:new L3.default(t)}});var Spe=L((hKt,vpe)=>{"use strict";function oAt(t){var e=new t,r=e;function s(){var n=e;return n.next?e=n.next:(e=new t,r=e),n.next=null,n}function a(n){r.next=n,r=n}return{get:s,release:a}}vpe.exports=oAt});var bpe=L((gKt,_3)=>{"use strict";var aAt=Spe();function Dpe(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),!(r>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var s=aAt(lAt),a=null,n=null,c=0,f=null,p={push:R,drain:Tc,saturated:Tc,pause:E,paused:!1,get concurrency(){return r},set concurrency(Ae){if(!(Ae>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(r=Ae,!p.paused)for(;a&&c<r;)c++,U()},running:h,resume:P,idle:I,length:C,getQueue:S,unshift:N,empty:Tc,kill:W,killAndDrain:te,error:ie};return p;function h(){return c}function E(){p.paused=!0}function C(){for(var Ae=a,ce=0;Ae;)Ae=Ae.next,ce++;return ce}function S(){for(var Ae=a,ce=[];Ae;)ce.push(Ae.value),Ae=Ae.next;return ce}function P(){if(p.paused){if(p.paused=!1,a===null){c++,U();return}for(;a&&c<r;)c++,U()}}function I(){return c===0&&p.length()===0}function R(Ae,ce){var me=s.get();me.context=t,me.release=U,me.value=Ae,me.callback=ce||Tc,me.errorHandler=f,c>=r||p.paused?n?(n.next=me,n=me):(a=me,n=me,p.saturated()):(c++,e.call(t,me.value,me.worked))}function N(Ae,ce){var me=s.get();me.context=t,me.release=U,me.value=Ae,me.callback=ce||Tc,me.errorHandler=f,c>=r||p.paused?a?(me.next=a,a=me):(a=me,n=me,p.saturated()):(c++,e.call(t,me.value,me.worked))}function U(Ae){Ae&&s.release(Ae);var ce=a;ce&&c<=r?p.paused?c--:(n===a&&(n=null),a=ce.next,ce.next=null,e.call(t,ce.value,ce.worked),n===null&&p.empty()):--c===0&&p.drain()}function W(){a=null,n=null,p.drain=Tc}function te(){a=null,n=null,p.drain(),p.drain=Tc}function ie(Ae){f=Ae}}function Tc(){}function lAt(){this.value=null,this.callback=Tc,this.next=null,this.release=Tc,this.context=null,this.errorHandler=null;var t=this;this.worked=function(r,s){var a=t.callback,n=t.errorHandler,c=t.value;t.value=null,t.callback=Tc,t.errorHandler&&n(r,c),a.call(t.context,r,s),t.release(t)}}function cAt(t,e,r){typeof t=="function"&&(r=e,e=t,t=null);function s(E,C){e.call(this,E).then(function(S){C(null,S)},C)}var a=Dpe(t,s,r),n=a.push,c=a.unshift;return a.push=f,a.unshift=p,a.drained=h,a;function f(E){var C=new Promise(function(S,P){n(E,function(I,R){if(I){P(I);return}S(R)})});return C.catch(Tc),C}function p(E){var C=new Promise(function(S,P){c(E,function(I,R){if(I){P(I);return}S(R)})});return C.catch(Tc),C}function h(){if(a.idle())return new Promise(function(S){S()});var E=a.drain,C=new Promise(function(S){a.drain=function(){E(),S()}});return C}}_3.exports=Dpe;_3.exports.promise=cAt});var pQ=L(Xf=>{"use strict";Object.defineProperty(Xf,"__esModule",{value:!0});Xf.joinPathSegments=Xf.replacePathSegmentSeparator=Xf.isAppliedFilter=Xf.isFatalError=void 0;function uAt(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}Xf.isFatalError=uAt;function fAt(t,e){return t===null||t(e)}Xf.isAppliedFilter=fAt;function AAt(t,e){return t.split(/[/\\]/).join(e)}Xf.replacePathSegmentSeparator=AAt;function pAt(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}Xf.joinPathSegments=pAt});var j3=L(H3=>{"use strict";Object.defineProperty(H3,"__esModule",{value:!0});var hAt=pQ(),U3=class{constructor(e,r){this._root=e,this._settings=r,this._root=hAt.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};H3.default=U3});var W3=L(G3=>{"use strict";Object.defineProperty(G3,"__esModule",{value:!0});var gAt=Ie("events"),dAt=AQ(),mAt=bpe(),hQ=pQ(),yAt=j3(),q3=class extends yAt.default{constructor(e,r){super(e,r),this._settings=r,this._scandir=dAt.scandir,this._emitter=new gAt.EventEmitter,this._queue=mAt(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,r){let s={directory:e,base:r};this._queue.push(s,a=>{a!==null&&this._handleError(a)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(s,a)=>{if(s!==null){r(s,void 0);return}for(let n of a)this._handleEntry(n,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!hQ.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let s=e.path;r!==void 0&&(e.path=hQ.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),hQ.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&hQ.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(s,r===void 0?void 0:e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};G3.default=q3});var Ppe=L(V3=>{"use strict";Object.defineProperty(V3,"__esModule",{value:!0});var EAt=W3(),Y3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new EAt.default(this._root,this._settings),this._storage=[]}read(e){this._reader.onError(r=>{IAt(e,r)}),this._reader.onEntry(r=>{this._storage.push(r)}),this._reader.onEnd(()=>{CAt(e,this._storage)}),this._reader.read()}};V3.default=Y3;function IAt(t,e){t(e)}function CAt(t,e){t(null,e)}});var xpe=L(J3=>{"use strict";Object.defineProperty(J3,"__esModule",{value:!0});var wAt=Ie("stream"),BAt=W3(),K3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new BAt.default(this._root,this._settings),this._stream=new wAt.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};J3.default=K3});var kpe=L(Z3=>{"use strict";Object.defineProperty(Z3,"__esModule",{value:!0});var vAt=AQ(),gQ=pQ(),SAt=j3(),z3=class extends SAt.default{constructor(){super(...arguments),this._scandir=vAt.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let s=this._scandir(e,this._settings.fsScandirSettings);for(let a of s)this._handleEntry(a,r)}catch(s){this._handleError(s)}}_handleError(e){if(gQ.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let s=e.path;r!==void 0&&(e.path=gQ.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),gQ.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&gQ.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(s,r===void 0?void 0:e.path)}_pushToStorage(e){this._storage.push(e)}};Z3.default=z3});var Qpe=L($3=>{"use strict";Object.defineProperty($3,"__esModule",{value:!0});var DAt=kpe(),X3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new DAt.default(this._root,this._settings)}read(){return this._reader.read()}};$3.default=X3});var Tpe=L(t8=>{"use strict";Object.defineProperty(t8,"__esModule",{value:!0});var bAt=Ie("path"),PAt=AQ(),e8=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,bAt.sep),this.fsScandirSettings=new PAt.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};t8.default=e8});var mQ=L($f=>{"use strict";Object.defineProperty($f,"__esModule",{value:!0});$f.Settings=$f.walkStream=$f.walkSync=$f.walk=void 0;var Rpe=Ppe(),xAt=xpe(),kAt=Qpe(),r8=Tpe();$f.Settings=r8.default;function QAt(t,e,r){if(typeof e=="function"){new Rpe.default(t,dQ()).read(e);return}new Rpe.default(t,dQ(e)).read(r)}$f.walk=QAt;function TAt(t,e){let r=dQ(e);return new kAt.default(t,r).read()}$f.walkSync=TAt;function RAt(t,e){let r=dQ(e);return new xAt.default(t,r).read()}$f.walkStream=RAt;function dQ(t={}){return t instanceof r8.default?t:new r8.default(t)}});var yQ=L(i8=>{"use strict";Object.defineProperty(i8,"__esModule",{value:!0});var FAt=Ie("path"),NAt=zd(),Fpe=Qp(),n8=class{constructor(e){this._settings=e,this._fsStatSettings=new NAt.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return FAt.resolve(this._settings.cwd,e)}_makeEntry(e,r){let s={name:r,path:r,dirent:Fpe.fs.createDirentFromStats(r,e)};return this._settings.stats&&(s.stats=e),s}_isFatalError(e){return!Fpe.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};i8.default=n8});var a8=L(o8=>{"use strict";Object.defineProperty(o8,"__esModule",{value:!0});var OAt=Ie("stream"),LAt=zd(),MAt=mQ(),_At=yQ(),s8=class extends _At.default{constructor(){super(...arguments),this._walkStream=MAt.walkStream,this._stat=LAt.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let s=e.map(this._getFullEntryPath,this),a=new OAt.PassThrough({objectMode:!0});a._write=(n,c,f)=>this._getEntry(s[n],e[n],r).then(p=>{p!==null&&r.entryFilter(p)&&a.push(p),n===s.length-1&&a.end(),f()}).catch(f);for(let n=0;n<s.length;n++)a.write(n);return a}_getEntry(e,r,s){return this._getStat(e).then(a=>this._makeEntry(a,r)).catch(a=>{if(s.errorFilter(a))return null;throw a})}_getStat(e){return new Promise((r,s)=>{this._stat(e,this._fsStatSettings,(a,n)=>a===null?r(n):s(a))})}};o8.default=s8});var Npe=L(c8=>{"use strict";Object.defineProperty(c8,"__esModule",{value:!0});var UAt=mQ(),HAt=yQ(),jAt=a8(),l8=class extends HAt.default{constructor(){super(...arguments),this._walkAsync=UAt.walk,this._readerStream=new jAt.default(this._settings)}dynamic(e,r){return new Promise((s,a)=>{this._walkAsync(e,r,(n,c)=>{n===null?s(c):a(n)})})}async static(e,r){let s=[],a=this._readerStream.static(e,r);return new Promise((n,c)=>{a.once("error",c),a.on("data",f=>s.push(f)),a.once("end",()=>n(s))})}};c8.default=l8});var Ope=L(f8=>{"use strict";Object.defineProperty(f8,"__esModule",{value:!0});var qB=Qp(),u8=class{constructor(e,r,s){this._patterns=e,this._settings=r,this._micromatchOptions=s,this._storage=[],this._fillStorage()}_fillStorage(){for(let e of this._patterns){let r=this._getPatternSegments(e),s=this._splitSegmentsIntoSections(r);this._storage.push({complete:s.length<=1,pattern:e,segments:r,sections:s})}}_getPatternSegments(e){return qB.pattern.getPatternParts(e,this._micromatchOptions).map(s=>qB.pattern.isDynamicPattern(s,this._settings)?{dynamic:!0,pattern:s,patternRe:qB.pattern.makeRe(s,this._micromatchOptions)}:{dynamic:!1,pattern:s})}_splitSegmentsIntoSections(e){return qB.array.splitWhen(e,r=>r.dynamic&&qB.pattern.hasGlobStar(r.pattern))}};f8.default=u8});var Lpe=L(p8=>{"use strict";Object.defineProperty(p8,"__esModule",{value:!0});var qAt=Ope(),A8=class extends qAt.default{match(e){let r=e.split("/"),s=r.length,a=this._storage.filter(n=>!n.complete||n.segments.length>s);for(let n of a){let c=n.sections[0];if(!n.complete&&s>c.length||r.every((p,h)=>{let E=n.segments[h];return!!(E.dynamic&&E.patternRe.test(p)||!E.dynamic&&E.pattern===p)}))return!0}return!1}};p8.default=A8});var Mpe=L(g8=>{"use strict";Object.defineProperty(g8,"__esModule",{value:!0});var EQ=Qp(),GAt=Lpe(),h8=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,s){let a=this._getMatcher(r),n=this._getNegativePatternsRe(s);return c=>this._filter(e,c,a,n)}_getMatcher(e){return new GAt.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(EQ.pattern.isAffectDepthOfReadingPattern);return EQ.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,s,a){if(this._isSkippedByDeep(e,r.path)||this._isSkippedSymbolicLink(r))return!1;let n=EQ.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(n,s)?!1:this._isSkippedByNegativePatterns(n,a)}_isSkippedByDeep(e,r){return this._settings.deep===1/0?!1:this._getEntryLevel(e,r)>=this._settings.deep}_getEntryLevel(e,r){let s=r.split("/").length;if(e==="")return s;let a=e.split("/").length;return s-a}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!EQ.pattern.matchAny(e,r)}};g8.default=h8});var _pe=L(m8=>{"use strict";Object.defineProperty(m8,"__esModule",{value:!0});var Zd=Qp(),d8=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let s=Zd.pattern.convertPatternsToRe(e,this._micromatchOptions),a=Zd.pattern.convertPatternsToRe(r,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0}));return n=>this._filter(n,s,a)}_filter(e,r,s){let a=Zd.path.removeLeadingDotSegment(e.path);if(this._settings.unique&&this._isDuplicateEntry(a)||this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(a,s))return!1;let n=e.dirent.isDirectory(),c=this._isMatchToPatterns(a,r,n)&&!this._isMatchToPatterns(a,s,n);return this._settings.unique&&c&&this._createIndexRecord(a),c}_isDuplicateEntry(e){return this.index.has(e)}_createIndexRecord(e){this.index.set(e,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let s=Zd.path.makeAbsolute(this._settings.cwd,e);return Zd.pattern.matchAny(s,r)}_isMatchToPatterns(e,r,s){let a=Zd.pattern.matchAny(e,r);return!a&&s?Zd.pattern.matchAny(e+"/",r):a}};m8.default=d8});var Upe=L(E8=>{"use strict";Object.defineProperty(E8,"__esModule",{value:!0});var WAt=Qp(),y8=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return WAt.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};E8.default=y8});var jpe=L(C8=>{"use strict";Object.defineProperty(C8,"__esModule",{value:!0});var Hpe=Qp(),I8=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=Hpe.path.makeAbsolute(this._settings.cwd,r),r=Hpe.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};C8.default=I8});var IQ=L(B8=>{"use strict";Object.defineProperty(B8,"__esModule",{value:!0});var YAt=Ie("path"),VAt=Mpe(),KAt=_pe(),JAt=Upe(),zAt=jpe(),w8=class{constructor(e){this._settings=e,this.errorFilter=new JAt.default(this._settings),this.entryFilter=new KAt.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new VAt.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new zAt.default(this._settings)}_getRootDirectory(e){return YAt.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};B8.default=w8});var qpe=L(S8=>{"use strict";Object.defineProperty(S8,"__esModule",{value:!0});var ZAt=Npe(),XAt=IQ(),v8=class extends XAt.default{constructor(){super(...arguments),this._reader=new ZAt.default(this._settings)}async read(e){let r=this._getRootDirectory(e),s=this._getReaderOptions(e);return(await this.api(r,e,s)).map(n=>s.transform(n))}api(e,r,s){return r.dynamic?this._reader.dynamic(e,s):this._reader.static(r.patterns,s)}};S8.default=v8});var Gpe=L(b8=>{"use strict";Object.defineProperty(b8,"__esModule",{value:!0});var $At=Ie("stream"),ept=a8(),tpt=IQ(),D8=class extends tpt.default{constructor(){super(...arguments),this._reader=new ept.default(this._settings)}read(e){let r=this._getRootDirectory(e),s=this._getReaderOptions(e),a=this.api(r,e,s),n=new $At.Readable({objectMode:!0,read:()=>{}});return a.once("error",c=>n.emit("error",c)).on("data",c=>n.emit("data",s.transform(c))).once("end",()=>n.emit("end")),n.once("close",()=>a.destroy()),n}api(e,r,s){return r.dynamic?this._reader.dynamic(e,s):this._reader.static(r.patterns,s)}};b8.default=D8});var Wpe=L(x8=>{"use strict";Object.defineProperty(x8,"__esModule",{value:!0});var rpt=zd(),npt=mQ(),ipt=yQ(),P8=class extends ipt.default{constructor(){super(...arguments),this._walkSync=npt.walkSync,this._statSync=rpt.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let s=[];for(let a of e){let n=this._getFullEntryPath(a),c=this._getEntry(n,a,r);c===null||!r.entryFilter(c)||s.push(c)}return s}_getEntry(e,r,s){try{let a=this._getStat(e);return this._makeEntry(a,r)}catch(a){if(s.errorFilter(a))return null;throw a}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};x8.default=P8});var Ype=L(Q8=>{"use strict";Object.defineProperty(Q8,"__esModule",{value:!0});var spt=Wpe(),opt=IQ(),k8=class extends opt.default{constructor(){super(...arguments),this._reader=new spt.default(this._settings)}read(e){let r=this._getRootDirectory(e),s=this._getReaderOptions(e);return this.api(r,e,s).map(s.transform)}api(e,r,s){return r.dynamic?this._reader.dynamic(e,s):this._reader.static(r.patterns,s)}};Q8.default=k8});var Vpe=L($E=>{"use strict";Object.defineProperty($E,"__esModule",{value:!0});$E.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var XE=Ie("fs"),apt=Ie("os"),lpt=Math.max(apt.cpus().length,1);$E.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:XE.lstat,lstatSync:XE.lstatSync,stat:XE.stat,statSync:XE.statSync,readdir:XE.readdir,readdirSync:XE.readdirSync};var T8=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,lpt),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0),this.ignore=[].concat(this.ignore)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},$E.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};$E.default=T8});var CQ=L((UKt,Jpe)=>{"use strict";var Kpe=JAe(),cpt=qpe(),upt=Gpe(),fpt=Ype(),R8=Vpe(),Rc=Qp();async function F8(t,e){qu(t);let r=N8(t,cpt.default,e),s=await Promise.all(r);return Rc.array.flatten(s)}(function(t){t.glob=t,t.globSync=e,t.globStream=r,t.async=t;function e(h,E){qu(h);let C=N8(h,fpt.default,E);return Rc.array.flatten(C)}t.sync=e;function r(h,E){qu(h);let C=N8(h,upt.default,E);return Rc.stream.merge(C)}t.stream=r;function s(h,E){qu(h);let C=[].concat(h),S=new R8.default(E);return Kpe.generate(C,S)}t.generateTasks=s;function a(h,E){qu(h);let C=new R8.default(E);return Rc.pattern.isDynamicPattern(h,C)}t.isDynamicPattern=a;function n(h){return qu(h),Rc.path.escape(h)}t.escapePath=n;function c(h){return qu(h),Rc.path.convertPathToPattern(h)}t.convertPathToPattern=c;let f;(function(h){function E(S){return qu(S),Rc.path.escapePosixPath(S)}h.escapePath=E;function C(S){return qu(S),Rc.path.convertPosixPathToPattern(S)}h.convertPathToPattern=C})(f=t.posix||(t.posix={}));let p;(function(h){function E(S){return qu(S),Rc.path.escapeWindowsPath(S)}h.escapePath=E;function C(S){return qu(S),Rc.path.convertWindowsPathToPattern(S)}h.convertPathToPattern=C})(p=t.win32||(t.win32={}))})(F8||(F8={}));function N8(t,e,r){let s=[].concat(t),a=new R8.default(r),n=Kpe.generate(s,a),c=new e(a);return n.map(c.read,c)}function qu(t){if(![].concat(t).every(s=>Rc.string.isString(s)&&!Rc.string.isEmpty(s)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}Jpe.exports=F8});var Nn={};Vt(Nn,{checksumFile:()=>BQ,checksumPattern:()=>vQ,makeHash:()=>fs});function fs(...t){let e=(0,wQ.createHash)("sha512"),r="";for(let s of t)typeof s=="string"?r+=s:s&&(r&&(e.update(r),r=""),e.update(s));return r&&e.update(r),e.digest("hex")}async function BQ(t,{baseFs:e,algorithm:r}={baseFs:le,algorithm:"sha512"}){let s=await e.openPromise(t,"r");try{let n=Buffer.allocUnsafeSlow(65536),c=(0,wQ.createHash)(r),f=0;for(;(f=await e.readPromise(s,n,0,65536))!==0;)c.update(f===65536?n:n.slice(0,f));return c.digest("hex")}finally{await e.closePromise(s)}}async function vQ(t,{cwd:e}){let s=(await(0,O8.default)(t,{cwd:ue.fromPortablePath(e),onlyDirectories:!0})).map(f=>`${f}/**/*`),a=await(0,O8.default)([t,...s],{cwd:ue.fromPortablePath(e),onlyFiles:!1});a.sort();let n=await Promise.all(a.map(async f=>{let p=[Buffer.from(f)],h=K.join(e,ue.toPortablePath(f)),E=await le.lstatPromise(h);return E.isSymbolicLink()?p.push(Buffer.from(await le.readlinkPromise(h))):E.isFile()&&p.push(await le.readFilePromise(h)),p.join("\0")})),c=(0,wQ.createHash)("sha512");for(let f of n)c.update(f);return c.digest("hex")}var wQ,O8,E0=Ct(()=>{bt();wQ=Ie("crypto"),O8=et(CQ())});var q={};Vt(q,{allPeerRequests:()=>XB,areDescriptorsEqual:()=>ehe,areIdentsEqual:()=>VB,areLocatorsEqual:()=>KB,areVirtualPackagesEquivalent:()=>Ipt,bindDescriptor:()=>ypt,bindLocator:()=>Ept,convertDescriptorToLocator:()=>SQ,convertLocatorToDescriptor:()=>M8,convertPackageToLocator:()=>gpt,convertToIdent:()=>hpt,convertToManifestRange:()=>kpt,copyPackage:()=>WB,devirtualizeDescriptor:()=>YB,devirtualizeLocator:()=>tI,ensureDevirtualizedDescriptor:()=>dpt,ensureDevirtualizedLocator:()=>mpt,getIdentVendorPath:()=>j8,isPackageCompatible:()=>kQ,isVirtualDescriptor:()=>Tp,isVirtualLocator:()=>Gu,makeDescriptor:()=>On,makeIdent:()=>ba,makeLocator:()=>Vs,makeRange:()=>PQ,parseDescriptor:()=>I0,parseFileStyleRange:()=>Ppt,parseIdent:()=>Da,parseLocator:()=>Rp,parseRange:()=>Xd,prettyDependent:()=>h3,prettyDescriptor:()=>ni,prettyIdent:()=>es,prettyLocator:()=>Yr,prettyLocatorNoColors:()=>p3,prettyRange:()=>nI,prettyReference:()=>zB,prettyResolution:()=>jB,prettyWorkspace:()=>ZB,renamePackage:()=>_8,slugifyIdent:()=>L8,slugifyLocator:()=>rI,sortDescriptors:()=>iI,stringifyDescriptor:()=>ll,stringifyIdent:()=>cn,stringifyLocator:()=>cl,tryParseDescriptor:()=>JB,tryParseIdent:()=>the,tryParseLocator:()=>bQ,tryParseRange:()=>bpt,unwrapIdentFromScope:()=>Tpt,virtualizeDescriptor:()=>U8,virtualizePackage:()=>H8,wrapIdentIntoScope:()=>Qpt});function ba(t,e){if(t?.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:fs(t,e),scope:t,name:e}}function On(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:fs(t.identHash,e),range:e}}function Vs(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:fs(t.identHash,e),reference:e}}function hpt(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function SQ(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function M8(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function gpt(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function _8(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function WB(t){return _8(t,t)}function U8(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return On(t,`virtual:${e}#${t.range}`)}function H8(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return _8(t,Vs(t,`virtual:${e}#${t.reference}`))}function Tp(t){return t.range.startsWith(GB)}function Gu(t){return t.reference.startsWith(GB)}function YB(t){if(!Tp(t))throw new Error("Not a virtual descriptor");return On(t,t.range.replace(DQ,""))}function tI(t){if(!Gu(t))throw new Error("Not a virtual descriptor");return Vs(t,t.reference.replace(DQ,""))}function dpt(t){return Tp(t)?On(t,t.range.replace(DQ,"")):t}function mpt(t){return Gu(t)?Vs(t,t.reference.replace(DQ,"")):t}function ypt(t,e){return t.range.includes("::")?t:On(t,`${t.range}::${eI.default.stringify(e)}`)}function Ept(t,e){return t.reference.includes("::")?t:Vs(t,`${t.reference}::${eI.default.stringify(e)}`)}function VB(t,e){return t.identHash===e.identHash}function ehe(t,e){return t.descriptorHash===e.descriptorHash}function KB(t,e){return t.locatorHash===e.locatorHash}function Ipt(t,e){if(!Gu(t))throw new Error("Invalid package type");if(!Gu(e))throw new Error("Invalid package type");if(!VB(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let s=e.dependencies.get(r.identHash);if(!s||!ehe(r,s))return!1}return!0}function Da(t){let e=the(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function the(t){let e=t.match(Cpt);if(!e)return null;let[,r,s]=e;return ba(typeof r<"u"?r:null,s)}function I0(t,e=!1){let r=JB(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function JB(t,e=!1){let r=e?t.match(wpt):t.match(Bpt);if(!r)return null;let[,s,a,n]=r;if(n==="unknown")throw new Error(`Invalid range (${t})`);let c=typeof s<"u"?s:null,f=typeof n<"u"?n:"unknown";return On(ba(c,a),f)}function Rp(t,e=!1){let r=bQ(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function bQ(t,e=!1){let r=e?t.match(vpt):t.match(Spt);if(!r)return null;let[,s,a,n]=r;if(n==="unknown")throw new Error(`Invalid reference (${t})`);let c=typeof s<"u"?s:null,f=typeof n<"u"?n:"unknown";return Vs(ba(c,a),f)}function Xd(t,e){let r=t.match(Dpt);if(r===null)throw new Error(`Invalid range (${t})`);let s=typeof r[1]<"u"?r[1]:null;if(typeof e?.requireProtocol=="string"&&s!==e.requireProtocol)throw new Error(`Invalid protocol (${s})`);if(e?.requireProtocol&&s===null)throw new Error(`Missing protocol (${s})`);let a=typeof r[3]<"u"?decodeURIComponent(r[2]):null;if(e?.requireSource&&a===null)throw new Error(`Missing source (${t})`);let n=typeof r[3]<"u"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),c=e?.parseSelector?eI.default.parse(n):n,f=typeof r[4]<"u"?eI.default.parse(r[4]):null;return{protocol:s,source:a,selector:c,params:f}}function bpt(t,e){try{return Xd(t,e)}catch{return null}}function Ppt(t,{protocol:e}){let{selector:r,params:s}=Xd(t,{requireProtocol:e,requireBindings:!0});if(typeof s.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:Rp(s.locator,!0),path:r}}function zpe(t){return t=t.replaceAll("%","%25"),t=t.replaceAll(":","%3A"),t=t.replaceAll("#","%23"),t}function xpt(t){return t===null?!1:Object.entries(t).length>0}function PQ({protocol:t,source:e,selector:r,params:s}){let a="";return t!==null&&(a+=`${t}`),e!==null&&(a+=`${zpe(e)}#`),a+=zpe(r),xpt(s)&&(a+=`::${eI.default.stringify(s)}`),a}function kpt(t){let{params:e,protocol:r,source:s,selector:a}=Xd(t);for(let n in e)n.startsWith("__")&&delete e[n];return PQ({protocol:r,source:s,params:e,selector:a})}function cn(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function Qpt(t,e){return t.scope?ba(e,`${t.scope}__${t.name}`):ba(e,t.name)}function Tpt(t,e){if(t.scope!==e)return t;let r=t.name.indexOf("__");if(r===-1)return ba(null,t.name);let s=t.name.slice(0,r),a=t.name.slice(r+2);return ba(s,a)}function ll(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function cl(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function L8(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function rI(t){let{protocol:e,selector:r}=Xd(t.reference),s=e!==null?e.replace(Rpt,""):"exotic",a=Zpe.default.valid(r),n=a!==null?`${s}-${a}`:`${s}`,c=10;return t.scope?`${L8(t)}-${n}-${t.locatorHash.slice(0,c)}`:`${L8(t)}-${n}-${t.locatorHash.slice(0,c)}`}function es(t,e){return e.scope?`${Ut(t,`@${e.scope}/`,pt.SCOPE)}${Ut(t,e.name,pt.NAME)}`:`${Ut(t,e.name,pt.NAME)}`}function xQ(t){if(t.startsWith(GB)){let e=xQ(t.substring(t.indexOf("#")+1)),r=t.substring(GB.length,GB.length+Apt);return`${e} [${r}]`}else return t.replace(Fpt,"?[...]")}function nI(t,e){return`${Ut(t,xQ(e),pt.RANGE)}`}function ni(t,e){return`${es(t,e)}${Ut(t,"@",pt.RANGE)}${nI(t,e.range)}`}function zB(t,e){return`${Ut(t,xQ(e),pt.REFERENCE)}`}function Yr(t,e){return`${es(t,e)}${Ut(t,"@",pt.REFERENCE)}${zB(t,e.reference)}`}function p3(t){return`${cn(t)}@${xQ(t.reference)}`}function iI(t){return Ys(t,[e=>cn(e),e=>e.range])}function ZB(t,e){return es(t,e.anchoredLocator)}function jB(t,e,r){let s=Tp(e)?YB(e):e;return r===null?`${ni(t,s)} \u2192 ${A3(t).Cross}`:s.identHash===r.identHash?`${ni(t,s)} \u2192 ${zB(t,r.reference)}`:`${ni(t,s)} \u2192 ${Yr(t,r)}`}function h3(t,e,r){return r===null?`${Yr(t,e)}`:`${Yr(t,e)} (via ${nI(t,r.range)})`}function j8(t){return`node_modules/${cn(t)}`}function kQ(t,e){return t.conditions?ppt(t.conditions,r=>{let[,s,a]=r.match($pe),n=e[s];return n?n.includes(a):!0}):!0}function XB(t){let e=new Set;if("children"in t)e.add(t);else for(let r of t.requests.values())e.add(r);for(let r of e)for(let s of r.children.values())e.add(s);return e}var eI,Zpe,Xpe,GB,Apt,$pe,ppt,DQ,Cpt,wpt,Bpt,vpt,Spt,Dpt,Rpt,Fpt,Yo=Ct(()=>{eI=et(Ie("querystring")),Zpe=et(Ai()),Xpe=et(Wse());Qc();E0();kc();Yo();GB="virtual:",Apt=5,$pe=/(os|cpu|libc)=([a-z0-9_-]+)/,ppt=(0,Xpe.makeParser)($pe);DQ=/^[^#]*#/;Cpt=/^(?:@([^/]+?)\/)?([^@/]+)$/;wpt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,Bpt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;vpt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,Spt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;Dpt=/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/;Rpt=/:$/;Fpt=/\?.*/});var rhe,nhe=Ct(()=>{Yo();rhe={hooks:{reduceDependency:(t,e,r,s,{resolver:a,resolveOptions:n})=>{for(let{pattern:c,reference:f}of e.topLevelWorkspace.manifest.resolutions){if(c.from&&(c.from.fullName!==cn(r)||e.configuration.normalizeLocator(Vs(Da(c.from.fullName),c.from.description??r.reference)).locatorHash!==r.locatorHash)||c.descriptor.fullName!==cn(t)||e.configuration.normalizeDependency(On(Rp(c.descriptor.fullName),c.descriptor.description??t.range)).descriptorHash!==t.descriptorHash)continue;return a.bindDescriptor(e.configuration.normalizeDependency(On(t,f)),e.topLevelWorkspace.anchoredLocator,n)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let s=ZB(t.configuration,r);await t.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,n)=>e.reportWarning(a,`${s}: ${n}`),reportError:(a,n)=>e.reportError(a,`${s}: ${n}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let s of r.errors)e.reportWarning(57,s.message)}}}});var Ei,$d=Ct(()=>{Ei=class t{static{this.protocol="workspace:"}supportsDescriptor(e,r){return!!(e.range.startsWith(t.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith(t.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){return[s.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let s=r.project.getWorkspaceByCwd(e.reference.slice(t.protocol.length));return{...e,version:s.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...s.manifest.dependencies,...s.manifest.devDependencies])),peerDependencies:new Map([...s.manifest.peerDependencies]),dependenciesMeta:s.manifest.dependenciesMeta,peerDependenciesMeta:s.manifest.peerDependenciesMeta,bin:s.manifest.bin}}}});var Or={};Vt(Or,{SemVer:()=>lhe.SemVer,clean:()=>Opt,getComparator:()=>ohe,mergeComparators:()=>q8,satisfiesWithPrereleases:()=>eA,simplifyRanges:()=>G8,stringifyComparator:()=>ahe,validRange:()=>ul});function eA(t,e,r=!1){if(!t)return!1;let s=`${e}${r}`,a=ihe.get(s);if(typeof a>"u")try{a=new Fp.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{ihe.set(s,a||null)}else if(a===null)return!1;let n;try{n=new Fp.default.SemVer(t,a)}catch{return!1}return a.test(n)?!0:(n.prerelease&&(n.prerelease=[]),a.set.some(c=>{for(let f of c)f.semver.prerelease&&(f.semver.prerelease=[]);return c.every(f=>f.test(n))}))}function ul(t){if(t.indexOf(":")!==-1)return null;let e=she.get(t);if(typeof e<"u")return e;try{e=new Fp.default.Range(t)}catch{e=null}return she.set(t,e),e}function Opt(t){let e=Npt.exec(t);return e?e[1]:null}function ohe(t){if(t.semver===Fp.default.Comparator.ANY)return{gt:null,lt:null};switch(t.operator){case"":return{gt:[">=",t.semver],lt:["<=",t.semver]};case">":case">=":return{gt:[t.operator,t.semver],lt:null};case"<":case"<=":return{gt:null,lt:[t.operator,t.semver]};default:throw new Error(`Assertion failed: Unexpected comparator operator (${t.operator})`)}}function q8(t){if(t.length===0)return null;let e=null,r=null;for(let s of t){if(s.gt){let a=e!==null?Fp.default.compare(s.gt[1],e[1]):null;(a===null||a>0||a===0&&s.gt[0]===">")&&(e=s.gt)}if(s.lt){let a=r!==null?Fp.default.compare(s.lt[1],r[1]):null;(a===null||a<0||a===0&&s.lt[0]==="<")&&(r=s.lt)}}if(e&&r){let s=Fp.default.compare(e[1],r[1]);if(s===0&&(e[0]===">"||r[0]==="<")||s>0)return null}return{gt:e,lt:r}}function ahe(t){if(t.gt&&t.lt){if(t.gt[0]===">="&&t.lt[0]==="<="&&t.gt[1].version===t.lt[1].version)return t.gt[1].version;if(t.gt[0]===">="&&t.lt[0]==="<"){if(t.lt[1].version===`${t.gt[1].major+1}.0.0-0`)return`^${t.gt[1].version}`;if(t.lt[1].version===`${t.gt[1].major}.${t.gt[1].minor+1}.0-0`)return`~${t.gt[1].version}`}}let e=[];return t.gt&&e.push(t.gt[0]+t.gt[1].version),t.lt&&e.push(t.lt[0]+t.lt[1].version),e.length?e.join(" "):"*"}function G8(t){let e=t.map(Lpt).map(s=>ul(s).set.map(a=>a.map(n=>ohe(n)))),r=e.shift().map(s=>q8(s)).filter(s=>s!==null);for(let s of e){let a=[];for(let n of r)for(let c of s){let f=q8([n,...c]);f!==null&&a.push(f)}r=a}return r.length===0?null:r.map(s=>ahe(s)).join(" || ")}function Lpt(t){let e=t.split("||");if(e.length>1){let r=new Set;for(let s of e)e.some(a=>a!==s&&Fp.default.subset(s,a))||r.add(s);if(r.size<e.length)return[...r].join(" || ")}return t}var Fp,lhe,ihe,she,Npt,Np=Ct(()=>{Fp=et(Ai()),lhe=et(Ai()),ihe=new Map;she=new Map;Npt=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/});function che(t){let e=t.match(/^[ \t]+/m);return e?e[0]:" "}function uhe(t){return t.charCodeAt(0)===65279?t.slice(1):t}function Pa(t){return t.replace(/\\/g,"/")}function QQ(t,{yamlCompatibilityMode:e}){return e?s3(t):typeof t>"u"||typeof t=="boolean"?t:null}function fhe(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let s=r%2===0?"":"!",a=e.slice(r);return`${s}${t}=${a}`}function W8(t,e){return e.length===1?fhe(t,e[0]):`(${e.map(r=>fhe(t,r)).join(" | ")})`}var Ahe,Ht,sI=Ct(()=>{bt();Bc();Ahe=et(Ai());$d();kc();Np();Yo();Ht=class t{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static{this.fileName="package.json"}static{this.allDependencies=["dependencies","devDependencies","peerDependencies"]}static{this.hardDependencies=["dependencies","devDependencies"]}static async tryFind(e,{baseFs:r=new Yn}={}){let s=K.join(e,"package.json");try{return await t.fromFile(s,{baseFs:r})}catch(a){if(a.code==="ENOENT")return null;throw a}}static async find(e,{baseFs:r}={}){let s=await t.tryFind(e,{baseFs:r});if(s===null)throw new Error("Manifest not found");return s}static async fromFile(e,{baseFs:r=new Yn}={}){let s=new t;return await s.loadFile(e,{baseFs:r}),s}static fromText(e){let r=new t;return r.loadFromText(e),r}loadFromText(e){let r;try{r=JSON.parse(uhe(e)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(r),this.indent=che(e)}async loadFile(e,{baseFs:r=new Yn}){let s=await r.readFilePromise(e,"utf8"),a;try{a=JSON.parse(uhe(s)||"{}")}catch(n){throw n.message+=` (when parsing ${e})`,n}this.load(a),this.indent=che(s)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let s=[];if(this.name=null,typeof e.name=="string")try{this.name=Da(e.name)}catch{s.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let n=[];this.os=n;for(let c of e.os)typeof c!="string"?s.push(new Error("Parsing failed for the 'os' field")):n.push(c)}else this.os=null;if(Array.isArray(e.cpu)){let n=[];this.cpu=n;for(let c of e.cpu)typeof c!="string"?s.push(new Error("Parsing failed for the 'cpu' field")):n.push(c)}else this.cpu=null;if(Array.isArray(e.libc)){let n=[];this.libc=n;for(let c of e.libc)typeof c!="string"?s.push(new Error("Parsing failed for the 'libc' field")):n.push(c)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=Pa(e.main):this.main=null,typeof e.module=="string"?this.module=Pa(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=Pa(e.browser);else{this.browser=new Map;for(let[n,c]of Object.entries(e.browser))this.browser.set(Pa(n),typeof c=="string"?Pa(c):c)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?s.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,Pa(e.bin)):s.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[n,c]of Object.entries(e.bin)){if(typeof c!="string"||c.trim()===""){s.push(new Error(`Invalid bin definition for '${n}'`));continue}let f=Da(n);this.bin.set(f.name,Pa(c))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[n,c]of Object.entries(e.scripts)){if(typeof c!="string"){s.push(new Error(`Invalid script definition for '${n}'`));continue}this.scripts.set(n,c)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[n,c]of Object.entries(e.dependencies)){if(typeof c!="string"){s.push(new Error(`Invalid dependency range for '${n}'`));continue}let f;try{f=Da(n)}catch{s.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=On(f,c);this.dependencies.set(p.identHash,p)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[n,c]of Object.entries(e.devDependencies)){if(typeof c!="string"){s.push(new Error(`Invalid dependency range for '${n}'`));continue}let f;try{f=Da(n)}catch{s.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=On(f,c);this.devDependencies.set(p.identHash,p)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[n,c]of Object.entries(e.peerDependencies)){let f;try{f=Da(n)}catch{s.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}(typeof c!="string"||!c.startsWith(Ei.protocol)&&!ul(c))&&(s.push(new Error(`Invalid dependency range for '${n}'`)),c="*");let p=On(f,c);this.peerDependencies.set(p.identHash,p)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&s.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let a=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let n of a){if(typeof n!="string"){s.push(new Error(`Invalid workspace definition for '${n}'`));continue}this.workspaceDefinitions.push({pattern:n})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[n,c]of Object.entries(e.dependenciesMeta)){if(typeof c!="object"||c===null){s.push(new Error(`Invalid meta field for '${n}`));continue}let f=I0(n),p=this.ensureDependencyMeta(f),h=QQ(c.built,{yamlCompatibilityMode:r});if(h===null){s.push(new Error(`Invalid built meta field for '${n}'`));continue}let E=QQ(c.optional,{yamlCompatibilityMode:r});if(E===null){s.push(new Error(`Invalid optional meta field for '${n}'`));continue}let C=QQ(c.unplugged,{yamlCompatibilityMode:r});if(C===null){s.push(new Error(`Invalid unplugged meta field for '${n}'`));continue}Object.assign(p,{built:h,optional:E,unplugged:C})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[n,c]of Object.entries(e.peerDependenciesMeta)){if(typeof c!="object"||c===null){s.push(new Error(`Invalid meta field for '${n}'`));continue}let f=I0(n),p=this.ensurePeerDependencyMeta(f),h=QQ(c.optional,{yamlCompatibilityMode:r});if(h===null){s.push(new Error(`Invalid optional meta field for '${n}'`));continue}Object.assign(p,{optional:h})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[n,c]of Object.entries(e.resolutions)){if(typeof c!="string"){s.push(new Error(`Invalid resolution entry for '${n}'`));continue}try{this.resolutions.push({pattern:Cx(n),reference:c})}catch(f){s.push(f);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let n of e.files){if(typeof n!="string"){s.push(new Error(`Invalid files entry for '${n}'`));continue}this.files.add(n)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=Pa(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=Pa(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=Pa(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[n,c]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(Pa(n),typeof c=="string"?Pa(c):c)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.provenance=="boolean"&&(this.publishConfig.provenance=e.publishConfig.provenance),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,Pa(e.publishConfig.bin)]]):s.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[n,c]of Object.entries(e.publishConfig.bin)){if(typeof c!="string"){s.push(new Error(`Invalid bin definition for '${n}'`));continue}this.publishConfig.bin.set(n,Pa(c))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let n of e.publishConfig.executableFiles){if(typeof n!="string"){s.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(Pa(n))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let n of Object.keys(e.installConfig))n==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:s.push(new Error("Invalid hoisting limits definition")):n=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:s.push(new Error("Invalid selfReferences definition, must be a boolean value")):s.push(new Error(`Unrecognized installConfig key: ${n}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[n,c]of Object.entries(e.optionalDependencies)){if(typeof c!="string"){s.push(new Error(`Invalid dependency range for '${n}'`));continue}let f;try{f=Da(n)}catch{s.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=On(f,c);this.dependencies.set(p.identHash,p);let h=On(f,"unknown"),E=this.ensureDependencyMeta(h);Object.assign(E,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=s}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(W8("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(W8("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(W8("libc",this.libc)),e.length>0?e.join(" & "):null}ensureDependencyMeta(e){if(e.range!=="unknown"&&!Ahe.default.valid(e.range))throw new Error(`Invalid meta field range for '${ll(e)}'`);let r=cn(e),s=e.range!=="unknown"?e.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let n=a.get(s);return n||a.set(s,n={}),n}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${ll(e)}'`);let r=cn(e),s=this.peerDependenciesMeta.get(r);return s||this.peerDependenciesMeta.set(r,s={}),s}setRawField(e,r,{after:s=[]}={}){let a=new Set(s.filter(n=>Object.hasOwn(this.raw,n)));if(a.size===0||Object.hasOwn(this.raw,e))this.raw[e]=r;else{let n=this.raw,c=this.raw={},f=!1;for(let p of Object.keys(n))c[p]=n[p],f||(a.delete(p),a.size===0&&(c[e]=r,f=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){if(Object.assign(e,this.raw),this.name!==null?e.name=cn(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let n=this.browser;typeof n=="string"?e.browser=n:n instanceof Map&&(e.browser=Object.assign({},...Array.from(n.keys()).sort().map(c=>({[c]:n.get(c)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(n=>({[n]:this.bin.get(n)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:n})=>n)}:e.workspaces=this.workspaceDefinitions.map(({pattern:n})=>n):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let s=[],a=[];for(let n of this.dependencies.values()){let c=this.dependenciesMeta.get(cn(n)),f=!1;if(r&&c){let p=c.get(null);p&&p.optional&&(f=!0)}f?a.push(n):s.push(n)}s.length>0?e.dependencies=Object.assign({},...iI(s).map(n=>({[cn(n)]:n.range}))):delete e.dependencies,a.length>0?e.optionalDependencies=Object.assign({},...iI(a).map(n=>({[cn(n)]:n.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...iI(this.devDependencies.values()).map(n=>({[cn(n)]:n.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...iI(this.peerDependencies.values()).map(n=>({[cn(n)]:n.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[n,c]of Ys(this.dependenciesMeta.entries(),([f,p])=>f))for(let[f,p]of Ys(c.entries(),([h,E])=>h!==null?`0${h}`:"1")){let h=f!==null?ll(On(Da(n),f)):n,E={...p};r&&f===null&&delete E.optional,Object.keys(E).length!==0&&(e.dependenciesMeta[h]=E)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...Ys(this.peerDependenciesMeta.entries(),([n,c])=>n).map(([n,c])=>({[n]:c}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:n,reference:c})=>({[wx(n)]:c}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){e.scripts??={};for(let n of Object.keys(e.scripts))this.scripts.has(n)||delete e.scripts[n];for(let[n,c]of this.scripts.entries())e.scripts[n]=c}else delete e.scripts;return e}}});var hhe=L((tJt,phe)=>{var Mpt=Pc(),_pt=function(){return Mpt.Date.now()};phe.exports=_pt});var dhe=L((rJt,ghe)=>{var Upt=/\s/;function Hpt(t){for(var e=t.length;e--&&Upt.test(t.charAt(e)););return e}ghe.exports=Hpt});var yhe=L((nJt,mhe)=>{var jpt=dhe(),qpt=/^\s+/;function Gpt(t){return t&&t.slice(0,jpt(t)+1).replace(qpt,"")}mhe.exports=Gpt});var oI=L((iJt,Ehe)=>{var Wpt=Wd(),Ypt=zf(),Vpt="[object Symbol]";function Kpt(t){return typeof t=="symbol"||Ypt(t)&&Wpt(t)==Vpt}Ehe.exports=Kpt});var Bhe=L((sJt,whe)=>{var Jpt=yhe(),Ihe=Wl(),zpt=oI(),Che=NaN,Zpt=/^[-+]0x[0-9a-f]+$/i,Xpt=/^0b[01]+$/i,$pt=/^0o[0-7]+$/i,eht=parseInt;function tht(t){if(typeof t=="number")return t;if(zpt(t))return Che;if(Ihe(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Ihe(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Jpt(t);var r=Xpt.test(t);return r||$pt.test(t)?eht(t.slice(2),r?2:8):Zpt.test(t)?Che:+t}whe.exports=tht});var Dhe=L((oJt,She)=>{var rht=Wl(),Y8=hhe(),vhe=Bhe(),nht="Expected a function",iht=Math.max,sht=Math.min;function oht(t,e,r){var s,a,n,c,f,p,h=0,E=!1,C=!1,S=!0;if(typeof t!="function")throw new TypeError(nht);e=vhe(e)||0,rht(r)&&(E=!!r.leading,C="maxWait"in r,n=C?iht(vhe(r.maxWait)||0,e):n,S="trailing"in r?!!r.trailing:S);function P(ce){var me=s,pe=a;return s=a=void 0,h=ce,c=t.apply(pe,me),c}function I(ce){return h=ce,f=setTimeout(U,e),E?P(ce):c}function R(ce){var me=ce-p,pe=ce-h,Be=e-me;return C?sht(Be,n-pe):Be}function N(ce){var me=ce-p,pe=ce-h;return p===void 0||me>=e||me<0||C&&pe>=n}function U(){var ce=Y8();if(N(ce))return W(ce);f=setTimeout(U,R(ce))}function W(ce){return f=void 0,S&&s?P(ce):(s=a=void 0,c)}function te(){f!==void 0&&clearTimeout(f),h=0,s=p=a=f=void 0}function ie(){return f===void 0?c:W(Y8())}function Ae(){var ce=Y8(),me=N(ce);if(s=arguments,a=this,p=ce,me){if(f===void 0)return I(p);if(C)return clearTimeout(f),f=setTimeout(U,e),P(p)}return f===void 0&&(f=setTimeout(U,e)),c}return Ae.cancel=te,Ae.flush=ie,Ae}She.exports=oht});var V8=L((aJt,bhe)=>{var aht=Dhe(),lht=Wl(),cht="Expected a function";function uht(t,e,r){var s=!0,a=!0;if(typeof t!="function")throw new TypeError(cht);return lht(r)&&(s="leading"in r?!!r.leading:s,a="trailing"in r?!!r.trailing:a),aht(t,e,{leading:s,maxWait:e,trailing:a})}bhe.exports=uht});function Aht(t){return typeof t.reportCode<"u"}var Phe,xhe,khe,fht,Yt,ho,Fc=Ct(()=>{Phe=et(V8()),xhe=Ie("stream"),khe=Ie("string_decoder"),fht=15,Yt=class extends Error{constructor(r,s,a){super(s);this.reportExtra=a;this.reportCode=r}};ho=class{constructor(){this.cacheHits=new Set;this.cacheMisses=new Set;this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}getRecommendedLength(){return 180}reportCacheHit(e){this.cacheHits.add(e.locatorHash)}reportCacheMiss(e,r){this.cacheMisses.add(e.locatorHash)}static progressViaCounter(e){let r=0,s,a=new Promise(p=>{s=p}),n=p=>{let h=s;a=new Promise(E=>{s=E}),r=p,h()},c=(p=0)=>{n(r+1)},f=async function*(){for(;r<e;)await a,yield{progress:r/e}}();return{[Symbol.asyncIterator](){return f},hasProgress:!0,hasTitle:!1,set:n,tick:c}}static progressViaTitle(){let e,r,s=new Promise(c=>{r=c}),a=(0,Phe.default)(c=>{let f=r;s=new Promise(p=>{r=p}),e=c,f()},1e3/fht),n=async function*(){for(;;)await s,yield{title:e}}();return{[Symbol.asyncIterator](){return n},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(e,r){let s=this.reportProgress(e);try{return await r(e)}finally{s.stop()}}startProgressSync(e,r){let s=this.reportProgress(e);try{return r(e)}finally{s.stop()}}reportInfoOnce(e,r,s){let a=s&&s.key?s.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(e,r),s?.reportExtra?.(this))}reportWarningOnce(e,r,s){let a=s&&s.key?s.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(e,r),s?.reportExtra?.(this))}reportErrorOnce(e,r,s){let a=s&&s.key?s.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(e,r),s?.reportExtra?.(this))}reportExceptionOnce(e){Aht(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let r=new xhe.PassThrough,s=new khe.StringDecoder,a="";return r.on("data",n=>{let c=s.write(n),f;do if(f=c.indexOf(` +`),f!==-1){let p=a+c.substring(0,f);c=c.substring(f+1),a="",e!==null?this.reportInfo(null,`${e} ${p}`):this.reportInfo(null,p)}while(f!==-1);a+=c}),r.on("end",()=>{let n=s.end();n!==""&&(e!==null?this.reportInfo(null,`${e} ${n}`):this.reportInfo(null,n))}),r}}});var aI,K8=Ct(()=>{Fc();Yo();aI=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let s=this.fetchers.find(a=>a.supports(e,r));return s||null}getFetcher(e,r){let s=this.fetchers.find(a=>a.supports(e,r));if(!s)throw new Yt(11,`${Yr(r.project.configuration,e)} isn't supported by any available fetcher`);return s}}});var em,J8=Ct(()=>{Yo();em=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,s){return this.getResolverByDescriptor(e,s).bindDescriptor(e,r,s)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,s){return await this.getResolverByDescriptor(e,s).getCandidates(e,r,s)}async getSatisfying(e,r,s,a){return this.getResolverByDescriptor(e,a).getSatisfying(e,r,s,a)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let s=this.resolvers.find(a=>a.supportsDescriptor(e,r));return s||null}getResolverByDescriptor(e,r){let s=this.resolvers.find(a=>a.supportsDescriptor(e,r));if(!s)throw new Error(`${ni(r.project.configuration,e)} isn't supported by any available resolver`);return s}tryResolverByLocator(e,r){let s=this.resolvers.find(a=>a.supportsLocator(e,r));return s||null}getResolverByLocator(e,r){let s=this.resolvers.find(a=>a.supportsLocator(e,r));if(!s)throw new Error(`${Yr(r.project.configuration,e)} isn't supported by any available resolver`);return s}}});var lI,z8=Ct(()=>{bt();Yo();lI=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let s=e.reference.indexOf("#");if(s===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(s+1),n=Vs(e,a);return r.fetcher.getLocalPath(n,r)}async fetch(e,r){let s=e.reference.indexOf("#");if(s===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(s+1),n=Vs(e,a),c=await r.fetcher.fetch(n,r);return await this.ensureVirtualLink(e,c,r)}getLocatorFilename(e){return rI(e)}async ensureVirtualLink(e,r,s){let a=r.packageFs.getRealPath(),n=s.project.configuration.get("virtualFolder"),c=this.getLocatorFilename(e),f=Ao.makeVirtualPath(n,c,a),p=new Hf(f,{baseFs:r.packageFs,pathUtils:K});return{...r,packageFs:p}}}});var TQ,Qhe=Ct(()=>{TQ=class t{static{this.protocol="virtual:"}static isVirtualDescriptor(e){return!!e.range.startsWith(t.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(t.protocol)}supportsDescriptor(e,r){return t.isVirtualDescriptor(e)}supportsLocator(e,r){return t.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,s){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,s,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}}});var cI,Z8=Ct(()=>{bt();$d();cI=class{supports(e){return!!e.reference.startsWith(Ei.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let s=this.getWorkspace(e,r).cwd;return{packageFs:new Sn(s),prefixPath:vt.dot,localPath:s}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(Ei.protocol.length))}}});function $B(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function The(t){return typeof t>"u"?3:$B(t)?0:Array.isArray(t)?1:2}function eH(t,e){return Object.hasOwn(t,e)}function hht(t){return $B(t)&&eH(t,"onConflict")&&typeof t.onConflict=="string"}function ght(t){if(typeof t>"u")return{onConflict:"default",value:t};if(!hht(t))return{onConflict:"default",value:t};if(eH(t,"value"))return t;let{onConflict:e,...r}=t;return{onConflict:e,value:r}}function Rhe(t,e){let r=$B(t)&&eH(t,e)?t[e]:void 0;return ght(r)}function uI(t,e){return[t,e,Fhe]}function tH(t){return Array.isArray(t)?t[2]===Fhe:!1}function X8(t,e){if($B(t)){let r={};for(let s of Object.keys(t))r[s]=X8(t[s],e);return uI(e,r)}return Array.isArray(t)?uI(e,t.map(r=>X8(r,e))):uI(e,t)}function $8(t,e,r,s,a){let n,c=[],f=a,p=0;for(let E=a-1;E>=s;--E){let[C,S]=t[E],{onConflict:P,value:I}=Rhe(S,r),R=The(I);if(R!==3){if(n??=R,R!==n||P==="hardReset"){p=f;break}if(R===2)return uI(C,I);if(c.unshift([C,I]),P==="reset"){p=E;break}P==="extend"&&E===s&&(s=0),f=E}}if(typeof n>"u")return null;let h=c.map(([E])=>E).join(", ");switch(n){case 1:return uI(h,new Array().concat(...c.map(([E,C])=>C.map(S=>X8(S,E)))));case 0:{let E=Object.assign({},...c.map(([,R])=>R)),C=Object.keys(E),S={},P=t.map(([R,N])=>[R,Rhe(N,r).value]),I=pht(P,([R,N])=>{let U=The(N);return U!==0&&U!==3});if(I!==-1){let R=P.slice(I+1);for(let N of C)S[N]=$8(R,e,N,0,R.length)}else for(let R of C)S[R]=$8(P,e,R,p,P.length);return uI(h,S)}default:throw new Error("Assertion failed: Non-extendable value type")}}function Nhe(t){return $8(t.map(([e,r])=>[e,{".":r}]),[],".",0,t.length)}function ev(t){return tH(t)?t[1]:t}function RQ(t){let e=tH(t)?t[1]:t;if(Array.isArray(e))return e.map(r=>RQ(r));if($B(e)){let r={};for(let[s,a]of Object.entries(e))r[s]=RQ(a);return r}return e}function rH(t){return tH(t)?t[0]:null}var pht,Fhe,Ohe=Ct(()=>{pht=(t,e,r)=>{let s=[...t];return s.reverse(),s.findIndex(e,r)};Fhe=Symbol()});var FQ={};Vt(FQ,{getDefaultGlobalFolder:()=>iH,getHomeFolder:()=>fI,isFolderInside:()=>sH});function iH(){if(process.platform==="win32"){let t=ue.toPortablePath(process.env.LOCALAPPDATA||ue.join((0,nH.homedir)(),"AppData","Local"));return K.resolve(t,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let t=ue.toPortablePath(process.env.XDG_DATA_HOME);return K.resolve(t,"yarn/berry")}return K.resolve(fI(),".yarn/berry")}function fI(){return ue.toPortablePath((0,nH.homedir)()||"/usr/local/share")}function sH(t,e){let r=K.relative(e,t);return r&&!r.startsWith("..")&&!K.isAbsolute(r)}var nH,NQ=Ct(()=>{bt();nH=Ie("os")});var _he=L((IJt,Mhe)=>{"use strict";var oH=Ie("https"),aH=Ie("http"),{URL:Lhe}=Ie("url"),lH=class extends aH.Agent{constructor(e){let{proxy:r,proxyRequestOptions:s,...a}=e;super(a),this.proxy=typeof r=="string"?new Lhe(r):r,this.proxyRequestOptions=s||{}}createConnection(e,r){let s={...this.proxyRequestOptions,method:"CONNECT",host:this.proxy.hostname,port:this.proxy.port,path:`${e.host}:${e.port}`,setHost:!1,headers:{...this.proxyRequestOptions.headers,connection:this.keepAlive?"keep-alive":"close",host:`${e.host}:${e.port}`},agent:!1,timeout:e.timeout||0};if(this.proxy.username||this.proxy.password){let n=Buffer.from(`${decodeURIComponent(this.proxy.username||"")}:${decodeURIComponent(this.proxy.password||"")}`).toString("base64");s.headers["proxy-authorization"]=`Basic ${n}`}this.proxy.protocol==="https:"&&(s.servername=this.proxy.hostname);let a=(this.proxy.protocol==="http:"?aH:oH).request(s);a.once("connect",(n,c,f)=>{a.removeAllListeners(),c.removeAllListeners(),n.statusCode===200?r(null,c):(c.destroy(),r(new Error(`Bad response: ${n.statusCode}`),null))}),a.once("timeout",()=>{a.destroy(new Error("Proxy timeout"))}),a.once("error",n=>{a.removeAllListeners(),r(n,null)}),a.end()}},cH=class extends oH.Agent{constructor(e){let{proxy:r,proxyRequestOptions:s,...a}=e;super(a),this.proxy=typeof r=="string"?new Lhe(r):r,this.proxyRequestOptions=s||{}}createConnection(e,r){let s={...this.proxyRequestOptions,method:"CONNECT",host:this.proxy.hostname,port:this.proxy.port,path:`${e.host}:${e.port}`,setHost:!1,headers:{...this.proxyRequestOptions.headers,connection:this.keepAlive?"keep-alive":"close",host:`${e.host}:${e.port}`},agent:!1,timeout:e.timeout||0};if(this.proxy.username||this.proxy.password){let n=Buffer.from(`${decodeURIComponent(this.proxy.username||"")}:${decodeURIComponent(this.proxy.password||"")}`).toString("base64");s.headers["proxy-authorization"]=`Basic ${n}`}this.proxy.protocol==="https:"&&(s.servername=this.proxy.hostname);let a=(this.proxy.protocol==="http:"?aH:oH).request(s);a.once("connect",(n,c,f)=>{if(a.removeAllListeners(),c.removeAllListeners(),n.statusCode===200){let p=super.createConnection({...e,socket:c});r(null,p)}else c.destroy(),r(new Error(`Bad response: ${n.statusCode}`),null)}),a.once("timeout",()=>{a.destroy(new Error("Proxy timeout"))}),a.once("error",n=>{a.removeAllListeners(),r(n,null)}),a.end()}};Mhe.exports={HttpProxyAgent:lH,HttpsProxyAgent:cH}});var uH,Uhe,Hhe,jhe=Ct(()=>{uH=et(_he(),1),Uhe=uH.default.HttpProxyAgent,Hhe=uH.default.HttpsProxyAgent});var Lp=L((Op,OQ)=>{"use strict";Object.defineProperty(Op,"__esModule",{value:!0});var qhe=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function mht(t){return qhe.includes(t)}var yht=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Blob","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...qhe];function Eht(t){return yht.includes(t)}var Iht=["null","undefined","string","number","bigint","boolean","symbol"];function Cht(t){return Iht.includes(t)}function AI(t){return e=>typeof e===t}var{toString:Ghe}=Object.prototype,tv=t=>{let e=Ghe.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&be.domElement(t))return"HTMLElement";if(Eht(e))return e},pi=t=>e=>tv(e)===t;function be(t){if(t===null)return"null";switch(typeof t){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(be.observable(t))return"Observable";if(be.array(t))return"Array";if(be.buffer(t))return"Buffer";let e=tv(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}be.undefined=AI("undefined");be.string=AI("string");var wht=AI("number");be.number=t=>wht(t)&&!be.nan(t);be.bigint=AI("bigint");be.function_=AI("function");be.null_=t=>t===null;be.class_=t=>be.function_(t)&&t.toString().startsWith("class ");be.boolean=t=>t===!0||t===!1;be.symbol=AI("symbol");be.numericString=t=>be.string(t)&&!be.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));be.array=(t,e)=>Array.isArray(t)?be.function_(e)?t.every(e):!0:!1;be.buffer=t=>{var e,r,s,a;return(a=(s=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||s===void 0?void 0:s.call(r,t))!==null&&a!==void 0?a:!1};be.blob=t=>pi("Blob")(t);be.nullOrUndefined=t=>be.null_(t)||be.undefined(t);be.object=t=>!be.null_(t)&&(typeof t=="object"||be.function_(t));be.iterable=t=>{var e;return be.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};be.asyncIterable=t=>{var e;return be.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};be.generator=t=>{var e,r;return be.iterable(t)&&be.function_((e=t)===null||e===void 0?void 0:e.next)&&be.function_((r=t)===null||r===void 0?void 0:r.throw)};be.asyncGenerator=t=>be.asyncIterable(t)&&be.function_(t.next)&&be.function_(t.throw);be.nativePromise=t=>pi("Promise")(t);var Bht=t=>{var e,r;return be.function_((e=t)===null||e===void 0?void 0:e.then)&&be.function_((r=t)===null||r===void 0?void 0:r.catch)};be.promise=t=>be.nativePromise(t)||Bht(t);be.generatorFunction=pi("GeneratorFunction");be.asyncGeneratorFunction=t=>tv(t)==="AsyncGeneratorFunction";be.asyncFunction=t=>tv(t)==="AsyncFunction";be.boundFunction=t=>be.function_(t)&&!t.hasOwnProperty("prototype");be.regExp=pi("RegExp");be.date=pi("Date");be.error=pi("Error");be.map=t=>pi("Map")(t);be.set=t=>pi("Set")(t);be.weakMap=t=>pi("WeakMap")(t);be.weakSet=t=>pi("WeakSet")(t);be.int8Array=pi("Int8Array");be.uint8Array=pi("Uint8Array");be.uint8ClampedArray=pi("Uint8ClampedArray");be.int16Array=pi("Int16Array");be.uint16Array=pi("Uint16Array");be.int32Array=pi("Int32Array");be.uint32Array=pi("Uint32Array");be.float32Array=pi("Float32Array");be.float64Array=pi("Float64Array");be.bigInt64Array=pi("BigInt64Array");be.bigUint64Array=pi("BigUint64Array");be.arrayBuffer=pi("ArrayBuffer");be.sharedArrayBuffer=pi("SharedArrayBuffer");be.dataView=pi("DataView");be.enumCase=(t,e)=>Object.values(e).includes(t);be.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;be.urlInstance=t=>pi("URL")(t);be.urlString=t=>{if(!be.string(t))return!1;try{return new URL(t),!0}catch{return!1}};be.truthy=t=>!!t;be.falsy=t=>!t;be.nan=t=>Number.isNaN(t);be.primitive=t=>be.null_(t)||Cht(typeof t);be.integer=t=>Number.isInteger(t);be.safeInteger=t=>Number.isSafeInteger(t);be.plainObject=t=>{if(Ghe.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};be.typedArray=t=>mht(tv(t));var vht=t=>be.safeInteger(t)&&t>=0;be.arrayLike=t=>!be.nullOrUndefined(t)&&!be.function_(t)&&vht(t.length);be.inRange=(t,e)=>{if(be.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(be.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var Sht=1,Dht=["innerHTML","ownerDocument","style","attributes","nodeValue"];be.domElement=t=>be.object(t)&&t.nodeType===Sht&&be.string(t.nodeName)&&!be.plainObject(t)&&Dht.every(e=>e in t);be.observable=t=>{var e,r,s,a;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((a=(s=t)["@@observable"])===null||a===void 0?void 0:a.call(s)):!1};be.nodeStream=t=>be.object(t)&&be.function_(t.pipe)&&!be.observable(t);be.infinite=t=>t===1/0||t===-1/0;var Whe=t=>e=>be.integer(e)&&Math.abs(e%2)===t;be.evenInteger=Whe(0);be.oddInteger=Whe(1);be.emptyArray=t=>be.array(t)&&t.length===0;be.nonEmptyArray=t=>be.array(t)&&t.length>0;be.emptyString=t=>be.string(t)&&t.length===0;var bht=t=>be.string(t)&&!/\S/.test(t);be.emptyStringOrWhitespace=t=>be.emptyString(t)||bht(t);be.nonEmptyString=t=>be.string(t)&&t.length>0;be.nonEmptyStringAndNotWhitespace=t=>be.string(t)&&!be.emptyStringOrWhitespace(t);be.emptyObject=t=>be.object(t)&&!be.map(t)&&!be.set(t)&&Object.keys(t).length===0;be.nonEmptyObject=t=>be.object(t)&&!be.map(t)&&!be.set(t)&&Object.keys(t).length>0;be.emptySet=t=>be.set(t)&&t.size===0;be.nonEmptySet=t=>be.set(t)&&t.size>0;be.emptyMap=t=>be.map(t)&&t.size===0;be.nonEmptyMap=t=>be.map(t)&&t.size>0;be.propertyKey=t=>be.any([be.string,be.number,be.symbol],t);be.formData=t=>pi("FormData")(t);be.urlSearchParams=t=>pi("URLSearchParams")(t);var Yhe=(t,e,r)=>{if(!be.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError("Invalid number of values");return t.call(r,e)};be.any=(t,...e)=>(be.array(t)?t:[t]).some(s=>Yhe(Array.prototype.some,s,e));be.all=(t,...e)=>Yhe(Array.prototype.every,t,e);var _t=(t,e,r,s={})=>{if(!t){let{multipleValues:a}=s,n=a?`received values of types ${[...new Set(r.map(c=>`\`${be(c)}\``))].join(", ")}`:`received value of type \`${be(r)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${n}.`)}};Op.assert={undefined:t=>_t(be.undefined(t),"undefined",t),string:t=>_t(be.string(t),"string",t),number:t=>_t(be.number(t),"number",t),bigint:t=>_t(be.bigint(t),"bigint",t),function_:t=>_t(be.function_(t),"Function",t),null_:t=>_t(be.null_(t),"null",t),class_:t=>_t(be.class_(t),"Class",t),boolean:t=>_t(be.boolean(t),"boolean",t),symbol:t=>_t(be.symbol(t),"symbol",t),numericString:t=>_t(be.numericString(t),"string with a number",t),array:(t,e)=>{_t(be.array(t),"Array",t),e&&t.forEach(e)},buffer:t=>_t(be.buffer(t),"Buffer",t),blob:t=>_t(be.blob(t),"Blob",t),nullOrUndefined:t=>_t(be.nullOrUndefined(t),"null or undefined",t),object:t=>_t(be.object(t),"Object",t),iterable:t=>_t(be.iterable(t),"Iterable",t),asyncIterable:t=>_t(be.asyncIterable(t),"AsyncIterable",t),generator:t=>_t(be.generator(t),"Generator",t),asyncGenerator:t=>_t(be.asyncGenerator(t),"AsyncGenerator",t),nativePromise:t=>_t(be.nativePromise(t),"native Promise",t),promise:t=>_t(be.promise(t),"Promise",t),generatorFunction:t=>_t(be.generatorFunction(t),"GeneratorFunction",t),asyncGeneratorFunction:t=>_t(be.asyncGeneratorFunction(t),"AsyncGeneratorFunction",t),asyncFunction:t=>_t(be.asyncFunction(t),"AsyncFunction",t),boundFunction:t=>_t(be.boundFunction(t),"Function",t),regExp:t=>_t(be.regExp(t),"RegExp",t),date:t=>_t(be.date(t),"Date",t),error:t=>_t(be.error(t),"Error",t),map:t=>_t(be.map(t),"Map",t),set:t=>_t(be.set(t),"Set",t),weakMap:t=>_t(be.weakMap(t),"WeakMap",t),weakSet:t=>_t(be.weakSet(t),"WeakSet",t),int8Array:t=>_t(be.int8Array(t),"Int8Array",t),uint8Array:t=>_t(be.uint8Array(t),"Uint8Array",t),uint8ClampedArray:t=>_t(be.uint8ClampedArray(t),"Uint8ClampedArray",t),int16Array:t=>_t(be.int16Array(t),"Int16Array",t),uint16Array:t=>_t(be.uint16Array(t),"Uint16Array",t),int32Array:t=>_t(be.int32Array(t),"Int32Array",t),uint32Array:t=>_t(be.uint32Array(t),"Uint32Array",t),float32Array:t=>_t(be.float32Array(t),"Float32Array",t),float64Array:t=>_t(be.float64Array(t),"Float64Array",t),bigInt64Array:t=>_t(be.bigInt64Array(t),"BigInt64Array",t),bigUint64Array:t=>_t(be.bigUint64Array(t),"BigUint64Array",t),arrayBuffer:t=>_t(be.arrayBuffer(t),"ArrayBuffer",t),sharedArrayBuffer:t=>_t(be.sharedArrayBuffer(t),"SharedArrayBuffer",t),dataView:t=>_t(be.dataView(t),"DataView",t),enumCase:(t,e)=>_t(be.enumCase(t,e),"EnumCase",t),urlInstance:t=>_t(be.urlInstance(t),"URL",t),urlString:t=>_t(be.urlString(t),"string with a URL",t),truthy:t=>_t(be.truthy(t),"truthy",t),falsy:t=>_t(be.falsy(t),"falsy",t),nan:t=>_t(be.nan(t),"NaN",t),primitive:t=>_t(be.primitive(t),"primitive",t),integer:t=>_t(be.integer(t),"integer",t),safeInteger:t=>_t(be.safeInteger(t),"integer",t),plainObject:t=>_t(be.plainObject(t),"plain object",t),typedArray:t=>_t(be.typedArray(t),"TypedArray",t),arrayLike:t=>_t(be.arrayLike(t),"array-like",t),domElement:t=>_t(be.domElement(t),"HTMLElement",t),observable:t=>_t(be.observable(t),"Observable",t),nodeStream:t=>_t(be.nodeStream(t),"Node.js Stream",t),infinite:t=>_t(be.infinite(t),"infinite number",t),emptyArray:t=>_t(be.emptyArray(t),"empty array",t),nonEmptyArray:t=>_t(be.nonEmptyArray(t),"non-empty array",t),emptyString:t=>_t(be.emptyString(t),"empty string",t),emptyStringOrWhitespace:t=>_t(be.emptyStringOrWhitespace(t),"empty string or whitespace",t),nonEmptyString:t=>_t(be.nonEmptyString(t),"non-empty string",t),nonEmptyStringAndNotWhitespace:t=>_t(be.nonEmptyStringAndNotWhitespace(t),"non-empty string and not whitespace",t),emptyObject:t=>_t(be.emptyObject(t),"empty object",t),nonEmptyObject:t=>_t(be.nonEmptyObject(t),"non-empty object",t),emptySet:t=>_t(be.emptySet(t),"empty set",t),nonEmptySet:t=>_t(be.nonEmptySet(t),"non-empty set",t),emptyMap:t=>_t(be.emptyMap(t),"empty map",t),nonEmptyMap:t=>_t(be.nonEmptyMap(t),"non-empty map",t),propertyKey:t=>_t(be.propertyKey(t),"PropertyKey",t),formData:t=>_t(be.formData(t),"FormData",t),urlSearchParams:t=>_t(be.urlSearchParams(t),"URLSearchParams",t),evenInteger:t=>_t(be.evenInteger(t),"even integer",t),oddInteger:t=>_t(be.oddInteger(t),"odd integer",t),directInstanceOf:(t,e)=>_t(be.directInstanceOf(t,e),"T",t),inRange:(t,e)=>_t(be.inRange(t,e),"in range",t),any:(t,...e)=>_t(be.any(t,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(t,...e)=>_t(be.all(t,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(be,{class:{value:be.class_},function:{value:be.function_},null:{value:be.null_}});Object.defineProperties(Op.assert,{class:{value:Op.assert.class_},function:{value:Op.assert.function_},null:{value:Op.assert.null_}});Op.default=be;OQ.exports=be;OQ.exports.default=be;OQ.exports.assert=Op.assert});var Vhe=L((wJt,fH)=>{"use strict";var LQ=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},MQ=class t{static fn(e){return(...r)=>new t((s,a,n)=>{r.push(n),e(...r).then(s,a)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,s)=>{this._reject=s;let a=f=>{this._isPending=!1,r(f)},n=f=>{this._isPending=!1,s(f)},c=f=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(f)};return Object.defineProperties(c,{shouldReject:{get:()=>this._rejectOnCancel,set:f=>{this._rejectOnCancel=f}}}),e(a,n,c)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new LQ(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(MQ.prototype,Promise.prototype);fH.exports=MQ;fH.exports.CancelError=LQ});var Khe=L((pH,hH)=>{"use strict";Object.defineProperty(pH,"__esModule",{value:!0});function Pht(t){return t.encrypted}var AH=(t,e)=>{let r;typeof e=="function"?r={connect:e}:r=e;let s=typeof r.connect=="function",a=typeof r.secureConnect=="function",n=typeof r.close=="function",c=()=>{s&&r.connect(),Pht(t)&&a&&(t.authorized?r.secureConnect():t.authorizationError||t.once("secureConnect",r.secureConnect)),n&&t.once("close",r.close)};t.writable&&!t.connecting?c():t.connecting?t.once("connect",c):t.destroyed&&n&&r.close(t._hadError)};pH.default=AH;hH.exports=AH;hH.exports.default=AH});var Jhe=L((dH,mH)=>{"use strict";Object.defineProperty(dH,"__esModule",{value:!0});var xht=Khe(),kht=Number(process.versions.node.split(".")[0]),gH=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=c=>{let f=c.emit.bind(c);c.emit=(p,...h)=>(p==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,c.emit=f),f(p,...h))};r(t),t.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||kht>=13)&&(e.phases.total=Date.now()-e.start)});let s=c=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let f=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};c.prependOnceListener("lookup",f),xht.default(c,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(c.removeListener("lookup",f),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?s(t.socket):t.prependOnceListener("socket",s);let a=()=>{var c;e.upload=Date.now(),e.phases.request=e.upload-(c=e.secureConnect,c??e.connect)};return(typeof t.writableFinished=="boolean"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))?a():t.prependOnceListener("finish",a),t.prependOnceListener("response",c=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,c.timings=e,r(c),c.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};dH.default=gH;mH.exports=gH;mH.exports.default=gH});var r0e=L((BJt,IH)=>{"use strict";var{V4MAPPED:Qht,ADDRCONFIG:Tht,ALL:t0e,promises:{Resolver:zhe},lookup:Rht}=Ie("dns"),{promisify:yH}=Ie("util"),Fht=Ie("os"),pI=Symbol("cacheableLookupCreateConnection"),EH=Symbol("cacheableLookupInstance"),Zhe=Symbol("expires"),Nht=typeof t0e=="number",Xhe=t=>{if(!(t&&typeof t.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Oht=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},$he=()=>{let t=!1,e=!1;for(let r of Object.values(Fht.networkInterfaces()))for(let s of r)if(!s.internal&&(s.family==="IPv6"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},Lht=t=>Symbol.iterator in t,e0e={ttl:!0},Mht={all:!0},_Q=class{constructor({cache:e=new Map,maxTtl:r=1/0,fallbackDuration:s=3600,errorTtl:a=.15,resolver:n=new zhe,lookup:c=Rht}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=e,this._resolver=n,this._dnsLookup=yH(c),this._resolver instanceof zhe?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=yH(this._resolver.resolve4.bind(this._resolver)),this._resolve6=yH(this._resolver.resolve6.bind(this._resolver))),this._iface=$he(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,s<1)this._fallback=!1;else{this._fallback=!0;let f=setInterval(()=>{this._hostnamesToFallback.clear()},s*1e3);f.unref&&f.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,s){if(typeof r=="function"?(s=r,r={}):typeof r=="number"&&(r={family:r}),!s)throw new Error("Callback must be a function.");this.lookupAsync(e,r).then(a=>{r.all?s(null,a):s(null,a.address,a.family,a.expires,a.ttl)},s)}async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let s=await this.query(e);if(r.family===6){let a=s.filter(n=>n.family===6);r.hints&Qht&&(Nht&&r.hints&t0e||a.length===0)?Oht(s):s=a}else r.family===4&&(s=s.filter(a=>a.family===4));if(r.hints&Tht){let{_iface:a}=this;s=s.filter(n=>n.family===6?a.has6:a.has4)}if(s.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${e}`);throw a.code="ENOTFOUND",a.hostname=e,a}return r.all?s:s[0]}async query(e){let r=await this._cache.get(e);if(!r){let s=this._pending[e];if(s)r=await s;else{let a=this.queryAndCache(e);this._pending[e]=a,r=await a}}return r=r.map(s=>({...s})),r}async _resolve(e){let r=async h=>{try{return await h}catch(E){if(E.code==="ENODATA"||E.code==="ENOTFOUND")return[];throw E}},[s,a]=await Promise.all([this._resolve4(e,e0e),this._resolve6(e,e0e)].map(h=>r(h))),n=0,c=0,f=0,p=Date.now();for(let h of s)h.family=4,h.expires=p+h.ttl*1e3,n=Math.max(n,h.ttl);for(let h of a)h.family=6,h.expires=p+h.ttl*1e3,c=Math.max(c,h.ttl);return s.length>0?a.length>0?f=Math.min(n,c):f=n:f=c,{entries:[...s,...a],cacheTtl:f}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,r,s){if(this.maxTtl>0&&s>0){s=Math.min(s,this.maxTtl)*1e3,r[Zhe]=Date.now()+s;try{await this._cache.set(e,r,s)}catch(a){this.lookupAsync=async()=>{let n=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw n.cause=a,n}}Lht(this._cache)&&this._tick(s)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,Mht);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let s=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,s),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e<r)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let s=1/0,a=Date.now();for(let[n,c]of this._cache){let f=c[Zhe];a>=f?this._cache.delete(n):f<s&&(s=f)}s!==1/0&&this._tick(s-a)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(Xhe(e),pI in e)throw new Error("CacheableLookup has been already installed");e[pI]=e.createConnection,e[EH]=this,e.createConnection=(r,s)=>("lookup"in r||(r.lookup=this.lookup),e[pI](r,s))}uninstall(e){if(Xhe(e),e[pI]){if(e[EH]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[pI],delete e[pI],delete e[EH]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=$he(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};IH.exports=_Q;IH.exports.default=_Q});var s0e=L((vJt,CH)=>{"use strict";var _ht=typeof URL>"u"?Ie("url").URL:URL,Uht="text/plain",Hht="us-ascii",n0e=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),jht=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let s=r[1].split(";"),a=r[2],n=e?"":r[3],c=!1;s[s.length-1]==="base64"&&(s.pop(),c=!0);let f=(s.shift()||"").toLowerCase(),h=[...s.map(E=>{let[C,S=""]=E.split("=").map(P=>P.trim());return C==="charset"&&(S=S.toLowerCase(),S===Hht)?"":`${C}${S?`=${S}`:""}`}).filter(Boolean)];return c&&h.push("base64"),(h.length!==0||f&&f!==Uht)&&h.unshift(f),`data:${h.join(";")},${c?a.trim():a}${n?`#${n}`:""}`},i0e=(t,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(t=t.trim(),/^data:/i.test(t))return jht(t,e);let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new _ht(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash&&(a.hash=""),a.pathname&&(a.pathname=a.pathname.replace(/((?!:).|^)\/{2,}/g,(n,c)=>/^(?!\/)/g.test(c)?`${c}/`:"/")),a.pathname&&(a.pathname=decodeURI(a.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let n=a.pathname.split("/"),c=n[n.length-1];n0e(c,e.removeDirectoryIndex)&&(n=n.slice(0,n.length-1),a.pathname=n.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let n of[...a.searchParams.keys()])n0e(n,e.removeQueryParameters)&&a.searchParams.delete(n);return e.sortQueryParameters&&a.searchParams.sort(),e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,"")),t=a.toString(),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};CH.exports=i0e;CH.exports.default=i0e});var l0e=L((SJt,a0e)=>{a0e.exports=o0e;function o0e(t,e){if(t&&e)return o0e(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(s){r[s]=t[s]}),r;function r(){for(var s=new Array(arguments.length),a=0;a<s.length;a++)s[a]=arguments[a];var n=t.apply(this,s),c=s[s.length-1];return typeof n=="function"&&n!==c&&Object.keys(c).forEach(function(f){n[f]=c[f]}),n}}});var BH=L((DJt,wH)=>{var c0e=l0e();wH.exports=c0e(UQ);wH.exports.strict=c0e(u0e);UQ.proto=UQ(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return UQ(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return u0e(this)},configurable:!0})});function UQ(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function u0e(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}});var vH=L((bJt,A0e)=>{var qht=BH(),Ght=function(){},Wht=function(t){return t.setHeader&&typeof t.abort=="function"},Yht=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},f0e=function(t,e,r){if(typeof e=="function")return f0e(t,null,e);e||(e={}),r=qht(r||Ght);var s=t._writableState,a=t._readableState,n=e.readable||e.readable!==!1&&t.readable,c=e.writable||e.writable!==!1&&t.writable,f=function(){t.writable||p()},p=function(){c=!1,n||r.call(t)},h=function(){n=!1,c||r.call(t)},E=function(I){r.call(t,I?new Error("exited with error code: "+I):null)},C=function(I){r.call(t,I)},S=function(){if(n&&!(a&&a.ended))return r.call(t,new Error("premature close"));if(c&&!(s&&s.ended))return r.call(t,new Error("premature close"))},P=function(){t.req.on("finish",p)};return Wht(t)?(t.on("complete",p),t.on("abort",S),t.req?P():t.on("request",P)):c&&!s&&(t.on("end",f),t.on("close",f)),Yht(t)&&t.on("exit",E),t.on("end",h),t.on("finish",p),e.error!==!1&&t.on("error",C),t.on("close",S),function(){t.removeListener("complete",p),t.removeListener("abort",S),t.removeListener("request",P),t.req&&t.req.removeListener("finish",p),t.removeListener("end",f),t.removeListener("close",f),t.removeListener("finish",p),t.removeListener("exit",E),t.removeListener("end",h),t.removeListener("error",C),t.removeListener("close",S)}};A0e.exports=f0e});var g0e=L((PJt,h0e)=>{var Vht=BH(),Kht=vH(),SH=Ie("fs"),rv=function(){},Jht=/^v?\.0/.test(process.version),HQ=function(t){return typeof t=="function"},zht=function(t){return!Jht||!SH?!1:(t instanceof(SH.ReadStream||rv)||t instanceof(SH.WriteStream||rv))&&HQ(t.close)},Zht=function(t){return t.setHeader&&HQ(t.abort)},Xht=function(t,e,r,s){s=Vht(s);var a=!1;t.on("close",function(){a=!0}),Kht(t,{readable:e,writable:r},function(c){if(c)return s(c);a=!0,s()});var n=!1;return function(c){if(!a&&!n){if(n=!0,zht(t))return t.close(rv);if(Zht(t))return t.abort();if(HQ(t.destroy))return t.destroy();s(c||new Error("stream was destroyed"))}}},p0e=function(t){t()},$ht=function(t,e){return t.pipe(e)},e0t=function(){var t=Array.prototype.slice.call(arguments),e=HQ(t[t.length-1]||rv)&&t.pop()||rv;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var r,s=t.map(function(a,n){var c=n<t.length-1,f=n>0;return Xht(a,c,f,function(p){r||(r=p),p&&s.forEach(p0e),!c&&(s.forEach(p0e),e(r))})});return t.reduce($ht)};h0e.exports=e0t});var m0e=L((xJt,d0e)=>{"use strict";var{PassThrough:t0t}=Ie("stream");d0e.exports=t=>{t={...t};let{array:e}=t,{encoding:r}=t,s=r==="buffer",a=!1;e?a=!(r||s):r=r||"utf8",s&&(r=null);let n=new t0t({objectMode:a});r&&n.setEncoding(r);let c=0,f=[];return n.on("data",p=>{f.push(p),a?c=f.length:c+=p.length}),n.getBufferedValue=()=>e?f:s?Buffer.concat(f,c):f.join(""),n.getBufferedLength=()=>c,n}});var y0e=L((kJt,hI)=>{"use strict";var r0t=g0e(),n0t=m0e(),jQ=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function qQ(t,e){if(!t)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:r}=e,s;return await new Promise((a,n)=>{let c=f=>{f&&(f.bufferedData=s.getBufferedValue()),n(f)};s=r0t(t,n0t(e),f=>{if(f){c(f);return}a()}),s.on("data",()=>{s.getBufferedLength()>r&&c(new jQ)})}),s.getBufferedValue()}hI.exports=qQ;hI.exports.default=qQ;hI.exports.buffer=(t,e)=>qQ(t,{...e,encoding:"buffer"});hI.exports.array=(t,e)=>qQ(t,{...e,array:!0});hI.exports.MaxBufferError=jQ});var I0e=L((TJt,E0e)=>{"use strict";var i0t=new Set([200,203,204,206,300,301,308,404,405,410,414,501]),s0t=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),o0t=new Set([500,502,503,504]),a0t={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},l0t={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function tm(t){let e=parseInt(t,10);return isFinite(e)?e:0}function c0t(t){return t?o0t.has(t.status):!0}function DH(t){let e={};if(!t)return e;let r=t.trim().split(/,/);for(let s of r){let[a,n]=s.split(/=/,2);e[a.trim()]=n===void 0?!0:n.trim().replace(/^"|"$/g,"")}return e}function u0t(t){let e=[];for(let r in t){let s=t[r];e.push(s===!0?r:r+"="+s)}if(e.length)return e.join(", ")}E0e.exports=class{constructor(e,r,{shared:s,cacheHeuristic:a,immutableMinTimeToLive:n,ignoreCargoCult:c,_fromObject:f}={}){if(f){this._fromObject(f);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=s!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=n!==void 0?n:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=DH(r.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=DH(e.headers["cache-control"]),c&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":u0t(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&s0t.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||i0t.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=DH(e.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(e.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let s of r)if(e.headers[s]!==this._reqHeaders[s])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let s in e)a0t[s]||(r[s]=e[s]);if(e.connection){let s=e.connection.trim().split(/\s*,\s*/);for(let a of s)delete r[a]}if(r.warning){let s=r.warning.split(/,/).filter(a=>!/^\s*1[0-9][0-9]/.test(a));s.length?r.warning=s.join(",").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){return tm(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return tm(this._rescc["s-maxage"])}if(this._rescc["max-age"])return tm(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let s=Date.parse(this._resHeaders.expires);return Number.isNaN(s)||s<r?0:Math.max(e,(s-r)/1e3)}if(this._resHeaders["last-modified"]){let s=Date.parse(this._resHeaders["last-modified"]);if(isFinite(s)&&r>s)return Math.max(e,(r-s)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),r=e+tm(this._rescc["stale-if-error"]),s=e+tm(this._rescc["stale-while-revalidate"]);return Math.max(0,e,r,s)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+tm(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+tm(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let a=r["if-none-match"].split(/,/).filter(n=>!/^\s*W\//.test(n));a.length?r["if-none-match"]=a.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&c0t(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let s=!1;if(r.status!==void 0&&r.status!=304?s=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?s=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?s=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?s=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(s=!0),!s)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let a={};for(let c in this._resHeaders)a[c]=c in r.headers&&!l0t[c]?r.headers[c]:this._resHeaders[c];let n=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(e,n,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var GQ=L((RJt,C0e)=>{"use strict";C0e.exports=t=>{let e={};for(let[r,s]of Object.entries(t))e[r.toLowerCase()]=s;return e}});var B0e=L((FJt,w0e)=>{"use strict";var f0t=Ie("stream").Readable,A0t=GQ(),bH=class extends f0t{constructor(e,r,s,a){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(s instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof a!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=A0t(r),this.body=s,this.url=a}_read(){this.push(this.body),this.push(null)}};w0e.exports=bH});var S0e=L((NJt,v0e)=>{"use strict";var p0t=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];v0e.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(p0t));for(let s of r)s in e||(e[s]=typeof t[s]=="function"?t[s].bind(t):t[s])}});var b0e=L((OJt,D0e)=>{"use strict";var h0t=Ie("stream").PassThrough,g0t=S0e(),d0t=t=>{if(!(t&&t.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new h0t;return g0t(t,e),t.pipe(e)};D0e.exports=d0t});var P0e=L(PH=>{PH.stringify=function t(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var r="",s=Array.isArray(e);r=s?"[":"{";var a=!0;for(var n in e){var c=typeof e[n]=="function"||!s&&typeof e[n]>"u";Object.hasOwnProperty.call(e,n)&&!c&&(a||(r+=","),a=!1,s?e[n]==null?r+="null":r+=t(e[n]):e[n]!==void 0&&(r+=t(n)+":"+t(e[n])))}return r+=s?"]":"}",r}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};PH.parse=function(t){return JSON.parse(t,function(e,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var T0e=L((MJt,Q0e)=>{"use strict";var m0t=Ie("events"),x0e=P0e(),y0t=t=>{let e={redis:"@keyv/redis",rediss:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql",etcd:"@keyv/etcd",offline:"@keyv/offline",tiered:"@keyv/tiered"};if(t.adapter||t.uri){let r=t.adapter||/^[^:+]*/.exec(t.uri)[0];return new(Ie(e[r]))(t)}return new Map},k0e=["sqlite","postgres","mysql","mongo","redis","tiered"],xH=class extends m0t{constructor(e,{emitErrors:r=!0,...s}={}){if(super(),this.opts={namespace:"keyv",serialize:x0e.stringify,deserialize:x0e.parse,...typeof e=="string"?{uri:e}:e,...s},!this.opts.store){let n={...this.opts};this.opts.store=y0t(n)}if(this.opts.compression){let n=this.opts.compression;this.opts.serialize=n.serialize.bind(n),this.opts.deserialize=n.deserialize.bind(n)}typeof this.opts.store.on=="function"&&r&&this.opts.store.on("error",n=>this.emit("error",n)),this.opts.store.namespace=this.opts.namespace;let a=n=>async function*(){for await(let[c,f]of typeof n=="function"?n(this.opts.store.namespace):n){let p=await this.opts.deserialize(f);if(!(this.opts.store.namespace&&!c.includes(this.opts.store.namespace))){if(typeof p.expires=="number"&&Date.now()>p.expires){this.delete(c);continue}yield[this._getKeyUnprefix(c),p.value]}}};typeof this.opts.store[Symbol.iterator]=="function"&&this.opts.store instanceof Map?this.iterator=a(this.opts.store):typeof this.opts.store.iterator=="function"&&this.opts.store.opts&&this._checkIterableAdaptar()&&(this.iterator=a(this.opts.store.iterator.bind(this.opts.store)))}_checkIterableAdaptar(){return k0e.includes(this.opts.store.opts.dialect)||k0e.findIndex(e=>this.opts.store.opts.url.includes(e))>=0}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}_getKeyPrefixArray(e){return e.map(r=>`${this.opts.namespace}:${r}`)}_getKeyUnprefix(e){return e.split(":").splice(1).join(":")}get(e,r){let{store:s}=this.opts,a=Array.isArray(e),n=a?this._getKeyPrefixArray(e):this._getKeyPrefix(e);if(a&&s.getMany===void 0){let c=[];for(let f of n)c.push(Promise.resolve().then(()=>s.get(f)).then(p=>typeof p=="string"?this.opts.deserialize(p):this.opts.compression?this.opts.deserialize(p):p).then(p=>{if(p!=null)return typeof p.expires=="number"&&Date.now()>p.expires?this.delete(f).then(()=>{}):r&&r.raw?p:p.value}));return Promise.allSettled(c).then(f=>{let p=[];for(let h of f)p.push(h.value);return p})}return Promise.resolve().then(()=>a?s.getMany(n):s.get(n)).then(c=>typeof c=="string"?this.opts.deserialize(c):this.opts.compression?this.opts.deserialize(c):c).then(c=>{if(c!=null)return a?c.map((f,p)=>{if(typeof f=="string"&&(f=this.opts.deserialize(f)),f!=null){if(typeof f.expires=="number"&&Date.now()>f.expires){this.delete(e[p]).then(()=>{});return}return r&&r.raw?f:f.value}}):typeof c.expires=="number"&&Date.now()>c.expires?this.delete(e).then(()=>{}):r&&r.raw?c:c.value})}set(e,r,s){let a=this._getKeyPrefix(e);typeof s>"u"&&(s=this.opts.ttl),s===0&&(s=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let c=typeof s=="number"?Date.now()+s:null;return typeof r=="symbol"&&this.emit("error","symbol cannot be serialized"),r={value:r,expires:c},this.opts.serialize(r)}).then(c=>n.set(a,c,s)).then(()=>!0)}delete(e){let{store:r}=this.opts;if(Array.isArray(e)){let a=this._getKeyPrefixArray(e);if(r.deleteMany===void 0){let n=[];for(let c of a)n.push(r.delete(c));return Promise.allSettled(n).then(c=>c.every(f=>f.value===!0))}return Promise.resolve().then(()=>r.deleteMany(a))}let s=this._getKeyPrefix(e);return Promise.resolve().then(()=>r.delete(s))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}has(e){let r=this._getKeyPrefix(e),{store:s}=this.opts;return Promise.resolve().then(async()=>typeof s.has=="function"?s.has(r):await s.get(r)!==void 0)}disconnect(){let{store:e}=this.opts;if(typeof e.disconnect=="function")return e.disconnect()}};Q0e.exports=xH});var N0e=L((UJt,F0e)=>{"use strict";var E0t=Ie("events"),WQ=Ie("url"),I0t=s0e(),C0t=y0e(),kH=I0e(),R0e=B0e(),w0t=GQ(),B0t=b0e(),v0t=T0e(),nv=class t{constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new v0t({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,s)=>{let a;if(typeof r=="string")a=QH(WQ.parse(r)),r={};else if(r instanceof WQ.URL)a=QH(WQ.parse(r.toString())),r={};else{let[C,...S]=(r.path||"").split("?"),P=S.length>0?`?${S.join("?")}`:"";a=QH({...r,pathname:C,search:P})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...S0t(a)},r.headers=w0t(r.headers);let n=new E0t,c=I0t(WQ.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),f=`${r.method}:${c}`,p=!1,h=!1,E=C=>{h=!0;let S=!1,P,I=new Promise(N=>{P=()=>{S||(S=!0,N())}}),R=N=>{if(p&&!C.forceRefresh){N.status=N.statusCode;let W=kH.fromObject(p.cachePolicy).revalidatedPolicy(C,N);if(!W.modified){let te=W.policy.responseHeaders();N=new R0e(p.statusCode,te,p.body,p.url),N.cachePolicy=W.policy,N.fromCache=!0}}N.fromCache||(N.cachePolicy=new kH(C,N,C),N.fromCache=!1);let U;C.cache&&N.cachePolicy.storable()?(U=B0t(N),(async()=>{try{let W=C0t.buffer(N);if(await Promise.race([I,new Promise(ce=>N.once("end",ce))]),S)return;let te=await W,ie={cachePolicy:N.cachePolicy.toObject(),url:N.url,statusCode:N.fromCache?p.statusCode:N.statusCode,body:te},Ae=C.strictTtl?N.cachePolicy.timeToLive():void 0;C.maxTtl&&(Ae=Ae?Math.min(Ae,C.maxTtl):C.maxTtl),await this.cache.set(f,ie,Ae)}catch(W){n.emit("error",new t.CacheError(W))}})()):C.cache&&p&&(async()=>{try{await this.cache.delete(f)}catch(W){n.emit("error",new t.CacheError(W))}})(),n.emit("response",U||N),typeof s=="function"&&s(U||N)};try{let N=e(C,R);N.once("error",P),N.once("abort",P),n.emit("request",N)}catch(N){n.emit("error",new t.RequestError(N))}};return(async()=>{let C=async P=>{await Promise.resolve();let I=P.cache?await this.cache.get(f):void 0;if(typeof I>"u")return E(P);let R=kH.fromObject(I.cachePolicy);if(R.satisfiesWithoutRevalidation(P)&&!P.forceRefresh){let N=R.responseHeaders(),U=new R0e(I.statusCode,N,I.body,I.url);U.cachePolicy=R,U.fromCache=!0,n.emit("response",U),typeof s=="function"&&s(U)}else p=I,P.headers=R.revalidationHeaders(P),E(P)},S=P=>n.emit("error",new t.CacheError(P));this.cache.once("error",S),n.on("response",()=>this.cache.removeListener("error",S));try{await C(r)}catch(P){r.automaticFailover&&!h&&E(r),n.emit("error",new t.CacheError(P))}})(),n}}};function S0t(t){let e={...t};return e.path=`${t.pathname||"/"}${t.search||""}`,delete e.pathname,delete e.search,e}function QH(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||"localhost",port:t.port,pathname:t.pathname,search:t.search}}nv.RequestError=class extends Error{constructor(t){super(t.message),this.name="RequestError",Object.assign(this,t)}};nv.CacheError=class extends Error{constructor(t){super(t.message),this.name="CacheError",Object.assign(this,t)}};F0e.exports=nv});var L0e=L((qJt,O0e)=>{"use strict";var D0t=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];O0e.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(t).concat(D0t)),s={};for(let a of r)a in e||(s[a]={get(){let n=t[a];return typeof n=="function"?n.bind(t):n},set(n){t[a]=n},enumerable:!0,configurable:!1});return Object.defineProperties(e,s),t.once("aborted",()=>{e.destroy(),e.emit("aborted")}),t.once("close",()=>{t.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var _0e=L((GJt,M0e)=>{"use strict";var{Transform:b0t,PassThrough:P0t}=Ie("stream"),TH=Ie("zlib"),x0t=L0e();M0e.exports=t=>{let e=(t.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return t;let r=e==="br";if(r&&typeof TH.createBrotliDecompress!="function")return t.destroy(new Error("Brotli is not supported on Node.js < 12")),t;let s=!0,a=new b0t({transform(f,p,h){s=!1,h(null,f)},flush(f){f()}}),n=new P0t({autoDestroy:!1,destroy(f,p){t.destroy(),p(f)}}),c=r?TH.createBrotliDecompress():TH.createUnzip();return c.once("error",f=>{if(s&&!t.readable){n.end();return}n.destroy(f)}),x0t(t,n),t.pipe(a).pipe(c).pipe(n),n}});var FH=L((WJt,U0e)=>{"use strict";var RH=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[s,a]of this.oldCache.entries())this.onEviction(s,a);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};U0e.exports=RH});var OH=L((YJt,G0e)=>{"use strict";var k0t=Ie("events"),Q0t=Ie("tls"),T0t=Ie("http2"),R0t=FH(),xa=Symbol("currentStreamsCount"),H0e=Symbol("request"),Nc=Symbol("cachedOriginSet"),gI=Symbol("gracefullyClosing"),F0t=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],N0t=(t,e,r)=>{let s=0,a=t.length;for(;s<a;){let n=s+a>>>1;r(t[n],e)?s=n+1:a=n}return s},O0t=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,NH=(t,e)=>{for(let r of t)r[Nc].length<e[Nc].length&&r[Nc].every(s=>e[Nc].includes(s))&&r[xa]+e[xa]<=e.remoteSettings.maxConcurrentStreams&&q0e(r)},L0t=(t,e)=>{for(let r of t)e[Nc].length<r[Nc].length&&e[Nc].every(s=>r[Nc].includes(s))&&e[xa]+r[xa]<=r.remoteSettings.maxConcurrentStreams&&q0e(e)},j0e=({agent:t,isFree:e})=>{let r={};for(let s in t.sessions){let n=t.sessions[s].filter(c=>{let f=c[rm.kCurrentStreamsCount]<c.remoteSettings.maxConcurrentStreams;return e?f:!f});n.length!==0&&(r[s]=n)}return r},q0e=t=>{t[gI]=!0,t[xa]===0&&t.close()},rm=class t extends k0t{constructor({timeout:e=6e4,maxSessions:r=1/0,maxFreeSessions:s=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=s,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new R0t({maxSize:a})}static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r="";if(e)for(let s of F0t)e[s]&&(r+=`:${e[s]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let s=this.queue[e][r];this._sessionsCount<this.maxSessions&&!s.completed&&(s.completed=!0,s())}getSession(e,r,s){return new Promise((a,n)=>{Array.isArray(s)?(s=[...s],a()):s=[{resolve:a,reject:n}];let c=this.normalizeOptions(r),f=t.normalizeOrigin(e,r&&r.servername);if(f===void 0){for(let{reject:E}of s)E(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(c in this.sessions){let E=this.sessions[c],C=-1,S=-1,P;for(let I of E){let R=I.remoteSettings.maxConcurrentStreams;if(R<C)break;if(I[Nc].includes(f)){let N=I[xa];if(N>=R||I[gI]||I.destroyed)continue;P||(C=R),N>S&&(P=I,S=N)}}if(P){if(s.length!==1){for(let{reject:I}of s){let R=new Error(`Expected the length of listeners to be 1, got ${s.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);I(R)}return}s[0].resolve(P);return}}if(c in this.queue){if(f in this.queue[c]){this.queue[c][f].listeners.push(...s),this._tryToCreateNewSession(c,f);return}}else this.queue[c]={};let p=()=>{c in this.queue&&this.queue[c][f]===h&&(delete this.queue[c][f],Object.keys(this.queue[c]).length===0&&delete this.queue[c])},h=()=>{let E=`${f}:${c}`,C=!1;try{let S=T0t.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(E),...r});S[xa]=0,S[gI]=!1;let P=()=>S[xa]<S.remoteSettings.maxConcurrentStreams,I=!0;S.socket.once("session",N=>{this.tlsSessionCache.set(E,N)}),S.once("error",N=>{for(let{reject:U}of s)U(N);this.tlsSessionCache.delete(E)}),S.setTimeout(this.timeout,()=>{S.destroy()}),S.once("close",()=>{if(C){I&&this._freeSessionsCount--,this._sessionsCount--;let N=this.sessions[c];N.splice(N.indexOf(S),1),N.length===0&&delete this.sessions[c]}else{let N=new Error("Session closed without receiving a SETTINGS frame");N.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:U}of s)U(N);p()}this._tryToCreateNewSession(c,f)});let R=()=>{if(!(!(c in this.queue)||!P())){for(let N of S[Nc])if(N in this.queue[c]){let{listeners:U}=this.queue[c][N];for(;U.length!==0&&P();)U.shift().resolve(S);let W=this.queue[c];if(W[N].listeners.length===0&&(delete W[N],Object.keys(W).length===0)){delete this.queue[c];break}if(!P())break}}};S.on("origin",()=>{S[Nc]=S.originSet,P()&&(R(),NH(this.sessions[c],S))}),S.once("remoteSettings",()=>{if(S.ref(),S.unref(),this._sessionsCount++,h.destroyed){let N=new Error("Agent has been destroyed");for(let U of s)U.reject(N);S.destroy();return}S[Nc]=S.originSet;{let N=this.sessions;if(c in N){let U=N[c];U.splice(N0t(U,S,O0t),0,S)}else N[c]=[S]}this._freeSessionsCount+=1,C=!0,this.emit("session",S),R(),p(),S[xa]===0&&this._freeSessionsCount>this.maxFreeSessions&&S.close(),s.length!==0&&(this.getSession(f,r,s),s.length=0),S.on("remoteSettings",()=>{R(),NH(this.sessions[c],S)})}),S[H0e]=S.request,S.request=(N,U)=>{if(S[gI])throw new Error("The session is gracefully closing. No new streams are allowed.");let W=S[H0e](N,U);return S.ref(),++S[xa],S[xa]===S.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,W.once("close",()=>{if(I=P(),--S[xa],!S.destroyed&&!S.closed&&(L0t(this.sessions[c],S),P()&&!S.closed)){I||(this._freeSessionsCount++,I=!0);let te=S[xa]===0;te&&S.unref(),te&&(this._freeSessionsCount>this.maxFreeSessions||S[gI])?S.close():(NH(this.sessions[c],S),R())}}),W}}catch(S){for(let P of s)P.reject(S);p()}};h.listeners=s,h.completed=!1,h.destroyed=!1,this.queue[c][f]=h,this._tryToCreateNewSession(c,f)})}request(e,r,s,a){return new Promise((n,c)=>{this.getSession(e,r,[{reject:c,resolve:f=>{try{n(f.request(s,a))}catch(p){c(p)}}}])})}createConnection(e,r){return t.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let s=e.port||443,a=e.hostname||e.host;return typeof r.servername>"u"&&(r.servername=a),Q0t.connect(s,a,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[xa]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let s of r)s.destroy(e);for(let r of Object.values(this.queue))for(let s of Object.values(r))s.destroyed=!0;this.queue={}}get freeSessions(){return j0e({agent:this,isFree:!0})}get busySessions(){return j0e({agent:this,isFree:!1})}};rm.kCurrentStreamsCount=xa;rm.kGracefullyClosing=gI;G0e.exports={Agent:rm,globalAgent:new rm}});var MH=L((VJt,W0e)=>{"use strict";var{Readable:M0t}=Ie("stream"),LH=class extends M0t{constructor(e,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};W0e.exports=LH});var _H=L((KJt,Y0e)=>{"use strict";Y0e.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var K0e=L((JJt,V0e)=>{"use strict";V0e.exports=(t,e,r)=>{for(let s of r)t.on(s,(...a)=>e.emit(s,...a))}});var z0e=L((zJt,J0e)=>{"use strict";J0e.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var X0e=L((XJt,Z0e)=>{"use strict";var dI=(t,e,r)=>{Z0e.exports[e]=class extends t{constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.name} [${e}]`,this.code=e}}};dI(TypeError,"ERR_INVALID_ARG_TYPE",t=>{let e=t[0].includes(".")?"property":"argument",r=t[1],s=Array.isArray(r);return s&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${t[0]}" ${e} must be ${s?"one of":"of"} type ${r}. Received ${typeof t[2]}`});dI(TypeError,"ERR_INVALID_PROTOCOL",t=>`Protocol "${t[0]}" not supported. Expected "${t[1]}"`);dI(Error,"ERR_HTTP_HEADERS_SENT",t=>`Cannot ${t[0]} headers after they are sent to the client`);dI(TypeError,"ERR_INVALID_HTTP_TOKEN",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);dI(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",t=>`Invalid value "${t[0]} for header "${t[1]}"`);dI(TypeError,"ERR_INVALID_CHAR",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var GH=L(($Jt,sge)=>{"use strict";var _0t=Ie("http2"),{Writable:U0t}=Ie("stream"),{Agent:$0e,globalAgent:H0t}=OH(),j0t=MH(),q0t=_H(),G0t=K0e(),W0t=z0e(),{ERR_INVALID_ARG_TYPE:UH,ERR_INVALID_PROTOCOL:Y0t,ERR_HTTP_HEADERS_SENT:ege,ERR_INVALID_HTTP_TOKEN:V0t,ERR_HTTP_INVALID_HEADER_VALUE:K0t,ERR_INVALID_CHAR:J0t}=X0e(),{HTTP2_HEADER_STATUS:tge,HTTP2_HEADER_METHOD:rge,HTTP2_HEADER_PATH:nge,HTTP2_METHOD_CONNECT:z0t}=_0t.constants,Jo=Symbol("headers"),HH=Symbol("origin"),jH=Symbol("session"),ige=Symbol("options"),YQ=Symbol("flushedHeaders"),iv=Symbol("jobs"),Z0t=/^[\^`\-\w!#$%&*+.|~]+$/,X0t=/[^\t\u0020-\u007E\u0080-\u00FF]/,qH=class extends U0t{constructor(e,r,s){super({autoDestroy:!1});let a=typeof e=="string"||e instanceof URL;if(a&&(e=q0t(e instanceof URL?e:new URL(e))),typeof r=="function"||r===void 0?(s=r,r=a?e:{...e}):r={...e,...r},r.h2session)this[jH]=r.h2session;else if(r.agent===!1)this.agent=new $0e({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new $0e({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=H0t;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new UH("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new Y0t(r.protocol,"https:");let n=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,c=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:f}=r;if(r.timeout=void 0,this[Jo]=Object.create(null),this[iv]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[p,h]of Object.entries(r.headers))this.setHeader(p,h);r.auth&&!("authorization"in this[Jo])&&(this[Jo].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[ige]=r,n===443?(this[HH]=`https://${c}`,":authority"in this[Jo]||(this[Jo][":authority"]=c)):(this[HH]=`https://${c}:${n}`,":authority"in this[Jo]||(this[Jo][":authority"]=`${c}:${n}`)),f&&this.setTimeout(f),s&&this.once("response",s),this[YQ]=!1}get method(){return this[Jo][rge]}set method(e){e&&(this[Jo][rge]=e.toUpperCase())}get path(){return this[Jo][nge]}set path(e){e&&(this[Jo][nge]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,r,s){if(this._mustNotHaveABody){s(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let a=()=>this._request.write(e,r,s);this._request?a():this[iv].push(a)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[iv].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[YQ]||this.destroyed)return;this[YQ]=!0;let e=this.method===z0t,r=s=>{if(this._request=s,this.destroyed){s.destroy();return}e||G0t(s,this,["timeout","continue","close","error"]);let a=c=>(...f)=>{!this.writable&&!this.destroyed?c(...f):this.once("finish",()=>{c(...f)})};s.once("response",a((c,f,p)=>{let h=new j0t(this.socket,s.readableHighWaterMark);this.res=h,h.req=this,h.statusCode=c[tge],h.headers=c,h.rawHeaders=p,h.once("end",()=>{this.aborted?(h.aborted=!0,h.emit("aborted")):(h.complete=!0,h.socket=null,h.connection=null)}),e?(h.upgrade=!0,this.emit("connect",h,s,Buffer.alloc(0))?this.emit("close"):s.destroy()):(s.on("data",E=>{!h._dumped&&!h.push(E)&&s.pause()}),s.once("end",()=>{h.push(null)}),this.emit("response",h)||h._dump())})),s.once("headers",a(c=>this.emit("information",{statusCode:c[tge]}))),s.once("trailers",a((c,f,p)=>{let{res:h}=this;h.trailers=c,h.rawTrailers=p}));let{socket:n}=s.session;this.socket=n,this.connection=n;for(let c of this[iv])c();this.emit("socket",this.socket)};if(this[jH])try{r(this[jH].request(this[Jo]))}catch(s){this.emit("error",s)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[HH],this[ige],this[Jo]))}catch(s){this.emit("error",s)}}}getHeader(e){if(typeof e!="string")throw new UH("name","string",e);return this[Jo][e.toLowerCase()]}get headersSent(){return this[YQ]}removeHeader(e){if(typeof e!="string")throw new UH("name","string",e);if(this.headersSent)throw new ege("remove");delete this[Jo][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new ege("set");if(typeof e!="string"||!Z0t.test(e)&&!W0t(e))throw new V0t("Header name",e);if(typeof r>"u")throw new K0t(r,e);if(X0t.test(r))throw new J0t("header content",e);this[Jo][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let s=()=>this._request.setTimeout(e,r);return this._request?s():this[iv].push(s),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};sge.exports=qH});var age=L((ezt,oge)=>{"use strict";var $0t=Ie("tls");oge.exports=(t={},e=$0t.connect)=>new Promise((r,s)=>{let a=!1,n,c=async()=>{await p,n.off("timeout",f),n.off("error",s),t.resolveSocket?(r({alpnProtocol:n.alpnProtocol,socket:n,timeout:a}),a&&(await Promise.resolve(),n.emit("timeout"))):(n.destroy(),r({alpnProtocol:n.alpnProtocol,timeout:a}))},f=async()=>{a=!0,c()},p=(async()=>{try{n=await e(t,c),n.on("error",s),n.once("timeout",f)}catch(h){s(h)}})()})});var cge=L((tzt,lge)=>{"use strict";var egt=Ie("net");lge.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?e=r:e=r.slice(1,-1):e=r.split(":",1)[0]),egt.isIP(e)?"":e}});var Age=L((rzt,YH)=>{"use strict";var uge=Ie("http"),WH=Ie("https"),tgt=age(),rgt=FH(),ngt=GH(),igt=cge(),sgt=_H(),VQ=new rgt({maxSize:100}),sv=new Map,fge=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let s=()=>{t.emit("free",e,r)};e.on("free",s);let a=()=>{t.removeSocket(e,r)};e.on("close",a);let n=()=>{t.removeSocket(e,r),e.off("close",a),e.off("free",s),e.off("agentRemove",n)};e.on("agentRemove",n),t.emit("free",e,r)},ogt=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!VQ.has(e)){if(sv.has(e))return(await sv.get(e)).alpnProtocol;let{path:r,agent:s}=t;t.path=t.socketPath;let a=tgt(t);sv.set(e,a);try{let{socket:n,alpnProtocol:c}=await a;if(VQ.set(e,c),t.path=r,c==="h2")n.destroy();else{let{globalAgent:f}=WH,p=WH.Agent.prototype.createConnection;s?s.createConnection===p?fge(s,n,t):n.destroy():f.createConnection===p?fge(f,n,t):n.destroy()}return sv.delete(e),c}catch(n){throw sv.delete(e),n}}return VQ.get(e)};YH.exports=async(t,e,r)=>{if((typeof t=="string"||t instanceof URL)&&(t=sgt(new URL(t))),typeof e=="function"&&(r=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...t,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let s=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||igt(e),e.port=e.port||(s?443:80),e._defaultAgent=s?WH.globalAgent:uge.globalAgent;let a=e.agent;if(a){if(a.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=a[s?"https":"http"]}return s&&await ogt(e)==="h2"?(a&&(e.agent=a.http2),new ngt(e,r)):uge.request(e,r)};YH.exports.protocolCache=VQ});var hge=L((nzt,pge)=>{"use strict";var agt=Ie("http2"),lgt=OH(),VH=GH(),cgt=MH(),ugt=Age(),fgt=(t,e,r)=>new VH(t,e,r),Agt=(t,e,r)=>{let s=new VH(t,e,r);return s.end(),s};pge.exports={...agt,ClientRequest:VH,IncomingMessage:cgt,...lgt,request:fgt,get:Agt,auto:ugt}});var JH=L(KH=>{"use strict";Object.defineProperty(KH,"__esModule",{value:!0});var gge=Lp();KH.default=t=>gge.default.nodeStream(t)&&gge.default.function_(t.getBoundary)});var Ege=L(zH=>{"use strict";Object.defineProperty(zH,"__esModule",{value:!0});var mge=Ie("fs"),yge=Ie("util"),dge=Lp(),pgt=JH(),hgt=yge.promisify(mge.stat);zH.default=async(t,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!t)return 0;if(dge.default.string(t))return Buffer.byteLength(t);if(dge.default.buffer(t))return t.length;if(pgt.default(t))return yge.promisify(t.getLength.bind(t))();if(t instanceof mge.ReadStream){let{size:r}=await hgt(t.path);return r===0?void 0:r}}});var XH=L(ZH=>{"use strict";Object.defineProperty(ZH,"__esModule",{value:!0});function ggt(t,e,r){let s={};for(let a of r)s[a]=(...n)=>{e.emit(a,...n)},t.on(a,s[a]);return()=>{for(let a of r)t.off(a,s[a])}}ZH.default=ggt});var Ige=L($H=>{"use strict";Object.defineProperty($H,"__esModule",{value:!0});$H.default=()=>{let t=[];return{once(e,r,s){e.once(r,s),t.push({origin:e,event:r,fn:s})},unhandleAll(){for(let e of t){let{origin:r,event:s,fn:a}=e;r.removeListener(s,a)}t.length=0}}}});var wge=L(ov=>{"use strict";Object.defineProperty(ov,"__esModule",{value:!0});ov.TimeoutError=void 0;var dgt=Ie("net"),mgt=Ige(),Cge=Symbol("reentry"),ygt=()=>{},KQ=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};ov.TimeoutError=KQ;ov.default=(t,e,r)=>{if(Cge in t)return ygt;t[Cge]=!0;let s=[],{once:a,unhandleAll:n}=mgt.default(),c=(C,S,P)=>{var I;let R=setTimeout(S,C,C,P);(I=R.unref)===null||I===void 0||I.call(R);let N=()=>{clearTimeout(R)};return s.push(N),N},{host:f,hostname:p}=r,h=(C,S)=>{t.destroy(new KQ(C,S))},E=()=>{for(let C of s)C();n()};if(t.once("error",C=>{if(E(),t.listenerCount("error")===0)throw C}),t.once("close",E),a(t,"response",C=>{a(C,"end",E)}),typeof e.request<"u"&&c(e.request,h,"request"),typeof e.socket<"u"){let C=()=>{h(e.socket,"socket")};t.setTimeout(e.socket,C),s.push(()=>{t.removeListener("timeout",C)})}return a(t,"socket",C=>{var S;let{socketPath:P}=t;if(C.connecting){let I=!!(P??dgt.isIP((S=p??f)!==null&&S!==void 0?S:"")!==0);if(typeof e.lookup<"u"&&!I&&typeof C.address().address>"u"){let R=c(e.lookup,h,"lookup");a(C,"lookup",R)}if(typeof e.connect<"u"){let R=()=>c(e.connect,h,"connect");I?a(C,"connect",R()):a(C,"lookup",N=>{N===null&&a(C,"connect",R())})}typeof e.secureConnect<"u"&&r.protocol==="https:"&&a(C,"connect",()=>{let R=c(e.secureConnect,h,"secureConnect");a(C,"secureConnect",R)})}if(typeof e.send<"u"){let I=()=>c(e.send,h,"send");C.connecting?a(C,"connect",()=>{a(t,"upload-complete",I())}):a(t,"upload-complete",I())}}),typeof e.response<"u"&&a(t,"upload-complete",()=>{let C=c(e.response,h,"response");a(t,"response",C)}),E}});var vge=L(ej=>{"use strict";Object.defineProperty(ej,"__esModule",{value:!0});var Bge=Lp();ej.default=t=>{t=t;let e={protocol:t.protocol,hostname:Bge.default.string(t.hostname)&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return Bge.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var Sge=L(tj=>{"use strict";Object.defineProperty(tj,"__esModule",{value:!0});var Egt=Ie("url"),Igt=["protocol","host","hostname","port","pathname","search"];tj.default=(t,e)=>{var r,s;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!t){if(!e.protocol)throw new TypeError("No URL protocol specified");t=`${e.protocol}//${(s=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&s!==void 0?s:""}`}let a=new Egt.URL(t);if(e.path){let n=e.path.indexOf("?");n===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,n),e.search=e.path.slice(n+1)),delete e.path}for(let n of Igt)e[n]&&(a[n]=e[n].toString());return a}});var Dge=L(nj=>{"use strict";Object.defineProperty(nj,"__esModule",{value:!0});var rj=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};nj.default=rj});var sj=L(ij=>{"use strict";Object.defineProperty(ij,"__esModule",{value:!0});var Cgt=async t=>{let e=[],r=0;for await(let s of t)e.push(s),r+=Buffer.byteLength(s);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(""))};ij.default=Cgt});var Pge=L(nm=>{"use strict";Object.defineProperty(nm,"__esModule",{value:!0});nm.dnsLookupIpVersionToFamily=nm.isDnsLookupIpVersion=void 0;var bge={auto:0,ipv4:4,ipv6:6};nm.isDnsLookupIpVersion=t=>t in bge;nm.dnsLookupIpVersionToFamily=t=>{if(nm.isDnsLookupIpVersion(t))return bge[t];throw new Error("Invalid DNS lookup IP version")}});var oj=L(JQ=>{"use strict";Object.defineProperty(JQ,"__esModule",{value:!0});JQ.isResponseOk=void 0;JQ.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var kge=L(aj=>{"use strict";Object.defineProperty(aj,"__esModule",{value:!0});var xge=new Set;aj.default=t=>{xge.has(t)||(xge.add(t),process.emitWarning(`Got: ${t}`,{type:"DeprecationWarning"}))}});var Qge=L(lj=>{"use strict";Object.defineProperty(lj,"__esModule",{value:!0});var bi=Lp(),wgt=(t,e)=>{if(bi.default.null_(t.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");bi.assert.any([bi.default.string,bi.default.undefined],t.encoding),bi.assert.any([bi.default.boolean,bi.default.undefined],t.resolveBodyOnly),bi.assert.any([bi.default.boolean,bi.default.undefined],t.methodRewriting),bi.assert.any([bi.default.boolean,bi.default.undefined],t.isStream),bi.assert.any([bi.default.string,bi.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType="text");let{retry:r}=t;if(e?t.retry={...e.retry}:t.retry={calculateDelay:s=>s.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},bi.default.object(r)?(t.retry={...t.retry,...r},t.retry.methods=[...new Set(t.retry.methods.map(s=>s.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):bi.default.number(r)&&(t.retry.limit=r),bi.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(bi.default.number))),bi.default.object(t.pagination)){e&&(t.pagination={...e.pagination,...t.pagination});let{pagination:s}=t;if(!bi.default.function_(s.transform))throw new Error("`options.pagination.transform` must be implemented");if(!bi.default.function_(s.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!bi.default.function_(s.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!bi.default.function_(s.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return t.responseType==="json"&&t.headers.accept===void 0&&(t.headers.accept="application/json"),t};lj.default=wgt});var Tge=L(av=>{"use strict";Object.defineProperty(av,"__esModule",{value:!0});av.retryAfterStatusCodes=void 0;av.retryAfterStatusCodes=new Set([413,429,503]);var Bgt=({attemptCount:t,retryOptions:e,error:r,retryAfter:s})=>{if(t>e.limit)return 0;let a=e.methods.includes(r.options.method),n=e.errorCodes.includes(r.code),c=r.response&&e.statusCodes.includes(r.response.statusCode);if(!a||!n&&!c)return 0;if(r.response){if(s)return e.maxRetryAfter===void 0||s>e.maxRetryAfter?0:s;if(r.response.statusCode===413)return 0}let f=Math.random()*100;return 2**(t-1)*1e3+f};av.default=Bgt});var uv=L(Ln=>{"use strict";Object.defineProperty(Ln,"__esModule",{value:!0});Ln.UnsupportedProtocolError=Ln.ReadError=Ln.TimeoutError=Ln.UploadError=Ln.CacheError=Ln.HTTPError=Ln.MaxRedirectsError=Ln.RequestError=Ln.setNonEnumerableProperties=Ln.knownHookEvents=Ln.withoutBody=Ln.kIsNormalizedAlready=void 0;var Rge=Ie("util"),Fge=Ie("stream"),vgt=Ie("fs"),C0=Ie("url"),Nge=Ie("http"),cj=Ie("http"),Sgt=Ie("https"),Dgt=Jhe(),bgt=r0e(),Oge=N0e(),Pgt=_0e(),xgt=hge(),kgt=GQ(),at=Lp(),Qgt=Ege(),Lge=JH(),Tgt=XH(),Mge=wge(),Rgt=vge(),_ge=Sge(),Fgt=Dge(),Ngt=sj(),Uge=Pge(),Ogt=oj(),w0=kge(),Lgt=Qge(),Mgt=Tge(),uj,go=Symbol("request"),XQ=Symbol("response"),mI=Symbol("responseSize"),yI=Symbol("downloadedSize"),EI=Symbol("bodySize"),II=Symbol("uploadedSize"),zQ=Symbol("serverResponsesPiped"),Hge=Symbol("unproxyEvents"),jge=Symbol("isFromCache"),fj=Symbol("cancelTimeouts"),qge=Symbol("startedReading"),CI=Symbol("stopReading"),ZQ=Symbol("triggerRead"),B0=Symbol("body"),lv=Symbol("jobs"),Gge=Symbol("originalResponse"),Wge=Symbol("retryTimeout");Ln.kIsNormalizedAlready=Symbol("isNormalizedAlready");var _gt=at.default.string(process.versions.brotli);Ln.withoutBody=new Set(["GET","HEAD"]);Ln.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function Ugt(t){for(let e in t){let r=t[e];if(!at.default.string(r)&&!at.default.number(r)&&!at.default.boolean(r)&&!at.default.null_(r)&&!at.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function Hgt(t){return at.default.object(t)&&!("statusCode"in t)}var Aj=new Fgt.default,jgt=async t=>new Promise((e,r)=>{let s=a=>{r(a)};t.pending||e(),t.once("error",s),t.once("ready",()=>{t.off("error",s),e()})}),qgt=new Set([300,301,302,303,304,307,308]),Ggt=["context","body","json","form"];Ln.setNonEnumerableProperties=(t,e)=>{let r={};for(let s of t)if(s)for(let a of Ggt)a in s&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:s[a]});Object.defineProperties(e,r)};var As=class extends Error{constructor(e,r,s){var a;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=r.code,s instanceof sT?(Object.defineProperty(this,"request",{enumerable:!1,value:s}),Object.defineProperty(this,"response",{enumerable:!1,value:s[XQ]}),Object.defineProperty(this,"options",{enumerable:!1,value:s.options})):Object.defineProperty(this,"options",{enumerable:!1,value:s}),this.timings=(a=this.request)===null||a===void 0?void 0:a.timings,at.default.string(r.stack)&&at.default.string(this.stack)){let n=this.stack.indexOf(this.message)+this.message.length,c=this.stack.slice(n).split(` +`).reverse(),f=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` +`).reverse();for(;f.length!==0&&f[0]===c[0];)c.shift();this.stack=`${this.stack.slice(0,n)}${c.reverse().join(` +`)}${f.reverse().join(` +`)}`}}};Ln.RequestError=As;var $Q=class extends As{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Ln.MaxRedirectsError=$Q;var eT=class extends As{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Ln.HTTPError=eT;var tT=class extends As{constructor(e,r){super(e.message,e,r),this.name="CacheError"}};Ln.CacheError=tT;var rT=class extends As{constructor(e,r){super(e.message,e,r),this.name="UploadError"}};Ln.UploadError=rT;var nT=class extends As{constructor(e,r,s){super(e.message,e,s),this.name="TimeoutError",this.event=e.event,this.timings=r}};Ln.TimeoutError=nT;var cv=class extends As{constructor(e,r){super(e.message,e,r),this.name="ReadError"}};Ln.ReadError=cv;var iT=class extends As{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Ln.UnsupportedProtocolError=iT;var Wgt=["socket","connect","continue","information","upgrade","timeout"],sT=class extends Fge.Duplex{constructor(e,r={},s){super({autoDestroy:!1,highWaterMark:0}),this[yI]=0,this[II]=0,this.requestInitialized=!1,this[zQ]=new Set,this.redirects=[],this[CI]=!1,this[ZQ]=!1,this[lv]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),n=()=>this._lockWrite();this.on("pipe",h=>{h.prependListener("data",a),h.on("data",n),h.prependListener("end",a),h.on("end",n)}),this.on("unpipe",h=>{h.off("data",a),h.off("data",n),h.off("end",a),h.off("end",n)}),this.on("pipe",h=>{h instanceof cj.IncomingMessage&&(this.options.headers={...h.headers,...this.options.headers})});let{json:c,body:f,form:p}=r;if((c||f||p)&&this._lockWrite(),Ln.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,s)}catch(h){at.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(h);return}(async()=>{var h;try{this.options.body instanceof vgt.ReadStream&&await jgt(this.options.body);let{url:E}=this.options;if(!E)throw new TypeError("Missing `url` property");if(this.requestUrl=E.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(h=this[go])===null||h===void 0||h.destroy();return}for(let C of this[lv])C();this[lv].length=0,this.requestInitialized=!0}catch(E){if(E instanceof As){this._beforeError(E);return}this.destroyed||this.destroy(E)}})()}static normalizeArguments(e,r,s){var a,n,c,f,p;let h=r;if(at.default.object(e)&&!at.default.urlInstance(e))r={...s,...e,...r};else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...s,...r},e!==void 0&&(r.url=e),at.default.urlInstance(r.url)&&(r.url=new C0.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),at.assert.any([at.default.string,at.default.undefined],r.method),at.assert.any([at.default.object,at.default.undefined],r.headers),at.assert.any([at.default.string,at.default.urlInstance,at.default.undefined],r.prefixUrl),at.assert.any([at.default.object,at.default.undefined],r.cookieJar),at.assert.any([at.default.object,at.default.string,at.default.undefined],r.searchParams),at.assert.any([at.default.object,at.default.string,at.default.undefined],r.cache),at.assert.any([at.default.object,at.default.number,at.default.undefined],r.timeout),at.assert.any([at.default.object,at.default.undefined],r.context),at.assert.any([at.default.object,at.default.undefined],r.hooks),at.assert.any([at.default.boolean,at.default.undefined],r.decompress),at.assert.any([at.default.boolean,at.default.undefined],r.ignoreInvalidCookies),at.assert.any([at.default.boolean,at.default.undefined],r.followRedirect),at.assert.any([at.default.number,at.default.undefined],r.maxRedirects),at.assert.any([at.default.boolean,at.default.undefined],r.throwHttpErrors),at.assert.any([at.default.boolean,at.default.undefined],r.http2),at.assert.any([at.default.boolean,at.default.undefined],r.allowGetBody),at.assert.any([at.default.string,at.default.undefined],r.localAddress),at.assert.any([Uge.isDnsLookupIpVersion,at.default.undefined],r.dnsLookupIpVersion),at.assert.any([at.default.object,at.default.undefined],r.https),at.assert.any([at.default.boolean,at.default.undefined],r.rejectUnauthorized),r.https&&(at.assert.any([at.default.boolean,at.default.undefined],r.https.rejectUnauthorized),at.assert.any([at.default.function_,at.default.undefined],r.https.checkServerIdentity),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.certificateAuthority),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.key),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.certificate),at.assert.any([at.default.string,at.default.undefined],r.https.passphrase),at.assert.any([at.default.string,at.default.buffer,at.default.array,at.default.undefined],r.https.pfx)),at.assert.any([at.default.object,at.default.undefined],r.cacheOptions),at.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===s?.headers?r.headers={...r.headers}:r.headers=kgt({...s?.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==s?.searchParams){let P;if(at.default.string(r.searchParams)||r.searchParams instanceof C0.URLSearchParams)P=new C0.URLSearchParams(r.searchParams);else{Ugt(r.searchParams),P=new C0.URLSearchParams;for(let I in r.searchParams){let R=r.searchParams[I];R===null?P.append(I,""):R!==void 0&&P.append(I,R)}}(a=s?.searchParams)===null||a===void 0||a.forEach((I,R)=>{P.has(R)||P.append(R,I)}),r.searchParams=P}if(r.username=(n=r.username)!==null&&n!==void 0?n:"",r.password=(c=r.password)!==null&&c!==void 0?c:"",at.default.undefined(r.prefixUrl)?r.prefixUrl=(f=s?.prefixUrl)!==null&&f!==void 0?f:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),at.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=_ge.default(r.prefixUrl+r.url,r)}else(at.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=_ge.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:P}=r;Object.defineProperty(r,"prefixUrl",{set:R=>{let N=r.url;if(!N.href.startsWith(R))throw new Error(`Cannot change \`prefixUrl\` from ${P} to ${R}: ${N.href}`);r.url=new C0.URL(R+N.href.slice(P.length)),P=R},get:()=>P});let{protocol:I}=r.url;if(I==="unix:"&&(I="http:",r.url=new C0.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),I!=="http:"&&I!=="https:")throw new iT(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:E}=r;if(E){let{setCookie:P,getCookieString:I}=E;at.assert.function_(P),at.assert.function_(I),P.length===4&&I.length===0&&(P=Rge.promisify(P.bind(r.cookieJar)),I=Rge.promisify(I.bind(r.cookieJar)),r.cookieJar={setCookie:P,getCookieString:I})}let{cache:C}=r;if(C&&(Aj.has(C)||Aj.set(C,new Oge((P,I)=>{let R=P[go](P,I);return at.default.promise(R)&&(R.once=(N,U)=>{if(N==="error")R.catch(U);else if(N==="abort")(async()=>{try{(await R).once("abort",U)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${N}`);return R}),R},C))),r.cacheOptions={...r.cacheOptions},r.dnsCache===!0)uj||(uj=new bgt.default),r.dnsCache=uj;else if(!at.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${at.default(r.dnsCache)}`);at.default.number(r.timeout)?r.timeout={request:r.timeout}:s&&r.timeout!==s.timeout?r.timeout={...s.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});let S=r.hooks===s?.hooks;r.hooks={...r.hooks};for(let P of Ln.knownHookEvents)if(P in r.hooks)if(at.default.array(r.hooks[P]))r.hooks[P]=[...r.hooks[P]];else throw new TypeError(`Parameter \`${P}\` must be an Array, got ${at.default(r.hooks[P])}`);else r.hooks[P]=[];if(s&&!S)for(let P of Ln.knownHookEvents)s.hooks[P].length>0&&(r.hooks[P]=[...s.hooks[P],...r.hooks[P]]);if("family"in r&&w0.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),s?.https&&(r.https={...s.https,...r.https}),"rejectUnauthorized"in r&&w0.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&w0.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&w0.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&w0.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&w0.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&w0.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&w0.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let P in r.agent)if(P!=="http"&&P!=="https"&&P!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${P}\``)}return r.maxRedirects=(p=r.maxRedirects)!==null&&p!==void 0?p:0,Ln.setNonEnumerableProperties([s,h],r),Lgt.default(r,s)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,s=!at.default.undefined(e.form),a=!at.default.undefined(e.json),n=!at.default.undefined(e.body),c=s||a||n,f=Ln.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=f,c){if(f)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([n,s,a].filter(p=>p).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(n&&!(e.body instanceof Fge.Readable)&&!at.default.string(e.body)&&!at.default.buffer(e.body)&&!Lge.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(s&&!at.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let p=!at.default.string(r["content-type"]);n?(Lge.default(e.body)&&p&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[B0]=e.body):s?(p&&(r["content-type"]="application/x-www-form-urlencoded"),this[B0]=new C0.URLSearchParams(e.form).toString()):(p&&(r["content-type"]="application/json"),this[B0]=e.stringifyJson(e.json));let h=await Qgt.default(this[B0],e.headers);at.default.undefined(r["content-length"])&&at.default.undefined(r["transfer-encoding"])&&!f&&!at.default.undefined(h)&&(r["content-length"]=String(h))}}else f?this._lockWrite():this._unlockWrite();this[EI]=Number(r["content-length"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:s}=r;this[Gge]=e,r.decompress&&(e=Pgt(e));let a=e.statusCode,n=e;n.statusMessage=n.statusMessage?n.statusMessage:Nge.STATUS_CODES[a],n.url=r.url.toString(),n.requestUrl=this.requestUrl,n.redirectUrls=this.redirects,n.request=this,n.isFromCache=e.fromCache||!1,n.ip=this.ip,n.retryCount=this.retryCount,this[jge]=n.isFromCache,this[mI]=Number(e.headers["content-length"])||void 0,this[XQ]=e,e.once("end",()=>{this[mI]=this[yI],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",f=>{e.destroy(),this._beforeError(new cv(f,this))}),e.once("aborted",()=>{this._beforeError(new cv({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let c=e.headers["set-cookie"];if(at.default.object(r.cookieJar)&&c){let f=c.map(async p=>r.cookieJar.setCookie(p,s.toString()));r.ignoreInvalidCookies&&(f=f.map(async p=>p.catch(()=>{})));try{await Promise.all(f)}catch(p){this._beforeError(p);return}}if(r.followRedirect&&e.headers.location&&qgt.has(a)){if(e.resume(),this[go]&&(this[fj](),delete this[go],this[Hge]()),(a===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[B0]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new $Q(this));return}try{let p=Buffer.from(e.headers.location,"binary").toString(),h=new C0.URL(p,s),E=h.toString();decodeURI(E),h.hostname!==s.hostname||h.port!==s.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(h.username=r.username,h.password=r.password),this.redirects.push(E),r.url=h;for(let C of r.hooks.beforeRedirect)await C(r,n);this.emit("redirect",n,r),await this._makeRequest()}catch(p){this._beforeError(p);return}return}if(r.isStream&&r.throwHttpErrors&&!Ogt.isResponseOk(n)){this._beforeError(new eT(n));return}e.on("readable",()=>{this[ZQ]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let f of this[zQ])if(!f.headersSent){for(let p in e.headers){let h=r.decompress?p!=="content-encoding":!0,E=e.headers[p];h&&f.setHeader(p,E)}f.statusCode=a}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:s,url:a}=r;Dgt.default(e),this[fj]=Mge.default(e,s,a);let n=r.cache?"cacheableResponse":"response";e.once(n,p=>{this._onResponse(p)}),e.once("error",p=>{var h;e.destroy(),(h=e.res)===null||h===void 0||h.removeAllListeners("end"),p=p instanceof Mge.TimeoutError?new nT(p,this.timings,this):new As(p.message,p,this),this._beforeError(p)}),this[Hge]=Tgt.default(e,this,Wgt),this[go]=e,this.emit("uploadProgress",this.uploadProgress);let c=this[B0],f=this.redirects.length===0?this:e;at.default.nodeStream(c)?(c.pipe(f),c.once("error",p=>{this._beforeError(new rT(p,this))})):(this._unlockWrite(),at.default.undefined(c)?(this._cannotHaveBody||this._noPipe)&&(f.end(),this._lockWrite()):(this._writeRequest(c,void 0,()=>{}),f.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,r){return new Promise((s,a)=>{Object.assign(r,Rgt.default(e)),delete r.url;let n,c=Aj.get(r.cache)(r,async f=>{f._readableState.autoDestroy=!1,n&&(await n).emit("cacheableResponse",f),s(f)});r.url=e,c.once("error",a),c.once("request",async f=>{n=f,s(n)})})}async _makeRequest(){var e,r,s,a,n;let{options:c}=this,{headers:f}=c;for(let U in f)if(at.default.undefined(f[U]))delete f[U];else if(at.default.null_(f[U]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${U}\` header`);if(c.decompress&&at.default.undefined(f["accept-encoding"])&&(f["accept-encoding"]=_gt?"gzip, deflate, br":"gzip, deflate"),c.cookieJar){let U=await c.cookieJar.getCookieString(c.url.toString());at.default.nonEmptyString(U)&&(c.headers.cookie=U)}for(let U of c.hooks.beforeRequest){let W=await U(c);if(!at.default.undefined(W)){c.request=()=>W;break}}c.body&&this[B0]!==c.body&&(this[B0]=c.body);let{agent:p,request:h,timeout:E,url:C}=c;if(c.dnsCache&&!("lookup"in c)&&(c.lookup=c.dnsCache.lookup),C.hostname==="unix"){let U=/(?<socketPath>.+?):(?<path>.+)/.exec(`${C.pathname}${C.search}`);if(U?.groups){let{socketPath:W,path:te}=U.groups;Object.assign(c,{socketPath:W,path:te,host:""})}}let S=C.protocol==="https:",P;c.http2?P=xgt.auto:P=S?Sgt.request:Nge.request;let I=(e=c.request)!==null&&e!==void 0?e:P,R=c.cache?this._createCacheableRequest:I;p&&!c.http2&&(c.agent=p[S?"https":"http"]),c[go]=I,delete c.request,delete c.timeout;let N=c;if(N.shared=(r=c.cacheOptions)===null||r===void 0?void 0:r.shared,N.cacheHeuristic=(s=c.cacheOptions)===null||s===void 0?void 0:s.cacheHeuristic,N.immutableMinTimeToLive=(a=c.cacheOptions)===null||a===void 0?void 0:a.immutableMinTimeToLive,N.ignoreCargoCult=(n=c.cacheOptions)===null||n===void 0?void 0:n.ignoreCargoCult,c.dnsLookupIpVersion!==void 0)try{N.family=Uge.dnsLookupIpVersionToFamily(c.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}c.https&&("rejectUnauthorized"in c.https&&(N.rejectUnauthorized=c.https.rejectUnauthorized),c.https.checkServerIdentity&&(N.checkServerIdentity=c.https.checkServerIdentity),c.https.certificateAuthority&&(N.ca=c.https.certificateAuthority),c.https.certificate&&(N.cert=c.https.certificate),c.https.key&&(N.key=c.https.key),c.https.passphrase&&(N.passphrase=c.https.passphrase),c.https.pfx&&(N.pfx=c.https.pfx));try{let U=await R(C,N);at.default.undefined(U)&&(U=P(C,N)),c.request=h,c.timeout=E,c.agent=p,c.https&&("rejectUnauthorized"in c.https&&delete N.rejectUnauthorized,c.https.checkServerIdentity&&delete N.checkServerIdentity,c.https.certificateAuthority&&delete N.ca,c.https.certificate&&delete N.cert,c.https.key&&delete N.key,c.https.passphrase&&delete N.passphrase,c.https.pfx&&delete N.pfx),Hgt(U)?this._onRequest(U):this.writable?(this.once("finish",()=>{this._onResponse(U)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(U)}catch(U){throw U instanceof Oge.CacheError?new tT(U,this):new As(U.message,U,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new As(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[CI])return;let{options:r}=this,s=this.retryCount+1;this[CI]=!0,e instanceof As||(e=new As(e.message,e,this));let a=e,{response:n}=a;(async()=>{if(n&&!n.body){n.setEncoding(this._readableState.encoding);try{n.rawBody=await Ngt.default(n),n.body=n.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let c;try{let f;n&&"retry-after"in n.headers&&(f=Number(n.headers["retry-after"]),Number.isNaN(f)?(f=Date.parse(n.headers["retry-after"])-Date.now(),f<=0&&(f=1)):f*=1e3),c=await r.retry.calculateDelay({attemptCount:s,retryOptions:r.retry,error:a,retryAfter:f,computedValue:Mgt.default({attemptCount:s,retryOptions:r.retry,error:a,retryAfter:f,computedValue:0})})}catch(f){this._error(new As(f.message,f,this));return}if(c){let f=async()=>{try{for(let p of this.options.hooks.beforeRetry)await p(this.options,a,s)}catch(p){this._error(new As(p.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",s,e))};this[Wge]=setTimeout(f,c);return}}this._error(a)})()}_read(){this[ZQ]=!0;let e=this[XQ];if(e&&!this[CI]){e.readableLength&&(this[ZQ]=!1);let r;for(;(r=e.read())!==null;){this[yI]+=r.length,this[qge]=!0;let s=this.downloadProgress;s.percent<1&&this.emit("downloadProgress",s),this.push(r)}}}_write(e,r,s){let a=()=>{this._writeRequest(e,r,s)};this.requestInitialized?a():this[lv].push(a)}_writeRequest(e,r,s){this[go].destroyed||(this._progressCallbacks.push(()=>{this[II]+=Buffer.byteLength(e,r);let a=this.uploadProgress;a.percent<1&&this.emit("uploadProgress",a)}),this[go].write(e,r,a=>{!a&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),s(a)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(go in this)){e();return}if(this[go].destroyed){e();return}this[go].end(s=>{s||(this[EI]=this[II],this.emit("uploadProgress",this.uploadProgress),this[go].emit("upload-complete")),e(s)})};this.requestInitialized?r():this[lv].push(r)}_destroy(e,r){var s;this[CI]=!0,clearTimeout(this[Wge]),go in this&&(this[fj](),!((s=this[XQ])===null||s===void 0)&&s.complete||this[go].destroy()),e!==null&&!at.default.undefined(e)&&!(e instanceof As)&&(e=new As(e.message,e,this)),r(e)}get _isAboutToError(){return this[CI]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,s;return((r=(e=this[go])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!(!((s=this[Gge])===null||s===void 0)&&s.complete)}get socket(){var e,r;return(r=(e=this[go])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[mI]?e=this[yI]/this[mI]:this[mI]===this[yI]?e=1:e=0,{percent:e,transferred:this[yI],total:this[mI]}}get uploadProgress(){let e;return this[EI]?e=this[II]/this[EI]:this[EI]===this[II]?e=1:e=0,{percent:e,transferred:this[II],total:this[EI]}}get timings(){var e;return(e=this[go])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[jge]}pipe(e,r){if(this[qge])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof cj.ServerResponse&&this[zQ].add(e),super.pipe(e,r)}unpipe(e){return e instanceof cj.ServerResponse&&this[zQ].delete(e),super.unpipe(e),this}};Ln.default=sT});var fv=L(Wu=>{"use strict";var Ygt=Wu&&Wu.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Vgt=Wu&&Wu.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Ygt(e,t,r)};Object.defineProperty(Wu,"__esModule",{value:!0});Wu.CancelError=Wu.ParseError=void 0;var Yge=uv(),pj=class extends Yge.RequestError{constructor(e,r){let{options:s}=r.request;super(`${e.message} in "${s.url.toString()}"`,e,r.request),this.name="ParseError"}};Wu.ParseError=pj;var hj=class extends Yge.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};Wu.CancelError=hj;Vgt(uv(),Wu)});var Kge=L(gj=>{"use strict";Object.defineProperty(gj,"__esModule",{value:!0});var Vge=fv(),Kgt=(t,e,r,s)=>{let{rawBody:a}=t;try{if(e==="text")return a.toString(s);if(e==="json")return a.length===0?"":r(a.toString());if(e==="buffer")return a;throw new Vge.ParseError({message:`Unknown body type '${e}'`,name:"Error"},t)}catch(n){throw new Vge.ParseError(n,t)}};gj.default=Kgt});var dj=L(v0=>{"use strict";var Jgt=v0&&v0.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),zgt=v0&&v0.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Jgt(e,t,r)};Object.defineProperty(v0,"__esModule",{value:!0});var Zgt=Ie("events"),Xgt=Lp(),$gt=Vhe(),oT=fv(),Jge=Kge(),zge=uv(),edt=XH(),tdt=sj(),Zge=oj(),rdt=["request","response","redirect","uploadProgress","downloadProgress"];function Xge(t){let e,r,s=new Zgt.EventEmitter,a=new $gt((c,f,p)=>{let h=E=>{let C=new zge.default(void 0,t);C.retryCount=E,C._noPipe=!0,p(()=>C.destroy()),p.shouldReject=!1,p(()=>f(new oT.CancelError(C))),e=C,C.once("response",async I=>{var R;if(I.retryCount=E,I.request.aborted)return;let N;try{N=await tdt.default(C),I.rawBody=N}catch{return}if(C._isAboutToError)return;let U=((R=I.headers["content-encoding"])!==null&&R!==void 0?R:"").toLowerCase(),W=["gzip","deflate","br"].includes(U),{options:te}=C;if(W&&!te.decompress)I.body=N;else try{I.body=Jge.default(I,te.responseType,te.parseJson,te.encoding)}catch(ie){if(I.body=N.toString(),Zge.isResponseOk(I)){C._beforeError(ie);return}}try{for(let[ie,Ae]of te.hooks.afterResponse.entries())I=await Ae(I,async ce=>{let me=zge.default.normalizeArguments(void 0,{...ce,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},te);me.hooks.afterResponse=me.hooks.afterResponse.slice(0,ie);for(let Be of me.hooks.beforeRetry)await Be(me);let pe=Xge(me);return p(()=>{pe.catch(()=>{}),pe.cancel()}),pe})}catch(ie){C._beforeError(new oT.RequestError(ie.message,ie,C));return}if(!Zge.isResponseOk(I)){C._beforeError(new oT.HTTPError(I));return}r=I,c(C.options.resolveBodyOnly?I.body:I)});let S=I=>{if(a.isCanceled)return;let{options:R}=C;if(I instanceof oT.HTTPError&&!R.throwHttpErrors){let{response:N}=I;c(C.options.resolveBodyOnly?N.body:N);return}f(I)};C.once("error",S);let P=C.options.body;C.once("retry",(I,R)=>{var N,U;if(P===((N=R.request)===null||N===void 0?void 0:N.options.body)&&Xgt.default.nodeStream((U=R.request)===null||U===void 0?void 0:U.options.body)){S(R);return}h(I)}),edt.default(C,s,rdt)};h(0)});a.on=(c,f)=>(s.on(c,f),a);let n=c=>{let f=(async()=>{await a;let{options:p}=r.request;return Jge.default(r,c,p.parseJson,p.encoding)})();return Object.defineProperties(f,Object.getOwnPropertyDescriptors(a)),f};return a.json=()=>{let{headers:c}=e.options;return!e.writableFinished&&c.accept===void 0&&(c.accept="application/json"),n("json")},a.buffer=()=>n("buffer"),a.text=()=>n("text"),a}v0.default=Xge;zgt(fv(),v0)});var $ge=L(mj=>{"use strict";Object.defineProperty(mj,"__esModule",{value:!0});var ndt=fv();function idt(t,...e){let r=(async()=>{if(t instanceof ndt.RequestError)try{for(let a of e)if(a)for(let n of a)t=await n(t)}catch(a){t=a}throw t})(),s=()=>r;return r.json=s,r.text=s,r.buffer=s,r.on=s,r}mj.default=idt});var rde=L(yj=>{"use strict";Object.defineProperty(yj,"__esModule",{value:!0});var ede=Lp();function tde(t){for(let e of Object.values(t))(ede.default.plainObject(e)||ede.default.array(e))&&tde(e);return Object.freeze(t)}yj.default=tde});var ide=L(nde=>{"use strict";Object.defineProperty(nde,"__esModule",{value:!0})});var Ej=L(Lc=>{"use strict";var sdt=Lc&&Lc.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),odt=Lc&&Lc.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&sdt(e,t,r)};Object.defineProperty(Lc,"__esModule",{value:!0});Lc.defaultHandler=void 0;var sde=Lp(),Oc=dj(),adt=$ge(),lT=uv(),ldt=rde(),cdt={RequestError:Oc.RequestError,CacheError:Oc.CacheError,ReadError:Oc.ReadError,HTTPError:Oc.HTTPError,MaxRedirectsError:Oc.MaxRedirectsError,TimeoutError:Oc.TimeoutError,ParseError:Oc.ParseError,CancelError:Oc.CancelError,UnsupportedProtocolError:Oc.UnsupportedProtocolError,UploadError:Oc.UploadError},udt=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:aT}=lT.default,ode=(...t)=>{let e;for(let r of t)e=aT(void 0,r,e);return e},fdt=t=>t.isStream?new lT.default(void 0,t):Oc.default(t),Adt=t=>"defaults"in t&&"options"in t.defaults,pdt=["get","post","put","patch","head","delete"];Lc.defaultHandler=(t,e)=>e(t);var ade=(t,e)=>{if(t)for(let r of t)r(e)},lde=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(s=>(a,n)=>{let c,f=s(a,p=>(c=n(p),c));if(f!==c&&!a.isStream&&c){let p=f,{then:h,catch:E,finally:C}=p;Object.setPrototypeOf(p,Object.getPrototypeOf(c)),Object.defineProperties(p,Object.getOwnPropertyDescriptors(c)),p.then=h,p.catch=E,p.finally=C}return f});let e=(s,a={},n)=>{var c,f;let p=0,h=E=>t.handlers[p++](E,p===t.handlers.length?fdt:h);if(sde.default.plainObject(s)){let E={...s,...a};lT.setNonEnumerableProperties([s,a],E),a=E,s=void 0}try{let E;try{ade(t.options.hooks.init,a),ade((c=a.hooks)===null||c===void 0?void 0:c.init,a)}catch(S){E=S}let C=aT(s,a,n??t.options);if(C[lT.kIsNormalizedAlready]=!0,E)throw new Oc.RequestError(E.message,E,C);return h(C)}catch(E){if(a.isStream)throw E;return adt.default(E,t.options.hooks.beforeError,(f=a.hooks)===null||f===void 0?void 0:f.beforeError)}};e.extend=(...s)=>{let a=[t.options],n=[...t._rawHandlers],c;for(let f of s)Adt(f)?(a.push(f.defaults.options),n.push(...f.defaults._rawHandlers),c=f.defaults.mutableDefaults):(a.push(f),"handlers"in f&&n.push(...f.handlers),c=f.mutableDefaults);return n=n.filter(f=>f!==Lc.defaultHandler),n.length===0&&n.push(Lc.defaultHandler),lde({options:ode(...a),handlers:n,mutableDefaults:!!c})};let r=async function*(s,a){let n=aT(s,a,t.options);n.resolveBodyOnly=!1;let c=n.pagination;if(!sde.default.object(c))throw new TypeError("`options.pagination` must be implemented");let f=[],{countLimit:p}=c,h=0;for(;h<c.requestLimit;){h!==0&&await udt(c.backoff);let E=await e(void 0,void 0,n),C=await c.transform(E),S=[];for(let I of C)if(c.filter(I,f,S)&&(!c.shouldContinue(I,f,S)||(yield I,c.stackAllItems&&f.push(I),S.push(I),--p<=0)))return;let P=c.paginate(E,f,S);if(P===!1)return;P===E.request.options?n=E.request.options:P!==void 0&&(n=aT(void 0,P,n)),h++}};e.paginate=r,e.paginate.all=async(s,a)=>{let n=[];for await(let c of r(s,a))n.push(c);return n},e.paginate.each=r,e.stream=(s,a)=>e(s,{...a,isStream:!0});for(let s of pdt)e[s]=(a,n)=>e(a,{...n,method:s}),e.stream[s]=(a,n)=>e(a,{...n,method:s,isStream:!0});return Object.assign(e,cdt),Object.defineProperty(e,"defaults",{value:t.mutableDefaults?t:ldt.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=ode,e};Lc.default=lde;odt(ide(),Lc)});var fde=L((Mp,cT)=>{"use strict";var hdt=Mp&&Mp.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),cde=Mp&&Mp.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&hdt(e,t,r)};Object.defineProperty(Mp,"__esModule",{value:!0});var gdt=Ie("url"),ude=Ej(),ddt={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType==="json"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,"link"))return!1;let e=t.headers.link.split(","),r;for(let s of e){let a=s.split(";");if(a[1].includes("next")){r=a[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new gdt.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[ude.defaultHandler],mutableDefaults:!1},Ij=ude.default(ddt);Mp.default=Ij;cT.exports=Ij;cT.exports.default=Ij;cT.exports.__esModule=!0;cde(Ej(),Mp);cde(dj(),Mp)});var An={};Vt(An,{Method:()=>mde,del:()=>Cdt,get:()=>Bj,getNetworkSettings:()=>dde,post:()=>vj,put:()=>Idt,request:()=>Av});async function Cj(t){return Vl(pde,t,()=>le.readFilePromise(t).then(e=>(pde.set(t,e),e)))}function Edt({statusCode:t,statusMessage:e},r){let s=Ut(r,t,pt.NUMBER),a=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return KE(r,`${s}${e?` (${e})`:""}`,a)}async function uT(t,{configuration:e,customErrorMessage:r}){try{return await t}catch(s){if(s.name!=="HTTPError")throw s;let a=r?.(s,e)??s.response.body?.error;a==null&&(s.message.startsWith("Response code")?a="The remote server failed to provide the requested resource":a=s.message),s.code==="ETIMEDOUT"&&s.event==="socket"&&(a+=`(can be increased via ${Ut(e,"httpTimeout",pt.SETTING)})`);let n=new Yt(35,a,c=>{s.response&&c.reportError(35,` ${Zf(e,{label:"Response Code",value:Hu(pt.NO_HINT,Edt(s.response,e))})}`),s.request&&(c.reportError(35,` ${Zf(e,{label:"Request Method",value:Hu(pt.NO_HINT,s.request.options.method)})}`),c.reportError(35,` ${Zf(e,{label:"Request URL",value:Hu(pt.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&c.reportError(35,` ${Zf(e,{label:"Request Redirects",value:Hu(pt.NO_HINT,f3(e,s.request.redirects,pt.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&c.reportError(35,` ${Zf(e,{label:"Request Retry Count",value:Hu(pt.NO_HINT,`${Ut(e,s.request.retryCount,pt.NUMBER)} (can be increased via ${Ut(e,"httpRetry",pt.SETTING)})`)})}`)});throw n.originalError=s,n}}function dde(t,e){let r=[...e.configuration.get("networkSettings")].sort(([c],[f])=>f.length-c.length),s={enableNetwork:void 0,httpsCaFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},a=Object.keys(s),n=typeof t=="string"?new URL(t):t;for(let[c,f]of r)if(wj.default.isMatch(n.hostname,c))for(let p of a){let h=f.get(p);h!==null&&typeof s[p]>"u"&&(s[p]=h)}for(let c of a)typeof s[c]>"u"&&(s[c]=e.configuration.get(c));return s}async function Av(t,e,{configuration:r,headers:s,jsonRequest:a,jsonResponse:n,method:c="GET",wrapNetworkRequest:f}){let p={target:t,body:e,configuration:r,headers:s,jsonRequest:a,jsonResponse:n,method:c},h=async()=>await wdt(t,e,p),E=typeof f<"u"?await f(h,p):h;return await(await r.reduceHook(S=>S.wrapNetworkRequest,E,p))()}async function Bj(t,{configuration:e,jsonResponse:r,customErrorMessage:s,wrapNetworkRequest:a,...n}){let c=()=>uT(Av(t,null,{configuration:e,wrapNetworkRequest:a,...n}),{configuration:e,customErrorMessage:s}).then(p=>p.body),f=await(typeof a<"u"?c():Vl(Ade,t,()=>c().then(p=>(Ade.set(t,p),p))));return r?JSON.parse(f.toString()):f}async function Idt(t,e,{customErrorMessage:r,...s}){return(await uT(Av(t,e,{...s,method:"PUT"}),{customErrorMessage:r,configuration:s.configuration})).body}async function vj(t,e,{customErrorMessage:r,...s}){return(await uT(Av(t,e,{...s,method:"POST"}),{customErrorMessage:r,configuration:s.configuration})).body}async function Cdt(t,{customErrorMessage:e,...r}){return(await uT(Av(t,null,{...r,method:"DELETE"}),{customErrorMessage:e,configuration:r.configuration})).body}async function wdt(t,e,{configuration:r,headers:s,jsonRequest:a,jsonResponse:n,method:c="GET"}){let f=typeof t=="string"?new URL(t):t,p=dde(f,{configuration:r});if(p.enableNetwork===!1)throw new Yt(80,`Request to '${f.href}' has been blocked because of your configuration settings`);if(f.protocol==="http:"&&!wj.default.isMatch(f.hostname,r.get("unsafeHttpWhitelist")))throw new Yt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${f.hostname})`);let h={headers:s,method:c};h.responseType=n?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!a&&typeof e=="string"?h.body=e:h.json=e);let E=r.get("httpTimeout"),C=r.get("httpRetry"),S=r.get("enableStrictSsl"),P=p.httpsCaFilePath,I=p.httpsCertFilePath,R=p.httpsKeyFilePath,{default:N}=await Promise.resolve().then(()=>et(fde())),U=P?await Cj(P):void 0,W=I?await Cj(I):void 0,te=R?await Cj(R):void 0,ie={rejectUnauthorized:S,ca:U,cert:W,key:te},Ae={http:p.httpProxy?new Uhe({proxy:p.httpProxy,proxyRequestOptions:ie}):mdt,https:p.httpsProxy?new Hhe({proxy:p.httpsProxy,proxyRequestOptions:ie}):ydt},ce=N.extend({timeout:{socket:E},retry:C,agent:Ae,https:{rejectUnauthorized:S,certificateAuthority:U,certificate:W,key:te},...h});return r.getLimit("networkConcurrency")(()=>ce(f))}var hde,gde,wj,Ade,pde,mdt,ydt,mde,fT=Ct(()=>{bt();jhe();hde=Ie("https"),gde=Ie("http"),wj=et(Sa());Fc();Qc();kc();Ade=new Map,pde=new Map,mdt=new gde.Agent({keepAlive:!0}),ydt=new hde.Agent({keepAlive:!0});mde=(a=>(a.GET="GET",a.PUT="PUT",a.POST="POST",a.DELETE="DELETE",a))(mde||{})});var ps={};Vt(ps,{availableParallelism:()=>Dj,getArchitecture:()=>pv,getArchitectureName:()=>bdt,getArchitectureSet:()=>Sj,getCaller:()=>Qdt,major:()=>Bdt,openUrl:()=>vdt});function Ddt(){if(process.platform==="darwin"||process.platform==="win32")return null;let t;try{t=le.readFileSync(Sdt)}catch{}if(typeof t<"u"){if(t&&(t.includes("GLIBC")||t.includes("libc")))return"glibc";if(t&&t.includes("musl"))return"musl"}let r=(process.report?.getReport()??{}).sharedObjects??[],s=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return A0(r,a=>{let n=a.match(s);if(!n)return A0.skip;if(n[1])return"glibc";if(n[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")})??null}function pv(){return Ede=Ede??{os:process.platform,cpu:process.arch,libc:Ddt()}}function bdt(t=pv()){return t.libc?`${t.os}-${t.cpu}-${t.libc}`:`${t.os}-${t.cpu}`}function Sj(){let t=pv();return Ide=Ide??{os:[t.os],cpu:[t.cpu],libc:t.libc?[t.libc]:[]}}function kdt(t){let e=Pdt.exec(t);if(!e)return null;let r=e[2]&&e[2].indexOf("native")===0,s=e[2]&&e[2].indexOf("eval")===0,a=xdt.exec(e[2]);return s&&a!=null&&(e[2]=a[1],e[3]=a[2],e[4]=a[3]),{file:r?null:e[2],methodName:e[1]||"<unknown>",arguments:r?[e[2]]:[],line:e[3]?+e[3]:null,column:e[4]?+e[4]:null}}function Qdt(){let e=new Error().stack.split(` +`)[3];return kdt(e)}function Dj(){return typeof AT.default.availableParallelism<"u"?AT.default.availableParallelism():Math.max(1,AT.default.cpus().length)}var AT,Bdt,yde,vdt,Sdt,Ede,Ide,Pdt,xdt,pT=Ct(()=>{bt();AT=et(Ie("os"));hT();kc();Bdt=Number(process.versions.node.split(".")[0]),yde=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),vdt=typeof yde<"u"?async t=>{try{return await bj(yde,[t],{cwd:K.cwd()}),!0}catch{return!1}}:void 0,Sdt="/usr/bin/ldd";Pdt=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,xdt=/\((\S*)(?::(\d+))(?::(\d+))\)/});function Tj(t,e,r,s,a){let n=ev(r);if(s.isArray||s.type==="ANY"&&Array.isArray(n))return Array.isArray(n)?n.map((c,f)=>Pj(t,`${e}[${f}]`,c,s,a)):String(n).split(/,/).map(c=>Pj(t,e,c,s,a));if(Array.isArray(n))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return Pj(t,e,r,s,a)}function Pj(t,e,r,s,a){let n=ev(r);switch(s.type){case"ANY":return RQ(n);case"SHAPE":return Ndt(t,e,r,s,a);case"MAP":return Odt(t,e,r,s,a)}if(n===null&&!s.isNullable&&s.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if(s.values?.includes(n))return n;let f=(()=>{if(s.type==="BOOLEAN"&&typeof n!="string")return MB(n);if(typeof n!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof n}`);let p=Yk(n,{env:t.env});switch(s.type){case"ABSOLUTE_PATH":{let h=a,E=rH(r);return E&&E[0]!=="<"&&(h=K.dirname(E)),K.resolve(h,ue.toPortablePath(p))}case"LOCATOR_LOOSE":return Rp(p,!1);case"NUMBER":return parseInt(p);case"LOCATOR":return Rp(p);case"BOOLEAN":return MB(p);default:return p}})();if(s.values&&!s.values.includes(f))throw new Error(`Invalid value, expected one of ${s.values.join(", ")}`);return f}function Ndt(t,e,r,s,a){let n=ev(r);if(typeof n!="object"||Array.isArray(n))throw new nt(`Object configuration settings "${e}" must be an object`);let c=Rj(t,s,{ignoreArrays:!0});if(n===null)return c;for(let[f,p]of Object.entries(n)){let h=`${e}.${f}`;if(!s.properties[f])throw new nt(`Unrecognized configuration settings found: ${e}.${f} - run "yarn config -v" to see the list of settings supported in Yarn`);c.set(f,Tj(t,h,p,s.properties[f],a))}return c}function Odt(t,e,r,s,a){let n=ev(r),c=new Map;if(typeof n!="object"||Array.isArray(n))throw new nt(`Map configuration settings "${e}" must be an object`);if(n===null)return c;for(let[f,p]of Object.entries(n)){let h=s.normalizeKeys?s.normalizeKeys(f):f,E=`${e}['${h}']`,C=s.valueDefinition;c.set(h,Tj(t,E,p,C,a))}return c}function Rj(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!r)return[];let s=new Map;for(let[a,n]of Object.entries(e.properties))s.set(a,Rj(t,n));return s}case"MAP":return e.isArray&&!r?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:t.projectCwd===null?Array.isArray(e.default)?e.default.map(s=>K.normalize(s)):K.isAbsolute(e.default)?K.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(s=>K.resolve(t.projectCwd,s)):K.resolve(t.projectCwd,e.default);default:return e.default}}function dT(t,e,r){if(e.type==="SECRET"&&typeof t=="string"&&r.hideSecrets)return Fdt;if(e.type==="ABSOLUTE_PATH"&&typeof t=="string"&&r.getNativePaths)return ue.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let s=[];for(let a of t)s.push(dT(a,e,r));return s}if(e.type==="MAP"&&t instanceof Map){if(t.size===0)return;let s=new Map;for(let[a,n]of t.entries()){let c=dT(n,e.valueDefinition,r);typeof c<"u"&&s.set(a,c)}return s}if(e.type==="SHAPE"&&t instanceof Map){if(t.size===0)return;let s=new Map;for(let[a,n]of t.entries()){let c=e.properties[a],f=dT(n,c,r);typeof f<"u"&&s.set(a,f)}return s}return t}function Ldt(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(mT)&&(e=(0,wde.default)(e.slice(mT.length)),t[e]=r);return t}function kj(){let t=`${mT}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return Qj}async function Cde(t){try{return await le.readFilePromise(t)}catch{return Buffer.of()}}async function Mdt(t,e){return Buffer.compare(...await Promise.all([Cde(t),Cde(e)]))===0}async function _dt(t,e){let[r,s]=await Promise.all([le.statPromise(t),le.statPromise(e)]);return r.dev===s.dev&&r.ino===s.ino}async function Hdt({configuration:t,selfPath:e}){let r=t.get("yarnPath");return t.get("ignorePath")||r===null||r===e||await Udt(r,e)?null:r}var wde,_p,Bde,vde,Sde,xj,Tdt,hv,Rdt,Up,mT,Qj,Fdt,gv,Dde,yT,gT,Udt,ze,dv=Ct(()=>{bt();Bc();wde=et(zre()),_p=et(Rd());Wt();Bde=et(qne()),vde=Ie("module"),Sde=et(Od()),xj=Ie("stream");nhe();sI();K8();J8();z8();Qhe();Z8();$d();Ohe();NQ();Qc();E0();fT();kc();pT();Np();Yo();Tdt=function(){if(!_p.GITHUB_ACTIONS||!process.env.GITHUB_EVENT_PATH)return!1;let t=ue.toPortablePath(process.env.GITHUB_EVENT_PATH),e;try{e=le.readJsonSync(t)}catch{return!1}return!(!("repository"in e)||!e.repository||(e.repository.private??!0))}(),hv=new Set(["@yarnpkg/plugin-constraints","@yarnpkg/plugin-exec","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]),Rdt=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","zipDataEpilogue","cacheCheckpointOverride","cacheVersionOverride","lockfileVersionOverride","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry","ignoreCwd"]),Up=/^(?!v)[a-z0-9._-]+$/i,mT="yarn_",Qj=".yarnrc.yml",Fdt="********",gv=(E=>(E.ANY="ANY",E.BOOLEAN="BOOLEAN",E.ABSOLUTE_PATH="ABSOLUTE_PATH",E.LOCATOR="LOCATOR",E.LOCATOR_LOOSE="LOCATOR_LOOSE",E.NUMBER="NUMBER",E.STRING="STRING",E.SECRET="SECRET",E.SHAPE="SHAPE",E.MAP="MAP",E))(gv||{}),Dde=pt,yT=(r=>(r.JUNCTIONS="junctions",r.SYMLINKS="symlinks",r))(yT||{}),gT={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:iH()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:0},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:kj()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!0},cacheMigrationMode:{description:"Defines the conditions under which Yarn upgrades should cause the cache archives to be regenerated.",type:"STRING",values:["always","match-spec","required-only"],default:"always"},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:zk,defaultText:"<dynamic>"},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:u3,defaultText:"<dynamic>"},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:_p.isCI,defaultText:"<dynamic>"},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!_p.isCI,defaultText:"<dynamic>"},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},enableTips:{description:"If true, installs will print a helpful message every day of the week",type:"BOOLEAN",default:!_p.isCI,defaultText:"<dynamic>"},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:"<dynamic>"},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, Yarn will refuse to use the network if required to",type:"BOOLEAN",default:!0},enableOfflineMode:{description:"If true, Yarn will attempt to retrieve files and metadata from the global cache rather than the network",type:"BOOLEAN",default:!1},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},taskPoolConcurrency:{description:"Maximal amount of concurrent heavy task processing",type:"NUMBER",default:Dj()},taskPoolMode:{description:"Execution strategy for heavy tasks",type:"STRING",values:["async","workers"],default:"workers"},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{httpsCaFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},httpsCaFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(Xk),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableHardenedMode:{description:"If true, automatically enable --check-resolutions --refresh-lockfile on installs",type:"BOOLEAN",default:_p.isPR&&Tdt,defaultText:"<true on public PRs>"},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},enableCacheClean:{description:"If false, disallows the `cache clean` command",type:"BOOLEAN",default:!0},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},injectEnvironmentFiles:{description:"List of all the environment files that Yarn should inject inside the process when it starts",type:"ABSOLUTE_PATH",default:[".env.yarn?"],isArray:!0},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};Udt=process.platform==="win32"?Mdt:_dt;ze=class t{constructor(e){this.isCI=_p.isCI;this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.env={};this.limits=new Map;this.packageExtensions=null;this.startingCwd=e}static{this.deleteProperty=Symbol()}static{this.telemetry=null}static create(e,r,s){let a=new t(e);typeof r<"u"&&!(r instanceof Map)&&(a.projectCwd=r),a.importSettings(gT);let n=typeof s<"u"?s:r instanceof Map?r:new Map;for(let[c,f]of n)a.activatePlugin(c,f);return a}static async find(e,r,{strict:s=!0,usePathCheck:a=null,useRc:n=!0}={}){let c=Ldt();delete c.rcFilename;let f=new t(e),p=await t.findRcFiles(e),h=await t.findFolderRcFile(fI());h&&(p.find(me=>me.path===h.path)||p.unshift(h));let E=Nhe(p.map(ce=>[ce.path,ce.data])),C=vt.dot,S=new Set(Object.keys(gT)),P=({yarnPath:ce,ignorePath:me,injectEnvironmentFiles:pe})=>({yarnPath:ce,ignorePath:me,injectEnvironmentFiles:pe}),I=({yarnPath:ce,ignorePath:me,injectEnvironmentFiles:pe,...Be})=>{let Ce={};for(let[g,we]of Object.entries(Be))S.has(g)&&(Ce[g]=we);return Ce},R=({yarnPath:ce,ignorePath:me,...pe})=>{let Be={};for(let[Ce,g]of Object.entries(pe))S.has(Ce)||(Be[Ce]=g);return Be};if(f.importSettings(P(gT)),f.useWithSource("<environment>",P(c),e,{strict:!1}),E){let[ce,me]=E;f.useWithSource(ce,P(me),C,{strict:!1})}if(a){if(await Hdt({configuration:f,selfPath:a})!==null)return f;f.useWithSource("<override>",{ignorePath:!0},e,{strict:!1,overwrite:!0})}let N=await t.findProjectCwd(e);f.startingCwd=e,f.projectCwd=N;let U=Object.assign(Object.create(null),process.env);f.env=U;let W=await Promise.all(f.get("injectEnvironmentFiles").map(async ce=>{let me=ce.endsWith("?")?await le.readFilePromise(ce.slice(0,-1),"utf8").catch(()=>""):await le.readFilePromise(ce,"utf8");return(0,Bde.parse)(me)}));for(let ce of W)for(let[me,pe]of Object.entries(ce))f.env[me]=Yk(pe,{env:U});if(f.importSettings(I(gT)),f.useWithSource("<environment>",I(c),e,{strict:s}),E){let[ce,me]=E;f.useWithSource(ce,I(me),C,{strict:s})}let te=ce=>"default"in ce?ce.default:ce,ie=new Map([["@@core",rhe]]);if(r!==null)for(let ce of r.plugins.keys())ie.set(ce,te(r.modules.get(ce)));for(let[ce,me]of ie)f.activatePlugin(ce,me);let Ae=new Map([]);if(r!==null){let ce=new Map;for(let[Be,Ce]of r.modules)ce.set(Be,()=>Ce);let me=new Set,pe=async(Be,Ce)=>{let{factory:g,name:we}=kp(Be);if(!g||me.has(we))return;let ye=new Map(ce),fe=X=>{if((0,vde.isBuiltin)(X))return kp(X);if(ye.has(X))return ye.get(X)();throw new nt(`This plugin cannot access the package referenced via ${X} which is neither a builtin, nor an exposed entry`)},se=await qE(async()=>te(await g(fe)),X=>`${X} (when initializing ${we}, defined in ${Ce})`);ce.set(we,()=>se),me.add(we),Ae.set(we,se)};if(c.plugins)for(let Be of c.plugins.split(";")){let Ce=K.resolve(e,ue.toPortablePath(Be));await pe(Ce,"<environment>")}for(let{path:Be,cwd:Ce,data:g}of p)if(n&&Array.isArray(g.plugins))for(let we of g.plugins){let ye=typeof we!="string"?we.path:we,fe=we?.spec??"",se=we?.checksum??"";if(hv.has(fe))continue;let X=K.resolve(Ce,ue.toPortablePath(ye));if(!await le.existsPromise(X)){if(!fe){let dt=Ut(f,K.basename(X,".cjs"),pt.NAME),j=Ut(f,".gitignore",pt.NAME),rt=Ut(f,f.values.get("rcFilename"),pt.NAME),Fe=Ut(f,"https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored",pt.URL);throw new nt(`Missing source for the ${dt} plugin - please try to remove the plugin from ${rt} then reinstall it manually. This error usually occurs because ${j} is incorrect, check ${Fe} to make sure your plugin folder isn't gitignored.`)}if(!fe.match(/^https?:/)){let dt=Ut(f,K.basename(X,".cjs"),pt.NAME),j=Ut(f,f.values.get("rcFilename"),pt.NAME);throw new nt(`Failed to recognize the source for the ${dt} plugin - please try to delete the plugin from ${j} then reinstall it manually.`)}let De=await Bj(fe,{configuration:f}),Re=fs(De);if(se&&se!==Re){let dt=Ut(f,K.basename(X,".cjs"),pt.NAME),j=Ut(f,f.values.get("rcFilename"),pt.NAME),rt=Ut(f,`yarn plugin import ${fe}`,pt.CODE);throw new nt(`Failed to fetch the ${dt} plugin from its remote location: its checksum seems to have changed. If this is expected, please remove the plugin from ${j} then run ${rt} to reimport it.`)}await le.mkdirPromise(K.dirname(X),{recursive:!0}),await le.writeFilePromise(X,De)}await pe(X,Be)}}for(let[ce,me]of Ae)f.activatePlugin(ce,me);if(f.useWithSource("<environment>",R(c),e,{strict:s}),E){let[ce,me]=E;f.useWithSource(ce,R(me),C,{strict:s})}return f.get("enableGlobalCache")&&(f.values.set("cacheFolder",`${f.get("globalFolder")}/cache`),f.sources.set("cacheFolder","<internal>")),f}static async findRcFiles(e){let r=kj(),s=[],a=e,n=null;for(;a!==n;){n=a;let c=K.join(n,r);if(le.existsSync(c)){let f,p;try{p=await le.readFilePromise(c,"utf8"),f=cs(p)}catch{let h="";throw p?.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(h=" (in particular, make sure you list the colons after each key name)"),new nt(`Parse error when loading ${c}; please check it's proper Yaml${h}`)}s.unshift({path:c,cwd:n,data:f})}a=K.dirname(n)}return s}static async findFolderRcFile(e){let r=K.join(e,Er.rc),s;try{s=await le.readFilePromise(r,"utf8")}catch(n){if(n.code==="ENOENT")return null;throw n}let a=cs(s);return{path:r,cwd:e,data:a}}static async findProjectCwd(e){let r=null,s=e,a=null;for(;s!==a;){if(a=s,le.existsSync(K.join(a,Er.lockfile)))return a;le.existsSync(K.join(a,Er.manifest))&&(r=a),s=K.dirname(a)}return r}static async updateConfiguration(e,r,s={}){let a=kj(),n=K.join(e,a),c=le.existsSync(n)?cs(await le.readFilePromise(n,"utf8")):{},f=!1,p;if(typeof r=="function"){try{p=r(c)}catch{p=r({})}if(p===c)return!1}else{p=c;for(let h of Object.keys(r)){let E=c[h],C=r[h],S;if(typeof C=="function")try{S=C(E)}catch{S=C(void 0)}else S=C;E!==S&&(S===t.deleteProperty?delete p[h]:p[h]=S,f=!0)}if(!f)return!1}return await le.changeFilePromise(n,il(p),{automaticNewlines:!0}),!0}static async addPlugin(e,r){r.length!==0&&await t.updateConfiguration(e,s=>{let a=s.plugins??[];if(a.length===0)return{...s,plugins:r};let n=[],c=[...r];for(let f of a){let p=typeof f!="string"?f.path:f,h=c.find(E=>E.path===p);h?(n.push(h),c=c.filter(E=>E!==h)):n.push(f)}return n.push(...c),{...s,plugins:n}})}static async updateHomeConfiguration(e){let r=fI();return await t.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration<"u"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,s]of Object.entries(e))if(s!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings "${r}"`);this.settings.set(r,s),this.values.set(r,Rj(this,s))}}useWithSource(e,r,s,a){try{this.use(e,r,s,a)}catch(n){throw n.message+=` (in ${Ut(this,e,pt.PATH)})`,n}}use(e,r,s,{strict:a=!0,overwrite:n=!1}={}){a=a&&this.get("enableStrictSettings");for(let c of["enableStrictSettings",...Object.keys(r)]){let f=r[c],p=rH(f);if(p&&(e=p),typeof f>"u"||c==="plugins"||e==="<environment>"&&Rdt.has(c))continue;if(c==="rcFilename")throw new nt(`The rcFilename settings can only be set via ${`${mT}RC_FILENAME`.toUpperCase()}, not via a rc file`);let h=this.settings.get(c);if(!h){let C=fI(),S=e[0]!=="<"?K.dirname(e):null;if(a&&!(S!==null?C===S:!1))throw new nt(`Unrecognized or legacy configuration settings found: ${c} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(c,e);continue}if(this.sources.has(c)&&!(n||h.type==="MAP"||h.isArray&&h.concatenateValues))continue;let E;try{E=Tj(this,c,f,h,s)}catch(C){throw C.message+=` in ${Ut(this,e,pt.PATH)}`,C}if(c==="enableStrictSettings"&&e!=="<environment>"){a=E;continue}if(h.type==="MAP"){let C=this.values.get(c);this.values.set(c,new Map(n?[...C,...E]:[...E,...C])),this.sources.set(c,`${this.sources.get(c)}, ${e}`)}else if(h.isArray&&h.concatenateValues){let C=this.values.get(c);this.values.set(c,n?[...C,...E]:[...E,...C]),this.sources.set(c,`${this.sources.get(c)}, ${e}`)}else this.values.set(c,E),this.sources.set(c,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:s=!1}){let a=this.get(e),n=this.settings.get(e);if(typeof n>"u")throw new nt(`Couldn't find a configuration settings named "${e}"`);return dT(a,n,{hideSecrets:r,getNativePaths:s})}getSubprocessStreams(e,{header:r,prefix:s,report:a}){let n,c,f=le.createWriteStream(e);if(this.get("enableInlineBuilds")){let p=a.createStreamReporter(`${s} ${Ut(this,"STDOUT","green")}`),h=a.createStreamReporter(`${s} ${Ut(this,"STDERR","red")}`);n=new xj.PassThrough,n.pipe(p),n.pipe(f),c=new xj.PassThrough,c.pipe(h),c.pipe(f)}else n=f,c=f,typeof r<"u"&&n.write(`${r} +`);return{stdout:n,stderr:c}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let s of r.resolvers||[])e.push(new s);return new em([new TQ,new Ei,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let s of r.fetchers||[])e.push(new s);return new aI([new lI,new cI,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let s of r.linkers||[])e.push(new s);return e}getSupportedArchitectures(){let e=pv(),r=this.get("supportedArchitectures"),s=r.get("os");s!==null&&(s=s.map(c=>c==="current"?e.os:c));let a=r.get("cpu");a!==null&&(a=a.map(c=>c==="current"?e.cpu:c));let n=r.get("libc");return n!==null&&(n=Yl(n,c=>c==="current"?e.libc??Yl.skip:c)),{os:s,cpu:a,libc:n}}isInteractive({interactive:e,stdout:r}){return r.isTTY?e??this.get("preferInteractive"):!1}async getPackageExtensions(){if(this.packageExtensions!==null)return this.packageExtensions;this.packageExtensions=new Map;let e=this.packageExtensions,r=(s,a,{userProvided:n=!1}={})=>{if(!ul(s.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let c=new Ht;c.load(a,{yamlCompatibilityMode:!0});let f=LB(e,s.identHash),p=[];f.push([s.range,p]);let h={status:"inactive",userProvided:n,parentDescriptor:s};for(let E of c.dependencies.values())p.push({...h,type:"Dependency",descriptor:E});for(let E of c.peerDependencies.values())p.push({...h,type:"PeerDependency",descriptor:E});for(let[E,C]of c.peerDependenciesMeta)for(let[S,P]of Object.entries(C))p.push({...h,type:"PeerDependencyMeta",selector:E,key:S,value:P})};await this.triggerHook(s=>s.registerPackageExtensions,this,r);for(let[s,a]of this.get("packageExtensions"))r(I0(s,!0),Wk(a),{userProvided:!0});return e}normalizeLocator(e){return ul(e.reference)?Vs(e,`${this.get("defaultProtocol")}${e.reference}`):Up.test(e.reference)?Vs(e,`${this.get("defaultProtocol")}${e.reference}`):e}normalizeDependency(e){return ul(e.range)?On(e,`${this.get("defaultProtocol")}${e.range}`):Up.test(e.range)?On(e,`${this.get("defaultProtocol")}${e.range}`):e}normalizeDependencyMap(e){return new Map([...e].map(([r,s])=>[r,this.normalizeDependency(s)]))}normalizePackage(e,{packageExtensions:r}){let s=WB(e),a=r.get(e.identHash);if(typeof a<"u"){let c=e.version;if(c!==null){for(let[f,p]of a)if(eA(c,f))for(let h of p)switch(h.status==="inactive"&&(h.status="redundant"),h.type){case"Dependency":typeof s.dependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",s.dependencies.set(h.descriptor.identHash,this.normalizeDependency(h.descriptor)));break;case"PeerDependency":typeof s.peerDependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",s.peerDependencies.set(h.descriptor.identHash,h.descriptor));break;case"PeerDependencyMeta":{let E=s.peerDependenciesMeta.get(h.selector);(typeof E>"u"||!Object.hasOwn(E,h.key)||E[h.key]!==h.value)&&(h.status="active",Vl(s.peerDependenciesMeta,h.selector,()=>({}))[h.key]=h.value)}break;default:r3(h)}}}let n=c=>c.scope?`${c.scope}__${c.name}`:`${c.name}`;for(let c of s.peerDependenciesMeta.keys()){let f=Da(c);s.peerDependencies.has(f.identHash)||s.peerDependencies.set(f.identHash,On(f,"*"))}for(let c of s.peerDependencies.values()){if(c.scope==="types")continue;let f=n(c),p=ba("types",f),h=cn(p);s.peerDependencies.has(p.identHash)||s.peerDependenciesMeta.has(h)||s.dependencies.has(p.identHash)||(s.peerDependencies.set(p.identHash,On(p,"*")),s.peerDependenciesMeta.set(h,{optional:!0}))}return s.dependencies=new Map(Ys(s.dependencies,([,c])=>ll(c))),s.peerDependencies=new Map(Ys(s.peerDependencies,([,c])=>ll(c))),s}getLimit(e){return Vl(this.limits,e,()=>(0,Sde.default)(this.get(e)))}async triggerHook(e,...r){for(let s of this.plugins.values()){let a=s.hooks;if(!a)continue;let n=e(a);n&&await n(...r)}}async triggerMultipleHooks(e,r){for(let s of r)await this.triggerHook(e,...s)}async reduceHook(e,r,...s){let a=r;for(let n of this.plugins.values()){let c=n.hooks;if(!c)continue;let f=e(c);f&&(a=await f(a,...s))}return a}async firstHook(e,...r){for(let s of this.plugins.values()){let a=s.hooks;if(!a)continue;let n=e(a);if(!n)continue;let c=await n(...r);if(typeof c<"u")return c}return null}}});var Gr={};Vt(Gr,{EndStrategy:()=>Lj,ExecError:()=>ET,PipeError:()=>mv,execvp:()=>bj,pipevp:()=>Yu});function im(t){return t!==null&&typeof t.fd=="number"}function Fj(){}function Nj(){for(let t of sm)t.kill()}async function Yu(t,e,{cwd:r,env:s=process.env,strict:a=!1,stdin:n=null,stdout:c,stderr:f,end:p=2}){let h=["pipe","pipe","pipe"];n===null?h[0]="ignore":im(n)&&(h[0]=n),im(c)&&(h[1]=c),im(f)&&(h[2]=f);let E=(0,Oj.default)(t,e,{cwd:ue.fromPortablePath(r),env:{...s,PWD:ue.fromPortablePath(r)},stdio:h});sm.add(E),sm.size===1&&(process.on("SIGINT",Fj),process.on("SIGTERM",Nj)),!im(n)&&n!==null&&n.pipe(E.stdin),im(c)||E.stdout.pipe(c,{end:!1}),im(f)||E.stderr.pipe(f,{end:!1});let C=()=>{for(let S of new Set([c,f]))im(S)||S.end()};return new Promise((S,P)=>{E.on("error",I=>{sm.delete(E),sm.size===0&&(process.off("SIGINT",Fj),process.off("SIGTERM",Nj)),(p===2||p===1)&&C(),P(I)}),E.on("close",(I,R)=>{sm.delete(E),sm.size===0&&(process.off("SIGINT",Fj),process.off("SIGTERM",Nj)),(p===2||p===1&&I!==0)&&C(),I===0||!a?S({code:Mj(I,R)}):P(new mv({fileName:t,code:I,signal:R}))})})}async function bj(t,e,{cwd:r,env:s=process.env,encoding:a="utf8",strict:n=!1}){let c=["ignore","pipe","pipe"],f=[],p=[],h=ue.fromPortablePath(r);typeof s.PWD<"u"&&(s={...s,PWD:h});let E=(0,Oj.default)(t,e,{cwd:h,env:s,stdio:c});return E.stdout.on("data",C=>{f.push(C)}),E.stderr.on("data",C=>{p.push(C)}),await new Promise((C,S)=>{E.on("error",P=>{let I=ze.create(r),R=Ut(I,t,pt.PATH);S(new Yt(1,`Process ${R} failed to spawn`,N=>{N.reportError(1,` ${Zf(I,{label:"Thrown Error",value:Hu(pt.NO_HINT,P.message)})}`)}))}),E.on("close",(P,I)=>{let R=a==="buffer"?Buffer.concat(f):Buffer.concat(f).toString(a),N=a==="buffer"?Buffer.concat(p):Buffer.concat(p).toString(a);P===0||!n?C({code:Mj(P,I),stdout:R,stderr:N}):S(new ET({fileName:t,code:P,signal:I,stdout:R,stderr:N}))})})}function Mj(t,e){let r=jdt.get(e);return typeof r<"u"?128+r:t??1}function qdt(t,e,{configuration:r,report:s}){s.reportError(1,` ${Zf(r,t!==null?{label:"Exit Code",value:Hu(pt.NUMBER,t)}:{label:"Exit Signal",value:Hu(pt.CODE,e)})}`)}var Oj,Lj,mv,ET,sm,jdt,hT=Ct(()=>{bt();Oj=et(j_());dv();Fc();Qc();Lj=(s=>(s[s.Never=0]="Never",s[s.ErrorCode=1]="ErrorCode",s[s.Always=2]="Always",s))(Lj||{}),mv=class extends Yt{constructor({fileName:e,code:r,signal:s}){let a=ze.create(K.cwd()),n=Ut(a,e,pt.PATH);super(1,`Child ${n} reported an error`,c=>{qdt(r,s,{configuration:a,report:c})}),this.code=Mj(r,s)}},ET=class extends mv{constructor({fileName:e,code:r,signal:s,stdout:a,stderr:n}){super({fileName:e,code:r,signal:s}),this.stdout=a,this.stderr=n}};sm=new Set;jdt=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]])});function Pde(t){bde=t}function yv(){return typeof _j>"u"&&(_j=bde()),_j}var _j,bde,Uj=Ct(()=>{bde=()=>{throw new Error("Assertion failed: No libzip instance is available, and no factory was configured")}});var xde=L((IT,jj)=>{var Gdt=Object.assign({},Ie("fs")),Hj=function(){var t=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(t=t||__filename),function(e){e=e||{};var r=typeof e<"u"?e:{},s,a;r.ready=new Promise(function(Je,st){s=Je,a=st});var n={},c;for(c in r)r.hasOwnProperty(c)&&(n[c]=r[c]);var f=[],p="./this.program",h=function(Je,st){throw st},E=!1,C=!0,S="";function P(Je){return r.locateFile?r.locateFile(Je,S):S+Je}var I,R,N,U;C&&(E?S=Ie("path").dirname(S)+"/":S=__dirname+"/",I=function(st,St){var lr=Me(st);return lr?St?lr:lr.toString():(N||(N=Gdt),U||(U=Ie("path")),st=U.normalize(st),N.readFileSync(st,St?null:"utf8"))},R=function(st){var St=I(st,!0);return St.buffer||(St=new Uint8Array(St)),we(St.buffer),St},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),f=process.argv.slice(2),h=function(Je){process.exit(Je)},r.inspect=function(){return"[Emscripten Module object]"});var W=r.print||console.log.bind(console),te=r.printErr||console.warn.bind(console);for(c in n)n.hasOwnProperty(c)&&(r[c]=n[c]);n=null,r.arguments&&(f=r.arguments),r.thisProgram&&(p=r.thisProgram),r.quit&&(h=r.quit);var ie=0,Ae=function(Je){ie=Je},ce;r.wasmBinary&&(ce=r.wasmBinary);var me=r.noExitRuntime||!0;typeof WebAssembly!="object"&&ns("no native wasm support detected");function pe(Je,st,St){switch(st=st||"i8",st.charAt(st.length-1)==="*"&&(st="i32"),st){case"i1":return Ye[Je>>0];case"i8":return Ye[Je>>0];case"i16":return Eh((Je>>1)*2);case"i32":return no((Je>>2)*4);case"i64":return no((Je>>2)*4);case"float":return pf((Je>>2)*4);case"double":return yh((Je>>3)*8);default:ns("invalid type for getValue: "+st)}return null}var Be,Ce=!1,g;function we(Je,st){Je||ns("Assertion failed: "+st)}function ye(Je){var st=r["_"+Je];return we(st,"Cannot call unknown function "+Je+", make sure it is exported"),st}function fe(Je,st,St,lr,ee){var Ee={string:function(Gi){var Tn=0;if(Gi!=null&&Gi!==0){var Ga=(Gi.length<<2)+1;Tn=Bi(Ga),dt(Gi,Tn,Ga)}return Tn},array:function(Gi){var Tn=Bi(Gi.length);return Fe(Gi,Tn),Tn}};function Oe(Gi){return st==="string"?De(Gi):st==="boolean"?!!Gi:Gi}var gt=ye(Je),yt=[],Dt=0;if(lr)for(var tr=0;tr<lr.length;tr++){var fn=Ee[St[tr]];fn?(Dt===0&&(Dt=df()),yt[tr]=fn(lr[tr])):yt[tr]=lr[tr]}var li=gt.apply(null,yt);return li=Oe(li),Dt!==0&&Ac(Dt),li}function se(Je,st,St,lr){St=St||[];var ee=St.every(function(Oe){return Oe==="number"}),Ee=st!=="string";return Ee&&ee&&!lr?ye(Je):function(){return fe(Je,st,St,arguments,lr)}}var X=new TextDecoder("utf8");function De(Je,st){if(!Je)return"";for(var St=Je+st,lr=Je;!(lr>=St)&&ke[lr];)++lr;return X.decode(ke.subarray(Je,lr))}function Re(Je,st,St,lr){if(!(lr>0))return 0;for(var ee=St,Ee=St+lr-1,Oe=0;Oe<Je.length;++Oe){var gt=Je.charCodeAt(Oe);if(gt>=55296&><=57343){var yt=Je.charCodeAt(++Oe);gt=65536+((gt&1023)<<10)|yt&1023}if(gt<=127){if(St>=Ee)break;st[St++]=gt}else if(gt<=2047){if(St+1>=Ee)break;st[St++]=192|gt>>6,st[St++]=128|gt&63}else if(gt<=65535){if(St+2>=Ee)break;st[St++]=224|gt>>12,st[St++]=128|gt>>6&63,st[St++]=128|gt&63}else{if(St+3>=Ee)break;st[St++]=240|gt>>18,st[St++]=128|gt>>12&63,st[St++]=128|gt>>6&63,st[St++]=128|gt&63}}return st[St]=0,St-ee}function dt(Je,st,St){return Re(Je,ke,st,St)}function j(Je){for(var st=0,St=0;St<Je.length;++St){var lr=Je.charCodeAt(St);lr>=55296&&lr<=57343&&(lr=65536+((lr&1023)<<10)|Je.charCodeAt(++St)&1023),lr<=127?++st:lr<=2047?st+=2:lr<=65535?st+=3:st+=4}return st}function rt(Je){var st=j(Je)+1,St=Ma(st);return St&&Re(Je,Ye,St,st),St}function Fe(Je,st){Ye.set(Je,st)}function Ne(Je,st){return Je%st>0&&(Je+=st-Je%st),Je}var Pe,Ye,ke,it,_e,x,w,b,y,F;function z(Je){Pe=Je,r.HEAP_DATA_VIEW=F=new DataView(Je),r.HEAP8=Ye=new Int8Array(Je),r.HEAP16=it=new Int16Array(Je),r.HEAP32=x=new Int32Array(Je),r.HEAPU8=ke=new Uint8Array(Je),r.HEAPU16=_e=new Uint16Array(Je),r.HEAPU32=w=new Uint32Array(Je),r.HEAPF32=b=new Float32Array(Je),r.HEAPF64=y=new Float64Array(Je)}var Z=r.INITIAL_MEMORY||16777216,$,oe=[],xe=[],Te=[],lt=!1;function It(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)Pt(r.preRun.shift());Fs(oe)}function qt(){lt=!0,Fs(xe)}function ir(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)Pr(r.postRun.shift());Fs(Te)}function Pt(Je){oe.unshift(Je)}function gn(Je){xe.unshift(Je)}function Pr(Je){Te.unshift(Je)}var Ir=0,Nr=null,nn=null;function ai(Je){Ir++,r.monitorRunDependencies&&r.monitorRunDependencies(Ir)}function wo(Je){if(Ir--,r.monitorRunDependencies&&r.monitorRunDependencies(Ir),Ir==0&&(Nr!==null&&(clearInterval(Nr),Nr=null),nn)){var st=nn;nn=null,st()}}r.preloadedImages={},r.preloadedAudios={};function ns(Je){r.onAbort&&r.onAbort(Je),Je+="",te(Je),Ce=!0,g=1,Je="abort("+Je+"). Build with -s ASSERTIONS=1 for more info.";var st=new WebAssembly.RuntimeError(Je);throw a(st),st}var to="data:application/octet-stream;base64,";function Bo(Je){return Je.startsWith(to)}var ji="data:application/octet-stream;base64,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QCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQ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KAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASEL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NgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsi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CyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYg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DCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcN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DCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQLDAILAn8CQANAAkACQAJAAkACQCADKAI8Ig1BggJLDQAgAxAvAkAgAygCPCINQYICSw0AIAoNAEEADAgLIA1FDQQgDUECSw0AIAMoAmghCAwBCyADKAJoIghFBEBBACEIDAELIAMoAkggCGoiAUEBayIELQAAIgYgAS0AAEcNACAGIAQtAAJHDQAgBEEDaiEEQQAhCQJAA0AgBiAELQAARw0BIAQtAAEgBkcEQCAJQQFyIQkMAgsgBC0AAiAGRwRAIAlBAnIhCQwCCyAELQADIAZHBEAgCUEDciEJDAILIAQtAAQgBkcEQCAJQQRyIQkMAgsgBC0ABSAGRwRAIAlBBXIhCQwCCyAELQAGIAZHBEAgCUEGciEJDAILIAQtAAcgBkcEQCAJQQdyIQkMAgsgBEEIaiEEIAlB+AFJIQEgCUEIaiEJIAENAAtBgAIhCQtBggIhBCANIAlBAmoiASABIA1LGyIBQYECSw0BIAEiBEECSw0BCyADKAJIIAhqLQAAIQQgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtakEAOgAAIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qIAQ6AAAgAyAEQQJ0aiIBIAEvAeQBQQFqOwHkASADIAMoAjxBAWs2AjwgAyADKAJoQQFqIgQ2AmgMAQsgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtakEBOgAAIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qIARBA2s6AAAgAyADKAKALkEBajYCgC4gBEH9zgBqLQAAQQJ0IANqQegJaiIBIAEvAQBBAWo7AQAgA0GAywAtAABBAnRqQdgTaiIBIAEvAQBBAWo7AQAgAyADKAI8IARrNgI8IAMgAygCaCAEaiIENgJoCyADKALwLSADKAL0LUcNAUEAIQggAyADKAJYIgFBAE4EfyADKAJIIAFqBUEACyAEIAFrQQAQDyADIAMoAmg2AlggAygCABAKIAMoAgAoAhANAQwCCwsgA0EANgKELiAKQQRGBEAgAyADKAJYIgFBAE4EfyADKAJIIAFqBUEACyADKAJoIAFrQQEQDyADIAMoAmg2AlggAygCABAKQQNBAiADKAIAKAIQGwwCCyADKALwLQRAQQAhCCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEEUNAQtBASEICyAICwwBCyADIAogAUEMbEG42ABqKAIAEQIACyIBQX5xQQJGBEAgA0GaBTYCIAsgAUF9cUUEQEEAIQQgBSgCEA0CDAQLIAFBAUcNAAJAAkACQCAKQQFrDgUAAQEBAgELIAMpA5guISICfwJ+IAMoAqAuIgFBA2oiCUE/TQRAQgIgAa2GICKEDAELIAFBwABGBEAgAygCBCADKAIQaiAiNwAAIAMgAygCEEEIajYCEEICISJBCgwCCyADKAIEIAMoAhBqQgIgAa2GICKENwAAIAMgAygCEEEIajYCECABQT1rIQlCAkHAACABa62ICyEiIAlBB2ogCUE5SQ0AGiADKAIEIAMoAhBqICI3AAAgAyADKAIQQQhqNgIQQgAhIiAJQTlrCyEBIAMgIjcDmC4gAyABNgKgLiADEDAMAQsgA0EAQQBBABA5IApBA0cNACADKAJQQQBBgIAIEBkgAygCPA0AIANBADYChC4gA0EANgJYIANBADYCaAsgBRAKIAUoAhANAAwDC0EAIQQgCkEERw0AAkACfwJAAkAgAygCFEEBaw4CAQADCyAFIANBoAFqQeCAASgCABEBACIBNgIwIAMoAgQgAygCEGogATYAACADIAMoAhBBBGoiATYCECADKAIEIAFqIQQgBSgCCAwBCyADKAIEIAMoAhBqIQQgBSgCMCIBQRh0IAFBCHRBgID8B3FyIAFBCHZBgP4DcSABQRh2cnILIQEgBCABNgAAIAMgAygCEEEEajYCEAsgBRAKIAMoAhQiAUEBTgRAIANBACABazYCFAsgAygCEEUhBAsgBAwCCyAFQezAACgCADYCGEF7DAELIANBfzYCJEEACwwBCyMAQRBrIhQkAEF+IRcCQCABIgxFDQAgDCgCIEUNACAMKAIkRQ0AIAwoAhwiB0UNACAHKAIAIAxHDQAgBygCBCIIQbT+AGtBH0sNACAMKAIMIhBFDQAgDCgCACIBRQRAIAwoAgQNAQsgCEG//gBGBEAgB0HA/gA2AgRBwP4AIQgLIAdBpAFqIR8gB0G8BmohGSAHQbwBaiEcIAdBoAFqIR0gB0G4AWohGiAHQfwKaiEYIAdBQGshHiAHKAKIASEFIAwoAgQiICEGIAcoAoQBIQogDCgCECIPIRYCfwJAAkACQANAAkBBfSEEQQEhCQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAhBtP4Aaw4fBwYICQolJicoBSwtLQsZGgQMAjIzATUANw0OAzlISUwLIAcoApQBIQMgASEEIAYhCAw1CyAHKAKUASEDIAEhBCAGIQgMMgsgBygCtAEhCAwuCyAHKAIMIQgMQQsgBUEOTw0pIAZFDUEgBUEIaiEIIAFBAWohBCAGQQFrIQkgAS0AACAFdCAKaiEKIAVBBkkNDCAEIQEgCSEGIAghBQwpCyAFQSBPDSUgBkUNQCABQQFqIQQgBkEBayEIIAEtAAAgBXQgCmohCiAFQRhJDQ0gBCEBIAghBgwlCyAFQRBPDRUgBkUNPyAFQQhqIQggAUEBaiEEIAZBAWshCSABLQAAIAV0IApqIQogBUEISQ0NIAQhASAJIQYgCCEFDBULIAcoAgwiC0UNByAFQRBPDSIgBkUNPiAFQQhqIQggAUEBaiEEIAZBAWshCSABLQAAIAV0IApqIQogBUEISQ0NIAQhASAJIQYgCCEFDCILIAVBH0sNFQwUCyAFQQ9LDRYMFQsgBygCFCIEQYAIcUUEQCAFIQgMFwsgCiEIIAVBD0sNGAwXCyAKIAVBB3F2IQogBUF4cSIFQR9LDQwgBkUNOiAFQQhqIQggAUEBaiEEIAZBAWshCSABLQAAIAV0IApqIQogBUEYSQ0GIAQhASAJIQYgCCEFDAwLIAcoArQBIgggBygCqAEiC08NIwwiCyAPRQ0qIBAgBygCjAE6AAAgB0HI/gA2AgQgD0EBayEPIBBBAWohECAHKAIEIQgMOQsgBygCDCIDRQRAQQAhCAwJCyAFQR9LDQcgBkUNNyAFQQhqIQggAUEBaiEEIAZBAWshCSABLQAAIAV0IApqIQogBUEYSQ0BIAQhASAJIQYgCCEFDAcLIAdBwP4ANgIEDCoLIAlFBEAgBCEBQQAhBiAIIQUgDSEEDDgLIAVBEGohCSABQQJqIQQgBkECayELIAEtAAEgCHQgCmohCiAFQQ9LBEAgBCEBIAshBiAJIQUMBgsgC0UEQCAEIQFBACEGIAkhBSANIQQMOAsgBUEYaiEIIAFBA2ohBCAGQQNrIQsgAS0AAiAJdCAKaiEKIAVBB0sEQCAEIQEgCyEGIAghBQwGCyALRQRAIAQhAUEAIQYgCCEFIA0hBAw4CyAFQSBqIQUgBkEEayEGIAEtAAMgCHQgCmohCiABQQRqIQEMBQsgCUUEQCAEIQFBACEGIAghBSANIQQMNwsgBUEQaiEFIAZBAmshBiABLQABIAh0IApqIQogAUECaiEBDBwLIAlFBEAgBCEBQQAhBiAIIQUgDSEEDDYLIAVBEGohCSABQQJqIQQgBkECayELIAEtAAEgCHQgCmohCiAFQQ9LBEAgBCEBIAshBiAJIQUMBgsgC0UEQCAEIQFBACEGIAkhBSANIQQMNgsgBUEYaiEIIAFBA2ohBCAGQQNrIQsgAS0AAiAJdCAKaiEKIAUEQCAEIQEgCyEGIAghBQwGCyALRQRAIAQhAUEAIQYgCCEFIA0hBAw2CyAFQSBqIQUgBkEEayEGIAEtAAMgCHQgCmohCiABQQRqIQEMBQsgBUEIaiEJIAhFBEAgBCEBQQAhBiAJIQUgDSEEDDULIAFBAmohBCAGQQJrIQggAS0AASAJdCAKaiEKIAVBD0sEQCAEIQEgCCEGDBgLIAVBEGohCSAIRQRAIAQhAUEAIQYgCSEFIA0hBAw1CyABQQNqIQQgBkEDayEIIAEtAAIgCXQgCmohCiAFQQdLBEAgBCEBIAghBgwYCyAFQRhqIQUgCEUEQCAEIQFBACEGIA0hBAw1CyAGQQRrIQYgAS0AAyAFdCAKaiEKIAFBBGohAQwXCyAJDQYgBCEBQQAhBiAIIQUgDSEEDDMLIAlFBEAgBCEBQQAhBiAIIQUgDSEEDDMLIAVBEGohBSAGQQJrIQYgAS0AASAIdCAKaiEKIAFBAmohAQwUCyAMIBYgD2siCSAMKAIUajYCFCAHIAcoAiAgCWo2AiACQCADQQRxRQ0AIAkEQAJAIBAgCWshBCAMKAIcIggoAhQEQCAIQUBrIAQgCUEAQdiAASgCABEIAAwBCyAIIAgoAhwgBCAJQcCAASgCABEAACIENgIcIAwgBDYCMAsLIAcoAhRFDQAgByAeQeCAASgCABEBACIENgIcIAwgBDYCMAsCQCAHKAIMIghBBHFFDQAgBygCHCAKIApBCHRBgID8B3EgCkEYdHIgCkEIdkGA/gNxIApBGHZyciAHKAIUG0YNACAHQdH+ADYCBCAMQaQMNgIYIA8hFiAHKAIEIQgMMQtBACEKQQAhBSAPIRYLIAdBz/4ANgIEDC0LIApB//8DcSIEIApBf3NBEHZHBEAgB0HR/gA2AgQgDEGOCjYCGCAHKAIEIQgMLwsgB0HC/gA2AgQgByAENgKMAUEAIQpBACEFCyAHQcP+ADYCBAsgBygCjAEiBARAIA8gBiAEIAQgBksbIgQgBCAPSxsiCEUNHiAQIAEgCBAHIQQgByAHKAKMASAIazYCjAEgBCAIaiEQIA8gCGshDyABIAhqIQEgBiAIayEGIAcoAgQhCAwtCyAHQb/+ADYCBCAHKAIEIQgMLAsgBUEQaiEFIAZBAmshBiABLQABIAh0IApqIQogAUECaiEBCyAHIAo2AhQgCkH/AXFBCEcEQCAHQdH+ADYCBCAMQYIPNgIYIAcoAgQhCAwrCyAKQYDAA3EEQCAHQdH+ADYCBCAMQY0JNgIYIAcoAgQhCAwrCyAHKAIkIgQEQCAEIApBCHZBAXE2AgALAkAgCkGABHFFDQAgBy0ADEEEcUUNACAUIAo7AAwgBwJ/IAcoAhwhBUEAIBRBDGoiBEUNABogBSAEQQJB1IABKAIAEQAACzYCHAsgB0G2/gA2AgRBACEFQQAhCgsgBkUNKCABQQFqIQQgBkEBayEIIAEtAAAgBXQgCmohCiAFQRhPBEAgBCEBIAghBgwBCyAFQQhqIQkgCEUEQCAEIQFBACEGIAkhBSANIQQMKwsgAUECaiEEIAZBAmshCCABLQABIAl0IApqIQogBUEPSwRAIAQhASAIIQYMAQsgBUEQaiEJIAhFBEAgBCEBQQAhBiAJIQUgDSEEDCsLIAFBA2ohBCAGQQNrIQggAS0AAiAJdCAKaiEKIAVBB0sEQCAEIQEgCCEGDAELIAVBGGohBSAIRQRAIAQhAUEAIQYgDSEEDCsLIAZBBGshBiABLQADIAV0IApqIQogAUEEaiEBCyAHKAIkIgQEQCAEIAo2AgQLAkAgBy0AFUECcUUNACAHLQAMQQRxRQ0AIBQgCjYADCAHAn8gBygCHCEFQQAgFEEMaiIERQ0AGiAFIARBBEHUgAEoAgARAAALNgIcCyAHQbf+ADYCBEEAIQVBACEKCyAGRQ0mIAFBAWohBCAGQQFrIQggAS0AACAFdCAKaiEKIAVBCE8EQCAEIQEgCCEGDAELIAVBCGohBSAIRQRAIAQhAUEAIQYgDSEEDCkLIAZBAmshBiABLQABIAV0IApqIQogAUECaiEBCyAHKAIkIgQEQCAEIApBCHY2AgwgBCAKQf8BcTYCCAsCQCAHLQAVQQJxRQ0AIActAAxBBHFFDQAgFCAKOwAMIAcCfyAHKAIcIQVBACAUQQxqIgRFDQAaIAUgBEECQdSAASgCABEAAAs2AhwLIAdBuP4ANgIEQQAhCEEAIQVBACEKIAcoAhQiBEGACHENAQsgBygCJCIEBEAgBEEANgIQCyAIIQUMAgsgBkUEQEEAIQYgCCEKIA0hBAwmCyABQQFqIQkgBkEBayELIAEtAAAgBXQgCGohCiAFQQhPBEAgCSEBIAshBgwBCyAFQQhqIQUgC0UEQCAJIQFBACEGIA0hBAwmCyAGQQJrIQYgAS0AASAFdCAKaiEKIAFBAmohAQsgByAKQf//A3EiCDYCjAEgBygCJCIFBEAgBSAINgIUC0EAIQUCQCAEQYAEcUUNACAHLQAMQQRxRQ0AIBQgCjsADCAHAn8gBygCHCEIQQAgFEEMaiIERQ0AGiAIIARBAkHUgAEoAgARAAALNgIcC0EAIQoLIAdBuf4ANgIECyAHKAIUIglBgAhxBEAgBiAHKAKMASIIIAYgCEkbIg4EQAJAIAcoAiQiA0UNACADKAIQIgRFDQAgAygCGCILIAMoAhQgCGsiCE0NACAEIAhqIAEgCyAIayAOIAggDmogC0sbEAcaIAcoAhQhCQsCQCAJQYAEcUUNACAHLQAMQQRxRQ0AIAcCfyAHKAIcIQRBACABRQ0AGiAEIAEgDkHUgAEoAgARAAALNgIcCyAHIAcoAowBIA5rIgg2AowBIAYgDmshBiABIA5qIQELIAgNEwsgB0G6/gA2AgQgB0EANgKMAQsCQCAHLQAVQQhxBEBBACEIIAZFDQQDQCABIAhqLQAAIQMCQCAHKAIkIgtFDQAgCygCHCIERQ0AIAcoAowBIgkgCygCIE8NACAHIAlBAWo2AowBIAQgCWogAzoAAAsgA0EAIAYgCEEBaiIISxsNAAsCQCAHLQAVQQJxRQ0AIActAAxBBHFFDQAgBwJ/IAcoAhwhBEEAIAFFDQAaIAQgASAIQdSAASgCABEAAAs2AhwLIAEgCGohASAGIAhrIQYgA0UNAQwTCyAHKAIkIgRFDQAgBEEANgIcCyAHQbv+ADYCBCAHQQA2AowBCwJAIActABVBEHEEQEEAIQggBkUNAwNAIAEgCGotAAAhAwJAIAcoAiQiC0UNACALKAIkIgRFDQAgBygCjAEiCSALKAIoTw0AIAcgCUEBajYCjAEgBCAJaiADOgAACyADQQAgBiAIQQFqIghLGw0ACwJAIActABVBAnFFDQAgBy0ADEEEcUUNACAHAn8gBygCHCEEQQAgAUUNABogBCABIAhB1IABKAIAEQAACzYCHAsgASAIaiEBIAYgCGshBiADRQ0BDBILIAcoAiQiBEUNACAEQQA2AiQLIAdBvP4ANgIECyAHKAIUIgtBgARxBEACQCAFQQ9LDQAgBkUNHyAFQQhqIQggAUEBaiEEIAZBAWshCSABLQAAIAV0IApqIQogBUEITwRAIAQhASAJIQYgCCEFDAELIAlFBEAgBCEBQQAhBiAIIQUgDSEEDCILIAVBEGohBSAGQQJrIQYgAS0AASAIdCAKaiEKIAFBAmohAQsCQCAHLQAMQQRxRQ0AIAogBy8BHEYNACAHQdH+ADYCBCAMQdcMNgIYIAcoAgQhCAwgC0EAIQpBACEFCyAHKAIkIgQEQCAEQQE2AjAgBCALQQl2QQFxNgIsCwJAIActAAxBBHFFDQAgC0UNACAHIB5B5IABKAIAEQEAIgQ2AhwgDCAENgIwCyAHQb/+ADYCBCAHKAIEIQgMHgtBACEGDA4LAkAgC0ECcUUNACAKQZ+WAkcNACAHKAIoRQRAIAdBDzYCKAtBACEKIAdBADYCHCAUQZ+WAjsADCAHIBRBDGoiBAR/QQAgBEECQdSAASgCABEAAAVBAAs2AhwgB0G1/gA2AgRBACEFIAcoAgQhCAwdCyAHKAIkIgQEQCAEQX82AjALAkAgC0EBcQRAIApBCHRBgP4DcSAKQQh2akEfcEUNAQsgB0HR/gA2AgQgDEH2CzYCGCAHKAIEIQgMHQsgCkEPcUEIRwRAIAdB0f4ANgIEIAxBgg82AhggBygCBCEIDB0LIApBBHYiBEEPcSIJQQhqIQsgCUEHTUEAIAcoAigiCAR/IAgFIAcgCzYCKCALCyALTxtFBEAgBUEEayEFIAdB0f4ANgIEIAxB+gw2AhggBCEKIAcoAgQhCAwdCyAHQQE2AhxBACEFIAdBADYCFCAHQYACIAl0NgIYIAxBATYCMCAHQb3+AEG//gAgCkGAwABxGzYCBEEAIQogBygCBCEIDBwLIAcgCkEIdEGAgPwHcSAKQRh0ciAKQQh2QYD+A3EgCkEYdnJyIgQ2AhwgDCAENgIwIAdBvv4ANgIEQQAhCkEAIQULIAcoAhBFBEAgDCAPNgIQIAwgEDYCDCAMIAY2AgQgDCABNgIAIAcgBTYCiAEgByAKNgKEAUECIRcMIAsgB0EBNgIcIAxBATYCMCAHQb/+ADYCBAsCfwJAIAcoAghFBEAgBUEDSQ0BIAUMAgsgB0HO/gA2AgQgCiAFQQdxdiEKIAVBeHEhBSAHKAIEIQgMGwsgBkUNGSAGQQFrIQYgAS0AACAFdCAKaiEKIAFBAWohASAFQQhqCyEEIAcgCkEBcTYCCAJAAkACQAJAAkAgCkEBdkEDcUEBaw4DAQIDAAsgB0HB/gA2AgQMAwsgB0Gw2wA2ApgBIAdCiYCAgNAANwOgASAHQbDrADYCnAEgB0HH/gA2AgQMAgsgB0HE/gA2AgQMAQsgB0HR/gA2AgQgDEHXDTYCGAsgBEEDayEFIApBA3YhCiAHKAIEIQgMGQsgByAKQR9xIghBgQJqNgKsASAHIApBBXZBH3EiBEEBajYCsAEgByAKQQp2QQ9xQQRqIgs2AqgBIAVBDmshBSAKQQ52IQogCEEdTUEAIARBHkkbRQRAIAdB0f4ANgIEIAxB6gk2AhggBygCBCEIDBkLIAdBxf4ANgIEQQAhCCAHQQA2ArQBCyAIIQQDQCAFQQJNBEAgBkUNGCAGQQFrIQYgAS0AACAFdCAKaiEKIAVBCGohBSABQQFqIQELIAcgBEEBaiIINgK0ASAHIARBAXRBsOwAai8BAEEBdGogCkEHcTsBvAEgBUEDayEFIApBA3YhCiALIAgiBEsNAAsLIAhBEk0EQEESIAhrIQ1BAyAIa0EDcSIEBEADQCAHIAhBAXRBsOwAai8BAEEBdGpBADsBvAEgCEEBaiEIIARBAWsiBA0ACwsgDUEDTwRAA0AgB0G8AWoiDSAIQQF0IgRBsOwAai8BAEEBdGpBADsBACANIARBsuwAai8BAEEBdGpBADsBACANIARBtOwAai8BAEEBdGpBADsBACANIARBtuwAai8BAEEBdGpBADsBACAIQQRqIghBE0cNAAsLIAdBEzYCtAELIAdBBzYCoAEgByAYNgKYASAHIBg2ArgBQQAhCEEAIBxBEyAaIB0gGRBOIg0EQCAHQdH+ADYCBCAMQfQINgIYIAcoAgQhCAwXCyAHQcb+ADYCBCAHQQA2ArQBQQAhDQsgBygCrAEiFSAHKAKwAWoiESAISwRAQX8gBygCoAF0QX9zIRIgBygCmAEhGwNAIAYhCSABIQsCQCAFIgMgGyAKIBJxIhNBAnRqLQABIg5PBEAgBSEEDAELA0AgCUUNDSALLQAAIAN0IQ4gC0EBaiELIAlBAWshCSADQQhqIgQhAyAEIBsgCiAOaiIKIBJxIhNBAnRqLQABIg5JDQALIAshASAJIQYLAkAgGyATQQJ0ai8BAiIFQQ9NBEAgByAIQQFqIgk2ArQBIAcgCEEBdGogBTsBvAEgBCAOayEFIAogDnYhCiAJIQgMAQsCfwJ/AkACQAJAIAVBEGsOAgABAgsgDkECaiIFIARLBEADQCAGRQ0bIAZBAWshBiABLQAAIAR0IApqIQogAUEBaiEBIARBCGoiBCAFSQ0ACwsgBCAOayEFIAogDnYhBCAIRQRAIAdB0f4ANgIEIAxBvAk2AhggBCEKIAcoAgQhCAwdCyAFQQJrIQUgBEECdiEKIARBA3FBA2ohCSAIQQF0IAdqLwG6AQwDCyAOQQNqIgUgBEsEQANAIAZFDRogBkEBayEGIAEtAAAgBHQgCmohCiABQQFqIQEgBEEIaiIEIAVJDQALCyAEIA5rQQNrIQUgCiAOdiIEQQN2IQogBEEHcUEDagwBCyAOQQdqIgUgBEsEQANAIAZFDRkgBkEBayEGIAEtAAAgBHQgCmohCiABQQFqIQEgBEEIaiIEIAVJDQALCyAEIA5rQQdrIQUgCiAOdiIEQQd2IQogBEH/AHFBC2oLIQlBAAshAyAIIAlqIBFLDRMgCUEBayEEIAlBA3EiCwRAA0AgByAIQQF0aiADOwG8ASAIQQFqIQggCUEBayEJIAtBAWsiCw0ACwsgBEEDTwRAA0AgByAIQQF0aiIEIAM7Ab4BIAQgAzsBvAEgBCADOwHAASAEIAM7AcIBIAhBBGohCCAJQQRrIgkNAAsLIAcgCDYCtAELIAggEUkNAAsLIAcvAbwFRQRAIAdB0f4ANgIEIAxB0Qs2AhggBygCBCEIDBYLIAdBCjYCoAEgByAYNgKYASAHIBg2ArgBQQEgHCAVIBogHSAZEE4iDQRAIAdB0f4ANgIEIAxB2Ag2AhggBygCBCEIDBYLIAdBCTYCpAEgByAHKAK4ATYCnAFBAiAHIAcoAqwBQQF0akG8AWogBygCsAEgGiAfIBkQTiINBEAgB0HR/gA2AgQgDEGmCTYCGCAHKAIEIQgMFgsgB0HH/gA2AgRBACENCyAHQcj+ADYCBAsCQCAGQQ9JDQAgD0GEAkkNACAMIA82AhAgDCAQNgIMIAwgBjYCBCAMIAE2AgAgByAFNgKIASAHIAo2AoQBIAwgFkHogAEoAgARBwAgBygCiAEhBSAHKAKEASEKIAwoAgQhBiAMKAIAIQEgDCgCECEPIAwoAgwhECAHKAIEQb/+AEcNByAHQX82ApBHIAcoAgQhCAwUCyAHQQA2ApBHIAUhCSAGIQggASEEAkAgBygCmAEiEiAKQX8gBygCoAF0QX9zIhVxIg5BAnRqLQABIgsgBU0EQCAFIQMMAQsDQCAIRQ0PIAQtAAAgCXQhCyAEQQFqIQQgCEEBayEIIAlBCGoiAyEJIAMgEiAKIAtqIgogFXEiDkECdGotAAEiC0kNAAsLIBIgDkECdGoiAS8BAiETAkBBACABLQAAIhEgEUHwAXEbRQRAIAshBgwBCyAIIQYgBCEBAkAgAyIFIAsgEiAKQX8gCyARanRBf3MiFXEgC3YgE2oiEUECdGotAAEiDmpPBEAgAyEJDAELA0AgBkUNDyABLQAAIAV0IQ4gAUEBaiEBIAZBAWshBiAFQQhqIgkhBSALIBIgCiAOaiIKIBVxIAt2IBNqIhFBAnRqLQABIg5qIAlLDQALIAEhBCAGIQgLIBIgEUECdGoiAS0AACERIAEvAQIhEyAHIAs2ApBHIAsgDmohBiAJIAtrIQMgCiALdiEKIA4hCwsgByAGNgKQRyAHIBNB//8DcTYCjAEgAyALayEFIAogC3YhCiARRQRAIAdBzf4ANgIEDBALIBFBIHEEQCAHQb/+ADYCBCAHQX82ApBHDBALIBFBwABxBEAgB0HR/gA2AgQgDEHQDjYCGAwQCyAHQcn+ADYCBCAHIBFBD3EiAzYClAELAkAgA0UEQCAHKAKMASELIAQhASAIIQYMAQsgBSEJIAghBiAEIQsCQCADIAVNBEAgBCEBDAELA0AgBkUNDSAGQQFrIQYgCy0AACAJdCAKaiEKIAtBAWoiASELIAlBCGoiCSADSQ0ACwsgByAHKAKQRyADajYCkEcgByAHKAKMASAKQX8gA3RBf3NxaiILNgKMASAJIANrIQUgCiADdiEKCyAHQcr+ADYCBCAHIAs2ApRHCyAFIQkgBiEIIAEhBAJAIAcoApwBIhIgCkF/IAcoAqQBdEF/cyIVcSIOQQJ0ai0AASIDIAVNBEAgBSELDAELA0AgCEUNCiAELQAAIAl0IQMgBEEBaiEEIAhBAWshCCAJQQhqIgshCSALIBIgAyAKaiIKIBVxIg5BAnRqLQABIgNJDQALCyASIA5BAnRqIgEvAQIhEwJAIAEtAAAiEUHwAXEEQCAHKAKQRyEGIAMhCQwBCyAIIQYgBCEBAkAgCyIFIAMgEiAKQX8gAyARanRBf3MiFXEgA3YgE2oiEUECdGotAAEiCWpPBEAgCyEODAELA0AgBkUNCiABLQAAIAV0IQkgAUEBaiEBIAZBAWshBiAFQQhqIg4hBSADIBIgCSAKaiIKIBVxIAN2IBNqIhFBAnRqLQABIglqIA5LDQALIAEhBCAGIQgLIBIgEUECdGoiAS0AACERIAEvAQIhEyAHIAcoApBHIANqIgY2ApBHIA4gA2shCyAKIAN2IQoLIAcgBiAJajYCkEcgCyAJayEFIAogCXYhCiARQcAAcQRAIAdB0f4ANgIEIAxB7A42AhggBCEBIAghBiAHKAIEIQgMEgsgB0HL/gA2AgQgByARQQ9xIgM2ApQBIAcgE0H//wNxNgKQAQsCQCADRQRAIAQhASAIIQYMAQsgBSEJIAghBiAEIQsCQCADIAVNBEAgBCEBDAELA0AgBkUNCCAGQQFrIQYgCy0AACAJdCAKaiEKIAtBAWoiASELIAlBCGoiCSADSQ0ACwsgByAHKAKQRyADajYCkEcgByAHKAKQASAKQX8gA3RBf3NxajYCkAEgCSADayEFIAogA3YhCgsgB0HM/gA2AgQLIA9FDQACfyAHKAKQASIIIBYgD2siBEsEQAJAIAggBGsiCCAHKAIwTQ0AIAcoAoxHRQ0AIAdB0f4ANgIEIAxBuQw2AhggBygCBCEIDBILAn8CQAJ/IAcoAjQiBCAISQRAIAcoAjggBygCLCAIIARrIghragwBCyAHKAI4IAQgCGtqCyILIBAgDyAQaiAQa0EBaqwiISAPIAcoAowBIgQgCCAEIAhJGyIEIAQgD0sbIgitIiIgISAiVBsiIqciCWoiBEkgCyAQT3ENACALIBBNIAkgC2ogEEtxDQAgECALIAkQBxogBAwBCyAQIAsgCyAQayIEIARBH3UiBGogBHMiCRAHIAlqIQQgIiAJrSIkfSIjUEUEQCAJIAtqIQkDQAJAICMgJCAjICRUGyIiQiBUBEAgIiEhDAELICIiIUIgfSImQgWIQgF8QgODIiVQRQRAA0AgBCAJKQAANwAAIAQgCSkAGDcAGCAEIAkpABA3ABAgBCAJKQAINwAIICFCIH0hISAJQSBqIQkgBEEgaiEEICVCAX0iJUIAUg0ACwsgJkLgAFQNAANAIAQgCSkAADcAACAEIAkpABg3ABggBCAJKQAQNwAQIAQgCSkACDcACCAEIAkpADg3ADggBCAJKQAwNwAwIAQgCSkAKDcAKCAEIAkpACA3ACAgBCAJKQBYNwBYIAQgCSkAUDcAUCAEIAkpAEg3AEggBCAJKQBANwBAIAQgCSkAYDcAYCAEIAkpAGg3AGggBCAJKQBwNwBwIAQgCSkAeDcAeCAJQYABaiEJIARBgAFqIQQgIUKAAX0iIUIfVg0ACwsgIUIQWgRAIAQgCSkAADcAACAEIAkpAAg3AAggIUIQfSEhIAlBEGohCSAEQRBqIQQLICFCCFoEQCAEIAkpAAA3AAAgIUIIfSEhIAlBCGohCSAEQQhqIQQLICFCBFoEQCAEIAkoAAA2AAAgIUIEfSEhIAlBBGohCSAEQQRqIQQLICFCAloEQCAEIAkvAAA7AAAgIUICfSEhIAlBAmohCSAEQQJqIQQLICMgIn0hIyAhUEUEQCAEIAktAAA6AAAgCUEBaiEJIARBAWohBAsgI0IAUg0ACwsgBAsMAQsgECAIIA8gBygCjAEiBCAEIA9LGyIIIA9ByIABKAIAEQQACyEQIAcgBygCjAEgCGsiBDYCjAEgDyAIayEPIAQNAiAHQcj+ADYCBCAHKAIEIQgMDwsgDSEJCyAJIQQMDgsgBygCBCEIDAwLIAEgBmohASAFIAZBA3RqIQUMCgsgBCAIaiEBIAUgCEEDdGohBQwJCyAEIAhqIQEgCyAIQQN0aiEFDAgLIAEgBmohASAFIAZBA3RqIQUMBwsgBCAIaiEBIAUgCEEDdGohBQwGCyAEIAhqIQEgAyAIQQN0aiEFDAULIAEgBmohASAFIAZBA3RqIQUMBAsgB0HR/gA2AgQgDEG8CTYCGCAHKAIEIQgMBAsgBCEBIAghBiAHKAIEIQgMAwtBACEGIAQhBSANIQQMAwsCQAJAIAhFBEAgCiEJDAELIAcoAhRFBEAgCiEJDAELAkAgBUEfSw0AIAZFDQMgBUEIaiEJIAFBAWohBCAGQQFrIQsgAS0AACAFdCAKaiEKIAVBGE8EQCAEIQEgCyEGIAkhBQwBCyALRQRAIAQhAUEAIQYgCSEFIA0hBAwGCyAFQRBqIQsgAUECaiEEIAZBAmshAyABLQABIAl0IApqIQogBUEPSwRAIAQhASADIQYgCyEFDAELIANFBEAgBCEBQQAhBiALIQUgDSEEDAYLIAVBGGohCSABQQNqIQQgBkEDayEDIAEtAAIgC3QgCmohCiAFQQdLBEAgBCEBIAMhBiAJIQUMAQsgA0UEQCAEIQFBACEGIAkhBSANIQQMBgsgBUEgaiEFIAZBBGshBiABLQADIAl0IApqIQogAUEEaiEBC0EAIQkgCEEEcQRAIAogBygCIEcNAgtBACEFCyAHQdD+ADYCBEEBIQQgCSEKDAMLIAdB0f4ANgIEIAxBjQw2AhggBygCBCEIDAELC0EAIQYgDSEECyAMIA82AhAgDCAQNgIMIAwgBjYCBCAMIAE2AgAgByAFNgKIASAHIAo2AoQBAkAgBygCLA0AIA8gFkYNAiAHKAIEIgFB0P4ASw0CIAFBzv4ASQ0ACwJ/IBYgD2shCiAHKAIMQQRxIQkCQAJAAkAgDCgCHCIDKAI4Ig1FBEBBASEIIAMgAygCACIBKAIgIAEoAiggAygCmEdBASADKAIodGpBARAoIg02AjggDUUNAQsgAygCLCIGRQRAIANCADcDMCADQQEgAygCKHQiBjYCLAsgBiAKTQRAAkAgCQRAAkAgBiAKTw0AIAogBmshBSAQIAprIQEgDCgCHCIGKAIUBEAgBkFAayABIAVBAEHYgAEoAgARCAAMAQsgBiAGKAIcIAEgBUHAgAEoAgARAAAiATYCHCAMIAE2AjALIAMoAiwiDUUNASAQIA1rIQUgAygCOCEBIAwoAhwiBigCFARAIAZBQGsgASAFIA1B3IABKAIAEQgADAILIAYgBigCHCABIAUgDUHEgAEoAgARBAAiATYCHCAMIAE2AjAMAQsgDSAQIAZrIAYQBxoLIANBADYCNCADIAMoAiw2AjBBAAwECyAKIAYgAygCNCIFayIBIAEgCksbIQsgECAKayEGIAUgDWohBQJAIAkEQAJAIAtFDQAgDCgCHCIBKAIUBEAgAUFAayAFIAYgC0HcgAEoAgARCAAMAQsgASABKAIcIAUgBiALQcSAASgCABEEACIBNgIcIAwgATYCMAsgCiALayIFRQ0BIBAgBWshBiADKAI4IQEgDCgCHCINKAIUBEAgDUFAayABIAYgBUHcgAEoAgARCAAMBQsgDSANKAIcIAEgBiAFQcSAASgCABEEACIBNgIcIAwgATYCMAwECyAFIAYgCxAHGiAKIAtrIgUNAgtBACEIIANBACADKAI0IAtqIgUgBSADKAIsIgFGGzYCNCABIAMoAjAiAU0NACADIAEgC2o2AjALIAgMAgsgAygCOCAQIAVrIAUQBxoLIAMgBTYCNCADIAMoAiw2AjBBAAtFBEAgDCgCECEPIAwoAgQhFyAHKAKIAQwDCyAHQdL+ADYCBAtBfCEXDAILIAYhFyAFCyEFIAwgICAXayIBIAwoAghqNgIIIAwgFiAPayIGIAwoAhRqNgIUIAcgBygCICAGajYCICAMIAcoAghBAEdBBnQgBWogBygCBCIFQb/+AEZBB3RqQYACIAVBwv4ARkEIdCAFQcf+AEYbajYCLCAEIARBeyAEGyABIAZyGyEXCyAUQRBqJAAgFwshASACIAIpAwAgADUCIH03AwACQAJAAkACQCABQQVqDgcBAgICAgMAAgtBAQ8LIAAoAhQNAEEDDwsgACgCACIABEAgACABNgIEIABBDTYCAAtBAiEBCyABCwkAIABBAToADAtEAAJAIAJC/////w9YBEAgACgCFEUNAQsgACgCACIABEAgAEEANgIEIABBEjYCAAtBAA8LIAAgATYCECAAIAI+AhRBAQu5AQEEfyAAQRBqIQECfyAALQAEBEAgARCEAQwBC0F+IQMCQCABRQ0AIAEoAiBFDQAgASgCJCIERQ0AIAEoAhwiAkUNACACKAIAIAFHDQAgAigCBEG0/gBrQR9LDQAgAigCOCIDBEAgBCABKAIoIAMQHiABKAIkIQQgASgCHCECCyAEIAEoAiggAhAeQQAhAyABQQA2AhwLIAMLIgEEQCAAKAIAIgAEQCAAIAE2AgQgAEENNgIACwsgAUUL0gwBBn8gAEIANwIQIABCADcCHCAAQRBqIQICfyAALQAEBEAgACgCCCEBQesMLQAAQTFGBH8Cf0F+IQMCQCACRQ0AIAJBADYCGCACKAIgIgRFBEAgAkEANgIoIAJBJzYCIEEnIQQLIAIoAiRFBEAgAkEoNgIkC0EGIAEgAUF/RhsiBUEASA0AIAVBCUoNAEF8IQMgBCACKAIoQQFB0C4QKCIBRQ0AIAIgATYCHCABIAI2AgAgAUEPNgI0IAFCgICAgKAFNwIcIAFBADYCFCABQYCAAjYCMCABQf//ATYCOCABIAIoAiAgAigCKEGAgAJBAhAoNgJIIAEgAigCICACKAIoIAEoAjBBAhAoIgM2AkwgA0EAIAEoAjBBAXQQGSACKAIgIAIoAihBgIAEQQIQKCEDIAFBgIACNgLoLSABQQA2AkAgASADNgJQIAEgAigCICACKAIoQYCAAkEEECgiAzYCBCABIAEoAugtIgRBAnQ2AgwCQAJAIAEoAkhFDQAgASgCTEUNACABKAJQRQ0AIAMNAQsgAUGaBTYCICACQejAACgCADYCGCACEIQBGkF8DAILIAFBADYCjAEgASAFNgKIASABQgA3AyggASADIARqNgLsLSABIARBA2xBA2s2AvQtQX4hAwJAIAJFDQAgAigCIEUNACACKAIkRQ0AIAIoAhwiAUUNACABKAIAIAJHDQACQAJAIAEoAiAiBEE5aw45AQICAgICAgICAgICAQICAgECAgICAgICAgICAgICAgICAgECAgICAgICAgICAgECAgICAgICAgIBAAsgBEGaBUYNACAEQSpHDQELIAJBAjYCLCACQQA2AgggAkIANwIUIAFBADYCECABIAEoAgQ2AgggASgCFCIDQX9MBEAgAUEAIANrIgM2AhQLIAFBOUEqIANBAkYbNgIgIAIgA0ECRgR/IAFBoAFqQeSAASgCABEBAAVBAQs2AjAgAUF+NgIkIAFBADYCoC4gAUIANwOYLiABQYgXakGg0wA2AgAgASABQcwVajYCgBcgAUH8FmpBjNMANgIAIAEgAUHYE2o2AvQWIAFB8BZqQfjSADYCACABIAFB5AFqNgLoFiABEIgBQQAhAwsgAw0AIAIoAhwiAiACKAIwQQF0NgJEQQAhAyACKAJQQQBBgIAIEBkgAiACKAKIASIEQQxsIgFBtNgAai8BADYClAEgAiABQbDYAGovAQA2ApABIAIgAUGy2ABqLwEANgJ4IAIgAUG22ABqLwEANgJ0QfiAASgCACEFQeyAASgCACEGQYCBASgCACEBIAJCADcCbCACQgA3AmQgAkEANgI8IAJBADYChC4gAkIANwJUIAJBKSABIARBCUYiARs2AnwgAkEqIAYgARs2AoABIAJBKyAFIAEbNgKEAQsgAwsFQXoLDAELAn9BekHrDC0AAEExRw0AGkF+IAJFDQAaIAJBADYCGCACKAIgIgNFBEAgAkEANgIoIAJBJzYCIEEnIQMLIAIoAiRFBEAgAkEoNgIkC0F8IAMgAigCKEEBQaDHABAoIgRFDQAaIAIgBDYCHCAEQQA2AjggBCACNgIAIARBtP4ANgIEIARBzIABKAIAEQkANgKYR0F+IQMCQCACRQ0AIAIoAiBFDQAgAigCJCIFRQ0AIAIoAhwiAUUNACABKAIAIAJHDQAgASgCBEG0/gBrQR9LDQACQAJAIAEoAjgiBgRAIAEoAihBD0cNAQsgAUEPNgIoIAFBADYCDAwBCyAFIAIoAiggBhAeIAFBADYCOCACKAIgIQUgAUEPNgIoIAFBADYCDCAFRQ0BCyACKAIkRQ0AIAIoAhwiAUUNACABKAIAIAJHDQAgASgCBEG0/gBrQR9LDQBBACEDIAFBADYCNCABQgA3AiwgAUEANgIgIAJBADYCCCACQgA3AhQgASgCDCIFBEAgAiAFQQFxNgIwCyABQrT+ADcCBCABQgA3AoQBIAFBADYCJCABQoCAgoAQNwMYIAFCgICAgHA3AxAgAUKBgICAcDcCjEcgASABQfwKaiIFNgK4ASABIAU2ApwBIAEgBTYCmAELQQAgA0UNABogAigCJCACKAIoIAQQHiACQQA2AhwgAwsLIgIEQCAAKAIAIgAEQCAAIAI2AgQgAEENNgIACwsgAkULKQEBfyAALQAERQRAQQAPC0ECIQEgACgCCCIAQQNOBH8gAEEHSgVBAgsLBgAgABAGC2MAQcgAEAkiAEUEQEGEhAEoAgAhASACBEAgAiABNgIEIAJBATYCAAsgAA8LIABBADoADCAAQQE6AAQgACACNgIAIABBADYCOCAAQgA3AzAgACABQQkgAUEBa0EJSRs2AgggAAukCgIIfwF+QfCAAUH0gAEgACgCdEGBCEkbIQYCQANAAkACfwJAIAAoAjxBhQJLDQAgABAvAkAgACgCPCICQYUCSw0AIAENAEEADwsgAkUNAiACQQRPDQBBAAwBCyAAIAAoAmggACgChAERAgALIQMgACAAKAJsOwFgQQIhAgJAIAA1AmggA619IgpCAVMNACAKIAAoAjBBhgJrrVUNACAAKAJwIAAoAnhPDQAgA0UNACAAIAMgBigCABECACICQQVLDQBBAiACIAAoAowBQQFGGyECCwJAIAAoAnAiA0EDSQ0AIAIgA0sNACAAIAAoAvAtIgJBAWo2AvAtIAAoAjwhBCACIAAoAuwtaiAAKAJoIgcgAC8BYEF/c2oiAjoAACAAIAAoAvAtIgVBAWo2AvAtIAUgACgC7C1qIAJBCHY6AAAgACAAKALwLSIFQQFqNgLwLSAFIAAoAuwtaiADQQNrOgAAIAAgACgCgC5BAWo2AoAuIANB/c4Aai0AAEECdCAAakHoCWoiAyADLwEAQQFqOwEAIAAgAkEBayICIAJBB3ZBgAJqIAJBgAJJG0GAywBqLQAAQQJ0akHYE2oiAiACLwEAQQFqOwEAIAAgACgCcCIFQQFrIgM2AnAgACAAKAI8IANrNgI8IAAoAvQtIQggACgC8C0hCSAEIAdqQQNrIgQgACgCaCICSwRAIAAgAkEBaiAEIAJrIgIgBUECayIEIAIgBEkbIAAoAoABEQUAIAAoAmghAgsgAEEANgJkIABBADYCcCAAIAIgA2oiBDYCaCAIIAlHDQJBACECIAAgACgCWCIDQQBOBH8gACgCSCADagVBAAsgBCADa0EAEA8gACAAKAJoNgJYIAAoAgAQCiAAKAIAKAIQDQIMAwsgACgCZARAIAAoAmggACgCSGpBAWstAAAhAyAAIAAoAvAtIgRBAWo2AvAtIAQgACgC7C1qQQA6AAAgACAAKALwLSIEQQFqNgLwLSAEIAAoAuwtakEAOgAAIAAgACgC8C0iBEEBajYC8C0gBCAAKALsLWogAzoAACAAIANBAnRqIgMgAy8B5AFBAWo7AeQBIAAoAvAtIAAoAvQtRgRAIAAgACgCWCIDQQBOBH8gACgCSCADagVBAAsgACgCaCADa0EAEA8gACAAKAJoNgJYIAAoAgAQCgsgACACNgJwIAAgACgCaEEBajYCaCAAIAAoAjxBAWs2AjwgACgCACgCEA0CQQAPBSAAQQE2AmQgACACNgJwIAAgACgCaEEBajYCaCAAIAAoAjxBAWs2AjwMAgsACwsgACgCZARAIAAoAmggACgCSGpBAWstAAAhAiAAIAAoAvAtIgNBAWo2AvAtIAMgACgC7C1qQQA6AAAgACAAKALwLSIDQQFqNgLwLSADIAAoAuwtakEAOgAAIAAgACgC8C0iA0EBajYC8C0gAyAAKALsLWogAjoAACAAIAJBAnRqIgIgAi8B5AFBAWo7AeQBIAAoAvAtIAAoAvQtRhogAEEANgJkCyAAIAAoAmgiA0ECIANBAkkbNgKELiABQQRGBEAgACAAKAJYIgFBAE4EfyAAKAJIIAFqBUEACyADIAFrQQEQDyAAIAAoAmg2AlggACgCABAKQQNBAiAAKAIAKAIQGw8LIAAoAvAtBEBBACECIAAgACgCWCIBQQBOBH8gACgCSCABagVBAAsgAyABa0EAEA8gACAAKAJoNgJYIAAoAgAQCiAAKAIAKAIQRQ0BC0EBIQILIAIL2BACEH8BfiAAKAKIAUEFSCEOA0ACQAJ/AkACQAJAAn8CQAJAIAAoAjxBhQJNBEAgABAvIAAoAjwiA0GFAksNASABDQFBAA8LIA4NASAIIQMgBSEHIAohDSAGQf//A3FFDQEMAwsgA0UNA0EAIANBBEkNARoLIAAgACgCaEH4gAEoAgARAgALIQZBASECQQAhDSAAKAJoIgOtIAatfSISQgFTDQIgEiAAKAIwQYYCa61VDQIgBkUNAiAAIAZB8IABKAIAEQIAIgZBASAGQfz/A3EbQQEgACgCbCINQf//A3EgA0H//wNxSRshBiADIQcLAkAgACgCPCIEIAZB//8DcSICQQRqTQ0AIAZB//8DcUEDTQRAQQEgBkEBa0H//wNxIglFDQQaIANB//8DcSIEIAdBAWpB//8DcSIDSw0BIAAgAyAJIAQgA2tBAWogAyAJaiAESxtB7IABKAIAEQUADAELAkAgACgCeEEEdCACSQ0AIARBBEkNACAGQQFrQf//A3EiDCAHQQFqQf//A3EiBGohCSAEIANB//8DcSIDTwRAQeyAASgCACELIAMgCUkEQCAAIAQgDCALEQUADAMLIAAgBCADIARrQQFqIAsRBQAMAgsgAyAJTw0BIAAgAyAJIANrQeyAASgCABEFAAwBCyAGIAdqQf//A3EiA0UNACAAIANBAWtB+IABKAIAEQIAGgsgBgwCCyAAIAAoAmgiBUECIAVBAkkbNgKELiABQQRGBEBBACEDIAAgACgCWCIBQQBOBH8gACgCSCABagVBAAsgBSABa0EBEA8gACAAKAJoNgJYIAAoAgAQCkEDQQIgACgCACgCEBsPCyAAKALwLQRAQQAhAkEAIQMgACAAKAJYIgFBAE4EfyAAKAJIIAFqBUEACyAFIAFrQQAQDyAAIAAoAmg2AlggACgCABAKIAAoAgAoAhBFDQMLQQEhAgwCCyADIQdBAQshBEEAIQYCQCAODQAgACgCPEGHAkkNACACIAdB//8DcSIQaiIDIAAoAkRBhgJrTw0AIAAgAzYCaEEAIQogACADQfiAASgCABECACEFAn8CQCAAKAJoIgitIAWtfSISQgFTDQAgEiAAKAIwQYYCa61VDQAgBUUNACAAIAVB8IABKAIAEQIAIQYgAC8BbCIKIAhB//8DcSIFTw0AIAZB//8DcSIDQQRJDQAgCCAEQf//A3FBAkkNARogCCACIApBAWpLDQEaIAggAiAFQQFqSw0BGiAIIAAoAkgiCSACa0EBaiICIApqLQAAIAIgBWotAABHDQEaIAggCUEBayICIApqIgwtAAAgAiAFaiIPLQAARw0BGiAIIAUgCCAAKAIwQYYCayICa0H//wNxQQAgAiAFSRsiEU0NARogCCADQf8BSw0BGiAGIQUgCCECIAQhAyAIIAoiCUECSQ0BGgNAAkAgA0EBayEDIAVBAWohCyAJQQFrIQkgAkEBayECIAxBAWsiDC0AACAPQQFrIg8tAABHDQAgA0H//wNxRQ0AIBEgAkH//wNxTw0AIAVB//8DcUH+AUsNACALIQUgCUH//wNxQQFLDQELCyAIIANB//8DcUEBSw0BGiAIIAtB//8DcUECRg0BGiAIQQFqIQggAyEEIAshBiAJIQogAgwBC0EBIQYgCAshBSAAIBA2AmgLAn8gBEH//wNxIgNBA00EQCAEQf//A3EiA0UNAyAAKAJIIAdB//8DcWotAAAhBCAAIAAoAvAtIgJBAWo2AvAtIAIgACgC7C1qQQA6AAAgACAAKALwLSICQQFqNgLwLSACIAAoAuwtakEAOgAAIAAgACgC8C0iAkEBajYC8C0gAiAAKALsLWogBDoAACAAIARBAnRqIgRB5AFqIAQvAeQBQQFqOwEAIAAgACgCPEEBazYCPCAAKALwLSICIAAoAvQtRiIEIANBAUYNARogACgCSCAHQQFqQf//A3FqLQAAIQkgACACQQFqNgLwLSAAKALsLSACakEAOgAAIAAgACgC8C0iAkEBajYC8C0gAiAAKALsLWpBADoAACAAIAAoAvAtIgJBAWo2AvAtIAIgACgC7C1qIAk6AAAgACAJQQJ0aiICQeQBaiACLwHkAUEBajsBACAAIAAoAjxBAWs2AjwgBCAAKALwLSICIAAoAvQtRmoiBCADQQJGDQEaIAAoAkggB0ECakH//wNxai0AACEHIAAgAkEBajYC8C0gACgC7C0gAmpBADoAACAAIAAoAvAtIgJBAWo2AvAtIAIgACgC7C1qQQA6AAAgACAAKALwLSICQQFqNgLwLSACIAAoAuwtaiAHOgAAIAAgB0ECdGoiB0HkAWogBy8B5AFBAWo7AQAgACAAKAI8QQFrNgI8IAQgACgC8C0gACgC9C1GagwBCyAAIAAoAvAtIgJBAWo2AvAtIAIgACgC7C1qIAdB//8DcSANQf//A3FrIgc6AAAgACAAKALwLSICQQFqNgLwLSACIAAoAuwtaiAHQQh2OgAAIAAgACgC8C0iAkEBajYC8C0gAiAAKALsLWogBEEDazoAACAAIAAoAoAuQQFqNgKALiADQf3OAGotAABBAnQgAGpB6AlqIgQgBC8BAEEBajsBACAAIAdBAWsiBCAEQQd2QYACaiAEQYACSRtBgMsAai0AAEECdGpB2BNqIgQgBC8BAEEBajsBACAAIAAoAjwgA2s2AjwgACgC8C0gACgC9C1GCyEEIAAgACgCaCADaiIHNgJoIARFDQFBACECQQAhBCAAIAAoAlgiA0EATgR/IAAoAkggA2oFQQALIAcgA2tBABAPIAAgACgCaDYCWCAAKAIAEAogACgCACgCEA0BCwsgAgu0BwIEfwF+AkADQAJAAkACQAJAIAAoAjxBhQJNBEAgABAvAkAgACgCPCICQYUCSw0AIAENAEEADwsgAkUNBCACQQRJDQELIAAgACgCaEH4gAEoAgARAgAhAiAANQJoIAKtfSIGQgFTDQAgBiAAKAIwQYYCa61VDQAgAkUNACAAIAJB8IABKAIAEQIAIgJBBEkNACAAIAAoAvAtIgNBAWo2AvAtIAMgACgC7C1qIAAoAmggACgCbGsiAzoAACAAIAAoAvAtIgRBAWo2AvAtIAQgACgC7C1qIANBCHY6AAAgACAAKALwLSIEQQFqNgLwLSAEIAAoAuwtaiACQQNrOgAAIAAgACgCgC5BAWo2AoAuIAJB/c4Aai0AAEECdCAAakHoCWoiBCAELwEAQQFqOwEAIAAgA0EBayIDIANBB3ZBgAJqIANBgAJJG0GAywBqLQAAQQJ0akHYE2oiAyADLwEAQQFqOwEAIAAgACgCPCACayIFNgI8IAAoAvQtIQMgACgC8C0hBCAAKAJ4IAJPQQAgBUEDSxsNASAAIAAoAmggAmoiAjYCaCAAIAJBAWtB+IABKAIAEQIAGiADIARHDQQMAgsgACgCSCAAKAJoai0AACECIAAgACgC8C0iA0EBajYC8C0gAyAAKALsLWpBADoAACAAIAAoAvAtIgNBAWo2AvAtIAMgACgC7C1qQQA6AAAgACAAKALwLSIDQQFqNgLwLSADIAAoAuwtaiACOgAAIAAgAkECdGoiAkHkAWogAi8B5AFBAWo7AQAgACAAKAI8QQFrNgI8IAAgACgCaEEBajYCaCAAKALwLSAAKAL0LUcNAwwBCyAAIAAoAmhBAWoiBTYCaCAAIAUgAkEBayICQeyAASgCABEFACAAIAAoAmggAmo2AmggAyAERw0CC0EAIQNBACECIAAgACgCWCIEQQBOBH8gACgCSCAEagVBAAsgACgCaCAEa0EAEA8gACAAKAJoNgJYIAAoAgAQCiAAKAIAKAIQDQEMAgsLIAAgACgCaCIEQQIgBEECSRs2AoQuIAFBBEYEQEEAIQIgACAAKAJYIgFBAE4EfyAAKAJIIAFqBUEACyAEIAFrQQEQDyAAIAAoAmg2AlggACgCABAKQQNBAiAAKAIAKAIQGw8LIAAoAvAtBEBBACEDQQAhAiAAIAAoAlgiAUEATgR/IAAoAkggAWoFQQALIAQgAWtBABAPIAAgACgCaDYCWCAAKAIAEAogACgCACgCEEUNAQtBASEDCyADC80JAgl/An4gAUEERiEGIAAoAiwhAgJAAkACQCABQQRGBEAgAkECRg0CIAIEQCAAQQAQUCAAQQA2AiwgACAAKAJoNgJYIAAoAgAQCiAAKAIAKAIQRQ0ECyAAIAYQTyAAQQI2AiwMAQsgAg0BIAAoAjxFDQEgACAGEE8gAEEBNgIsCyAAIAAoAmg2AlgLQQJBASABQQRGGyEKA0ACQCAAKAIMIAAoAhBBCGpLDQAgACgCABAKIAAoAgAiAigCEA0AQQAhAyABQQRHDQIgAigCBA0CIAAoAqAuDQIgACgCLEVBAXQPCwJAAkAgACgCPEGFAk0EQCAAEC8CQCAAKAI8IgNBhQJLDQAgAQ0AQQAPCyADRQ0CIAAoAiwEfyADBSAAIAYQTyAAIAo2AiwgACAAKAJoNgJYIAAoAjwLQQRJDQELIAAgACgCaEH4gAEoAgARAgAhBCAAKAJoIgKtIAStfSILQgFTDQAgCyAAKAIwQYYCa61VDQAgAiAAKAJIIgJqIgMvAAAgAiAEaiICLwAARw0AIANBAmogAkECakHQgAEoAgARAgBBAmoiA0EESQ0AIAAoAjwiAiADIAIgA0kbIgJBggIgAkGCAkkbIgdB/c4Aai0AACICQQJ0IgRBhMkAajMBACEMIARBhskAai8BACEDIAJBCGtBE00EQCAHQQNrIARBgNEAaigCAGutIAOthiAMhCEMIARBsNYAaigCACADaiEDCyAAKAKgLiEFIAMgC6dBAWsiCCAIQQd2QYACaiAIQYACSRtBgMsAai0AACICQQJ0IglBgsoAai8BAGohBCAJQYDKAGozAQAgA62GIAyEIQsgACkDmC4hDAJAIAUgAkEESQR/IAQFIAggCUGA0gBqKAIAa60gBK2GIAuEIQsgCUGw1wBqKAIAIARqCyICaiIDQT9NBEAgCyAFrYYgDIQhCwwBCyAFQcAARgRAIAAoAgQgACgCEGogDDcAACAAIAAoAhBBCGo2AhAgAiEDDAELIAAoAgQgACgCEGogCyAFrYYgDIQ3AAAgACAAKAIQQQhqNgIQIANBQGohAyALQcAAIAVrrYghCwsgACALNwOYLiAAIAM2AqAuIAAgACgCPCAHazYCPCAAIAAoAmggB2o2AmgMAgsgACgCSCAAKAJoai0AAEECdCICQYDBAGozAQAhCyAAKQOYLiEMAkAgACgCoC4iBCACQYLBAGovAQAiAmoiA0E/TQRAIAsgBK2GIAyEIQsMAQsgBEHAAEYEQCAAKAIEIAAoAhBqIAw3AAAgACAAKAIQQQhqNgIQIAIhAwwBCyAAKAIEIAAoAhBqIAsgBK2GIAyENwAAIAAgACgCEEEIajYCECADQUBqIQMgC0HAACAEa62IIQsLIAAgCzcDmC4gACADNgKgLiAAIAAoAmhBAWo2AmggACAAKAI8QQFrNgI8DAELCyAAIAAoAmgiAkECIAJBAkkbNgKELiAAKAIsIQIgAUEERgRAAkAgAkUNACAAQQEQUCAAQQA2AiwgACAAKAJoNgJYIAAoAgAQCiAAKAIAKAIQDQBBAg8LQQMPCyACBEBBACEDIABBABBQIABBADYCLCAAIAAoAmg2AlggACgCABAKIAAoAgAoAhBFDQELQQEhAwsgAwucAQEFfyACQQFOBEAgAiAAKAJIIAFqIgNqQQJqIQQgA0ECaiECIAAoAlQhAyAAKAJQIQUDQCAAIAItAAAgA0EFdEHg/wFxcyIDNgJUIAUgA0EBdGoiBi8BACIHIAFB//8DcUcEQCAAKAJMIAEgACgCOHFB//8DcUEBdGogBzsBACAGIAE7AQALIAFBAWohASACQQFqIgIgBEkNAAsLC1sBAn8gACAAKAJIIAFqLQACIAAoAlRBBXRB4P8BcXMiAjYCVCABIAAoAlAgAkEBdGoiAy8BACICRwRAIAAoAkwgACgCOCABcUEBdGogAjsBACADIAE7AQALIAILEwAgAUEFdEHg/wFxIAJB/wFxcwsGACABEAYLLwAjAEEQayIAJAAgAEEMaiABIAJsEIwBIQEgACgCDCECIABBEGokAEEAIAIgARsLjAoCAX4CfyMAQfAAayIGJAACQAJAAkACQAJAAkACQAJAIAQODwABBwIEBQYGBgYGBgYGAwYLQn8hBQJAIAAgBkHkAGpCDBARIgNCf1cEQCABBEAgASAAKAIMNgIAIAEgACgCEDYCBAsMAQsCQCADQgxSBEAgAQRAIAFBADYCBCABQRE2AgALDAELIAEoAhQhBEEAIQJCASEFA0AgBkHkAGogAmoiAiACLQAAIARB/f8DcSICQQJyIAJBA3NsQQh2cyICOgAAIAYgAjoAKCABAn8gASgCDEF/cyECQQAgBkEoaiIERQ0AGiACIARBAUHUgAEoAgARAAALQX9zIgI2AgwgASABKAIQIAJB/wFxakGFiKLAAGxBAWoiAjYCECAGIAJBGHY6ACggAQJ/IAEoAhRBf3MhAkEAIAZBKGoiBEUNABogAiAEQQFB1IABKAIAEQAAC0F/cyIENgIUIAVCDFIEQCAFpyECIAVCAXwhBQwBCwtCACEFIAAgBkEoahAhQQBIDQEgBigCUCEAIwBBEGsiAiQAIAIgADYCDCAGAn8gAkEMahCNASIARQRAIAZBITsBJEEADAELAn8gACgCFCIEQdAATgRAIARBCXQMAQsgAEHQADYCFEGAwAILIQQgBiAAKAIMIAQgACgCEEEFdGpqQaDAAWo7ASQgACgCBEEFdCAAKAIIQQt0aiAAKAIAQQF2ags7ASYgAkEQaiQAIAYtAG8iACAGLQBXRg0BIAYtACcgAEYNASABBEAgAUEANgIEIAFBGzYCAAsLQn8hBQsgBkHwAGokACAFDwtCfyEFIAAgAiADEBEiA0J/VwRAIAEEQCABIAAoAgw2AgAgASAAKAIQNgIECwwGCyMAQRBrIgAkAAJAIANQDQAgASgCFCEEIAJFBEBCASEFA0AgACACIAdqLQAAIARB/f8DcSIEQQJyIARBA3NsQQh2czoADyABAn8gASgCDEF/cyEEQQAgAEEPaiIHRQ0AGiAEIAdBAUHUgAEoAgARAAALQX9zIgQ2AgwgASABKAIQIARB/wFxakGFiKLAAGxBAWoiBDYCECAAIARBGHY6AA8gAQJ/IAEoAhRBf3MhBEEAIABBD2oiB0UNABogBCAHQQFB1IABKAIAEQAAC0F/cyIENgIUIAMgBVENAiAFpyEHIAVCAXwhBQwACwALQgEhBQNAIAAgAiAHai0AACAEQf3/A3EiBEECciAEQQNzbEEIdnMiBDoADyACIAdqIAQ6AAAgAQJ/IAEoAgxBf3MhBEEAIABBD2oiB0UNABogBCAHQQFB1IABKAIAEQAAC0F/cyIENgIMIAEgASgCECAEQf8BcWpBhYiiwABsQQFqIgQ2AhAgACAEQRh2OgAPIAECfyABKAIUQX9zIQRBACAAQQ9qIgdFDQAaIAQgB0EBQdSAASgCABEAAAtBf3MiBDYCFCADIAVRDQEgBachByAFQgF8IQUMAAsACyAAQRBqJAAgAyEFDAULIAJBADsBMiACIAIpAwAiA0KAAYQ3AwAgA0IIg1ANBCACIAIpAyBCDH03AyAMBAsgBkKFgICAcDcDECAGQoOAgIDAADcDCCAGQoGAgIAgNwMAQQAgBhAkIQUMAwsgA0IIWgR+IAIgASgCADYCACACIAEoAgQ2AgRCCAVCfwshBQwCCyABEAYMAQsgAQRAIAFBADYCBCABQRI2AgALQn8hBQsgBkHwAGokACAFC60DAgJ/An4jAEEQayIGJAACQAJAAkAgBEUNACABRQ0AIAJBAUYNAQtBACEDIABBCGoiAARAIABBADYCBCAAQRI2AgALDAELIANBAXEEQEEAIQMgAEEIaiIABEAgAEEANgIEIABBGDYCAAsMAQtBGBAJIgVFBEBBACEDIABBCGoiAARAIABBADYCBCAAQQ42AgALDAELIAVBADYCCCAFQgA3AgAgBUGQ8dmiAzYCFCAFQvis0ZGR8dmiIzcCDAJAIAQQIiICRQ0AIAKtIQhBACEDQYfTru5+IQJCASEHA0AgBiADIARqLQAAOgAPIAUgBkEPaiIDBH8gAiADQQFB1IABKAIAEQAABUEAC0F/cyICNgIMIAUgBSgCECACQf8BcWpBhYiiwABsQQFqIgI2AhAgBiACQRh2OgAPIAUCfyAFKAIUQX9zIQJBACAGQQ9qIgNFDQAaIAIgA0EBQdSAASgCABEAAAtBf3M2AhQgByAIUQ0BIAUoAgxBf3MhAiAHpyEDIAdCAXwhBwwACwALIAAgAUElIAUQQiIDDQAgBRAGQQAhAwsgBkEQaiQAIAMLnRoCBn4FfyMAQdAAayILJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADDhQFBhULAwQJDgACCBAKDw0HEQERDBELAkBByAAQCSIBBEAgAUIANwMAIAFCADcDMCABQQA2AiggAUIANwMgIAFCADcDGCABQgA3AxAgAUIANwMIIAFCADcDOCABQQgQCSIDNgIEIAMNASABEAYgAARAIABBADYCBCAAQQ42AgALCyAAQQA2AhQMFAsgA0IANwMAIAAgATYCFCABQUBrQgA3AwAgAUIANwM4DBQLAkACQCACUARAQcgAEAkiA0UNFCADQgA3AwAgA0IANwMwIANBADYCKCADQgA3AyAgA0IANwMYIANCADcDECADQgA3AwggA0IANwM4IANBCBAJIgE2AgQgAQ0BIAMQBiAABEAgAEEANgIEIABBDjYCAAsMFAsgAiAAKAIQIgEpAzBWBEAgAARAIABBADYCBCAAQRI2AgALDBQLIAEoAigEQCAABEAgAEEANgIEIABBHTYCAAsMFAsgASgCBCEDAkAgASkDCCIGQgF9IgdQDQADQAJAIAIgAyAHIAR9QgGIIAR8IgWnQQN0aikDAFQEQCAFQgF9IQcMAQsgBSAGUQRAIAYhBQwDCyADIAVCAXwiBKdBA3RqKQMAIAJWDQILIAQhBSAEIAdUDQALCwJAIAIgAyAFpyIKQQN0aikDAH0iBFBFBEAgASgCACIDIApBBHRqKQMIIQcMAQsgASgCACIDIAVCAX0iBadBBHRqKQMIIgchBAsgAiAHIAR9VARAIAAEQCAAQQA2AgQgAEEcNgIACwwUCyADIAVCAXwiBUEAIAAQiQEiA0UNEyADKAIAIAMoAggiCkEEdGpBCGsgBDcDACADKAIEIApBA3RqIAI3AwAgAyACNwMwIAMgASkDGCIGIAMpAwgiBEIBfSIHIAYgB1QbNwMYIAEgAzYCKCADIAE2AiggASAENwMgIAMgBTcDIAwBCyABQgA3AwALIAAgAzYCFCADIAQ3A0AgAyACNwM4QgAhBAwTCyAAKAIQIgEEQAJAIAEoAigiA0UEQCABKQMYIQIMAQsgA0EANgIoIAEoAihCADcDICABIAEpAxgiAiABKQMgIgUgAiAFVhsiAjcDGAsgASkDCCACVgRAA0AgASgCACACp0EEdGooAgAQBiACQgF8IgIgASkDCFQNAAsLIAEoAgAQBiABKAIEEAYgARAGCyAAKAIUIQEgAEEANgIUIAAgATYCEAwSCyACQghaBH4gASAAKAIANgIAIAEgACgCBDYCBEIIBUJ/CyEEDBELIAAoAhAiAQRAAkAgASgCKCIDRQRAIAEpAxghAgwBCyADQQA2AiggASgCKEIANwMgIAEgASkDGCICIAEpAyAiBSACIAVWGyICNwMYCyABKQMIIAJWBEADQCABKAIAIAKnQQR0aigCABAGIAJCAXwiAiABKQMIVA0ACwsgASgCABAGIAEoAgQQBiABEAYLIAAoAhQiAQRAAkAgASgCKCIDRQRAIAEpAxghAgwBCyADQQA2AiggASgCKEIANwMgIAEgASkDGCICIAEpAyAiBSACIAVWGyICNwMYCyABKQMIIAJWBEADQCABKAIAIAKnQQR0aigCABAGIAJCAXwiAiABKQMIVA0ACwsgASgCABAGIAEoAgQQBiABEAYLIAAQBgwQCyAAKAIQIgBCADcDOCAAQUBrQgA3AwAMDwsgAkJ/VwRAIAAEQCAAQQA2AgQgAEESNgIACwwOCyACIAAoAhAiAykDMCADKQM4IgZ9IgUgAiAFVBsiBVANDiABIAMpA0AiB6ciAEEEdCIBIAMoAgBqIgooAgAgBiADKAIEIABBA3RqKQMAfSICp2ogBSAKKQMIIAJ9IgYgBSAGVBsiBKcQByEKIAcgBCADKAIAIgAgAWopAwggAn1RrXwhAiAFIAZWBEADQCAKIASnaiAAIAKnQQR0IgFqIgAoAgAgBSAEfSIGIAApAwgiByAGIAdUGyIGpxAHGiACIAYgAygCACIAIAFqKQMIUa18IQIgBSAEIAZ8IgRWDQALCyADIAI3A0AgAyADKQM4IAR8NwM4DA4LQn8hBEHIABAJIgNFDQ0gA0IANwMAIANCADcDMCADQQA2AiggA0IANwMgIANCADcDGCADQgA3AxAgA0IANwMIIANCADcDOCADQQgQCSIBNgIEIAFFBEAgAxAGIAAEQCAAQQA2AgQgAEEONgIACwwOCyABQgA3AwAgACgCECIBBEACQCABKAIoIgpFBEAgASkDGCEEDAELIApBADYCKCABKAIoQgA3AyAgASABKQMYIgIgASkDICIFIAIgBVYbIgQ3AxgLIAEpAwggBFYEQANAIAEoAgAgBKdBBHRqKAIAEAYgBEIBfCIEIAEpAwhUDQALCyABKAIAEAYgASgCBBAGIAEQBgsgACADNgIQQgAhBAwNCyAAKAIUIgEEQAJAIAEoAigiA0UEQCABKQMYIQIMAQsgA0EANgIoIAEoAihCADcDICABIAEpAxgiAiABKQMgIgUgAiAFVhsiAjcDGAsgASkDCCACVgRAA0AgASgCACACp0EEdGooAgAQBiACQgF8IgIgASkDCFQNAAsLIAEoAgAQBiABKAIEEAYgARAGCyAAQQA2AhQMDAsgACgCECIDKQM4IAMpAzAgASACIAAQRCIHQgBTDQogAyAHNwM4AkAgAykDCCIGQgF9IgJQDQAgAygCBCEAA0ACQCAHIAAgAiAEfUIBiCAEfCIFp0EDdGopAwBUBEAgBUIBfSECDAELIAUgBlEEQCAGIQUMAwsgACAFQgF8IgSnQQN0aikDACAHVg0CCyAEIQUgAiAEVg0ACwsgAyAFNwNAQgAhBAwLCyAAKAIUIgMpAzggAykDMCABIAIgABBEIgdCAFMNCSADIAc3AzgCQCADKQMIIgZCAX0iAlANACADKAIEIQADQAJAIAcgACACIAR9QgGIIAR8IgWnQQN0aikDAFQEQCAFQgF9IQIMAQsgBSAGUQRAIAYhBQwDCyAAIAVCAXwiBKdBA3RqKQMAIAdWDQILIAQhBSACIARWDQALCyADIAU3A0BCACEEDAoLIAJCN1gEQCAABEAgAEEANgIEIABBEjYCAAsMCQsgARAqIAEgACgCDDYCKCAAKAIQKQMwIQIgAUEANgIwIAEgAjcDICABIAI3AxggAULcATcDAEI4IQQMCQsgACABKAIANgIMDAgLIAtBQGtBfzYCACALQouAgICwAjcDOCALQoyAgIDQATcDMCALQo+AgICgATcDKCALQpGAgICQATcDICALQoeAgICAATcDGCALQoWAgIDgADcDECALQoOAgIDAADcDCCALQoGAgIAgNwMAQQAgCxAkIQQMBwsgACgCECkDOCIEQn9VDQYgAARAIABBPTYCBCAAQR42AgALDAULIAAoAhQpAzgiBEJ/VQ0FIAAEQCAAQT02AgQgAEEeNgIACwwEC0J/IQQgAkJ/VwRAIAAEQCAAQQA2AgQgAEESNgIACwwFCyACIAAoAhQiAykDOCACfCIFQv//A3wiBFYEQCAABEAgAEEANgIEIABBEjYCAAsMBAsCQCAFIAMoAgQiCiADKQMIIganQQN0aikDACIHWA0AAkAgBCAHfUIQiCAGfCIIIAMpAxAiCVgNAEIQIAkgCVAbIQUDQCAFIgRCAYYhBSAEIAhUDQALIAQgCVQNACADKAIAIASnIgpBBHQQNCIMRQ0DIAMgDDYCACADKAIEIApBA3RBCGoQNCIKRQ0DIAMgBDcDECADIAo2AgQgAykDCCEGCyAGIAhaDQAgAygCACEMA0AgDCAGp0EEdGoiDUGAgAQQCSIONgIAIA5FBEAgAARAIABBADYCBCAAQQ42AgALDAYLIA1CgIAENwMIIAMgBkIBfCIFNwMIIAogBadBA3RqIAdCgIAEfCIHNwMAIAMpAwgiBiAIVA0ACwsgAykDQCEFIAMpAzghBwJAIAJQBEBCACEEDAELIAWnIgBBBHQiDCADKAIAaiINKAIAIAcgCiAAQQN0aikDAH0iBqdqIAEgAiANKQMIIAZ9IgcgAiAHVBsiBKcQBxogBSAEIAMoAgAiACAMaikDCCAGfVGtfCEFIAIgB1YEQANAIAAgBadBBHQiCmoiACgCACABIASnaiACIAR9IgYgACkDCCIHIAYgB1QbIganEAcaIAUgBiADKAIAIgAgCmopAwhRrXwhBSAEIAZ8IgQgAlQNAAsLIAMpAzghBwsgAyAFNwNAIAMgBCAHfCICNwM4IAIgAykDMFgNBCADIAI3AzAMBAsgAARAIABBADYCBCAAQRw2AgALDAILIAAEQCAAQQA2AgQgAEEONgIACyAABEAgAEEANgIEIABBDjYCAAsMAQsgAEEANgIUC0J/IQQLIAtB0ABqJAAgBAtIAQF/IABCADcCBCAAIAE2AgACQCABQQBIDQBBsBMoAgAgAUwNACABQQJ0QcATaigCAEEBRw0AQYSEASgCACECCyAAIAI2AgQLDgAgAkGx893xeWxBEHYLvgEAIwBBEGsiACQAIABBADoACEGAgQFBAjYCAEH8gAFBAzYCAEH4gAFBBDYCAEH0gAFBBTYCAEHwgAFBBjYCAEHsgAFBBzYCAEHogAFBCDYCAEHkgAFBCTYCAEHggAFBCjYCAEHcgAFBCzYCAEHYgAFBDDYCAEHUgAFBDTYCAEHQgAFBDjYCAEHMgAFBDzYCAEHIgAFBEDYCAEHEgAFBETYCAEHAgAFBEjYCACAAQRBqJAAgAkGx893xeWxBEHYLuQEBAX8jAEEQayIBJAAgAUEAOgAIQYCBAUECNgIAQfyAAUEDNgIAQfiAAUEENgIAQfSAAUEFNgIAQfCAAUEGNgIAQeyAAUEHNgIAQeiAAUEINgIAQeSAAUEJNgIAQeCAAUEKNgIAQdyAAUELNgIAQdiAAUEMNgIAQdSAAUENNgIAQdCAAUEONgIAQcyAAUEPNgIAQciAAUEQNgIAQcSAAUERNgIAQcCAAUESNgIAIAAQjgEgAUEQaiQAC78BAQF/IwBBEGsiAiQAIAJBADoACEGAgQFBAjYCAEH8gAFBAzYCAEH4gAFBBDYCAEH0gAFBBTYCAEHwgAFBBjYCAEHsgAFBBzYCAEHogAFBCDYCAEHkgAFBCTYCAEHggAFBCjYCAEHcgAFBCzYCAEHYgAFBDDYCAEHUgAFBDTYCAEHQgAFBDjYCAEHMgAFBDzYCAEHIgAFBEDYCAEHEgAFBETYCAEHAgAFBEjYCACAAIAEQkAEhACACQRBqJAAgAAu+AQEBfyMAQRBrIgIkACACQQA6AAhBgIEBQQI2AgBB/IABQQM2AgBB+IABQQQ2AgBB9IABQQU2AgBB8IABQQY2AgBB7IABQQc2AgBB6IABQQg2AgBB5IABQQk2AgBB4IABQQo2AgBB3IABQQs2AgBB2IABQQw2AgBB1IABQQ02AgBB0IABQQ42AgBBzIABQQ82AgBByIABQRA2AgBBxIABQRE2AgBBwIABQRI2AgAgACABEFohACACQRBqJAAgAAu+AQEBfyMAQRBrIgIkACACQQA6AAhBgIEBQQI2AgBB/IABQQM2AgBB+IABQQQ2AgBB9IABQQU2AgBB8IABQQY2AgBB7IABQQc2AgBB6IABQQg2AgBB5IABQQk2AgBB4IABQQo2AgBB3IABQQs2AgBB2IABQQw2AgBB1IABQQ02AgBB0IABQQ42AgBBzIABQQ82AgBByIABQRA2AgBBxIABQRE2AgBBwIABQRI2AgAgACABEFshACACQRBqJAAgAAu9AQEBfyMAQRBrIgMkACADQQA6AAhBgIEBQQI2AgBB/IABQQM2AgBB+IABQQQ2AgBB9IABQQU2AgBB8IABQQY2AgBB7IABQQc2AgBB6IABQQg2AgBB5IABQQk2AgBB4IABQQo2AgBB3IABQQs2AgBB2IABQQw2AgBB1IABQQ02AgBB0IABQQ42AgBBzIABQQ82AgBByIABQRA2AgBBxIABQRE2AgBBwIABQRI2AgAgACABIAIQjwEgA0EQaiQAC4UBAgR/AX4jAEEQayIBJAACQCAAKQMwUARADAELA0ACQCAAIAVBACABQQ9qIAFBCGoQZiIEQX9GDQAgAS0AD0EDRw0AIAIgASgCCEGAgICAf3FBgICAgHpGaiECC0F/IQMgBEF/Rg0BIAIhAyAFQgF8IgUgACkDMFQNAAsLIAFBEGokACADCwuMdSUAQYAIC7ELaW5zdWZmaWNpZW50IG1lbW9yeQBuZWVkIGRpY3Rpb25hcnkALSsgICAwWDB4AFppcCBhcmNoaXZlIGluY29uc2lzdGVudABJbnZhbGlkIGFyZ3VtZW50AGludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRl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UgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkA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SXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w==";Bo(ji)||(ji=P(ji));function ro(Je){try{if(Je==ji&&ce)return new Uint8Array(ce);var st=Me(Je);if(st)return st;if(R)return R(Je);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(St){ns(St)}}function vo(Je,st){var St,lr,ee;try{ee=ro(Je),lr=new WebAssembly.Module(ee),St=new WebAssembly.Instance(lr,st)}catch(Oe){var Ee=Oe.toString();throw te("failed to compile wasm module: "+Ee),(Ee.includes("imported Memory")||Ee.includes("memory import"))&&te("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),Oe}return[St,lr]}function RA(){var Je={a:fu};function st(ee,Ee){var Oe=ee.exports;r.asm=Oe,Be=r.asm.g,z(Be.buffer),$=r.asm.W,gn(r.asm.h),wo("wasm-instantiate")}if(ai("wasm-instantiate"),r.instantiateWasm)try{var St=r.instantiateWasm(Je,st);return St}catch(ee){return te("Module.instantiateWasm callback failed with error: "+ee),!1}var lr=vo(ji,Je);return st(lr[0]),r.asm}function pf(Je){return F.getFloat32(Je,!0)}function yh(Je){return F.getFloat64(Je,!0)}function Eh(Je){return F.getInt16(Je,!0)}function no(Je){return F.getInt32(Je,!0)}function jn(Je,st){F.setInt32(Je,st,!0)}function Fs(Je){for(;Je.length>0;){var st=Je.shift();if(typeof st=="function"){st(r);continue}var St=st.func;typeof St=="number"?st.arg===void 0?$.get(St)():$.get(St)(st.arg):St(st.arg===void 0?null:st.arg)}}function io(Je,st){var St=new Date(no((Je>>2)*4)*1e3);jn((st>>2)*4,St.getUTCSeconds()),jn((st+4>>2)*4,St.getUTCMinutes()),jn((st+8>>2)*4,St.getUTCHours()),jn((st+12>>2)*4,St.getUTCDate()),jn((st+16>>2)*4,St.getUTCMonth()),jn((st+20>>2)*4,St.getUTCFullYear()-1900),jn((st+24>>2)*4,St.getUTCDay()),jn((st+36>>2)*4,0),jn((st+32>>2)*4,0);var lr=Date.UTC(St.getUTCFullYear(),0,1,0,0,0,0),ee=(St.getTime()-lr)/(1e3*60*60*24)|0;return jn((st+28>>2)*4,ee),io.GMTString||(io.GMTString=rt("GMT")),jn((st+40>>2)*4,io.GMTString),st}function lu(Je,st){return io(Je,st)}function cu(Je,st,St){ke.copyWithin(Je,st,st+St)}function uu(Je){try{return Be.grow(Je-Pe.byteLength+65535>>>16),z(Be.buffer),1}catch{}}function FA(Je){var st=ke.length;Je=Je>>>0;var St=2147483648;if(Je>St)return!1;for(var lr=1;lr<=4;lr*=2){var ee=st*(1+.2/lr);ee=Math.min(ee,Je+100663296);var Ee=Math.min(St,Ne(Math.max(Je,ee),65536)),Oe=uu(Ee);if(Oe)return!0}return!1}function NA(Je){Ae(Je)}function aa(Je){var st=Date.now()/1e3|0;return Je&&jn((Je>>2)*4,st),st}function la(){if(la.called)return;la.called=!0;var Je=new Date().getFullYear(),st=new Date(Je,0,1),St=new Date(Je,6,1),lr=st.getTimezoneOffset(),ee=St.getTimezoneOffset(),Ee=Math.max(lr,ee);jn((Sl()>>2)*4,Ee*60),jn((ws()>>2)*4,+(lr!=ee));function Oe(fn){var li=fn.toTimeString().match(/\(([A-Za-z ]+)\)$/);return li?li[1]:"GMT"}var gt=Oe(st),yt=Oe(St),Dt=rt(gt),tr=rt(yt);ee<lr?(jn((_i()>>2)*4,Dt),jn((_i()+4>>2)*4,tr)):(jn((_i()>>2)*4,tr),jn((_i()+4>>2)*4,Dt))}function OA(Je){la();var st=Date.UTC(no((Je+20>>2)*4)+1900,no((Je+16>>2)*4),no((Je+12>>2)*4),no((Je+8>>2)*4),no((Je+4>>2)*4),no((Je>>2)*4),0),St=new Date(st);jn((Je+24>>2)*4,St.getUTCDay());var lr=Date.UTC(St.getUTCFullYear(),0,1,0,0,0,0),ee=(St.getTime()-lr)/(1e3*60*60*24)|0;return jn((Je+28>>2)*4,ee),St.getTime()/1e3|0}var gr=typeof atob=="function"?atob:function(Je){var st="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",St="",lr,ee,Ee,Oe,gt,yt,Dt,tr=0;Je=Je.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Oe=st.indexOf(Je.charAt(tr++)),gt=st.indexOf(Je.charAt(tr++)),yt=st.indexOf(Je.charAt(tr++)),Dt=st.indexOf(Je.charAt(tr++)),lr=Oe<<2|gt>>4,ee=(gt&15)<<4|yt>>2,Ee=(yt&3)<<6|Dt,St=St+String.fromCharCode(lr),yt!==64&&(St=St+String.fromCharCode(ee)),Dt!==64&&(St=St+String.fromCharCode(Ee));while(tr<Je.length);return St};function So(Je){if(typeof C=="boolean"&&C){var st;try{st=Buffer.from(Je,"base64")}catch{st=new Buffer(Je,"base64")}return new Uint8Array(st.buffer,st.byteOffset,st.byteLength)}try{for(var St=gr(Je),lr=new Uint8Array(St.length),ee=0;ee<St.length;++ee)lr[ee]=St.charCodeAt(ee);return lr}catch{throw new Error("Converting base64 string to bytes failed.")}}function Me(Je){if(Bo(Je))return So(Je.slice(to.length))}var fu={e:lu,c:cu,d:FA,a:NA,b:aa,f:OA},Cr=RA(),hf=r.___wasm_call_ctors=Cr.h,LA=r._zip_ext_count_symlinks=Cr.i,MA=r._zip_file_get_external_attributes=Cr.j,Au=r._zipstruct_statS=Cr.k,pu=r._zipstruct_stat_size=Cr.l,ac=r._zipstruct_stat_mtime=Cr.m,ve=r._zipstruct_stat_crc=Cr.n,Nt=r._zipstruct_errorS=Cr.o,lc=r._zipstruct_error_code_zip=Cr.p,Li=r._zipstruct_stat_comp_size=Cr.q,so=r._zipstruct_stat_comp_method=Cr.r,Rt=r._zip_close=Cr.s,xn=r._zip_delete=Cr.t,ca=r._zip_dir_add=Cr.u,qi=r._zip_discard=Cr.v,Mi=r._zip_error_init_with_code=Cr.w,Oa=r._zip_get_error=Cr.x,dn=r._zip_file_get_error=Cr.y,Jn=r._zip_error_strerror=Cr.z,hu=r._zip_fclose=Cr.A,Ih=r._zip_file_add=Cr.B,La=r._free=Cr.C,Ma=r._malloc=Cr.D,Ua=r._zip_source_error=Cr.E,Xe=r._zip_source_seek=Cr.F,Ha=r._zip_file_set_external_attributes=Cr.G,gf=r._zip_file_set_mtime=Cr.H,cc=r._zip_fopen_index=Cr.I,wn=r._zip_fread=Cr.J,ua=r._zip_get_name=Cr.K,_A=r._zip_get_num_entries=Cr.L,UA=r._zip_source_read=Cr.M,fa=r._zip_name_locate=Cr.N,vl=r._zip_open_from_source=Cr.O,Mt=r._zip_set_file_compression=Cr.P,kn=r._zip_source_buffer=Cr.Q,Aa=r._zip_source_buffer_create=Cr.R,ja=r._zip_source_close=Cr.S,is=r._zip_source_free=Cr.T,uc=r._zip_source_keep=Cr.U,gu=r._zip_source_open=Cr.V,fc=r._zip_source_tell=Cr.X,qa=r._zip_stat_index=Cr.Y,_i=r.__get_tzname=Cr.Z,ws=r.__get_daylight=Cr._,Sl=r.__get_timezone=Cr.$,df=r.stackSave=Cr.aa,Ac=r.stackRestore=Cr.ba,Bi=r.stackAlloc=Cr.ca;r.cwrap=se,r.getValue=pe;var Qn;nn=function Je(){Qn||pc(),Qn||(nn=Je)};function pc(Je){if(Je=Je||f,Ir>0||(It(),Ir>0))return;function st(){Qn||(Qn=!0,r.calledRun=!0,!Ce&&(qt(),s(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),ir()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),st()},1)):st()}if(r.run=pc,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return pc(),e}}();typeof IT=="object"&&typeof jj=="object"?jj.exports=Hj:typeof define=="function"&&define.amd?define([],function(){return Hj}):typeof IT=="object"&&(IT.createModule=Hj)});var Hp,kde,Qde,Tde=Ct(()=>{Hp=["number","number"],kde=(X=>(X[X.ZIP_ER_OK=0]="ZIP_ER_OK",X[X.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",X[X.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",X[X.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",X[X.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",X[X.ZIP_ER_READ=5]="ZIP_ER_READ",X[X.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",X[X.ZIP_ER_CRC=7]="ZIP_ER_CRC",X[X.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",X[X.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",X[X.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",X[X.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",X[X.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",X[X.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",X[X.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",X[X.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",X[X.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",X[X.ZIP_ER_EOF=17]="ZIP_ER_EOF",X[X.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",X[X.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",X[X.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",X[X.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",X[X.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",X[X.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",X[X.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",X[X.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",X[X.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",X[X.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",X[X.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",X[X.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",X[X.ZIP_ER_TELL=30]="ZIP_ER_TELL",X[X.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",X))(kde||{}),Qde=t=>({get HEAPU8(){return t.HEAPU8},errors:kde,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_EXCL:2,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint32S:t._malloc(4),malloc:t._malloc,free:t._free,getValue:t.getValue,openFromSource:t.cwrap("zip_open_from_source","number",["number","number","number"]),close:t.cwrap("zip_close","number",["number"]),discard:t.cwrap("zip_discard",null,["number"]),getError:t.cwrap("zip_get_error","number",["number"]),getName:t.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:t.cwrap("zip_get_num_entries","number",["number","number"]),delete:t.cwrap("zip_delete","number",["number","number"]),statIndex:t.cwrap("zip_stat_index","number",["number",...Hp,"number","number"]),fopenIndex:t.cwrap("zip_fopen_index","number",["number",...Hp,"number"]),fread:t.cwrap("zip_fread","number",["number","number","number","number"]),fclose:t.cwrap("zip_fclose","number",["number"]),dir:{add:t.cwrap("zip_dir_add","number",["number","string"])},file:{add:t.cwrap("zip_file_add","number",["number","string","number","number"]),getError:t.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:t.cwrap("zip_file_get_external_attributes","number",["number",...Hp,"number","number","number"]),setExternalAttributes:t.cwrap("zip_file_set_external_attributes","number",["number",...Hp,"number","number","number"]),setMtime:t.cwrap("zip_file_set_mtime","number",["number",...Hp,"number","number"]),setCompression:t.cwrap("zip_set_file_compression","number",["number",...Hp,"number","number"])},ext:{countSymlinks:t.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:t.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:t.cwrap("zip_error_strerror","string",["number"])},name:{locate:t.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:t.cwrap("zip_source_buffer_create","number",["number",...Hp,"number","number"]),fromBuffer:t.cwrap("zip_source_buffer","number",["number","number",...Hp,"number"]),free:t.cwrap("zip_source_free",null,["number"]),keep:t.cwrap("zip_source_keep",null,["number"]),open:t.cwrap("zip_source_open","number",["number"]),close:t.cwrap("zip_source_close","number",["number"]),seek:t.cwrap("zip_source_seek","number",["number",...Hp,"number"]),tell:t.cwrap("zip_source_tell","number",["number"]),read:t.cwrap("zip_source_read","number",["number","number","number"]),error:t.cwrap("zip_source_error","number",["number"])},struct:{statS:t.cwrap("zipstruct_statS","number",[]),statSize:t.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:t.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:t.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:t.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:t.cwrap("zipstruct_stat_crc","number",["number"]),errorS:t.cwrap("zipstruct_errorS","number",[]),errorCodeZip:t.cwrap("zipstruct_error_code_zip","number",["number"])}})});function qj(t,e){let r=t.indexOf(e);if(r<=0)return null;let s=r;for(;r>=0&&(s=r+e.length,t[s]!==K.sep);){if(t[r-1]===K.sep)return null;r=t.indexOf(e,s)}return t.length>s&&t[s]!==K.sep?null:t.slice(0,s)}var tA,Rde=Ct(()=>{bt();bt();rA();tA=class t extends r0{static async openPromise(e,r){let s=new t(r);try{return await e(s)}finally{s.saveAndClose()}}constructor(e={}){let r=e.fileExtensions,s=e.readOnlyArchives,a=typeof r>"u"?f=>qj(f,".zip"):f=>{for(let p of r){let h=qj(f,p);if(h)return h}return null},n=(f,p)=>new hs(p,{baseFs:f,readOnly:s,stats:f.statSync(p),customZipImplementation:e.customZipImplementation}),c=async(f,p)=>{let h={baseFs:f,readOnly:s,stats:await f.statPromise(p),customZipImplementation:e.customZipImplementation};return()=>new hs(p,h)};super({...e,factorySync:n,factoryPromise:c,getMountPoint:a})}}});var Gj,wI,Wj=Ct(()=>{Uj();Gj=class extends Error{constructor(e,r){super(e),this.name="Libzip Error",this.code=r}},wI=class{constructor(e){this.filesShouldBeCached=!0;let r="buffer"in e?e.buffer:e.baseFs.readFileSync(e.path);this.libzip=yv();let s=this.libzip.malloc(4);try{let c=0;e.readOnly&&(c|=this.libzip.ZIP_RDONLY);let f=this.allocateUnattachedSource(r);try{this.zip=this.libzip.openFromSource(f,c,s),this.lzSource=f}catch(p){throw this.libzip.source.free(f),p}if(this.zip===0){let p=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(p,this.libzip.getValue(s,"i32")),this.makeLibzipError(p)}}finally{this.libzip.free(s)}let a=this.libzip.getNumEntries(this.zip,0),n=new Array(a);for(let c=0;c<a;++c)n[c]=this.libzip.getName(this.zip,c,0);if(this.listings=n,this.symlinkCount=this.libzip.ext.countSymlinks(this.zip),this.symlinkCount===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}getSymlinkCount(){return this.symlinkCount}getListings(){return this.listings}stat(e){let r=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,e,0,0,r)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statSize(r)>>>0,n=this.libzip.struct.statMtime(r)>>>0,c=this.libzip.struct.statCrc(r)>>>0;return{size:a,mtime:n,crc:c}}makeLibzipError(e){let r=this.libzip.struct.errorCodeZip(e),s=this.libzip.error.strerror(e),a=new Gj(s,this.libzip.errors[r]);if(r===this.libzip.errors.ZIP_ER_CHANGED)throw new Error(`Assertion failed: Unexpected libzip error: ${a.message}`);return a}setFileSource(e,r,s){let a=this.allocateSource(s);try{let n=this.libzip.file.add(this.zip,e,a,this.libzip.ZIP_FL_OVERWRITE);if(n===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(r!==null&&this.libzip.file.setCompression(this.zip,n,0,r[0],r[1])===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return n}catch(n){throw this.libzip.source.free(a),n}}setMtime(e,r){if(this.libzip.file.setMtime(this.zip,e,0,r,0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}getExternalAttributes(e){if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let s=this.libzip.getValue(this.libzip.uint08S,"i8")>>>0,a=this.libzip.getValue(this.libzip.uint32S,"i32")>>>0;return[s,a]}setExternalAttributes(e,r,s){if(this.libzip.file.setExternalAttributes(this.zip,e,0,0,r,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}locate(e){return this.libzip.name.locate(this.zip,e,0)}getFileSource(e){let r=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,e,0,0,r)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(r),n=this.libzip.struct.statCompMethod(r),c=this.libzip.malloc(a);try{let f=this.libzip.fopenIndex(this.zip,e,0,this.libzip.ZIP_FL_COMPRESSED);if(f===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let p=this.libzip.fread(f,c,a,0);if(p===-1)throw this.makeLibzipError(this.libzip.file.getError(f));if(p<a)throw new Error("Incomplete read");if(p>a)throw new Error("Overread");let h=this.libzip.HEAPU8.subarray(c,c+a);return{data:Buffer.from(h),compressionMethod:n}}finally{this.libzip.fclose(f)}}finally{this.libzip.free(c)}}deleteEntry(e){if(this.libzip.delete(this.zip,e)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}addDirectory(e){let r=this.libzip.dir.add(this.zip,e);if(r===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return r}getBufferAndClose(){try{if(this.libzip.source.keep(this.lzSource),this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.libzip.source.open(this.lzSource)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_END)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let e=this.libzip.source.tell(this.lzSource);if(e===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_SET)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let r=this.libzip.malloc(e);if(!r)throw new Error("Couldn't allocate enough memory");try{let s=this.libzip.source.read(this.lzSource,r,e);if(s===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(s<e)throw new Error("Incomplete read");if(s>e)throw new Error("Overread");let a=Buffer.from(this.libzip.HEAPU8.subarray(r,r+e));return process.env.YARN_IS_TEST_ENV&&process.env.YARN_ZIP_DATA_EPILOGUE&&(a=Buffer.concat([a,Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)])),a}finally{this.libzip.free(r)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource)}}allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));let r=this.libzip.malloc(e.byteLength);if(!r)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,r,e.byteLength).set(e),{buffer:r,byteLength:e.byteLength}}allocateUnattachedSource(e){let r=this.libzip.struct.errorS(),{buffer:s,byteLength:a}=this.allocateBuffer(e),n=this.libzip.source.fromUnattachedBuffer(s,a,0,1,r);if(n===0)throw this.libzip.free(r),this.makeLibzipError(r);return n}allocateSource(e){let{buffer:r,byteLength:s}=this.allocateBuffer(e),a=this.libzip.source.fromBuffer(this.zip,r,s,0,1);if(a===0)throw this.libzip.free(r),this.makeLibzipError(this.libzip.getError(this.zip));return a}discard(){this.libzip.discard(this.zip)}}});function Wdt(t){if(typeof t=="string"&&String(+t)===t)return+t;if(typeof t=="number"&&Number.isFinite(t))return t<0?Date.now()/1e3:t;if(Fde.types.isDate(t))return t.getTime()/1e3;throw new Error("Invalid time")}function CT(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var ka,Yj,Fde,Vj,om,Kj,Jj,Nde,hs,wT=Ct(()=>{bt();bt();bt();bt();bt();bt();ka=Ie("fs"),Yj=Ie("stream"),Fde=Ie("util"),Vj=et(Ie("zlib"));Wj();om=3,Kj=0,Jj=8,Nde="mixed";hs=class extends Uf{constructor(r,s={}){super();this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;s.readOnly&&(this.readOnly=!0);let a=s;this.level=typeof a.level<"u"?a.level:Nde;let n=s.customZipImplementation??wI;if(typeof r=="string"){let{baseFs:f=new Yn}=a;this.baseFs=f,this.path=r}else this.path=null,this.baseFs=null;if(s.stats)this.stats=s.stats;else if(typeof r=="string")try{this.stats=this.baseFs.statSync(r)}catch(f){if(f.code==="ENOENT"&&a.create)this.stats=el.makeDefaultStats();else throw f}else this.stats=el.makeDefaultStats();typeof r=="string"?s.create?this.zipImpl=new n({buffer:CT(),readOnly:this.readOnly}):this.zipImpl=new n({path:r,baseFs:this.baseFs,readOnly:this.readOnly,size:this.stats.size}):this.zipImpl=new n({buffer:r??CT(),readOnly:this.readOnly}),this.listings.set(vt.root,new Set);let c=this.zipImpl.getListings();for(let f=0;f<c.length;f++){let p=c[f];if(K.isAbsolute(p))continue;let h=K.resolve(vt.root,p);this.registerEntry(h,f),p.endsWith("/")&&this.registerListing(h)}this.symlinkCount=this.zipImpl.getSymlinkCount(),this.ready=!0}getExtractHint(r){for(let s of this.entries.keys()){let a=this.pathUtils.extname(s);if(r.relevantExtensions.has(a))return!0}return!1}getAllFiles(){return Array.from(this.entries.keys())}getRealPath(){if(!this.path)throw new Error("ZipFS don't have real paths when loaded from a buffer");return this.path}prepareClose(){if(!this.ready)throw or.EBUSY("archive closed, close");md(this)}getBufferAndClose(){if(this.prepareClose(),this.entries.size===0)return this.discardAndClose(),CT();try{return this.zipImpl.getBufferAndClose()}finally{this.ready=!1}}discardAndClose(){this.prepareClose(),this.zipImpl.discard(),this.ready=!1}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.readOnly){this.discardAndClose();return}let r=this.baseFs.existsSync(this.path)||this.stats.mode===el.DEFAULT_MODE?void 0:this.stats.mode;this.baseFs.writeFileSync(this.path,this.getBufferAndClose(),{mode:r}),this.ready=!1}resolve(r){return K.resolve(vt.root,r)}async openPromise(r,s,a){return this.openSync(r,s,a)}openSync(r,s,a){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:r}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(r,s){return this.opendirSync(r,s)}opendirSync(r,s={}){let a=this.resolveFilename(`opendir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw or.ENOENT(`opendir '${r}'`);let n=this.listings.get(a);if(!n)throw or.ENOTDIR(`opendir '${r}'`);let c=[...n],f=this.openSync(a,"r");return lx(this,a,c,{onClose:()=>{this.closeSync(f)}})}async readPromise(r,s,a,n,c){return this.readSync(r,s,a,n,c)}readSync(r,s,a=0,n=s.byteLength,c=-1){let f=this.fds.get(r);if(typeof f>"u")throw or.EBADF("read");let p=c===-1||c===null?f.cursor:c,h=this.readFileSync(f.p);h.copy(s,a,p,p+n);let E=Math.max(0,Math.min(h.length-p,n));return(c===-1||c===null)&&(f.cursor+=E),E}async writePromise(r,s,a,n,c){return typeof s=="string"?this.writeSync(r,s,c):this.writeSync(r,s,a,n,c)}writeSync(r,s,a,n,c){throw typeof this.fds.get(r)>"u"?or.EBADF("read"):new Error("Unimplemented")}async closePromise(r){return this.closeSync(r)}closeSync(r){if(typeof this.fds.get(r)>"u")throw or.EBADF("read");this.fds.delete(r)}createReadStream(r,{encoding:s}={}){if(r===null)throw new Error("Unimplemented");let a=this.openSync(r,"r"),n=Object.assign(new Yj.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(f,p)=>{clearImmediate(c),this.closeSync(a),p(f)}}),{close(){n.destroy()},bytesRead:0,path:r,pending:!1}),c=setImmediate(async()=>{try{let f=await this.readFilePromise(r,s);n.bytesRead=f.length,n.end(f)}catch(f){n.destroy(f)}});return n}createWriteStream(r,{encoding:s}={}){if(this.readOnly)throw or.EROFS(`open '${r}'`);if(r===null)throw new Error("Unimplemented");let a=[],n=this.openSync(r,"w"),c=Object.assign(new Yj.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(f,p)=>{try{f?p(f):(this.writeFileSync(r,Buffer.concat(a),s),p(null))}catch(h){p(h)}finally{this.closeSync(n)}}}),{close(){c.destroy()},bytesWritten:0,path:r,pending:!1});return c.on("data",f=>{let p=Buffer.from(f);c.bytesWritten+=p.length,a.push(p)}),c}async realpathPromise(r){return this.realpathSync(r)}realpathSync(r){let s=this.resolveFilename(`lstat '${r}'`,r);if(!this.entries.has(s)&&!this.listings.has(s))throw or.ENOENT(`lstat '${r}'`);return s}async existsPromise(r){return this.existsSync(r)}existsSync(r){if(!this.ready)throw or.EBUSY(`archive closed, existsSync '${r}'`);if(this.symlinkCount===0){let a=K.resolve(vt.root,r);return this.entries.has(a)||this.listings.has(a)}let s;try{s=this.resolveFilename(`stat '${r}'`,r,void 0,!1)}catch{return!1}return s===void 0?!1:this.entries.has(s)||this.listings.has(s)}async accessPromise(r,s){return this.accessSync(r,s)}accessSync(r,s=ka.constants.F_OK){let a=this.resolveFilename(`access '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw or.ENOENT(`access '${r}'`);if(this.readOnly&&s&ka.constants.W_OK)throw or.EROFS(`access '${r}'`)}async statPromise(r,s={bigint:!1}){return s.bigint?this.statSync(r,{bigint:!0}):this.statSync(r)}statSync(r,s={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`stat '${r}'`,r,void 0,s.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(s.throwIfNoEntry===!1)return;throw or.ENOENT(`stat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw or.ENOTDIR(`stat '${r}'`);return this.statImpl(`stat '${r}'`,a,s)}}async fstatPromise(r,s){return this.fstatSync(r,s)}fstatSync(r,s){let a=this.fds.get(r);if(typeof a>"u")throw or.EBADF("fstatSync");let{p:n}=a,c=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(c)&&!this.listings.has(c))throw or.ENOENT(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(c))throw or.ENOTDIR(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,c,s)}async lstatPromise(r,s={bigint:!1}){return s.bigint?this.lstatSync(r,{bigint:!0}):this.lstatSync(r)}lstatSync(r,s={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`lstat '${r}'`,r,!1,s.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(s.throwIfNoEntry===!1)return;throw or.ENOENT(`lstat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw or.ENOTDIR(`lstat '${r}'`);return this.statImpl(`lstat '${r}'`,a,s)}}statImpl(r,s,a={}){let n=this.entries.get(s);if(typeof n<"u"){let c=this.zipImpl.stat(n),f=c.crc,p=c.size,h=c.mtime*1e3,E=this.stats.uid,C=this.stats.gid,S=512,P=Math.ceil(c.size/S),I=h,R=h,N=h,U=new Date(I),W=new Date(R),te=new Date(N),ie=new Date(h),Ae=this.listings.has(s)?ka.constants.S_IFDIR:this.isSymbolicLink(n)?ka.constants.S_IFLNK:ka.constants.S_IFREG,ce=Ae===ka.constants.S_IFDIR?493:420,me=Ae|this.getUnixMode(n,ce)&511,pe=Object.assign(new el.StatEntry,{uid:E,gid:C,size:p,blksize:S,blocks:P,atime:U,birthtime:W,ctime:te,mtime:ie,atimeMs:I,birthtimeMs:R,ctimeMs:N,mtimeMs:h,mode:me,crc:f});return a.bigint===!0?el.convertToBigIntStats(pe):pe}if(this.listings.has(s)){let c=this.stats.uid,f=this.stats.gid,p=0,h=512,E=0,C=this.stats.mtimeMs,S=this.stats.mtimeMs,P=this.stats.mtimeMs,I=this.stats.mtimeMs,R=new Date(C),N=new Date(S),U=new Date(P),W=new Date(I),te=ka.constants.S_IFDIR|493,Ae=Object.assign(new el.StatEntry,{uid:c,gid:f,size:p,blksize:h,blocks:E,atime:R,birthtime:N,ctime:U,mtime:W,atimeMs:C,birthtimeMs:S,ctimeMs:P,mtimeMs:I,mode:te,crc:0});return a.bigint===!0?el.convertToBigIntStats(Ae):Ae}throw new Error("Unreachable")}getUnixMode(r,s){let[a,n]=this.zipImpl.getExternalAttributes(r);return a!==om?s:n>>>16}registerListing(r){let s=this.listings.get(r);if(s)return s;this.registerListing(K.dirname(r)).add(K.basename(r));let n=new Set;return this.listings.set(r,n),n}registerEntry(r,s){this.registerListing(K.dirname(r)).add(K.basename(r)),this.entries.set(r,s)}unregisterListing(r){this.listings.delete(r),this.listings.get(K.dirname(r))?.delete(K.basename(r))}unregisterEntry(r){this.unregisterListing(r);let s=this.entries.get(r);this.entries.delete(r),!(typeof s>"u")&&(this.fileSources.delete(s),this.isSymbolicLink(s)&&this.symlinkCount--)}deleteEntry(r,s){this.unregisterEntry(r),this.zipImpl.deleteEntry(s)}resolveFilename(r,s,a=!0,n=!0){if(!this.ready)throw or.EBUSY(`archive closed, ${r}`);let c=K.resolve(vt.root,s);if(c==="/")return vt.root;let f=this.entries.get(c);if(a&&f!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(f)){let p=this.getFileSource(f).toString();return this.resolveFilename(r,K.resolve(K.dirname(c),p),!0,n)}else return c;for(;;){let p=this.resolveFilename(r,K.dirname(c),!0,n);if(p===void 0)return p;let h=this.listings.has(p),E=this.entries.has(p);if(!h&&!E){if(n===!1)return;throw or.ENOENT(r)}if(!h)throw or.ENOTDIR(r);if(c=K.resolve(p,K.basename(c)),!a||this.symlinkCount===0)break;let C=this.zipImpl.locate(c.slice(1));if(C===-1)break;if(this.isSymbolicLink(C)){let S=this.getFileSource(C).toString();c=K.resolve(K.dirname(c),S)}else break}return c}setFileSource(r,s){let a=Buffer.isBuffer(s)?s:Buffer.from(s),n=K.relative(vt.root,r),c=null;this.level!=="mixed"&&(c=[this.level===0?Kj:Jj,this.level]);let f=this.zipImpl.setFileSource(n,c,a);return this.fileSources.set(f,a),f}isSymbolicLink(r){if(this.symlinkCount===0)return!1;let[s,a]=this.zipImpl.getExternalAttributes(r);return s!==om?!1:(a>>>16&ka.constants.S_IFMT)===ka.constants.S_IFLNK}getFileSource(r,s={asyncDecompress:!1}){let a=this.fileSources.get(r);if(typeof a<"u")return a;let{data:n,compressionMethod:c}=this.zipImpl.getFileSource(r);if(c===Kj)return this.zipImpl.filesShouldBeCached&&this.fileSources.set(r,n),n;if(c===Jj){if(s.asyncDecompress)return new Promise((f,p)=>{Vj.default.inflateRaw(n,(h,E)=>{h?p(h):(this.zipImpl.filesShouldBeCached&&this.fileSources.set(r,E),f(E))})});{let f=Vj.default.inflateRawSync(n);return this.zipImpl.filesShouldBeCached&&this.fileSources.set(r,f),f}}else throw new Error(`Unsupported compression method: ${c}`)}async fchmodPromise(r,s){return this.chmodPromise(this.fdToPath(r,"fchmod"),s)}fchmodSync(r,s){return this.chmodSync(this.fdToPath(r,"fchmodSync"),s)}async chmodPromise(r,s){return this.chmodSync(r,s)}chmodSync(r,s){if(this.readOnly)throw or.EROFS(`chmod '${r}'`);s&=493;let a=this.resolveFilename(`chmod '${r}'`,r,!1),n=this.entries.get(a);if(typeof n>"u")throw new Error(`Assertion failed: The entry should have been registered (${a})`);let f=this.getUnixMode(n,ka.constants.S_IFREG|0)&-512|s;this.zipImpl.setExternalAttributes(n,om,f<<16)}async fchownPromise(r,s,a){return this.chownPromise(this.fdToPath(r,"fchown"),s,a)}fchownSync(r,s,a){return this.chownSync(this.fdToPath(r,"fchownSync"),s,a)}async chownPromise(r,s,a){return this.chownSync(r,s,a)}chownSync(r,s,a){throw new Error("Unimplemented")}async renamePromise(r,s){return this.renameSync(r,s)}renameSync(r,s){throw new Error("Unimplemented")}async copyFilePromise(r,s,a){let{indexSource:n,indexDest:c,resolvedDestP:f}=this.prepareCopyFile(r,s,a),p=await this.getFileSource(n,{asyncDecompress:!0}),h=this.setFileSource(f,p);h!==c&&this.registerEntry(f,h)}copyFileSync(r,s,a=0){let{indexSource:n,indexDest:c,resolvedDestP:f}=this.prepareCopyFile(r,s,a),p=this.getFileSource(n),h=this.setFileSource(f,p);h!==c&&this.registerEntry(f,h)}prepareCopyFile(r,s,a=0){if(this.readOnly)throw or.EROFS(`copyfile '${r} -> '${s}'`);if(a&ka.constants.COPYFILE_FICLONE_FORCE)throw or.ENOSYS("unsupported clone operation",`copyfile '${r}' -> ${s}'`);let n=this.resolveFilename(`copyfile '${r} -> ${s}'`,r),c=this.entries.get(n);if(typeof c>"u")throw or.EINVAL(`copyfile '${r}' -> '${s}'`);let f=this.resolveFilename(`copyfile '${r}' -> ${s}'`,s),p=this.entries.get(f);if(a&(ka.constants.COPYFILE_EXCL|ka.constants.COPYFILE_FICLONE_FORCE)&&typeof p<"u")throw or.EEXIST(`copyfile '${r}' -> '${s}'`);return{indexSource:c,resolvedDestP:f,indexDest:p}}async appendFilePromise(r,s,a){if(this.readOnly)throw or.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFilePromise(r,s,a)}appendFileSync(r,s,a={}){if(this.readOnly)throw or.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFileSync(r,s,a)}fdToPath(r,s){let a=this.fds.get(r)?.p;if(typeof a>"u")throw or.EBADF(s);return a}async writeFilePromise(r,s,a){let{encoding:n,mode:c,index:f,resolvedP:p}=this.prepareWriteFile(r,a);f!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(s=Buffer.concat([await this.getFileSource(f,{asyncDecompress:!0}),Buffer.from(s)])),n!==null&&(s=s.toString(n));let h=this.setFileSource(p,s);h!==f&&this.registerEntry(p,h),c!==null&&await this.chmodPromise(p,c)}writeFileSync(r,s,a){let{encoding:n,mode:c,index:f,resolvedP:p}=this.prepareWriteFile(r,a);f!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(s=Buffer.concat([this.getFileSource(f),Buffer.from(s)])),n!==null&&(s=s.toString(n));let h=this.setFileSource(p,s);h!==f&&this.registerEntry(p,h),c!==null&&this.chmodSync(p,c)}prepareWriteFile(r,s){if(typeof r=="number"&&(r=this.fdToPath(r,"read")),this.readOnly)throw or.EROFS(`open '${r}'`);let a=this.resolveFilename(`open '${r}'`,r);if(this.listings.has(a))throw or.EISDIR(`open '${r}'`);let n=null,c=null;typeof s=="string"?n=s:typeof s=="object"&&({encoding:n=null,mode:c=null}=s);let f=this.entries.get(a);return{encoding:n,mode:c,resolvedP:a,index:f}}async unlinkPromise(r){return this.unlinkSync(r)}unlinkSync(r){if(this.readOnly)throw or.EROFS(`unlink '${r}'`);let s=this.resolveFilename(`unlink '${r}'`,r);if(this.listings.has(s))throw or.EISDIR(`unlink '${r}'`);let a=this.entries.get(s);if(typeof a>"u")throw or.EINVAL(`unlink '${r}'`);this.deleteEntry(s,a)}async utimesPromise(r,s,a){return this.utimesSync(r,s,a)}utimesSync(r,s,a){if(this.readOnly)throw or.EROFS(`utimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r);this.utimesImpl(n,a)}async lutimesPromise(r,s,a){return this.lutimesSync(r,s,a)}lutimesSync(r,s,a){if(this.readOnly)throw or.EROFS(`lutimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r,!1);this.utimesImpl(n,a)}utimesImpl(r,s){this.listings.has(r)&&(this.entries.has(r)||this.hydrateDirectory(r));let a=this.entries.get(r);if(a===void 0)throw new Error("Unreachable");this.zipImpl.setMtime(a,Wdt(s))}async mkdirPromise(r,s){return this.mkdirSync(r,s)}mkdirSync(r,{mode:s=493,recursive:a=!1}={}){if(a)return this.mkdirpSync(r,{chmod:s});if(this.readOnly)throw or.EROFS(`mkdir '${r}'`);let n=this.resolveFilename(`mkdir '${r}'`,r);if(this.entries.has(n)||this.listings.has(n))throw or.EEXIST(`mkdir '${r}'`);this.hydrateDirectory(n),this.chmodSync(n,s)}async rmdirPromise(r,s){return this.rmdirSync(r,s)}rmdirSync(r,{recursive:s=!1}={}){if(this.readOnly)throw or.EROFS(`rmdir '${r}'`);if(s){this.removeSync(r);return}let a=this.resolveFilename(`rmdir '${r}'`,r),n=this.listings.get(a);if(!n)throw or.ENOTDIR(`rmdir '${r}'`);if(n.size>0)throw or.ENOTEMPTY(`rmdir '${r}'`);let c=this.entries.get(a);if(typeof c>"u")throw or.EINVAL(`rmdir '${r}'`);this.deleteEntry(r,c)}async rmPromise(r,s){return this.rmSync(r,s)}rmSync(r,{recursive:s=!1}={}){if(this.readOnly)throw or.EROFS(`rm '${r}'`);if(s){this.removeSync(r);return}let a=this.resolveFilename(`rm '${r}'`,r),n=this.listings.get(a);if(!n)throw or.ENOTDIR(`rm '${r}'`);if(n.size>0)throw or.ENOTEMPTY(`rm '${r}'`);let c=this.entries.get(a);if(typeof c>"u")throw or.EINVAL(`rm '${r}'`);this.deleteEntry(r,c)}hydrateDirectory(r){let s=this.zipImpl.addDirectory(K.relative(vt.root,r));return this.registerListing(r),this.registerEntry(r,s),s}async linkPromise(r,s){return this.linkSync(r,s)}linkSync(r,s){throw or.EOPNOTSUPP(`link '${r}' -> '${s}'`)}async symlinkPromise(r,s){return this.symlinkSync(r,s)}symlinkSync(r,s){if(this.readOnly)throw or.EROFS(`symlink '${r}' -> '${s}'`);let a=this.resolveFilename(`symlink '${r}' -> '${s}'`,s);if(this.listings.has(a))throw or.EISDIR(`symlink '${r}' -> '${s}'`);if(this.entries.has(a))throw or.EEXIST(`symlink '${r}' -> '${s}'`);let n=this.setFileSource(a,r);this.registerEntry(a,n),this.zipImpl.setExternalAttributes(n,om,(ka.constants.S_IFLNK|511)<<16),this.symlinkCount+=1}async readFilePromise(r,s){typeof s=="object"&&(s=s?s.encoding:void 0);let a=await this.readFileBuffer(r,{asyncDecompress:!0});return s?a.toString(s):a}readFileSync(r,s){typeof s=="object"&&(s=s?s.encoding:void 0);let a=this.readFileBuffer(r);return s?a.toString(s):a}readFileBuffer(r,s={asyncDecompress:!1}){typeof r=="number"&&(r=this.fdToPath(r,"read"));let a=this.resolveFilename(`open '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw or.ENOENT(`open '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(a))throw or.ENOTDIR(`open '${r}'`);if(this.listings.has(a))throw or.EISDIR("read");let n=this.entries.get(a);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,s)}async readdirPromise(r,s){return this.readdirSync(r,s)}readdirSync(r,s){let a=this.resolveFilename(`scandir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw or.ENOENT(`scandir '${r}'`);let n=this.listings.get(a);if(!n)throw or.ENOTDIR(`scandir '${r}'`);if(s?.recursive)if(s?.withFileTypes){let c=Array.from(n,f=>Object.assign(this.statImpl("lstat",K.join(r,f)),{name:f,path:vt.dot}));for(let f of c){if(!f.isDirectory())continue;let p=K.join(f.path,f.name),h=this.listings.get(K.join(a,p));for(let E of h)c.push(Object.assign(this.statImpl("lstat",K.join(r,p,E)),{name:E,path:p}))}return c}else{let c=[...n];for(let f of c){let p=this.listings.get(K.join(a,f));if(!(typeof p>"u"))for(let h of p)c.push(K.join(f,h))}return c}else return s?.withFileTypes?Array.from(n,c=>Object.assign(this.statImpl("lstat",K.join(r,c)),{name:c,path:void 0})):[...n]}async readlinkPromise(r){let s=this.prepareReadlink(r);return(await this.getFileSource(s,{asyncDecompress:!0})).toString()}readlinkSync(r){let s=this.prepareReadlink(r);return this.getFileSource(s).toString()}prepareReadlink(r){let s=this.resolveFilename(`readlink '${r}'`,r,!1);if(!this.entries.has(s)&&!this.listings.has(s))throw or.ENOENT(`readlink '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(s))throw or.ENOTDIR(`open '${r}'`);if(this.listings.has(s))throw or.EINVAL(`readlink '${r}'`);let a=this.entries.get(s);if(a===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(a))throw or.EINVAL(`readlink '${r}'`);return a}async truncatePromise(r,s=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw or.EINVAL(`open '${r}'`);let c=await this.getFileSource(n,{asyncDecompress:!0}),f=Buffer.alloc(s,0);return c.copy(f),await this.writeFilePromise(r,f)}truncateSync(r,s=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw or.EINVAL(`open '${r}'`);let c=this.getFileSource(n),f=Buffer.alloc(s,0);return c.copy(f),this.writeFileSync(r,f)}async ftruncatePromise(r,s){return this.truncatePromise(this.fdToPath(r,"ftruncate"),s)}ftruncateSync(r,s){return this.truncateSync(this.fdToPath(r,"ftruncateSync"),s)}watch(r,s,a){let n;switch(typeof s){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=s);break}if(!n)return{on:()=>{},close:()=>{}};let c=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(c)}}}watchFile(r,s,a){let n=K.resolve(vt.root,r);return nE(this,n,s,a)}unwatchFile(r,s){let a=K.resolve(vt.root,r);return dd(this,a,s)}}});function Lde(t,e,r=Buffer.alloc(0),s){let a=new hs(r),n=C=>C===e||C.startsWith(`${e}/`)?C.slice(0,e.length):null,c=async(C,S)=>()=>a,f=(C,S)=>a,p={...t},h=new Yn(p),E=new r0({baseFs:h,getMountPoint:n,factoryPromise:c,factorySync:f,magicByte:21,maxAge:1/0,typeCheck:s?.typeCheck});return _2(Ode.default,new n0(E)),a}var Ode,Mde=Ct(()=>{bt();Ode=et(Ie("fs"));wT()});var _de=Ct(()=>{Rde();wT();Mde()});var zj,Ev,BT,Ude=Ct(()=>{bt();wT();zj={CENTRAL_DIRECTORY:33639248,END_OF_CENTRAL_DIRECTORY:101010256},Ev=22,BT=class t{constructor(e){this.filesShouldBeCached=!1;if("buffer"in e)throw new Error("Buffer based zip archives are not supported");if(!e.readOnly)throw new Error("Writable zip archives are not supported");this.baseFs=e.baseFs,this.fd=this.baseFs.openSync(e.path,"r");try{this.entries=t.readZipSync(this.fd,this.baseFs,e.size)}catch(r){throw this.baseFs.closeSync(this.fd),this.fd="closed",r}}static readZipSync(e,r,s){if(s<Ev)throw new Error("Invalid ZIP file: EOCD not found");let a=-1,n=Buffer.alloc(Ev);if(r.readSync(e,n,0,Ev,s-Ev),n.readUInt32LE(0)===zj.END_OF_CENTRAL_DIRECTORY)a=0;else{let R=Math.min(65557,s);n=Buffer.alloc(R),r.readSync(e,n,0,R,Math.max(0,s-R));for(let N=n.length-4;N>=0;N--)if(n.readUInt32LE(N)===zj.END_OF_CENTRAL_DIRECTORY){a=N;break}if(a===-1)throw new Error("Not a zip archive")}let c=n.readUInt16LE(a+10),f=n.readUInt32LE(a+12),p=n.readUInt32LE(a+16),h=n.readUInt16LE(a+20);if(a+h+Ev>n.length)throw new Error("Zip archive inconsistent");if(c==65535||f==4294967295||p==4294967295)throw new Error("Zip 64 is not supported");if(f>s)throw new Error("Zip archive inconsistent");if(c>f/46)throw new Error("Zip archive inconsistent");let E=Buffer.alloc(f);if(r.readSync(e,E,0,E.length,p)!==E.length)throw new Error("Zip archive inconsistent");let C=[],S=0,P=0,I=0;for(;P<c;){if(S+46>E.length)throw new Error("Zip archive inconsistent");if(E.readUInt32LE(S)!==zj.CENTRAL_DIRECTORY)throw new Error("Zip archive inconsistent");let N=E.readUInt16LE(S+4)>>>8;if(E.readUInt16LE(S+8)&1)throw new Error("Encrypted zip files are not supported");let W=E.readUInt16LE(S+10),te=E.readUInt32LE(S+16),ie=E.readUInt16LE(S+28),Ae=E.readUInt16LE(S+30),ce=E.readUInt16LE(S+32),me=E.readUInt32LE(S+42),pe=E.toString("utf8",S+46,S+46+ie).replaceAll("\0"," ");if(pe.includes("\0"))throw new Error("Invalid ZIP file");let Be=E.readUInt32LE(S+20),Ce=E.readUInt32LE(S+38);C.push({name:pe,os:N,mtime:fi.SAFE_TIME,crc:te,compressionMethod:W,isSymbolicLink:N===om&&(Ce>>>16&fi.S_IFMT)===fi.S_IFLNK,size:E.readUInt32LE(S+24),compressedSize:Be,externalAttributes:Ce,localHeaderOffset:me}),I+=Be,P+=1,S+=46+ie+Ae+ce}if(I>s)throw new Error("Zip archive inconsistent");if(S!==E.length)throw new Error("Zip archive inconsistent");return C}getExternalAttributes(e){let r=this.entries[e];return[r.os,r.externalAttributes]}getListings(){return this.entries.map(e=>e.name)}getSymlinkCount(){let e=0;for(let r of this.entries)r.isSymbolicLink&&(e+=1);return e}stat(e){let r=this.entries[e];return{crc:r.crc,mtime:r.mtime,size:r.size}}locate(e){for(let r=0;r<this.entries.length;r++)if(this.entries[r].name===e)return r;return-1}getFileSource(e){if(this.fd==="closed")throw new Error("ZIP file is closed");let r=this.entries[e],s=Buffer.alloc(30);this.baseFs.readSync(this.fd,s,0,s.length,r.localHeaderOffset);let a=s.readUInt16LE(26),n=s.readUInt16LE(28),c=Buffer.alloc(r.compressedSize);if(this.baseFs.readSync(this.fd,c,0,r.compressedSize,r.localHeaderOffset+30+a+n)!==r.compressedSize)throw new Error("Invalid ZIP file");return{data:c,compressionMethod:r.compressionMethod}}discard(){this.fd!=="closed"&&(this.baseFs.closeSync(this.fd),this.fd="closed")}addDirectory(e){throw new Error("Not implemented")}deleteEntry(e){throw new Error("Not implemented")}setMtime(e,r){throw new Error("Not implemented")}getBufferAndClose(){throw new Error("Not implemented")}setFileSource(e,r,s){throw new Error("Not implemented")}setExternalAttributes(e,r,s){throw new Error("Not implemented")}}});var Iv={};Vt(Iv,{DEFAULT_COMPRESSION_LEVEL:()=>Nde,DEFLATE:()=>Jj,JsZipImpl:()=>BT,LibZipImpl:()=>wI,STORE:()=>Kj,ZIP_UNIX:()=>om,ZipFS:()=>hs,ZipOpenFS:()=>tA,getArchivePart:()=>qj,getLibzipPromise:()=>Vdt,getLibzipSync:()=>Ydt,makeEmptyArchive:()=>CT,mountMemoryDrive:()=>Lde});function Ydt(){return yv()}async function Vdt(){return yv()}var Hde,rA=Ct(()=>{Uj();Hde=et(xde());Tde();_de();Ude();Wj();Pde(()=>{let t=(0,Hde.default)();return Qde(t)})});var Cv,jde=Ct(()=>{bt();Wt();wv();Cv=class extends ot{constructor(){super(...arguments);this.cwd=ge.String("--cwd",process.cwd(),{description:"The directory to run the command in"});this.commandName=ge.String();this.args=ge.Proxy()}static{this.usage={description:"run a command using yarn's portable shell",details:` + This command will run a command using Yarn's portable shell. + + Make sure to escape glob patterns, redirections, and other features that might be expanded by your own shell. + + Note: To escape something from Yarn's shell, you might have to escape it twice, the first time from your own shell. + + Note: Don't use this command in Yarn scripts, as Yarn's shell is automatically used. + + For a list of features, visit: https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-shell/README.md. + `,examples:[["Run a simple command","$0 echo Hello"],["Run a command with a glob pattern","$0 echo '*.js'"],["Run a command with a redirection","$0 echo Hello World '>' hello.txt"],["Run a command with an escaped glob pattern (The double escape is needed in Unix shells)",`$0 echo '"*.js"'`],["Run a command with a variable (Double quotes are needed in Unix shells, to prevent them from expanding the variable)",'$0 "GREETING=Hello echo $GREETING World"']]}}async execute(){let r=this.args.length>0?`${this.commandName} ${this.args.join(" ")}`:this.commandName;return await BI(r,[],{cwd:ue.toPortablePath(this.cwd),stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}}});var Kl,qde=Ct(()=>{Kl=class extends Error{constructor(e){super(e),this.name="ShellError"}}});var DT={};Vt(DT,{fastGlobOptions:()=>Yde,isBraceExpansion:()=>Zj,isGlobPattern:()=>Kdt,match:()=>Jdt,micromatchOptions:()=>ST});function Kdt(t){if(!vT.default.scan(t,ST).isGlob)return!1;try{vT.default.parse(t,ST)}catch{return!1}return!0}function Jdt(t,{cwd:e,baseFs:r}){return(0,Gde.default)(t,{...Yde,cwd:ue.fromPortablePath(e),fs:gx(Wde.default,new n0(r))})}function Zj(t){return vT.default.scan(t,ST).isBrace}var Gde,Wde,vT,ST,Yde,Vde=Ct(()=>{bt();Gde=et(CQ()),Wde=et(Ie("fs")),vT=et(Sa()),ST={strictBrackets:!0},Yde={onlyDirectories:!1,onlyFiles:!1}});function Xj(){}function $j(){for(let t of am)t.kill()}function Zde(t,e,r,s){return a=>{let n=a[0]instanceof nA.Transform?"pipe":a[0],c=a[1]instanceof nA.Transform?"pipe":a[1],f=a[2]instanceof nA.Transform?"pipe":a[2],p=(0,Jde.default)(t,e,{...s,stdio:[n,c,f]});return am.add(p),am.size===1&&(process.on("SIGINT",Xj),process.on("SIGTERM",$j)),a[0]instanceof nA.Transform&&a[0].pipe(p.stdin),a[1]instanceof nA.Transform&&p.stdout.pipe(a[1],{end:!1}),a[2]instanceof nA.Transform&&p.stderr.pipe(a[2],{end:!1}),{stdin:p.stdin,promise:new Promise(h=>{p.on("error",E=>{switch(am.delete(p),am.size===0&&(process.off("SIGINT",Xj),process.off("SIGTERM",$j)),E.code){case"ENOENT":a[2].write(`command not found: ${t} +`),h(127);break;case"EACCES":a[2].write(`permission denied: ${t} +`),h(128);break;default:a[2].write(`uncaught error: ${E.message} +`),h(1);break}}),p.on("close",E=>{am.delete(p),am.size===0&&(process.off("SIGINT",Xj),process.off("SIGTERM",$j)),h(E!==null?E:129)})})}}}function Xde(t){return e=>{let r=e[0]==="pipe"?new nA.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}function bT(t,e){return t6.start(t,e)}function Kde(t,e=null){let r=new nA.PassThrough,s=new zde.StringDecoder,a="";return r.on("data",n=>{let c=s.write(n),f;do if(f=c.indexOf(` +`),f!==-1){let p=a+c.substring(0,f);c=c.substring(f+1),a="",t(e!==null?`${e} ${p}`:p)}while(f!==-1);a+=c}),r.on("end",()=>{let n=s.end();n!==""&&t(e!==null?`${e} ${n}`:n)}),r}function $de(t,{prefix:e}){return{stdout:Kde(r=>t.stdout.write(`${r} +`),t.stdout.isTTY?e:null),stderr:Kde(r=>t.stderr.write(`${r} +`),t.stderr.isTTY?e:null)}}var Jde,nA,zde,am,Mc,e6,t6,r6=Ct(()=>{Jde=et(j_()),nA=Ie("stream"),zde=Ie("string_decoder"),am=new Set;Mc=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},e6=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},t6=class t{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:s,stderr:a}){let n=new t(null,e);return n.stdin=r,n.stdout=s,n.stderr=a,n}pipeTo(e,r=1){let s=new t(this,e),a=new e6;return s.pipe=a,s.stdout=this.stdout,s.stderr=this.stderr,(r&1)===1?this.stdout=a:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)===2?this.stderr=a:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),s}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let s;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");s=this.stderr,e[2]=s.get();let a=this.implementation(e);return this.pipe&&this.pipe.attach(a.stdin),await a.promise.then(n=>(r.close(),s.close(),n))}async run(){let e=[];for(let s=this;s;s=s.ancestor)e.push(s.exec());return(await Promise.all(e))[0]}}});var Dv={};Vt(Dv,{EntryCommand:()=>Cv,ShellError:()=>Kl,execute:()=>BI,globUtils:()=>DT});function eme(t,e,r){let s=new Jl.PassThrough({autoDestroy:!0});switch(t){case 0:(e&1)===1&&r.stdin.pipe(s,{end:!1}),(e&2)===2&&r.stdin instanceof Jl.Writable&&s.pipe(r.stdin,{end:!1});break;case 1:(e&1)===1&&r.stdout.pipe(s,{end:!1}),(e&2)===2&&s.pipe(r.stdout,{end:!1});break;case 2:(e&1)===1&&r.stderr.pipe(s,{end:!1}),(e&2)===2&&s.pipe(r.stderr,{end:!1});break;default:throw new Kl(`Bad file descriptor: "${t}"`)}return s}function xT(t,e={}){let r={...t,...e};return r.environment={...t.environment,...e.environment},r.variables={...t.variables,...e.variables},r}async function Zdt(t,e,r){let s=[],a=new Jl.PassThrough;return a.on("data",n=>s.push(n)),await kT(t,e,xT(r,{stdout:a})),Buffer.concat(s).toString().replace(/[\r\n]+$/,"")}async function tme(t,e,r){let s=t.map(async n=>{let c=await lm(n.args,e,r);return{name:n.name,value:c.join(" ")}});return(await Promise.all(s)).reduce((n,c)=>(n[c.name]=c.value,n),{})}function PT(t){return t.match(/[^ \r\n\t]+/g)||[]}async function ame(t,e,r,s,a=s){switch(t.name){case"$":s(String(process.pid));break;case"#":s(String(e.args.length));break;case"@":if(t.quoted)for(let n of e.args)a(n);else for(let n of e.args){let c=PT(n);for(let f=0;f<c.length-1;++f)a(c[f]);s(c[c.length-1])}break;case"*":{let n=e.args.join(" ");if(t.quoted)s(n);else for(let c of PT(n))a(c)}break;case"PPID":s(String(process.ppid));break;case"RANDOM":s(String(Math.floor(Math.random()*32768)));break;default:{let n=parseInt(t.name,10),c,f=Number.isFinite(n);if(f?n>=0&&n<e.args.length&&(c=e.args[n]):Object.hasOwn(r.variables,t.name)?c=r.variables[t.name]:Object.hasOwn(r.environment,t.name)&&(c=r.environment[t.name]),typeof c<"u"&&t.alternativeValue?c=(await lm(t.alternativeValue,e,r)).join(" "):typeof c>"u"&&(t.defaultValue?c=(await lm(t.defaultValue,e,r)).join(" "):t.alternativeValue&&(c="")),typeof c>"u")throw f?new Kl(`Unbound argument #${n}`):new Kl(`Unbound variable "${t.name}"`);if(t.quoted)s(c);else{let p=PT(c);for(let E=0;E<p.length-1;++E)a(p[E]);let h=p[p.length-1];typeof h<"u"&&s(h)}}break}}async function Bv(t,e,r){if(t.type==="number"){if(Number.isInteger(t.value))return t.value;throw new Error(`Invalid number: "${t.value}", only integers are allowed`)}else if(t.type==="variable"){let s=[];await ame({...t,quoted:!0},e,r,n=>s.push(n));let a=Number(s.join(" "));return Number.isNaN(a)?Bv({type:"variable",name:s.join(" ")},e,r):Bv({type:"number",value:a},e,r)}else return Xdt[t.type](await Bv(t.left,e,r),await Bv(t.right,e,r))}async function lm(t,e,r){let s=new Map,a=[],n=[],c=E=>{n.push(E)},f=()=>{n.length>0&&a.push(n.join("")),n=[]},p=E=>{c(E),f()},h=(E,C,S)=>{let P=JSON.stringify({type:E,fd:C}),I=s.get(P);typeof I>"u"&&s.set(P,I=[]),I.push(S)};for(let E of t){let C=!1;switch(E.type){case"redirection":{let S=await lm(E.args,e,r);for(let P of S)h(E.subtype,E.fd,P)}break;case"argument":for(let S of E.segments)switch(S.type){case"text":c(S.text);break;case"glob":c(S.pattern),C=!0;break;case"shell":{let P=await Zdt(S.shell,e,r);if(S.quoted)c(P);else{let I=PT(P);for(let R=0;R<I.length-1;++R)p(I[R]);c(I[I.length-1])}}break;case"variable":await ame(S,e,r,c,p);break;case"arithmetic":c(String(await Bv(S.arithmetic,e,r)));break}break}if(f(),C){let S=a.pop();if(typeof S>"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let P=await e.glob.match(S,{cwd:r.cwd,baseFs:e.baseFs});if(P.length===0){let I=Zj(S)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new Kl(`No matches found: "${S}"${I}`)}for(let I of P.sort())p(I)}}if(s.size>0){let E=[];for(let[C,S]of s.entries())E.splice(E.length,0,C,String(S.length),...S);a.splice(0,0,"__ysh_set_redirects",...E,"--")}return a}function vv(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let s=ue.fromPortablePath(r.cwd),a=r.environment;typeof a.PWD<"u"&&(a={...a,PWD:s});let[n,...c]=t;if(n==="command")return Zde(c[0],c.slice(1),e,{cwd:s,env:a});let f=e.builtins.get(n);if(typeof f>"u")throw new Error(`Assertion failed: A builtin should exist for "${n}"`);return Xde(async({stdin:p,stdout:h,stderr:E})=>{let{stdin:C,stdout:S,stderr:P}=r;r.stdin=p,r.stdout=h,r.stderr=E;try{return await f(c,e,r)}finally{r.stdin=C,r.stdout=S,r.stderr=P}})}function $dt(t,e,r){return s=>{let a=new Jl.PassThrough,n=kT(t,e,xT(r,{stdin:a}));return{stdin:a,promise:n}}}function emt(t,e,r){return s=>{let a=new Jl.PassThrough,n=kT(t,e,r);return{stdin:a,promise:n}}}function rme(t,e,r,s){if(e.length===0)return t;{let a;do a=String(Math.random());while(Object.hasOwn(s.procedures,a));return s.procedures={...s.procedures},s.procedures[a]=t,vv([...e,"__ysh_run_procedure",a],r,s)}}async function nme(t,e,r){let s=t,a=null,n=null;for(;s;){let c=s.then?{...r}:r,f;switch(s.type){case"command":{let p=await lm(s.args,e,r),h=await tme(s.envs,e,r);f=s.envs.length?vv(p,e,xT(c,{environment:h})):vv(p,e,c)}break;case"subshell":{let p=await lm(s.args,e,r),h=$dt(s.subshell,e,c);f=rme(h,p,e,c)}break;case"group":{let p=await lm(s.args,e,r),h=emt(s.group,e,c);f=rme(h,p,e,c)}break;case"envs":{let p=await tme(s.envs,e,r);c.environment={...c.environment,...p},f=vv(["true"],e,c)}break}if(typeof f>"u")throw new Error("Assertion failed: An action should have been generated");if(a===null)n=bT(f,{stdin:new Mc(c.stdin),stdout:new Mc(c.stdout),stderr:new Mc(c.stderr)});else{if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(a){case"|":n=n.pipeTo(f,1);break;case"|&":n=n.pipeTo(f,3);break}}s.then?(a=s.then.type,s=s.then.chain):s=null}if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await n.run()}async function tmt(t,e,r,{background:s=!1}={}){function a(n){let c=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],f=c[n%c.length];return ime.default.hex(f)}if(s){let n=r.nextBackgroundJobIndex++,c=a(n),f=`[${n}]`,p=c(f),{stdout:h,stderr:E}=$de(r,{prefix:p});return r.backgroundJobs.push(nme(t,e,xT(r,{stdout:h,stderr:E})).catch(C=>E.write(`${C.message} +`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${p}, '${c(uE(t))}' has ended +`)})),0}return await nme(t,e,r)}async function rmt(t,e,r,{background:s=!1}={}){let a,n=f=>{a=f,r.variables["?"]=String(f)},c=async f=>{try{return await tmt(f.chain,e,r,{background:s&&typeof f.then>"u"})}catch(p){if(!(p instanceof Kl))throw p;return r.stderr.write(`${p.message} +`),1}};for(n(await c(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":a===0&&n(await c(t.then.line));break;case"||":a!==0&&n(await c(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return a}async function kT(t,e,r){let s=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:n,type:c}of t){if(a=await rmt(n,e,r,{background:c==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=s,a}function lme(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>Sv(e))||"alternativeValue"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>Sv(e));case"arithmetic":return n6(t.arithmetic);case"shell":return i6(t.shell);default:return!1}}function Sv(t){switch(t.type){case"redirection":return t.args.some(e=>Sv(e));case"argument":return t.segments.some(e=>lme(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function n6(t){switch(t.type){case"variable":return lme(t);case"number":return!1;default:return n6(t.left)||n6(t.right)}}function i6(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let s;switch(r.type){case"subshell":s=i6(r.subshell);break;case"command":s=r.envs.some(a=>a.args.some(n=>Sv(n)))||r.args.some(a=>Sv(a));break}if(s)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function BI(t,e=[],{baseFs:r=new Yn,builtins:s={},cwd:a=ue.toPortablePath(process.cwd()),env:n=process.env,stdin:c=process.stdin,stdout:f=process.stdout,stderr:p=process.stderr,variables:h={},glob:E=DT}={}){let C={};for(let[I,R]of Object.entries(n))typeof R<"u"&&(C[I]=R);let S=new Map(zdt);for(let[I,R]of Object.entries(s))S.set(I,R);c===null&&(c=new Jl.PassThrough,c.end());let P=yx(t,E);if(!i6(P)&&P.length>0&&e.length>0){let{command:I}=P[P.length-1];for(;I.then;)I=I.then.line;let R=I.chain;for(;R.then;)R=R.then.chain;R.type==="command"&&(R.args=R.args.concat(e.map(N=>({type:"argument",segments:[{type:"text",text:N}]}))))}return await kT(P,{args:e,baseFs:r,builtins:S,initialStdin:c,initialStdout:f,initialStderr:p,glob:E},{cwd:a,environment:C,exitCode:null,procedures:{},stdin:c,stdout:f,stderr:p,variables:Object.assign({},h,{"?":0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var ime,sme,Jl,ome,zdt,Xdt,wv=Ct(()=>{bt();Bc();ime=et(kE()),sme=Ie("os"),Jl=Ie("stream"),ome=Ie("timers/promises");jde();qde();Vde();r6();r6();zdt=new Map([["cd",async([t=(0,sme.homedir)(),...e],r,s)=>{let a=K.resolve(s.cwd,ue.toPortablePath(t));if(!(await r.baseFs.statPromise(a).catch(c=>{throw c.code==="ENOENT"?new Kl(`cd: no such file or directory: ${t}`):c})).isDirectory())throw new Kl(`cd: not a directory: ${t}`);return s.cwd=a,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${ue.fromPortablePath(r.cwd)} +`),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,s)=>s.exitCode=parseInt(t??s.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")} +`),0)],["sleep",async([t],e,r)=>{if(typeof t>"u")throw new Kl("sleep: missing operand");let s=Number(t);if(Number.isNaN(s))throw new Kl(`sleep: invalid time interval '${t}'`);return await(0,ome.setTimeout)(1e3*s,0)}],["unset",async(t,e,r)=>{for(let s of t)delete r.environment[s],delete r.variables[s];return 0}],["__ysh_run_procedure",async(t,e,r)=>{let s=r.procedures[t[0]];return await bT(s,{stdin:new Mc(r.stdin),stdout:new Mc(r.stdout),stderr:new Mc(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let s=r.stdin,a=r.stdout,n=r.stderr,c=[],f=[],p=[],h=0;for(;t[h]!=="--";){let C=t[h++],{type:S,fd:P}=JSON.parse(C),I=W=>{switch(P){case null:case 0:c.push(W);break;default:throw new Error(`Unsupported file descriptor: "${P}"`)}},R=W=>{switch(P){case null:case 1:f.push(W);break;case 2:p.push(W);break;default:throw new Error(`Unsupported file descriptor: "${P}"`)}},N=Number(t[h++]),U=h+N;for(let W=h;W<U;++h,++W)switch(S){case"<":I(()=>e.baseFs.createReadStream(K.resolve(r.cwd,ue.toPortablePath(t[W]))));break;case"<<<":I(()=>{let te=new Jl.PassThrough;return process.nextTick(()=>{te.write(`${t[W]} +`),te.end()}),te});break;case"<&":I(()=>eme(Number(t[W]),1,r));break;case">":case">>":{let te=K.resolve(r.cwd,ue.toPortablePath(t[W]));R(te==="/dev/null"?new Jl.Writable({autoDestroy:!0,emitClose:!0,write(ie,Ae,ce){setImmediate(ce)}}):e.baseFs.createWriteStream(te,S===">>"?{flags:"a"}:void 0))}break;case">&":R(eme(Number(t[W]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${S}"`)}}if(c.length>0){let C=new Jl.PassThrough;s=C;let S=P=>{if(P===c.length)C.end();else{let I=c[P]();I.pipe(C,{end:!1}),I.on("end",()=>{S(P+1)})}};S(0)}if(f.length>0){let C=new Jl.PassThrough;a=C;for(let S of f)C.pipe(S)}if(p.length>0){let C=new Jl.PassThrough;n=C;for(let S of p)C.pipe(S)}let E=await bT(vv(t.slice(h+1),e,r),{stdin:new Mc(s),stdout:new Mc(a),stderr:new Mc(n)}).run();return await Promise.all(f.map(C=>new Promise((S,P)=>{C.on("error",I=>{P(I)}),C.on("close",()=>{S()}),C.end()}))),await Promise.all(p.map(C=>new Promise((S,P)=>{C.on("error",I=>{P(I)}),C.on("close",()=>{S()}),C.end()}))),E}]]);Xdt={addition:(t,e)=>t+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)}});var QT=L((DXt,cme)=>{function nmt(t,e){for(var r=-1,s=t==null?0:t.length,a=Array(s);++r<s;)a[r]=e(t[r],r,t);return a}cme.exports=nmt});var gme=L((bXt,hme)=>{var ume=Gd(),imt=QT(),smt=xc(),omt=oI(),amt=1/0,fme=ume?ume.prototype:void 0,Ame=fme?fme.toString:void 0;function pme(t){if(typeof t=="string")return t;if(smt(t))return imt(t,pme)+"";if(omt(t))return Ame?Ame.call(t):"";var e=t+"";return e=="0"&&1/t==-amt?"-0":e}hme.exports=pme});var bv=L((PXt,dme)=>{var lmt=gme();function cmt(t){return t==null?"":lmt(t)}dme.exports=cmt});var s6=L((xXt,mme)=>{function umt(t,e,r){var s=-1,a=t.length;e<0&&(e=-e>a?0:a+e),r=r>a?a:r,r<0&&(r+=a),a=e>r?0:r-e>>>0,e>>>=0;for(var n=Array(a);++s<a;)n[s]=t[s+e];return n}mme.exports=umt});var Eme=L((kXt,yme)=>{var fmt=s6();function Amt(t,e,r){var s=t.length;return r=r===void 0?s:r,!e&&r>=s?t:fmt(t,e,r)}yme.exports=Amt});var o6=L((QXt,Ime)=>{var pmt="\\ud800-\\udfff",hmt="\\u0300-\\u036f",gmt="\\ufe20-\\ufe2f",dmt="\\u20d0-\\u20ff",mmt=hmt+gmt+dmt,ymt="\\ufe0e\\ufe0f",Emt="\\u200d",Imt=RegExp("["+Emt+pmt+mmt+ymt+"]");function Cmt(t){return Imt.test(t)}Ime.exports=Cmt});var wme=L((TXt,Cme)=>{function wmt(t){return t.split("")}Cme.exports=wmt});var kme=L((RXt,xme)=>{var Bme="\\ud800-\\udfff",Bmt="\\u0300-\\u036f",vmt="\\ufe20-\\ufe2f",Smt="\\u20d0-\\u20ff",Dmt=Bmt+vmt+Smt,bmt="\\ufe0e\\ufe0f",Pmt="["+Bme+"]",a6="["+Dmt+"]",l6="\\ud83c[\\udffb-\\udfff]",xmt="(?:"+a6+"|"+l6+")",vme="[^"+Bme+"]",Sme="(?:\\ud83c[\\udde6-\\uddff]){2}",Dme="[\\ud800-\\udbff][\\udc00-\\udfff]",kmt="\\u200d",bme=xmt+"?",Pme="["+bmt+"]?",Qmt="(?:"+kmt+"(?:"+[vme,Sme,Dme].join("|")+")"+Pme+bme+")*",Tmt=Pme+bme+Qmt,Rmt="(?:"+[vme+a6+"?",a6,Sme,Dme,Pmt].join("|")+")",Fmt=RegExp(l6+"(?="+l6+")|"+Rmt+Tmt,"g");function Nmt(t){return t.match(Fmt)||[]}xme.exports=Nmt});var Tme=L((FXt,Qme)=>{var Omt=wme(),Lmt=o6(),Mmt=kme();function _mt(t){return Lmt(t)?Mmt(t):Omt(t)}Qme.exports=_mt});var Fme=L((NXt,Rme)=>{var Umt=Eme(),Hmt=o6(),jmt=Tme(),qmt=bv();function Gmt(t){return function(e){e=qmt(e);var r=Hmt(e)?jmt(e):void 0,s=r?r[0]:e.charAt(0),a=r?Umt(r,1).join(""):e.slice(1);return s[t]()+a}}Rme.exports=Gmt});var Ome=L((OXt,Nme)=>{var Wmt=Fme(),Ymt=Wmt("toUpperCase");Nme.exports=Ymt});var c6=L((LXt,Lme)=>{var Vmt=bv(),Kmt=Ome();function Jmt(t){return Kmt(Vmt(t).toLowerCase())}Lme.exports=Jmt});var Mme=L((MXt,TT)=>{function zmt(){var t=0,e=1,r=2,s=3,a=4,n=5,c=6,f=7,p=8,h=9,E=10,C=11,S=12,P=13,I=14,R=15,N=16,U=17,W=0,te=1,ie=2,Ae=3,ce=4;function me(g,we){return 55296<=g.charCodeAt(we)&&g.charCodeAt(we)<=56319&&56320<=g.charCodeAt(we+1)&&g.charCodeAt(we+1)<=57343}function pe(g,we){we===void 0&&(we=0);var ye=g.charCodeAt(we);if(55296<=ye&&ye<=56319&&we<g.length-1){var fe=ye,se=g.charCodeAt(we+1);return 56320<=se&&se<=57343?(fe-55296)*1024+(se-56320)+65536:fe}if(56320<=ye&&ye<=57343&&we>=1){var fe=g.charCodeAt(we-1),se=ye;return 55296<=fe&&fe<=56319?(fe-55296)*1024+(se-56320)+65536:se}return ye}function Be(g,we,ye){var fe=[g].concat(we).concat([ye]),se=fe[fe.length-2],X=ye,De=fe.lastIndexOf(I);if(De>1&&fe.slice(1,De).every(function(j){return j==s})&&[s,P,U].indexOf(g)==-1)return ie;var Re=fe.lastIndexOf(a);if(Re>0&&fe.slice(1,Re).every(function(j){return j==a})&&[S,a].indexOf(se)==-1)return fe.filter(function(j){return j==a}).length%2==1?Ae:ce;if(se==t&&X==e)return W;if(se==r||se==t||se==e)return X==I&&we.every(function(j){return j==s})?ie:te;if(X==r||X==t||X==e)return te;if(se==c&&(X==c||X==f||X==h||X==E))return W;if((se==h||se==f)&&(X==f||X==p))return W;if((se==E||se==p)&&X==p)return W;if(X==s||X==R)return W;if(X==n)return W;if(se==S)return W;var dt=fe.indexOf(s)!=-1?fe.lastIndexOf(s)-1:fe.length-2;return[P,U].indexOf(fe[dt])!=-1&&fe.slice(dt+1,-1).every(function(j){return j==s})&&X==I||se==R&&[N,U].indexOf(X)!=-1?W:we.indexOf(a)!=-1?ie:se==a&&X==a?W:te}this.nextBreak=function(g,we){if(we===void 0&&(we=0),we<0)return 0;if(we>=g.length-1)return g.length;for(var ye=Ce(pe(g,we)),fe=[],se=we+1;se<g.length;se++)if(!me(g,se-1)){var X=Ce(pe(g,se));if(Be(ye,fe,X))return se;fe.push(X)}return g.length},this.splitGraphemes=function(g){for(var we=[],ye=0,fe;(fe=this.nextBreak(g,ye))<g.length;)we.push(g.slice(ye,fe)),ye=fe;return ye<g.length&&we.push(g.slice(ye)),we},this.iterateGraphemes=function(g){var we=0,ye={next:function(){var fe,se;return(se=this.nextBreak(g,we))<g.length?(fe=g.slice(we,se),we=se,{value:fe,done:!1}):we<g.length?(fe=g.slice(we),we=g.length,{value:fe,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(ye[Symbol.iterator]=function(){return ye}),ye},this.countGraphemes=function(g){for(var we=0,ye=0,fe;(fe=this.nextBreak(g,ye))<g.length;)ye=fe,we++;return ye<g.length&&we++,we};function Ce(g){return 1536<=g&&g<=1541||g==1757||g==1807||g==2274||g==3406||g==69821||70082<=g&&g<=70083||g==72250||72326<=g&&g<=72329||g==73030?S:g==13?t:g==10?e:0<=g&&g<=9||11<=g&&g<=12||14<=g&&g<=31||127<=g&&g<=159||g==173||g==1564||g==6158||g==8203||8206<=g&&g<=8207||g==8232||g==8233||8234<=g&&g<=8238||8288<=g&&g<=8292||g==8293||8294<=g&&g<=8303||55296<=g&&g<=57343||g==65279||65520<=g&&g<=65528||65529<=g&&g<=65531||113824<=g&&g<=113827||119155<=g&&g<=119162||g==917504||g==917505||917506<=g&&g<=917535||917632<=g&&g<=917759||918e3<=g&&g<=921599?r:768<=g&&g<=879||1155<=g&&g<=1159||1160<=g&&g<=1161||1425<=g&&g<=1469||g==1471||1473<=g&&g<=1474||1476<=g&&g<=1477||g==1479||1552<=g&&g<=1562||1611<=g&&g<=1631||g==1648||1750<=g&&g<=1756||1759<=g&&g<=1764||1767<=g&&g<=1768||1770<=g&&g<=1773||g==1809||1840<=g&&g<=1866||1958<=g&&g<=1968||2027<=g&&g<=2035||2070<=g&&g<=2073||2075<=g&&g<=2083||2085<=g&&g<=2087||2089<=g&&g<=2093||2137<=g&&g<=2139||2260<=g&&g<=2273||2275<=g&&g<=2306||g==2362||g==2364||2369<=g&&g<=2376||g==2381||2385<=g&&g<=2391||2402<=g&&g<=2403||g==2433||g==2492||g==2494||2497<=g&&g<=2500||g==2509||g==2519||2530<=g&&g<=2531||2561<=g&&g<=2562||g==2620||2625<=g&&g<=2626||2631<=g&&g<=2632||2635<=g&&g<=2637||g==2641||2672<=g&&g<=2673||g==2677||2689<=g&&g<=2690||g==2748||2753<=g&&g<=2757||2759<=g&&g<=2760||g==2765||2786<=g&&g<=2787||2810<=g&&g<=2815||g==2817||g==2876||g==2878||g==2879||2881<=g&&g<=2884||g==2893||g==2902||g==2903||2914<=g&&g<=2915||g==2946||g==3006||g==3008||g==3021||g==3031||g==3072||3134<=g&&g<=3136||3142<=g&&g<=3144||3146<=g&&g<=3149||3157<=g&&g<=3158||3170<=g&&g<=3171||g==3201||g==3260||g==3263||g==3266||g==3270||3276<=g&&g<=3277||3285<=g&&g<=3286||3298<=g&&g<=3299||3328<=g&&g<=3329||3387<=g&&g<=3388||g==3390||3393<=g&&g<=3396||g==3405||g==3415||3426<=g&&g<=3427||g==3530||g==3535||3538<=g&&g<=3540||g==3542||g==3551||g==3633||3636<=g&&g<=3642||3655<=g&&g<=3662||g==3761||3764<=g&&g<=3769||3771<=g&&g<=3772||3784<=g&&g<=3789||3864<=g&&g<=3865||g==3893||g==3895||g==3897||3953<=g&&g<=3966||3968<=g&&g<=3972||3974<=g&&g<=3975||3981<=g&&g<=3991||3993<=g&&g<=4028||g==4038||4141<=g&&g<=4144||4146<=g&&g<=4151||4153<=g&&g<=4154||4157<=g&&g<=4158||4184<=g&&g<=4185||4190<=g&&g<=4192||4209<=g&&g<=4212||g==4226||4229<=g&&g<=4230||g==4237||g==4253||4957<=g&&g<=4959||5906<=g&&g<=5908||5938<=g&&g<=5940||5970<=g&&g<=5971||6002<=g&&g<=6003||6068<=g&&g<=6069||6071<=g&&g<=6077||g==6086||6089<=g&&g<=6099||g==6109||6155<=g&&g<=6157||6277<=g&&g<=6278||g==6313||6432<=g&&g<=6434||6439<=g&&g<=6440||g==6450||6457<=g&&g<=6459||6679<=g&&g<=6680||g==6683||g==6742||6744<=g&&g<=6750||g==6752||g==6754||6757<=g&&g<=6764||6771<=g&&g<=6780||g==6783||6832<=g&&g<=6845||g==6846||6912<=g&&g<=6915||g==6964||6966<=g&&g<=6970||g==6972||g==6978||7019<=g&&g<=7027||7040<=g&&g<=7041||7074<=g&&g<=7077||7080<=g&&g<=7081||7083<=g&&g<=7085||g==7142||7144<=g&&g<=7145||g==7149||7151<=g&&g<=7153||7212<=g&&g<=7219||7222<=g&&g<=7223||7376<=g&&g<=7378||7380<=g&&g<=7392||7394<=g&&g<=7400||g==7405||g==7412||7416<=g&&g<=7417||7616<=g&&g<=7673||7675<=g&&g<=7679||g==8204||8400<=g&&g<=8412||8413<=g&&g<=8416||g==8417||8418<=g&&g<=8420||8421<=g&&g<=8432||11503<=g&&g<=11505||g==11647||11744<=g&&g<=11775||12330<=g&&g<=12333||12334<=g&&g<=12335||12441<=g&&g<=12442||g==42607||42608<=g&&g<=42610||42612<=g&&g<=42621||42654<=g&&g<=42655||42736<=g&&g<=42737||g==43010||g==43014||g==43019||43045<=g&&g<=43046||43204<=g&&g<=43205||43232<=g&&g<=43249||43302<=g&&g<=43309||43335<=g&&g<=43345||43392<=g&&g<=43394||g==43443||43446<=g&&g<=43449||g==43452||g==43493||43561<=g&&g<=43566||43569<=g&&g<=43570||43573<=g&&g<=43574||g==43587||g==43596||g==43644||g==43696||43698<=g&&g<=43700||43703<=g&&g<=43704||43710<=g&&g<=43711||g==43713||43756<=g&&g<=43757||g==43766||g==44005||g==44008||g==44013||g==64286||65024<=g&&g<=65039||65056<=g&&g<=65071||65438<=g&&g<=65439||g==66045||g==66272||66422<=g&&g<=66426||68097<=g&&g<=68099||68101<=g&&g<=68102||68108<=g&&g<=68111||68152<=g&&g<=68154||g==68159||68325<=g&&g<=68326||g==69633||69688<=g&&g<=69702||69759<=g&&g<=69761||69811<=g&&g<=69814||69817<=g&&g<=69818||69888<=g&&g<=69890||69927<=g&&g<=69931||69933<=g&&g<=69940||g==70003||70016<=g&&g<=70017||70070<=g&&g<=70078||70090<=g&&g<=70092||70191<=g&&g<=70193||g==70196||70198<=g&&g<=70199||g==70206||g==70367||70371<=g&&g<=70378||70400<=g&&g<=70401||g==70460||g==70462||g==70464||g==70487||70502<=g&&g<=70508||70512<=g&&g<=70516||70712<=g&&g<=70719||70722<=g&&g<=70724||g==70726||g==70832||70835<=g&&g<=70840||g==70842||g==70845||70847<=g&&g<=70848||70850<=g&&g<=70851||g==71087||71090<=g&&g<=71093||71100<=g&&g<=71101||71103<=g&&g<=71104||71132<=g&&g<=71133||71219<=g&&g<=71226||g==71229||71231<=g&&g<=71232||g==71339||g==71341||71344<=g&&g<=71349||g==71351||71453<=g&&g<=71455||71458<=g&&g<=71461||71463<=g&&g<=71467||72193<=g&&g<=72198||72201<=g&&g<=72202||72243<=g&&g<=72248||72251<=g&&g<=72254||g==72263||72273<=g&&g<=72278||72281<=g&&g<=72283||72330<=g&&g<=72342||72344<=g&&g<=72345||72752<=g&&g<=72758||72760<=g&&g<=72765||g==72767||72850<=g&&g<=72871||72874<=g&&g<=72880||72882<=g&&g<=72883||72885<=g&&g<=72886||73009<=g&&g<=73014||g==73018||73020<=g&&g<=73021||73023<=g&&g<=73029||g==73031||92912<=g&&g<=92916||92976<=g&&g<=92982||94095<=g&&g<=94098||113821<=g&&g<=113822||g==119141||119143<=g&&g<=119145||119150<=g&&g<=119154||119163<=g&&g<=119170||119173<=g&&g<=119179||119210<=g&&g<=119213||119362<=g&&g<=119364||121344<=g&&g<=121398||121403<=g&&g<=121452||g==121461||g==121476||121499<=g&&g<=121503||121505<=g&&g<=121519||122880<=g&&g<=122886||122888<=g&&g<=122904||122907<=g&&g<=122913||122915<=g&&g<=122916||122918<=g&&g<=122922||125136<=g&&g<=125142||125252<=g&&g<=125258||917536<=g&&g<=917631||917760<=g&&g<=917999?s:127462<=g&&g<=127487?a:g==2307||g==2363||2366<=g&&g<=2368||2377<=g&&g<=2380||2382<=g&&g<=2383||2434<=g&&g<=2435||2495<=g&&g<=2496||2503<=g&&g<=2504||2507<=g&&g<=2508||g==2563||2622<=g&&g<=2624||g==2691||2750<=g&&g<=2752||g==2761||2763<=g&&g<=2764||2818<=g&&g<=2819||g==2880||2887<=g&&g<=2888||2891<=g&&g<=2892||g==3007||3009<=g&&g<=3010||3014<=g&&g<=3016||3018<=g&&g<=3020||3073<=g&&g<=3075||3137<=g&&g<=3140||3202<=g&&g<=3203||g==3262||3264<=g&&g<=3265||3267<=g&&g<=3268||3271<=g&&g<=3272||3274<=g&&g<=3275||3330<=g&&g<=3331||3391<=g&&g<=3392||3398<=g&&g<=3400||3402<=g&&g<=3404||3458<=g&&g<=3459||3536<=g&&g<=3537||3544<=g&&g<=3550||3570<=g&&g<=3571||g==3635||g==3763||3902<=g&&g<=3903||g==3967||g==4145||4155<=g&&g<=4156||4182<=g&&g<=4183||g==4228||g==6070||6078<=g&&g<=6085||6087<=g&&g<=6088||6435<=g&&g<=6438||6441<=g&&g<=6443||6448<=g&&g<=6449||6451<=g&&g<=6456||6681<=g&&g<=6682||g==6741||g==6743||6765<=g&&g<=6770||g==6916||g==6965||g==6971||6973<=g&&g<=6977||6979<=g&&g<=6980||g==7042||g==7073||7078<=g&&g<=7079||g==7082||g==7143||7146<=g&&g<=7148||g==7150||7154<=g&&g<=7155||7204<=g&&g<=7211||7220<=g&&g<=7221||g==7393||7410<=g&&g<=7411||g==7415||43043<=g&&g<=43044||g==43047||43136<=g&&g<=43137||43188<=g&&g<=43203||43346<=g&&g<=43347||g==43395||43444<=g&&g<=43445||43450<=g&&g<=43451||43453<=g&&g<=43456||43567<=g&&g<=43568||43571<=g&&g<=43572||g==43597||g==43755||43758<=g&&g<=43759||g==43765||44003<=g&&g<=44004||44006<=g&&g<=44007||44009<=g&&g<=44010||g==44012||g==69632||g==69634||g==69762||69808<=g&&g<=69810||69815<=g&&g<=69816||g==69932||g==70018||70067<=g&&g<=70069||70079<=g&&g<=70080||70188<=g&&g<=70190||70194<=g&&g<=70195||g==70197||70368<=g&&g<=70370||70402<=g&&g<=70403||g==70463||70465<=g&&g<=70468||70471<=g&&g<=70472||70475<=g&&g<=70477||70498<=g&&g<=70499||70709<=g&&g<=70711||70720<=g&&g<=70721||g==70725||70833<=g&&g<=70834||g==70841||70843<=g&&g<=70844||g==70846||g==70849||71088<=g&&g<=71089||71096<=g&&g<=71099||g==71102||71216<=g&&g<=71218||71227<=g&&g<=71228||g==71230||g==71340||71342<=g&&g<=71343||g==71350||71456<=g&&g<=71457||g==71462||72199<=g&&g<=72200||g==72249||72279<=g&&g<=72280||g==72343||g==72751||g==72766||g==72873||g==72881||g==72884||94033<=g&&g<=94078||g==119142||g==119149?n:4352<=g&&g<=4447||43360<=g&&g<=43388?c:4448<=g&&g<=4519||55216<=g&&g<=55238?f:4520<=g&&g<=4607||55243<=g&&g<=55291?p:g==44032||g==44060||g==44088||g==44116||g==44144||g==44172||g==44200||g==44228||g==44256||g==44284||g==44312||g==44340||g==44368||g==44396||g==44424||g==44452||g==44480||g==44508||g==44536||g==44564||g==44592||g==44620||g==44648||g==44676||g==44704||g==44732||g==44760||g==44788||g==44816||g==44844||g==44872||g==44900||g==44928||g==44956||g==44984||g==45012||g==45040||g==45068||g==45096||g==45124||g==45152||g==45180||g==45208||g==45236||g==45264||g==45292||g==45320||g==45348||g==45376||g==45404||g==45432||g==45460||g==45488||g==45516||g==45544||g==45572||g==45600||g==45628||g==45656||g==45684||g==45712||g==45740||g==45768||g==45796||g==45824||g==45852||g==45880||g==45908||g==45936||g==45964||g==45992||g==46020||g==46048||g==46076||g==46104||g==46132||g==46160||g==46188||g==46216||g==46244||g==46272||g==46300||g==46328||g==46356||g==46384||g==46412||g==46440||g==46468||g==46496||g==46524||g==46552||g==46580||g==46608||g==46636||g==46664||g==46692||g==46720||g==46748||g==46776||g==46804||g==46832||g==46860||g==46888||g==46916||g==46944||g==46972||g==47e3||g==47028||g==47056||g==47084||g==47112||g==47140||g==47168||g==47196||g==47224||g==47252||g==47280||g==47308||g==47336||g==47364||g==47392||g==47420||g==47448||g==47476||g==47504||g==47532||g==47560||g==47588||g==47616||g==47644||g==47672||g==47700||g==47728||g==47756||g==47784||g==47812||g==47840||g==47868||g==47896||g==47924||g==47952||g==47980||g==48008||g==48036||g==48064||g==48092||g==48120||g==48148||g==48176||g==48204||g==48232||g==48260||g==48288||g==48316||g==48344||g==48372||g==48400||g==48428||g==48456||g==48484||g==48512||g==48540||g==48568||g==48596||g==48624||g==48652||g==48680||g==48708||g==48736||g==48764||g==48792||g==48820||g==48848||g==48876||g==48904||g==48932||g==48960||g==48988||g==49016||g==49044||g==49072||g==49100||g==49128||g==49156||g==49184||g==49212||g==49240||g==49268||g==49296||g==49324||g==49352||g==49380||g==49408||g==49436||g==49464||g==49492||g==49520||g==49548||g==49576||g==49604||g==49632||g==49660||g==49688||g==49716||g==49744||g==49772||g==49800||g==49828||g==49856||g==49884||g==49912||g==49940||g==49968||g==49996||g==50024||g==50052||g==50080||g==50108||g==50136||g==50164||g==50192||g==50220||g==50248||g==50276||g==50304||g==50332||g==50360||g==50388||g==50416||g==50444||g==50472||g==50500||g==50528||g==50556||g==50584||g==50612||g==50640||g==50668||g==50696||g==50724||g==50752||g==50780||g==50808||g==50836||g==50864||g==50892||g==50920||g==50948||g==50976||g==51004||g==51032||g==51060||g==51088||g==51116||g==51144||g==51172||g==51200||g==51228||g==51256||g==51284||g==51312||g==51340||g==51368||g==51396||g==51424||g==51452||g==51480||g==51508||g==51536||g==51564||g==51592||g==51620||g==51648||g==51676||g==51704||g==51732||g==51760||g==51788||g==51816||g==51844||g==51872||g==51900||g==51928||g==51956||g==51984||g==52012||g==52040||g==52068||g==52096||g==52124||g==52152||g==52180||g==52208||g==52236||g==52264||g==52292||g==52320||g==52348||g==52376||g==52404||g==52432||g==52460||g==52488||g==52516||g==52544||g==52572||g==52600||g==52628||g==52656||g==52684||g==52712||g==52740||g==52768||g==52796||g==52824||g==52852||g==52880||g==52908||g==52936||g==52964||g==52992||g==53020||g==53048||g==53076||g==53104||g==53132||g==53160||g==53188||g==53216||g==53244||g==53272||g==53300||g==53328||g==53356||g==53384||g==53412||g==53440||g==53468||g==53496||g==53524||g==53552||g==53580||g==53608||g==53636||g==53664||g==53692||g==53720||g==53748||g==53776||g==53804||g==53832||g==53860||g==53888||g==53916||g==53944||g==53972||g==54e3||g==54028||g==54056||g==54084||g==54112||g==54140||g==54168||g==54196||g==54224||g==54252||g==54280||g==54308||g==54336||g==54364||g==54392||g==54420||g==54448||g==54476||g==54504||g==54532||g==54560||g==54588||g==54616||g==54644||g==54672||g==54700||g==54728||g==54756||g==54784||g==54812||g==54840||g==54868||g==54896||g==54924||g==54952||g==54980||g==55008||g==55036||g==55064||g==55092||g==55120||g==55148||g==55176?h:44033<=g&&g<=44059||44061<=g&&g<=44087||44089<=g&&g<=44115||44117<=g&&g<=44143||44145<=g&&g<=44171||44173<=g&&g<=44199||44201<=g&&g<=44227||44229<=g&&g<=44255||44257<=g&&g<=44283||44285<=g&&g<=44311||44313<=g&&g<=44339||44341<=g&&g<=44367||44369<=g&&g<=44395||44397<=g&&g<=44423||44425<=g&&g<=44451||44453<=g&&g<=44479||44481<=g&&g<=44507||44509<=g&&g<=44535||44537<=g&&g<=44563||44565<=g&&g<=44591||44593<=g&&g<=44619||44621<=g&&g<=44647||44649<=g&&g<=44675||44677<=g&&g<=44703||44705<=g&&g<=44731||44733<=g&&g<=44759||44761<=g&&g<=44787||44789<=g&&g<=44815||44817<=g&&g<=44843||44845<=g&&g<=44871||44873<=g&&g<=44899||44901<=g&&g<=44927||44929<=g&&g<=44955||44957<=g&&g<=44983||44985<=g&&g<=45011||45013<=g&&g<=45039||45041<=g&&g<=45067||45069<=g&&g<=45095||45097<=g&&g<=45123||45125<=g&&g<=45151||45153<=g&&g<=45179||45181<=g&&g<=45207||45209<=g&&g<=45235||45237<=g&&g<=45263||45265<=g&&g<=45291||45293<=g&&g<=45319||45321<=g&&g<=45347||45349<=g&&g<=45375||45377<=g&&g<=45403||45405<=g&&g<=45431||45433<=g&&g<=45459||45461<=g&&g<=45487||45489<=g&&g<=45515||45517<=g&&g<=45543||45545<=g&&g<=45571||45573<=g&&g<=45599||45601<=g&&g<=45627||45629<=g&&g<=45655||45657<=g&&g<=45683||45685<=g&&g<=45711||45713<=g&&g<=45739||45741<=g&&g<=45767||45769<=g&&g<=45795||45797<=g&&g<=45823||45825<=g&&g<=45851||45853<=g&&g<=45879||45881<=g&&g<=45907||45909<=g&&g<=45935||45937<=g&&g<=45963||45965<=g&&g<=45991||45993<=g&&g<=46019||46021<=g&&g<=46047||46049<=g&&g<=46075||46077<=g&&g<=46103||46105<=g&&g<=46131||46133<=g&&g<=46159||46161<=g&&g<=46187||46189<=g&&g<=46215||46217<=g&&g<=46243||46245<=g&&g<=46271||46273<=g&&g<=46299||46301<=g&&g<=46327||46329<=g&&g<=46355||46357<=g&&g<=46383||46385<=g&&g<=46411||46413<=g&&g<=46439||46441<=g&&g<=46467||46469<=g&&g<=46495||46497<=g&&g<=46523||46525<=g&&g<=46551||46553<=g&&g<=46579||46581<=g&&g<=46607||46609<=g&&g<=46635||46637<=g&&g<=46663||46665<=g&&g<=46691||46693<=g&&g<=46719||46721<=g&&g<=46747||46749<=g&&g<=46775||46777<=g&&g<=46803||46805<=g&&g<=46831||46833<=g&&g<=46859||46861<=g&&g<=46887||46889<=g&&g<=46915||46917<=g&&g<=46943||46945<=g&&g<=46971||46973<=g&&g<=46999||47001<=g&&g<=47027||47029<=g&&g<=47055||47057<=g&&g<=47083||47085<=g&&g<=47111||47113<=g&&g<=47139||47141<=g&&g<=47167||47169<=g&&g<=47195||47197<=g&&g<=47223||47225<=g&&g<=47251||47253<=g&&g<=47279||47281<=g&&g<=47307||47309<=g&&g<=47335||47337<=g&&g<=47363||47365<=g&&g<=47391||47393<=g&&g<=47419||47421<=g&&g<=47447||47449<=g&&g<=47475||47477<=g&&g<=47503||47505<=g&&g<=47531||47533<=g&&g<=47559||47561<=g&&g<=47587||47589<=g&&g<=47615||47617<=g&&g<=47643||47645<=g&&g<=47671||47673<=g&&g<=47699||47701<=g&&g<=47727||47729<=g&&g<=47755||47757<=g&&g<=47783||47785<=g&&g<=47811||47813<=g&&g<=47839||47841<=g&&g<=47867||47869<=g&&g<=47895||47897<=g&&g<=47923||47925<=g&&g<=47951||47953<=g&&g<=47979||47981<=g&&g<=48007||48009<=g&&g<=48035||48037<=g&&g<=48063||48065<=g&&g<=48091||48093<=g&&g<=48119||48121<=g&&g<=48147||48149<=g&&g<=48175||48177<=g&&g<=48203||48205<=g&&g<=48231||48233<=g&&g<=48259||48261<=g&&g<=48287||48289<=g&&g<=48315||48317<=g&&g<=48343||48345<=g&&g<=48371||48373<=g&&g<=48399||48401<=g&&g<=48427||48429<=g&&g<=48455||48457<=g&&g<=48483||48485<=g&&g<=48511||48513<=g&&g<=48539||48541<=g&&g<=48567||48569<=g&&g<=48595||48597<=g&&g<=48623||48625<=g&&g<=48651||48653<=g&&g<=48679||48681<=g&&g<=48707||48709<=g&&g<=48735||48737<=g&&g<=48763||48765<=g&&g<=48791||48793<=g&&g<=48819||48821<=g&&g<=48847||48849<=g&&g<=48875||48877<=g&&g<=48903||48905<=g&&g<=48931||48933<=g&&g<=48959||48961<=g&&g<=48987||48989<=g&&g<=49015||49017<=g&&g<=49043||49045<=g&&g<=49071||49073<=g&&g<=49099||49101<=g&&g<=49127||49129<=g&&g<=49155||49157<=g&&g<=49183||49185<=g&&g<=49211||49213<=g&&g<=49239||49241<=g&&g<=49267||49269<=g&&g<=49295||49297<=g&&g<=49323||49325<=g&&g<=49351||49353<=g&&g<=49379||49381<=g&&g<=49407||49409<=g&&g<=49435||49437<=g&&g<=49463||49465<=g&&g<=49491||49493<=g&&g<=49519||49521<=g&&g<=49547||49549<=g&&g<=49575||49577<=g&&g<=49603||49605<=g&&g<=49631||49633<=g&&g<=49659||49661<=g&&g<=49687||49689<=g&&g<=49715||49717<=g&&g<=49743||49745<=g&&g<=49771||49773<=g&&g<=49799||49801<=g&&g<=49827||49829<=g&&g<=49855||49857<=g&&g<=49883||49885<=g&&g<=49911||49913<=g&&g<=49939||49941<=g&&g<=49967||49969<=g&&g<=49995||49997<=g&&g<=50023||50025<=g&&g<=50051||50053<=g&&g<=50079||50081<=g&&g<=50107||50109<=g&&g<=50135||50137<=g&&g<=50163||50165<=g&&g<=50191||50193<=g&&g<=50219||50221<=g&&g<=50247||50249<=g&&g<=50275||50277<=g&&g<=50303||50305<=g&&g<=50331||50333<=g&&g<=50359||50361<=g&&g<=50387||50389<=g&&g<=50415||50417<=g&&g<=50443||50445<=g&&g<=50471||50473<=g&&g<=50499||50501<=g&&g<=50527||50529<=g&&g<=50555||50557<=g&&g<=50583||50585<=g&&g<=50611||50613<=g&&g<=50639||50641<=g&&g<=50667||50669<=g&&g<=50695||50697<=g&&g<=50723||50725<=g&&g<=50751||50753<=g&&g<=50779||50781<=g&&g<=50807||50809<=g&&g<=50835||50837<=g&&g<=50863||50865<=g&&g<=50891||50893<=g&&g<=50919||50921<=g&&g<=50947||50949<=g&&g<=50975||50977<=g&&g<=51003||51005<=g&&g<=51031||51033<=g&&g<=51059||51061<=g&&g<=51087||51089<=g&&g<=51115||51117<=g&&g<=51143||51145<=g&&g<=51171||51173<=g&&g<=51199||51201<=g&&g<=51227||51229<=g&&g<=51255||51257<=g&&g<=51283||51285<=g&&g<=51311||51313<=g&&g<=51339||51341<=g&&g<=51367||51369<=g&&g<=51395||51397<=g&&g<=51423||51425<=g&&g<=51451||51453<=g&&g<=51479||51481<=g&&g<=51507||51509<=g&&g<=51535||51537<=g&&g<=51563||51565<=g&&g<=51591||51593<=g&&g<=51619||51621<=g&&g<=51647||51649<=g&&g<=51675||51677<=g&&g<=51703||51705<=g&&g<=51731||51733<=g&&g<=51759||51761<=g&&g<=51787||51789<=g&&g<=51815||51817<=g&&g<=51843||51845<=g&&g<=51871||51873<=g&&g<=51899||51901<=g&&g<=51927||51929<=g&&g<=51955||51957<=g&&g<=51983||51985<=g&&g<=52011||52013<=g&&g<=52039||52041<=g&&g<=52067||52069<=g&&g<=52095||52097<=g&&g<=52123||52125<=g&&g<=52151||52153<=g&&g<=52179||52181<=g&&g<=52207||52209<=g&&g<=52235||52237<=g&&g<=52263||52265<=g&&g<=52291||52293<=g&&g<=52319||52321<=g&&g<=52347||52349<=g&&g<=52375||52377<=g&&g<=52403||52405<=g&&g<=52431||52433<=g&&g<=52459||52461<=g&&g<=52487||52489<=g&&g<=52515||52517<=g&&g<=52543||52545<=g&&g<=52571||52573<=g&&g<=52599||52601<=g&&g<=52627||52629<=g&&g<=52655||52657<=g&&g<=52683||52685<=g&&g<=52711||52713<=g&&g<=52739||52741<=g&&g<=52767||52769<=g&&g<=52795||52797<=g&&g<=52823||52825<=g&&g<=52851||52853<=g&&g<=52879||52881<=g&&g<=52907||52909<=g&&g<=52935||52937<=g&&g<=52963||52965<=g&&g<=52991||52993<=g&&g<=53019||53021<=g&&g<=53047||53049<=g&&g<=53075||53077<=g&&g<=53103||53105<=g&&g<=53131||53133<=g&&g<=53159||53161<=g&&g<=53187||53189<=g&&g<=53215||53217<=g&&g<=53243||53245<=g&&g<=53271||53273<=g&&g<=53299||53301<=g&&g<=53327||53329<=g&&g<=53355||53357<=g&&g<=53383||53385<=g&&g<=53411||53413<=g&&g<=53439||53441<=g&&g<=53467||53469<=g&&g<=53495||53497<=g&&g<=53523||53525<=g&&g<=53551||53553<=g&&g<=53579||53581<=g&&g<=53607||53609<=g&&g<=53635||53637<=g&&g<=53663||53665<=g&&g<=53691||53693<=g&&g<=53719||53721<=g&&g<=53747||53749<=g&&g<=53775||53777<=g&&g<=53803||53805<=g&&g<=53831||53833<=g&&g<=53859||53861<=g&&g<=53887||53889<=g&&g<=53915||53917<=g&&g<=53943||53945<=g&&g<=53971||53973<=g&&g<=53999||54001<=g&&g<=54027||54029<=g&&g<=54055||54057<=g&&g<=54083||54085<=g&&g<=54111||54113<=g&&g<=54139||54141<=g&&g<=54167||54169<=g&&g<=54195||54197<=g&&g<=54223||54225<=g&&g<=54251||54253<=g&&g<=54279||54281<=g&&g<=54307||54309<=g&&g<=54335||54337<=g&&g<=54363||54365<=g&&g<=54391||54393<=g&&g<=54419||54421<=g&&g<=54447||54449<=g&&g<=54475||54477<=g&&g<=54503||54505<=g&&g<=54531||54533<=g&&g<=54559||54561<=g&&g<=54587||54589<=g&&g<=54615||54617<=g&&g<=54643||54645<=g&&g<=54671||54673<=g&&g<=54699||54701<=g&&g<=54727||54729<=g&&g<=54755||54757<=g&&g<=54783||54785<=g&&g<=54811||54813<=g&&g<=54839||54841<=g&&g<=54867||54869<=g&&g<=54895||54897<=g&&g<=54923||54925<=g&&g<=54951||54953<=g&&g<=54979||54981<=g&&g<=55007||55009<=g&&g<=55035||55037<=g&&g<=55063||55065<=g&&g<=55091||55093<=g&&g<=55119||55121<=g&&g<=55147||55149<=g&&g<=55175||55177<=g&&g<=55203?E:g==9757||g==9977||9994<=g&&g<=9997||g==127877||127938<=g&&g<=127940||g==127943||127946<=g&&g<=127948||128066<=g&&g<=128067||128070<=g&&g<=128080||g==128110||128112<=g&&g<=128120||g==128124||128129<=g&&g<=128131||128133<=g&&g<=128135||g==128170||128372<=g&&g<=128373||g==128378||g==128400||128405<=g&&g<=128406||128581<=g&&g<=128583||128587<=g&&g<=128591||g==128675||128692<=g&&g<=128694||g==128704||g==128716||129304<=g&&g<=129308||129310<=g&&g<=129311||g==129318||129328<=g&&g<=129337||129341<=g&&g<=129342||129489<=g&&g<=129501?P:127995<=g&&g<=127999?I:g==8205?R:g==9792||g==9794||9877<=g&&g<=9878||g==9992||g==10084||g==127752||g==127806||g==127859||g==127891||g==127908||g==127912||g==127979||g==127981||g==128139||128187<=g&&g<=128188||g==128295||g==128300||g==128488||g==128640||g==128658?N:128102<=g&&g<=128105?U:C}return this}typeof TT<"u"&&TT.exports&&(TT.exports=zmt)});var Ume=L((_Xt,_me)=>{var Zmt=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,RT;function Xmt(){if(RT)return RT;if(typeof Intl.Segmenter<"u"){let t=new Intl.Segmenter("en",{granularity:"grapheme"});return RT=e=>Array.from(t.segment(e),({segment:r})=>r)}else{let t=Mme(),e=new t;return RT=r=>e.splitGraphemes(r)}}_me.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let s=r-e,a="",n=0,c=0;for(;t.length>0;){let f=t.match(Zmt)||[t,t,void 0],p=Xmt()(f[1]),h=Math.min(e-n,p.length);p=p.slice(h);let E=Math.min(s-c,p.length);a+=p.slice(0,E).join(""),n+=h,c+=E,typeof f[2]<"u"&&(a+=f[2]),t=t.slice(f[0].length)}return a}});var un,Pv=Ct(()=>{un=process.env.YARN_IS_TEST_ENV?"0.0.0":"4.9.2"});function Yme(t,{configuration:e,json:r}){if(!e.get("enableMessageNames"))return"";let a=Vf(t===null?0:t);return!r&&t===null?Ut(e,a,"grey"):a}function u6(t,{configuration:e,json:r}){let s=Yme(t,{configuration:e,json:r});if(!s||t===null||t===0)return s;let a=Dr[t],n=`https://yarnpkg.com/advanced/error-codes#${s}---${a}`.toLowerCase();return KE(e,s,n)}async function vI({configuration:t,stdout:e,forceError:r},s){let a=await Ot.start({configuration:t,stdout:e,includeFooter:!1},async n=>{let c=!1,f=!1;for(let p of s)typeof p.option<"u"&&(p.error||r?(f=!0,n.reportError(50,p.message)):(c=!0,n.reportWarning(50,p.message)),p.callback?.());c&&!f&&n.reportSeparator()});return a.hasErrors()?a.exitCode():null}var Gme,FT,$mt,Hme,jme,S0,Wme,qme,eyt,tyt,NT,ryt,Ot,xv=Ct(()=>{Gme=et(Ume()),FT=et(Rd());Zx();Fc();Pv();Qc();$mt="\xB7",Hme=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],jme=80,S0=FT.default.GITHUB_ACTIONS?{start:t=>`::group::${t} +`,end:t=>`::endgroup:: +`}:FT.default.TRAVIS?{start:t=>`travis_fold:start:${t} +`,end:t=>`travis_fold:end:${t} +`}:FT.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${t} +`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,Wme=S0!==null,qme=new Date,eyt=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,tyt=t=>t,NT=tyt({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),ryt=eyt&&Object.keys(NT).find(t=>{let e=NT[t];return!(e.date&&(e.date[0]!==qme.getDate()||e.date[1]!==qme.getMonth()+1))})||"default";Ot=class extends ho{constructor({configuration:r,stdout:s,json:a=!1,forceSectionAlignment:n=!1,includeNames:c=!0,includePrefix:f=!0,includeFooter:p=!0,includeLogs:h=!a,includeInfos:E=h,includeWarnings:C=h}){super();this.uncommitted=new Set;this.warningCount=0;this.errorCount=0;this.timerFooter=[];this.startTime=Date.now();this.indent=0;this.level=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;if(HB(this,{configuration:r}),this.configuration=r,this.forceSectionAlignment=n,this.includeNames=c,this.includePrefix=f,this.includeFooter=p,this.includeInfos=E,this.includeWarnings=C,this.json=a,this.stdout=s,r.get("enableProgressBars")&&!a&&s.isTTY&&s.columns>22){let S=r.get("progressBarStyle")||ryt;if(!Object.hasOwn(NT,S))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=NT[S];let P=Math.min(this.getRecommendedLength(),80);this.progressMaxScaledSize=Math.floor(this.progressStyle.size*P/80)}}static async start(r,s){let a=new this(r),n=process.emitWarning;process.emitWarning=(c,f)=>{if(typeof c!="string"){let h=c;c=h.message,f=f??h.name}let p=typeof f<"u"?`${f}: ${c}`:c;a.reportWarning(0,p)},r.includeVersion&&a.reportInfo(0,Kd(r.configuration,`Yarn ${un}`,2));try{await s(a)}catch(c){a.reportExceptionOnce(c)}finally{await a.finalize(),process.emitWarning=n}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}getRecommendedLength(){let s=this.progressStyle!==null?this.stdout.columns-1:super.getRecommendedLength();return Math.max(40,s-12-this.indent*2)}startSectionSync({reportHeader:r,reportFooter:s,skipIfEmpty:a},n){let c={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(c):(c.action(),c.committed=!0);let f=Date.now();try{return n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(c),c.committed&&s?.(p-f)}}async startSectionPromise({reportHeader:r,reportFooter:s,skipIfEmpty:a},n){let c={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(c):(c.action(),c.committed=!0);let f=Date.now();try{return await n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(c),c.committed&&s?.(p-f)}}startTimerImpl(r,s,a){return{cb:typeof s=="function"?s:a,reportHeader:()=>{this.level+=1,this.reportInfo(null,`\u250C ${r}`),this.indent+=1,S0!==null&&!this.json&&this.includeInfos&&this.stdout.write(S0.start(r))},reportFooter:f=>{if(this.indent-=1,S0!==null&&!this.json&&this.includeInfos){this.stdout.write(S0.end(r));for(let p of this.timerFooter)p()}this.configuration.get("enableTimers")&&f>200?this.reportInfo(null,`\u2514 Completed in ${Ut(this.configuration,f,pt.DURATION)}`):this.reportInfo(null,"\u2514 Completed"),this.level-=1},skipIfEmpty:(typeof s=="function"?{}:s).skipIfEmpty}}startTimerSync(r,s,a){let{cb:n,...c}=this.startTimerImpl(r,s,a);return this.startSectionSync(c,n)}async startTimerPromise(r,s,a){let{cb:n,...c}=this.startTimerImpl(r,s,a);return this.startSectionPromise(c,n)}reportSeparator(){this.indent===0?this.writeLine(""):this.reportInfo(null,"")}reportInfo(r,s){if(!this.includeInfos)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"",c=`${this.formatPrefix(n,"blueBright")}${s}`;this.json?this.reportJson({type:"info",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:s}):this.writeLine(c)}reportWarning(r,s){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"warning",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:s}):this.writeLine(`${this.formatPrefix(n,"yellowBright")}${s}`)}reportError(r,s){this.errorCount+=1,this.timerFooter.push(()=>this.reportErrorImpl(r,s)),this.reportErrorImpl(r,s)}reportErrorImpl(r,s){this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"error",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:s}):this.writeLine(`${this.formatPrefix(n,"redBright")}${s}`,{truncate:!1})}reportFold(r,s){if(!S0)return;let a=`${S0.start(r)}${s}${S0.end(r)}`;this.timerFooter.push(()=>this.stdout.write(a))}reportProgress(r){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(r.hasProgress&&r.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let s=!1,a=Promise.resolve().then(async()=>{let c={progress:r.hasProgress?0:void 0,title:r.hasTitle?"":void 0};this.progress.set(r,{definition:c,lastScaledSize:r.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:f,title:p}of r)s||c.progress===f&&c.title===p||(c.progress=f,c.title=p,this.refreshProgress());n()}),n=()=>{s||(s=!0,this.progress.delete(r),this.refreshProgress({delta:1}))};return{...a,stop:n}}reportJson(r){this.json&&this.writeLine(`${JSON.stringify(r)}`)}async finalize(){if(!this.includeFooter)return;let r="";this.errorCount>0?r="Failed with errors":this.warningCount>0?r="Done with warnings":r="Done";let s=Ut(this.configuration,Date.now()-this.startTime,pt.DURATION),a=this.configuration.get("enableTimers")?`${r} in ${s}`:r;this.errorCount>0?this.reportError(0,a):this.warningCount>0?this.reportWarning(0,a):this.reportInfo(0,a)}writeLine(r,{truncate:s}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(r,{truncate:s})} +`),this.writeProgress()}writeLines(r,{truncate:s}={}){this.clearProgress({delta:r.length});for(let a of r)this.stdout.write(`${this.truncate(a,{truncate:s})} +`);this.writeProgress()}commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let s of r)s.committed=!0,s.action()}clearProgress({delta:r=0,clear:s=!1}){this.progressStyle!==null&&this.progress.size+r>0&&(this.stdout.write(`\x1B[${this.progress.size+r}A`),(r>0||s)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let r=Date.now();r-this.progressTime>jme&&(this.progressFrame=(this.progressFrame+1)%Hme.length,this.progressTime=r);let s=Hme[this.progressFrame];for(let a of this.progress.values()){let n="";if(typeof a.lastScaledSize<"u"){let h=this.progressStyle.chars[0].repeat(a.lastScaledSize),E=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-a.lastScaledSize);n=` ${h}${E}`}let c=this.formatName(null),f=c?`${c}: `:"",p=a.definition.title?` ${a.definition.title}`:"";this.stdout.write(`${Ut(this.configuration,"\u27A4","blueBright")} ${f}${s}${n}${p} +`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},jme)}refreshProgress({delta:r=0,force:s=!1}={}){let a=!1,n=!1;if(s||this.progress.size===0)a=!0;else for(let c of this.progress.values()){let f=typeof c.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*c.definition.progress):void 0,p=c.lastScaledSize;c.lastScaledSize=f;let h=c.lastTitle;if(c.lastTitle=c.definition.title,f!==p||(n=h!==c.definition.title)){a=!0;break}}a&&(this.clearProgress({delta:r,clear:n}),this.writeProgress())}truncate(r,{truncate:s}={}){return this.progressStyle===null&&(s=!1),typeof s>"u"&&(s=this.configuration.get("preferTruncatedLines")),s&&(r=(0,Gme.default)(r,0,this.stdout.columns-1)),r}formatName(r){return this.includeNames?Yme(r,{configuration:this.configuration,json:this.json}):""}formatPrefix(r,s){return this.includePrefix?`${Ut(this.configuration,"\u27A4",s)} ${r}${this.formatIndent()}`:""}formatNameWithHyperlink(r){return this.includeNames?u6(r,{configuration:this.configuration,json:this.json}):""}formatIndent(){return this.level>0||!this.forceSectionAlignment?"\u2502 ".repeat(this.indent):`${$mt} `}}});var In={};Vt(In,{PackageManager:()=>Jme,detectPackageManager:()=>zme,executePackageAccessibleBinary:()=>tye,executePackageScript:()=>OT,executePackageShellcode:()=>f6,executeWorkspaceAccessibleBinary:()=>cyt,executeWorkspaceLifecycleScript:()=>$me,executeWorkspaceScript:()=>Xme,getPackageAccessibleBinaries:()=>LT,getWorkspaceAccessibleBinaries:()=>eye,hasPackageScript:()=>oyt,hasWorkspaceScript:()=>A6,isNodeScript:()=>p6,makeScriptEnv:()=>kv,maybeExecuteWorkspaceLifecycleScript:()=>lyt,prepareExternalProject:()=>syt});async function D0(t,e,r,s=[]){if(process.platform==="win32"){let a=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${s.map(n=>`"${n.replace('"','""')}"`).join(" ")} %*`;await le.writeFilePromise(K.format({dir:t,name:e,ext:".cmd"}),a)}await le.writeFilePromise(K.join(t,e),`#!/bin/sh +exec "${r}" ${s.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" +`,{mode:493})}async function zme(t){let e=await Ht.tryFind(t);if(e?.packageManager){let s=bQ(e.packageManager);if(s?.name){let a=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[n]=s.reference.split(".");switch(s.name){case"yarn":return{packageManagerField:!0,packageManager:Number(n)===1?"Yarn Classic":"Yarn",reason:a};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:a};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:a}}}}let r;try{r=await le.readFilePromise(K.join(t,Er.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:le.existsSync(K.join(t,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:le.existsSync(K.join(t,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function kv({project:t,locator:e,binFolder:r,ignoreCorepack:s,lifecycleScript:a,baseEnv:n=t?.configuration.env??process.env}){let c={};for(let[E,C]of Object.entries(n))typeof C<"u"&&(c[E.toLowerCase()!=="path"?E:"PATH"]=C);let f=ue.fromPortablePath(r);c.BERRY_BIN_FOLDER=ue.fromPortablePath(f);let p=process.env.COREPACK_ROOT&&!s?ue.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([D0(r,"node",process.execPath),...un!==null?[D0(r,"run",process.execPath,[p,"run"]),D0(r,"yarn",process.execPath,[p]),D0(r,"yarnpkg",process.execPath,[p]),D0(r,"node-gyp",process.execPath,[p,"run","--top-level","node-gyp"])]:[]]),t&&(c.INIT_CWD=ue.fromPortablePath(t.configuration.startingCwd),c.PROJECT_CWD=ue.fromPortablePath(t.cwd)),c.PATH=c.PATH?`${f}${ue.delimiter}${c.PATH}`:`${f}`,c.npm_execpath=`${f}${ue.sep}yarn`,c.npm_node_execpath=`${f}${ue.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let E=t.tryWorkspaceByLocator(e),C=E?E.manifest.version??"":t.storedPackages.get(e.locatorHash).version??"";c.npm_package_name=cn(e),c.npm_package_version=C;let S;if(E)S=E.cwd;else{let P=t.storedPackages.get(e.locatorHash);if(!P)throw new Error(`Package for ${Yr(t.configuration,e)} not found in the project`);let I=t.configuration.getLinkers(),R={project:t,report:new Ot({stdout:new b0.PassThrough,configuration:t.configuration})},N=I.find(U=>U.supportsPackage(P,R));if(!N)throw new Error(`The package ${Yr(t.configuration,P)} isn't supported by any of the available linkers`);S=await N.findPackageLocation(P,R)}c.npm_package_json=ue.fromPortablePath(K.join(S,Er.manifest))}let h=un!==null?`yarn/${un}`:`yarn/${kp("@yarnpkg/core").version}-core`;return c.npm_config_user_agent=`${h} npm/? node/${process.version} ${process.platform} ${process.arch}`,a&&(c.npm_lifecycle_event=a),t&&await t.configuration.triggerHook(E=>E.setupScriptEnvironment,t,c,async(E,C,S)=>await D0(r,E,C,S)),c}async function syt(t,e,{configuration:r,report:s,workspace:a=null,locator:n=null}){await iyt(async()=>{await le.mktempPromise(async c=>{let f=K.join(c,"pack.log"),p=null,{stdout:h,stderr:E}=r.getSubprocessStreams(f,{prefix:ue.fromPortablePath(t),report:s}),C=n&&Gu(n)?tI(n):n,S=C?cl(C):"an external project";h.write(`Packing ${S} from sources +`);let P=await zme(t),I;P!==null?(h.write(`Using ${P.packageManager} for bootstrap. Reason: ${P.reason} + +`),I=P.packageManager):(h.write(`No package manager configuration detected; defaulting to Yarn + +`),I="Yarn");let R=I==="Yarn"&&!P?.packageManagerField;await le.mktempPromise(async N=>{let U=await kv({binFolder:N,ignoreCorepack:R,baseEnv:{...process.env,COREPACK_ENABLE_AUTO_PIN:"0"}}),te=new Map([["Yarn Classic",async()=>{let Ae=a!==null?["workspace",a]:[],ce=K.join(t,Er.manifest),me=await le.readFilePromise(ce),pe=await Yu(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed","--yarn-path"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(pe.code!==0)return pe.code;await le.writeFilePromise(ce,me),await le.appendFilePromise(K.join(t,".npmignore"),`/.yarn +`),h.write(` +`),delete U.NODE_ENV;let Be=await Yu("yarn",["install"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(Be.code!==0)return Be.code;h.write(` +`);let Ce=await Yu("yarn",[...Ae,"pack","--filename",ue.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return Ce.code!==0?Ce.code:0}],["Yarn",async()=>{let Ae=a!==null?["workspace",a]:[];U.YARN_ENABLE_INLINE_BUILDS="1";let ce=K.join(t,Er.lockfile);await le.existsPromise(ce)||await le.writeFilePromise(ce,"");let me=await Yu("yarn",[...Ae,"pack","--install-if-needed","--filename",ue.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return me.code!==0?me.code:0}],["npm",async()=>{if(a!==null){let we=new b0.PassThrough,ye=GE(we);we.pipe(h,{end:!1});let fe=await Yu("npm",["--version"],{cwd:t,env:U,stdin:p,stdout:we,stderr:E,end:0});if(we.end(),fe.code!==0)return h.end(),E.end(),fe.code;let se=(await ye).toString().trim();if(!eA(se,">=7.x")){let X=ba(null,"npm"),De=On(X,se),Re=On(X,">=7.x");throw new Error(`Workspaces aren't supported by ${ni(r,De)}; please upgrade to ${ni(r,Re)} (npm has been detected as the primary package manager for ${Ut(r,t,pt.PATH)})`)}}let Ae=a!==null?["--workspace",a]:[];delete U.npm_config_user_agent,delete U.npm_config_production,delete U.NPM_CONFIG_PRODUCTION,delete U.NODE_ENV;let ce=await Yu("npm",["install","--legacy-peer-deps"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(ce.code!==0)return ce.code;let me=new b0.PassThrough,pe=GE(me);me.pipe(h);let Be=await Yu("npm",["pack","--silent",...Ae],{cwd:t,env:U,stdin:p,stdout:me,stderr:E});if(Be.code!==0)return Be.code;let Ce=(await pe).toString().trim().replace(/^.*\n/s,""),g=K.resolve(t,ue.toPortablePath(Ce));return await le.renamePromise(g,e),0}]]).get(I);if(typeof te>"u")throw new Error("Assertion failed: Unsupported workflow");let ie=await te();if(!(ie===0||typeof ie>"u"))throw le.detachTemp(c),new Yt(58,`Packing the package failed (exit code ${ie}, logs can be found here: ${Ut(r,f,pt.PATH)})`)})})})}async function oyt(t,e,{project:r}){let s=r.tryWorkspaceByLocator(t);if(s!==null)return A6(s,e);let a=r.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${Yr(r.configuration,t)} not found in the project`);return await tA.openPromise(async n=>{let c=r.configuration,f=r.configuration.getLinkers(),p={project:r,report:new Ot({stdout:new b0.PassThrough,configuration:c})},h=f.find(P=>P.supportsPackage(a,p));if(!h)throw new Error(`The package ${Yr(r.configuration,a)} isn't supported by any of the available linkers`);let E=await h.findPackageLocation(a,p),C=new Sn(E,{baseFs:n});return(await Ht.find(vt.dot,{baseFs:C})).scripts.has(e)})}async function OT(t,e,r,{cwd:s,project:a,stdin:n,stdout:c,stderr:f}){return await le.mktempPromise(async p=>{let{manifest:h,env:E,cwd:C}=await Zme(t,{project:a,binFolder:p,cwd:s,lifecycleScript:e}),S=h.scripts.get(e);if(typeof S>"u")return 1;let P=async()=>await BI(S,r,{cwd:C,env:E,stdin:n,stdout:c,stderr:f});return await(await a.configuration.reduceHook(R=>R.wrapScriptExecution,P,a,t,e,{script:S,args:r,cwd:C,env:E,stdin:n,stdout:c,stderr:f}))()})}async function f6(t,e,r,{cwd:s,project:a,stdin:n,stdout:c,stderr:f}){return await le.mktempPromise(async p=>{let{env:h,cwd:E}=await Zme(t,{project:a,binFolder:p,cwd:s});return await BI(e,r,{cwd:E,env:h,stdin:n,stdout:c,stderr:f})})}async function ayt(t,{binFolder:e,cwd:r,lifecycleScript:s}){let a=await kv({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:s});return await h6(e,await eye(t)),typeof r>"u"&&(r=K.dirname(await le.realpathPromise(K.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:a,cwd:r}}async function Zme(t,{project:e,binFolder:r,cwd:s,lifecycleScript:a}){let n=e.tryWorkspaceByLocator(t);if(n!==null)return ayt(n,{binFolder:r,cwd:s,lifecycleScript:a});let c=e.storedPackages.get(t.locatorHash);if(!c)throw new Error(`Package for ${Yr(e.configuration,t)} not found in the project`);return await tA.openPromise(async f=>{let p=e.configuration,h=e.configuration.getLinkers(),E={project:e,report:new Ot({stdout:new b0.PassThrough,configuration:p})},C=h.find(N=>N.supportsPackage(c,E));if(!C)throw new Error(`The package ${Yr(e.configuration,c)} isn't supported by any of the available linkers`);let S=await kv({project:e,locator:t,binFolder:r,lifecycleScript:a});await h6(r,await LT(t,{project:e}));let P=await C.findPackageLocation(c,E),I=new Sn(P,{baseFs:f}),R=await Ht.find(vt.dot,{baseFs:I});return typeof s>"u"&&(s=P),{manifest:R,binFolder:r,env:S,cwd:s}})}async function Xme(t,e,r,{cwd:s,stdin:a,stdout:n,stderr:c}){return await OT(t.anchoredLocator,e,r,{cwd:s,project:t.project,stdin:a,stdout:n,stderr:c})}function A6(t,e){return t.manifest.scripts.has(e)}async function $me(t,e,{cwd:r,report:s}){let{configuration:a}=t.project,n=null;await le.mktempPromise(async c=>{let f=K.join(c,`${e}.log`),p=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${ue.fromPortablePath(t.cwd)}") +`,{stdout:h,stderr:E}=a.getSubprocessStreams(f,{report:s,prefix:Yr(a,t.anchoredLocator),header:p});s.reportInfo(36,`Calling the "${e}" lifecycle script`);let C=await Xme(t,e,[],{cwd:r,stdin:n,stdout:h,stderr:E});if(h.end(),E.end(),C!==0)throw le.detachTemp(c),new Yt(36,`${(0,Vme.default)(e)} script failed (exit code ${Ut(a,C,pt.NUMBER)}, logs can be found here: ${Ut(a,f,pt.PATH)}); run ${Ut(a,`yarn ${e}`,pt.CODE)} to investigate`)})}async function lyt(t,e,r){A6(t,e)&&await $me(t,e,r)}function p6(t){let e=K.extname(t);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let r=Buffer.alloc(4),s;try{s=le.openSync(t,"r")}catch{return!0}try{le.readSync(s,r,0,r.length,0)}finally{le.closeSync(s)}let a=r.readUint32BE();return!(a===3405691582||a===3489328638||a===2135247942||(a&4294901760)===1297743872)}async function LT(t,{project:e}){let r=e.configuration,s=new Map,a=e.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${Yr(r,t)} not found in the project`);let n=new b0.Writable,c=r.getLinkers(),f={project:e,report:new Ot({configuration:r,stdout:n})},p=new Set([t.locatorHash]);for(let E of a.dependencies.values()){let C=e.storedResolutions.get(E.descriptorHash);if(!C)throw new Error(`Assertion failed: The resolution (${ni(r,E)}) should have been registered`);p.add(C)}let h=await Promise.all(Array.from(p,async E=>{let C=e.storedPackages.get(E);if(!C)throw new Error(`Assertion failed: The package (${E}) should have been registered`);if(C.bin.size===0)return Yl.skip;let S=c.find(I=>I.supportsPackage(C,f));if(!S)return Yl.skip;let P=null;try{P=await S.findPackageLocation(C,f)}catch(I){if(I.code==="LOCATOR_NOT_INSTALLED")return Yl.skip;throw I}return{dependency:C,packageLocation:P}}));for(let E of h){if(E===Yl.skip)continue;let{dependency:C,packageLocation:S}=E;for(let[P,I]of C.bin){let R=K.resolve(S,I);s.set(P,[C,ue.fromPortablePath(R),p6(R)])}}return s}async function eye(t){return await LT(t.anchoredLocator,{project:t.project})}async function h6(t,e){await Promise.all(Array.from(e,([r,[,s,a]])=>a?D0(t,r,process.execPath,[s]):D0(t,r,s,[])))}async function tye(t,e,r,{cwd:s,project:a,stdin:n,stdout:c,stderr:f,nodeArgs:p=[],packageAccessibleBinaries:h}){h??=await LT(t,{project:a});let E=h.get(e);if(!E)throw new Error(`Binary not found (${e}) for ${Yr(a.configuration,t)}`);return await le.mktempPromise(async C=>{let[,S]=E,P=await kv({project:a,locator:t,binFolder:C});await h6(P.BERRY_BIN_FOLDER,h);let I=p6(ue.toPortablePath(S))?Yu(process.execPath,[...p,S,...r],{cwd:s,env:P,stdin:n,stdout:c,stderr:f}):Yu(S,r,{cwd:s,env:P,stdin:n,stdout:c,stderr:f}),R;try{R=await I}finally{await le.removePromise(P.BERRY_BIN_FOLDER)}return R.code})}async function cyt(t,e,r,{cwd:s,stdin:a,stdout:n,stderr:c,packageAccessibleBinaries:f}){return await tye(t.anchoredLocator,e,r,{project:t.project,cwd:s,stdin:a,stdout:n,stderr:c,packageAccessibleBinaries:f})}var Vme,Kme,b0,Jme,nyt,iyt,g6=Ct(()=>{bt();bt();rA();wv();Vme=et(c6()),Kme=et(Od()),b0=Ie("stream");sI();Fc();xv();Pv();hT();Qc();kc();Np();Yo();Jme=(a=>(a.Yarn1="Yarn Classic",a.Yarn2="Yarn",a.Npm="npm",a.Pnpm="pnpm",a))(Jme||{});nyt=2,iyt=(0,Kme.default)(nyt)});var SI=L((o$t,nye)=>{"use strict";var rye=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);nye.exports=t=>t?Object.keys(t).map(e=>[rye.has(e)?rye.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var bI=L((a$t,Aye)=>{"use strict";var iye=typeof process=="object"&&process?process:{stdout:null,stderr:null},uyt=Ie("events"),sye=Ie("stream"),oye=Ie("string_decoder").StringDecoder,jp=Symbol("EOF"),qp=Symbol("maybeEmitEnd"),P0=Symbol("emittedEnd"),MT=Symbol("emittingEnd"),Qv=Symbol("emittedError"),_T=Symbol("closed"),aye=Symbol("read"),UT=Symbol("flush"),lye=Symbol("flushChunk"),fl=Symbol("encoding"),Gp=Symbol("decoder"),HT=Symbol("flowing"),Tv=Symbol("paused"),DI=Symbol("resume"),Ks=Symbol("bufferLength"),d6=Symbol("bufferPush"),m6=Symbol("bufferShift"),zo=Symbol("objectMode"),Zo=Symbol("destroyed"),y6=Symbol("emitData"),cye=Symbol("emitEnd"),E6=Symbol("emitEnd2"),Wp=Symbol("async"),Rv=t=>Promise.resolve().then(t),uye=global._MP_NO_ITERATOR_SYMBOLS_!=="1",fyt=uye&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),Ayt=uye&&Symbol.iterator||Symbol("iterator not implemented"),pyt=t=>t==="end"||t==="finish"||t==="prefinish",hyt=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,gyt=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),jT=class{constructor(e,r,s){this.src=e,this.dest=r,this.opts=s,this.ondrain=()=>e[DI](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},I6=class extends jT{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,r,s){super(e,r,s),this.proxyErrors=a=>r.emit("error",a),e.on("error",this.proxyErrors)}};Aye.exports=class fye extends sye{constructor(e){super(),this[HT]=!1,this[Tv]=!1,this.pipes=[],this.buffer=[],this[zo]=e&&e.objectMode||!1,this[zo]?this[fl]=null:this[fl]=e&&e.encoding||null,this[fl]==="buffer"&&(this[fl]=null),this[Wp]=e&&!!e.async||!1,this[Gp]=this[fl]?new oye(this[fl]):null,this[jp]=!1,this[P0]=!1,this[MT]=!1,this[_T]=!1,this[Qv]=null,this.writable=!0,this.readable=!0,this[Ks]=0,this[Zo]=!1}get bufferLength(){return this[Ks]}get encoding(){return this[fl]}set encoding(e){if(this[zo])throw new Error("cannot set encoding in objectMode");if(this[fl]&&e!==this[fl]&&(this[Gp]&&this[Gp].lastNeed||this[Ks]))throw new Error("cannot change encoding");this[fl]!==e&&(this[Gp]=e?new oye(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[Gp].write(r)))),this[fl]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[zo]}set objectMode(e){this[zo]=this[zo]||!!e}get async(){return this[Wp]}set async(e){this[Wp]=this[Wp]||!!e}write(e,r,s){if(this[jp])throw new Error("write after end");if(this[Zo])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(s=r,r="utf8"),r||(r="utf8");let a=this[Wp]?Rv:n=>n();return!this[zo]&&!Buffer.isBuffer(e)&&(gyt(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):hyt(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[zo]?(this.flowing&&this[Ks]!==0&&this[UT](!0),this.flowing?this.emit("data",e):this[d6](e),this[Ks]!==0&&this.emit("readable"),s&&a(s),this.flowing):e.length?(typeof e=="string"&&!(r===this[fl]&&!this[Gp].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[fl]&&(e=this[Gp].write(e)),this.flowing&&this[Ks]!==0&&this[UT](!0),this.flowing?this.emit("data",e):this[d6](e),this[Ks]!==0&&this.emit("readable"),s&&a(s),this.flowing):(this[Ks]!==0&&this.emit("readable"),s&&a(s),this.flowing)}read(e){if(this[Zo])return null;if(this[Ks]===0||e===0||e>this[Ks])return this[qp](),null;this[zo]&&(e=null),this.buffer.length>1&&!this[zo]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[Ks])]);let r=this[aye](e||null,this.buffer[0]);return this[qp](),r}[aye](e,r){return e===r.length||e===null?this[m6]():(this.buffer[0]=r.slice(e),r=r.slice(0,e),this[Ks]-=e),this.emit("data",r),!this.buffer.length&&!this[jp]&&this.emit("drain"),r}end(e,r,s){return typeof e=="function"&&(s=e,e=null),typeof r=="function"&&(s=r,r="utf8"),e&&this.write(e,r),s&&this.once("end",s),this[jp]=!0,this.writable=!1,(this.flowing||!this[Tv])&&this[qp](),this}[DI](){this[Zo]||(this[Tv]=!1,this[HT]=!0,this.emit("resume"),this.buffer.length?this[UT]():this[jp]?this[qp]():this.emit("drain"))}resume(){return this[DI]()}pause(){this[HT]=!1,this[Tv]=!0}get destroyed(){return this[Zo]}get flowing(){return this[HT]}get paused(){return this[Tv]}[d6](e){this[zo]?this[Ks]+=1:this[Ks]+=e.length,this.buffer.push(e)}[m6](){return this.buffer.length&&(this[zo]?this[Ks]-=1:this[Ks]-=this.buffer[0].length),this.buffer.shift()}[UT](e){do;while(this[lye](this[m6]()));!e&&!this.buffer.length&&!this[jp]&&this.emit("drain")}[lye](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,r){if(this[Zo])return;let s=this[P0];return r=r||{},e===iye.stdout||e===iye.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,s?r.end&&e.end():(this.pipes.push(r.proxyErrors?new I6(this,e,r):new jT(this,e,r)),this[Wp]?Rv(()=>this[DI]()):this[DI]()),e}unpipe(e){let r=this.pipes.find(s=>s.dest===e);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let s=super.on(e,r);return e==="data"&&!this.pipes.length&&!this.flowing?this[DI]():e==="readable"&&this[Ks]!==0?super.emit("readable"):pyt(e)&&this[P0]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[Qv]&&(this[Wp]?Rv(()=>r.call(this,this[Qv])):r.call(this,this[Qv])),s}get emittedEnd(){return this[P0]}[qp](){!this[MT]&&!this[P0]&&!this[Zo]&&this.buffer.length===0&&this[jp]&&(this[MT]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[_T]&&this.emit("close"),this[MT]=!1)}emit(e,r,...s){if(e!=="error"&&e!=="close"&&e!==Zo&&this[Zo])return;if(e==="data")return r?this[Wp]?Rv(()=>this[y6](r)):this[y6](r):!1;if(e==="end")return this[cye]();if(e==="close"){if(this[_T]=!0,!this[P0]&&!this[Zo])return;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(e==="error"){this[Qv]=r;let n=super.emit("error",r);return this[qp](),n}else if(e==="resume"){let n=super.emit("resume");return this[qp](),n}else if(e==="finish"||e==="prefinish"){let n=super.emit(e);return this.removeAllListeners(e),n}let a=super.emit(e,r,...s);return this[qp](),a}[y6](e){for(let s of this.pipes)s.dest.write(e)===!1&&this.pause();let r=super.emit("data",e);return this[qp](),r}[cye](){this[P0]||(this[P0]=!0,this.readable=!1,this[Wp]?Rv(()=>this[E6]()):this[E6]())}[E6](){if(this[Gp]){let r=this[Gp].end();if(r){for(let s of this.pipes)s.dest.write(r);super.emit("data",r)}}for(let r of this.pipes)r.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[zo]||(e.dataLength=0);let r=this.promise();return this.on("data",s=>{e.push(s),this[zo]||(e.dataLength+=s.length)}),r.then(()=>e)}concat(){return this[zo]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[zo]?Promise.reject(new Error("cannot concat in objectMode")):this[fl]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(Zo,()=>r(new Error("stream destroyed"))),this.on("error",s=>r(s)),this.on("end",()=>e())})}[fyt](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[jp])return Promise.resolve({done:!0});let s=null,a=null,n=h=>{this.removeListener("data",c),this.removeListener("end",f),a(h)},c=h=>{this.removeListener("error",n),this.removeListener("end",f),this.pause(),s({value:h,done:!!this[jp]})},f=()=>{this.removeListener("error",n),this.removeListener("data",c),s({done:!0})},p=()=>n(new Error("stream destroyed"));return new Promise((h,E)=>{a=E,s=h,this.once(Zo,p),this.once("error",n),this.once("end",f),this.once("data",c)})}}}[Ayt](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[Zo]?(e?this.emit("error",e):this.emit(Zo),this):(this[Zo]=!0,this.buffer.length=0,this[Ks]=0,typeof this.close=="function"&&!this[_T]&&this.close(),e?this.emit("error",e):this.emit(Zo),this)}static isStream(e){return!!e&&(e instanceof fye||e instanceof sye||e instanceof uyt&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var hye=L((l$t,pye)=>{var dyt=Ie("zlib").constants||{ZLIB_VERNUM:4736};pye.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},dyt))});var O6=L(zl=>{"use strict";var S6=Ie("assert"),x0=Ie("buffer").Buffer,mye=Ie("zlib"),cm=zl.constants=hye(),myt=bI(),gye=x0.concat,um=Symbol("_superWrite"),xI=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},yyt=Symbol("opts"),Fv=Symbol("flushFlag"),dye=Symbol("finishFlushFlag"),N6=Symbol("fullFlushFlag"),Ii=Symbol("handle"),qT=Symbol("onError"),PI=Symbol("sawError"),C6=Symbol("level"),w6=Symbol("strategy"),B6=Symbol("ended"),c$t=Symbol("_defaultFullFlush"),GT=class extends myt{constructor(e,r){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[PI]=!1,this[B6]=!1,this[yyt]=e,this[Fv]=e.flush,this[dye]=e.finishFlush;try{this[Ii]=new mye[r](e)}catch(s){throw new xI(s)}this[qT]=s=>{this[PI]||(this[PI]=!0,this.close(),this.emit("error",s))},this[Ii].on("error",s=>this[qT](new xI(s))),this.once("end",()=>this.close)}close(){this[Ii]&&(this[Ii].close(),this[Ii]=null,this.emit("close"))}reset(){if(!this[PI])return S6(this[Ii],"zlib binding closed"),this[Ii].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[N6]),this.write(Object.assign(x0.alloc(0),{[Fv]:e})))}end(e,r,s){return e&&this.write(e,r),this.flush(this[dye]),this[B6]=!0,super.end(null,null,s)}get ended(){return this[B6]}write(e,r,s){if(typeof r=="function"&&(s=r,r="utf8"),typeof e=="string"&&(e=x0.from(e,r)),this[PI])return;S6(this[Ii],"zlib binding closed");let a=this[Ii]._handle,n=a.close;a.close=()=>{};let c=this[Ii].close;this[Ii].close=()=>{},x0.concat=h=>h;let f;try{let h=typeof e[Fv]=="number"?e[Fv]:this[Fv];f=this[Ii]._processChunk(e,h),x0.concat=gye}catch(h){x0.concat=gye,this[qT](new xI(h))}finally{this[Ii]&&(this[Ii]._handle=a,a.close=n,this[Ii].close=c,this[Ii].removeAllListeners("error"))}this[Ii]&&this[Ii].on("error",h=>this[qT](new xI(h)));let p;if(f)if(Array.isArray(f)&&f.length>0){p=this[um](x0.from(f[0]));for(let h=1;h<f.length;h++)p=this[um](f[h])}else p=this[um](x0.from(f));return s&&s(),p}[um](e){return super.write(e)}},Yp=class extends GT{constructor(e,r){e=e||{},e.flush=e.flush||cm.Z_NO_FLUSH,e.finishFlush=e.finishFlush||cm.Z_FINISH,super(e,r),this[N6]=cm.Z_FULL_FLUSH,this[C6]=e.level,this[w6]=e.strategy}params(e,r){if(!this[PI]){if(!this[Ii])throw new Error("cannot switch params when binding is closed");if(!this[Ii].params)throw new Error("not supported in this implementation");if(this[C6]!==e||this[w6]!==r){this.flush(cm.Z_SYNC_FLUSH),S6(this[Ii],"zlib binding closed");let s=this[Ii].flush;this[Ii].flush=(a,n)=>{this.flush(a),n()};try{this[Ii].params(e,r)}finally{this[Ii].flush=s}this[Ii]&&(this[C6]=e,this[w6]=r)}}}},D6=class extends Yp{constructor(e){super(e,"Deflate")}},b6=class extends Yp{constructor(e){super(e,"Inflate")}},v6=Symbol("_portable"),P6=class extends Yp{constructor(e){super(e,"Gzip"),this[v6]=e&&!!e.portable}[um](e){return this[v6]?(this[v6]=!1,e[9]=255,super[um](e)):super[um](e)}},x6=class extends Yp{constructor(e){super(e,"Gunzip")}},k6=class extends Yp{constructor(e){super(e,"DeflateRaw")}},Q6=class extends Yp{constructor(e){super(e,"InflateRaw")}},T6=class extends Yp{constructor(e){super(e,"Unzip")}},WT=class extends GT{constructor(e,r){e=e||{},e.flush=e.flush||cm.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||cm.BROTLI_OPERATION_FINISH,super(e,r),this[N6]=cm.BROTLI_OPERATION_FLUSH}},R6=class extends WT{constructor(e){super(e,"BrotliCompress")}},F6=class extends WT{constructor(e){super(e,"BrotliDecompress")}};zl.Deflate=D6;zl.Inflate=b6;zl.Gzip=P6;zl.Gunzip=x6;zl.DeflateRaw=k6;zl.InflateRaw=Q6;zl.Unzip=T6;typeof mye.BrotliCompress=="function"?(zl.BrotliCompress=R6,zl.BrotliDecompress=F6):zl.BrotliCompress=zl.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var kI=L((A$t,yye)=>{var Eyt=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;yye.exports=Eyt!=="win32"?t=>t:t=>t&&t.replace(/\\/g,"/")});var YT=L((h$t,Eye)=>{"use strict";var Iyt=bI(),L6=kI(),M6=Symbol("slurp");Eye.exports=class extends Iyt{constructor(e,r,s){switch(super(),this.pause(),this.extended=r,this.globalExtended=s,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=L6(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=L6(e.linkpath),this.uname=e.uname,this.gname=e.gname,r&&this[M6](r),s&&this[M6](s,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");let s=this.remain,a=this.blockRemain;return this.remain=Math.max(0,s-r),this.blockRemain=Math.max(0,a-r),this.ignore?!0:s>=r?super.write(e):super.write(e.slice(0,s))}[M6](e,r){for(let s in e)e[s]!==null&&e[s]!==void 0&&!(r&&s==="path")&&(this[s]=s==="path"||s==="linkpath"?L6(e[s]):e[s])}}});var _6=L(VT=>{"use strict";VT.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);VT.code=new Map(Array.from(VT.name).map(t=>[t[1],t[0]]))});var Bye=L((d$t,wye)=>{"use strict";var Cyt=(t,e)=>{if(Number.isSafeInteger(t))t<0?Byt(t,e):wyt(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},wyt=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},Byt=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var s=e.length;s>1;s--){var a=t&255;t=Math.floor(t/256),r?e[s-1]=Iye(a):a===0?e[s-1]=0:(r=!0,e[s-1]=Cye(a))}},vyt=t=>{let e=t[0],r=e===128?Dyt(t.slice(1,t.length)):e===255?Syt(t):null;if(r===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(r))throw Error("parsed number outside of javascript safe integer range");return r},Syt=t=>{for(var e=t.length,r=0,s=!1,a=e-1;a>-1;a--){var n=t[a],c;s?c=Iye(n):n===0?c=n:(s=!0,c=Cye(n)),c!==0&&(r-=c*Math.pow(256,e-a-1))}return r},Dyt=t=>{for(var e=t.length,r=0,s=e-1;s>-1;s--){var a=t[s];a!==0&&(r+=a*Math.pow(256,e-s-1))}return r},Iye=t=>(255^t)&255,Cye=t=>(255^t)+1&255;wye.exports={encode:Cyt,parse:vyt}});var TI=L((m$t,Sye)=>{"use strict";var U6=_6(),QI=Ie("path").posix,vye=Bye(),H6=Symbol("slurp"),Zl=Symbol("type"),G6=class{constructor(e,r,s,a){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Zl]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,s,a):e&&this.set(e)}decode(e,r,s,a){if(r||(r=0),!e||!(e.length>=r+512))throw new Error("need 512 bytes for header");if(this.path=fm(e,r,100),this.mode=k0(e,r+100,8),this.uid=k0(e,r+108,8),this.gid=k0(e,r+116,8),this.size=k0(e,r+124,12),this.mtime=j6(e,r+136,12),this.cksum=k0(e,r+148,12),this[H6](s),this[H6](a,!0),this[Zl]=fm(e,r+156,1),this[Zl]===""&&(this[Zl]="0"),this[Zl]==="0"&&this.path.substr(-1)==="/"&&(this[Zl]="5"),this[Zl]==="5"&&(this.size=0),this.linkpath=fm(e,r+157,100),e.slice(r+257,r+265).toString()==="ustar\x0000")if(this.uname=fm(e,r+265,32),this.gname=fm(e,r+297,32),this.devmaj=k0(e,r+329,8),this.devmin=k0(e,r+337,8),e[r+475]!==0){let c=fm(e,r+345,155);this.path=c+"/"+this.path}else{let c=fm(e,r+345,130);c&&(this.path=c+"/"+this.path),this.atime=j6(e,r+476,12),this.ctime=j6(e,r+488,12)}let n=8*32;for(let c=r;c<r+148;c++)n+=e[c];for(let c=r+156;c<r+512;c++)n+=e[c];this.cksumValid=n===this.cksum,this.cksum===null&&n===8*32&&(this.nullBlock=!0)}[H6](e,r){for(let s in e)e[s]!==null&&e[s]!==void 0&&!(r&&s==="path")&&(this[s]=e[s])}encode(e,r){if(e||(e=this.block=Buffer.alloc(512),r=0),r||(r=0),!(e.length>=r+512))throw new Error("need 512 bytes for header");let s=this.ctime||this.atime?130:155,a=byt(this.path||"",s),n=a[0],c=a[1];this.needPax=a[2],this.needPax=Am(e,r,100,n)||this.needPax,this.needPax=Q0(e,r+100,8,this.mode)||this.needPax,this.needPax=Q0(e,r+108,8,this.uid)||this.needPax,this.needPax=Q0(e,r+116,8,this.gid)||this.needPax,this.needPax=Q0(e,r+124,12,this.size)||this.needPax,this.needPax=q6(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[Zl].charCodeAt(0),this.needPax=Am(e,r+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",r+257,8),this.needPax=Am(e,r+265,32,this.uname)||this.needPax,this.needPax=Am(e,r+297,32,this.gname)||this.needPax,this.needPax=Q0(e,r+329,8,this.devmaj)||this.needPax,this.needPax=Q0(e,r+337,8,this.devmin)||this.needPax,this.needPax=Am(e,r+345,s,c)||this.needPax,e[r+475]!==0?this.needPax=Am(e,r+345,155,c)||this.needPax:(this.needPax=Am(e,r+345,130,c)||this.needPax,this.needPax=q6(e,r+476,12,this.atime)||this.needPax,this.needPax=q6(e,r+488,12,this.ctime)||this.needPax);let f=8*32;for(let p=r;p<r+148;p++)f+=e[p];for(let p=r+156;p<r+512;p++)f+=e[p];return this.cksum=f,Q0(e,r+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let r in e)e[r]!==null&&e[r]!==void 0&&(this[r]=e[r])}get type(){return U6.name.get(this[Zl])||this[Zl]}get typeKey(){return this[Zl]}set type(e){U6.code.has(e)?this[Zl]=U6.code.get(e):this[Zl]=e}},byt=(t,e)=>{let s=t,a="",n,c=QI.parse(t).root||".";if(Buffer.byteLength(s)<100)n=[s,a,!1];else{a=QI.dirname(s),s=QI.basename(s);do Buffer.byteLength(s)<=100&&Buffer.byteLength(a)<=e?n=[s,a,!1]:Buffer.byteLength(s)>100&&Buffer.byteLength(a)<=e?n=[s.substr(0,99),a,!0]:(s=QI.join(QI.basename(a),s),a=QI.dirname(a));while(a!==c&&!n);n||(n=[t.substr(0,99),"",!0])}return n},fm=(t,e,r)=>t.slice(e,e+r).toString("utf8").replace(/\0.*/,""),j6=(t,e,r)=>Pyt(k0(t,e,r)),Pyt=t=>t===null?null:new Date(t*1e3),k0=(t,e,r)=>t[e]&128?vye.parse(t.slice(e,e+r)):kyt(t,e,r),xyt=t=>isNaN(t)?null:t,kyt=(t,e,r)=>xyt(parseInt(t.slice(e,e+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),Qyt={12:8589934591,8:2097151},Q0=(t,e,r,s)=>s===null?!1:s>Qyt[r]||s<0?(vye.encode(s,t.slice(e,e+r)),!0):(Tyt(t,e,r,s),!1),Tyt=(t,e,r,s)=>t.write(Ryt(s,r),e,r,"ascii"),Ryt=(t,e)=>Fyt(Math.floor(t).toString(8),e),Fyt=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",q6=(t,e,r,s)=>s===null?!1:Q0(t,e,r,s.getTime()/1e3),Nyt=new Array(156).join("\0"),Am=(t,e,r,s)=>s===null?!1:(t.write(s+Nyt,e,r,"utf8"),s.length!==Buffer.byteLength(s)||s.length>r);Sye.exports=G6});var KT=L((y$t,Dye)=>{"use strict";var Oyt=TI(),Lyt=Ie("path"),Nv=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e==="")return null;let r=Buffer.byteLength(e),s=512*Math.ceil(1+r/512),a=Buffer.allocUnsafe(s);for(let n=0;n<512;n++)a[n]=0;new Oyt({path:("PaxHeader/"+Lyt.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(a),a.write(e,512,r,"utf8");for(let n=r+512;n<a.length;n++)a[n]=0;return a}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(e){if(this[e]===null||this[e]===void 0)return"";let r=this[e]instanceof Date?this[e].getTime()/1e3:this[e],s=" "+(e==="dev"||e==="ino"||e==="nlink"?"SCHILY.":"")+e+"="+r+` +`,a=Buffer.byteLength(s),n=Math.floor(Math.log(a)/Math.log(10))+1;return a+n>=Math.pow(10,n)&&(n+=1),n+a+s}};Nv.parse=(t,e,r)=>new Nv(Myt(_yt(t),e),r);var Myt=(t,e)=>e?Object.keys(t).reduce((r,s)=>(r[s]=t[s],r),e):t,_yt=t=>t.replace(/\n$/,"").split(` +`).reduce(Uyt,Object.create(null)),Uyt=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let s=e.split("="),a=s.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!a)return t;let n=s.join("=");return t[a]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(a)?new Date(n*1e3):/^[0-9]+$/.test(n)?+n:n,t};Dye.exports=Nv});var RI=L((E$t,bye)=>{bye.exports=t=>{let e=t.length-1,r=-1;for(;e>-1&&t.charAt(e)==="/";)r=e,e--;return r===-1?t:t.slice(0,r)}});var JT=L((I$t,Pye)=>{"use strict";Pye.exports=t=>class extends t{warn(e,r,s={}){this.file&&(s.file=this.file),this.cwd&&(s.cwd=this.cwd),s.code=r instanceof Error&&r.code||e,s.tarCode=e,!this.strict&&s.recoverable!==!1?(r instanceof Error&&(s=Object.assign(r,s),r=r.message),this.emit("warn",s.tarCode,r,s)):r instanceof Error?this.emit("error",Object.assign(r,s)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),s))}}});var Y6=L((w$t,xye)=>{"use strict";var zT=["|","<",">","?",":"],W6=zT.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),Hyt=new Map(zT.map((t,e)=>[t,W6[e]])),jyt=new Map(W6.map((t,e)=>[t,zT[e]]));xye.exports={encode:t=>zT.reduce((e,r)=>e.split(r).join(Hyt.get(r)),t),decode:t=>W6.reduce((e,r)=>e.split(r).join(jyt.get(r)),t)}});var V6=L((B$t,Qye)=>{var{isAbsolute:qyt,parse:kye}=Ie("path").win32;Qye.exports=t=>{let e="",r=kye(t);for(;qyt(t)||r.root;){let s=t.charAt(0)==="/"&&t.slice(0,4)!=="//?/"?"/":r.root;t=t.substr(s.length),e+=s,r=kye(t)}return[e,t]}});var Rye=L((v$t,Tye)=>{"use strict";Tye.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&-19),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var nq=L((b$t,Vye)=>{"use strict";var Uye=bI(),Hye=KT(),jye=TI(),sA=Ie("fs"),Fye=Ie("path"),iA=kI(),Gyt=RI(),qye=(t,e)=>e?(t=iA(t).replace(/^\.(\/|$)/,""),Gyt(e)+"/"+t):iA(t),Wyt=16*1024*1024,Nye=Symbol("process"),Oye=Symbol("file"),Lye=Symbol("directory"),J6=Symbol("symlink"),Mye=Symbol("hardlink"),Ov=Symbol("header"),ZT=Symbol("read"),z6=Symbol("lstat"),XT=Symbol("onlstat"),Z6=Symbol("onread"),X6=Symbol("onreadlink"),$6=Symbol("openfile"),eq=Symbol("onopenfile"),T0=Symbol("close"),$T=Symbol("mode"),tq=Symbol("awaitDrain"),K6=Symbol("ondrain"),oA=Symbol("prefix"),_ye=Symbol("hadError"),Gye=JT(),Yyt=Y6(),Wye=V6(),Yye=Rye(),eR=Gye(class extends Uye{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=iA(e),this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||Wyt,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=iA(r.cwd||process.cwd()),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,this.prefix=r.prefix?iA(r.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let s=!1;if(!this.preservePaths){let[a,n]=Wye(this.path);a&&(this.path=n,s=a)}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=Yyt.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=iA(r.absolute||Fye.resolve(this.cwd,e)),this.path===""&&(this.path="./"),s&&this.warn("TAR_ENTRY_INFO",`stripping ${s} from absolute path`,{entry:this,path:s+this.path}),this.statCache.has(this.absolute)?this[XT](this.statCache.get(this.absolute)):this[z6]()}emit(e,...r){return e==="error"&&(this[_ye]=!0),super.emit(e,...r)}[z6](){sA.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[XT](r)})}[XT](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=Kyt(e),this.emit("stat",e),this[Nye]()}[Nye](){switch(this.type){case"File":return this[Oye]();case"Directory":return this[Lye]();case"SymbolicLink":return this[J6]();default:return this.end()}}[$T](e){return Yye(e,this.type==="Directory",this.portable)}[oA](e){return qye(e,this.prefix)}[Ov](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new jye({path:this[oA](this.path),linkpath:this.type==="Link"?this[oA](this.linkpath):this.linkpath,mode:this[$T](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new Hye({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[oA](this.path),linkpath:this.type==="Link"?this[oA](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[Lye](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[Ov](),this.end()}[J6](){sA.readlink(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[X6](r)})}[X6](e){this.linkpath=iA(e),this[Ov](),this.end()}[Mye](e){this.type="Link",this.linkpath=iA(Fye.relative(this.cwd,e)),this.stat.size=0,this[Ov](),this.end()}[Oye](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[Mye](r)}this.linkCache.set(e,this.absolute)}if(this[Ov](),this.stat.size===0)return this.end();this[$6]()}[$6](){sA.open(this.absolute,"r",(e,r)=>{if(e)return this.emit("error",e);this[eq](r)})}[eq](e){if(this.fd=e,this[_ye])return this[T0]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let r=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(r),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[ZT]()}[ZT](){let{fd:e,buf:r,offset:s,length:a,pos:n}=this;sA.read(e,r,s,a,n,(c,f)=>{if(c)return this[T0](()=>this.emit("error",c));this[Z6](f)})}[T0](e){sA.close(this.fd,e)}[Z6](e){if(e<=0&&this.remain>0){let a=new Error("encountered unexpected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[T0](()=>this.emit("error",a))}if(e>this.remain){let a=new Error("did not encounter expected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[T0](()=>this.emit("error",a))}if(e===this.remain)for(let a=e;a<this.length&&e<this.blockRemain;a++)this.buf[a+this.offset]=0,e++,this.remain++;let r=this.offset===0&&e===this.buf.length?this.buf:this.buf.slice(this.offset,this.offset+e);this.write(r)?this[K6]():this[tq](()=>this[K6]())}[tq](e){this.once("drain",e)}write(e){if(this.blockRemain<e.length){let r=new Error("writing more data than expected");return r.path=this.absolute,this.emit("error",r)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.length,super.write(e)}[K6](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[T0](e=>e?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[ZT]()}}),rq=class extends eR{[z6](){this[XT](sA.lstatSync(this.absolute))}[J6](){this[X6](sA.readlinkSync(this.absolute))}[$6](){this[eq](sA.openSync(this.absolute,"r"))}[ZT](){let e=!0;try{let{fd:r,buf:s,offset:a,length:n,pos:c}=this,f=sA.readSync(r,s,a,n,c);this[Z6](f),e=!1}finally{if(e)try{this[T0](()=>{})}catch{}}}[tq](e){e()}[T0](e){sA.closeSync(this.fd),e()}},Vyt=Gye(class extends Uye{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=r.prefix||null,this.path=iA(e.path),this.mode=this[$T](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=iA(e.linkpath),typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let s=!1;if(!this.preservePaths){let[a,n]=Wye(this.path);a&&(this.path=n,s=a)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new jye({path:this[oA](this.path),linkpath:this.type==="Link"?this[oA](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),s&&this.warn("TAR_ENTRY_INFO",`stripping ${s} from absolute path`,{entry:this,path:s+this.path}),this.header.encode()&&!this.noPax&&super.write(new Hye({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[oA](this.path),linkpath:this.type==="Link"?this[oA](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[oA](e){return qye(e,this.prefix)}[$T](e){return Yye(e,this.type==="Directory",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});eR.Sync=rq;eR.Tar=Vyt;var Kyt=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported";Vye.exports=eR});var cR=L((x$t,eEe)=>{"use strict";var aR=class{constructor(e,r){this.path=e||"./",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},Jyt=bI(),zyt=O6(),Zyt=YT(),Aq=nq(),Xyt=Aq.Sync,$yt=Aq.Tar,eEt=ak(),Kye=Buffer.alloc(1024),nR=Symbol("onStat"),tR=Symbol("ended"),aA=Symbol("queue"),FI=Symbol("current"),pm=Symbol("process"),rR=Symbol("processing"),Jye=Symbol("processJob"),lA=Symbol("jobs"),iq=Symbol("jobDone"),iR=Symbol("addFSEntry"),zye=Symbol("addTarEntry"),lq=Symbol("stat"),cq=Symbol("readdir"),sR=Symbol("onreaddir"),oR=Symbol("pipe"),Zye=Symbol("entry"),sq=Symbol("entryOpt"),uq=Symbol("writeEntryClass"),$ye=Symbol("write"),oq=Symbol("ondrain"),lR=Ie("fs"),Xye=Ie("path"),tEt=JT(),aq=kI(),pq=tEt(class extends Jyt{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=aq(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[uq]=Aq,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new zyt.Gzip(e.gzip),this.zip.on("data",r=>super.write(r)),this.zip.on("end",r=>super.end()),this.zip.on("drain",r=>this[oq]()),this.on("resume",r=>this.zip.resume())):this.on("drain",this[oq]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:r=>!0,this[aA]=new eEt,this[lA]=0,this.jobs=+e.jobs||4,this[rR]=!1,this[tR]=!1}[$ye](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[tR]=!0,this[pm](),this}write(e){if(this[tR])throw new Error("write after end");return e instanceof Zyt?this[zye](e):this[iR](e),this.flowing}[zye](e){let r=aq(Xye.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let s=new aR(e.path,r,!1);s.entry=new $yt(e,this[sq](s)),s.entry.on("end",a=>this[iq](s)),this[lA]+=1,this[aA].push(s)}this[pm]()}[iR](e){let r=aq(Xye.resolve(this.cwd,e));this[aA].push(new aR(e,r)),this[pm]()}[lq](e){e.pending=!0,this[lA]+=1;let r=this.follow?"stat":"lstat";lR[r](e.absolute,(s,a)=>{e.pending=!1,this[lA]-=1,s?this.emit("error",s):this[nR](e,a)})}[nR](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[pm]()}[cq](e){e.pending=!0,this[lA]+=1,lR.readdir(e.absolute,(r,s)=>{if(e.pending=!1,this[lA]-=1,r)return this.emit("error",r);this[sR](e,s)})}[sR](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[pm]()}[pm](){if(!this[rR]){this[rR]=!0;for(let e=this[aA].head;e!==null&&this[lA]<this.jobs;e=e.next)if(this[Jye](e.value),e.value.ignore){let r=e.next;this[aA].removeNode(e),e.next=r}this[rR]=!1,this[tR]&&!this[aA].length&&this[lA]===0&&(this.zip?this.zip.end(Kye):(super.write(Kye),super.end()))}}get[FI](){return this[aA]&&this[aA].head&&this[aA].head.value}[iq](e){this[aA].shift(),this[lA]-=1,this[pm]()}[Jye](e){if(!e.pending){if(e.entry){e===this[FI]&&!e.piped&&this[oR](e);return}if(e.stat||(this.statCache.has(e.absolute)?this[nR](e,this.statCache.get(e.absolute)):this[lq](e)),!!e.stat&&!e.ignore&&!(!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir&&(this.readdirCache.has(e.absolute)?this[sR](e,this.readdirCache.get(e.absolute)):this[cq](e),!e.readdir))){if(e.entry=this[Zye](e),!e.entry){e.ignore=!0;return}e===this[FI]&&!e.piped&&this[oR](e)}}}[sq](e){return{onwarn:(r,s,a)=>this.warn(r,s,a),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[Zye](e){this[lA]+=1;try{return new this[uq](e.path,this[sq](e)).on("end",()=>this[iq](e)).on("error",r=>this.emit("error",r))}catch(r){this.emit("error",r)}}[oq](){this[FI]&&this[FI].entry&&this[FI].entry.resume()}[oR](e){e.piped=!0,e.readdir&&e.readdir.forEach(a=>{let n=e.path,c=n==="./"?"":n.replace(/\/*$/,"/");this[iR](c+a)});let r=e.entry,s=this.zip;s?r.on("data",a=>{s.write(a)||r.pause()}):r.on("data",a=>{super.write(a)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),fq=class extends pq{constructor(e){super(e),this[uq]=Xyt}pause(){}resume(){}[lq](e){let r=this.follow?"statSync":"lstatSync";this[nR](e,lR[r](e.absolute))}[cq](e,r){this[sR](e,lR.readdirSync(e.absolute))}[oR](e){let r=e.entry,s=this.zip;e.readdir&&e.readdir.forEach(a=>{let n=e.path,c=n==="./"?"":n.replace(/\/*$/,"/");this[iR](c+a)}),s?r.on("data",a=>{s.write(a)}):r.on("data",a=>{super[$ye](a)})}};pq.Sync=fq;eEe.exports=pq});var jI=L(Mv=>{"use strict";var rEt=bI(),nEt=Ie("events").EventEmitter,Al=Ie("fs"),dq=Al.writev;if(!dq){let t=process.binding("fs"),e=t.FSReqWrap||t.FSReqCallback;dq=(r,s,a,n)=>{let c=(p,h)=>n(p,h,s),f=new e;f.oncomplete=c,t.writeBuffers(r,s,a,f)}}var UI=Symbol("_autoClose"),Vu=Symbol("_close"),Lv=Symbol("_ended"),ii=Symbol("_fd"),tEe=Symbol("_finished"),F0=Symbol("_flags"),hq=Symbol("_flush"),mq=Symbol("_handleChunk"),yq=Symbol("_makeBuf"),hR=Symbol("_mode"),uR=Symbol("_needDrain"),MI=Symbol("_onerror"),HI=Symbol("_onopen"),gq=Symbol("_onread"),OI=Symbol("_onwrite"),N0=Symbol("_open"),Vp=Symbol("_path"),hm=Symbol("_pos"),cA=Symbol("_queue"),LI=Symbol("_read"),rEe=Symbol("_readSize"),R0=Symbol("_reading"),fR=Symbol("_remain"),nEe=Symbol("_size"),AR=Symbol("_write"),NI=Symbol("_writing"),pR=Symbol("_defaultFlag"),_I=Symbol("_errored"),gR=class extends rEt{constructor(e,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[_I]=!1,this[ii]=typeof r.fd=="number"?r.fd:null,this[Vp]=e,this[rEe]=r.readSize||16*1024*1024,this[R0]=!1,this[nEe]=typeof r.size=="number"?r.size:1/0,this[fR]=this[nEe],this[UI]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[ii]=="number"?this[LI]():this[N0]()}get fd(){return this[ii]}get path(){return this[Vp]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[N0](){Al.open(this[Vp],"r",(e,r)=>this[HI](e,r))}[HI](e,r){e?this[MI](e):(this[ii]=r,this.emit("open",r),this[LI]())}[yq](){return Buffer.allocUnsafe(Math.min(this[rEe],this[fR]))}[LI](){if(!this[R0]){this[R0]=!0;let e=this[yq]();if(e.length===0)return process.nextTick(()=>this[gq](null,0,e));Al.read(this[ii],e,0,e.length,null,(r,s,a)=>this[gq](r,s,a))}}[gq](e,r,s){this[R0]=!1,e?this[MI](e):this[mq](r,s)&&this[LI]()}[Vu](){if(this[UI]&&typeof this[ii]=="number"){let e=this[ii];this[ii]=null,Al.close(e,r=>r?this.emit("error",r):this.emit("close"))}}[MI](e){this[R0]=!0,this[Vu](),this.emit("error",e)}[mq](e,r){let s=!1;return this[fR]-=e,e>0&&(s=super.write(e<r.length?r.slice(0,e):r)),(e===0||this[fR]<=0)&&(s=!1,this[Vu](),super.end()),s}emit(e,r){switch(e){case"prefinish":case"finish":break;case"drain":typeof this[ii]=="number"&&this[LI]();break;case"error":return this[_I]?void 0:(this[_I]=!0,super.emit(e,r));default:return super.emit(e,r)}}},Eq=class extends gR{[N0](){let e=!0;try{this[HI](null,Al.openSync(this[Vp],"r")),e=!1}finally{e&&this[Vu]()}}[LI](){let e=!0;try{if(!this[R0]){this[R0]=!0;do{let r=this[yq](),s=r.length===0?0:Al.readSync(this[ii],r,0,r.length,null);if(!this[mq](s,r))break}while(!0);this[R0]=!1}e=!1}finally{e&&this[Vu]()}}[Vu](){if(this[UI]&&typeof this[ii]=="number"){let e=this[ii];this[ii]=null,Al.closeSync(e),this.emit("close")}}},dR=class extends nEt{constructor(e,r){r=r||{},super(r),this.readable=!1,this.writable=!0,this[_I]=!1,this[NI]=!1,this[Lv]=!1,this[uR]=!1,this[cA]=[],this[Vp]=e,this[ii]=typeof r.fd=="number"?r.fd:null,this[hR]=r.mode===void 0?438:r.mode,this[hm]=typeof r.start=="number"?r.start:null,this[UI]=typeof r.autoClose=="boolean"?r.autoClose:!0;let s=this[hm]!==null?"r+":"w";this[pR]=r.flags===void 0,this[F0]=this[pR]?s:r.flags,this[ii]===null&&this[N0]()}emit(e,r){if(e==="error"){if(this[_I])return;this[_I]=!0}return super.emit(e,r)}get fd(){return this[ii]}get path(){return this[Vp]}[MI](e){this[Vu](),this[NI]=!0,this.emit("error",e)}[N0](){Al.open(this[Vp],this[F0],this[hR],(e,r)=>this[HI](e,r))}[HI](e,r){this[pR]&&this[F0]==="r+"&&e&&e.code==="ENOENT"?(this[F0]="w",this[N0]()):e?this[MI](e):(this[ii]=r,this.emit("open",r),this[hq]())}end(e,r){return e&&this.write(e,r),this[Lv]=!0,!this[NI]&&!this[cA].length&&typeof this[ii]=="number"&&this[OI](null,0),this}write(e,r){return typeof e=="string"&&(e=Buffer.from(e,r)),this[Lv]?(this.emit("error",new Error("write() after end()")),!1):this[ii]===null||this[NI]||this[cA].length?(this[cA].push(e),this[uR]=!0,!1):(this[NI]=!0,this[AR](e),!0)}[AR](e){Al.write(this[ii],e,0,e.length,this[hm],(r,s)=>this[OI](r,s))}[OI](e,r){e?this[MI](e):(this[hm]!==null&&(this[hm]+=r),this[cA].length?this[hq]():(this[NI]=!1,this[Lv]&&!this[tEe]?(this[tEe]=!0,this[Vu](),this.emit("finish")):this[uR]&&(this[uR]=!1,this.emit("drain"))))}[hq](){if(this[cA].length===0)this[Lv]&&this[OI](null,0);else if(this[cA].length===1)this[AR](this[cA].pop());else{let e=this[cA];this[cA]=[],dq(this[ii],e,this[hm],(r,s)=>this[OI](r,s))}}[Vu](){if(this[UI]&&typeof this[ii]=="number"){let e=this[ii];this[ii]=null,Al.close(e,r=>r?this.emit("error",r):this.emit("close"))}}},Iq=class extends dR{[N0](){let e;if(this[pR]&&this[F0]==="r+")try{e=Al.openSync(this[Vp],this[F0],this[hR])}catch(r){if(r.code==="ENOENT")return this[F0]="w",this[N0]();throw r}else e=Al.openSync(this[Vp],this[F0],this[hR]);this[HI](null,e)}[Vu](){if(this[UI]&&typeof this[ii]=="number"){let e=this[ii];this[ii]=null,Al.closeSync(e),this.emit("close")}}[AR](e){let r=!0;try{this[OI](null,Al.writeSync(this[ii],e,0,e.length,this[hm])),r=!1}finally{if(r)try{this[Vu]()}catch{}}}};Mv.ReadStream=gR;Mv.ReadStreamSync=Eq;Mv.WriteStream=dR;Mv.WriteStreamSync=Iq});var BR=L((T$t,uEe)=>{"use strict";var iEt=JT(),sEt=TI(),oEt=Ie("events"),aEt=ak(),lEt=1024*1024,cEt=YT(),iEe=KT(),uEt=O6(),Cq=Buffer.from([31,139]),_c=Symbol("state"),gm=Symbol("writeEntry"),Kp=Symbol("readEntry"),wq=Symbol("nextEntry"),sEe=Symbol("processEntry"),Uc=Symbol("extendedHeader"),_v=Symbol("globalExtendedHeader"),O0=Symbol("meta"),oEe=Symbol("emitMeta"),Pi=Symbol("buffer"),Jp=Symbol("queue"),dm=Symbol("ended"),aEe=Symbol("emittedEnd"),mm=Symbol("emit"),pl=Symbol("unzip"),mR=Symbol("consumeChunk"),yR=Symbol("consumeChunkSub"),Bq=Symbol("consumeBody"),lEe=Symbol("consumeMeta"),cEe=Symbol("consumeHeader"),ER=Symbol("consuming"),vq=Symbol("bufferConcat"),Sq=Symbol("maybeEnd"),Uv=Symbol("writing"),L0=Symbol("aborted"),IR=Symbol("onDone"),ym=Symbol("sawValidEntry"),CR=Symbol("sawNullBlock"),wR=Symbol("sawEOF"),fEt=t=>!0;uEe.exports=iEt(class extends oEt{constructor(e){e=e||{},super(e),this.file=e.file||"",this[ym]=null,this.on(IR,r=>{(this[_c]==="begin"||this[ym]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(IR,e.ondone):this.on(IR,r=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||lEt,this.filter=typeof e.filter=="function"?e.filter:fEt,this.writable=!0,this.readable=!1,this[Jp]=new aEt,this[Pi]=null,this[Kp]=null,this[gm]=null,this[_c]="begin",this[O0]="",this[Uc]=null,this[_v]=null,this[dm]=!1,this[pl]=null,this[L0]=!1,this[CR]=!1,this[wR]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[cEe](e,r){this[ym]===null&&(this[ym]=!1);let s;try{s=new sEt(e,r,this[Uc],this[_v])}catch(a){return this.warn("TAR_ENTRY_INVALID",a)}if(s.nullBlock)this[CR]?(this[wR]=!0,this[_c]==="begin"&&(this[_c]="header"),this[mm]("eof")):(this[CR]=!0,this[mm]("nullBlock"));else if(this[CR]=!1,!s.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:s});else if(!s.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:s});else{let a=s.type;if(/^(Symbolic)?Link$/.test(a)&&!s.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:s});else if(!/^(Symbolic)?Link$/.test(a)&&s.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:s});else{let n=this[gm]=new cEt(s,this[Uc],this[_v]);if(!this[ym])if(n.remain){let c=()=>{n.invalid||(this[ym]=!0)};n.on("end",c)}else this[ym]=!0;n.meta?n.size>this.maxMetaEntrySize?(n.ignore=!0,this[mm]("ignoredEntry",n),this[_c]="ignore",n.resume()):n.size>0&&(this[O0]="",n.on("data",c=>this[O0]+=c),this[_c]="meta"):(this[Uc]=null,n.ignore=n.ignore||!this.filter(n.path,n),n.ignore?(this[mm]("ignoredEntry",n),this[_c]=n.remain?"ignore":"header",n.resume()):(n.remain?this[_c]="body":(this[_c]="header",n.end()),this[Kp]?this[Jp].push(n):(this[Jp].push(n),this[wq]())))}}}[sEe](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[Kp]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",s=>this[wq]()),r=!1)):(this[Kp]=null,r=!1),r}[wq](){do;while(this[sEe](this[Jp].shift()));if(!this[Jp].length){let e=this[Kp];!e||e.flowing||e.size===e.remain?this[Uv]||this.emit("drain"):e.once("drain",s=>this.emit("drain"))}}[Bq](e,r){let s=this[gm],a=s.blockRemain,n=a>=e.length&&r===0?e:e.slice(r,r+a);return s.write(n),s.blockRemain||(this[_c]="header",this[gm]=null,s.end()),n.length}[lEe](e,r){let s=this[gm],a=this[Bq](e,r);return this[gm]||this[oEe](s),a}[mm](e,r,s){!this[Jp].length&&!this[Kp]?this.emit(e,r,s):this[Jp].push([e,r,s])}[oEe](e){switch(this[mm]("meta",this[O0]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[Uc]=iEe.parse(this[O0],this[Uc],!1);break;case"GlobalExtendedHeader":this[_v]=iEe.parse(this[O0],this[_v],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[Uc]=this[Uc]||Object.create(null),this[Uc].path=this[O0].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[Uc]=this[Uc]||Object.create(null),this[Uc].linkpath=this[O0].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[L0]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[L0])return;if(this[pl]===null&&e){if(this[Pi]&&(e=Buffer.concat([this[Pi],e]),this[Pi]=null),e.length<Cq.length)return this[Pi]=e,!0;for(let s=0;this[pl]===null&&s<Cq.length;s++)e[s]!==Cq[s]&&(this[pl]=!1);if(this[pl]===null){let s=this[dm];this[dm]=!1,this[pl]=new uEt.Unzip,this[pl].on("data",n=>this[mR](n)),this[pl].on("error",n=>this.abort(n)),this[pl].on("end",n=>{this[dm]=!0,this[mR]()}),this[Uv]=!0;let a=this[pl][s?"end":"write"](e);return this[Uv]=!1,a}}this[Uv]=!0,this[pl]?this[pl].write(e):this[mR](e),this[Uv]=!1;let r=this[Jp].length?!1:this[Kp]?this[Kp].flowing:!0;return!r&&!this[Jp].length&&this[Kp].once("drain",s=>this.emit("drain")),r}[vq](e){e&&!this[L0]&&(this[Pi]=this[Pi]?Buffer.concat([this[Pi],e]):e)}[Sq](){if(this[dm]&&!this[aEe]&&!this[L0]&&!this[ER]){this[aEe]=!0;let e=this[gm];if(e&&e.blockRemain){let r=this[Pi]?this[Pi].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[Pi]&&e.write(this[Pi]),e.end()}this[mm](IR)}}[mR](e){if(this[ER])this[vq](e);else if(!e&&!this[Pi])this[Sq]();else{if(this[ER]=!0,this[Pi]){this[vq](e);let r=this[Pi];this[Pi]=null,this[yR](r)}else this[yR](e);for(;this[Pi]&&this[Pi].length>=512&&!this[L0]&&!this[wR];){let r=this[Pi];this[Pi]=null,this[yR](r)}this[ER]=!1}(!this[Pi]||this[dm])&&this[Sq]()}[yR](e){let r=0,s=e.length;for(;r+512<=s&&!this[L0]&&!this[wR];)switch(this[_c]){case"begin":case"header":this[cEe](e,r),r+=512;break;case"ignore":case"body":r+=this[Bq](e,r);break;case"meta":r+=this[lEe](e,r);break;default:throw new Error("invalid state: "+this[_c])}r<s&&(this[Pi]?this[Pi]=Buffer.concat([e.slice(r),this[Pi]]):this[Pi]=e.slice(r))}end(e){this[L0]||(this[pl]?this[pl].end(e):(this[dm]=!0,this.write(e)))}})});var vR=L((R$t,hEe)=>{"use strict";var AEt=SI(),AEe=BR(),qI=Ie("fs"),pEt=jI(),fEe=Ie("path"),Dq=RI();hEe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let s=AEt(t);if(s.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!s.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&gEt(s,e),s.noResume||hEt(s),s.file&&s.sync?dEt(s):s.file?mEt(s,r):pEe(s)};var hEt=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},gEt=(t,e)=>{let r=new Map(e.map(n=>[Dq(n),!0])),s=t.filter,a=(n,c)=>{let f=c||fEe.parse(n).root||".",p=n===f?!1:r.has(n)?r.get(n):a(fEe.dirname(n),f);return r.set(n,p),p};t.filter=s?(n,c)=>s(n,c)&&a(Dq(n)):n=>a(Dq(n))},dEt=t=>{let e=pEe(t),r=t.file,s=!0,a;try{let n=qI.statSync(r),c=t.maxReadSize||16*1024*1024;if(n.size<c)e.end(qI.readFileSync(r));else{let f=0,p=Buffer.allocUnsafe(c);for(a=qI.openSync(r,"r");f<n.size;){let h=qI.readSync(a,p,0,c,f);f+=h,e.write(p.slice(0,h))}e.end()}s=!1}finally{if(s&&a)try{qI.closeSync(a)}catch{}}},mEt=(t,e)=>{let r=new AEe(t),s=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((c,f)=>{r.on("error",f),r.on("end",c),qI.stat(a,(p,h)=>{if(p)f(p);else{let E=new pEt.ReadStream(a,{readSize:s,size:h.size});E.on("error",f),E.pipe(r)}})});return e?n.then(e,e):n},pEe=t=>new AEe(t)});var IEe=L((F$t,EEe)=>{"use strict";var yEt=SI(),SR=cR(),gEe=jI(),dEe=vR(),mEe=Ie("path");EEe.exports=(t,e,r)=>{if(typeof e=="function"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let s=yEt(t);if(s.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!s.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return s.file&&s.sync?EEt(s,e):s.file?IEt(s,e,r):s.sync?CEt(s,e):wEt(s,e)};var EEt=(t,e)=>{let r=new SR.Sync(t),s=new gEe.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(s),yEe(r,e)},IEt=(t,e,r)=>{let s=new SR(t),a=new gEe.WriteStream(t.file,{mode:t.mode||438});s.pipe(a);let n=new Promise((c,f)=>{a.on("error",f),a.on("close",c),s.on("error",f)});return bq(s,e),r?n.then(r,r):n},yEe=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?dEe({file:mEe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:s=>t.add(s)}):t.add(r)}),t.end()},bq=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return dEe({file:mEe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:s=>t.add(s)}).then(s=>bq(t,e));t.add(r)}t.end()},CEt=(t,e)=>{let r=new SR.Sync(t);return yEe(r,e),r},wEt=(t,e)=>{let r=new SR(t);return bq(r,e),r}});var Pq=L((N$t,bEe)=>{"use strict";var BEt=SI(),CEe=cR(),Xl=Ie("fs"),wEe=jI(),BEe=vR(),vEe=Ie("path"),SEe=TI();bEe.exports=(t,e,r)=>{let s=BEt(t);if(!s.file)throw new TypeError("file is required");if(s.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),s.sync?vEt(s,e):DEt(s,e,r)};var vEt=(t,e)=>{let r=new CEe.Sync(t),s=!0,a,n;try{try{a=Xl.openSync(t.file,"r+")}catch(p){if(p.code==="ENOENT")a=Xl.openSync(t.file,"w+");else throw p}let c=Xl.fstatSync(a),f=Buffer.alloc(512);e:for(n=0;n<c.size;n+=512){for(let E=0,C=0;E<512;E+=C){if(C=Xl.readSync(a,f,E,f.length-E,n+E),n===0&&f[0]===31&&f[1]===139)throw new Error("cannot append to compressed archives");if(!C)break e}let p=new SEe(f);if(!p.cksumValid)break;let h=512*Math.ceil(p.size/512);if(n+h+512>c.size)break;n+=h,t.mtimeCache&&t.mtimeCache.set(p.path,p.mtime)}s=!1,SEt(t,r,n,a,e)}finally{if(s)try{Xl.closeSync(a)}catch{}}},SEt=(t,e,r,s,a)=>{let n=new wEe.WriteStreamSync(t.file,{fd:s,start:r});e.pipe(n),bEt(e,a)},DEt=(t,e,r)=>{e=Array.from(e);let s=new CEe(t),a=(c,f,p)=>{let h=(I,R)=>{I?Xl.close(c,N=>p(I)):p(null,R)},E=0;if(f===0)return h(null,0);let C=0,S=Buffer.alloc(512),P=(I,R)=>{if(I)return h(I);if(C+=R,C<512&&R)return Xl.read(c,S,C,S.length-C,E+C,P);if(E===0&&S[0]===31&&S[1]===139)return h(new Error("cannot append to compressed archives"));if(C<512)return h(null,E);let N=new SEe(S);if(!N.cksumValid)return h(null,E);let U=512*Math.ceil(N.size/512);if(E+U+512>f||(E+=U+512,E>=f))return h(null,E);t.mtimeCache&&t.mtimeCache.set(N.path,N.mtime),C=0,Xl.read(c,S,0,512,E,P)};Xl.read(c,S,0,512,E,P)},n=new Promise((c,f)=>{s.on("error",f);let p="r+",h=(E,C)=>{if(E&&E.code==="ENOENT"&&p==="r+")return p="w+",Xl.open(t.file,p,h);if(E)return f(E);Xl.fstat(C,(S,P)=>{if(S)return Xl.close(C,()=>f(S));a(C,P.size,(I,R)=>{if(I)return f(I);let N=new wEe.WriteStream(t.file,{fd:C,start:R});s.pipe(N),N.on("error",f),N.on("close",c),DEe(s,e)})})};Xl.open(t.file,p,h)});return r?n.then(r,r):n},bEt=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?BEe({file:vEe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:s=>t.add(s)}):t.add(r)}),t.end()},DEe=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return BEe({file:vEe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:s=>t.add(s)}).then(s=>DEe(t,e));t.add(r)}t.end()}});var xEe=L((O$t,PEe)=>{"use strict";var PEt=SI(),xEt=Pq();PEe.exports=(t,e,r)=>{let s=PEt(t);if(!s.file)throw new TypeError("file is required");if(s.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),kEt(s),xEt(s,e,r)};var kEt=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,s)=>e(r,s)&&!(t.mtimeCache.get(r)>s.mtime):(r,s)=>!(t.mtimeCache.get(r)>s.mtime)}});var TEe=L((L$t,QEe)=>{var{promisify:kEe}=Ie("util"),M0=Ie("fs"),QEt=t=>{if(!t)t={mode:511,fs:M0};else if(typeof t=="object")t={mode:511,fs:M0,...t};else if(typeof t=="number")t={mode:t,fs:M0};else if(typeof t=="string")t={mode:parseInt(t,8),fs:M0};else throw new TypeError("invalid options argument");return t.mkdir=t.mkdir||t.fs.mkdir||M0.mkdir,t.mkdirAsync=kEe(t.mkdir),t.stat=t.stat||t.fs.stat||M0.stat,t.statAsync=kEe(t.stat),t.statSync=t.statSync||t.fs.statSync||M0.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||M0.mkdirSync,t};QEe.exports=QEt});var FEe=L((M$t,REe)=>{var TEt=process.platform,{resolve:REt,parse:FEt}=Ie("path"),NEt=t=>{if(/\0/.test(t))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:t,code:"ERR_INVALID_ARG_VALUE"});if(t=REt(t),TEt==="win32"){let e=/[*|"<>?:]/,{root:r}=FEt(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error("Illegal characters in path."),{path:t,code:"EINVAL"})}return t};REe.exports=NEt});var _Ee=L((_$t,MEe)=>{var{dirname:NEe}=Ie("path"),OEe=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(s=>s.isDirectory()?r:void 0,s=>s.code==="ENOENT"?OEe(t,NEe(e),e):void 0),LEe=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(s){return s.code==="ENOENT"?LEe(t,NEe(e),e):void 0}};MEe.exports={findMade:OEe,findMadeSync:LEe}});var Qq=L((U$t,HEe)=>{var{dirname:UEe}=Ie("path"),xq=(t,e,r)=>{e.recursive=!1;let s=UEe(t);return s===t?e.mkdirAsync(t,e).catch(a=>{if(a.code!=="EISDIR")throw a}):e.mkdirAsync(t,e).then(()=>r||t,a=>{if(a.code==="ENOENT")return xq(s,e).then(n=>xq(t,e,n));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;return e.statAsync(t).then(n=>{if(n.isDirectory())return r;throw a},()=>{throw a})})},kq=(t,e,r)=>{let s=UEe(t);if(e.recursive=!1,s===t)try{return e.mkdirSync(t,e)}catch(a){if(a.code!=="EISDIR")throw a;return}try{return e.mkdirSync(t,e),r||t}catch(a){if(a.code==="ENOENT")return kq(t,e,kq(s,e,r));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;try{if(!e.statSync(t).isDirectory())throw a}catch{throw a}}};HEe.exports={mkdirpManual:xq,mkdirpManualSync:kq}});var GEe=L((H$t,qEe)=>{var{dirname:jEe}=Ie("path"),{findMade:OEt,findMadeSync:LEt}=_Ee(),{mkdirpManual:MEt,mkdirpManualSync:_Et}=Qq(),UEt=(t,e)=>(e.recursive=!0,jEe(t)===t?e.mkdirAsync(t,e):OEt(e,t).then(s=>e.mkdirAsync(t,e).then(()=>s).catch(a=>{if(a.code==="ENOENT")return MEt(t,e);throw a}))),HEt=(t,e)=>{if(e.recursive=!0,jEe(t)===t)return e.mkdirSync(t,e);let s=LEt(e,t);try{return e.mkdirSync(t,e),s}catch(a){if(a.code==="ENOENT")return _Et(t,e);throw a}};qEe.exports={mkdirpNative:UEt,mkdirpNativeSync:HEt}});var KEe=L((j$t,VEe)=>{var WEe=Ie("fs"),jEt=process.version,Tq=jEt.replace(/^v/,"").split("."),YEe=+Tq[0]>10||+Tq[0]==10&&+Tq[1]>=12,qEt=YEe?t=>t.mkdir===WEe.mkdir:()=>!1,GEt=YEe?t=>t.mkdirSync===WEe.mkdirSync:()=>!1;VEe.exports={useNative:qEt,useNativeSync:GEt}});var eIe=L((q$t,$Ee)=>{var GI=TEe(),WI=FEe(),{mkdirpNative:JEe,mkdirpNativeSync:zEe}=GEe(),{mkdirpManual:ZEe,mkdirpManualSync:XEe}=Qq(),{useNative:WEt,useNativeSync:YEt}=KEe(),YI=(t,e)=>(t=WI(t),e=GI(e),WEt(e)?JEe(t,e):ZEe(t,e)),VEt=(t,e)=>(t=WI(t),e=GI(e),YEt(e)?zEe(t,e):XEe(t,e));YI.sync=VEt;YI.native=(t,e)=>JEe(WI(t),GI(e));YI.manual=(t,e)=>ZEe(WI(t),GI(e));YI.nativeSync=(t,e)=>zEe(WI(t),GI(e));YI.manualSync=(t,e)=>XEe(WI(t),GI(e));$Ee.exports=YI});var aIe=L((G$t,oIe)=>{"use strict";var Hc=Ie("fs"),Em=Ie("path"),KEt=Hc.lchown?"lchown":"chown",JEt=Hc.lchownSync?"lchownSync":"chownSync",rIe=Hc.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),tIe=(t,e,r)=>{try{return Hc[JEt](t,e,r)}catch(s){if(s.code!=="ENOENT")throw s}},zEt=(t,e,r)=>{try{return Hc.chownSync(t,e,r)}catch(s){if(s.code!=="ENOENT")throw s}},ZEt=rIe?(t,e,r,s)=>a=>{!a||a.code!=="EISDIR"?s(a):Hc.chown(t,e,r,s)}:(t,e,r,s)=>s,Rq=rIe?(t,e,r)=>{try{return tIe(t,e,r)}catch(s){if(s.code!=="EISDIR")throw s;zEt(t,e,r)}}:(t,e,r)=>tIe(t,e,r),XEt=process.version,nIe=(t,e,r)=>Hc.readdir(t,e,r),$Et=(t,e)=>Hc.readdirSync(t,e);/^v4\./.test(XEt)&&(nIe=(t,e,r)=>Hc.readdir(t,r));var DR=(t,e,r,s)=>{Hc[KEt](t,e,r,ZEt(t,e,r,a=>{s(a&&a.code!=="ENOENT"?a:null)}))},iIe=(t,e,r,s,a)=>{if(typeof e=="string")return Hc.lstat(Em.resolve(t,e),(n,c)=>{if(n)return a(n.code!=="ENOENT"?n:null);c.name=e,iIe(t,c,r,s,a)});if(e.isDirectory())Fq(Em.resolve(t,e.name),r,s,n=>{if(n)return a(n);let c=Em.resolve(t,e.name);DR(c,r,s,a)});else{let n=Em.resolve(t,e.name);DR(n,r,s,a)}},Fq=(t,e,r,s)=>{nIe(t,{withFileTypes:!0},(a,n)=>{if(a){if(a.code==="ENOENT")return s();if(a.code!=="ENOTDIR"&&a.code!=="ENOTSUP")return s(a)}if(a||!n.length)return DR(t,e,r,s);let c=n.length,f=null,p=h=>{if(!f){if(h)return s(f=h);if(--c===0)return DR(t,e,r,s)}};n.forEach(h=>iIe(t,h,e,r,p))})},eIt=(t,e,r,s)=>{if(typeof e=="string")try{let a=Hc.lstatSync(Em.resolve(t,e));a.name=e,e=a}catch(a){if(a.code==="ENOENT")return;throw a}e.isDirectory()&&sIe(Em.resolve(t,e.name),r,s),Rq(Em.resolve(t,e.name),r,s)},sIe=(t,e,r)=>{let s;try{s=$Et(t,{withFileTypes:!0})}catch(a){if(a.code==="ENOENT")return;if(a.code==="ENOTDIR"||a.code==="ENOTSUP")return Rq(t,e,r);throw a}return s&&s.length&&s.forEach(a=>eIt(t,a,e,r)),Rq(t,e,r)};oIe.exports=Fq;Fq.sync=sIe});var fIe=L((W$t,Nq)=>{"use strict";var lIe=eIe(),jc=Ie("fs"),bR=Ie("path"),cIe=aIe(),Ku=kI(),PR=class extends Error{constructor(e,r){super("Cannot extract through symbolic link"),this.path=r,this.symlink=e}get name(){return"SylinkError"}},xR=class extends Error{constructor(e,r){super(r+": Cannot cd into '"+e+"'"),this.path=e,this.code=r}get name(){return"CwdError"}},kR=(t,e)=>t.get(Ku(e)),Hv=(t,e,r)=>t.set(Ku(e),r),tIt=(t,e)=>{jc.stat(t,(r,s)=>{(r||!s.isDirectory())&&(r=new xR(t,r&&r.code||"ENOTDIR")),e(r)})};Nq.exports=(t,e,r)=>{t=Ku(t);let s=e.umask,a=e.mode|448,n=(a&s)!==0,c=e.uid,f=e.gid,p=typeof c=="number"&&typeof f=="number"&&(c!==e.processUid||f!==e.processGid),h=e.preserve,E=e.unlink,C=e.cache,S=Ku(e.cwd),P=(N,U)=>{N?r(N):(Hv(C,t,!0),U&&p?cIe(U,c,f,W=>P(W)):n?jc.chmod(t,a,r):r())};if(C&&kR(C,t)===!0)return P();if(t===S)return tIt(t,P);if(h)return lIe(t,{mode:a}).then(N=>P(null,N),P);let R=Ku(bR.relative(S,t)).split("/");QR(S,R,a,C,E,S,null,P)};var QR=(t,e,r,s,a,n,c,f)=>{if(!e.length)return f(null,c);let p=e.shift(),h=Ku(bR.resolve(t+"/"+p));if(kR(s,h))return QR(h,e,r,s,a,n,c,f);jc.mkdir(h,r,uIe(h,e,r,s,a,n,c,f))},uIe=(t,e,r,s,a,n,c,f)=>p=>{p?jc.lstat(t,(h,E)=>{if(h)h.path=h.path&&Ku(h.path),f(h);else if(E.isDirectory())QR(t,e,r,s,a,n,c,f);else if(a)jc.unlink(t,C=>{if(C)return f(C);jc.mkdir(t,r,uIe(t,e,r,s,a,n,c,f))});else{if(E.isSymbolicLink())return f(new PR(t,t+"/"+e.join("/")));f(p)}}):(c=c||t,QR(t,e,r,s,a,n,c,f))},rIt=t=>{let e=!1,r="ENOTDIR";try{e=jc.statSync(t).isDirectory()}catch(s){r=s.code}finally{if(!e)throw new xR(t,r)}};Nq.exports.sync=(t,e)=>{t=Ku(t);let r=e.umask,s=e.mode|448,a=(s&r)!==0,n=e.uid,c=e.gid,f=typeof n=="number"&&typeof c=="number"&&(n!==e.processUid||c!==e.processGid),p=e.preserve,h=e.unlink,E=e.cache,C=Ku(e.cwd),S=N=>{Hv(E,t,!0),N&&f&&cIe.sync(N,n,c),a&&jc.chmodSync(t,s)};if(E&&kR(E,t)===!0)return S();if(t===C)return rIt(C),S();if(p)return S(lIe.sync(t,s));let I=Ku(bR.relative(C,t)).split("/"),R=null;for(let N=I.shift(),U=C;N&&(U+="/"+N);N=I.shift())if(U=Ku(bR.resolve(U)),!kR(E,U))try{jc.mkdirSync(U,s),R=R||U,Hv(E,U,!0)}catch{let te=jc.lstatSync(U);if(te.isDirectory()){Hv(E,U,!0);continue}else if(h){jc.unlinkSync(U),jc.mkdirSync(U,s),R=R||U,Hv(E,U,!0);continue}else if(te.isSymbolicLink())return new PR(U,U+"/"+I.join("/"))}return S(R)}});var Lq=L((Y$t,AIe)=>{var Oq=Object.create(null),{hasOwnProperty:nIt}=Object.prototype;AIe.exports=t=>(nIt.call(Oq,t)||(Oq[t]=t.normalize("NFKD")),Oq[t])});var dIe=L((V$t,gIe)=>{var pIe=Ie("assert"),iIt=Lq(),sIt=RI(),{join:hIe}=Ie("path"),oIt=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,aIt=oIt==="win32";gIe.exports=()=>{let t=new Map,e=new Map,r=h=>h.split("/").slice(0,-1).reduce((C,S)=>(C.length&&(S=hIe(C[C.length-1],S)),C.push(S||"/"),C),[]),s=new Set,a=h=>{let E=e.get(h);if(!E)throw new Error("function does not have any path reservations");return{paths:E.paths.map(C=>t.get(C)),dirs:[...E.dirs].map(C=>t.get(C))}},n=h=>{let{paths:E,dirs:C}=a(h);return E.every(S=>S[0]===h)&&C.every(S=>S[0]instanceof Set&&S[0].has(h))},c=h=>s.has(h)||!n(h)?!1:(s.add(h),h(()=>f(h)),!0),f=h=>{if(!s.has(h))return!1;let{paths:E,dirs:C}=e.get(h),S=new Set;return E.forEach(P=>{let I=t.get(P);pIe.equal(I[0],h),I.length===1?t.delete(P):(I.shift(),typeof I[0]=="function"?S.add(I[0]):I[0].forEach(R=>S.add(R)))}),C.forEach(P=>{let I=t.get(P);pIe(I[0]instanceof Set),I[0].size===1&&I.length===1?t.delete(P):I[0].size===1?(I.shift(),S.add(I[0])):I[0].delete(h)}),s.delete(h),S.forEach(P=>c(P)),!0};return{check:n,reserve:(h,E)=>{h=aIt?["win32 parallelization disabled"]:h.map(S=>iIt(sIt(hIe(S))).toLowerCase());let C=new Set(h.map(S=>r(S)).reduce((S,P)=>S.concat(P)));return e.set(E,{dirs:C,paths:h}),h.forEach(S=>{let P=t.get(S);P?P.push(E):t.set(S,[E])}),C.forEach(S=>{let P=t.get(S);P?P[P.length-1]instanceof Set?P[P.length-1].add(E):P.push(new Set([E])):t.set(S,[new Set([E])])}),c(E)}}}});var EIe=L((K$t,yIe)=>{var lIt=process.platform,cIt=lIt==="win32",uIt=global.__FAKE_TESTING_FS__||Ie("fs"),{O_CREAT:fIt,O_TRUNC:AIt,O_WRONLY:pIt,UV_FS_O_FILEMAP:mIe=0}=uIt.constants,hIt=cIt&&!!mIe,gIt=512*1024,dIt=mIe|AIt|fIt|pIt;yIe.exports=hIt?t=>t<gIt?dIt:"w":()=>"w"});var Yq=L((J$t,RIe)=>{"use strict";var mIt=Ie("assert"),yIt=BR(),Mn=Ie("fs"),EIt=jI(),zp=Ie("path"),kIe=fIe(),IIe=Y6(),IIt=dIe(),CIt=V6(),$l=kI(),wIt=RI(),BIt=Lq(),CIe=Symbol("onEntry"),Uq=Symbol("checkFs"),wIe=Symbol("checkFs2"),FR=Symbol("pruneCache"),Hq=Symbol("isReusable"),qc=Symbol("makeFs"),jq=Symbol("file"),qq=Symbol("directory"),NR=Symbol("link"),BIe=Symbol("symlink"),vIe=Symbol("hardlink"),SIe=Symbol("unsupported"),DIe=Symbol("checkPath"),_0=Symbol("mkdir"),Xo=Symbol("onError"),TR=Symbol("pending"),bIe=Symbol("pend"),VI=Symbol("unpend"),Mq=Symbol("ended"),_q=Symbol("maybeClose"),Gq=Symbol("skip"),jv=Symbol("doChown"),qv=Symbol("uid"),Gv=Symbol("gid"),Wv=Symbol("checkedCwd"),QIe=Ie("crypto"),TIe=EIe(),vIt=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,Yv=vIt==="win32",SIt=(t,e)=>{if(!Yv)return Mn.unlink(t,e);let r=t+".DELETE."+QIe.randomBytes(16).toString("hex");Mn.rename(t,r,s=>{if(s)return e(s);Mn.unlink(r,e)})},DIt=t=>{if(!Yv)return Mn.unlinkSync(t);let e=t+".DELETE."+QIe.randomBytes(16).toString("hex");Mn.renameSync(t,e),Mn.unlinkSync(e)},PIe=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,xIe=t=>BIt(wIt($l(t))).toLowerCase(),bIt=(t,e)=>{e=xIe(e);for(let r of t.keys()){let s=xIe(r);(s===e||s.indexOf(e+"/")===0)&&t.delete(r)}},PIt=t=>{for(let e of t.keys())t.delete(e)},Vv=class extends yIt{constructor(e){if(e||(e={}),e.ondone=r=>{this[Mq]=!0,this[_q]()},super(e),this[Wv]=!1,this.reservations=IIt(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[TR]=0,this[Mq]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||Yv,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=$l(zp.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",r=>this[CIe](r))}warn(e,r,s={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(s.recoverable=!1),super.warn(e,r,s)}[_q](){this[Mq]&&this[TR]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[DIe](e){if(this.strip){let r=$l(e.path).split("/");if(r.length<this.strip)return!1;if(e.path=r.slice(this.strip).join("/"),e.type==="Link"){let s=$l(e.linkpath).split("/");if(s.length>=this.strip)e.linkpath=s.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let r=$l(e.path),s=r.split("/");if(s.includes("..")||Yv&&/^[a-z]:\.\.$/i.test(s[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:r}),!1;let[a,n]=CIt(r);a&&(e.path=n,this.warn("TAR_ENTRY_INFO",`stripping ${a} from absolute path`,{entry:e,path:r}))}if(zp.isAbsolute(e.path)?e.absolute=$l(zp.resolve(e.path)):e.absolute=$l(zp.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:$l(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:r}=zp.win32.parse(e.absolute);e.absolute=r+IIe.encode(e.absolute.substr(r.length));let{root:s}=zp.win32.parse(e.path);e.path=s+IIe.encode(e.path.substr(s.length))}return!0}[CIe](e){if(!this[DIe](e))return e.resume();switch(mIt.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[Uq](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[SIe](e)}}[Xo](e,r){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:r}),this[VI](),r.resume())}[_0](e,r,s){kIe($l(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r,noChmod:this.noChmod},s)}[jv](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[qv](e){return PIe(this.uid,e.uid,this.processUid)}[Gv](e){return PIe(this.gid,e.gid,this.processGid)}[jq](e,r){let s=e.mode&4095||this.fmode,a=new EIt.WriteStream(e.absolute,{flags:TIe(e.size),mode:s,autoClose:!1});a.on("error",p=>{a.fd&&Mn.close(a.fd,()=>{}),a.write=()=>!0,this[Xo](p,e),r()});let n=1,c=p=>{if(p){a.fd&&Mn.close(a.fd,()=>{}),this[Xo](p,e),r();return}--n===0&&Mn.close(a.fd,h=>{h?this[Xo](h,e):this[VI](),r()})};a.on("finish",p=>{let h=e.absolute,E=a.fd;if(e.mtime&&!this.noMtime){n++;let C=e.atime||new Date,S=e.mtime;Mn.futimes(E,C,S,P=>P?Mn.utimes(h,C,S,I=>c(I&&P)):c())}if(this[jv](e)){n++;let C=this[qv](e),S=this[Gv](e);Mn.fchown(E,C,S,P=>P?Mn.chown(h,C,S,I=>c(I&&P)):c())}c()});let f=this.transform&&this.transform(e)||e;f!==e&&(f.on("error",p=>{this[Xo](p,e),r()}),e.pipe(f)),f.pipe(a)}[qq](e,r){let s=e.mode&4095||this.dmode;this[_0](e.absolute,s,a=>{if(a){this[Xo](a,e),r();return}let n=1,c=f=>{--n===0&&(r(),this[VI](),e.resume())};e.mtime&&!this.noMtime&&(n++,Mn.utimes(e.absolute,e.atime||new Date,e.mtime,c)),this[jv](e)&&(n++,Mn.chown(e.absolute,this[qv](e),this[Gv](e),c)),c()})}[SIe](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[BIe](e,r){this[NR](e,e.linkpath,"symlink",r)}[vIe](e,r){let s=$l(zp.resolve(this.cwd,e.linkpath));this[NR](e,s,"link",r)}[bIe](){this[TR]++}[VI](){this[TR]--,this[_q]()}[Gq](e){this[VI](),e.resume()}[Hq](e,r){return e.type==="File"&&!this.unlink&&r.isFile()&&r.nlink<=1&&!Yv}[Uq](e){this[bIe]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,s=>this[wIe](e,s))}[FR](e){e.type==="SymbolicLink"?PIt(this.dirCache):e.type!=="Directory"&&bIt(this.dirCache,e.absolute)}[wIe](e,r){this[FR](e);let s=f=>{this[FR](e),r(f)},a=()=>{this[_0](this.cwd,this.dmode,f=>{if(f){this[Xo](f,e),s();return}this[Wv]=!0,n()})},n=()=>{if(e.absolute!==this.cwd){let f=$l(zp.dirname(e.absolute));if(f!==this.cwd)return this[_0](f,this.dmode,p=>{if(p){this[Xo](p,e),s();return}c()})}c()},c=()=>{Mn.lstat(e.absolute,(f,p)=>{if(p&&(this.keep||this.newer&&p.mtime>e.mtime)){this[Gq](e),s();return}if(f||this[Hq](e,p))return this[qc](null,e,s);if(p.isDirectory()){if(e.type==="Directory"){let h=!this.noChmod&&e.mode&&(p.mode&4095)!==e.mode,E=C=>this[qc](C,e,s);return h?Mn.chmod(e.absolute,e.mode,E):E()}if(e.absolute!==this.cwd)return Mn.rmdir(e.absolute,h=>this[qc](h,e,s))}if(e.absolute===this.cwd)return this[qc](null,e,s);SIt(e.absolute,h=>this[qc](h,e,s))})};this[Wv]?n():a()}[qc](e,r,s){if(e){this[Xo](e,r),s();return}switch(r.type){case"File":case"OldFile":case"ContiguousFile":return this[jq](r,s);case"Link":return this[vIe](r,s);case"SymbolicLink":return this[BIe](r,s);case"Directory":case"GNUDumpDir":return this[qq](r,s)}}[NR](e,r,s,a){Mn[s](r,e.absolute,n=>{n?this[Xo](n,e):(this[VI](),e.resume()),a()})}},RR=t=>{try{return[null,t()]}catch(e){return[e,null]}},Wq=class extends Vv{[qc](e,r){return super[qc](e,r,()=>{})}[Uq](e){if(this[FR](e),!this[Wv]){let n=this[_0](this.cwd,this.dmode);if(n)return this[Xo](n,e);this[Wv]=!0}if(e.absolute!==this.cwd){let n=$l(zp.dirname(e.absolute));if(n!==this.cwd){let c=this[_0](n,this.dmode);if(c)return this[Xo](c,e)}}let[r,s]=RR(()=>Mn.lstatSync(e.absolute));if(s&&(this.keep||this.newer&&s.mtime>e.mtime))return this[Gq](e);if(r||this[Hq](e,s))return this[qc](null,e);if(s.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(s.mode&4095)!==e.mode,[f]=c?RR(()=>{Mn.chmodSync(e.absolute,e.mode)}):[];return this[qc](f,e)}let[n]=RR(()=>Mn.rmdirSync(e.absolute));this[qc](n,e)}let[a]=e.absolute===this.cwd?[]:RR(()=>DIt(e.absolute));this[qc](a,e)}[jq](e,r){let s=e.mode&4095||this.fmode,a=f=>{let p;try{Mn.closeSync(n)}catch(h){p=h}(f||p)&&this[Xo](f||p,e),r()},n;try{n=Mn.openSync(e.absolute,TIe(e.size),s)}catch(f){return a(f)}let c=this.transform&&this.transform(e)||e;c!==e&&(c.on("error",f=>this[Xo](f,e)),e.pipe(c)),c.on("data",f=>{try{Mn.writeSync(n,f,0,f.length)}catch(p){a(p)}}),c.on("end",f=>{let p=null;if(e.mtime&&!this.noMtime){let h=e.atime||new Date,E=e.mtime;try{Mn.futimesSync(n,h,E)}catch(C){try{Mn.utimesSync(e.absolute,h,E)}catch{p=C}}}if(this[jv](e)){let h=this[qv](e),E=this[Gv](e);try{Mn.fchownSync(n,h,E)}catch(C){try{Mn.chownSync(e.absolute,h,E)}catch{p=p||C}}}a(p)})}[qq](e,r){let s=e.mode&4095||this.dmode,a=this[_0](e.absolute,s);if(a){this[Xo](a,e),r();return}if(e.mtime&&!this.noMtime)try{Mn.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[jv](e))try{Mn.chownSync(e.absolute,this[qv](e),this[Gv](e))}catch{}r(),e.resume()}[_0](e,r){try{return kIe.sync($l(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(s){return s}}[NR](e,r,s,a){try{Mn[s+"Sync"](r,e.absolute),a(),e.resume()}catch(n){return this[Xo](n,e)}}};Vv.Sync=Wq;RIe.exports=Vv});var MIe=L((z$t,LIe)=>{"use strict";var xIt=SI(),OR=Yq(),NIe=Ie("fs"),OIe=jI(),FIe=Ie("path"),Vq=RI();LIe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let s=xIt(t);if(s.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!s.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&kIt(s,e),s.file&&s.sync?QIt(s):s.file?TIt(s,r):s.sync?RIt(s):FIt(s)};var kIt=(t,e)=>{let r=new Map(e.map(n=>[Vq(n),!0])),s=t.filter,a=(n,c)=>{let f=c||FIe.parse(n).root||".",p=n===f?!1:r.has(n)?r.get(n):a(FIe.dirname(n),f);return r.set(n,p),p};t.filter=s?(n,c)=>s(n,c)&&a(Vq(n)):n=>a(Vq(n))},QIt=t=>{let e=new OR.Sync(t),r=t.file,s=NIe.statSync(r),a=t.maxReadSize||16*1024*1024;new OIe.ReadStreamSync(r,{readSize:a,size:s.size}).pipe(e)},TIt=(t,e)=>{let r=new OR(t),s=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((c,f)=>{r.on("error",f),r.on("close",c),NIe.stat(a,(p,h)=>{if(p)f(p);else{let E=new OIe.ReadStream(a,{readSize:s,size:h.size});E.on("error",f),E.pipe(r)}})});return e?n.then(e,e):n},RIt=t=>new OR.Sync(t),FIt=t=>new OR(t)});var _Ie=L(ks=>{"use strict";ks.c=ks.create=IEe();ks.r=ks.replace=Pq();ks.t=ks.list=vR();ks.u=ks.update=xEe();ks.x=ks.extract=MIe();ks.Pack=cR();ks.Unpack=Yq();ks.Parse=BR();ks.ReadEntry=YT();ks.WriteEntry=nq();ks.Header=TI();ks.Pax=KT();ks.types=_6()});var Kq,UIe,U0,Kv,Jv,HIe=Ct(()=>{Kq=et(Od()),UIe=Ie("worker_threads"),U0=Symbol("kTaskInfo"),Kv=class{constructor(e,r){this.fn=e;this.limit=(0,Kq.default)(r.poolSize)}run(e){return this.limit(()=>this.fn(e))}},Jv=class{constructor(e,r){this.source=e;this.workers=[];this.limit=(0,Kq.default)(r.poolSize),this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let s=this.workers.pop();s?s.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new UIe.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",r=>{if(!e[U0])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[U0].resolve(r),e[U0]=null,e.unref(),this.workers.push(e)}),e.on("error",r=>{e[U0]?.reject(r),e[U0]=null}),e.on("exit",r=>{r!==0&&e[U0]?.reject(new Error(`Worker exited with code ${r}`)),e[U0]=null}),e}run(e){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((s,a)=>{r[U0]={resolve:s,reject:a},r.postMessage(e)})})}}});var qIe=L((eer,jIe)=>{var Jq;jIe.exports.getContent=()=>(typeof Jq>"u"&&(Jq=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),Jq)});var gs={};Vt(gs,{convertToZip:()=>MIt,convertToZipWorker:()=>Xq,extractArchiveTo:()=>KIe,getDefaultTaskPool:()=>YIe,getTaskPoolForConfiguration:()=>VIe,makeArchiveFromDirectory:()=>LIt});function NIt(t,e){switch(t){case"async":return new Kv(Xq,{poolSize:e});case"workers":return new Jv((0,Zq.getContent)(),{poolSize:e});default:throw new Error(`Assertion failed: Unknown value ${t} for taskPoolMode`)}}function YIe(){return typeof zq>"u"&&(zq=NIt("workers",ps.availableParallelism())),zq}function VIe(t){return typeof t>"u"?YIe():Vl(OIt,t,()=>{let e=t.get("taskPoolMode"),r=t.get("taskPoolConcurrency");switch(e){case"async":return new Kv(Xq,{poolSize:r});case"workers":return new Jv((0,Zq.getContent)(),{poolSize:r});default:throw new Error(`Assertion failed: Unknown value ${e} for taskPoolMode`)}})}async function Xq(t){let{tmpFile:e,tgz:r,compressionLevel:s,extractBufferOpts:a}=t,n=new hs(e,{create:!0,level:s,stats:el.makeDefaultStats()}),c=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return await KIe(c,n,a),n.saveAndClose(),e}async function LIt(t,{baseFs:e=new Yn,prefixPath:r=vt.root,compressionLevel:s,inMemory:a=!1}={}){let n;if(a)n=new hs(null,{level:s});else{let f=await le.mktempPromise(),p=K.join(f,"archive.zip");n=new hs(p,{create:!0,level:s})}let c=K.resolve(vt.root,r);return await n.copyPromise(c,t,{baseFs:e,stableTime:!0,stableSort:!0}),n}async function MIt(t,e={}){let r=await le.mktempPromise(),s=K.join(r,"archive.zip"),a=e.compressionLevel??e.configuration?.get("compressionLevel")??"mixed",n={prefixPath:e.prefixPath,stripComponents:e.stripComponents};return await(e.taskPool??VIe(e.configuration)).run({tmpFile:s,tgz:t,compressionLevel:a,extractBufferOpts:n}),new hs(s,{level:e.compressionLevel})}async function*_It(t){let e=new WIe.default.Parse,r=new GIe.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",s=>{r.write(s)}),e.on("error",s=>{r.destroy(s)}),e.on("close",()=>{r.destroyed||r.end()}),e.end(t);for await(let s of r){let a=s;yield a,a.resume()}}async function KIe(t,e,{stripComponents:r=0,prefixPath:s=vt.dot}={}){function a(n){if(n.path[0]==="/")return!0;let c=n.path.split(/\//g);return!!(c.some(f=>f==="..")||c.length<=r)}for await(let n of _It(t)){if(a(n))continue;let c=K.normalize(ue.toPortablePath(n.path)).replace(/\/$/,"").split(/\//g);if(c.length<=r)continue;let f=c.slice(r).join("/"),p=K.join(s,f),h=420;switch((n.type==="Directory"||(n.mode??0)&73)&&(h|=73),n.type){case"Directory":e.mkdirpSync(K.dirname(p),{chmod:493,utimes:[fi.SAFE_TIME,fi.SAFE_TIME]}),e.mkdirSync(p,{mode:h}),e.utimesSync(p,fi.SAFE_TIME,fi.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(K.dirname(p),{chmod:493,utimes:[fi.SAFE_TIME,fi.SAFE_TIME]}),e.writeFileSync(p,await GE(n),{mode:h}),e.utimesSync(p,fi.SAFE_TIME,fi.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(K.dirname(p),{chmod:493,utimes:[fi.SAFE_TIME,fi.SAFE_TIME]}),e.symlinkSync(n.linkpath,p),e.lutimesSync(p,fi.SAFE_TIME,fi.SAFE_TIME);break}}return e}var GIe,WIe,Zq,zq,OIt,JIe=Ct(()=>{Ve();bt();rA();GIe=Ie("stream"),WIe=et(_Ie());HIe();kc();Zq=et(qIe());OIt=new WeakMap});var ZIe=L(($q,zIe)=>{(function(t,e){typeof $q=="object"?zIe.exports=e():typeof define=="function"&&define.amd?define(e):t.treeify=e()})($q,function(){function t(a,n){var c=n?"\u2514":"\u251C";return a?c+="\u2500 ":c+="\u2500\u2500\u2510",c}function e(a,n){var c=[];for(var f in a)a.hasOwnProperty(f)&&(n&&typeof a[f]=="function"||c.push(f));return c}function r(a,n,c,f,p,h,E){var C="",S=0,P,I,R=f.slice(0);if(R.push([n,c])&&f.length>0&&(f.forEach(function(U,W){W>0&&(C+=(U[1]?" ":"\u2502")+" "),!I&&U[0]===n&&(I=!0)}),C+=t(a,c)+a,p&&(typeof n!="object"||n instanceof Date)&&(C+=": "+n),I&&(C+=" (circular ref.)"),E(C)),!I&&typeof n=="object"){var N=e(n,h);N.forEach(function(U){P=++S===N.length,r(U,n[U],P,R,p,h,E)})}}var s={};return s.asLines=function(a,n,c,f){var p=typeof c!="function"?c:!1;r(".",a,!1,[],n,p,f||c)},s.asTree=function(a,n,c){var f="";return r(".",a,!1,[],n,c,function(p){f+=p+` +`}),f},s})});var Qs={};Vt(Qs,{emitList:()=>UIt,emitTree:()=>tCe,treeNodeToJson:()=>eCe,treeNodeToTreeify:()=>$Ie});function $Ie(t,{configuration:e}){let r={},s=0,a=(n,c)=>{let f=Array.isArray(n)?n.entries():Object.entries(n);for(let[p,h]of f){if(!h)continue;let{label:E,value:C,children:S}=h,P=[];typeof E<"u"&&P.push(Kd(e,E,2)),typeof C<"u"&&P.push(Ut(e,C[0],C[1])),P.length===0&&P.push(Kd(e,`${p}`,2));let I=P.join(": ").trim(),R=`\0${s++}\0`,N=c[`${R}${I}`]={};typeof S<"u"&&a(S,N)}};if(typeof t.children>"u")throw new Error("The root node must only contain children");return a(t.children,r),r}function eCe(t){let e=r=>{if(typeof r.children>"u"){if(typeof r.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Jd(r.value[0],r.value[1])}let s=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[n,c]of s)c&&(a[HIt(n)]=e(c));return typeof r.value>"u"?a:{value:Jd(r.value[0],r.value[1]),children:a}};return e(t)}function UIt(t,{configuration:e,stdout:r,json:s}){let a=t.map(n=>({value:n}));tCe({children:a},{configuration:e,stdout:r,json:s})}function tCe(t,{configuration:e,stdout:r,json:s,separators:a=0}){if(s){let c=Array.isArray(t.children)?t.children.values():Object.values(t.children??{});for(let f of c)f&&r.write(`${JSON.stringify(eCe(f))} +`);return}let n=(0,XIe.asTree)($Ie(t,{configuration:e}),!1,!1);if(n=n.replace(/\0[0-9]+\0/g,""),a>=1&&(n=n.replace(/^([├└]─)/gm,`\u2502 +$1`).replace(/^│\n/,"")),a>=2)for(let c=0;c<2;++c)n=n.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 +$2`).replace(/^│\n/,"");if(a>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(n)}function HIt(t){return typeof t=="string"?t.replace(/^\0[0-9]+\0/,""):t}var XIe,rCe=Ct(()=>{XIe=et(ZIe());Qc()});var LR,nCe=Ct(()=>{LR=class{constructor(e){this.releaseFunction=e;this.map=new Map}addOrCreate(e,r){let s=this.map.get(e);if(typeof s<"u"){if(s.refCount<=0)throw new Error(`Race condition in RefCountedMap. While adding a new key the refCount is: ${s.refCount} for ${JSON.stringify(e)}`);return s.refCount++,{value:s.value,release:()=>this.release(e)}}else{let a=r();return this.map.set(e,{refCount:1,value:a}),{value:a,release:()=>this.release(e)}}}release(e){let r=this.map.get(e);if(!r)throw new Error(`Unbalanced calls to release. No known instances of: ${JSON.stringify(e)}`);let s=r.refCount;if(s<=0)throw new Error(`Unbalanced calls to release. Too many release vs alloc refcount would become: ${s-1} of ${JSON.stringify(e)}`);s==1?(this.map.delete(e),this.releaseFunction(r.value)):r.refCount--}}});function zv(t){let e=t.match(jIt);if(!e?.groups)throw new Error("Assertion failed: Expected the checksum to match the requested pattern");let r=e.groups.cacheVersion?parseInt(e.groups.cacheVersion):null;return{cacheKey:e.groups.cacheKey??null,cacheVersion:r,cacheSpec:e.groups.cacheSpec??null,hash:e.groups.hash}}var iCe,eG,tG,MR,Jr,jIt,rG=Ct(()=>{Ve();bt();bt();rA();iCe=Ie("crypto"),eG=et(Ie("fs"));nCe();Fc();E0();kc();Yo();tG=WE(process.env.YARN_CACHE_CHECKPOINT_OVERRIDE??process.env.YARN_CACHE_VERSION_OVERRIDE??9),MR=WE(process.env.YARN_CACHE_VERSION_OVERRIDE??10),Jr=class t{constructor(e,{configuration:r,immutable:s=r.get("enableImmutableCache"),check:a=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.refCountedZipFsCache=new LR(e=>{e.discardAndClose()});this.cacheId=`-${(0,iCe.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=s,this.check=a;let{cacheSpec:n,cacheKey:c}=t.getCacheKey(r);this.cacheSpec=n,this.cacheKey=c}static async find(e,{immutable:r,check:s}={}){let a=new t(e.get("cacheFolder"),{configuration:e,immutable:r,check:s});return await a.setup(),a}static getCacheKey(e){let r=e.get("compressionLevel"),s=r!=="mixed"?`c${r}`:"";return{cacheKey:[MR,s].join(""),cacheSpec:s}}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${rI(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let a=zv(r).hash.slice(0,10);return`${rI(e)}-${a}.zip`}isChecksumCompatible(e){if(e===null)return!1;let{cacheVersion:r,cacheSpec:s}=zv(e);if(r===null||r<tG)return!1;let a=this.configuration.get("cacheMigrationMode");return!(r<MR&&a==="always"||s!==this.cacheSpec&&a!=="required-only")}getLocatorPath(e,r){return this.mirrorCwd===null?K.resolve(this.cwd,this.getVersionFilename(e)):r===null?K.resolve(this.cwd,this.getVersionFilename(e)):K.resolve(this.cwd,this.getChecksumFilename(e,r))}getLocatorMirrorPath(e){let r=this.mirrorCwd;return r!==null?K.resolve(r,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await le.existsPromise(this.cwd))throw new Yt(56,"Cache path does not exist.")}else{await le.mkdirPromise(this.cwd,{recursive:!0});let e=K.resolve(this.cwd,".gitignore");await le.changeFilePromise(e,`/.gitignore +*.flock +*.tmp +`)}(this.mirrorCwd||!this.immutable)&&await le.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,r,{onHit:s,onMiss:a,loader:n,...c}){let f=this.getLocatorMirrorPath(e),p=new Yn,h=()=>{let pe=new hs,Be=K.join(vt.root,j8(e));return pe.mkdirSync(Be,{recursive:!0}),pe.writeJsonSync(K.join(Be,Er.manifest),{name:cn(e),mocked:!0}),pe},E=async(pe,{isColdHit:Be,controlPath:Ce=null})=>{if(Ce===null&&c.unstablePackages?.has(e.locatorHash))return{isValid:!0,hash:null};let g=r&&!Be?zv(r).cacheKey:this.cacheKey,we=!c.skipIntegrityCheck||!r?`${g}/${await BQ(pe)}`:r;if(Ce!==null){let fe=!c.skipIntegrityCheck||!r?`${this.cacheKey}/${await BQ(Ce)}`:r;if(we!==fe)throw new Yt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}let ye=null;switch(r!==null&&we!==r&&(this.check?ye="throw":zv(r).cacheKey!==zv(we).cacheKey?ye="update":ye=this.configuration.get("checksumBehavior")),ye){case null:case"update":return{isValid:!0,hash:we};case"ignore":return{isValid:!0,hash:r};case"reset":return{isValid:!1,hash:r};default:case"throw":throw new Yt(18,"The remote archive doesn't match the expected checksum")}},C=async pe=>{if(!n)throw new Error(`Cache check required but no loader configured for ${Yr(this.configuration,e)}`);let Be=await n(),Ce=Be.getRealPath();Be.saveAndClose(),await le.chmodPromise(Ce,420);let g=await E(pe,{controlPath:Ce,isColdHit:!1});if(!g.isValid)throw new Error("Assertion failed: Expected a valid checksum");return g.hash},S=async()=>{if(f===null||!await le.existsPromise(f)){let pe=await n(),Be=pe.getRealPath();return pe.saveAndClose(),{source:"loader",path:Be}}return{source:"mirror",path:f}},P=async()=>{if(!n)throw new Error(`Cache entry required but missing for ${Yr(this.configuration,e)}`);if(this.immutable)throw new Yt(56,`Cache entry required but missing for ${Yr(this.configuration,e)}`);let{path:pe,source:Be}=await S(),{hash:Ce}=await E(pe,{isColdHit:!0}),g=this.getLocatorPath(e,Ce),we=[];Be!=="mirror"&&f!==null&&we.push(async()=>{let fe=`${f}${this.cacheId}`;await le.copyFilePromise(pe,fe,eG.default.constants.COPYFILE_FICLONE),await le.chmodPromise(fe,420),await le.renamePromise(fe,f)}),(!c.mirrorWriteOnly||f===null)&&we.push(async()=>{let fe=`${g}${this.cacheId}`;await le.copyFilePromise(pe,fe,eG.default.constants.COPYFILE_FICLONE),await le.chmodPromise(fe,420),await le.renamePromise(fe,g)});let ye=c.mirrorWriteOnly?f??g:g;return await Promise.all(we.map(fe=>fe())),[!1,ye,Ce]},I=async()=>{let Be=(async()=>{let Ce=c.unstablePackages?.has(e.locatorHash),g=Ce||!r||this.isChecksumCompatible(r)?this.getLocatorPath(e,r):null,we=g!==null?this.markedFiles.has(g)||await p.existsPromise(g):!1,ye=!!c.mockedPackages?.has(e.locatorHash)&&(!this.check||!we),fe=ye||we,se=fe?s:a;if(se&&se(),fe){let X=null,De=g;if(!ye)if(this.check)X=await C(De);else{let Re=await E(De,{isColdHit:!1});if(Re.isValid)X=Re.hash;else return P()}return[ye,De,X]}else{if(this.immutable&&Ce)throw new Yt(56,`Cache entry required but missing for ${Yr(this.configuration,e)}; consider defining ${he.pretty(this.configuration,"supportedArchitectures",he.Type.CODE)} to cache packages for multiple systems`);return P()}})();this.mutexes.set(e.locatorHash,Be);try{return await Be}finally{this.mutexes.delete(e.locatorHash)}};for(let pe;pe=this.mutexes.get(e.locatorHash);)await pe;let[R,N,U]=await I();R||this.markedFiles.add(N);let W=()=>this.refCountedZipFsCache.addOrCreate(N,()=>R?h():new hs(N,{baseFs:p,readOnly:!0})),te,ie=new iE(()=>i3(()=>(te=W(),te.value),pe=>`Failed to open the cache entry for ${Yr(this.configuration,e)}: ${pe}`),K),Ae=new Hf(N,{baseFs:ie,pathUtils:K}),ce=()=>{te?.release()},me=c.unstablePackages?.has(e.locatorHash)?null:U;return[Ae,ce,me]}},jIt=/^(?:(?<cacheKey>(?<cacheVersion>[0-9]+)(?<cacheSpec>.*))\/)?(?<hash>.*)$/});var _R,sCe=Ct(()=>{_R=(r=>(r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE",r))(_R||{})});var qIt,KI,nG=Ct(()=>{bt();Bc();Np();Yo();qIt=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,s)=>`${r}#commit=${s}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",s,a)=>`https://${r}github.com/${s}.git#commit=${a}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",s,a)=>`https://${r}github.com/${s}.git#commit=${a}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>PQ({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],KI=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let s=K.join(e.cwd,Er.lockfile);if(!le.existsSync(s))return;let a=await le.readFilePromise(s,"utf8"),n=cs(a);if(Object.hasOwn(n,"__metadata"))return;let c=this.resolutions=new Map;for(let f of Object.keys(n)){let p=JB(f);if(!p){r.reportWarning(14,`Failed to parse the string "${f}" into a proper descriptor`);continue}let h=ul(p.range)?On(p,`npm:${p.range}`):p,{version:E,resolved:C}=n[f];if(!C)continue;let S;for(let[I,R]of qIt){let N=C.match(I);if(N){S=R(E,...N);break}}if(!S){r.reportWarning(14,`${ni(e.configuration,h)}: Only some patterns can be imported from legacy lockfiles (not "${C}")`);continue}let P=h;try{let I=Xd(h.range),R=JB(I.selector,!0);R&&(P=R)}catch{}c.set(h.descriptorHash,Vs(P,S))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let a=this.resolutions.get(e.descriptorHash);if(!a)throw new Error("Assertion failed: The resolution should have been registered");let n=M8(a),c=s.project.configuration.normalizeDependency(n);return await this.resolver.getCandidates(c,r,s)}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}});var uA,oCe=Ct(()=>{Fc();xv();Qc();uA=class extends ho{constructor({configuration:r,stdout:s,suggestInstall:a=!0}){super();this.errorCount=0;HB(this,{configuration:r}),this.configuration=r,this.stdout=s,this.suggestInstall=a}static async start(r,s){let a=new this(r);try{await s(a)}catch(n){a.reportExceptionOnce(n)}finally{await a.finalize()}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(r){}reportCacheMiss(r){}startSectionSync(r,s){return s()}async startSectionPromise(r,s){return await s()}startTimerSync(r,s,a){return(typeof s=="function"?s:a)()}async startTimerPromise(r,s,a){return await(typeof s=="function"?s:a)()}reportSeparator(){}reportInfo(r,s){}reportWarning(r,s){}reportError(r,s){this.errorCount+=1,this.stdout.write(`${Ut(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(r)}: ${s} +`)}reportProgress(r){return{...Promise.resolve().then(async()=>{for await(let{}of r);}),stop:()=>{}}}reportJson(r){}reportFold(r,s){}async finalize(){this.errorCount>0&&(this.stdout.write(` +`),this.stdout.write(`${Ut(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. +`),this.suggestInstall&&this.stdout.write(`${Ut(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. +`))}formatNameWithHyperlink(r){return u6(r,{configuration:this.configuration,json:!1})}}});var JI,iG=Ct(()=>{Yo();JI=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(SQ(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,s){let a=s.project.storedResolutions.get(e.descriptorHash);if(a){let c=s.project.originalPackages.get(a);if(c)return[c]}let n=s.project.originalPackages.get(SQ(e).locatorHash);if(n)return[n];throw new Error("Resolution expected from the lockfile data")}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let s=r.project.originalPackages.get(e.locatorHash);if(!s)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return s}}});function Zp(){}function GIt(t,e,r,s,a){for(var n=0,c=e.length,f=0,p=0;n<c;n++){var h=e[n];if(h.removed){if(h.value=t.join(s.slice(p,p+h.count)),p+=h.count,n&&e[n-1].added){var C=e[n-1];e[n-1]=e[n],e[n]=C}}else{if(!h.added&&a){var E=r.slice(f,f+h.count);E=E.map(function(P,I){var R=s[p+I];return R.length>P.length?R:P}),h.value=t.join(E)}else h.value=t.join(r.slice(f,f+h.count));f+=h.count,h.added||(p+=h.count)}}var S=e[c-1];return c>1&&typeof S.value=="string"&&(S.added||S.removed)&&t.equals("",S.value)&&(e[c-2].value+=S.value,e.pop()),e}function WIt(t){return{newPos:t.newPos,components:t.components.slice(0)}}function YIt(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function cCe(t,e,r){return r=YIt(r,{ignoreWhitespace:!0}),cG.diff(t,e,r)}function VIt(t,e,r){return uG.diff(t,e,r)}function UR(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?UR=function(e){return typeof e}:UR=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},UR(t)}function sG(t){return zIt(t)||ZIt(t)||XIt(t)||$It()}function zIt(t){if(Array.isArray(t))return oG(t)}function ZIt(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function XIt(t,e){if(t){if(typeof t=="string")return oG(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return oG(t,e)}}function oG(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,s=new Array(e);r<e;r++)s[r]=t[r];return s}function $It(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function aG(t,e,r,s,a){e=e||[],r=r||[],s&&(t=s(a,t));var n;for(n=0;n<e.length;n+=1)if(e[n]===t)return r[n];var c;if(eCt.call(t)==="[object Array]"){for(e.push(t),c=new Array(t.length),r.push(c),n=0;n<t.length;n+=1)c[n]=aG(t[n],e,r,s,a);return e.pop(),r.pop(),c}if(t&&t.toJSON&&(t=t.toJSON()),UR(t)==="object"&&t!==null){e.push(t),c={},r.push(c);var f=[],p;for(p in t)t.hasOwnProperty(p)&&f.push(p);for(f.sort(),n=0;n<f.length;n+=1)p=f[n],c[p]=aG(t[p],e,r,s,p);e.pop(),r.pop()}else c=t;return c}function uCe(t,e,r,s,a,n,c){c||(c={}),typeof c.context>"u"&&(c.context=4);var f=VIt(r,s,c);if(!f)return;f.push({value:"",lines:[]});function p(U){return U.map(function(W){return" "+W})}for(var h=[],E=0,C=0,S=[],P=1,I=1,R=function(W){var te=f[W],ie=te.lines||te.value.replace(/\n$/,"").split(` +`);if(te.lines=ie,te.added||te.removed){var Ae;if(!E){var ce=f[W-1];E=P,C=I,ce&&(S=c.context>0?p(ce.lines.slice(-c.context)):[],E-=S.length,C-=S.length)}(Ae=S).push.apply(Ae,sG(ie.map(function(fe){return(te.added?"+":"-")+fe}))),te.added?I+=ie.length:P+=ie.length}else{if(E)if(ie.length<=c.context*2&&W<f.length-2){var me;(me=S).push.apply(me,sG(p(ie)))}else{var pe,Be=Math.min(ie.length,c.context);(pe=S).push.apply(pe,sG(p(ie.slice(0,Be))));var Ce={oldStart:E,oldLines:P-E+Be,newStart:C,newLines:I-C+Be,lines:S};if(W>=f.length-2&&ie.length<=c.context){var g=/\n$/.test(r),we=/\n$/.test(s),ye=ie.length==0&&S.length>Ce.oldLines;!g&&ye&&r.length>0&&S.splice(Ce.oldLines,0,"\\ No newline at end of file"),(!g&&!ye||!we)&&S.push("\\ No newline at end of file")}h.push(Ce),E=0,C=0,S=[]}P+=ie.length,I+=ie.length}},N=0;N<f.length;N++)R(N);return{oldFileName:t,newFileName:e,oldHeader:a,newHeader:n,hunks:h}}var ker,aCe,lCe,cG,uG,KIt,JIt,eCt,Zv,lG,fG=Ct(()=>{Zp.prototype={diff:function(e,r){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=s.callback;typeof s=="function"&&(a=s,s={}),this.options=s;var n=this;function c(R){return a?(setTimeout(function(){a(void 0,R)},0),!0):R}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var f=r.length,p=e.length,h=1,E=f+p;s.maxEditLength&&(E=Math.min(E,s.maxEditLength));var C=[{newPos:-1,components:[]}],S=this.extractCommon(C[0],r,e,0);if(C[0].newPos+1>=f&&S+1>=p)return c([{value:this.join(r),count:r.length}]);function P(){for(var R=-1*h;R<=h;R+=2){var N=void 0,U=C[R-1],W=C[R+1],te=(W?W.newPos:0)-R;U&&(C[R-1]=void 0);var ie=U&&U.newPos+1<f,Ae=W&&0<=te&&te<p;if(!ie&&!Ae){C[R]=void 0;continue}if(!ie||Ae&&U.newPos<W.newPos?(N=WIt(W),n.pushComponent(N.components,void 0,!0)):(N=U,N.newPos++,n.pushComponent(N.components,!0,void 0)),te=n.extractCommon(N,r,e,R),N.newPos+1>=f&&te+1>=p)return c(GIt(n,N.components,r,e,n.useLongestToken));C[R]=N}h++}if(a)(function R(){setTimeout(function(){if(h>E)return a();P()||R()},0)})();else for(;h<=E;){var I=P();if(I)return I}},pushComponent:function(e,r,s){var a=e[e.length-1];a&&a.added===r&&a.removed===s?e[e.length-1]={count:a.count+1,added:r,removed:s}:e.push({count:1,added:r,removed:s})},extractCommon:function(e,r,s,a){for(var n=r.length,c=s.length,f=e.newPos,p=f-a,h=0;f+1<n&&p+1<c&&this.equals(r[f+1],s[p+1]);)f++,p++,h++;return h&&e.components.push({count:h}),e.newPos=f,p},equals:function(e,r){return this.options.comparator?this.options.comparator(e,r):e===r||this.options.ignoreCase&&e.toLowerCase()===r.toLowerCase()},removeEmpty:function(e){for(var r=[],s=0;s<e.length;s++)e[s]&&r.push(e[s]);return r},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};ker=new Zp;aCe=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,lCe=/\S/,cG=new Zp;cG.equals=function(t,e){return this.options.ignoreCase&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e||this.options.ignoreWhitespace&&!lCe.test(t)&&!lCe.test(e)};cG.tokenize=function(t){for(var e=t.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),r=0;r<e.length-1;r++)!e[r+1]&&e[r+2]&&aCe.test(e[r])&&aCe.test(e[r+2])&&(e[r]+=e[r+2],e.splice(r+1,2),r--);return e};uG=new Zp;uG.tokenize=function(t){var e=[],r=t.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(var s=0;s<r.length;s++){var a=r[s];s%2&&!this.options.newlineIsToken?e[e.length-1]+=a:(this.options.ignoreWhitespace&&(a=a.trim()),e.push(a))}return e};KIt=new Zp;KIt.tokenize=function(t){return t.split(/(\S.+?[.!?])(?=\s+|$)/)};JIt=new Zp;JIt.tokenize=function(t){return t.split(/([{}:;,]|\s+)/)};eCt=Object.prototype.toString,Zv=new Zp;Zv.useLongestToken=!0;Zv.tokenize=uG.tokenize;Zv.castInput=function(t){var e=this.options,r=e.undefinedReplacement,s=e.stringifyReplacer,a=s===void 0?function(n,c){return typeof c>"u"?r:c}:s;return typeof t=="string"?t:JSON.stringify(aG(t,null,null,a),a," ")};Zv.equals=function(t,e){return Zp.prototype.equals.call(Zv,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};lG=new Zp;lG.tokenize=function(t){return t.slice()};lG.join=lG.removeEmpty=function(t){return t}});var ACe=L((Ter,fCe)=>{var tCt=xc(),rCt=oI(),nCt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,iCt=/^\w*$/;function sCt(t,e){if(tCt(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||rCt(t)?!0:iCt.test(t)||!nCt.test(t)||e!=null&&t in Object(e)}fCe.exports=sCt});var gCe=L((Rer,hCe)=>{var pCe=bk(),oCt="Expected a function";function AG(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(oCt);var r=function(){var s=arguments,a=e?e.apply(this,s):s[0],n=r.cache;if(n.has(a))return n.get(a);var c=t.apply(this,s);return r.cache=n.set(a,c)||n,c};return r.cache=new(AG.Cache||pCe),r}AG.Cache=pCe;hCe.exports=AG});var mCe=L((Fer,dCe)=>{var aCt=gCe(),lCt=500;function cCt(t){var e=aCt(t,function(s){return r.size===lCt&&r.clear(),s}),r=e.cache;return e}dCe.exports=cCt});var pG=L((Ner,yCe)=>{var uCt=mCe(),fCt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ACt=/\\(\\)?/g,pCt=uCt(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(fCt,function(r,s,a,n){e.push(a?n.replace(ACt,"$1"):s||r)}),e});yCe.exports=pCt});var Im=L((Oer,ECe)=>{var hCt=xc(),gCt=ACe(),dCt=pG(),mCt=bv();function yCt(t,e){return hCt(t)?t:gCt(t,e)?[t]:dCt(mCt(t))}ECe.exports=yCt});var zI=L((Ler,ICe)=>{var ECt=oI(),ICt=1/0;function CCt(t){if(typeof t=="string"||ECt(t))return t;var e=t+"";return e=="0"&&1/t==-ICt?"-0":e}ICe.exports=CCt});var HR=L((Mer,CCe)=>{var wCt=Im(),BCt=zI();function vCt(t,e){e=wCt(e,t);for(var r=0,s=e.length;t!=null&&r<s;)t=t[BCt(e[r++])];return r&&r==s?t:void 0}CCe.exports=vCt});var hG=L((_er,BCe)=>{var SCt=qk(),DCt=Im(),bCt=kB(),wCe=Wl(),PCt=zI();function xCt(t,e,r,s){if(!wCe(t))return t;e=DCt(e,t);for(var a=-1,n=e.length,c=n-1,f=t;f!=null&&++a<n;){var p=PCt(e[a]),h=r;if(p==="__proto__"||p==="constructor"||p==="prototype")return t;if(a!=c){var E=f[p];h=s?s(E,p,f):void 0,h===void 0&&(h=wCe(E)?E:bCt(e[a+1])?[]:{})}SCt(f,p,h),f=f[p]}return t}BCe.exports=xCt});var SCe=L((Uer,vCe)=>{var kCt=HR(),QCt=hG(),TCt=Im();function RCt(t,e,r){for(var s=-1,a=e.length,n={};++s<a;){var c=e[s],f=kCt(t,c);r(f,c)&&QCt(n,TCt(c,t),f)}return n}vCe.exports=RCt});var bCe=L((Her,DCe)=>{function FCt(t,e){return t!=null&&e in Object(t)}DCe.exports=FCt});var gG=L((jer,PCe)=>{var NCt=Im(),OCt=bB(),LCt=xc(),MCt=kB(),_Ct=Tk(),UCt=zI();function HCt(t,e,r){e=NCt(e,t);for(var s=-1,a=e.length,n=!1;++s<a;){var c=UCt(e[s]);if(!(n=t!=null&&r(t,c)))break;t=t[c]}return n||++s!=a?n:(a=t==null?0:t.length,!!a&&_Ct(a)&&MCt(c,a)&&(LCt(t)||OCt(t)))}PCe.exports=HCt});var kCe=L((qer,xCe)=>{var jCt=bCe(),qCt=gG();function GCt(t,e){return t!=null&&qCt(t,e,jCt)}xCe.exports=GCt});var TCe=L((Ger,QCe)=>{var WCt=SCe(),YCt=kCe();function VCt(t,e){return WCt(t,e,function(r,s){return YCt(t,s)})}QCe.exports=VCt});var OCe=L((Wer,NCe)=>{var RCe=Gd(),KCt=bB(),JCt=xc(),FCe=RCe?RCe.isConcatSpreadable:void 0;function zCt(t){return JCt(t)||KCt(t)||!!(FCe&&t&&t[FCe])}NCe.exports=zCt});var _Ce=L((Yer,MCe)=>{var ZCt=kk(),XCt=OCe();function LCe(t,e,r,s,a){var n=-1,c=t.length;for(r||(r=XCt),a||(a=[]);++n<c;){var f=t[n];e>0&&r(f)?e>1?LCe(f,e-1,r,s,a):ZCt(a,f):s||(a[a.length]=f)}return a}MCe.exports=LCe});var HCe=L((Ver,UCe)=>{var $Ct=_Ce();function ewt(t){var e=t==null?0:t.length;return e?$Ct(t,1):[]}UCe.exports=ewt});var dG=L((Ker,jCe)=>{var twt=HCe(),rwt=J4(),nwt=z4();function iwt(t){return nwt(rwt(t,void 0,twt),t+"")}jCe.exports=iwt});var mG=L((Jer,qCe)=>{var swt=TCe(),owt=dG(),awt=owt(function(t,e){return t==null?{}:swt(t,e)});qCe.exports=awt});var jR,GCe=Ct(()=>{Fc();jR=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,s){return this.resolver.bindDescriptor(e,r,s)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,s){throw new Yt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,s,a){throw new Yt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new Yt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}}});var Yi,yG=Ct(()=>{Fc();Yi=class extends ho{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,s){return(typeof r=="function"?r:s)()}async startTimerPromise(e,r,s){return await(typeof r=="function"?r:s)()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}reportFold(e,r){}async finalize(){}}});var WCe,ZI,EG=Ct(()=>{bt();WCe=et(CQ());sI();$d();Qc();E0();Np();Yo();ZI=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.project=r,this.cwd=e}async setup(){this.manifest=await Ht.tryFind(this.cwd)??new Ht,this.relativeCwd=K.relative(this.project.cwd,this.cwd)||vt.dot;let e=this.manifest.name?this.manifest.name:ba(null,`${this.computeCandidateName()}-${fs(this.relativeCwd).substring(0,6)}`);this.anchoredDescriptor=On(e,`${Ei.protocol}${this.relativeCwd}`),this.anchoredLocator=Vs(e,`${Ei.protocol}${this.relativeCwd}`);let r=this.manifest.workspaceDefinitions.map(({pattern:a})=>a);if(r.length===0)return;let s=await(0,WCe.default)(r,{cwd:ue.fromPortablePath(this.cwd),onlyDirectories:!0,ignore:["**/node_modules","**/.git","**/.yarn"]});s.sort(),await s.reduce(async(a,n)=>{let c=K.resolve(this.cwd,ue.toPortablePath(n)),f=await le.existsPromise(K.join(c,"package.json"));await a,f&&this.workspacesCwds.add(c)},Promise.resolve())}get anchoredPackage(){let e=this.project.storedPackages.get(this.anchoredLocator.locatorHash);if(!e)throw new Error(`Assertion failed: Expected workspace ${ZB(this.project.configuration,this)} (${Ut(this.project.configuration,K.join(this.cwd,Er.manifest),pt.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);return e}accepts(e){let r=e.indexOf(":"),s=r!==-1?e.slice(0,r+1):null,a=r!==-1?e.slice(r+1):e;if(s===Ei.protocol&&K.normalize(a)===this.relativeCwd||s===Ei.protocol&&(a==="*"||a==="^"||a==="~"))return!0;let n=ul(a);return n?s===Ei.protocol?n.test(this.manifest.version??"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?n.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${K.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=Ht.hardDependencies}={}){let r=new Set,s=a=>{for(let n of e)for(let c of a.manifest[n].values()){let f=this.project.tryWorkspaceByDescriptor(c);f===null||r.has(f)||(r.add(f),s(f))}};return s(this),r}getRecursiveWorkspaceDependents({dependencies:e=Ht.hardDependencies}={}){let r=new Set,s=a=>{for(let n of this.project.workspaces)e.some(f=>[...n.manifest[f].values()].some(p=>{let h=this.project.tryWorkspaceByDescriptor(p);return h!==null&&KB(h.anchoredLocator,a.anchoredLocator)}))&&!r.has(n)&&(r.add(n),s(n))};return s(this),r}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let r of e)for(let s of r.workspacesCwds){let a=this.project.workspacesByCwd.get(s);a&&e.add(a)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let r=K.join(this.cwd,Ht.fileName),s=`${JSON.stringify(e,null,this.manifest.indent)} +`;await le.changeFilePromise(r,s,{automaticNewlines:!0}),this.manifest.raw=e}}});function pwt({project:t,allDescriptors:e,allResolutions:r,allPackages:s,accessibleLocators:a=new Set,optionalBuilds:n=new Set,peerRequirements:c=new Map,peerWarnings:f=[],peerRequirementNodes:p=new Map,volatileDescriptors:h=new Set}){let E=new Map,C=[],S=new Map,P=new Map,I=new Map,R=new Map,N=new Map,U=new Map(t.workspaces.map(ce=>{let me=ce.anchoredLocator.locatorHash,pe=s.get(me);if(typeof pe>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[me,WB(pe)]})),W=()=>{let ce=le.mktempSync(),me=K.join(ce,"stacktrace.log"),pe=String(C.length+1).length,Be=C.map((Ce,g)=>`${`${g+1}.`.padStart(pe," ")} ${cl(Ce)} +`).join("");throw le.writeFileSync(me,Be),le.detachTemp(ce),new Yt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${ue.fromPortablePath(me)}`)},te=ce=>{let me=r.get(ce.descriptorHash);if(typeof me>"u")throw new Error("Assertion failed: The resolution should have been registered");let pe=s.get(me);if(!pe)throw new Error("Assertion failed: The package could not be found");return pe},ie=(ce,me,pe,{top:Be,optional:Ce})=>{C.length>1e3&&W(),C.push(me);let g=Ae(ce,me,pe,{top:Be,optional:Ce});return C.pop(),g},Ae=(ce,me,pe,{top:Be,optional:Ce})=>{if(Ce||n.delete(me.locatorHash),a.has(me.locatorHash))return;a.add(me.locatorHash);let g=s.get(me.locatorHash);if(!g)throw new Error(`Assertion failed: The package (${Yr(t.configuration,me)}) should have been registered`);let we=new Set,ye=new Map,fe=[],se=[],X=[],De=[];for(let Re of Array.from(g.dependencies.values())){if(g.peerDependencies.has(Re.identHash)&&g.locatorHash!==Be)continue;if(Tp(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");h.delete(Re.descriptorHash);let dt=Ce;if(!dt){let ke=g.dependenciesMeta.get(cn(Re));if(typeof ke<"u"){let it=ke.get(null);typeof it<"u"&&it.optional&&(dt=!0)}}let j=r.get(Re.descriptorHash);if(!j)throw new Error(`Assertion failed: The resolution (${ni(t.configuration,Re)}) should have been registered`);let rt=U.get(j)||s.get(j);if(!rt)throw new Error(`Assertion failed: The package (${j}, resolved from ${ni(t.configuration,Re)}) should have been registered`);if(rt.peerDependencies.size===0){ie(Re,rt,new Map,{top:Be,optional:dt});continue}let Fe,Ne,Pe=new Set,Ye=new Map;fe.push(()=>{Fe=U8(Re,me.locatorHash),Ne=H8(rt,me.locatorHash),g.dependencies.set(Re.identHash,Fe),r.set(Fe.descriptorHash,Ne.locatorHash),e.set(Fe.descriptorHash,Fe),s.set(Ne.locatorHash,Ne),xp(R,Ne.locatorHash).add(Fe.descriptorHash),we.add(Ne.locatorHash)}),se.push(()=>{N.set(Ne.locatorHash,Ye);for(let ke of Ne.peerDependencies.values()){let _e=Vl(ye,ke.identHash,()=>{let x=pe.get(ke.identHash)??null,w=g.dependencies.get(ke.identHash);return!w&&VB(me,ke)&&(ce.identHash===me.identHash?w=ce:(w=On(me,ce.range),e.set(w.descriptorHash,w),r.set(w.descriptorHash,me.locatorHash),h.delete(w.descriptorHash),x=null)),w||(w=On(ke,"missing:")),{subject:me,ident:ke,provided:w,root:!x,requests:new Map,hash:`p${fs(me.locatorHash,ke.identHash).slice(0,5)}`}}).provided;if(_e.range==="missing:"&&Ne.dependencies.has(ke.identHash)){Ne.peerDependencies.delete(ke.identHash);continue}if(Ye.set(ke.identHash,{requester:Ne,descriptor:ke,meta:Ne.peerDependenciesMeta.get(cn(ke)),children:new Map}),Ne.dependencies.set(ke.identHash,_e),Tp(_e)){let x=r.get(_e.descriptorHash);xp(I,x).add(Ne.locatorHash)}S.set(_e.identHash,_e),_e.range==="missing:"&&Pe.add(_e.identHash)}Ne.dependencies=new Map(Ys(Ne.dependencies,([ke,it])=>cn(it)))}),X.push(()=>{if(!s.has(Ne.locatorHash))return;let ke=E.get(rt.locatorHash);typeof ke=="number"&&ke>=2&&W();let it=E.get(rt.locatorHash),_e=typeof it<"u"?it+1:1;E.set(rt.locatorHash,_e),ie(Fe,Ne,Ye,{top:Be,optional:dt}),E.set(rt.locatorHash,_e-1)}),De.push(()=>{let ke=r.get(Fe.descriptorHash);if(typeof ke>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let it=N.get(ke);if(typeof it>"u")throw new Error("Assertion failed: Expected the peer requests to be registered");for(let _e of ye.values()){let x=it.get(_e.ident.identHash);x&&(_e.requests.set(Fe.descriptorHash,x),p.set(_e.hash,_e),_e.root||pe.get(_e.ident.identHash)?.children.set(Fe.descriptorHash,x))}if(s.has(Ne.locatorHash))for(let _e of Pe)Ne.dependencies.delete(_e)})}for(let Re of[...fe,...se])Re();for(let Re of we){we.delete(Re);let dt=s.get(Re),j=fs(tI(dt).locatorHash,...Array.from(dt.dependencies.values(),Pe=>{let Ye=Pe.range!=="missing:"?r.get(Pe.descriptorHash):"missing:";if(typeof Ye>"u")throw new Error(`Assertion failed: Expected the resolution for ${ni(t.configuration,Pe)} to have been registered`);return Ye===Be?`${Ye} (top)`:Ye})),rt=P.get(j);if(typeof rt>"u"){P.set(j,dt);continue}let Fe=xp(R,rt.locatorHash);for(let Pe of R.get(dt.locatorHash)??[])r.set(Pe,rt.locatorHash),Fe.add(Pe);s.delete(dt.locatorHash),a.delete(dt.locatorHash),we.delete(dt.locatorHash);let Ne=I.get(dt.locatorHash);if(Ne!==void 0){let Pe=xp(I,rt.locatorHash);for(let Ye of Ne)Pe.add(Ye),we.add(Ye)}}for(let Re of[...X,...De])Re()};for(let ce of t.workspaces){let me=ce.anchoredLocator;h.delete(ce.anchoredDescriptor.descriptorHash),ie(ce.anchoredDescriptor,me,new Map,{top:me.locatorHash,optional:!1})}for(let ce of p.values()){if(!ce.root)continue;let me=s.get(ce.subject.locatorHash);if(typeof me>"u")continue;for(let Be of ce.requests.values()){let Ce=`p${fs(ce.subject.locatorHash,cn(ce.ident),Be.requester.locatorHash).slice(0,5)}`;c.set(Ce,{subject:ce.subject.locatorHash,requested:ce.ident,rootRequester:Be.requester.locatorHash,allRequesters:Array.from(XB(Be),g=>g.requester.locatorHash)})}let pe=[...XB(ce)];if(ce.provided.range!=="missing:"){let Be=te(ce.provided),Ce=Be.version??"0.0.0",g=ye=>{if(ye.startsWith(Ei.protocol)){if(!t.tryWorkspaceByLocator(Be))return null;ye=ye.slice(Ei.protocol.length),(ye==="^"||ye==="~")&&(ye="*")}return ye},we=!0;for(let ye of pe){let fe=g(ye.descriptor.range);if(fe===null){we=!1;continue}if(!eA(Ce,fe)){we=!1;let se=`p${fs(ce.subject.locatorHash,cn(ce.ident),ye.requester.locatorHash).slice(0,5)}`;f.push({type:1,subject:me,requested:ce.ident,requester:ye.requester,version:Ce,hash:se,requirementCount:pe.length})}}if(!we){let ye=pe.map(fe=>g(fe.descriptor.range));f.push({type:3,node:ce,range:ye.includes(null)?null:G8(ye),hash:ce.hash})}}else{let Be=!0;for(let Ce of pe)if(!Ce.meta?.optional){Be=!1;let g=`p${fs(ce.subject.locatorHash,cn(ce.ident),Ce.requester.locatorHash).slice(0,5)}`;f.push({type:0,subject:me,requested:ce.ident,requester:Ce.requester,hash:g})}Be||f.push({type:2,node:ce,hash:ce.hash})}}}function*hwt(t){let e=new Map;if("children"in t)e.set(t,t);else for(let r of t.requests.values())e.set(r,r);for(let[r,s]of e){yield{request:r,root:s};for(let a of r.children.values())e.has(a)||e.set(a,s)}}function gwt(t,e){let r=[],s=[],a=!1;for(let n of t.peerWarnings)if(!(n.type===1||n.type===0)){if(!t.tryWorkspaceByLocator(n.node.subject)){a=!0;continue}if(n.type===3){let c=t.storedResolutions.get(n.node.provided.descriptorHash);if(typeof c>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let f=t.storedPackages.get(c);if(typeof f>"u")throw new Error("Assertion failed: Expected the package to be registered");let p=A0(hwt(n.node),({request:C,root:S})=>eA(f.version??"0.0.0",C.descriptor.range)?A0.skip:C===S?es(t.configuration,C.requester):`${es(t.configuration,C.requester)} (via ${es(t.configuration,S.requester)})`),h=[...XB(n.node)].length>1?"and other dependencies request":"requests",E=n.range?nI(t.configuration,n.range):Ut(t.configuration,"but they have non-overlapping ranges!","redBright");r.push(`${es(t.configuration,n.node.ident)} is listed by your project with version ${zB(t.configuration,f.version??"0.0.0")} (${Ut(t.configuration,n.hash,pt.CODE)}), which doesn't satisfy what ${p} ${h} (${E}).`)}if(n.type===2){let c=n.node.requests.size>1?" and other dependencies":"";s.push(`${Yr(t.configuration,n.node.subject)} doesn't provide ${es(t.configuration,n.node.ident)} (${Ut(t.configuration,n.hash,pt.CODE)}), requested by ${es(t.configuration,n.node.requests.values().next().value.requester)}${c}.`)}}e.startSectionSync({reportFooter:()=>{e.reportWarning(86,`Some peer dependencies are incorrectly met by your project; run ${Ut(t.configuration,"yarn explain peer-requirements <hash>",pt.CODE)} for details, where ${Ut(t.configuration,"<hash>",pt.CODE)} is the six-letter p-prefixed code.`)},skipIfEmpty:!0},()=>{for(let n of Ys(r,c=>VE.default(c)))e.reportWarning(60,n);for(let n of Ys(s,c=>VE.default(c)))e.reportWarning(2,n)}),a&&e.reportWarning(86,`Some peer dependencies are incorrectly met by dependencies; run ${Ut(t.configuration,"yarn explain peer-requirements",pt.CODE)} for details.`)}var qR,GR,WR,KCe,wG,CG,BG,YR,lwt,cwt,YCe,uwt,fwt,Awt,ec,IG,VR,VCe,Tt,JCe=Ct(()=>{bt();bt();Bc();Wt();qR=Ie("crypto");fG();GR=et(mG()),WR=et(Od()),KCe=et(Ai()),wG=Ie("util"),CG=et(Ie("v8")),BG=et(Ie("zlib"));rG();dv();nG();iG();sI();J8();Fc();GCe();xv();yG();$d();EG();NQ();Qc();E0();kc();pT();g6();Np();Yo();YR=WE(process.env.YARN_LOCKFILE_VERSION_OVERRIDE??8),lwt=3,cwt=/ *, */g,YCe=/\/$/,uwt=32,fwt=(0,wG.promisify)(BG.default.gzip),Awt=(0,wG.promisify)(BG.default.gunzip),ec=(r=>(r.UpdateLockfile="update-lockfile",r.SkipBuild="skip-build",r))(ec||{}),IG={restoreLinkersCustomData:["linkersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["skippedBuilds","storedBuildState"]},VR=(a=>(a[a.NotProvided=0]="NotProvided",a[a.NotCompatible=1]="NotCompatible",a[a.NodeNotProvided=2]="NodeNotProvided",a[a.NodeNotCompatible=3]="NodeNotCompatible",a))(VR||{}),VCe=t=>fs(`${lwt}`,t),Tt=class t{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.skippedBuilds=new Set;this.lockfileLastVersion=null;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.peerWarnings=[];this.peerRequirementNodes=new Map;this.linkersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){if(!e.projectCwd)throw new nt(`No project found in ${r}`);let s=e.projectCwd,a=r,n=null;for(;n!==e.projectCwd;){if(n=a,le.existsSync(K.join(n,Er.manifest))){s=n;break}a=K.dirname(n)}let c=new t(e.projectCwd,{configuration:e});ze.telemetry?.reportProject(c.cwd),await c.setupResolutions(),await c.setupWorkspaces(),ze.telemetry?.reportWorkspaceCount(c.workspaces.length),ze.telemetry?.reportDependencyCount(c.workspaces.reduce((I,R)=>I+R.manifest.dependencies.size+R.manifest.devDependencies.size,0));let f=c.tryWorkspaceByCwd(s);if(f)return{project:c,workspace:f,locator:f.anchoredLocator};let p=await c.findLocatorForLocation(`${s}/`,{strict:!0});if(p)return{project:c,locator:p,workspace:null};let h=Ut(e,c.cwd,pt.PATH),E=Ut(e,K.relative(c.cwd,s),pt.PATH),C=`- If ${h} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,S=`- If ${h} is intended to be a project, it might be that you forgot to list ${E} in its workspace configuration.`,P=`- Finally, if ${h} is fine and you intend ${E} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new nt(`The nearest package directory (${Ut(e,s,pt.PATH)}) doesn't seem to be part of the project declared in ${Ut(e,c.cwd,pt.PATH)}. + +${[C,S,P].join(` +`)}`)}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=K.join(this.cwd,Er.lockfile),r=this.configuration.get("defaultLanguageName");if(le.existsSync(e)){let s=await le.readFilePromise(e,"utf8");this.lockFileChecksum=VCe(s);let a=cs(s);if(a.__metadata){let n=a.__metadata.version,c=a.__metadata.cacheKey;this.lockfileLastVersion=n,this.lockfileNeedsRefresh=n<YR;for(let f of Object.keys(a)){if(f==="__metadata")continue;let p=a[f];if(typeof p.resolution>"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${f})`);let h=Rp(p.resolution,!0),E=new Ht;E.load(p,{yamlCompatibilityMode:!0});let C=E.version,S=E.languageName||r,P=p.linkType.toUpperCase(),I=p.conditions??null,R=E.dependencies,N=E.peerDependencies,U=E.dependenciesMeta,W=E.peerDependenciesMeta,te=E.bin;if(p.checksum!=null){let Ae=typeof c<"u"&&!p.checksum.includes("/")?`${c}/${p.checksum}`:p.checksum;this.storedChecksums.set(h.locatorHash,Ae)}let ie={...h,version:C,languageName:S,linkType:P,conditions:I,dependencies:R,peerDependencies:N,dependenciesMeta:U,peerDependenciesMeta:W,bin:te};this.originalPackages.set(ie.locatorHash,ie);for(let Ae of f.split(cwt)){let ce=I0(Ae);n<=6&&(ce=this.configuration.normalizeDependency(ce),ce=On(ce,ce.range.replace(/^patch:[^@]+@(?!npm(:|%3A))/,"$1npm%3A"))),this.storedDescriptors.set(ce.descriptorHash,ce),this.storedResolutions.set(ce.descriptorHash,h.locatorHash)}}}else s.includes("yarn lockfile v1")&&(this.lockfileLastVersion=-1)}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,r=(0,WR.default)(4),s=async(a,n)=>{if(e.has(n))return a;e.add(n);let c=new ZI(n,{project:this});await r(()=>c.setup());let f=a.then(()=>{this.addWorkspace(c)});return Array.from(c.workspacesCwds).reduce(s,f)};await s(Promise.resolve(),this.cwd)}addWorkspace(e){let r=this.workspacesByIdent.get(e.anchoredLocator.identHash);if(typeof r<"u")throw new Error(`Duplicate workspace name ${es(this.configuration,e.anchoredLocator)}: ${ue.fromPortablePath(e.cwd)} conflicts with ${ue.fromPortablePath(r.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.anchoredLocator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){K.isAbsolute(e)||(e=K.resolve(this.cwd,e)),e=K.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let s of this.workspaces)K.relative(s.cwd,e).startsWith("../")||r&&r.cwd.length>=s.cwd.length||(r=s);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r>"u"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${es(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){if(e.range.startsWith(Ei.protocol)){let s=e.range.slice(Ei.protocol.length);if(s!=="^"&&s!=="~"&&s!=="*"&&!ul(s))return this.tryWorkspaceByCwd(s)}let r=this.tryWorkspaceByIdent(e);return r===null||(Tp(e)&&(e=YB(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${ni(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Gu(e)&&(e=tI(e)),r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${Yr(this.configuration,e)})`);return r}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let r=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let s=new Set(this.storedResolutions.values());typeof r<"u"&&!s.has(r)&&this.deleteLocator(r)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[r,s]of this.storedResolutions)s===e.locatorHash&&this.deleteDescriptor(r)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),r=new Map;for(let[s,a]of this.storedResolutions.entries()){let n=r.get(a);n||r.set(a,n=new Set),n.add(s)}for(let s of this.originalPackages.values()){let a;try{a=e.shouldPersistResolution(s,{project:this,resolver:e})}catch{a=!1}if(!a){this.deleteLocator(s.locatorHash);let n=r.get(s.locatorHash);if(n){r.delete(s.locatorHash);for(let c of n)this.deleteDescriptor(c)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,s]of e.dependencies)Tp(s)&&e.dependencies.set(r,YB(s))}getDependencyMeta(e,r){let s={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(cn(e));if(!n)return s;let c=n.get(null);if(c&&Object.assign(s,c),r===null||!KCe.default.valid(r))return s;for(let[f,p]of n)f!==null&&f===r&&Object.assign(s,p);return s}async findLocatorForLocation(e,{strict:r=!1}={}){let s=new Yi,a=this.configuration.getLinkers(),n={project:this,report:s};for(let c of a){let f=await c.findPackageLocator(e,n);if(f){if(r&&(await c.findPackageLocation(f,n)).replace(YCe,"")!==e.replace(YCe,""))continue;return f}}return null}async loadUserConfig(){let e=K.join(this.cwd,".pnp.cjs");await le.existsPromise(e)&&kp(e).setup();let r=K.join(this.cwd,"yarn.config.cjs");return await le.existsPromise(r)?kp(r):null}async preparePackage(e,{resolver:r,resolveOptions:s}){let a=await this.configuration.getPackageExtensions(),n=this.configuration.normalizePackage(e,{packageExtensions:a});for(let[c,f]of n.dependencies){let p=await this.configuration.reduceHook(E=>E.reduceDependency,f,this,n,f,{resolver:r,resolveOptions:s});if(!VB(f,p))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let h=r.bindDescriptor(p,n,s);n.dependencies.set(c,h)}return n}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions();let r=new Map(this.originalPackages),s=[];e.lockfileOnly||this.forgetTransientResolutions();let a=e.resolver||this.configuration.makeResolver(),n=new KI(a);await n.setup(this,{report:e.report});let c=e.lockfileOnly?[new jR(a)]:[n,a],f=new em([new JI(a),...c]),p=new em([...c]),h=this.configuration.makeFetcher(),E=e.lockfileOnly?{project:this,report:e.report,resolver:f}:{project:this,report:e.report,resolver:f,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:h,cacheOptions:{mirrorWriteOnly:!0}}},C=new Map,S=new Map,P=new Map,I=new Map,R=new Map,N=new Map,U=this.topLevelWorkspace.anchoredLocator,W=new Set,te=[],ie=Sj(),Ae=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(ho.progressViaTitle(),async se=>{let X=async rt=>{let Fe=await qE(async()=>await f.resolve(rt,E),ke=>`${Yr(this.configuration,rt)}: ${ke}`);if(!KB(rt,Fe))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Yr(this.configuration,rt)} to ${Yr(this.configuration,Fe)})`);I.set(Fe.locatorHash,Fe),!r.delete(Fe.locatorHash)&&!this.tryWorkspaceByLocator(Fe)&&s.push(Fe);let Pe=await this.preparePackage(Fe,{resolver:f,resolveOptions:E}),Ye=Uu([...Pe.dependencies.values()].map(ke=>j(ke)));return te.push(Ye),Ye.catch(()=>{}),S.set(Pe.locatorHash,Pe),Pe},De=async rt=>{let Fe=R.get(rt.locatorHash);if(typeof Fe<"u")return Fe;let Ne=Promise.resolve().then(()=>X(rt));return R.set(rt.locatorHash,Ne),Ne},Re=async(rt,Fe)=>{let Ne=await j(Fe);return C.set(rt.descriptorHash,rt),P.set(rt.descriptorHash,Ne.locatorHash),Ne},dt=async rt=>{se.setTitle(ni(this.configuration,rt));let Fe=this.resolutionAliases.get(rt.descriptorHash);if(typeof Fe<"u")return Re(rt,this.storedDescriptors.get(Fe));let Ne=f.getResolutionDependencies(rt,E),Pe=Object.fromEntries(await Uu(Object.entries(Ne).map(async([it,_e])=>{let x=f.bindDescriptor(_e,U,E),w=await j(x);return W.add(w.locatorHash),[it,w]}))),ke=(await qE(async()=>await f.getCandidates(rt,Pe,E),it=>`${ni(this.configuration,rt)}: ${it}`))[0];if(typeof ke>"u")throw new Yt(82,`${ni(this.configuration,rt)}: No candidates found`);if(e.checkResolutions){let{locators:it}=await p.getSatisfying(rt,Pe,[ke],{...E,resolver:p});if(!it.find(_e=>_e.locatorHash===ke.locatorHash))throw new Yt(78,`Invalid resolution ${jB(this.configuration,rt,ke)}`)}return C.set(rt.descriptorHash,rt),P.set(rt.descriptorHash,ke.locatorHash),De(ke)},j=rt=>{let Fe=N.get(rt.descriptorHash);if(typeof Fe<"u")return Fe;C.set(rt.descriptorHash,rt);let Ne=Promise.resolve().then(()=>dt(rt));return N.set(rt.descriptorHash,Ne),Ne};for(let rt of this.workspaces){let Fe=rt.anchoredDescriptor;te.push(j(Fe))}for(;te.length>0;){let rt=[...te];te.length=0,await Uu(rt)}});let ce=Yl(r.values(),se=>this.tryWorkspaceByLocator(se)?Yl.skip:se);if(s.length>0||ce.length>0){let se=new Set(this.workspaces.flatMap(rt=>{let Fe=S.get(rt.anchoredLocator.locatorHash);if(!Fe)throw new Error("Assertion failed: The workspace should have been resolved");return Array.from(Fe.dependencies.values(),Ne=>{let Pe=P.get(Ne.descriptorHash);if(!Pe)throw new Error("Assertion failed: The resolution should have been registered");return Pe})})),X=rt=>se.has(rt.locatorHash)?"0":"1",De=rt=>cl(rt),Re=Ys(s,[X,De]),dt=Ys(ce,[X,De]),j=e.report.getRecommendedLength();Re.length>0&&e.report.reportInfo(85,`${Ut(this.configuration,"+",pt.ADDED)} ${Zk(this.configuration,Re,j)}`),dt.length>0&&e.report.reportInfo(85,`${Ut(this.configuration,"-",pt.REMOVED)} ${Zk(this.configuration,dt,j)}`)}let me=new Set(this.resolutionAliases.values()),pe=new Set(S.keys()),Be=new Set,Ce=new Map,g=[],we=new Map;pwt({project:this,accessibleLocators:Be,volatileDescriptors:me,optionalBuilds:pe,peerRequirements:Ce,peerWarnings:g,peerRequirementNodes:we,allDescriptors:C,allResolutions:P,allPackages:S});for(let se of W)pe.delete(se);for(let se of me)C.delete(se),P.delete(se);let ye=new Set,fe=new Set;for(let se of S.values())se.conditions!=null&&pe.has(se.locatorHash)&&(kQ(se,Ae)||(kQ(se,ie)&&e.report.reportWarningOnce(77,`${Yr(this.configuration,se)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${Ut(this.configuration,"supportedArchitectures",pt.SETTING)} setting`),fe.add(se.locatorHash)),ye.add(se.locatorHash));this.storedResolutions=P,this.storedDescriptors=C,this.storedPackages=S,this.accessibleLocators=Be,this.conditionalLocators=ye,this.disabledLocators=fe,this.originalPackages=I,this.optionalBuilds=pe,this.peerRequirements=Ce,this.peerWarnings=g,this.peerRequirementNodes=we}async fetchEverything({cache:e,report:r,fetcher:s,mode:a,persistProject:n=!0}){let c={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},f=s||this.configuration.makeFetcher(),p={checksums:this.storedChecksums,project:this,cache:e,fetcher:f,report:r,cacheOptions:c},h=Array.from(new Set(Ys(this.storedResolutions.values(),[I=>{let R=this.storedPackages.get(I);if(!R)throw new Error("Assertion failed: The locator should have been registered");return cl(R)}])));a==="update-lockfile"&&(h=h.filter(I=>!this.storedChecksums.has(I)));let E=!1,C=ho.progressViaCounter(h.length);await r.reportProgress(C);let S=(0,WR.default)(uwt);if(await Uu(h.map(I=>S(async()=>{let R=this.storedPackages.get(I);if(!R)throw new Error("Assertion failed: The locator should have been registered");if(Gu(R))return;let N;try{N=await f.fetch(R,p)}catch(U){U.message=`${Yr(this.configuration,R)}: ${U.message}`,r.reportExceptionOnce(U),E=U;return}N.checksum!=null?this.storedChecksums.set(R.locatorHash,N.checksum):this.storedChecksums.delete(R.locatorHash),N.releaseFs&&N.releaseFs()}).finally(()=>{C.tick()}))),E)throw E;let P=n&&a!=="update-lockfile"?await this.cacheCleanup({cache:e,report:r}):null;if(r.cacheMisses.size>0||P){let R=(await Promise.all([...r.cacheMisses].map(async ce=>{let me=this.storedPackages.get(ce),pe=this.storedChecksums.get(ce)??null,Be=e.getLocatorPath(me,pe);return(await le.statPromise(Be)).size}))).reduce((ce,me)=>ce+me,0)-(P?.size??0),N=r.cacheMisses.size,U=P?.count??0,W=`${Gk(N,{zero:"No new packages",one:"A package was",more:`${Ut(this.configuration,N,pt.NUMBER)} packages were`})} added to the project`,te=`${Gk(U,{zero:"none were",one:"one was",more:`${Ut(this.configuration,U,pt.NUMBER)} were`})} removed`,ie=R!==0?` (${Ut(this.configuration,R,pt.SIZE_DIFF)})`:"",Ae=U>0?N>0?`${W}, and ${te}${ie}.`:`${W}, but ${te}${ie}.`:`${W}${ie}.`;r.reportInfo(13,Ae)}}async linkEverything({cache:e,report:r,fetcher:s,mode:a}){let n={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},c=s||this.configuration.makeFetcher(),f={checksums:this.storedChecksums,project:this,cache:e,fetcher:c,report:r,cacheOptions:n},p=this.configuration.getLinkers(),h={project:this,report:r},E=new Map(p.map(ye=>{let fe=ye.makeInstaller(h),se=ye.getCustomDataKey(),X=this.linkersCustomData.get(se);return typeof X<"u"&&fe.attachCustomData(X),[ye,fe]})),C=new Map,S=new Map,P=new Map,I=new Map(await Uu([...this.accessibleLocators].map(async ye=>{let fe=this.storedPackages.get(ye);if(!fe)throw new Error("Assertion failed: The locator should have been registered");return[ye,await c.fetch(fe,f)]}))),R=[],N=new Set,U=[];for(let ye of this.accessibleLocators){let fe=this.storedPackages.get(ye);if(typeof fe>"u")throw new Error("Assertion failed: The locator should have been registered");let se=I.get(fe.locatorHash);if(typeof se>"u")throw new Error("Assertion failed: The fetch result should have been registered");let X=[],De=dt=>{X.push(dt)},Re=this.tryWorkspaceByLocator(fe);if(Re!==null){let dt=[],{scripts:j}=Re.manifest;for(let Fe of["preinstall","install","postinstall"])j.has(Fe)&&dt.push({type:0,script:Fe});try{for(let[Fe,Ne]of E)if(Fe.supportsPackage(fe,h)&&(await Ne.installPackage(fe,se,{holdFetchResult:De})).buildRequest!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{X.length===0?se.releaseFs?.():R.push(Uu(X).catch(()=>{}).then(()=>{se.releaseFs?.()}))}let rt=K.join(se.packageFs.getRealPath(),se.prefixPath);S.set(fe.locatorHash,rt),!Gu(fe)&&dt.length>0&&P.set(fe.locatorHash,{buildDirectives:dt,buildLocations:[rt]})}else{let dt=p.find(Fe=>Fe.supportsPackage(fe,h));if(!dt)throw new Yt(12,`${Yr(this.configuration,fe)} isn't supported by any available linker`);let j=E.get(dt);if(!j)throw new Error("Assertion failed: The installer should have been registered");let rt;try{rt=await j.installPackage(fe,se,{holdFetchResult:De})}finally{X.length===0?se.releaseFs?.():R.push(Uu(X).then(()=>{}).then(()=>{se.releaseFs?.()}))}C.set(fe.locatorHash,dt),S.set(fe.locatorHash,rt.packageLocation),rt.buildRequest&&rt.packageLocation&&(rt.buildRequest.skipped?(N.add(fe.locatorHash),this.skippedBuilds.has(fe.locatorHash)||U.push([fe,rt.buildRequest.explain])):P.set(fe.locatorHash,{buildDirectives:rt.buildRequest.directives,buildLocations:[rt.packageLocation]}))}}let W=new Map;for(let ye of this.accessibleLocators){let fe=this.storedPackages.get(ye);if(!fe)throw new Error("Assertion failed: The locator should have been registered");let se=this.tryWorkspaceByLocator(fe)!==null,X=async(De,Re)=>{let dt=S.get(fe.locatorHash);if(typeof dt>"u")throw new Error(`Assertion failed: The package (${Yr(this.configuration,fe)}) should have been registered`);let j=[];for(let rt of fe.dependencies.values()){let Fe=this.storedResolutions.get(rt.descriptorHash);if(typeof Fe>"u")throw new Error(`Assertion failed: The resolution (${ni(this.configuration,rt)}, from ${Yr(this.configuration,fe)})should have been registered`);let Ne=this.storedPackages.get(Fe);if(typeof Ne>"u")throw new Error(`Assertion failed: The package (${Fe}, resolved from ${ni(this.configuration,rt)}) should have been registered`);let Pe=this.tryWorkspaceByLocator(Ne)===null?C.get(Fe):null;if(typeof Pe>"u")throw new Error(`Assertion failed: The package (${Fe}, resolved from ${ni(this.configuration,rt)}) should have been registered`);Pe===De||Pe===null?S.get(Ne.locatorHash)!==null&&j.push([rt,Ne]):!se&&dt!==null&&LB(W,Fe).push(dt)}dt!==null&&await Re.attachInternalDependencies(fe,j)};if(se)for(let[De,Re]of E)De.supportsPackage(fe,h)&&await X(De,Re);else{let De=C.get(fe.locatorHash);if(!De)throw new Error("Assertion failed: The linker should have been found");let Re=E.get(De);if(!Re)throw new Error("Assertion failed: The installer should have been registered");await X(De,Re)}}for(let[ye,fe]of W){let se=this.storedPackages.get(ye);if(!se)throw new Error("Assertion failed: The package should have been registered");let X=C.get(se.locatorHash);if(!X)throw new Error("Assertion failed: The linker should have been found");let De=E.get(X);if(!De)throw new Error("Assertion failed: The installer should have been registered");await De.attachExternalDependents(se,fe)}let te=new Map;for(let[ye,fe]of E){let se=await fe.finalizeInstall();for(let X of se?.records??[])X.buildRequest.skipped?(N.add(X.locator.locatorHash),this.skippedBuilds.has(X.locator.locatorHash)||U.push([X.locator,X.buildRequest.explain])):P.set(X.locator.locatorHash,{buildDirectives:X.buildRequest.directives,buildLocations:X.buildLocations});typeof se?.customData<"u"&&te.set(ye.getCustomDataKey(),se.customData)}if(this.linkersCustomData=te,await Uu(R),a==="skip-build")return;for(let[,ye]of Ys(U,([fe])=>cl(fe)))ye(r);let ie=new Set(P.keys()),Ae=(0,qR.createHash)("sha512");Ae.update(process.versions.node),await this.configuration.triggerHook(ye=>ye.globalHashGeneration,this,ye=>{Ae.update("\0"),Ae.update(ye)});let ce=Ae.digest("hex"),me=new Map,pe=ye=>{let fe=me.get(ye.locatorHash);if(typeof fe<"u")return fe;let se=this.storedPackages.get(ye.locatorHash);if(typeof se>"u")throw new Error("Assertion failed: The package should have been registered");let X=(0,qR.createHash)("sha512");X.update(ye.locatorHash),me.set(ye.locatorHash,"<recursive>");for(let De of se.dependencies.values()){let Re=this.storedResolutions.get(De.descriptorHash);if(typeof Re>"u")throw new Error(`Assertion failed: The resolution (${ni(this.configuration,De)}) should have been registered`);let dt=this.storedPackages.get(Re);if(typeof dt>"u")throw new Error("Assertion failed: The package should have been registered");X.update(pe(dt))}return fe=X.digest("hex"),me.set(ye.locatorHash,fe),fe},Be=(ye,fe)=>{let se=(0,qR.createHash)("sha512");se.update(ce),se.update(pe(ye));for(let X of fe)se.update(X);return se.digest("hex")},Ce=new Map,g=!1,we=ye=>{let fe=new Set([ye.locatorHash]);for(let se of fe){let X=this.storedPackages.get(se);if(!X)throw new Error("Assertion failed: The package should have been registered");for(let De of X.dependencies.values()){let Re=this.storedResolutions.get(De.descriptorHash);if(!Re)throw new Error(`Assertion failed: The resolution (${ni(this.configuration,De)}) should have been registered`);if(Re!==ye.locatorHash&&ie.has(Re))return!1;let dt=this.storedPackages.get(Re);if(!dt)throw new Error("Assertion failed: The package should have been registered");let j=this.tryWorkspaceByLocator(dt);if(j){if(j.anchoredLocator.locatorHash!==ye.locatorHash&&ie.has(j.anchoredLocator.locatorHash))return!1;fe.add(j.anchoredLocator.locatorHash)}fe.add(Re)}}return!0};for(;ie.size>0;){let ye=ie.size,fe=[];for(let se of ie){let X=this.storedPackages.get(se);if(!X)throw new Error("Assertion failed: The package should have been registered");if(!we(X))continue;let De=P.get(X.locatorHash);if(!De)throw new Error("Assertion failed: The build directive should have been registered");let Re=Be(X,De.buildLocations);if(this.storedBuildState.get(X.locatorHash)===Re){Ce.set(X.locatorHash,Re),ie.delete(se);continue}g||(await this.persistInstallStateFile(),g=!0),this.storedBuildState.has(X.locatorHash)?r.reportInfo(8,`${Yr(this.configuration,X)} must be rebuilt because its dependency tree changed`):r.reportInfo(7,`${Yr(this.configuration,X)} must be built because it never has been before or the last one failed`);let dt=De.buildLocations.map(async j=>{if(!K.isAbsolute(j))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${j})`);for(let rt of De.buildDirectives){let Fe=`# This file contains the result of Yarn building a package (${cl(X)}) +`;switch(rt.type){case 0:Fe+=`# Script name: ${rt.script} +`;break;case 1:Fe+=`# Script code: ${rt.script} +`;break}let Ne=null;if(!await le.mktempPromise(async Ye=>{let ke=K.join(Ye,"build.log"),{stdout:it,stderr:_e}=this.configuration.getSubprocessStreams(ke,{header:Fe,prefix:Yr(this.configuration,X),report:r}),x;try{switch(rt.type){case 0:x=await OT(X,rt.script,[],{cwd:j,project:this,stdin:Ne,stdout:it,stderr:_e});break;case 1:x=await f6(X,rt.script,[],{cwd:j,project:this,stdin:Ne,stdout:it,stderr:_e});break}}catch(y){_e.write(y.stack),x=1}if(it.end(),_e.end(),x===0)return!0;le.detachTemp(Ye);let w=`${Yr(this.configuration,X)} couldn't be built successfully (exit code ${Ut(this.configuration,x,pt.NUMBER)}, logs can be found here: ${Ut(this.configuration,ke,pt.PATH)})`,b=this.optionalBuilds.has(X.locatorHash);return b?r.reportInfo(9,w):r.reportError(9,w),Wme&&r.reportFold(ue.fromPortablePath(ke),le.readFileSync(ke,"utf8")),b}))return!1}return!0});fe.push(...dt,Promise.allSettled(dt).then(j=>{ie.delete(se),j.every(rt=>rt.status==="fulfilled"&&rt.value===!0)&&Ce.set(X.locatorHash,Re)}))}if(await Uu(fe),ye===ie.size){let se=Array.from(ie).map(X=>{let De=this.storedPackages.get(X);if(!De)throw new Error("Assertion failed: The package should have been registered");return Yr(this.configuration,De)}).join(", ");r.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${se})`);break}}this.storedBuildState=Ce,this.skippedBuilds=N}async installWithNewReport(e,r){return(await Ot.start({configuration:this.configuration,json:e.json,stdout:e.stdout,forceSectionAlignment:!0,includeLogs:!e.json&&!e.quiet,includeVersion:!0},async a=>{await this.install({...r,report:a})})).exitCode()}async install(e){let r=this.configuration.get("nodeLinker");ze.telemetry?.reportInstall(r);let s=!1;if(await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{this.configuration.get("enableOfflineMode")&&e.report.reportWarning(90,"Offline work is enabled; Yarn won't fetch packages from the remote registry if it can avoid it"),await this.configuration.triggerHook(E=>E.validateProject,this,{reportWarning:(E,C)=>{e.report.reportWarning(E,C)},reportError:(E,C)=>{e.report.reportError(E,C),s=!0}})}),s)return;let a=await this.configuration.getPackageExtensions();for(let E of a.values())for(let[,C]of E)for(let S of C)S.status="inactive";let n=K.join(this.cwd,Er.lockfile),c=null;if(e.immutable)try{c=await le.readFilePromise(n,"utf8")}catch(E){throw E.code==="ENOENT"?new Yt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):E}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{gwt(this,e.report);for(let[,E]of a)for(let[,C]of E)for(let S of C)if(S.userProvided){let P=Ut(this.configuration,S,pt.PACKAGE_EXTENSION);switch(S.status){case"inactive":e.report.reportWarning(68,`${P}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${P}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(c!==null){let E=yd(c,this.generateLockfile());if(E!==c){let C=uCe(n,n,c,E,void 0,void 0,{maxEditLength:100});if(C){e.report.reportSeparator();for(let S of C.hunks){e.report.reportInfo(null,`@@ -${S.oldStart},${S.oldLines} +${S.newStart},${S.newLines} @@`);for(let P of S.lines)P.startsWith("+")?e.report.reportError(28,Ut(this.configuration,P,pt.ADDED)):P.startsWith("-")?e.report.reportError(28,Ut(this.configuration,P,pt.REMOVED)):e.report.reportInfo(null,Ut(this.configuration,P,"grey"))}e.report.reportSeparator()}throw new Yt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let E of a.values())for(let[,C]of E)for(let S of C)S.userProvided&&S.status==="active"&&ze.telemetry?.reportPackageExtension(Jd(S,pt.PACKAGE_EXTENSION));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e)});let f=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],p=await Promise.all(f.map(async E=>vQ(E,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${Ut(this.configuration,"mode=update-lockfile",pt.CODE)}`);return}await this.linkEverything(e);let E=await Promise.all(f.map(async C=>vQ(C,{cwd:this.cwd})));for(let C=0;C<f.length;++C)p[C]!==E[C]&&e.report.reportError(64,`The checksum for ${f[C]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile();let h=!1;await e.report.startTimerPromise("Post-install validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(E=>E.validateProjectAfterInstall,this,{reportWarning:(E,C)=>{e.report.reportWarning(E,C)},reportError:(E,C)=>{e.report.reportError(E,C),h=!0}})}),!h&&await this.configuration.triggerHook(E=>E.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,c]of this.storedResolutions.entries()){let f=e.get(c);f||e.set(c,f=new Set),f.add(n)}let r={},{cacheKey:s}=Jr.getCacheKey(this.configuration);r.__metadata={version:YR,cacheKey:s};for(let[n,c]of e.entries()){let f=this.originalPackages.get(n);if(!f)continue;let p=[];for(let C of c){let S=this.storedDescriptors.get(C);if(!S)throw new Error("Assertion failed: The descriptor should have been registered");p.push(S)}let h=p.map(C=>ll(C)).sort().join(", "),E=new Ht;E.version=f.linkType==="HARD"?f.version:"0.0.0-use.local",E.languageName=f.languageName,E.dependencies=new Map(f.dependencies),E.peerDependencies=new Map(f.peerDependencies),E.dependenciesMeta=new Map(f.dependenciesMeta),E.peerDependenciesMeta=new Map(f.peerDependenciesMeta),E.bin=new Map(f.bin),r[h]={...E.exportTo({},{compatibilityMode:!1}),linkType:f.linkType.toLowerCase(),resolution:cl(f),checksum:this.storedChecksums.get(f.locatorHash),conditions:f.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. +`,`# Manual changes might be lost - proceed with caution! +`].join("")} +`+il(r)}async persistLockfile(){let e=K.join(this.cwd,Er.lockfile),r="";try{r=await le.readFilePromise(e,"utf8")}catch{}let s=this.generateLockfile(),a=yd(r,s);a!==r&&(await le.writeFilePromise(e,a),this.lockFileChecksum=VCe(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let c of Object.values(IG))e.push(...c);let r=(0,GR.default)(this,e),s=CG.default.serialize(r),a=fs(s);if(this.installStateChecksum===a)return;let n=this.configuration.get("installStatePath");await le.mkdirPromise(K.dirname(n),{recursive:!0}),await le.writeFilePromise(n,await fwt(s)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:s=!0}={}){let a=this.configuration.get("installStatePath"),n;try{let c=await Awt(await le.readFilePromise(a));n=CG.default.deserialize(c),this.installStateChecksum=fs(c)}catch{r&&await this.applyLightResolution();return}e&&typeof n.linkersCustomData<"u"&&(this.linkersCustomData=n.linkersCustomData),s&&Object.assign(this,(0,GR.default)(n,IG.restoreBuildState)),r&&(n.lockFileChecksum===this.lockFileChecksum?Object.assign(this,(0,GR.default)(n,IG.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new Yi}),await this.persistInstallStateFile()}async persist(){let e=(0,WR.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>e(()=>r.persistManifest()))])}async cacheCleanup({cache:e,report:r}){if(this.configuration.get("enableGlobalCache"))return null;let s=new Set([".gitignore"]);if(!sH(e.cwd,this.cwd)||!await le.existsPromise(e.cwd))return null;let a=[];for(let c of await le.readdirPromise(e.cwd)){if(s.has(c))continue;let f=K.resolve(e.cwd,c);e.markedFiles.has(f)||(e.immutable?r.reportError(56,`${Ut(this.configuration,K.basename(f),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):a.push(le.lstatPromise(f).then(async p=>(await le.removePromise(f),p.size))))}if(a.length===0)return null;let n=await Promise.all(a);return{count:a.length,size:n.reduce((c,f)=>c+f,0)}}}});function dwt(t){let s=Math.floor(t.timeNow/864e5),a=t.updateInterval*864e5,n=t.state.lastUpdate??t.timeNow+a+Math.floor(a*t.randomInitialInterval),c=n+a,f=t.state.lastTips??s*864e5,p=f+864e5+8*36e5-t.timeZone,h=c<=t.timeNow,E=p<=t.timeNow,C=null;return(h||E||!t.state.lastUpdate||!t.state.lastTips)&&(C={},C.lastUpdate=h?t.timeNow:n,C.lastTips=f,C.blocks=h?{}:t.state.blocks,C.displayedTips=t.state.displayedTips),{nextState:C,triggerUpdate:h,triggerTips:E,nextTips:E?s*864e5:f}}var XI,zCe=Ct(()=>{bt();Pv();E0();fT();kc();Np();XI=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.nextTips=0;this.displayedTips=[];this.shouldCommitTips=!1;this.configuration=e;let s=this.getRegistryPath();this.isNew=!le.existsSync(s),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(e){let r=new Set(this.displayedTips),s=f=>f&&un?eA(un,f):!1,a=e.map((f,p)=>p).filter(f=>e[f]&&s(e[f]?.selector));if(a.length===0)return null;let n=a.filter(f=>!r.has(f));if(n.length===0){let f=Math.floor(a.length*.2);this.displayedTips=f>0?this.displayedTips.slice(-f):[],n=a.filter(p=>!r.has(p))}let c=n[Math.floor(Math.random()*n.length)];return this.displayedTips.push(c),this.commitTips(),e[c]}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"<none>")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,r){xp(this.values,e).add(r)}reportEnumerator(e,r){xp(this.enumerators,e).add(fs(r))}reportHit(e,r="*"){let s=n3(this.hits,e),a=Vl(s,r,()=>0);s.set(r,a+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return K.join(e,"telemetry.json")}sendReport(e){let r=this.getRegistryPath(),s;try{s=le.readJsonSync(r)}catch{s={}}let{nextState:a,triggerUpdate:n,triggerTips:c,nextTips:f}=dwt({state:s,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=f,this.displayedTips=s.displayedTips??[],a!==null)try{le.mkdirSync(K.dirname(r),{recursive:!0}),le.writeJsonSync(r,a)}catch{return!1}if(c&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),n){let p=s.blocks??{};if(Object.keys(p).length===0){let h=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,E=C=>vj(h,C,{configuration:this.configuration}).catch(()=>{});for(let[C,S]of Object.entries(s.blocks??{})){if(Object.keys(S).length===0)continue;let P=S;P.userId=C,P.reportType="primary";for(let N of Object.keys(P.enumerators??{}))P.enumerators[N]=P.enumerators[N].length;E(P);let I=new Map,R=20;for(let[N,U]of Object.entries(P.values))U.length>0&&I.set(N,U.slice(0,R));for(;I.size>0;){let N={};N.userId=C,N.reportType="secondary",N.metrics={};for(let[U,W]of I)N.metrics[U]=W.shift(),W.length===0&&I.delete(U);E(N)}}}}return!0}applyChanges(){let e=this.getRegistryPath(),r;try{r=le.readJsonSync(e)}catch{r={}}let s=this.configuration.get("telemetryUserId")??"*",a=r.blocks=r.blocks??{},n=a[s]=a[s]??{};for(let c of this.hits.keys()){let f=n.hits=n.hits??{},p=f[c]=f[c]??{};for(let[h,E]of this.hits.get(c))p[h]=(p[h]??0)+E}for(let c of["values","enumerators"])for(let f of this[c].keys()){let p=n[c]=n[c]??{};p[f]=[...new Set([...p[f]??[],...this[c].get(f)??[]])]}this.shouldCommitTips&&(r.lastTips=this.nextTips,r.displayedTips=this.displayedTips),le.mkdirSync(K.dirname(e),{recursive:!0}),le.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}}});var Xv={};Vt(Xv,{BuildDirectiveType:()=>_R,CACHE_CHECKPOINT:()=>tG,CACHE_VERSION:()=>MR,Cache:()=>Jr,Configuration:()=>ze,DEFAULT_RC_FILENAME:()=>Qj,FormatType:()=>Dde,InstallMode:()=>ec,LEGACY_PLUGINS:()=>hv,LOCKFILE_VERSION:()=>YR,LegacyMigrationResolver:()=>KI,LightReport:()=>uA,LinkType:()=>YE,LockfileResolver:()=>JI,Manifest:()=>Ht,MessageName:()=>Dr,MultiFetcher:()=>aI,PackageExtensionStatus:()=>a3,PackageExtensionType:()=>o3,PeerWarningType:()=>VR,Project:()=>Tt,Report:()=>ho,ReportError:()=>Yt,SettingsType:()=>gv,StreamReport:()=>Ot,TAG_REGEXP:()=>Up,TelemetryManager:()=>XI,ThrowReport:()=>Yi,VirtualFetcher:()=>lI,WindowsLinkType:()=>yT,Workspace:()=>ZI,WorkspaceFetcher:()=>cI,WorkspaceResolver:()=>Ei,YarnVersion:()=>un,execUtils:()=>Gr,folderUtils:()=>FQ,formatUtils:()=>he,hashUtils:()=>Nn,httpUtils:()=>An,miscUtils:()=>je,nodeUtils:()=>ps,parseMessageName:()=>zx,reportOptionDeprecations:()=>vI,scriptUtils:()=>In,semverUtils:()=>Or,stringifyMessageName:()=>Vf,structUtils:()=>q,tgzUtils:()=>gs,treeUtils:()=>Qs});var Ve=Ct(()=>{hT();NQ();Qc();E0();fT();kc();pT();g6();Np();Yo();JIe();rCe();rG();dv();dv();sCe();nG();oCe();iG();sI();Zx();K8();JCe();Fc();xv();zCe();yG();z8();Z8();$d();EG();Pv();hAe()});var rwe=L((wrr,eS)=>{"use strict";var ywt=process.env.TERM_PROGRAM==="Hyper",Ewt=process.platform==="win32",$Ce=process.platform==="linux",vG={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},ewe=Object.assign({},vG,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),twe=Object.assign({},vG,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:$Ce?"\u25B8":"\u276F",pointerSmall:$Ce?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});eS.exports=Ewt&&!ywt?ewe:twe;Reflect.defineProperty(eS.exports,"common",{enumerable:!1,value:vG});Reflect.defineProperty(eS.exports,"windows",{enumerable:!1,value:ewe});Reflect.defineProperty(eS.exports,"other",{enumerable:!1,value:twe})});var Ju=L((Brr,SG)=>{"use strict";var Iwt=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),Cwt=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,nwe=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(t.enabled=process.env.FORCE_COLOR!=="0");let e=n=>{let c=n.open=`\x1B[${n.codes[0]}m`,f=n.close=`\x1B[${n.codes[1]}m`,p=n.regex=new RegExp(`\\u001b\\[${n.codes[1]}m`,"g");return n.wrap=(h,E)=>{h.includes(f)&&(h=h.replace(p,f+c));let C=c+h+f;return E?C.replace(/\r*\n/g,`${f}$&${c}`):C},n},r=(n,c,f)=>typeof n=="function"?n(c):n.wrap(c,f),s=(n,c)=>{if(n===""||n==null)return"";if(t.enabled===!1)return n;if(t.visible===!1)return"";let f=""+n,p=f.includes(` +`),h=c.length;for(h>0&&c.includes("unstyle")&&(c=[...new Set(["unstyle",...c])].reverse());h-- >0;)f=r(t.styles[c[h]],f,p);return f},a=(n,c,f)=>{t.styles[n]=e({name:n,codes:c}),(t.keys[f]||(t.keys[f]=[])).push(n),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(h){t.alias(n,h)},get(){let h=E=>s(E,h.stack);return Reflect.setPrototypeOf(h,t),h.stack=this.stack?this.stack.concat(n):[n],h}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=Cwt,t.hasColor=t.hasAnsi=n=>(t.ansiRegex.lastIndex=0,typeof n=="string"&&n!==""&&t.ansiRegex.test(n)),t.alias=(n,c)=>{let f=typeof c=="string"?t[c]:c;if(typeof f!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");f.stack||(Reflect.defineProperty(f,"name",{value:n}),t.styles[n]=f,f.stack=[n]),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(p){t.alias(n,p)},get(){let p=h=>s(h,p.stack);return Reflect.setPrototypeOf(p,t),p.stack=this.stack?this.stack.concat(f.stack):f.stack,p}})},t.theme=n=>{if(!Iwt(n))throw new TypeError("Expected theme to be an object");for(let c of Object.keys(n))t.alias(c,n[c]);return t},t.alias("unstyle",n=>typeof n=="string"&&n!==""?(t.ansiRegex.lastIndex=0,n.replace(t.ansiRegex,"")):""),t.alias("noop",n=>n),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=rwe(),t.define=a,t};SG.exports=nwe();SG.exports.create=nwe});var $o=L(pn=>{"use strict";var wwt=Object.prototype.toString,Gc=Ju(),iwe=!1,DG=[],swe={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};pn.longest=(t,e)=>t.reduce((r,s)=>Math.max(r,e?s[e].length:s.length),0);pn.hasColor=t=>!!t&&Gc.hasColor(t);var JR=pn.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);pn.nativeType=t=>wwt.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");pn.isAsyncFn=t=>pn.nativeType(t)==="asyncfunction";pn.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";pn.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;pn.scrollDown=(t=[])=>[...t.slice(1),t[0]];pn.scrollUp=(t=[])=>[t.pop(),...t];pn.reorder=(t=[])=>{let e=t.slice();return e.sort((r,s)=>r.index>s.index?1:r.index<s.index?-1:0),e};pn.swap=(t,e,r)=>{let s=t.length,a=r===s?0:r<0?s-1:r,n=t[e];t[e]=t[a],t[a]=n};pn.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};pn.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};pn.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:s=` +`+r,width:a=80}=e,n=(s+r).match(/[^\S\n]/g)||[];a-=n.length;let c=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,f=t.trim(),p=new RegExp(c,"g"),h=f.match(p)||[];return h=h.map(E=>E.replace(/\n$/,"")),e.padEnd&&(h=h.map(E=>E.padEnd(a," "))),e.padStart&&(h=h.map(E=>E.padStart(a," "))),r+h.join(s)};pn.unmute=t=>{let e=t.stack.find(s=>Gc.keys.color.includes(s));return e?Gc[e]:t.stack.find(s=>s.slice(2)==="bg")?Gc[e.slice(2)]:s=>s};pn.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";pn.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(s=>Gc.keys.color.includes(s));if(e){let s=Gc["bg"+pn.pascal(e)];return s?s.black:t}let r=t.stack.find(s=>s.slice(0,2)==="bg");return r?Gc[r.slice(2).toLowerCase()]||t:Gc.none};pn.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(s=>Gc.keys.color.includes(s)),r=t.stack.find(s=>s.slice(0,2)==="bg");if(e&&!r)return Gc[swe[e]||e];if(r){let s=r.slice(2).toLowerCase(),a=swe[s];return a&&Gc["bg"+pn.pascal(a)]||t}return Gc.none};pn.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),s=e>=12?"pm":"am";e=e%12;let a=e===0?12:e,n=r<10?"0"+r:r;return a+":"+n+" "+s};pn.set=(t={},e="",r)=>e.split(".").reduce((s,a,n,c)=>{let f=c.length-1>n?s[a]||{}:r;return!pn.isObject(f)&&n<c.length-1&&(f={}),s[a]=f},t);pn.get=(t={},e="",r)=>{let s=t[e]==null?e.split(".").reduce((a,n)=>a&&a[n],t):t[e];return s??r};pn.mixin=(t,e)=>{if(!JR(t))return e;if(!JR(e))return t;for(let r of Object.keys(e)){let s=Object.getOwnPropertyDescriptor(e,r);if(s.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&JR(s.value)){let a=Object.getOwnPropertyDescriptor(t,r);JR(a.value)?t[r]=pn.merge({},t[r],e[r]):Reflect.defineProperty(t,r,s)}else Reflect.defineProperty(t,r,s);else Reflect.defineProperty(t,r,s)}return t};pn.merge=(...t)=>{let e={};for(let r of t)pn.mixin(e,r);return e};pn.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let s of Object.keys(r)){let a=r[s];typeof a=="function"?pn.define(t,s,a.bind(e)):pn.define(t,s,a)}};pn.onExit=t=>{let e=(r,s)=>{iwe||(iwe=!0,DG.forEach(a=>a()),r===!0&&process.exit(128+s))};DG.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),DG.push(t)};pn.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};pn.defineExport=(t,e,r)=>{let s;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(a){s=a},get(){return s?s():r()}})}});var owe=L(rC=>{"use strict";rC.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};rC.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};rC.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};rC.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};rC.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var cwe=L((Drr,lwe)=>{"use strict";var awe=Ie("readline"),Bwt=owe(),vwt=/^(?:\x1b)([a-zA-Z0-9])$/,Swt=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,Dwt={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function bwt(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function Pwt(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var zR=(t="",e={})=>{let r,s={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,...e};if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=s.sequence||""),s.sequence=s.sequence||t||s.name,t==="\r")s.raw=void 0,s.name="return";else if(t===` +`)s.name="enter";else if(t===" ")s.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x1B\x7F"||t==="\x1B\b")s.name="backspace",s.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")s.name="escape",s.meta=t.length===2;else if(t===" "||t==="\x1B ")s.name="space",s.meta=t.length===2;else if(t<="")s.name=String.fromCharCode(t.charCodeAt(0)+97-1),s.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")s.name="number";else if(t.length===1&&t>="a"&&t<="z")s.name=t;else if(t.length===1&&t>="A"&&t<="Z")s.name=t.toLowerCase(),s.shift=!0;else if(r=vwt.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(r[1]);else if(r=Swt.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(s.option=!0);let n=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),c=(r[3]||r[5]||1)-1;s.ctrl=!!(c&4),s.meta=!!(c&10),s.shift=!!(c&1),s.code=n,s.name=Dwt[n],s.shift=bwt(n)||s.shift,s.ctrl=Pwt(n)||s.ctrl}return s};zR.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let s=awe.createInterface({terminal:!0,input:r});awe.emitKeypressEvents(r,s);let a=(f,p)=>e(f,zR(f,p),s),n=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a),s.resume(),()=>{r.isTTY&&r.setRawMode(n),r.removeListener("keypress",a),s.pause(),s.close()}};zR.action=(t,e,r)=>{let s={...Bwt,...r};return e.ctrl?(e.action=s.ctrl[e.name],e):e.option&&s.option?(e.action=s.option[e.name],e):e.shift?(e.action=s.shift[e.name],e):(e.action=s.keys[e.name],e)};lwe.exports=zR});var fwe=L((brr,uwe)=>{"use strict";uwe.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(e)for(let r of Object.keys(e)){let s=e[r];typeof s=="number"&&(s={interval:s}),xwt(t,r,s)}};function xwt(t,e,r={}){let s=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},a=r.interval||120;s.frames=r.frames||[],s.loading=!0;let n=setInterval(()=>{s.ms=Date.now()-s.start,s.tick++,t.render()},a);return s.stop=()=>{s.loading=!1,clearInterval(n)},Reflect.defineProperty(s,"interval",{value:n}),t.once("close",()=>s.stop()),s.stop}});var pwe=L((Prr,Awe)=>{"use strict";var{define:kwt,width:Qwt}=$o(),bG=class{constructor(e){let r=e.options;kwt(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=Qwt(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};Awe.exports=bG});var gwe=L((xrr,hwe)=>{"use strict";var PG=$o(),mo=Ju(),xG={default:mo.noop,noop:mo.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||PG.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||PG.complement(this.primary)},primary:mo.cyan,success:mo.green,danger:mo.magenta,strong:mo.bold,warning:mo.yellow,muted:mo.dim,disabled:mo.gray,dark:mo.dim.gray,underline:mo.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};xG.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(mo.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(mo.visible=t.styles.visible);let e=PG.merge({},xG,t.styles);delete e.merge;for(let r of Object.keys(mo))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>mo[r]});for(let r of Object.keys(mo.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>mo[r]});return e};hwe.exports=xG});var mwe=L((krr,dwe)=>{"use strict";var kG=process.platform==="win32",Xp=Ju(),Twt=$o(),QG={...Xp.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Xp.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Xp.symbols.question,submitted:Xp.symbols.check,cancelled:Xp.symbols.cross},separator:{pending:Xp.symbols.pointerSmall,submitted:Xp.symbols.middot,cancelled:Xp.symbols.middot},radio:{off:kG?"( )":"\u25EF",on:kG?"(*)":"\u25C9",disabled:kG?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};QG.merge=t=>{let e=Twt.merge({},Xp.symbols,QG,t.symbols);return delete e.merge,e};dwe.exports=QG});var Ewe=L((Qrr,ywe)=>{"use strict";var Rwt=gwe(),Fwt=mwe(),Nwt=$o();ywe.exports=t=>{t.options=Nwt.merge({},t.options.theme,t.options),t.symbols=Fwt.merge(t.options),t.styles=Rwt.merge(t.options)}});var vwe=L((wwe,Bwe)=>{"use strict";var Iwe=process.env.TERM_PROGRAM==="Apple_Terminal",Owt=Ju(),TG=$o(),zu=Bwe.exports=wwe,Ui="\x1B[",Cwe="\x07",RG=!1,H0=zu.code={bell:Cwe,beep:Cwe,beginning:`${Ui}G`,down:`${Ui}J`,esc:Ui,getPosition:`${Ui}6n`,hide:`${Ui}?25l`,line:`${Ui}2K`,lineEnd:`${Ui}K`,lineStart:`${Ui}1K`,restorePosition:Ui+(Iwe?"8":"u"),savePosition:Ui+(Iwe?"7":"s"),screen:`${Ui}2J`,show:`${Ui}?25h`,up:`${Ui}1J`},Cm=zu.cursor={get hidden(){return RG},hide(){return RG=!0,H0.hide},show(){return RG=!1,H0.show},forward:(t=1)=>`${Ui}${t}C`,backward:(t=1)=>`${Ui}${t}D`,nextLine:(t=1)=>`${Ui}E`.repeat(t),prevLine:(t=1)=>`${Ui}F`.repeat(t),up:(t=1)=>t?`${Ui}${t}A`:"",down:(t=1)=>t?`${Ui}${t}B`:"",right:(t=1)=>t?`${Ui}${t}C`:"",left:(t=1)=>t?`${Ui}${t}D`:"",to(t,e){return e?`${Ui}${e+1};${t+1}H`:`${Ui}${t+1}G`},move(t=0,e=0){let r="";return r+=t<0?Cm.left(-t):t>0?Cm.right(t):"",r+=e<0?Cm.up(-e):e>0?Cm.down(e):"",r},restore(t={}){let{after:e,cursor:r,initial:s,input:a,prompt:n,size:c,value:f}=t;if(s=TG.isPrimitive(s)?String(s):"",a=TG.isPrimitive(a)?String(a):"",f=TG.isPrimitive(f)?String(f):"",c){let p=zu.cursor.up(c)+zu.cursor.to(n.length),h=a.length-r;return h>0&&(p+=zu.cursor.left(h)),p}if(f||e){let p=!a&&s?-s.length:-a.length+r;return e&&(p-=e.length),a===""&&s&&!n.includes(s)&&(p+=s.length),zu.cursor.move(p)}}},FG=zu.erase={screen:H0.screen,up:H0.up,down:H0.down,line:H0.line,lineEnd:H0.lineEnd,lineStart:H0.lineStart,lines(t){let e="";for(let r=0;r<t;r++)e+=zu.erase.line+(r<t-1?zu.cursor.up(1):"");return t&&(e+=zu.code.beginning),e}};zu.clear=(t="",e=process.stdout.columns)=>{if(!e)return FG.line+Cm.to(0);let r=n=>[...Owt.unstyle(n)].length,s=t.split(/\r?\n/),a=0;for(let n of s)a+=1+Math.floor(Math.max(r(n)-1,0)/e);return(FG.line+Cm.prevLine()).repeat(a-1)+FG.line+Cm.to(0)}});var nC=L((Trr,Dwe)=>{"use strict";var Lwt=Ie("events"),Swe=Ju(),NG=cwe(),Mwt=fwe(),_wt=pwe(),Uwt=Ewe(),hl=$o(),wm=vwe(),OG=class t extends Lwt{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,Uwt(this),Mwt(this),this.state=new _wt(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=jwt(this.options.margin),this.setMaxListeners(0),Hwt(this)}async keypress(e,r={}){this.keypressed=!0;let s=NG.action(e,NG(e,r),this.options.actions);this.state.keypress=s,this.emit("keypress",e,s),this.emit("state",this.state.clone());let a=this.options[s.action]||this[s.action]||this.dispatch;if(typeof a=="function")return await a.call(this,e,s);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(wm.code.beep)}cursorHide(){this.stdout.write(wm.cursor.hide()),hl.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(wm.cursor.show())}write(e){e&&(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!e||this.options.show===!1)&&this.stdout.write(wm.cursor.down(e)+wm.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:s}=this.sections(),{cursor:a,initial:n="",input:c="",value:f=""}=this,p=this.state.size=s.length,h={after:r,cursor:a,initial:n,input:c,prompt:e,size:p,value:f},E=wm.cursor.restore(h);E&&this.stdout.write(E)}sections(){let{buffer:e,input:r,prompt:s}=this.state;s=Swe.unstyle(s);let a=Swe.unstyle(e),n=a.indexOf(s),c=a.slice(0,n),p=a.slice(n).split(` +`),h=p[0],E=p[p.length-1],S=(s+(r?" "+r:"")).length,P=S<h.length?h.slice(S+1):"";return{header:c,prompt:h,after:P,rest:p.slice(1),last:E}}async submit(){this.state.submitted=!0,this.state.validating=!0,this.options.onSubmit&&await this.options.onSubmit.call(this,this.name,this.value,this);let e=this.state.error||await this.validate(this.value,this.state);if(e!==!0){let r=` +`+this.symbols.pointer+" ";typeof e=="string"?r+=e.trim():r+="Invalid input",this.state.error=` +`+this.styles.danger(r),this.state.submitted=!1,await this.render(),await this.alert(),this.state.validating=!1,this.state.error=void 0;return}this.state.validating=!1,await this.render(),await this.close(),this.value=await this.result(this.value),this.emit("submit",this.value)}async cancel(e){this.state.cancelled=this.state.submitted=!0,await this.render(),await this.close(),typeof this.options.onCancel=="function"&&await this.options.onCancel.call(this,this.name,this.value,this),this.emit("cancel",await this.error(e))}async close(){this.state.closed=!0;try{let e=this.sections(),r=Math.ceil(e.prompt.length/this.width);e.rest&&this.write(wm.cursor.down(e.rest.length)),this.write(` +`.repeat(r))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=NG.listen(this,this.keypress.bind(this)),this.once("close",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:r,result:s}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>s.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),n=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),n())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,s){let{options:a,state:n,symbols:c,timers:f}=this,p=f&&f[e];n.timer=p;let h=a[e]||n[e]||c[e],E=r&&r[e]!=null?r[e]:await h;if(E==="")return E;let C=await this.resolve(E,n,r,s);return!C&&r&&r[e]?this.resolve(h,n,r,s):C}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,s=this.state;return s.timer=r,hl.isObject(e)&&(e=e[s.status]||e.pending),hl.hasColor(e)?e:(this.styles[s.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return hl.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,s=this.state;s.timer=r;let a=e[s.status]||e.pending||s.separator,n=await this.resolve(a,s);return hl.isObject(n)&&(n=n[s.status]||n.pending),hl.hasColor(n)?n:this.styles.muted(n)}async pointer(e,r){let s=await this.element("pointer",e,r);if(typeof s=="string"&&hl.hasColor(s))return s;if(s){let a=this.styles,n=this.index===r,c=n?a.primary:h=>h,f=await this.resolve(s[n?"on":"off"]||s,this.state),p=hl.hasColor(f)?f:c(f);return n?p:" ".repeat(f.length)}}async indicator(e,r){let s=await this.element("indicator",e,r);if(typeof s=="string"&&hl.hasColor(s))return s;if(s){let a=this.styles,n=e.enabled===!0,c=n?a.success:a.dark,f=s[n?"on":"off"]||s;return hl.hasColor(f)?f:c(f)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return hl.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return hl.resolve(this,e,...r)}get base(){return t.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||hl.height(this.stdout,25)}get width(){return this.options.columns||hl.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,s=[r,e].find(this.isValue.bind(this));return this.isValue(s)?s:this.initial}static get prompt(){return e=>new this(e).run()}};function Hwt(t){let e=a=>t[a]===void 0||typeof t[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],s=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(t.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let n=t.options[a];typeof n=="function"&&e(a)?s.includes(a)||(t[a]=n.bind(t)):typeof t[a]!="function"&&(t[a]=n)}}function jwt(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=a=>a%2===0?` +`:" ",s=[];for(let a=0;a<4;a++){let n=r(a);e[a]?s.push(n.repeat(e[a])):s.push("")}return s}Dwe.exports=OG});var xwe=L((Rrr,Pwe)=>{"use strict";var qwt=$o(),bwe={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return bwe.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};Pwe.exports=(t,e={})=>{let r=qwt.merge({},bwe,e.roles);return r[t]||r.default}});var tS=L((Frr,Twe)=>{"use strict";var Gwt=Ju(),Wwt=nC(),Ywt=xwe(),ZR=$o(),{reorder:LG,scrollUp:Vwt,scrollDown:Kwt,isObject:kwe,swap:Jwt}=ZR,MG=class extends Wwt{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:s,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(n=>n.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");kwe(r)&&(r=Object.keys(r)),Array.isArray(r)?(s!=null&&(this.index=this.findIndex(s)),r.forEach(n=>this.enable(this.find(n))),await this.render()):(s!=null&&(r=s),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let s=[],a=0,n=async(c,f)=>{typeof c=="function"&&(c=await c.call(this)),c instanceof Promise&&(c=await c);for(let p=0;p<c.length;p++){let h=c[p]=await this.toChoice(c[p],a++,f);s.push(h),h.choices&&await n(h.choices,h)}return s};return n(e,r).then(c=>(this.state.loadingChoices=!1,c))}async toChoice(e,r,s){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let a=e.value;if(e=Ywt(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,ZR.define(e,"parent",s),e.level=s?s.level+1:1,e.indent==null&&(e.indent=s?s.indent+" ":e.indent||""),e.path=s?s.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,Gwt.unstyle(e.message).length));let c={...e};return e.reset=(f=c.input,p=c.value)=>{for(let h of Object.keys(c))e[h]=c[h];e.input=f,e.value=p},a==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,s){let a=await this.toChoice(e,r,s);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(e,r,s){let a={name:"New choice name?",editable:!0,newChoice:!0,...e},n=await this.addChoice(a,r,s);return n.updateChoice=()=>{delete n.newChoice,n.name=n.message=n.input,n.input="",n.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelected<this.choices.length)return this.alert();let e=this.selectable.every(r=>r.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(a=>this.toggle(a,r));let s=e.parent;for(;s;){let a=s.choices.filter(n=>this.isDisabled(n));s.enabled=a.every(n=>n.enabled===!0),s=s.parent}return Qwe(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=s=>{let a=Number(s);if(a>this.choices.length-1)return this.alert();let n=this.focused,c=this.choices.find(f=>a===f.index);if(!c.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(c)===-1){let f=LG(this.choices),p=f.indexOf(c);if(n.index>p){let h=f.slice(p,p+this.limit),E=f.filter(C=>!h.includes(C));this.choices=h.concat(E)}else{let h=p-this.limit+1;this.choices=f.slice(h).concat(f.slice(0,h))}}return this.index=this.choices.indexOf(c),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(s=>{let a=this.choices.length,n=this.num,c=(f=!1,p)=>{clearTimeout(this.numberTimeout),f&&(p=r(n)),this.num="",s(p)};if(n==="0"||n.length===1&&+(n+"0")>a)return c(!0);if(Number(n)>a)return c(!1,this.alert());this.numberTimeout=setTimeout(()=>c(!0),this.delay)})}home(){return this.choices=LG(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=LG(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,s=this.index;return this.options.scroll===!1&&s===0?this.alert():e>r&&s===0?this.scrollUp():(this.index=(s-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,s=this.index;return this.options.scroll===!1&&s===r-1?this.alert():e>r&&s===r-1?this.scrollDown():(this.index=(s+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=Vwt(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=Kwt(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){Jwt(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(s=>e[s]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(s=>!this.isDisabled(s));return e.enabled&&r.every(s=>this.isEnabled(s))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r="value"){return[].concat(e||[]).reduce((s,a)=>(s[a]=this.find(a,r),s),{})}filter(e,r){let a=typeof e=="function"?e:(f,p)=>[f.name,p].includes(e),c=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?c.map(f=>f[r]):c}find(e,r){if(kwe(e))return r?e[r]:e;let a=typeof e=="function"?e:(c,f)=>[c.name,f].includes(e),n=this.choices.find(a);if(n)return r?n[r]:n}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(c=>c.newChoice))return this.alert();let{reorder:r,sort:s}=this.options,a=this.multiple===!0,n=this.selected;return n===void 0?this.alert():(Array.isArray(n)&&r!==!1&&s!==!0&&(n=ZR.reorder(n)),this.value=a?n.map(c=>c.name):n.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(s=>s.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let s=this.find(r);s&&(this.initial=s.index,this.focus(s,!0))}}}get choices(){return Qwe(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:s}=this,a=e.limit||this._limit||r.limit||s.length;return Math.min(a,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Qwe(t,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(ZR.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let s=r.choices.filter(a=>!t.isDisabled(a));r.enabled=s.every(a=>a.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}Twe.exports=MG});var j0=L((Nrr,Rwe)=>{"use strict";var zwt=tS(),_G=$o(),UG=class extends zwt{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):""}indicator(e,r){return this.multiple?super.indicator(e,r):""}choiceMessage(e,r){let s=this.resolve(e.message,this.state,e,r);return e.role==="heading"&&!_G.hasColor(s)&&(s=this.styles.strong(s)),this.resolve(s,this.state,e,r)}choiceSeparator(){return":"}async renderChoice(e,r){await this.onChoice(e,r);let s=this.index===r,a=await this.pointer(e,r),n=await this.indicator(e,r)+(e.pad||""),c=await this.resolve(e.hint,this.state,e,r);c&&!_G.hasColor(c)&&(c=this.styles.muted(c));let f=this.indent(e),p=await this.choiceMessage(e,r),h=()=>[this.margin[3],f+a+n,p,this.margin[1],c].filter(Boolean).join(" ");return e.role==="heading"?h():e.disabled?(_G.hasColor(p)||(p=this.styles.disabled(p)),h()):(s&&(p=this.styles.em(p)),h())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(n,c)=>await this.renderChoice(n,c)),r=await Promise.all(e);r.length||r.push(this.styles.danger("No matching choices"));let s=this.margin[0]+r.join(` +`),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,s].filter(Boolean).join(` +`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,s="",a=await this.header(),n=await this.prefix(),c=await this.separator(),f=await this.message();this.options.promptLine!==!1&&(s=[n,f,c,""].join(" "),this.state.prompt=s);let p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),C=await this.footer();p&&(s+=p),h&&!s.includes(h)&&(s+=" "+h),e&&!p&&!E.trim()&&this.multiple&&this.emptyError!=null&&(s+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,s,E,C].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};Rwe.exports=UG});var Nwe=L((Orr,Fwe)=>{"use strict";var Zwt=j0(),Xwt=(t,e)=>{let r=t.toLowerCase();return s=>{let n=s.toLowerCase().indexOf(r),c=e(s.slice(n,n+r.length));return n>=0?s.slice(0,n)+c+s.slice(n+r.length):s}},HG=class extends Zwt{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:s}=this.state;return this.input=s.slice(0,r)+e+s.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let s=e.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(s))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=Xwt(this.input,e),s=this.choices;this.choices=s.map(a=>({...a,message:r(a.message)})),await super.render(),this.choices=s}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Fwe.exports=HG});var qG=L((Lrr,Owe)=>{"use strict";var jG=$o();Owe.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:s="",pos:a,showCursor:n=!0,color:c}=e,f=c||t.styles.placeholder,p=jG.inverse(t.styles.primary),h=R=>p(t.styles.black(R)),E=r,C=" ",S=h(C);if(t.blink&&t.blink.off===!0&&(h=R=>R,S=""),n&&a===0&&s===""&&r==="")return h(C);if(n&&a===0&&(r===s||r===""))return h(s[0])+f(s.slice(1));s=jG.isPrimitive(s)?`${s}`:"",r=jG.isPrimitive(r)?`${r}`:"";let P=s&&s.startsWith(r)&&s!==r,I=P?h(s[r.length]):S;if(a!==r.length&&n===!0&&(E=r.slice(0,a)+h(r[a])+r.slice(a+1),I=""),n===!1&&(I=""),P){let R=t.styles.unstyle(E+I);return E+I+f(s.slice(R.length))}return E+I}});var XR=L((Mrr,Lwe)=>{"use strict";var $wt=Ju(),e1t=j0(),t1t=qG(),GG=class extends e1t{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:s,input:a}=r;return r.value=r.input=a.slice(0,s)+e+a.slice(s),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:s}=e;return e.value=e.input=s.slice(0,r-1)+s.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:s}=e;if(s[r]===void 0)return this.alert();let a=`${s}`.slice(0,r)+`${s}`.slice(r+1);return e.value=e.input=a,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:s}=e;return r&&r.startsWith(s)&&s!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let s=await this.resolve(e.separator,this.state,e,r)||":";return s?" "+this.styles.disabled(s):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:s,styles:a}=this,{cursor:n,initial:c="",name:f,hint:p,input:h=""}=e,{muted:E,submitted:C,primary:S,danger:P}=a,I=p,R=this.index===r,N=e.validate||(()=>!0),U=await this.choiceSeparator(e,r),W=e.message;this.align==="right"&&(W=W.padStart(this.longest+1," ")),this.align==="left"&&(W=W.padEnd(this.longest+1," "));let te=this.values[f]=h||c,ie=h?"success":"dark";await N.call(e,te,this.state)!==!0&&(ie="danger");let Ae=a[ie],ce=Ae(await this.indicator(e,r))+(e.pad||""),me=this.indent(e),pe=()=>[me,ce,W+U,h,I].filter(Boolean).join(" ");if(s.submitted)return W=$wt.unstyle(W),h=C(h),I="",pe();if(e.format)h=await e.format.call(this,h,e,r);else{let Be=this.styles.muted;h=t1t(this,{input:h,initial:c,pos:n,showCursor:R,color:Be})}return this.isValue(h)||(h=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[f]=await e.result.call(this,te,e,r)),R&&(W=S(W)),e.error?h+=(h?" ":"")+P(e.error.trim()):e.hint&&(h+=(h?" ":"")+E(e.hint.trim())),pe()}async submit(){return this.value=this.values,super.base.submit.call(this)}};Lwe.exports=GG});var WG=L((_rr,_we)=>{"use strict";var r1t=XR(),n1t=()=>{throw new Error("expected prompt to have a custom authenticate method")},Mwe=(t=n1t)=>{class e extends r1t{constructor(s){super(s)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(s){return Mwe(s)}}return e};_we.exports=Mwe()});var jwe=L((Urr,Hwe)=>{"use strict";var i1t=WG();function s1t(t,e){return t.username===this.options.username&&t.password===this.options.password}var Uwe=(t=s1t)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(s){return this.options.showPassword?s:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(s.length))}}];class r extends i1t.create(t){constructor(a){super({...a,choices:e})}static create(a){return Uwe(a)}}return r};Hwe.exports=Uwe()});var $R=L((Hrr,qwe)=>{"use strict";var o1t=nC(),{isPrimitive:a1t,hasColor:l1t}=$o(),YG=class extends o1t{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:s}=this;return s.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return a1t(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return l1t(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,s=await this.prefix(),a=await this.separator(),n=await this.message(),c=this.styles.muted(this.default),f=[s,n,c,a].filter(Boolean).join(" ");this.state.prompt=f;let p=await this.header(),h=this.value=this.cast(e),E=await this.format(h),C=await this.error()||await this.hint(),S=await this.footer();C&&!f.includes(C)&&(E+=" "+C),f+=" "+E,this.clear(r),this.write([p,f,S].filter(Boolean).join(` +`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};qwe.exports=YG});var Wwe=L((jrr,Gwe)=>{"use strict";var c1t=$R(),VG=class extends c1t{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Gwe.exports=VG});var Vwe=L((qrr,Ywe)=>{"use strict";var u1t=j0(),f1t=XR(),iC=f1t.prototype,KG=class extends u1t{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let s=this.focused,a=s.parent||{};return!s.editable&&!a.editable&&(e==="a"||e==="i")?super[e]():iC.dispatch.call(this,e,r)}append(e,r){return iC.append.call(this,e,r)}delete(e,r){return iC.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?iC.next.call(this):super.next()}prev(){return this.focused.editable?iC.prev.call(this):super.prev()}async indicator(e,r){let s=e.indicator||"",a=e.editable?s:super.indicator(e,r);return await this.resolve(a,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?iC.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let s=r.parent?this.value[r.parent.name]:this.value;if(r.editable?s=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(s=r.enabled===!0),e=await r.validate(s,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Ywe.exports=KG});var Bm=L((Grr,Kwe)=>{"use strict";var A1t=nC(),p1t=qG(),{isPrimitive:h1t}=$o(),JG=class extends A1t{constructor(e){super(e),this.initial=h1t(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let s=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!s||s.name!=="return")?this.append(` +`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:s}=this.state;this.input=`${s}`.slice(0,r)+e+`${s}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),s=this.input.slice(e),a=r.split(" ");this.state.clipboard.push(a.pop()),this.input=a.join(" "),this.cursor=this.input.length,this.input+=s,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):p1t(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),s=await this.separator(),a=await this.message(),n=[r,a,s].filter(Boolean).join(" ");this.state.prompt=n;let c=await this.header(),f=await this.format(),p=await this.error()||await this.hint(),h=await this.footer();p&&!f.includes(p)&&(f+=" "+p),n+=" "+f,this.clear(e),this.write([c,n,h].filter(Boolean).join(` +`)),this.restore()}};Kwe.exports=JG});var zwe=L((Wrr,Jwe)=>{"use strict";var g1t=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),eF=t=>g1t(t).filter(Boolean);Jwe.exports=(t,e={},r="")=>{let{past:s=[],present:a=""}=e,n,c;switch(t){case"prev":case"undo":return n=s.slice(0,s.length-1),c=s[s.length-1]||"",{past:eF([r,...n]),present:c};case"next":case"redo":return n=s.slice(1),c=s[0]||"",{past:eF([...n,r]),present:c};case"save":return{past:eF([...s,r]),present:""};case"remove":return c=eF(s.filter(f=>f!==r)),a="",c.length&&(a=c.pop()),{past:c,present:a};default:throw new Error(`Invalid action: "${t}"`)}}});var ZG=L((Yrr,Xwe)=>{"use strict";var d1t=Bm(),Zwe=zwe(),zG=class extends d1t{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let s=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:s},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Zwe(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){this.store&&(this.data=Zwe("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Xwe.exports=zG});var e1e=L((Vrr,$we)=>{"use strict";var m1t=Bm(),XG=class extends m1t{format(){return""}};$we.exports=XG});var r1e=L((Krr,t1e)=>{"use strict";var y1t=Bm(),$G=class extends y1t{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};t1e.exports=$G});var i1e=L((Jrr,n1e)=>{"use strict";var E1t=j0(),e5=class extends E1t{constructor(e){super({...e,multiple:!0})}};n1e.exports=e5});var r5=L((zrr,s1e)=>{"use strict";var I1t=Bm(),t5=class extends I1t{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,s=this.toNumber(this.input);return s>this.max+r?this.alert():(this.input=`${s+r}`,this.render())}down(e){let r=e||this.minor,s=this.toNumber(this.input);return s<this.min-r?this.alert():(this.input=`${s-r}`,this.render())}shiftDown(){return this.down(this.major)}shiftUp(){return this.up(this.major)}format(e=this.input){return typeof this.options.format=="function"?this.options.format.call(this,e):this.styles.info(e)}toNumber(e=""){return this.float?+e:Math.round(+e)}isValue(e){return/^[-+]?[0-9]+((\.)|(\.[0-9]+))?$/.test(e)}submit(){let e=[this.input,this.initial].find(r=>this.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};s1e.exports=t5});var a1e=L((Zrr,o1e)=>{o1e.exports=r5()});var c1e=L((Xrr,l1e)=>{"use strict";var C1t=Bm(),n5=class extends C1t{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};l1e.exports=n5});var A1e=L(($rr,f1e)=>{"use strict";var w1t=Ju(),B1t=tS(),u1e=$o(),i5=class extends B1t{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` + `;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((s,a)=>({name:a+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let s=0;s<this.scale.length;s++)r.scale.push({index:s})}this.widths[0]=Math.min(this.widths[0],e+3)}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}heading(e,r,s){return this.styles.strong(e)}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIndex>=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(s=>` ${s.name} - ${s.message}`)].map(s=>this.styles.muted(s)).join(` +`)}renderScaleHeading(e){let r=this.scale.map(p=>p.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let s=this.scaleLength-r.join("").length,a=Math.round(s/(r.length-1)),c=r.map(p=>this.styles.strong(p)).join(" ".repeat(a)),f=" ".repeat(this.widths[0]);return this.margin[3]+f+this.margin[1]+c}scaleIndicator(e,r,s){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,s);let a=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let s=e.scale.map(n=>this.scaleIndicator(e,n,r)),a=this.term==="Hyper"?"":" ";return s.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let s=this.index===r,a=await this.pointer(e,r),n=await e.hint;n&&!u1e.hasColor(n)&&(n=this.styles.muted(n));let c=I=>this.margin[3]+I.replace(/\s+$/,"").padEnd(this.widths[0]," "),f=this.newline,p=this.indent(e),h=await this.resolve(e.message,this.state,e,r),E=await this.renderScale(e,r),C=this.margin[1]+this.margin[3];this.scaleLength=w1t.unstyle(E).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-C.length);let P=u1e.wordWrap(h,{width:this.widths[0],newline:f}).split(` +`).map(I=>c(I)+this.margin[1]);return s&&(E=this.styles.info(E),P=P.map(I=>this.styles.info(I))),P[0]+=E,this.linebreak&&P.push(""),[p+a,P.join(` +`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(a,n)=>await this.renderChoice(a,n)),r=await Promise.all(e),s=await this.renderScaleHeading();return this.margin[0]+[s,...r.map(a=>a.join(" "))].join(` +`)}async render(){let{submitted:e,size:r}=this.state,s=await this.prefix(),a=await this.separator(),n=await this.message(),c="";this.options.promptLine!==!1&&(c=[s,n,a,""].join(" "),this.state.prompt=c);let f=await this.header(),p=await this.format(),h=await this.renderScaleKey(),E=await this.error()||await this.hint(),C=await this.renderChoices(),S=await this.footer(),P=this.emptyError;p&&(c+=p),E&&!c.includes(E)&&(c+=" "+E),e&&!p&&!C.trim()&&this.multiple&&P!=null&&(c+=this.styles.danger(P)),this.clear(r),this.write([f,c,h,C,S].filter(Boolean).join(` +`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};f1e.exports=i5});var g1e=L((enr,h1e)=>{"use strict";var p1e=Ju(),v1t=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",o5=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=v1t(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},S1t=async(t={},e={},r=s=>s)=>{let s=new Set,a=t.fields||[],n=t.template,c=[],f=[],p=[],h=1;typeof n=="function"&&(n=await n());let E=-1,C=()=>n[++E],S=()=>n[E+1],P=I=>{I.line=h,c.push(I)};for(P({type:"bos",value:""});E<n.length-1;){let I=C();if(/^[^\S\n ]$/.test(I)){P({type:"text",value:I});continue}if(I===` +`){P({type:"newline",value:I}),h++;continue}if(I==="\\"){I+=C(),P({type:"text",value:I});continue}if((I==="$"||I==="#"||I==="{")&&S()==="{"){let N=C();I+=N;let U={type:"template",open:I,inner:"",close:"",value:I},W;for(;W=C();){if(W==="}"){S()==="}"&&(W+=C()),U.value+=W,U.close=W;break}W===":"?(U.initial="",U.key=U.inner):U.initial!==void 0&&(U.initial+=W),U.value+=W,U.inner+=W}U.template=U.open+(U.initial||U.inner)+U.close,U.key=U.key||U.inner,e.hasOwnProperty(U.key)&&(U.initial=e[U.key]),U=r(U),P(U),p.push(U.key),s.add(U.key);let te=f.find(ie=>ie.name===U.key);U.field=a.find(ie=>ie.name===U.key),te||(te=new o5(U),f.push(te)),te.lines.push(U.line-1);continue}let R=c[c.length-1];R.type==="text"&&R.line===h?R.value+=I:P({type:"text",value:I})}return P({type:"eos",value:""}),{input:n,tabstops:c,unique:s,keys:p,items:f}};h1e.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),s={...e.values,...e.initial},{tabstops:a,items:n,keys:c}=await S1t(e,s),f=s5("result",t,e),p=s5("format",t,e),h=s5("validate",t,e,!0),E=t.isValue.bind(t);return async(C={},S=!1)=>{let P=0;C.required=r,C.items=n,C.keys=c,C.output="";let I=async(W,te,ie,Ae)=>{let ce=await h(W,te,ie,Ae);return ce===!1?"Invalid field "+ie.name:ce};for(let W of a){let te=W.value,ie=W.key;if(W.type!=="template"){te&&(C.output+=te);continue}if(W.type==="template"){let Ae=n.find(Ce=>Ce.name===ie);e.required===!0&&C.required.add(Ae.name);let ce=[Ae.input,C.values[Ae.value],Ae.value,te].find(E),pe=(Ae.field||{}).message||W.inner;if(S){let Ce=await I(C.values[ie],C,Ae,P);if(Ce&&typeof Ce=="string"||Ce===!1){C.invalid.set(ie,Ce);continue}C.invalid.delete(ie);let g=await f(C.values[ie],C,Ae,P);C.output+=p1e.unstyle(g);continue}Ae.placeholder=!1;let Be=te;te=await p(te,C,Ae,P),ce!==te?(C.values[ie]=ce,te=t.styles.typing(ce),C.missing.delete(pe)):(C.values[ie]=void 0,ce=`<${pe}>`,te=t.styles.primary(ce),Ae.placeholder=!0,C.required.has(ie)&&C.missing.add(pe)),C.missing.has(pe)&&C.validating&&(te=t.styles.warning(ce)),C.invalid.has(ie)&&C.validating&&(te=t.styles.danger(ce)),P===C.index&&(Be!==te?te=t.styles.underline(te):te=t.styles.heading(p1e.unstyle(te))),P++}te&&(C.output+=te)}let R=C.output.split(` +`).map(W=>" "+W),N=n.length,U=0;for(let W of n)C.invalid.has(W.name)&&W.lines.forEach(te=>{R[te][0]===" "&&(R[te]=C.styles.danger(C.symbols.bullet)+R[te].slice(1))}),t.isValue(C.values[W.name])&&U++;return C.completed=(U/N*100).toFixed(0),C.output=R.join(` +`),C.output}};function s5(t,e,r,s){return(a,n,c,f)=>typeof c.field[t]=="function"?c.field[t].call(e,a,n,c,f):[s,a].find(p=>e.isValue(p))}});var m1e=L((tnr,d1e)=>{"use strict";var D1t=Ju(),b1t=g1e(),P1t=nC(),a5=class extends P1t{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await b1t(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let s=this.getItem(),a=s.input.slice(0,this.cursor),n=s.input.slice(this.cursor);this.input=s.input=`${a}${e}${n}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),s=e.input.slice(0,this.cursor-1);this.input=e.input=`${s}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:s,size:a}=this.state,n=[this.options.newline,` +`].find(W=>W!=null),c=await this.prefix(),f=await this.separator(),p=await this.message(),h=[c,p,f].filter(Boolean).join(" ");this.state.prompt=h;let E=await this.header(),C=await this.error()||"",S=await this.hint()||"",P=s?"":await this.interpolate(this.state),I=this.state.key=r[e]||"",R=await this.format(I),N=await this.footer();R&&(h+=" "+R),S&&!R&&this.state.completed===0&&(h+=" "+S),this.clear(a);let U=[E,h,P,N,C.trim()];this.write(U.filter(Boolean).join(n)),this.restore()}getItem(e){let{items:r,keys:s,index:a}=this.state,n=r.find(c=>c.name===s[a]);return n&&n.input!=null&&(this.input=n.input,this.cursor=n.cursor),n}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:s,values:a}=this.state;if(e.size){let f="";for(let[p,h]of e)f+=`Invalid ${p}: ${h} +`;return this.state.error=f,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let c=D1t.unstyle(s).split(` +`).map(f=>f.slice(1)).join(` +`);return this.value={values:a,result:c},super.submit()}};d1e.exports=a5});var E1e=L((rnr,y1e)=>{"use strict";var x1t="(Use <shift>+<up/down> to sort)",k1t=j0(),l5=class extends k1t{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,x1t].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let s=await super.renderChoice(e,r),a=this.symbols.identicalTo+" ",n=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(n=""),this.options.numbered===!0?n+`${r+1} - `+s:n+s}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};y1e.exports=l5});var C1e=L((nnr,I1e)=>{"use strict";var Q1t=tS(),c5=class extends Q1t{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(s=>this.styles.muted(s)),this.state.header=r.join(` + `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let s of r)s.scale=T1t(5,this.options),s.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],s=r.selected;return e.scale.forEach(a=>a.selected=!1),r.selected=!s,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let s=this.index===r,a=this.term==="Hyper",n=a?9:8,c=a?"":" ",f=this.symbols.line.repeat(n),p=" ".repeat(n+(a?0:1)),h=te=>(te?this.styles.success("\u25C9"):"\u25EF")+c,E=r+1+".",C=s?this.styles.heading:this.styles.noop,S=await this.resolve(e.message,this.state,e,r),P=this.indent(e),I=P+e.scale.map((te,ie)=>h(ie===e.scaleIdx)).join(f),R=te=>te===e.scaleIdx?C(te):te,N=P+e.scale.map((te,ie)=>R(ie)).join(p),U=()=>[E,S].filter(Boolean).join(" "),W=()=>[U(),I,N," "].filter(Boolean).join(` +`);return s&&(I=this.styles.cyan(I),N=this.styles.cyan(N)),W()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(s,a)=>await this.renderChoice(s,a)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` +`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,s=await this.prefix(),a=await this.separator(),n=await this.message(),c=[s,n,a].filter(Boolean).join(" ");this.state.prompt=c;let f=await this.header(),p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),C=await this.footer();(p||!h)&&(c+=" "+p),h&&!c.includes(h)&&(c+=" "+h),e&&!p&&!E&&this.multiple&&this.type!=="form"&&(c+=this.styles.danger(this.emptyError)),this.clear(r),this.write([c,f,E,C].filter(Boolean).join(` +`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function T1t(t,e={}){if(Array.isArray(e.scale))return e.scale.map(s=>({...s}));let r=[];for(let s=1;s<t+1;s++)r.push({i:s,selected:!1});return r}I1e.exports=c5});var B1e=L((inr,w1e)=>{w1e.exports=ZG()});var S1e=L((snr,v1e)=>{"use strict";var R1t=$R(),u5=class extends R1t{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=s=>this.styles.primary.underline(s);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),s=await this.prefix(),a=await this.separator(),n=await this.message(),c=await this.format(),f=await this.error()||await this.hint(),p=await this.footer(),h=[s,n,a,c].join(" ");this.state.prompt=h,f&&!h.includes(f)&&(h+=" "+f),this.clear(e),this.write([r,h,p].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};v1e.exports=u5});var b1e=L((onr,D1e)=>{"use strict";var F1t=j0(),f5=class extends F1t{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let s=await super.toChoices(e,r);if(s.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>s.length)throw new Error("Please specify the index of the correct answer from the list of choices");return s}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};D1e.exports=f5});var x1e=L(A5=>{"use strict";var P1e=$o(),Ts=(t,e)=>{P1e.defineExport(A5,t,e),P1e.defineExport(A5,t.toLowerCase(),e)};Ts("AutoComplete",()=>Nwe());Ts("BasicAuth",()=>jwe());Ts("Confirm",()=>Wwe());Ts("Editable",()=>Vwe());Ts("Form",()=>XR());Ts("Input",()=>ZG());Ts("Invisible",()=>e1e());Ts("List",()=>r1e());Ts("MultiSelect",()=>i1e());Ts("Numeral",()=>a1e());Ts("Password",()=>c1e());Ts("Scale",()=>A1e());Ts("Select",()=>j0());Ts("Snippet",()=>m1e());Ts("Sort",()=>E1e());Ts("Survey",()=>C1e());Ts("Text",()=>B1e());Ts("Toggle",()=>S1e());Ts("Quiz",()=>b1e())});var Q1e=L((lnr,k1e)=>{k1e.exports={ArrayPrompt:tS(),AuthPrompt:WG(),BooleanPrompt:$R(),NumberPrompt:r5(),StringPrompt:Bm()}});var nS=L((cnr,R1e)=>{"use strict";var T1e=Ie("assert"),h5=Ie("events"),q0=$o(),Zu=class extends h5{constructor(e,r){super(),this.options=q0.merge({},e),this.answers={...r}}register(e,r){if(q0.isObject(e)){for(let a of Object.keys(e))this.register(a,e[a]);return this}T1e.equal(typeof r,"function","expected a function");let s=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[s]=r:this.prompts[s]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(q0.merge({},this.options,r))}catch(s){return Promise.reject(s)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=q0.merge({},this.options,e),{type:s,name:a}=e,{set:n,get:c}=q0;if(typeof s=="function"&&(s=await s.call(this,e,this.answers)),!s)return this.answers[a];T1e(this.prompts[s],`Prompt "${s}" is not registered`);let f=new this.prompts[s](r),p=c(this.answers,a);f.state.answers=this.answers,f.enquirer=this,a&&f.on("submit",E=>{this.emit("answer",a,E,f),n(this.answers,a,E)});let h=f.emit.bind(f);return f.emit=(...E)=>(this.emit.call(this,...E),h(...E)),this.emit("prompt",f,this),r.autofill&&p!=null?(f.value=f.input=p,r.autofill==="show"&&await f.submit()):p=f.value=await f.run(),p}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||nC()}static get prompts(){return x1e()}static get types(){return Q1e()}static get prompt(){let e=(r,...s)=>{let a=new this(...s),n=a.emit.bind(a);return a.emit=(...c)=>(e.emit(...c),n(...c)),a.prompt(r)};return q0.mixinEmitter(e,new h5),e}};q0.mixinEmitter(Zu,new h5);var p5=Zu.prompts;for(let t of Object.keys(p5)){let e=t.toLowerCase(),r=s=>new p5[t](s).run();Zu.prompt[e]=r,Zu[e]=r,Zu[t]||Reflect.defineProperty(Zu,t,{get:()=>p5[t]})}var rS=t=>{q0.defineExport(Zu,t,()=>Zu.types[t])};rS("ArrayPrompt");rS("AuthPrompt");rS("BooleanPrompt");rS("NumberPrompt");rS("StringPrompt");R1e.exports=Zu});var aS=L((Wnr,U1e)=>{var H1t=HR();function j1t(t,e,r){var s=t==null?void 0:H1t(t,e);return s===void 0?r:s}U1e.exports=j1t});var q1e=L((Znr,j1e)=>{function q1t(t,e){for(var r=-1,s=t==null?0:t.length;++r<s&&e(t[r],r,t)!==!1;);return t}j1e.exports=q1t});var W1e=L((Xnr,G1e)=>{var G1t=Vd(),W1t=Lk();function Y1t(t,e){return t&&G1t(e,W1t(e),t)}G1e.exports=Y1t});var V1e=L(($nr,Y1e)=>{var V1t=Vd(),K1t=jE();function J1t(t,e){return t&&V1t(e,K1t(e),t)}Y1e.exports=J1t});var J1e=L((eir,K1e)=>{var z1t=Vd(),Z1t=Qk();function X1t(t,e){return z1t(t,Z1t(t),e)}K1e.exports=X1t});var I5=L((tir,z1e)=>{var $1t=kk(),e2t=jk(),t2t=Qk(),r2t=k4(),n2t=Object.getOwnPropertySymbols,i2t=n2t?function(t){for(var e=[];t;)$1t(e,t2t(t)),t=e2t(t);return e}:r2t;z1e.exports=i2t});var X1e=L((rir,Z1e)=>{var s2t=Vd(),o2t=I5();function a2t(t,e){return s2t(t,o2t(t),e)}Z1e.exports=a2t});var C5=L((nir,$1e)=>{var l2t=x4(),c2t=I5(),u2t=jE();function f2t(t){return l2t(t,u2t,c2t)}$1e.exports=f2t});var t2e=L((iir,e2e)=>{var A2t=Object.prototype,p2t=A2t.hasOwnProperty;function h2t(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&p2t.call(t,"index")&&(r.index=t.index,r.input=t.input),r}e2e.exports=h2t});var n2e=L((sir,r2e)=>{var g2t=Uk();function d2t(t,e){var r=e?g2t(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}r2e.exports=d2t});var s2e=L((oir,i2e)=>{var m2t=/\w*$/;function y2t(t){var e=new t.constructor(t.source,m2t.exec(t));return e.lastIndex=t.lastIndex,e}i2e.exports=y2t});var u2e=L((air,c2e)=>{var o2e=Gd(),a2e=o2e?o2e.prototype:void 0,l2e=a2e?a2e.valueOf:void 0;function E2t(t){return l2e?Object(l2e.call(t)):{}}c2e.exports=E2t});var A2e=L((lir,f2e)=>{var I2t=Uk(),C2t=n2e(),w2t=s2e(),B2t=u2e(),v2t=G4(),S2t="[object Boolean]",D2t="[object Date]",b2t="[object Map]",P2t="[object Number]",x2t="[object RegExp]",k2t="[object Set]",Q2t="[object String]",T2t="[object Symbol]",R2t="[object ArrayBuffer]",F2t="[object DataView]",N2t="[object Float32Array]",O2t="[object Float64Array]",L2t="[object Int8Array]",M2t="[object Int16Array]",_2t="[object Int32Array]",U2t="[object Uint8Array]",H2t="[object Uint8ClampedArray]",j2t="[object Uint16Array]",q2t="[object Uint32Array]";function G2t(t,e,r){var s=t.constructor;switch(e){case R2t:return I2t(t);case S2t:case D2t:return new s(+t);case F2t:return C2t(t,r);case N2t:case O2t:case L2t:case M2t:case _2t:case U2t:case H2t:case j2t:case q2t:return v2t(t,r);case b2t:return new s;case P2t:case Q2t:return new s(t);case x2t:return w2t(t);case k2t:return new s;case T2t:return B2t(t)}}f2e.exports=G2t});var h2e=L((cir,p2e)=>{var W2t=FB(),Y2t=zf(),V2t="[object Map]";function K2t(t){return Y2t(t)&&W2t(t)==V2t}p2e.exports=K2t});var y2e=L((uir,m2e)=>{var J2t=h2e(),z2t=Rk(),g2e=Fk(),d2e=g2e&&g2e.isMap,Z2t=d2e?z2t(d2e):J2t;m2e.exports=Z2t});var I2e=L((fir,E2e)=>{var X2t=FB(),$2t=zf(),eBt="[object Set]";function tBt(t){return $2t(t)&&X2t(t)==eBt}E2e.exports=tBt});var v2e=L((Air,B2e)=>{var rBt=I2e(),nBt=Rk(),C2e=Fk(),w2e=C2e&&C2e.isSet,iBt=w2e?nBt(w2e):rBt;B2e.exports=iBt});var w5=L((pir,P2e)=>{var sBt=Pk(),oBt=q1e(),aBt=qk(),lBt=W1e(),cBt=V1e(),uBt=q4(),fBt=Hk(),ABt=J1e(),pBt=X1e(),hBt=F4(),gBt=C5(),dBt=FB(),mBt=t2e(),yBt=A2e(),EBt=W4(),IBt=xc(),CBt=xB(),wBt=y2e(),BBt=Wl(),vBt=v2e(),SBt=Lk(),DBt=jE(),bBt=1,PBt=2,xBt=4,S2e="[object Arguments]",kBt="[object Array]",QBt="[object Boolean]",TBt="[object Date]",RBt="[object Error]",D2e="[object Function]",FBt="[object GeneratorFunction]",NBt="[object Map]",OBt="[object Number]",b2e="[object Object]",LBt="[object RegExp]",MBt="[object Set]",_Bt="[object String]",UBt="[object Symbol]",HBt="[object WeakMap]",jBt="[object ArrayBuffer]",qBt="[object DataView]",GBt="[object Float32Array]",WBt="[object Float64Array]",YBt="[object Int8Array]",VBt="[object Int16Array]",KBt="[object Int32Array]",JBt="[object Uint8Array]",zBt="[object Uint8ClampedArray]",ZBt="[object Uint16Array]",XBt="[object Uint32Array]",Ci={};Ci[S2e]=Ci[kBt]=Ci[jBt]=Ci[qBt]=Ci[QBt]=Ci[TBt]=Ci[GBt]=Ci[WBt]=Ci[YBt]=Ci[VBt]=Ci[KBt]=Ci[NBt]=Ci[OBt]=Ci[b2e]=Ci[LBt]=Ci[MBt]=Ci[_Bt]=Ci[UBt]=Ci[JBt]=Ci[zBt]=Ci[ZBt]=Ci[XBt]=!0;Ci[RBt]=Ci[D2e]=Ci[HBt]=!1;function rF(t,e,r,s,a,n){var c,f=e&bBt,p=e&PBt,h=e&xBt;if(r&&(c=a?r(t,s,a,n):r(t)),c!==void 0)return c;if(!BBt(t))return t;var E=IBt(t);if(E){if(c=mBt(t),!f)return fBt(t,c)}else{var C=dBt(t),S=C==D2e||C==FBt;if(CBt(t))return uBt(t,f);if(C==b2e||C==S2e||S&&!a){if(c=p||S?{}:EBt(t),!f)return p?pBt(t,cBt(c,t)):ABt(t,lBt(c,t))}else{if(!Ci[C])return a?t:{};c=yBt(t,C,f)}}n||(n=new sBt);var P=n.get(t);if(P)return P;n.set(t,c),vBt(t)?t.forEach(function(N){c.add(rF(N,e,r,N,t,n))}):wBt(t)&&t.forEach(function(N,U){c.set(U,rF(N,e,r,U,t,n))});var I=h?p?gBt:hBt:p?DBt:SBt,R=E?void 0:I(t);return oBt(R||t,function(N,U){R&&(U=N,N=t[U]),aBt(c,U,rF(N,e,r,U,t,n))}),c}P2e.exports=rF});var B5=L((hir,x2e)=>{var $Bt=w5(),evt=1,tvt=4;function rvt(t){return $Bt(t,evt|tvt)}x2e.exports=rvt});var v5=L((gir,k2e)=>{var nvt=hG();function ivt(t,e,r){return t==null?t:nvt(t,e,r)}k2e.exports=ivt});var N2e=L((Cir,F2e)=>{var svt=Object.prototype,ovt=svt.hasOwnProperty;function avt(t,e){return t!=null&&ovt.call(t,e)}F2e.exports=avt});var L2e=L((wir,O2e)=>{var lvt=N2e(),cvt=gG();function uvt(t,e){return t!=null&&cvt(t,e,lvt)}O2e.exports=uvt});var _2e=L((Bir,M2e)=>{function fvt(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}M2e.exports=fvt});var H2e=L((vir,U2e)=>{var Avt=HR(),pvt=s6();function hvt(t,e){return e.length<2?t:Avt(t,pvt(e,0,-1))}U2e.exports=hvt});var D5=L((Sir,j2e)=>{var gvt=Im(),dvt=_2e(),mvt=H2e(),yvt=zI();function Evt(t,e){return e=gvt(e,t),t=mvt(t,e),t==null||delete t[yvt(dvt(e))]}j2e.exports=Evt});var b5=L((Dir,q2e)=>{var Ivt=D5();function Cvt(t,e){return t==null?!0:Ivt(t,e)}q2e.exports=Cvt});var K2e=L((tsr,vvt)=>{vvt.exports={name:"@yarnpkg/cli",version:"4.9.2",license:"BSD-2-Clause",main:"./sources/index.ts",exports:{".":"./sources/index.ts","./polyfills":"./sources/polyfills.ts","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-constraints":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-exec":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-interactive-tools":"workspace:^","@yarnpkg/plugin-jsr":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/plugin-stage":"workspace:^","@yarnpkg/plugin-typescript":"workspace:^","@yarnpkg/plugin-version":"workspace:^","@yarnpkg/plugin-workspace-tools":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^4.0.0",clipanion:"^4.0.0-rc.2",semver:"^7.1.2",tslib:"^2.4.0",typanion:"^3.14.0"},devDependencies:{"@types/semver":"^7.1.0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",bin:null,exports:{".":"./lib/index.js","./package.json":"./package.json"}},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]}},repository:{type:"git",url:"git+https://github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=18.12.0"}}});var O5=L((Flr,oBe)=>{"use strict";oBe.exports=function(e,r){r===!0&&(r=0);var s="";if(typeof e=="string")try{s=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(s=e.protocol);var a=s.split(/\:|\+/).filter(Boolean);return typeof r=="number"?a[r]:a}});var lBe=L((Nlr,aBe)=>{"use strict";var Gvt=O5();function Wvt(t){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:t,query:{},parse_failed:!1};try{var r=new URL(t);e.protocols=Gvt(r),e.protocol=e.protocols[0],e.port=r.port,e.resource=r.hostname,e.host=r.host,e.user=r.username||"",e.password=r.password||"",e.pathname=r.pathname,e.hash=r.hash.slice(1),e.search=r.search.slice(1),e.href=r.href,e.query=Object.fromEntries(r.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=t,e.query={},e.parse_failed=!0}return e}aBe.exports=Wvt});var fBe=L((Olr,uBe)=>{"use strict";var Yvt=lBe();function Vvt(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var Kvt=Vvt(Yvt),Jvt="text/plain",zvt="us-ascii",cBe=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),Zvt=(t,{stripHash:e})=>{let r=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(t);if(!r)throw new Error(`Invalid URL: ${t}`);let{type:s,data:a,hash:n}=r.groups,c=s.split(";");n=e?"":n;let f=!1;c[c.length-1]==="base64"&&(c.pop(),f=!0);let p=(c.shift()||"").toLowerCase(),E=[...c.map(C=>{let[S,P=""]=C.split("=").map(I=>I.trim());return S==="charset"&&(P=P.toLowerCase(),P===zvt)?"":`${S}${P?`=${P}`:""}`}).filter(Boolean)];return f&&E.push("base64"),(E.length>0||p&&p!==Jvt)&&E.unshift(p),`data:${E.join(";")},${f?a.trim():a}${n?`#${n}`:""}`};function Xvt(t,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},t=t.trim(),/^data:/i.test(t))return Zvt(t,e);if(/^view-source:/i.test(t))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new URL(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash?a.hash="":e.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname){let c=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,f=0,p="";for(;;){let E=c.exec(a.pathname);if(!E)break;let C=E[0],S=E.index,P=a.pathname.slice(f,S);p+=P.replace(/\/{2,}/g,"/"),p+=C,f=S+C.length}let h=a.pathname.slice(f,a.pathname.length);p+=h.replace(/\/{2,}/g,"/"),a.pathname=p}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let c=a.pathname.split("/"),f=c[c.length-1];cBe(f,e.removeDirectoryIndex)&&(c=c.slice(0,-1),a.pathname=c.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let c of[...a.searchParams.keys()])cBe(c,e.removeQueryParameters)&&a.searchParams.delete(c);if(e.removeQueryParameters===!0&&(a.search=""),e.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let n=t;return t=a.toString(),!e.removeSingleSlash&&a.pathname==="/"&&!n.endsWith("/")&&a.hash===""&&(t=t.replace(/\/$/,"")),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&e.removeSingleSlash&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t}var L5=(t,e=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,s=n=>{let c=new Error(n);throw c.subject_url=t,c};(typeof t!="string"||!t.trim())&&s("Invalid url."),t.length>L5.MAX_INPUT_LENGTH&&s("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),t=Xvt(t,e));let a=Kvt.default(t);if(a.parse_failed){let n=a.href.match(r);n?(a.protocols=["ssh"],a.protocol="ssh",a.resource=n[2],a.host=n[2],a.user=n[1],a.pathname=`/${n[3]}`,a.parse_failed=!1):s("URL parsing failed.")}return a};L5.MAX_INPUT_LENGTH=2048;uBe.exports=L5});var hBe=L((Llr,pBe)=>{"use strict";var $vt=O5();function ABe(t){if(Array.isArray(t))return t.indexOf("ssh")!==-1||t.indexOf("rsync")!==-1;if(typeof t!="string")return!1;var e=$vt(t);if(t=t.substring(t.indexOf("://")+3),ABe(e))return!0;var r=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!t.match(r)&&t.indexOf("@")<t.indexOf(":")}pBe.exports=ABe});var mBe=L((Mlr,dBe)=>{"use strict";var eSt=fBe(),gBe=hBe();function tSt(t){var e=eSt(t);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),gBe(e.protocols)||e.protocols.length===0&&gBe(t)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}dBe.exports=tSt});var EBe=L((_lr,yBe)=>{"use strict";var rSt=mBe();function M5(t){if(typeof t!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(t)&&(t="https://github.com/"+t);var r=rSt(t),s=r.resource.split("."),a=null;switch(r.toString=function(N){return M5.stringify(this,N)},r.source=s.length>2?s.slice(1-s.length).join("."):r.source=r.resource,r.git_suffix=/\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),r.owner=decodeURIComponent(r.user),r.source){case"git.cloudforge.com":r.owner=r.user,r.organization=s[0],r.source="cloudforge.com";break;case"visualstudio.com":if(r.resource==="vs-ssh.visualstudio.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+"/"+a[3]);break}else{a=r.name.split("/"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name);break}case"dev.azure.com":case"azure.com":if(r.resource==="ssh.dev.azure.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split("/"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\/+/g,"")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,""));break}default:a=r.name.split("/");var n=a.length-1;if(a.length>=2){var c=a.indexOf("-",2),f=a.indexOf("blob",2),p=a.indexOf("tree",2),h=a.indexOf("commit",2),E=a.indexOf("src",2),C=a.indexOf("raw",2),S=a.indexOf("edit",2);n=c>0?c-1:f>0?f-1:p>0?p-1:h>0?h-1:E>0?E-1:C>0?C-1:S>0?S-1:n,r.owner=a.slice(0,n).join("/"),r.name=a[n],h&&(r.commit=a[n+2])}r.ref="",r.filepathtype="",r.filepath="";var P=a.length>n&&a[n+1]==="-"?n+1:n;a.length>P+2&&["raw","src","blob","tree","edit"].indexOf(a[P+1])>=0&&(r.filepathtype=a[P+1],r.ref=a[P+2],a.length>P+3&&(r.filepath=a.slice(P+3).join("/"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+="/"),r.full_name+=r.name)),r.owner.startsWith("scm/")&&(r.source="bitbucket-server",r.owner=r.owner.replace("scm/",""),r.organization=r.owner,r.full_name=r.owner+"/"+r.name);var I=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,R=I.exec(r.pathname);return R!=null&&(r.source="bitbucket-server",R[1]==="users"?r.owner="~"+R[2]:r.owner=R[2],r.organization=r.owner,r.name=R[3],a=R[4].split("/"),a.length>1&&(["raw","browse"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join("/"))):a[1]==="commits"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+"/"+r.name,r.query.at?r.ref=r.query.at:r.ref=""),r}M5.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join("+"):t.protocol);var r=t.port?":"+t.port:"",s=t.user||"git",a=t.git_suffix?".git":"";switch(e){case"ssh":return r?"ssh://"+s+"@"+t.resource+r+"/"+t.full_name+a:s+"@"+t.resource+":"+t.full_name+a;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+s+"@"+t.resource+r+"/"+t.full_name+a;case"http":case"https":var n=t.token?nSt(t):t.user&&(t.protocols.includes("http")||t.protocols.includes("https"))?t.user+"@":"";return e+"://"+n+t.resource+r+"/"+iSt(t)+a;default:return t.href}};function nSt(t){switch(t.source){case"bitbucket.org":return"x-token-auth:"+t.token+"@";default:return t.token+"@"}}function iSt(t){switch(t.source){case"bitbucket-server":return"scm/"+t.full_name;default:return""+t.full_name}}yBe.exports=M5});var NBe=L((yur,FBe)=>{var gSt=QT(),dSt=Hk(),mSt=xc(),ySt=oI(),ESt=pG(),ISt=zI(),CSt=bv();function wSt(t){return mSt(t)?gSt(t,ISt):ySt(t)?[t]:dSt(ESt(CSt(t)))}FBe.exports=wSt});function DSt(t,e){return e===1&&SSt.has(t[0])}function hS(t){let e=Array.isArray(t)?t:(0,MBe.default)(t);return e.map((s,a)=>BSt.test(s)?`[${s}]`:vSt.test(s)&&!DSt(e,a)?`.${s}`:`[${JSON.stringify(s)}]`).join("").replace(/^\./,"")}function bSt(t,e){let r=[];if(e.methodName!==null&&r.push(he.pretty(t,e.methodName,he.Type.CODE)),e.file!==null){let s=[];s.push(he.pretty(t,e.file,he.Type.PATH)),e.line!==null&&(s.push(he.pretty(t,e.line,he.Type.NUMBER)),e.column!==null&&s.push(he.pretty(t,e.column,he.Type.NUMBER))),r.push(`(${s.join(he.pretty(t,":","grey"))})`)}return r.join(" ")}function oF(t,{manifestUpdates:e,reportedErrors:r},{fix:s}={}){let a=new Map,n=new Map,c=[...r.keys()].map(f=>[f,new Map]);for(let[f,p]of[...c,...e]){let h=r.get(f)?.map(P=>({text:P,fixable:!1}))??[],E=!1,C=t.getWorkspaceByCwd(f),S=C.manifest.exportTo({});for(let[P,I]of p){if(I.size>1){let R=[...I].map(([N,U])=>{let W=he.pretty(t.configuration,N,he.Type.INSPECT),te=U.size>0?bSt(t.configuration,U.values().next().value):null;return te!==null?` +${W} at ${te}`:` +${W}`}).join("");h.push({text:`Conflict detected in constraint targeting ${he.pretty(t.configuration,P,he.Type.CODE)}; conflicting values are:${R}`,fixable:!1})}else{let[[R]]=I,N=(0,OBe.default)(S,P);if(JSON.stringify(N)===JSON.stringify(R))continue;if(!s){let U=typeof N>"u"?`Missing field ${he.pretty(t.configuration,P,he.Type.CODE)}; expected ${he.pretty(t.configuration,R,he.Type.INSPECT)}`:typeof R>"u"?`Extraneous field ${he.pretty(t.configuration,P,he.Type.CODE)} currently set to ${he.pretty(t.configuration,N,he.Type.INSPECT)}`:`Invalid field ${he.pretty(t.configuration,P,he.Type.CODE)}; expected ${he.pretty(t.configuration,R,he.Type.INSPECT)}, found ${he.pretty(t.configuration,N,he.Type.INSPECT)}`;h.push({text:U,fixable:!0});continue}typeof R>"u"?(0,_Be.default)(S,P):(0,LBe.default)(S,P,R),E=!0}E&&a.set(C,S)}h.length>0&&n.set(C,h)}return{changedWorkspaces:a,remainingErrors:n}}function UBe(t,{configuration:e}){let r={children:[]};for(let[s,a]of t){let n=[];for(let f of a){let p=f.text.split(/\n/);f.fixable&&(p[0]=`${he.pretty(e,"\u2699","gray")} ${p[0]}`),n.push({value:he.tuple(he.Type.NO_HINT,p[0]),children:p.slice(1).map(h=>({value:he.tuple(he.Type.NO_HINT,h)}))})}let c={value:he.tuple(he.Type.LOCATOR,s.anchoredLocator),children:je.sortMap(n,f=>f.value[1])};r.children.push(c)}return r.children=je.sortMap(r.children,s=>s.value[1]),r}var OBe,LBe,MBe,_Be,WC,BSt,vSt,SSt,gS=Ct(()=>{Ve();OBe=et(aS()),LBe=et(v5()),MBe=et(NBe()),_Be=et(b5()),WC=class{constructor(e){this.indexedFields=e;this.items=[];this.indexes={};this.clear()}clear(){this.items=[];for(let e of this.indexedFields)this.indexes[e]=new Map}insert(e){this.items.push(e);for(let r of this.indexedFields){let s=Object.hasOwn(e,r)?e[r]:void 0;if(typeof s>"u")continue;je.getArrayWithDefault(this.indexes[r],s).push(e)}return e}find(e){if(typeof e>"u")return this.items;let r=Object.entries(e);if(r.length===0)return this.items;let s=[],a;for(let[c,f]of r){let p=c,h=Object.hasOwn(this.indexes,p)?this.indexes[p]:void 0;if(typeof h>"u"){s.push([p,f]);continue}let E=new Set(h.get(f)??[]);if(E.size===0)return[];if(typeof a>"u")a=E;else for(let C of a)E.has(C)||a.delete(C);if(a.size===0)break}let n=[...a??[]];return s.length>0&&(n=n.filter(c=>{for(let[f,p]of s)if(!(typeof p<"u"?Object.hasOwn(c,f)&&c[f]===p:Object.hasOwn(c,f)===!1))return!1;return!0})),n}},BSt=/^[0-9]+$/,vSt=/^[a-zA-Z0-9_]+$/,SSt=new Set(["scripts",...Ht.allDependencies])});var HBe=L((kur,X5)=>{var PSt;(function(t){var e=function(){return{"append/2":[new t.type.Rule(new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("L")]),new t.type.Term("foldl",[new t.type.Term("append",[]),new t.type.Var("X"),new t.type.Term("[]",[]),new t.type.Var("L")]))],"append/3":[new t.type.Rule(new t.type.Term("append",[new t.type.Term("[]",[]),new t.type.Var("X"),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("append",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("append",[new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("S")]))],"member/2":[new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("_")])]),null),new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")])]),new t.type.Term("member",[new t.type.Var("X"),new t.type.Var("Xs")]))],"permutation/2":[new t.type.Rule(new t.type.Term("permutation",[new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("permutation",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("permutation",[new t.type.Var("T"),new t.type.Var("P")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("P")]),new t.type.Term("append",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("Y")]),new t.type.Var("S")])])]))],"maplist/2":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("X")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("Xs")])]))],"maplist/3":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs")])]))],"maplist/4":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs")])]))],"maplist/5":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds")])]))],"maplist/6":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es")])]))],"maplist/7":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs")])]))],"maplist/8":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")]),new t.type.Term(".",[new t.type.Var("G"),new t.type.Var("Gs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F"),new t.type.Var("G")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs"),new t.type.Var("Gs")])]))],"include/3":[new t.type.Rule(new t.type.Term("include",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("include",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("A")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("A"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("F"),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("F")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("L"),new t.type.Var("S")])]),new t.type.Term("include",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("S")])])])])]))],"exclude/3":[new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("E")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("Q")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("R"),new t.type.Var("Q")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("!",[]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("E")])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("E")])])])])])])]))],"foldl/4":[new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Var("I"),new t.type.Var("I")]),null),new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("I"),new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("I"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])])])]),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P2"),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P2")]),new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("R")])])])])]))],"select/3":[new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Xs")]),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term("select",[new t.type.Var("E"),new t.type.Var("Xs"),new t.type.Var("Ys")]))],"sum_list/2":[new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term("[]",[]),new t.type.Num(0,!1)]),null),new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("sum_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("+",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"max_list/2":[new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("max_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"min_list/2":[new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("min_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("=<",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"prod_list/2":[new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term("[]",[]),new t.type.Num(1,!1)]),null),new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("prod_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("*",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"last/2":[new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")]),new t.type.Var("X")]),new t.type.Term("last",[new t.type.Var("Xs"),new t.type.Var("X")]))],"prefix/2":[new t.type.Rule(new t.type.Term("prefix",[new t.type.Var("Part"),new t.type.Var("Whole")]),new t.type.Term("append",[new t.type.Var("Part"),new t.type.Var("_"),new t.type.Var("Whole")]))],"nth0/3":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth1/3":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth0/4":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth1/4":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth/5":[new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("N"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("X"),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("O"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("Y"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term(",",[new t.type.Term("is",[new t.type.Var("M"),new t.type.Term("+",[new t.type.Var("N"),new t.type.Num(1,!1)])]),new t.type.Term("nth",[new t.type.Var("M"),new t.type.Var("O"),new t.type.Var("Xs"),new t.type.Var("Y"),new t.type.Var("Ys")])]))],"length/2":function(s,a,n){var c=n.args[0],f=n.args[1];if(!t.type.is_variable(f)&&!t.type.is_integer(f))s.throw_error(t.error.type("integer",f,n.indicator));else if(t.type.is_integer(f)&&f.value<0)s.throw_error(t.error.domain("not_less_than_zero",f,n.indicator));else{var p=new t.type.Term("length",[c,new t.type.Num(0,!1),f]);t.type.is_integer(f)&&(p=new t.type.Term(",",[p,new t.type.Term("!",[])])),s.prepend([new t.type.State(a.goal.replace(p),a.substitution,a)])}},"length/3":[new t.type.Rule(new t.type.Term("length",[new t.type.Term("[]",[]),new t.type.Var("N"),new t.type.Var("N")]),null),new t.type.Rule(new t.type.Term("length",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("X")]),new t.type.Var("A"),new t.type.Var("N")]),new t.type.Term(",",[new t.type.Term("succ",[new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("length",[new t.type.Var("X"),new t.type.Var("B"),new t.type.Var("N")])]))],"replicate/3":function(s,a,n){var c=n.args[0],f=n.args[1],p=n.args[2];if(t.type.is_variable(f))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_integer(f))s.throw_error(t.error.type("integer",f,n.indicator));else if(f.value<0)s.throw_error(t.error.domain("not_less_than_zero",f,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))s.throw_error(t.error.type("list",p,n.indicator));else{for(var h=new t.type.Term("[]"),E=0;E<f.value;E++)h=new t.type.Term(".",[c,h]);s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[h,p])),a.substitution,a)])}},"sort/2":function(s,a,n){var c=n.args[0],f=n.args[1];if(t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(f)&&!t.type.is_fully_list(f))s.throw_error(t.error.type("list",f,n.indicator));else{for(var p=[],h=c;h.indicator==="./2";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))s.throw_error(t.error.type("list",c,n.indicator));else{for(var E=p.sort(t.compare),C=E.length-1;C>0;C--)E[C].equals(E[C-1])&&E.splice(C,1);for(var S=new t.type.Term("[]"),C=E.length-1;C>=0;C--)S=new t.type.Term(".",[E[C],S]);s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[S,f])),a.substitution,a)])}}},"msort/2":function(s,a,n){var c=n.args[0],f=n.args[1];if(t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(f)&&!t.type.is_fully_list(f))s.throw_error(t.error.type("list",f,n.indicator));else{for(var p=[],h=c;h.indicator==="./2";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))s.throw_error(t.error.type("list",c,n.indicator));else{for(var E=p.sort(t.compare),C=new t.type.Term("[]"),S=E.length-1;S>=0;S--)C=new t.type.Term(".",[E[S],C]);s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[C,f])),a.substitution,a)])}}},"keysort/2":function(s,a,n){var c=n.args[0],f=n.args[1];if(t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(f)&&!t.type.is_fully_list(f))s.throw_error(t.error.type("list",f,n.indicator));else{for(var p=[],h,E=c;E.indicator==="./2";){if(h=E.args[0],t.type.is_variable(h)){s.throw_error(t.error.instantiation(n.indicator));return}else if(!t.type.is_term(h)||h.indicator!=="-/2"){s.throw_error(t.error.type("pair",h,n.indicator));return}h.args[0].pair=h.args[1],p.push(h.args[0]),E=E.args[1]}if(t.type.is_variable(E))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(E))s.throw_error(t.error.type("list",c,n.indicator));else{for(var C=p.sort(t.compare),S=new t.type.Term("[]"),P=C.length-1;P>=0;P--)S=new t.type.Term(".",[new t.type.Term("-",[C[P],C[P].pair]),S]),delete C[P].pair;s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[S,f])),a.substitution,a)])}}},"take/3":function(s,a,n){var c=n.args[0],f=n.args[1],p=n.args[2];if(t.type.is_variable(f)||t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(f))s.throw_error(t.error.type("list",f,n.indicator));else if(!t.type.is_integer(c))s.throw_error(t.error.type("integer",c,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))s.throw_error(t.error.type("list",p,n.indicator));else{for(var h=c.value,E=[],C=f;h>0&&C.indicator==="./2";)E.push(C.args[0]),C=C.args[1],h--;if(h===0){for(var S=new t.type.Term("[]"),h=E.length-1;h>=0;h--)S=new t.type.Term(".",[E[h],S]);s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[S,p])),a.substitution,a)])}}},"drop/3":function(s,a,n){var c=n.args[0],f=n.args[1],p=n.args[2];if(t.type.is_variable(f)||t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(f))s.throw_error(t.error.type("list",f,n.indicator));else if(!t.type.is_integer(c))s.throw_error(t.error.type("integer",c,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))s.throw_error(t.error.type("list",p,n.indicator));else{for(var h=c.value,E=[],C=f;h>0&&C.indicator==="./2";)E.push(C.args[0]),C=C.args[1],h--;h===0&&s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[C,p])),a.substitution,a)])}},"reverse/2":function(s,a,n){var c=n.args[0],f=n.args[1],p=t.type.is_instantiated_list(c),h=t.type.is_instantiated_list(f);if(t.type.is_variable(c)&&t.type.is_variable(f))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(c)&&!t.type.is_fully_list(c))s.throw_error(t.error.type("list",c,n.indicator));else if(!t.type.is_variable(f)&&!t.type.is_fully_list(f))s.throw_error(t.error.type("list",f,n.indicator));else if(!p&&!h)s.throw_error(t.error.instantiation(n.indicator));else{for(var E=p?c:f,C=new t.type.Term("[]",[]);E.indicator==="./2";)C=new t.type.Term(".",[E.args[0],C]),E=E.args[1];s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[C,p?f:c])),a.substitution,a)])}},"list_to_set/2":function(s,a,n){var c=n.args[0],f=n.args[1];if(t.type.is_variable(c))s.throw_error(t.error.instantiation(n.indicator));else{for(var p=c,h=[];p.indicator==="./2";)h.push(p.args[0]),p=p.args[1];if(t.type.is_variable(p))s.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_term(p)||p.indicator!=="[]/0")s.throw_error(t.error.type("list",c,n.indicator));else{for(var E=[],C=new t.type.Term("[]",[]),S,P=0;P<h.length;P++){S=!1;for(var I=0;I<E.length&&!S;I++)S=t.compare(h[P],E[I])===0;S||E.push(h[P])}for(P=E.length-1;P>=0;P--)C=new t.type.Term(".",[E[P],C]);s.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[f,C])),a.substitution,a)])}}}}},r=["append/2","append/3","member/2","permutation/2","maplist/2","maplist/3","maplist/4","maplist/5","maplist/6","maplist/7","maplist/8","include/3","exclude/3","foldl/4","sum_list/2","max_list/2","min_list/2","prod_list/2","last/2","prefix/2","nth0/3","nth1/3","nth0/4","nth1/4","length/2","replicate/3","select/3","sort/2","msort/2","keysort/2","take/3","drop/3","reverse/2","list_to_set/2"];typeof X5<"u"?X5.exports=function(s){t=s,new t.type.Module("lists",e(),r)}:new t.type.Module("lists",e(),r)})(PSt)});var rve=L($r=>{"use strict";var Dm=process.platform==="win32",$5="aes-256-cbc",xSt="sha256",GBe="The current environment doesn't support interactive reading from TTY.",si=Ie("fs"),jBe=process.binding("tty_wrap").TTY,t9=Ie("child_process"),Y0=Ie("path"),r9={prompt:"> ",hideEchoBack:!1,mask:"*",limit:[],limitMessage:"Input another, please.$<( [)limit(])>",defaultInput:"",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:"utf8",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},$p="none",$u,VC,qBe=!1,W0,lF,e9,kSt=0,a9="",Sm=[],cF,WBe=!1,n9=!1,dS=!1;function YBe(t){function e(r){return r.replace(/[^\w\u0080-\uFFFF]/g,function(s){return"#"+s.charCodeAt(0)+";"})}return lF.concat(function(r){var s=[];return Object.keys(r).forEach(function(a){r[a]==="boolean"?t[a]&&s.push("--"+a):r[a]==="string"&&t[a]&&s.push("--"+a,e(t[a]))}),s}({display:"string",displayOnly:"boolean",keyIn:"boolean",hideEchoBack:"boolean",mask:"string",limit:"string",caseSensitive:"boolean"}))}function QSt(t,e){function r(U){var W,te="",ie;for(e9=e9||Ie("os").tmpdir();;){W=Y0.join(e9,U+te);try{ie=si.openSync(W,"wx")}catch(Ae){if(Ae.code==="EEXIST"){te++;continue}else throw Ae}si.closeSync(ie);break}return W}var s,a,n,c={},f,p,h=r("readline-sync.stdout"),E=r("readline-sync.stderr"),C=r("readline-sync.exit"),S=r("readline-sync.done"),P=Ie("crypto"),I,R,N;I=P.createHash(xSt),I.update(""+process.pid+kSt+++Math.random()),N=I.digest("hex"),R=P.createDecipher($5,N),s=YBe(t),Dm?(a=process.env.ComSpec||"cmd.exe",process.env.Q='"',n=["/V:ON","/S","/C","(%Q%"+a+"%Q% /V:ON /S /C %Q%%Q%"+W0+"%Q%"+s.map(function(U){return" %Q%"+U+"%Q%"}).join("")+" & (echo !ERRORLEVEL!)>%Q%"+C+"%Q%%Q%) 2>%Q%"+E+"%Q% |%Q%"+process.execPath+"%Q% %Q%"+__dirname+"\\encrypt.js%Q% %Q%"+$5+"%Q% %Q%"+N+"%Q% >%Q%"+h+"%Q% & (echo 1)>%Q%"+S+"%Q%"]):(a="/bin/sh",n=["-c",'("'+W0+'"'+s.map(function(U){return" '"+U.replace(/'/g,"'\\''")+"'"}).join("")+'; echo $?>"'+C+'") 2>"'+E+'" |"'+process.execPath+'" "'+__dirname+'/encrypt.js" "'+$5+'" "'+N+'" >"'+h+'"; echo 1 >"'+S+'"']),dS&&dS("_execFileSync",s);try{t9.spawn(a,n,e)}catch(U){c.error=new Error(U.message),c.error.method="_execFileSync - spawn",c.error.program=a,c.error.args=n}for(;si.readFileSync(S,{encoding:t.encoding}).trim()!=="1";);return(f=si.readFileSync(C,{encoding:t.encoding}).trim())==="0"?c.input=R.update(si.readFileSync(h,{encoding:"binary"}),"hex",t.encoding)+R.final(t.encoding):(p=si.readFileSync(E,{encoding:t.encoding}).trim(),c.error=new Error(GBe+(p?` +`+p:"")),c.error.method="_execFileSync",c.error.program=a,c.error.args=n,c.error.extMessage=p,c.error.exitCode=+f),si.unlinkSync(h),si.unlinkSync(E),si.unlinkSync(C),si.unlinkSync(S),c}function TSt(t){var e,r={},s,a={env:process.env,encoding:t.encoding};if(W0||(Dm?process.env.PSModulePath?(W0="powershell.exe",lF=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(W0="cscript.exe",lF=["//nologo",__dirname+"\\read.cs.js"]):(W0="/bin/sh",lF=[__dirname+"/read.sh"])),Dm&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),t9.execFileSync){e=YBe(t),dS&&dS("execFileSync",e);try{r.input=t9.execFileSync(W0,e,a)}catch(n){s=n.stderr?(n.stderr+"").trim():"",r.error=new Error(GBe+(s?` +`+s:"")),r.error.method="execFileSync",r.error.program=W0,r.error.args=e,r.error.extMessage=s,r.error.exitCode=n.status,r.error.code=n.code,r.error.signal=n.signal}}else r=QSt(t,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),t.display=""),r}function i9(t){var e="",r=t.display,s=!t.display&&t.keyIn&&t.hideEchoBack&&!t.mask;function a(){var n=TSt(t);if(n.error)throw n.error;return n.input}return n9&&n9(t),function(){var n,c,f;function p(){return n||(n=process.binding("fs"),c=process.binding("constants")),n}if(typeof $p=="string")if($p=null,Dm){if(f=function(h){var E=h.replace(/^\D+/,"").split("."),C=0;return(E[0]=+E[0])&&(C+=E[0]*1e4),(E[1]=+E[1])&&(C+=E[1]*100),(E[2]=+E[2])&&(C+=E[2]),C}(process.version),!(f>=20302&&f<40204||f>=5e4&&f<50100||f>=50600&&f<60200)&&process.stdin.isTTY)process.stdin.pause(),$p=process.stdin.fd,VC=process.stdin._handle;else try{$p=p().open("CONIN$",c.O_RDWR,parseInt("0666",8)),VC=new jBe($p,!0)}catch{}if(process.stdout.isTTY)$u=process.stdout.fd;else{try{$u=si.openSync("\\\\.\\CON","w")}catch{}if(typeof $u!="number")try{$u=p().open("CONOUT$",c.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{$p=si.openSync("/dev/tty","r"),VC=process.stdin._handle}catch{}}else try{$p=si.openSync("/dev/tty","r"),VC=new jBe($p,!1)}catch{}if(process.stdout.isTTY)$u=process.stdout.fd;else try{$u=si.openSync("/dev/tty","w")}catch{}}}(),function(){var n,c,f=!t.hideEchoBack&&!t.keyIn,p,h,E,C,S;cF="";function P(I){return I===qBe?!0:VC.setRawMode(I)!==0?!1:(qBe=I,!0)}if(WBe||!VC||typeof $u!="number"&&(t.display||!f)){e=a();return}if(t.display&&(si.writeSync($u,t.display),t.display=""),!t.displayOnly){if(!P(!f)){e=a();return}for(h=t.keyIn?1:t.bufferSize,p=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(h):new Buffer(h),t.keyIn&&t.limit&&(c=new RegExp("[^"+t.limit+"]","g"+(t.caseSensitive?"":"i")));;){E=0;try{E=si.readSync($p,p,0,h)}catch(I){if(I.code!=="EOF"){P(!1),e+=a();return}}if(E>0?(C=p.toString(t.encoding,0,E),cF+=C):(C=` +`,cF+="\0"),C&&typeof(S=(C.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(C=S,n=!0),C&&(C=C.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),C&&c&&(C=C.replace(c,"")),C&&(f||(t.hideEchoBack?t.mask&&si.writeSync($u,new Array(C.length+1).join(t.mask)):si.writeSync($u,C)),e+=C),!t.keyIn&&n||t.keyIn&&e.length>=h)break}!f&&!s&&si.writeSync($u,` +`),P(!1)}}(),t.print&&!s&&t.print(r+(t.displayOnly?"":(t.hideEchoBack?new Array(e.length+1).join(t.mask):e)+` +`),t.encoding),t.displayOnly?"":a9=t.keepWhitespace||t.keyIn?e:e.trim()}function RSt(t,e){var r=[];function s(a){a!=null&&(Array.isArray(a)?a.forEach(s):(!e||e(a))&&r.push(a))}return s(t),r}function l9(t){return t.replace(/[\x00-\x7f]/g,function(e){return"\\x"+("00"+e.charCodeAt().toString(16)).substr(-2)})}function Js(){var t=Array.prototype.slice.call(arguments),e,r;return t.length&&typeof t[0]=="boolean"&&(r=t.shift(),r&&(e=Object.keys(r9),t.unshift(r9))),t.reduce(function(s,a){return a==null||(a.hasOwnProperty("noEchoBack")&&!a.hasOwnProperty("hideEchoBack")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty("noTrim")&&!a.hasOwnProperty("keepWhitespace")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(e=Object.keys(a)),e.forEach(function(n){var c;if(a.hasOwnProperty(n))switch(c=a[n],n){case"mask":case"limitMessage":case"defaultInput":case"encoding":c=c!=null?c+"":"",c&&n!=="limitMessage"&&(c=c.replace(/[\r\n]/g,"")),s[n]=c;break;case"bufferSize":!isNaN(c=parseInt(c,10))&&typeof c=="number"&&(s[n]=c);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":s[n]=!!c;break;case"limit":case"trueValue":case"falseValue":s[n]=RSt(c,function(f){var p=typeof f;return p==="string"||p==="number"||p==="function"||f instanceof RegExp}).map(function(f){return typeof f=="string"?f.replace(/[\r\n]/g,""):f});break;case"print":case"phContent":case"preCheck":s[n]=typeof c=="function"?c:void 0;break;case"prompt":case"display":s[n]=c??"";break}})),s},{})}function s9(t,e,r){return e.some(function(s){var a=typeof s;return a==="string"?r?t===s:t.toLowerCase()===s.toLowerCase():a==="number"?parseFloat(t)===s:a==="function"?s(t):s instanceof RegExp?s.test(t):!1})}function c9(t,e){var r=Y0.normalize(Dm?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return t=Y0.normalize(t),e?t.replace(/^~(?=\/|\\|$)/,r):t.replace(new RegExp("^"+l9(r)+"(?=\\/|\\\\|$)",Dm?"i":""),"~")}function KC(t,e){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",s=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function n(c,f,p,h,E,C){var S;return f||typeof(S=e(E))!="string"?p:S?(h||"")+S+(C||""):""}return t.replace(s,n).replace(a,n)}function VBe(t,e,r){var s,a=[],n=-1,c=0,f="",p;function h(E,C){return C.length>3?(E.push(C[0]+"..."+C[C.length-1]),p=!0):C.length&&(E=E.concat(C)),E}return s=t.reduce(function(E,C){return E.concat((C+"").split(""))},[]).reduce(function(E,C){var S,P;return e||(C=C.toLowerCase()),S=/^\d$/.test(C)?1:/^[A-Z]$/.test(C)?2:/^[a-z]$/.test(C)?3:0,r&&S===0?f+=C:(P=C.charCodeAt(0),S&&S===n&&P===c+1?a.push(C):(E=h(E,a),a=[C],n=S),c=P),E},[]),s=h(s,a),f&&(s.push(f),p=!0),{values:s,suppressed:p}}function KBe(t,e){return t.join(t.length>2?", ":e?" / ":"/")}function JBe(t,e){var r,s,a={},n;if(e.phContent&&(r=e.phContent(t,e)),typeof r!="string")switch(t){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=e.hasOwnProperty(t)?typeof e[t]=="boolean"?e[t]?"on":"off":e[t]+"":"";break;case"limit":case"trueValue":case"falseValue":s=e[e.hasOwnProperty(t+"Src")?t+"Src":t],e.keyIn?(a=VBe(s,e.caseSensitive),s=a.values):s=s.filter(function(c){var f=typeof c;return f==="string"||f==="number"}),r=KBe(s,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=e[e.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||t!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=a9;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),t==="CWD"?r=Y0.basename(r):t==="cwdHome"&&(r=c9(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+t.replace(/^./,function(c){return c.toUpperCase()})+"String"]();break;default:typeof(n=(t.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=Sm[Sm.length-n]||"")}return r}function zBe(t){var e=/^(.)-(.)$/.exec(t),r="",s,a,n,c;if(!e)return null;for(s=e[1].charCodeAt(0),a=e[2].charCodeAt(0),c=s<a?1:-1,n=s;n!==a+c;n+=c)r+=String.fromCharCode(n);return r}function o9(t){var e=new RegExp(/(\s*)(?:("|')(.*?)(?:\2|$)|(\S+))/g),r,s="",a=[],n;for(t=t.trim();r=e.exec(t);)n=r[3]||r[4]||"",r[1]&&(a.push(s),s=""),s+=n;return s&&a.push(s),a}function ZBe(t,e){return e.trueValue.length&&s9(t,e.trueValue,e.caseSensitive)?!0:e.falseValue.length&&s9(t,e.falseValue,e.caseSensitive)?!1:t}function XBe(t){var e,r,s,a,n,c,f;function p(E){return JBe(E,t)}function h(E){t.display+=(/[^\r\n]$/.test(t.display)?` +`:"")+E}for(t.limitSrc=t.limit,t.displaySrc=t.display,t.limit="",t.display=KC(t.display+"",p);;){if(e=i9(t),r=!1,s="",t.defaultInput&&!e&&(e=t.defaultInput),t.history&&((a=/^\s*\!(?:\!|-1)(:p)?\s*$/.exec(e))?(n=Sm[0]||"",a[1]?r=!0:e=n,h(n+` +`),r||(t.displayOnly=!0,i9(t),t.displayOnly=!1)):e&&e!==Sm[Sm.length-1]&&(Sm=[e])),!r&&t.cd&&e)switch(c=o9(e),c[0].toLowerCase()){case"cd":if(c[1])try{process.chdir(c9(c[1],!0))}catch(E){h(E+"")}r=!0;break;case"pwd":h(process.cwd()),r=!0;break}if(!r&&t.preCheck&&(f=t.preCheck(e,t),e=f.res,f.forceNext&&(r=!0)),!r){if(!t.limitSrc.length||s9(e,t.limitSrc,t.caseSensitive))break;t.limitMessage&&(s=KC(t.limitMessage,p))}h((s?s+` +`:"")+KC(t.displaySrc+"",p))}return ZBe(e,t)}$r._DBG_set_useExt=function(t){WBe=t};$r._DBG_set_checkOptions=function(t){n9=t};$r._DBG_set_checkMethod=function(t){dS=t};$r._DBG_clearHistory=function(){a9="",Sm=[]};$r.setDefaultOptions=function(t){return r9=Js(!0,t),Js(!0)};$r.question=function(t,e){return XBe(Js(Js(!0,e),{display:t}))};$r.prompt=function(t){var e=Js(!0,t);return e.display=e.prompt,XBe(e)};$r.keyIn=function(t,e){var r=Js(Js(!0,e),{display:t,keyIn:!0,keepWhitespace:!0});return r.limitSrc=r.limit.filter(function(s){var a=typeof s;return a==="string"||a==="number"}).map(function(s){return KC(s+"",zBe)}),r.limit=l9(r.limitSrc.join("")),["trueValue","falseValue"].forEach(function(s){r[s]=r[s].reduce(function(a,n){var c=typeof n;return c==="string"||c==="number"?a=a.concat((n+"").split("")):a.push(n),a},[])}),r.display=KC(r.display+"",function(s){return JBe(s,r)}),ZBe(i9(r),r)};$r.questionEMail=function(t,e){return t==null&&(t="Input e-mail address: "),$r.question(t,Js({hideEchoBack:!1,limit:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,limitMessage:"Input valid e-mail address, please.",trueValue:null,falseValue:null},e,{keepWhitespace:!1,cd:!1}))};$r.questionNewPassword=function(t,e){var r,s,a,n=Js({hideEchoBack:!0,mask:"*",limitMessage:`It can include: $<charlist> +And the length must be: $<length>`,trueValue:null,falseValue:null,caseSensitive:!0},e,{history:!1,cd:!1,phContent:function(P){return P==="charlist"?r.text:P==="length"?s+"..."+a:null}}),c,f,p,h,E,C,S;for(e=e||{},c=KC(e.charlist?e.charlist+"":"$<!-~>",zBe),(isNaN(s=parseInt(e.min,10))||typeof s!="number")&&(s=12),(isNaN(a=parseInt(e.max,10))||typeof a!="number")&&(a=24),h=new RegExp("^["+l9(c)+"]{"+s+","+a+"}$"),r=VBe([c],n.caseSensitive,!0),r.text=KBe(r.values,r.suppressed),f=e.confirmMessage!=null?e.confirmMessage:"Reinput a same one to confirm it: ",p=e.unmatchMessage!=null?e.unmatchMessage:"It differs from first one. Hit only the Enter key if you want to retry from first one.",t==null&&(t="Input new password: "),E=n.limitMessage;!S;)n.limit=h,n.limitMessage=E,C=$r.question(t,n),n.limit=[C,""],n.limitMessage=p,S=$r.question(f,n);return C};function $Be(t,e,r){var s;function a(n){return s=r(n),!isNaN(s)&&typeof s=="number"}return $r.question(t,Js({limitMessage:"Input valid number, please."},e,{limit:a,cd:!1})),s}$r.questionInt=function(t,e){return $Be(t,e,function(r){return parseInt(r,10)})};$r.questionFloat=function(t,e){return $Be(t,e,parseFloat)};$r.questionPath=function(t,e){var r,s="",a=Js({hideEchoBack:!1,limitMessage:`$<error( +)>Input valid path, please.$<( Min:)min>$<( Max:)max>`,history:!0,cd:!0},e,{keepWhitespace:!1,limit:function(n){var c,f,p;n=c9(n,!0),s="";function h(E){E.split(/\/|\\/).reduce(function(C,S){var P=Y0.resolve(C+=S+Y0.sep);if(!si.existsSync(P))si.mkdirSync(P);else if(!si.statSync(P).isDirectory())throw new Error("Non directory already exists: "+P);return C},"")}try{if(c=si.existsSync(n),r=c?si.realpathSync(n):Y0.resolve(n),!e.hasOwnProperty("exists")&&!c||typeof e.exists=="boolean"&&e.exists!==c)return s=(c?"Already exists":"No such file or directory")+": "+r,!1;if(!c&&e.create&&(e.isDirectory?h(r):(h(Y0.dirname(r)),si.closeSync(si.openSync(r,"w"))),r=si.realpathSync(r)),c&&(e.min||e.max||e.isFile||e.isDirectory)){if(f=si.statSync(r),e.isFile&&!f.isFile())return s="Not file: "+r,!1;if(e.isDirectory&&!f.isDirectory())return s="Not directory: "+r,!1;if(e.min&&f.size<+e.min||e.max&&f.size>+e.max)return s="Size "+f.size+" is out of range: "+r,!1}if(typeof e.validate=="function"&&(p=e.validate(r))!==!0)return typeof p=="string"&&(s=p),!1}catch(E){return s=E+"",!1}return!0},phContent:function(n){return n==="error"?s:n!=="min"&&n!=="max"?null:e.hasOwnProperty(n)?e[n]+"":""}});return e=e||{},t==null&&(t='Input path (you can "cd" and "pwd"): '),$r.question(t,a),r};function eve(t,e){var r={},s={};return typeof t=="object"?(Object.keys(t).forEach(function(a){typeof t[a]=="function"&&(s[e.caseSensitive?a:a.toLowerCase()]=t[a])}),r.preCheck=function(a){var n;return r.args=o9(a),n=r.args[0]||"",e.caseSensitive||(n=n.toLowerCase()),r.hRes=n!=="_"&&s.hasOwnProperty(n)?s[n].apply(a,r.args.slice(1)):s.hasOwnProperty("_")?s._.apply(a,r.args):null,{res:a,forceNext:!1}},s.hasOwnProperty("_")||(r.limit=function(){var a=r.args[0]||"";return e.caseSensitive||(a=a.toLowerCase()),s.hasOwnProperty(a)})):r.preCheck=function(a){return r.args=o9(a),r.hRes=typeof t=="function"?t.apply(a,r.args):!0,{res:a,forceNext:!1}},r}$r.promptCL=function(t,e){var r=Js({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),s=eve(t,r);return r.limit=s.limit,r.preCheck=s.preCheck,$r.prompt(r),s.args};$r.promptLoop=function(t,e){for(var r=Js({hideEchoBack:!1,trueValue:null,falseValue:null,caseSensitive:!1,history:!0},e);!t($r.prompt(r)););};$r.promptCLLoop=function(t,e){var r=Js({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),s=eve(t,r);for(r.limit=s.limit,r.preCheck=s.preCheck;$r.prompt(r),!s.hRes;);};$r.promptSimShell=function(t){return $r.prompt(Js({hideEchoBack:!1,history:!0},t,{prompt:function(){return Dm?"$<cwd>>":(process.env.USER||"")+(process.env.HOSTNAME?"@"+process.env.HOSTNAME.replace(/\..*$/,""):"")+":$<cwdHome>$ "}()}))};function tve(t,e,r){var s;return t==null&&(t="Are you sure? "),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s*:?\s*$/,"")+" [y/n]: "),s=$r.keyIn(t,Js(e,{hideEchoBack:!1,limit:r,trueValue:"y",falseValue:"n",caseSensitive:!1})),typeof s=="boolean"?s:""}$r.keyInYN=function(t,e){return tve(t,e)};$r.keyInYNStrict=function(t,e){return tve(t,e,"yn")};$r.keyInPause=function(t,e){t==null&&(t="Continue..."),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s+$/,"")+" (Hit any key)"),$r.keyIn(t,Js({limit:null},e,{hideEchoBack:!0,mask:""}))};$r.keyInSelect=function(t,e,r){var s=Js({hideEchoBack:!1},r,{trueValue:null,falseValue:null,caseSensitive:!1,phContent:function(p){return p==="itemsCount"?t.length+"":p==="firstItem"?(t[0]+"").trim():p==="lastItem"?(t[t.length-1]+"").trim():null}}),a="",n={},c=49,f=` +`;if(!Array.isArray(t)||!t.length||t.length>35)throw"`items` must be Array (max length: 35).";return t.forEach(function(p,h){var E=String.fromCharCode(c);a+=E,n[E]=h,f+="["+E+"] "+(p+"").trim()+` +`,c=c===57?97:c+1}),(!r||r.cancel!==!1)&&(a+="0",n[0]=-1,f+="[0] "+(r&&r.cancel!=null&&typeof r.cancel!="boolean"?(r.cancel+"").trim():"CANCEL")+` +`),s.limit=a,f+=` +`,e==null&&(e="Choose one from list: "),(e+="")&&((!r||r.guide!==!1)&&(e=e.replace(/\s*:?\s*$/,"")+" [$<limit>]: "),f+=e),n[$r.keyIn(f,s).toLowerCase()]};$r.getRawInput=function(){return cF};function mS(t,e){var r;return e.length&&(r={},r[t]=e[0]),$r.setDefaultOptions(r)[t]}$r.setPrint=function(){return mS("print",arguments)};$r.setPrompt=function(){return mS("prompt",arguments)};$r.setEncoding=function(){return mS("encoding",arguments)};$r.setMask=function(){return mS("mask",arguments)};$r.setBufferSize=function(){return mS("bufferSize",arguments)}});var u9=L((Tur,tc)=>{(function(){var t={major:0,minor:2,patch:66,status:"beta"};tau_file_system={files:{},open:function(w,b,y){var F=tau_file_system.files[w];if(!F){if(y==="read")return null;F={path:w,text:"",type:b,get:function(z,Z){return Z===this.text.length||Z>this.text.length?"end_of_file":this.text.substring(Z,Z+z)},put:function(z,Z){return Z==="end_of_file"?(this.text+=z,!0):Z==="past_end_of_file"?null:(this.text=this.text.substring(0,Z)+z+this.text.substring(Z+z.length),!0)},get_byte:function(z){if(z==="end_of_stream")return-1;var Z=Math.floor(z/2);if(this.text.length<=Z)return-1;var $=n(this.text[Math.floor(z/2)],0);return z%2===0?$&255:$/256>>>0},put_byte:function(z,Z){var $=Z==="end_of_stream"?this.text.length:Math.floor(Z/2);if(this.text.length<$)return null;var oe=this.text.length===$?-1:n(this.text[Math.floor(Z/2)],0);return Z%2===0?(oe=oe/256>>>0,oe=(oe&255)<<8|z&255):(oe=oe&255,oe=(z&255)<<8|oe&255),this.text.length===$?this.text+=c(oe):this.text=this.text.substring(0,$)+c(oe)+this.text.substring($+1),!0},flush:function(){return!0},close:function(){var z=tau_file_system.files[this.path];return z?!0:null}},tau_file_system.files[w]=F}return y==="write"&&(F.text=""),F}},tau_user_input={buffer:"",get:function(w,b){for(var y;tau_user_input.buffer.length<w;)y=window.prompt(),y&&(tau_user_input.buffer+=y);return y=tau_user_input.buffer.substr(0,w),tau_user_input.buffer=tau_user_input.buffer.substr(w),y}},tau_user_output={put:function(w,b){return console.log(w),!0},flush:function(){return!0}},nodejs_file_system={open:function(w,b,y){var F=Ie("fs"),z=F.openSync(w,y[0]);return y==="read"&&!F.existsSync(w)?null:{get:function(Z,$){var oe=new Buffer(Z);return F.readSync(z,oe,0,Z,$),oe.toString()},put:function(Z,$){var oe=Buffer.from(Z);if($==="end_of_file")F.writeSync(z,oe);else{if($==="past_end_of_file")return null;F.writeSync(z,oe,0,oe.length,$)}return!0},get_byte:function(Z){return null},put_byte:function(Z,$){return null},flush:function(){return!0},close:function(){return F.closeSync(z),!0}}}},nodejs_user_input={buffer:"",get:function(w,b){for(var y,F=rve();nodejs_user_input.buffer.length<w;)nodejs_user_input.buffer+=F.question();return y=nodejs_user_input.buffer.substr(0,w),nodejs_user_input.buffer=nodejs_user_input.buffer.substr(w),y}},nodejs_user_output={put:function(w,b){return process.stdout.write(w),!0},flush:function(){return!0}};var e;Array.prototype.indexOf?e=function(w,b){return w.indexOf(b)}:e=function(w,b){for(var y=w.length,F=0;F<y;F++)if(b===w[F])return F;return-1};var r=function(w,b){if(w.length!==0){for(var y=w[0],F=w.length,z=1;z<F;z++)y=b(y,w[z]);return y}},s;Array.prototype.map?s=function(w,b){return w.map(b)}:s=function(w,b){for(var y=[],F=w.length,z=0;z<F;z++)y.push(b(w[z]));return y};var a;Array.prototype.filter?a=function(w,b){return w.filter(b)}:a=function(w,b){for(var y=[],F=w.length,z=0;z<F;z++)b(w[z])&&y.push(w[z]);return y};var n;String.prototype.codePointAt?n=function(w,b){return w.codePointAt(b)}:n=function(w,b){return w.charCodeAt(b)};var c;String.fromCodePoint?c=function(){return String.fromCodePoint.apply(null,arguments)}:c=function(){return String.fromCharCode.apply(null,arguments)};var f=0,p=1,h=/(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)|\\x([0-9a-fA-F]+)\\|\\([0-7]+)\\|(\\\\)|(\\')|('')|(\\")|(\\`)|(\\.)|(.)/g,E={"\\a":7,"\\b":8,"\\f":12,"\\n":10,"\\r":13,"\\t":9,"\\v":11};function C(w){var b=[],y=!1;return w.replace(h,function(F,z,Z,$,oe,xe,Te,lt,It,qt,ir,Pt,gn,Pr,Ir,Nr,nn){switch(!0){case It!==void 0:return b.push(parseInt(It,16)),"";case qt!==void 0:return b.push(parseInt(qt,8)),"";case ir!==void 0:case Pt!==void 0:case gn!==void 0:case Pr!==void 0:case Ir!==void 0:return b.push(n(F.substr(1),0)),"";case nn!==void 0:return b.push(n(nn,0)),"";case Nr!==void 0:y=!0;default:return b.push(E[F]),""}}),y?null:b}function S(w,b){var y="";if(w.length<2)return w;try{w=w.replace(/\\([0-7]+)\\/g,function($,oe){return c(parseInt(oe,8))}),w=w.replace(/\\x([0-9a-fA-F]+)\\/g,function($,oe){return c(parseInt(oe,16))})}catch{return null}for(var F=0;F<w.length;F++){var z=w.charAt(F),Z=w.charAt(F+1);if(z===b&&Z===b)F++,y+=b;else if(z==="\\")if(["a","b","f","n","r","t","v","'",'"',"\\","a","\b","\f",` +`,"\r"," ","\v"].indexOf(Z)!==-1)switch(F+=1,Z){case"a":y+="a";break;case"b":y+="\b";break;case"f":y+="\f";break;case"n":y+=` +`;break;case"r":y+="\r";break;case"t":y+=" ";break;case"v":y+="\v";break;case"'":y+="'";break;case'"':y+='"';break;case"\\":y+="\\";break}else return null;else y+=z}return y}function P(w){for(var b="",y=0;y<w.length;y++)switch(w.charAt(y)){case"'":b+="\\'";break;case"\\":b+="\\\\";break;case"\b":b+="\\b";break;case"\f":b+="\\f";break;case` +`:b+="\\n";break;case"\r":b+="\\r";break;case" ":b+="\\t";break;case"\v":b+="\\v";break;default:b+=w.charAt(y);break}return b}function I(w){var b=w.substr(2);switch(w.substr(0,2).toLowerCase()){case"0x":return parseInt(b,16);case"0b":return parseInt(b,2);case"0o":return parseInt(b,8);case"0'":return C(b)[0];default:return parseFloat(w)}}var R={whitespace:/^\s*(?:(?:%.*)|(?:\/\*(?:\n|\r|.)*?\*\/)|(?:\s+))\s*/,variable:/^(?:[A-Z_][a-zA-Z0-9_]*)/,atom:/^(\!|,|;|[a-z][0-9a-zA-Z_]*|[#\$\&\*\+\-\.\/\:\<\=\>\?\@\^\~\\]+|'(?:[^']*?(?:\\(?:x?\d+)?\\)*(?:'')*(?:\\')*)*')/,number:/^(?:0o[0-7]+|0x[0-9a-fA-F]+|0b[01]+|0'(?:''|\\[abfnrtv\\'"`]|\\x?\d+\\|[^\\])|\d+(?:\.\d+(?:[eE][+-]?\d+)?)?)/,string:/^(?:"([^"]|""|\\")*"|`([^`]|``|\\`)*`)/,l_brace:/^(?:\[)/,r_brace:/^(?:\])/,l_bracket:/^(?:\{)/,r_bracket:/^(?:\})/,bar:/^(?:\|)/,l_paren:/^(?:\()/,r_paren:/^(?:\))/};function N(w,b){return w.get_flag("char_conversion").id==="on"?b.replace(/./g,function(y){return w.get_char_conversion(y)}):b}function U(w){this.thread=w,this.text="",this.tokens=[]}U.prototype.set_last_tokens=function(w){return this.tokens=w},U.prototype.new_text=function(w){this.text=w,this.tokens=[]},U.prototype.get_tokens=function(w){var b,y=0,F=0,z=0,Z=[],$=!1;if(w){var oe=this.tokens[w-1];y=oe.len,b=N(this.thread,this.text.substr(oe.len)),F=oe.line,z=oe.start}else b=this.text;if(/^\s*$/.test(b))return null;for(;b!=="";){var xe=[],Te=!1;if(/^\n/.exec(b)!==null){F++,z=0,y++,b=b.replace(/\n/,""),$=!0;continue}for(var lt in R)if(R.hasOwnProperty(lt)){var It=R[lt].exec(b);It&&xe.push({value:It[0],name:lt,matches:It})}if(!xe.length)return this.set_last_tokens([{value:b,matches:[],name:"lexical",line:F,start:z}]);var oe=r(xe,function(Pr,Ir){return Pr.value.length>=Ir.value.length?Pr:Ir});switch(oe.start=z,oe.line=F,b=b.replace(oe.value,""),z+=oe.value.length,y+=oe.value.length,oe.name){case"atom":oe.raw=oe.value,oe.value.charAt(0)==="'"&&(oe.value=S(oe.value.substr(1,oe.value.length-2),"'"),oe.value===null&&(oe.name="lexical",oe.value="unknown escape sequence"));break;case"number":oe.float=oe.value.substring(0,2)!=="0x"&&oe.value.match(/[.eE]/)!==null&&oe.value!=="0'.",oe.value=I(oe.value),oe.blank=Te;break;case"string":var qt=oe.value.charAt(0);oe.value=S(oe.value.substr(1,oe.value.length-2),qt),oe.value===null&&(oe.name="lexical",oe.value="unknown escape sequence");break;case"whitespace":var ir=Z[Z.length-1];ir&&(ir.space=!0),Te=!0;continue;case"r_bracket":Z.length>0&&Z[Z.length-1].name==="l_bracket"&&(oe=Z.pop(),oe.name="atom",oe.value="{}",oe.raw="{}",oe.space=!1);break;case"r_brace":Z.length>0&&Z[Z.length-1].name==="l_brace"&&(oe=Z.pop(),oe.name="atom",oe.value="[]",oe.raw="[]",oe.space=!1);break}oe.len=y,Z.push(oe),Te=!1}var Pt=this.set_last_tokens(Z);return Pt.length===0?null:Pt};function W(w,b,y,F,z){if(!b[y])return{type:f,value:x.error.syntax(b[y-1],"expression expected",!0)};var Z;if(F==="0"){var $=b[y];switch($.name){case"number":return{type:p,len:y+1,value:new x.type.Num($.value,$.float)};case"variable":return{type:p,len:y+1,value:new x.type.Var($.value)};case"string":var oe;switch(w.get_flag("double_quotes").id){case"atom":oe=new j($.value,[]);break;case"codes":oe=new j("[]",[]);for(var xe=$.value.length-1;xe>=0;xe--)oe=new j(".",[new x.type.Num(n($.value,xe),!1),oe]);break;case"chars":oe=new j("[]",[]);for(var xe=$.value.length-1;xe>=0;xe--)oe=new j(".",[new x.type.Term($.value.charAt(xe),[]),oe]);break}return{type:p,len:y+1,value:oe};case"l_paren":var Pt=W(w,b,y+1,w.__get_max_priority(),!0);return Pt.type!==p?Pt:b[Pt.len]&&b[Pt.len].name==="r_paren"?(Pt.len++,Pt):{type:f,derived:!0,value:x.error.syntax(b[Pt.len]?b[Pt.len]:b[Pt.len-1],") or operator expected",!b[Pt.len])};case"l_bracket":var Pt=W(w,b,y+1,w.__get_max_priority(),!0);return Pt.type!==p?Pt:b[Pt.len]&&b[Pt.len].name==="r_bracket"?(Pt.len++,Pt.value=new j("{}",[Pt.value]),Pt):{type:f,derived:!0,value:x.error.syntax(b[Pt.len]?b[Pt.len]:b[Pt.len-1],"} or operator expected",!b[Pt.len])}}var Te=te(w,b,y,z);return Te.type===p||Te.derived||(Te=ie(w,b,y),Te.type===p||Te.derived)?Te:{type:f,derived:!1,value:x.error.syntax(b[y],"unexpected token")}}var lt=w.__get_max_priority(),It=w.__get_next_priority(F),qt=y;if(b[y].name==="atom"&&b[y+1]&&(b[y].space||b[y+1].name!=="l_paren")){var $=b[y++],ir=w.__lookup_operator_classes(F,$.value);if(ir&&ir.indexOf("fy")>-1){var Pt=W(w,b,y,F,z);if(Pt.type!==f)return $.value==="-"&&!$.space&&x.type.is_number(Pt.value)?{value:new x.type.Num(-Pt.value.value,Pt.value.is_float),len:Pt.len,type:p}:{value:new x.type.Term($.value,[Pt.value]),len:Pt.len,type:p};Z=Pt}else if(ir&&ir.indexOf("fx")>-1){var Pt=W(w,b,y,It,z);if(Pt.type!==f)return{value:new x.type.Term($.value,[Pt.value]),len:Pt.len,type:p};Z=Pt}}y=qt;var Pt=W(w,b,y,It,z);if(Pt.type===p){y=Pt.len;var $=b[y];if(b[y]&&(b[y].name==="atom"&&w.__lookup_operator_classes(F,$.value)||b[y].name==="bar"&&w.__lookup_operator_classes(F,"|"))){var gn=It,Pr=F,ir=w.__lookup_operator_classes(F,$.value);if(ir.indexOf("xf")>-1)return{value:new x.type.Term($.value,[Pt.value]),len:++Pt.len,type:p};if(ir.indexOf("xfx")>-1){var Ir=W(w,b,y+1,gn,z);return Ir.type===p?{value:new x.type.Term($.value,[Pt.value,Ir.value]),len:Ir.len,type:p}:(Ir.derived=!0,Ir)}else if(ir.indexOf("xfy")>-1){var Ir=W(w,b,y+1,Pr,z);return Ir.type===p?{value:new x.type.Term($.value,[Pt.value,Ir.value]),len:Ir.len,type:p}:(Ir.derived=!0,Ir)}else if(Pt.type!==f)for(;;){y=Pt.len;var $=b[y];if($&&$.name==="atom"&&w.__lookup_operator_classes(F,$.value)){var ir=w.__lookup_operator_classes(F,$.value);if(ir.indexOf("yf")>-1)Pt={value:new x.type.Term($.value,[Pt.value]),len:++y,type:p};else if(ir.indexOf("yfx")>-1){var Ir=W(w,b,++y,gn,z);if(Ir.type===f)return Ir.derived=!0,Ir;y=Ir.len,Pt={value:new x.type.Term($.value,[Pt.value,Ir.value]),len:y,type:p}}else break}else break}}else Z={type:f,value:x.error.syntax(b[Pt.len-1],"operator expected")};return Pt}return Pt}function te(w,b,y,F){if(!b[y]||b[y].name==="atom"&&b[y].raw==="."&&!F&&(b[y].space||!b[y+1]||b[y+1].name!=="l_paren"))return{type:f,derived:!1,value:x.error.syntax(b[y-1],"unfounded token")};var z=b[y],Z=[];if(b[y].name==="atom"&&b[y].raw!==","){if(y++,b[y-1].space)return{type:p,len:y,value:new x.type.Term(z.value,Z)};if(b[y]&&b[y].name==="l_paren"){if(b[y+1]&&b[y+1].name==="r_paren")return{type:f,derived:!0,value:x.error.syntax(b[y+1],"argument expected")};var $=W(w,b,++y,"999",!0);if($.type===f)return $.derived?$:{type:f,derived:!0,value:x.error.syntax(b[y]?b[y]:b[y-1],"argument expected",!b[y])};for(Z.push($.value),y=$.len;b[y]&&b[y].name==="atom"&&b[y].value===",";){if($=W(w,b,y+1,"999",!0),$.type===f)return $.derived?$:{type:f,derived:!0,value:x.error.syntax(b[y+1]?b[y+1]:b[y],"argument expected",!b[y+1])};Z.push($.value),y=$.len}if(b[y]&&b[y].name==="r_paren")y++;else return{type:f,derived:!0,value:x.error.syntax(b[y]?b[y]:b[y-1],", or ) expected",!b[y])}}return{type:p,len:y,value:new x.type.Term(z.value,Z)}}return{type:f,derived:!1,value:x.error.syntax(b[y],"term expected")}}function ie(w,b,y){if(!b[y])return{type:f,derived:!1,value:x.error.syntax(b[y-1],"[ expected")};if(b[y]&&b[y].name==="l_brace"){var F=W(w,b,++y,"999",!0),z=[F.value],Z=void 0;if(F.type===f)return b[y]&&b[y].name==="r_brace"?{type:p,len:y+1,value:new x.type.Term("[]",[])}:{type:f,derived:!0,value:x.error.syntax(b[y],"] expected")};for(y=F.len;b[y]&&b[y].name==="atom"&&b[y].value===",";){if(F=W(w,b,y+1,"999",!0),F.type===f)return F.derived?F:{type:f,derived:!0,value:x.error.syntax(b[y+1]?b[y+1]:b[y],"argument expected",!b[y+1])};z.push(F.value),y=F.len}var $=!1;if(b[y]&&b[y].name==="bar"){if($=!0,F=W(w,b,y+1,"999",!0),F.type===f)return F.derived?F:{type:f,derived:!0,value:x.error.syntax(b[y+1]?b[y+1]:b[y],"argument expected",!b[y+1])};Z=F.value,y=F.len}return b[y]&&b[y].name==="r_brace"?{type:p,len:y+1,value:g(z,Z)}:{type:f,derived:!0,value:x.error.syntax(b[y]?b[y]:b[y-1],$?"] expected":", or | or ] expected",!b[y])}}return{type:f,derived:!1,value:x.error.syntax(b[y],"list expected")}}function Ae(w,b,y){var F=b[y].line,z=W(w,b,y,w.__get_max_priority(),!1),Z=null,$;if(z.type!==f)if(y=z.len,b[y]&&b[y].name==="atom"&&b[y].raw===".")if(y++,x.type.is_term(z.value)){if(z.value.indicator===":-/2"?(Z=new x.type.Rule(z.value.args[0],Ce(z.value.args[1])),$={value:Z,len:y,type:p}):z.value.indicator==="-->/2"?(Z=pe(new x.type.Rule(z.value.args[0],z.value.args[1]),w),Z.body=Ce(Z.body),$={value:Z,len:y,type:x.type.is_rule(Z)?p:f}):(Z=new x.type.Rule(z.value,null),$={value:Z,len:y,type:p}),Z){var oe=Z.singleton_variables();oe.length>0&&w.throw_warning(x.warning.singleton(oe,Z.head.indicator,F))}return $}else return{type:f,value:x.error.syntax(b[y],"callable expected")};else return{type:f,value:x.error.syntax(b[y]?b[y]:b[y-1],". or operator expected")};return z}function ce(w,b,y){y=y||{},y.from=y.from?y.from:"$tau-js",y.reconsult=y.reconsult!==void 0?y.reconsult:!0;var F=new U(w),z={},Z;F.new_text(b);var $=0,oe=F.get_tokens($);do{if(oe===null||!oe[$])break;var xe=Ae(w,oe,$);if(xe.type===f)return new j("throw",[xe.value]);if(xe.value.body===null&&xe.value.head.indicator==="?-/1"){var Te=new it(w.session);Te.add_goal(xe.value.head.args[0]),Te.answer(function(It){x.type.is_error(It)?w.throw_warning(It.args[0]):(It===!1||It===null)&&w.throw_warning(x.warning.failed_goal(xe.value.head.args[0],xe.len))}),$=xe.len;var lt=!0}else if(xe.value.body===null&&xe.value.head.indicator===":-/1"){var lt=w.run_directive(xe.value.head.args[0]);$=xe.len,xe.value.head.args[0].indicator==="char_conversion/2"&&(oe=F.get_tokens($),$=0)}else{Z=xe.value.head.indicator,y.reconsult!==!1&&z[Z]!==!0&&!w.is_multifile_predicate(Z)&&(w.session.rules[Z]=a(w.session.rules[Z]||[],function(qt){return qt.dynamic}),z[Z]=!0);var lt=w.add_rule(xe.value,y);$=xe.len}if(!lt)return lt}while(!0);return!0}function me(w,b){var y=new U(w);y.new_text(b);var F=0;do{var z=y.get_tokens(F);if(z===null)break;var Z=W(w,z,0,w.__get_max_priority(),!1);if(Z.type!==f){var $=Z.len,oe=$;if(z[$]&&z[$].name==="atom"&&z[$].raw===".")w.add_goal(Ce(Z.value));else{var xe=z[$];return new j("throw",[x.error.syntax(xe||z[$-1],". or operator expected",!xe)])}F=Z.len+1}else return new j("throw",[Z.value])}while(!0);return!0}function pe(w,b){w=w.rename(b);var y=b.next_free_variable(),F=Be(w.body,y,b);return F.error?F.value:(w.body=F.value,w.head.args=w.head.args.concat([y,F.variable]),w.head=new j(w.head.id,w.head.args),w)}function Be(w,b,y){var F;if(x.type.is_term(w)&&w.indicator==="!/0")return{value:w,variable:b,error:!1};if(x.type.is_term(w)&&w.indicator===",/2"){var z=Be(w.args[0],b,y);if(z.error)return z;var Z=Be(w.args[1],z.variable,y);return Z.error?Z:{value:new j(",",[z.value,Z.value]),variable:Z.variable,error:!1}}else{if(x.type.is_term(w)&&w.indicator==="{}/1")return{value:w.args[0],variable:b,error:!1};if(x.type.is_empty_list(w))return{value:new j("true",[]),variable:b,error:!1};if(x.type.is_list(w)){F=y.next_free_variable();for(var $=w,oe;$.indicator==="./2";)oe=$,$=$.args[1];return x.type.is_variable($)?{value:x.error.instantiation("DCG"),variable:b,error:!0}:x.type.is_empty_list($)?(oe.args[1]=F,{value:new j("=",[b,w]),variable:F,error:!1}):{value:x.error.type("list",w,"DCG"),variable:b,error:!0}}else return x.type.is_callable(w)?(F=y.next_free_variable(),w.args=w.args.concat([b,F]),w=new j(w.id,w.args),{value:w,variable:F,error:!1}):{value:x.error.type("callable",w,"DCG"),variable:b,error:!0}}}function Ce(w){return x.type.is_variable(w)?new j("call",[w]):x.type.is_term(w)&&[",/2",";/2","->/2"].indexOf(w.indicator)!==-1?new j(w.id,[Ce(w.args[0]),Ce(w.args[1])]):w}function g(w,b){for(var y=b||new x.type.Term("[]",[]),F=w.length-1;F>=0;F--)y=new x.type.Term(".",[w[F],y]);return y}function we(w,b){for(var y=w.length-1;y>=0;y--)w[y]===b&&w.splice(y,1)}function ye(w){for(var b={},y=[],F=0;F<w.length;F++)w[F]in b||(y.push(w[F]),b[w[F]]=!0);return y}function fe(w,b,y,F){if(w.session.rules[y]!==null){for(var z=0;z<w.session.rules[y].length;z++)if(w.session.rules[y][z]===F){w.session.rules[y].splice(z,1),w.success(b);break}}}function se(w){return function(b,y,F){var z=F.args[0],Z=F.args.slice(1,w);if(x.type.is_variable(z))b.throw_error(x.error.instantiation(b.level));else if(!x.type.is_callable(z))b.throw_error(x.error.type("callable",z,b.level));else{var $=new j(z.id,z.args.concat(Z));b.prepend([new Pe(y.goal.replace($),y.substitution,y)])}}}function X(w){for(var b=w.length-1;b>=0;b--)if(w.charAt(b)==="/")return new j("/",[new j(w.substring(0,b)),new Re(parseInt(w.substring(b+1)),!1)])}function De(w){this.id=w}function Re(w,b){this.is_float=b!==void 0?b:parseInt(w)!==w,this.value=this.is_float?w:parseInt(w)}var dt=0;function j(w,b,y){this.ref=y||++dt,this.id=w,this.args=b||[],this.indicator=w+"/"+this.args.length}var rt=0;function Fe(w,b,y,F,z,Z){this.id=rt++,this.stream=w,this.mode=b,this.alias=y,this.type=F!==void 0?F:"text",this.reposition=z!==void 0?z:!0,this.eof_action=Z!==void 0?Z:"eof_code",this.position=this.mode==="append"?"end_of_stream":0,this.output=this.mode==="write"||this.mode==="append",this.input=this.mode==="read"}function Ne(w){w=w||{},this.links=w}function Pe(w,b,y){b=b||new Ne,y=y||null,this.goal=w,this.substitution=b,this.parent=y}function Ye(w,b,y){this.head=w,this.body=b,this.dynamic=y||!1}function ke(w){w=w===void 0||w<=0?1e3:w,this.rules={},this.src_predicates={},this.rename=0,this.modules=[],this.thread=new it(this),this.total_threads=1,this.renamed_variables={},this.public_predicates={},this.multifile_predicates={},this.limit=w,this.streams={user_input:new Fe(typeof tc<"u"&&tc.exports?nodejs_user_input:tau_user_input,"read","user_input","text",!1,"reset"),user_output:new Fe(typeof tc<"u"&&tc.exports?nodejs_user_output:tau_user_output,"write","user_output","text",!1,"eof_code")},this.file_system=typeof tc<"u"&&tc.exports?nodejs_file_system:tau_file_system,this.standard_input=this.streams.user_input,this.standard_output=this.streams.user_output,this.current_input=this.streams.user_input,this.current_output=this.streams.user_output,this.format_success=function(b){return b.substitution},this.format_error=function(b){return b.goal},this.flag={bounded:x.flag.bounded.value,max_integer:x.flag.max_integer.value,min_integer:x.flag.min_integer.value,integer_rounding_function:x.flag.integer_rounding_function.value,char_conversion:x.flag.char_conversion.value,debug:x.flag.debug.value,max_arity:x.flag.max_arity.value,unknown:x.flag.unknown.value,double_quotes:x.flag.double_quotes.value,occurs_check:x.flag.occurs_check.value,dialect:x.flag.dialect.value,version_data:x.flag.version_data.value,nodejs:x.flag.nodejs.value},this.__loaded_modules=[],this.__char_conversion={},this.__operators={1200:{":-":["fx","xfx"],"-->":["xfx"],"?-":["fx"]},1100:{";":["xfy"]},1050:{"->":["xfy"]},1e3:{",":["xfy"]},900:{"\\+":["fy"]},700:{"=":["xfx"],"\\=":["xfx"],"==":["xfx"],"\\==":["xfx"],"@<":["xfx"],"@=<":["xfx"],"@>":["xfx"],"@>=":["xfx"],"=..":["xfx"],is:["xfx"],"=:=":["xfx"],"=\\=":["xfx"],"<":["xfx"],"=<":["xfx"],">":["xfx"],">=":["xfx"]},600:{":":["xfy"]},500:{"+":["yfx"],"-":["yfx"],"/\\":["yfx"],"\\/":["yfx"]},400:{"*":["yfx"],"/":["yfx"],"//":["yfx"],rem:["yfx"],mod:["yfx"],"<<":["yfx"],">>":["yfx"]},200:{"**":["xfx"],"^":["xfy"],"-":["fy"],"+":["fy"],"\\":["fy"]}}}function it(w){this.epoch=Date.now(),this.session=w,this.session.total_threads++,this.total_steps=0,this.cpu_time=0,this.cpu_time_last=0,this.points=[],this.debugger=!1,this.debugger_states=[],this.level="top_level/0",this.__calls=[],this.current_limit=this.session.limit,this.warnings=[]}function _e(w,b,y){this.id=w,this.rules=b,this.exports=y,x.module[w]=this}_e.prototype.exports_predicate=function(w){return this.exports.indexOf(w)!==-1},De.prototype.unify=function(w,b){if(b&&e(w.variables(),this.id)!==-1&&!x.type.is_variable(w))return null;var y={};return y[this.id]=w,new Ne(y)},Re.prototype.unify=function(w,b){return x.type.is_number(w)&&this.value===w.value&&this.is_float===w.is_float?new Ne:null},j.prototype.unify=function(w,b){if(x.type.is_term(w)&&this.indicator===w.indicator){for(var y=new Ne,F=0;F<this.args.length;F++){var z=x.unify(this.args[F].apply(y),w.args[F].apply(y),b);if(z===null)return null;for(var Z in z.links)y.links[Z]=z.links[Z];y=y.apply(z)}return y}return null},Fe.prototype.unify=function(w,b){return x.type.is_stream(w)&&this.id===w.id?new Ne:null},De.prototype.toString=function(w){return this.id},Re.prototype.toString=function(w){return this.is_float&&e(this.value.toString(),".")===-1?this.value+".0":this.value.toString()},j.prototype.toString=function(w,b,y){if(w=w||{},w.quoted=w.quoted===void 0?!0:w.quoted,w.ignore_ops=w.ignore_ops===void 0?!1:w.ignore_ops,w.numbervars=w.numbervars===void 0?!1:w.numbervars,b=b===void 0?1200:b,y=y===void 0?"":y,w.numbervars&&this.indicator==="$VAR/1"&&x.type.is_integer(this.args[0])&&this.args[0].value>=0){var F=this.args[0].value,z=Math.floor(F/26),Z=F%26;return"ABCDEFGHIJKLMNOPQRSTUVWXYZ"[Z]+(z!==0?z:"")}switch(this.indicator){case"[]/0":case"{}/0":case"!/0":return this.id;case"{}/1":return"{"+this.args[0].toString(w)+"}";case"./2":for(var $="["+this.args[0].toString(w),oe=this.args[1];oe.indicator==="./2";)$+=", "+oe.args[0].toString(w),oe=oe.args[1];return oe.indicator!=="[]/0"&&($+="|"+oe.toString(w)),$+="]",$;case",/2":return"("+this.args[0].toString(w)+", "+this.args[1].toString(w)+")";default:var xe=this.id,Te=w.session?w.session.lookup_operator(this.id,this.args.length):null;if(w.session===void 0||w.ignore_ops||Te===null)return w.quoted&&!/^(!|,|;|[a-z][0-9a-zA-Z_]*)$/.test(xe)&&xe!=="{}"&&xe!=="[]"&&(xe="'"+P(xe)+"'"),xe+(this.args.length?"("+s(this.args,function(ir){return ir.toString(w)}).join(", ")+")":"");var lt=Te.priority>b.priority||Te.priority===b.priority&&(Te.class==="xfy"&&this.indicator!==b.indicator||Te.class==="yfx"&&this.indicator!==b.indicator||this.indicator===b.indicator&&Te.class==="yfx"&&y==="right"||this.indicator===b.indicator&&Te.class==="xfy"&&y==="left");Te.indicator=this.indicator;var It=lt?"(":"",qt=lt?")":"";return this.args.length===0?"("+this.id+")":["fy","fx"].indexOf(Te.class)!==-1?It+xe+" "+this.args[0].toString(w,Te)+qt:["yf","xf"].indexOf(Te.class)!==-1?It+this.args[0].toString(w,Te)+" "+xe+qt:It+this.args[0].toString(w,Te,"left")+" "+this.id+" "+this.args[1].toString(w,Te,"right")+qt}},Fe.prototype.toString=function(w){return"<stream>("+this.id+")"},Ne.prototype.toString=function(w){var b="{";for(var y in this.links)this.links.hasOwnProperty(y)&&(b!=="{"&&(b+=", "),b+=y+"/"+this.links[y].toString(w));return b+="}",b},Pe.prototype.toString=function(w){return this.goal===null?"<"+this.substitution.toString(w)+">":"<"+this.goal.toString(w)+", "+this.substitution.toString(w)+">"},Ye.prototype.toString=function(w){return this.body?this.head.toString(w)+" :- "+this.body.toString(w)+".":this.head.toString(w)+"."},ke.prototype.toString=function(w){for(var b="",y=0;y<this.modules.length;y++)b+=":- use_module(library("+this.modules[y]+`)). +`;b+=` +`;for(key in this.rules)for(y=0;y<this.rules[key].length;y++)b+=this.rules[key][y].toString(w),b+=` +`;return b},De.prototype.clone=function(){return new De(this.id)},Re.prototype.clone=function(){return new Re(this.value,this.is_float)},j.prototype.clone=function(){return new j(this.id,s(this.args,function(w){return w.clone()}))},Fe.prototype.clone=function(){return new Stram(this.stream,this.mode,this.alias,this.type,this.reposition,this.eof_action)},Ne.prototype.clone=function(){var w={};for(var b in this.links)this.links.hasOwnProperty(b)&&(w[b]=this.links[b].clone());return new Ne(w)},Pe.prototype.clone=function(){return new Pe(this.goal.clone(),this.substitution.clone(),this.parent)},Ye.prototype.clone=function(){return new Ye(this.head.clone(),this.body!==null?this.body.clone():null)},De.prototype.equals=function(w){return x.type.is_variable(w)&&this.id===w.id},Re.prototype.equals=function(w){return x.type.is_number(w)&&this.value===w.value&&this.is_float===w.is_float},j.prototype.equals=function(w){if(!x.type.is_term(w)||this.indicator!==w.indicator)return!1;for(var b=0;b<this.args.length;b++)if(!this.args[b].equals(w.args[b]))return!1;return!0},Fe.prototype.equals=function(w){return x.type.is_stream(w)&&this.id===w.id},Ne.prototype.equals=function(w){var b;if(!x.type.is_substitution(w))return!1;for(b in this.links)if(this.links.hasOwnProperty(b)&&(!w.links[b]||!this.links[b].equals(w.links[b])))return!1;for(b in w.links)if(w.links.hasOwnProperty(b)&&!this.links[b])return!1;return!0},Pe.prototype.equals=function(w){return x.type.is_state(w)&&this.goal.equals(w.goal)&&this.substitution.equals(w.substitution)&&this.parent===w.parent},Ye.prototype.equals=function(w){return x.type.is_rule(w)&&this.head.equals(w.head)&&(this.body===null&&w.body===null||this.body!==null&&this.body.equals(w.body))},De.prototype.rename=function(w){return w.get_free_variable(this)},Re.prototype.rename=function(w){return this},j.prototype.rename=function(w){return new j(this.id,s(this.args,function(b){return b.rename(w)}))},Fe.prototype.rename=function(w){return this},Ye.prototype.rename=function(w){return new Ye(this.head.rename(w),this.body!==null?this.body.rename(w):null)},De.prototype.variables=function(){return[this.id]},Re.prototype.variables=function(){return[]},j.prototype.variables=function(){return[].concat.apply([],s(this.args,function(w){return w.variables()}))},Fe.prototype.variables=function(){return[]},Ye.prototype.variables=function(){return this.body===null?this.head.variables():this.head.variables().concat(this.body.variables())},De.prototype.apply=function(w){return w.lookup(this.id)?w.lookup(this.id):this},Re.prototype.apply=function(w){return this},j.prototype.apply=function(w){if(this.indicator==="./2"){for(var b=[],y=this;y.indicator==="./2";)b.push(y.args[0].apply(w)),y=y.args[1];for(var F=y.apply(w),z=b.length-1;z>=0;z--)F=new j(".",[b[z],F]);return F}return new j(this.id,s(this.args,function(Z){return Z.apply(w)}),this.ref)},Fe.prototype.apply=function(w){return this},Ye.prototype.apply=function(w){return new Ye(this.head.apply(w),this.body!==null?this.body.apply(w):null)},Ne.prototype.apply=function(w){var b,y={};for(b in this.links)this.links.hasOwnProperty(b)&&(y[b]=this.links[b].apply(w));return new Ne(y)},j.prototype.select=function(){for(var w=this;w.indicator===",/2";)w=w.args[0];return w},j.prototype.replace=function(w){return this.indicator===",/2"?this.args[0].indicator===",/2"?new j(",",[this.args[0].replace(w),this.args[1]]):w===null?this.args[1]:new j(",",[w,this.args[1]]):w},j.prototype.search=function(w){if(x.type.is_term(w)&&w.ref!==void 0&&this.ref===w.ref)return!0;for(var b=0;b<this.args.length;b++)if(x.type.is_term(this.args[b])&&this.args[b].search(w))return!0;return!1},ke.prototype.get_current_input=function(){return this.current_input},it.prototype.get_current_input=function(){return this.session.get_current_input()},ke.prototype.get_current_output=function(){return this.current_output},it.prototype.get_current_output=function(){return this.session.get_current_output()},ke.prototype.set_current_input=function(w){this.current_input=w},it.prototype.set_current_input=function(w){return this.session.set_current_input(w)},ke.prototype.set_current_output=function(w){this.current_input=w},it.prototype.set_current_output=function(w){return this.session.set_current_output(w)},ke.prototype.get_stream_by_alias=function(w){return this.streams[w]},it.prototype.get_stream_by_alias=function(w){return this.session.get_stream_by_alias(w)},ke.prototype.file_system_open=function(w,b,y){return this.file_system.open(w,b,y)},it.prototype.file_system_open=function(w,b,y){return this.session.file_system_open(w,b,y)},ke.prototype.get_char_conversion=function(w){return this.__char_conversion[w]||w},it.prototype.get_char_conversion=function(w){return this.session.get_char_conversion(w)},ke.prototype.parse=function(w){return this.thread.parse(w)},it.prototype.parse=function(w){var b=new U(this);b.new_text(w);var y=b.get_tokens();if(y===null)return!1;var F=W(this,y,0,this.__get_max_priority(),!1);return F.len!==y.length?!1:{value:F.value,expr:F,tokens:y}},ke.prototype.get_flag=function(w){return this.flag[w]},it.prototype.get_flag=function(w){return this.session.get_flag(w)},ke.prototype.add_rule=function(w,b){return b=b||{},b.from=b.from?b.from:"$tau-js",this.src_predicates[w.head.indicator]=b.from,this.rules[w.head.indicator]||(this.rules[w.head.indicator]=[]),this.rules[w.head.indicator].push(w),this.public_predicates.hasOwnProperty(w.head.indicator)||(this.public_predicates[w.head.indicator]=!1),!0},it.prototype.add_rule=function(w,b){return this.session.add_rule(w,b)},ke.prototype.run_directive=function(w){this.thread.run_directive(w)},it.prototype.run_directive=function(w){return x.type.is_directive(w)?(x.directive[w.indicator](this,w),!0):!1},ke.prototype.__get_max_priority=function(){return"1200"},it.prototype.__get_max_priority=function(){return this.session.__get_max_priority()},ke.prototype.__get_next_priority=function(w){var b=0;w=parseInt(w);for(var y in this.__operators)if(this.__operators.hasOwnProperty(y)){var F=parseInt(y);F>b&&F<w&&(b=F)}return b.toString()},it.prototype.__get_next_priority=function(w){return this.session.__get_next_priority(w)},ke.prototype.__lookup_operator_classes=function(w,b){return this.__operators.hasOwnProperty(w)&&this.__operators[w][b]instanceof Array&&this.__operators[w][b]||!1},it.prototype.__lookup_operator_classes=function(w,b){return this.session.__lookup_operator_classes(w,b)},ke.prototype.lookup_operator=function(w,b){for(var y in this.__operators)if(this.__operators[y][w]){for(var F=0;F<this.__operators[y][w].length;F++)if(b===0||this.__operators[y][w][F].length===b+1)return{priority:y,class:this.__operators[y][w][F]}}return null},it.prototype.lookup_operator=function(w,b){return this.session.lookup_operator(w,b)},ke.prototype.throw_warning=function(w){this.thread.throw_warning(w)},it.prototype.throw_warning=function(w){this.warnings.push(w)},ke.prototype.get_warnings=function(){return this.thread.get_warnings()},it.prototype.get_warnings=function(){return this.warnings},ke.prototype.add_goal=function(w,b){this.thread.add_goal(w,b)},it.prototype.add_goal=function(w,b,y){y=y||null,b===!0&&(this.points=[]);for(var F=w.variables(),z={},Z=0;Z<F.length;Z++)z[F[Z]]=new De(F[Z]);this.points.push(new Pe(w,new Ne(z),y))},ke.prototype.consult=function(w,b){return this.thread.consult(w,b)},it.prototype.consult=function(w,b){var y="";if(typeof w=="string"){y=w;var F=y.length;if(y.substring(F-3,F)===".pl"&&document.getElementById(y)){var z=document.getElementById(y),Z=z.getAttribute("type");Z!==null&&Z.replace(/ /g,"").toLowerCase()==="text/prolog"&&(y=z.text)}}else if(w.nodeName)switch(w.nodeName.toLowerCase()){case"input":case"textarea":y=w.value;break;default:y=w.innerHTML;break}else return!1;return this.warnings=[],ce(this,y,b)},ke.prototype.query=function(w){return this.thread.query(w)},it.prototype.query=function(w){return this.points=[],this.debugger_points=[],me(this,w)},ke.prototype.head_point=function(){return this.thread.head_point()},it.prototype.head_point=function(){return this.points[this.points.length-1]},ke.prototype.get_free_variable=function(w){return this.thread.get_free_variable(w)},it.prototype.get_free_variable=function(w){var b=[];if(w.id==="_"||this.session.renamed_variables[w.id]===void 0){for(this.session.rename++,this.points.length>0&&(b=this.head_point().substitution.domain());e(b,x.format_variable(this.session.rename))!==-1;)this.session.rename++;if(w.id==="_")return new De(x.format_variable(this.session.rename));this.session.renamed_variables[w.id]=x.format_variable(this.session.rename)}return new De(this.session.renamed_variables[w.id])},ke.prototype.next_free_variable=function(){return this.thread.next_free_variable()},it.prototype.next_free_variable=function(){this.session.rename++;var w=[];for(this.points.length>0&&(w=this.head_point().substitution.domain());e(w,x.format_variable(this.session.rename))!==-1;)this.session.rename++;return new De(x.format_variable(this.session.rename))},ke.prototype.is_public_predicate=function(w){return!this.public_predicates.hasOwnProperty(w)||this.public_predicates[w]===!0},it.prototype.is_public_predicate=function(w){return this.session.is_public_predicate(w)},ke.prototype.is_multifile_predicate=function(w){return this.multifile_predicates.hasOwnProperty(w)&&this.multifile_predicates[w]===!0},it.prototype.is_multifile_predicate=function(w){return this.session.is_multifile_predicate(w)},ke.prototype.prepend=function(w){return this.thread.prepend(w)},it.prototype.prepend=function(w){for(var b=w.length-1;b>=0;b--)this.points.push(w[b])},ke.prototype.success=function(w,b){return this.thread.success(w,b)},it.prototype.success=function(w,y){var y=typeof y>"u"?w:y;this.prepend([new Pe(w.goal.replace(null),w.substitution,y)])},ke.prototype.throw_error=function(w){return this.thread.throw_error(w)},it.prototype.throw_error=function(w){this.prepend([new Pe(new j("throw",[w]),new Ne,null,null)])},ke.prototype.step_rule=function(w,b){return this.thread.step_rule(w,b)},it.prototype.step_rule=function(w,b){var y=b.indicator;if(w==="user"&&(w=null),w===null&&this.session.rules.hasOwnProperty(y))return this.session.rules[y];for(var F=w===null?this.session.modules:e(this.session.modules,w)===-1?[]:[w],z=0;z<F.length;z++){var Z=x.module[F[z]];if(Z.rules.hasOwnProperty(y)&&(Z.rules.hasOwnProperty(this.level)||Z.exports_predicate(y)))return x.module[F[z]].rules[y]}return null},ke.prototype.step=function(){return this.thread.step()},it.prototype.step=function(){if(this.points.length!==0){var w=!1,b=this.points.pop();if(this.debugger&&this.debugger_states.push(b),x.type.is_term(b.goal)){var y=b.goal.select(),F=null,z=[];if(y!==null){this.total_steps++;for(var Z=b;Z.parent!==null&&Z.parent.goal.search(y);)Z=Z.parent;if(this.level=Z.parent===null?"top_level/0":Z.parent.goal.select().indicator,x.type.is_term(y)&&y.indicator===":/2"&&(F=y.args[0].id,y=y.args[1]),F===null&&x.type.is_builtin(y))this.__call_indicator=y.indicator,w=x.predicate[y.indicator](this,b,y);else{var $=this.step_rule(F,y);if($===null)this.session.rules.hasOwnProperty(y.indicator)||(this.get_flag("unknown").id==="error"?this.throw_error(x.error.existence("procedure",y.indicator,this.level)):this.get_flag("unknown").id==="warning"&&this.throw_warning("unknown procedure "+y.indicator+" (from "+this.level+")"));else if($ instanceof Function)w=$(this,b,y);else{for(var oe in $)if($.hasOwnProperty(oe)){var xe=$[oe];this.session.renamed_variables={},xe=xe.rename(this);var Te=this.get_flag("occurs_check").indicator==="true/0",lt=new Pe,It=x.unify(y,xe.head,Te);It!==null&&(lt.goal=b.goal.replace(xe.body),lt.goal!==null&&(lt.goal=lt.goal.apply(It)),lt.substitution=b.substitution.apply(It),lt.parent=b,z.push(lt))}this.prepend(z)}}}}else x.type.is_variable(b.goal)?this.throw_error(x.error.instantiation(this.level)):this.throw_error(x.error.type("callable",b.goal,this.level));return w}},ke.prototype.answer=function(w){return this.thread.answer(w)},it.prototype.answer=function(w){w=w||function(b){},this.__calls.push(w),!(this.__calls.length>1)&&this.again()},ke.prototype.answers=function(w,b,y){return this.thread.answers(w,b,y)},it.prototype.answers=function(w,b,y){var F=b||1e3,z=this;if(b<=0){y&&y();return}this.answer(function(Z){w(Z),Z!==!1?setTimeout(function(){z.answers(w,b-1,y)},1):y&&y()})},ke.prototype.again=function(w){return this.thread.again(w)},it.prototype.again=function(w){for(var b,y=Date.now();this.__calls.length>0;){for(this.warnings=[],w!==!1&&(this.current_limit=this.session.limit);this.current_limit>0&&this.points.length>0&&this.head_point().goal!==null&&!x.type.is_error(this.head_point().goal);)if(this.current_limit--,this.step()===!0)return;var F=Date.now();this.cpu_time_last=F-y,this.cpu_time+=this.cpu_time_last;var z=this.__calls.shift();this.current_limit<=0?z(null):this.points.length===0?z(!1):x.type.is_error(this.head_point().goal)?(b=this.session.format_error(this.points.pop()),this.points=[],z(b)):(this.debugger&&this.debugger_states.push(this.head_point()),b=this.session.format_success(this.points.pop()),z(b))}},ke.prototype.unfold=function(w){if(w.body===null)return!1;var b=w.head,y=w.body,F=y.select(),z=new it(this),Z=[];z.add_goal(F),z.step();for(var $=z.points.length-1;$>=0;$--){var oe=z.points[$],xe=b.apply(oe.substitution),Te=y.replace(oe.goal);Te!==null&&(Te=Te.apply(oe.substitution)),Z.push(new Ye(xe,Te))}var lt=this.rules[b.indicator],It=e(lt,w);return Z.length>0&&It!==-1?(lt.splice.apply(lt,[It,1].concat(Z)),!0):!1},it.prototype.unfold=function(w){return this.session.unfold(w)},De.prototype.interpret=function(w){return x.error.instantiation(w.level)},Re.prototype.interpret=function(w){return this},j.prototype.interpret=function(w){return x.type.is_unitary_list(this)?this.args[0].interpret(w):x.operate(w,this)},De.prototype.compare=function(w){return this.id<w.id?-1:this.id>w.id?1:0},Re.prototype.compare=function(w){if(this.value===w.value&&this.is_float===w.is_float)return 0;if(this.value<w.value||this.value===w.value&&this.is_float&&!w.is_float)return-1;if(this.value>w.value)return 1},j.prototype.compare=function(w){if(this.args.length<w.args.length||this.args.length===w.args.length&&this.id<w.id)return-1;if(this.args.length>w.args.length||this.args.length===w.args.length&&this.id>w.id)return 1;for(var b=0;b<this.args.length;b++){var y=x.compare(this.args[b],w.args[b]);if(y!==0)return y}return 0},Ne.prototype.lookup=function(w){return this.links[w]?this.links[w]:null},Ne.prototype.filter=function(w){var b={};for(var y in this.links)if(this.links.hasOwnProperty(y)){var F=this.links[y];w(y,F)&&(b[y]=F)}return new Ne(b)},Ne.prototype.exclude=function(w){var b={};for(var y in this.links)this.links.hasOwnProperty(y)&&e(w,y)===-1&&(b[y]=this.links[y]);return new Ne(b)},Ne.prototype.add=function(w,b){this.links[w]=b},Ne.prototype.domain=function(w){var b=w===!0?function(z){return z}:function(z){return new De(z)},y=[];for(var F in this.links)y.push(b(F));return y},De.prototype.compile=function(){return'new pl.type.Var("'+this.id.toString()+'")'},Re.prototype.compile=function(){return"new pl.type.Num("+this.value.toString()+", "+this.is_float.toString()+")"},j.prototype.compile=function(){return'new pl.type.Term("'+this.id.replace(/"/g,'\\"')+'", ['+s(this.args,function(w){return w.compile()})+"])"},Ye.prototype.compile=function(){return"new pl.type.Rule("+this.head.compile()+", "+(this.body===null?"null":this.body.compile())+")"},ke.prototype.compile=function(){var w,b=[],y;for(var F in this.rules)if(this.rules.hasOwnProperty(F)){var z=this.rules[F];y=[],w='"'+F+'": [';for(var Z=0;Z<z.length;Z++)y.push(z[Z].compile());w+=y.join(),w+="]",b.push(w)}return"{"+b.join()+"};"},De.prototype.toJavaScript=function(){},Re.prototype.toJavaScript=function(){return this.value},j.prototype.toJavaScript=function(){if(this.args.length===0&&this.indicator!=="[]/0")return this.id;if(x.type.is_list(this)){for(var w=[],b=this,y;b.indicator==="./2";){if(y=b.args[0].toJavaScript(),y===void 0)return;w.push(y),b=b.args[1]}if(b.indicator==="[]/0")return w}},Ye.prototype.singleton_variables=function(){var w=this.head.variables(),b={},y=[];this.body!==null&&(w=w.concat(this.body.variables()));for(var F=0;F<w.length;F++)b[w[F]]===void 0&&(b[w[F]]=0),b[w[F]]++;for(var z in b)z!=="_"&&b[z]===1&&y.push(z);return y};var x={__env:typeof tc<"u"&&tc.exports?global:window,module:{},version:t,parser:{tokenizer:U,expression:W},utils:{str_indicator:X,codePointAt:n,fromCodePoint:c},statistics:{getCountTerms:function(){return dt}},fromJavaScript:{test:{boolean:function(w){return w===!0||w===!1},number:function(w){return typeof w=="number"},string:function(w){return typeof w=="string"},list:function(w){return w instanceof Array},variable:function(w){return w===void 0},any:function(w){return!0}},conversion:{boolean:function(w){return new j(w?"true":"false",[])},number:function(w){return new Re(w,w%1!==0)},string:function(w){return new j(w,[])},list:function(w){for(var b=[],y,F=0;F<w.length;F++){if(y=x.fromJavaScript.apply(w[F]),y===void 0)return;b.push(y)}return g(b)},variable:function(w){return new De("_")},any:function(w){}},apply:function(w){for(var b in x.fromJavaScript.test)if(b!=="any"&&x.fromJavaScript.test[b](w))return x.fromJavaScript.conversion[b](w);return x.fromJavaScript.conversion.any(w)}},type:{Var:De,Num:Re,Term:j,Rule:Ye,State:Pe,Stream:Fe,Module:_e,Thread:it,Session:ke,Substitution:Ne,order:[De,Re,j,Fe],compare:function(w,b){var y=e(x.type.order,w.constructor),F=e(x.type.order,b.constructor);if(y<F)return-1;if(y>F)return 1;if(w.constructor===Re){if(w.is_float&&b.is_float)return 0;if(w.is_float)return-1;if(b.is_float)return 1}return 0},is_substitution:function(w){return w instanceof Ne},is_state:function(w){return w instanceof Pe},is_rule:function(w){return w instanceof Ye},is_variable:function(w){return w instanceof De},is_stream:function(w){return w instanceof Fe},is_anonymous_var:function(w){return w instanceof De&&w.id==="_"},is_callable:function(w){return w instanceof j},is_number:function(w){return w instanceof Re},is_integer:function(w){return w instanceof Re&&!w.is_float},is_float:function(w){return w instanceof Re&&w.is_float},is_term:function(w){return w instanceof j},is_atom:function(w){return w instanceof j&&w.args.length===0},is_ground:function(w){if(w instanceof De)return!1;if(w instanceof j){for(var b=0;b<w.args.length;b++)if(!x.type.is_ground(w.args[b]))return!1}return!0},is_atomic:function(w){return w instanceof j&&w.args.length===0||w instanceof Re},is_compound:function(w){return w instanceof j&&w.args.length>0},is_list:function(w){return w instanceof j&&(w.indicator==="[]/0"||w.indicator==="./2")},is_empty_list:function(w){return w instanceof j&&w.indicator==="[]/0"},is_non_empty_list:function(w){return w instanceof j&&w.indicator==="./2"},is_fully_list:function(w){for(;w instanceof j&&w.indicator==="./2";)w=w.args[1];return w instanceof De||w instanceof j&&w.indicator==="[]/0"},is_instantiated_list:function(w){for(;w instanceof j&&w.indicator==="./2";)w=w.args[1];return w instanceof j&&w.indicator==="[]/0"},is_unitary_list:function(w){return w instanceof j&&w.indicator==="./2"&&w.args[1]instanceof j&&w.args[1].indicator==="[]/0"},is_character:function(w){return w instanceof j&&(w.id.length===1||w.id.length>0&&w.id.length<=2&&n(w.id,0)>=65536)},is_character_code:function(w){return w instanceof Re&&!w.is_float&&w.value>=0&&w.value<=1114111},is_byte:function(w){return w instanceof Re&&!w.is_float&&w.value>=0&&w.value<=255},is_operator:function(w){return w instanceof j&&x.arithmetic.evaluation[w.indicator]},is_directive:function(w){return w instanceof j&&x.directive[w.indicator]!==void 0},is_builtin:function(w){return w instanceof j&&x.predicate[w.indicator]!==void 0},is_error:function(w){return w instanceof j&&w.indicator==="throw/1"},is_predicate_indicator:function(w){return w instanceof j&&w.indicator==="//2"&&w.args[0]instanceof j&&w.args[0].args.length===0&&w.args[1]instanceof Re&&w.args[1].is_float===!1},is_flag:function(w){return w instanceof j&&w.args.length===0&&x.flag[w.id]!==void 0},is_value_flag:function(w,b){if(!x.type.is_flag(w))return!1;for(var y in x.flag[w.id].allowed)if(x.flag[w.id].allowed.hasOwnProperty(y)&&x.flag[w.id].allowed[y].equals(b))return!0;return!1},is_io_mode:function(w){return x.type.is_atom(w)&&["read","write","append"].indexOf(w.id)!==-1},is_stream_option:function(w){return x.type.is_term(w)&&(w.indicator==="alias/1"&&x.type.is_atom(w.args[0])||w.indicator==="reposition/1"&&x.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="type/1"&&x.type.is_atom(w.args[0])&&(w.args[0].id==="text"||w.args[0].id==="binary")||w.indicator==="eof_action/1"&&x.type.is_atom(w.args[0])&&(w.args[0].id==="error"||w.args[0].id==="eof_code"||w.args[0].id==="reset"))},is_stream_position:function(w){return x.type.is_integer(w)&&w.value>=0||x.type.is_atom(w)&&(w.id==="end_of_stream"||w.id==="past_end_of_stream")},is_stream_property:function(w){return x.type.is_term(w)&&(w.indicator==="input/0"||w.indicator==="output/0"||w.indicator==="alias/1"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0]))||w.indicator==="file_name/1"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0]))||w.indicator==="position/1"&&(x.type.is_variable(w.args[0])||x.type.is_stream_position(w.args[0]))||w.indicator==="reposition/1"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false"))||w.indicator==="type/1"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id==="text"||w.args[0].id==="binary"))||w.indicator==="mode/1"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id==="read"||w.args[0].id==="write"||w.args[0].id==="append"))||w.indicator==="eof_action/1"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id==="error"||w.args[0].id==="eof_code"||w.args[0].id==="reset"))||w.indicator==="end_of_stream/1"&&(x.type.is_variable(w.args[0])||x.type.is_atom(w.args[0])&&(w.args[0].id==="at"||w.args[0].id==="past"||w.args[0].id==="not")))},is_streamable:function(w){return w.__proto__.stream!==void 0},is_read_option:function(w){return x.type.is_term(w)&&["variables/1","variable_names/1","singletons/1"].indexOf(w.indicator)!==-1},is_write_option:function(w){return x.type.is_term(w)&&(w.indicator==="quoted/1"&&x.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="ignore_ops/1"&&x.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="numbervars/1"&&x.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false"))},is_close_option:function(w){return x.type.is_term(w)&&w.indicator==="force/1"&&x.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")},is_modifiable_flag:function(w){return x.type.is_flag(w)&&x.flag[w.id].changeable},is_module:function(w){return w instanceof j&&w.indicator==="library/1"&&w.args[0]instanceof j&&w.args[0].args.length===0&&x.module[w.args[0].id]!==void 0}},arithmetic:{evaluation:{"e/0":{type_args:null,type_result:!0,fn:function(w){return Math.E}},"pi/0":{type_args:null,type_result:!0,fn:function(w){return Math.PI}},"tau/0":{type_args:null,type_result:!0,fn:function(w){return 2*Math.PI}},"epsilon/0":{type_args:null,type_result:!0,fn:function(w){return Number.EPSILON}},"+/1":{type_args:null,type_result:null,fn:function(w,b){return w}},"-/1":{type_args:null,type_result:null,fn:function(w,b){return-w}},"\\/1":{type_args:!1,type_result:!1,fn:function(w,b){return~w}},"abs/1":{type_args:null,type_result:null,fn:function(w,b){return Math.abs(w)}},"sign/1":{type_args:null,type_result:null,fn:function(w,b){return Math.sign(w)}},"float_integer_part/1":{type_args:!0,type_result:!1,fn:function(w,b){return parseInt(w)}},"float_fractional_part/1":{type_args:!0,type_result:!0,fn:function(w,b){return w-parseInt(w)}},"float/1":{type_args:null,type_result:!0,fn:function(w,b){return parseFloat(w)}},"floor/1":{type_args:!0,type_result:!1,fn:function(w,b){return Math.floor(w)}},"truncate/1":{type_args:!0,type_result:!1,fn:function(w,b){return parseInt(w)}},"round/1":{type_args:!0,type_result:!1,fn:function(w,b){return Math.round(w)}},"ceiling/1":{type_args:!0,type_result:!1,fn:function(w,b){return Math.ceil(w)}},"sin/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.sin(w)}},"cos/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.cos(w)}},"tan/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.tan(w)}},"asin/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.asin(w)}},"acos/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.acos(w)}},"atan/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.atan(w)}},"atan2/2":{type_args:null,type_result:!0,fn:function(w,b,y){return Math.atan2(w,b)}},"exp/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.exp(w)}},"sqrt/1":{type_args:null,type_result:!0,fn:function(w,b){return Math.sqrt(w)}},"log/1":{type_args:null,type_result:!0,fn:function(w,b){return w>0?Math.log(w):x.error.evaluation("undefined",b.__call_indicator)}},"+/2":{type_args:null,type_result:null,fn:function(w,b,y){return w+b}},"-/2":{type_args:null,type_result:null,fn:function(w,b,y){return w-b}},"*/2":{type_args:null,type_result:null,fn:function(w,b,y){return w*b}},"//2":{type_args:null,type_result:!0,fn:function(w,b,y){return b?w/b:x.error.evaluation("zero_division",y.__call_indicator)}},"///2":{type_args:!1,type_result:!1,fn:function(w,b,y){return b?parseInt(w/b):x.error.evaluation("zero_division",y.__call_indicator)}},"**/2":{type_args:null,type_result:!0,fn:function(w,b,y){return Math.pow(w,b)}},"^/2":{type_args:null,type_result:null,fn:function(w,b,y){return Math.pow(w,b)}},"<</2":{type_args:!1,type_result:!1,fn:function(w,b,y){return w<<b}},">>/2":{type_args:!1,type_result:!1,fn:function(w,b,y){return w>>b}},"/\\/2":{type_args:!1,type_result:!1,fn:function(w,b,y){return w&b}},"\\//2":{type_args:!1,type_result:!1,fn:function(w,b,y){return w|b}},"xor/2":{type_args:!1,type_result:!1,fn:function(w,b,y){return w^b}},"rem/2":{type_args:!1,type_result:!1,fn:function(w,b,y){return b?w%b:x.error.evaluation("zero_division",y.__call_indicator)}},"mod/2":{type_args:!1,type_result:!1,fn:function(w,b,y){return b?w-parseInt(w/b)*b:x.error.evaluation("zero_division",y.__call_indicator)}},"max/2":{type_args:null,type_result:null,fn:function(w,b,y){return Math.max(w,b)}},"min/2":{type_args:null,type_result:null,fn:function(w,b,y){return Math.min(w,b)}}}},directive:{"dynamic/1":function(w,b){var y=b.args[0];if(x.type.is_variable(y))w.throw_error(x.error.instantiation(b.indicator));else if(!x.type.is_compound(y)||y.indicator!=="//2")w.throw_error(x.error.type("predicate_indicator",y,b.indicator));else if(x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1]))w.throw_error(x.error.instantiation(b.indicator));else if(!x.type.is_atom(y.args[0]))w.throw_error(x.error.type("atom",y.args[0],b.indicator));else if(!x.type.is_integer(y.args[1]))w.throw_error(x.error.type("integer",y.args[1],b.indicator));else{var F=b.args[0].args[0].id+"/"+b.args[0].args[1].value;w.session.public_predicates[F]=!0,w.session.rules[F]||(w.session.rules[F]=[])}},"multifile/1":function(w,b){var y=b.args[0];x.type.is_variable(y)?w.throw_error(x.error.instantiation(b.indicator)):!x.type.is_compound(y)||y.indicator!=="//2"?w.throw_error(x.error.type("predicate_indicator",y,b.indicator)):x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1])?w.throw_error(x.error.instantiation(b.indicator)):x.type.is_atom(y.args[0])?x.type.is_integer(y.args[1])?w.session.multifile_predicates[b.args[0].args[0].id+"/"+b.args[0].args[1].value]=!0:w.throw_error(x.error.type("integer",y.args[1],b.indicator)):w.throw_error(x.error.type("atom",y.args[0],b.indicator))},"set_prolog_flag/2":function(w,b){var y=b.args[0],F=b.args[1];x.type.is_variable(y)||x.type.is_variable(F)?w.throw_error(x.error.instantiation(b.indicator)):x.type.is_atom(y)?x.type.is_flag(y)?x.type.is_value_flag(y,F)?x.type.is_modifiable_flag(y)?w.session.flag[y.id]=F:w.throw_error(x.error.permission("modify","flag",y)):w.throw_error(x.error.domain("flag_value",new j("+",[y,F]),b.indicator)):w.throw_error(x.error.domain("prolog_flag",y,b.indicator)):w.throw_error(x.error.type("atom",y,b.indicator))},"use_module/1":function(w,b){var y=b.args[0];if(x.type.is_variable(y))w.throw_error(x.error.instantiation(b.indicator));else if(!x.type.is_term(y))w.throw_error(x.error.type("term",y,b.indicator));else if(x.type.is_module(y)){var F=y.args[0].id;e(w.session.modules,F)===-1&&w.session.modules.push(F)}},"char_conversion/2":function(w,b){var y=b.args[0],F=b.args[1];x.type.is_variable(y)||x.type.is_variable(F)?w.throw_error(x.error.instantiation(b.indicator)):x.type.is_character(y)?x.type.is_character(F)?y.id===F.id?delete w.session.__char_conversion[y.id]:w.session.__char_conversion[y.id]=F.id:w.throw_error(x.error.type("character",F,b.indicator)):w.throw_error(x.error.type("character",y,b.indicator))},"op/3":function(w,b){var y=b.args[0],F=b.args[1],z=b.args[2];if(x.type.is_variable(y)||x.type.is_variable(F)||x.type.is_variable(z))w.throw_error(x.error.instantiation(b.indicator));else if(!x.type.is_integer(y))w.throw_error(x.error.type("integer",y,b.indicator));else if(!x.type.is_atom(F))w.throw_error(x.error.type("atom",F,b.indicator));else if(!x.type.is_atom(z))w.throw_error(x.error.type("atom",z,b.indicator));else if(y.value<0||y.value>1200)w.throw_error(x.error.domain("operator_priority",y,b.indicator));else if(z.id===",")w.throw_error(x.error.permission("modify","operator",z,b.indicator));else if(z.id==="|"&&(y.value<1001||F.id.length!==3))w.throw_error(x.error.permission("modify","operator",z,b.indicator));else if(["fy","fx","yf","xf","xfx","yfx","xfy"].indexOf(F.id)===-1)w.throw_error(x.error.domain("operator_specifier",F,b.indicator));else{var Z={prefix:null,infix:null,postfix:null};for(var $ in w.session.__operators)if(w.session.__operators.hasOwnProperty($)){var oe=w.session.__operators[$][z.id];oe&&(e(oe,"fx")!==-1&&(Z.prefix={priority:$,type:"fx"}),e(oe,"fy")!==-1&&(Z.prefix={priority:$,type:"fy"}),e(oe,"xf")!==-1&&(Z.postfix={priority:$,type:"xf"}),e(oe,"yf")!==-1&&(Z.postfix={priority:$,type:"yf"}),e(oe,"xfx")!==-1&&(Z.infix={priority:$,type:"xfx"}),e(oe,"xfy")!==-1&&(Z.infix={priority:$,type:"xfy"}),e(oe,"yfx")!==-1&&(Z.infix={priority:$,type:"yfx"}))}var xe;switch(F.id){case"fy":case"fx":xe="prefix";break;case"yf":case"xf":xe="postfix";break;default:xe="infix";break}if(((Z.prefix&&xe==="prefix"||Z.postfix&&xe==="postfix"||Z.infix&&xe==="infix")&&Z[xe].type!==F.id||Z.infix&&xe==="postfix"||Z.postfix&&xe==="infix")&&y.value!==0)w.throw_error(x.error.permission("create","operator",z,b.indicator));else return Z[xe]&&(we(w.session.__operators[Z[xe].priority][z.id],F.id),w.session.__operators[Z[xe].priority][z.id].length===0&&delete w.session.__operators[Z[xe].priority][z.id]),y.value>0&&(w.session.__operators[y.value]||(w.session.__operators[y.value.toString()]={}),w.session.__operators[y.value][z.id]||(w.session.__operators[y.value][z.id]=[]),w.session.__operators[y.value][z.id].push(F.id)),!0}}},predicate:{"op/3":function(w,b,y){x.directive["op/3"](w,y)&&w.success(b)},"current_op/3":function(w,b,y){var F=y.args[0],z=y.args[1],Z=y.args[2],$=[];for(var oe in w.session.__operators)for(var xe in w.session.__operators[oe])for(var Te=0;Te<w.session.__operators[oe][xe].length;Te++)$.push(new Pe(b.goal.replace(new j(",",[new j("=",[new Re(oe,!1),F]),new j(",",[new j("=",[new j(w.session.__operators[oe][xe][Te],[]),z]),new j("=",[new j(xe,[]),Z])])])),b.substitution,b));w.prepend($)},";/2":function(w,b,y){if(x.type.is_term(y.args[0])&&y.args[0].indicator==="->/2"){var F=w.points,z=w.session.format_success,Z=w.session.format_error;w.session.format_success=function(Te){return Te.substitution},w.session.format_error=function(Te){return Te.goal},w.points=[new Pe(y.args[0].args[0],b.substitution,b)];var $=function(Te){w.points=F,w.session.format_success=z,w.session.format_error=Z,Te===!1?w.prepend([new Pe(b.goal.replace(y.args[1]),b.substitution,b)]):x.type.is_error(Te)?w.throw_error(Te.args[0]):Te===null?(w.prepend([b]),w.__calls.shift()(null)):w.prepend([new Pe(b.goal.replace(y.args[0].args[1]).apply(Te),b.substitution.apply(Te),b)])};w.__calls.unshift($)}else{var oe=new Pe(b.goal.replace(y.args[0]),b.substitution,b),xe=new Pe(b.goal.replace(y.args[1]),b.substitution,b);w.prepend([oe,xe])}},"!/0":function(w,b,y){var F,z,Z=[];for(F=b,z=null;F.parent!==null&&F.parent.goal.search(y);)if(z=F,F=F.parent,F.goal!==null){var $=F.goal.select();if($&&$.id==="call"&&$.search(y)){F=z;break}}for(var oe=w.points.length-1;oe>=0;oe--){for(var xe=w.points[oe],Te=xe.parent;Te!==null&&Te!==F.parent;)Te=Te.parent;Te===null&&Te!==F.parent&&Z.push(xe)}w.points=Z.reverse(),w.success(b)},"\\+/1":function(w,b,y){var F=y.args[0];x.type.is_variable(F)?w.throw_error(x.error.instantiation(w.level)):x.type.is_callable(F)?w.prepend([new Pe(b.goal.replace(new j(",",[new j(",",[new j("call",[F]),new j("!",[])]),new j("fail",[])])),b.substitution,b),new Pe(b.goal.replace(null),b.substitution,b)]):w.throw_error(x.error.type("callable",F,w.level))},"->/2":function(w,b,y){var F=b.goal.replace(new j(",",[y.args[0],new j(",",[new j("!"),y.args[1]])]));w.prepend([new Pe(F,b.substitution,b)])},"fail/0":function(w,b,y){},"false/0":function(w,b,y){},"true/0":function(w,b,y){w.success(b)},"call/1":se(1),"call/2":se(2),"call/3":se(3),"call/4":se(4),"call/5":se(5),"call/6":se(6),"call/7":se(7),"call/8":se(8),"once/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("call",[F]),new j("!",[])])),b.substitution,b)])},"forall/2":function(w,b,y){var F=y.args[0],z=y.args[1];w.prepend([new Pe(b.goal.replace(new j("\\+",[new j(",",[new j("call",[F]),new j("\\+",[new j("call",[z])])])])),b.substitution,b)])},"repeat/0":function(w,b,y){w.prepend([new Pe(b.goal.replace(null),b.substitution,b),b])},"throw/1":function(w,b,y){x.type.is_variable(y.args[0])?w.throw_error(x.error.instantiation(w.level)):w.throw_error(y.args[0])},"catch/3":function(w,b,y){var F=w.points;w.points=[],w.prepend([new Pe(y.args[0],b.substitution,b)]);var z=w.session.format_success,Z=w.session.format_error;w.session.format_success=function(oe){return oe.substitution},w.session.format_error=function(oe){return oe.goal};var $=function(oe){var xe=w.points;if(w.points=F,w.session.format_success=z,w.session.format_error=Z,x.type.is_error(oe)){for(var Te=[],lt=w.points.length-1;lt>=0;lt--){for(var ir=w.points[lt],It=ir.parent;It!==null&&It!==b.parent;)It=It.parent;It===null&&It!==b.parent&&Te.push(ir)}w.points=Te;var qt=w.get_flag("occurs_check").indicator==="true/0",ir=new Pe,Pt=x.unify(oe.args[0],y.args[1],qt);Pt!==null?(ir.substitution=b.substitution.apply(Pt),ir.goal=b.goal.replace(y.args[2]).apply(Pt),ir.parent=b,w.prepend([ir])):w.throw_error(oe.args[0])}else if(oe!==!1){for(var gn=oe===null?[]:[new Pe(b.goal.apply(oe).replace(null),b.substitution.apply(oe),b)],Pr=[],lt=xe.length-1;lt>=0;lt--){Pr.push(xe[lt]);var Ir=xe[lt].goal!==null?xe[lt].goal.select():null;if(x.type.is_term(Ir)&&Ir.indicator==="!/0")break}var Nr=s(Pr,function(nn){return nn.goal===null&&(nn.goal=new j("true",[])),nn=new Pe(b.goal.replace(new j("catch",[nn.goal,y.args[1],y.args[2]])),b.substitution.apply(nn.substitution),nn.parent),nn.exclude=y.args[0].variables(),nn}).reverse();w.prepend(Nr),w.prepend(gn),oe===null&&(this.current_limit=0,w.__calls.shift()(null))}};w.__calls.unshift($)},"=/2":function(w,b,y){var F=w.get_flag("occurs_check").indicator==="true/0",z=new Pe,Z=x.unify(y.args[0],y.args[1],F);Z!==null&&(z.goal=b.goal.apply(Z).replace(null),z.substitution=b.substitution.apply(Z),z.parent=b,w.prepend([z]))},"unify_with_occurs_check/2":function(w,b,y){var F=new Pe,z=x.unify(y.args[0],y.args[1],!0);z!==null&&(F.goal=b.goal.apply(z).replace(null),F.substitution=b.substitution.apply(z),F.parent=b,w.prepend([F]))},"\\=/2":function(w,b,y){var F=w.get_flag("occurs_check").indicator==="true/0",z=x.unify(y.args[0],y.args[1],F);z===null&&w.success(b)},"subsumes_term/2":function(w,b,y){var F=w.get_flag("occurs_check").indicator==="true/0",z=x.unify(y.args[1],y.args[0],F);z!==null&&y.args[1].apply(z).equals(y.args[1])&&w.success(b)},"findall/3":function(w,b,y){var F=y.args[0],z=y.args[1],Z=y.args[2];if(x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(z))w.throw_error(x.error.type("callable",z,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_list(Z))w.throw_error(x.error.type("list",Z,y.indicator));else{var $=w.next_free_variable(),oe=new j(",",[z,new j("=",[$,F])]),xe=w.points,Te=w.session.limit,lt=w.session.format_success;w.session.format_success=function(ir){return ir.substitution},w.add_goal(oe,!0,b);var It=[],qt=function(ir){if(ir!==!1&&ir!==null&&!x.type.is_error(ir))w.__calls.unshift(qt),It.push(ir.links[$.id]),w.session.limit=w.current_limit;else if(w.points=xe,w.session.limit=Te,w.session.format_success=lt,x.type.is_error(ir))w.throw_error(ir.args[0]);else if(w.current_limit>0){for(var Pt=new j("[]"),gn=It.length-1;gn>=0;gn--)Pt=new j(".",[It[gn],Pt]);w.prepend([new Pe(b.goal.replace(new j("=",[Z,Pt])),b.substitution,b)])}};w.__calls.unshift(qt)}},"bagof/3":function(w,b,y){var F,z=y.args[0],Z=y.args[1],$=y.args[2];if(x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(Z))w.throw_error(x.error.type("callable",Z,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_list($))w.throw_error(x.error.type("list",$,y.indicator));else{var oe=w.next_free_variable(),xe;Z.indicator==="^/2"?(xe=Z.args[0].variables(),Z=Z.args[1]):xe=[],xe=xe.concat(z.variables());for(var Te=Z.variables().filter(function(Nr){return e(xe,Nr)===-1}),lt=new j("[]"),It=Te.length-1;It>=0;It--)lt=new j(".",[new De(Te[It]),lt]);var qt=new j(",",[Z,new j("=",[oe,new j(",",[lt,z])])]),ir=w.points,Pt=w.session.limit,gn=w.session.format_success;w.session.format_success=function(Nr){return Nr.substitution},w.add_goal(qt,!0,b);var Pr=[],Ir=function(Nr){if(Nr!==!1&&Nr!==null&&!x.type.is_error(Nr)){w.__calls.unshift(Ir);var nn=!1,ai=Nr.links[oe.id].args[0],wo=Nr.links[oe.id].args[1];for(var ns in Pr)if(Pr.hasOwnProperty(ns)){var to=Pr[ns];if(to.variables.equals(ai)){to.answers.push(wo),nn=!0;break}}nn||Pr.push({variables:ai,answers:[wo]}),w.session.limit=w.current_limit}else if(w.points=ir,w.session.limit=Pt,w.session.format_success=gn,x.type.is_error(Nr))w.throw_error(Nr.args[0]);else if(w.current_limit>0){for(var Bo=[],ji=0;ji<Pr.length;ji++){Nr=Pr[ji].answers;for(var ro=new j("[]"),vo=Nr.length-1;vo>=0;vo--)ro=new j(".",[Nr[vo],ro]);Bo.push(new Pe(b.goal.replace(new j(",",[new j("=",[lt,Pr[ji].variables]),new j("=",[$,ro])])),b.substitution,b))}w.prepend(Bo)}};w.__calls.unshift(Ir)}},"setof/3":function(w,b,y){var F,z=y.args[0],Z=y.args[1],$=y.args[2];if(x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(Z))w.throw_error(x.error.type("callable",Z,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_list($))w.throw_error(x.error.type("list",$,y.indicator));else{var oe=w.next_free_variable(),xe;Z.indicator==="^/2"?(xe=Z.args[0].variables(),Z=Z.args[1]):xe=[],xe=xe.concat(z.variables());for(var Te=Z.variables().filter(function(Nr){return e(xe,Nr)===-1}),lt=new j("[]"),It=Te.length-1;It>=0;It--)lt=new j(".",[new De(Te[It]),lt]);var qt=new j(",",[Z,new j("=",[oe,new j(",",[lt,z])])]),ir=w.points,Pt=w.session.limit,gn=w.session.format_success;w.session.format_success=function(Nr){return Nr.substitution},w.add_goal(qt,!0,b);var Pr=[],Ir=function(Nr){if(Nr!==!1&&Nr!==null&&!x.type.is_error(Nr)){w.__calls.unshift(Ir);var nn=!1,ai=Nr.links[oe.id].args[0],wo=Nr.links[oe.id].args[1];for(var ns in Pr)if(Pr.hasOwnProperty(ns)){var to=Pr[ns];if(to.variables.equals(ai)){to.answers.push(wo),nn=!0;break}}nn||Pr.push({variables:ai,answers:[wo]}),w.session.limit=w.current_limit}else if(w.points=ir,w.session.limit=Pt,w.session.format_success=gn,x.type.is_error(Nr))w.throw_error(Nr.args[0]);else if(w.current_limit>0){for(var Bo=[],ji=0;ji<Pr.length;ji++){Nr=Pr[ji].answers.sort(x.compare);for(var ro=new j("[]"),vo=Nr.length-1;vo>=0;vo--)ro=new j(".",[Nr[vo],ro]);Bo.push(new Pe(b.goal.replace(new j(",",[new j("=",[lt,Pr[ji].variables]),new j("=",[$,ro])])),b.substitution,b))}w.prepend(Bo)}};w.__calls.unshift(Ir)}},"functor/3":function(w,b,y){var F,z=y.args[0],Z=y.args[1],$=y.args[2];if(x.type.is_variable(z)&&(x.type.is_variable(Z)||x.type.is_variable($)))w.throw_error(x.error.instantiation("functor/3"));else if(!x.type.is_variable($)&&!x.type.is_integer($))w.throw_error(x.error.type("integer",y.args[2],"functor/3"));else if(!x.type.is_variable(Z)&&!x.type.is_atomic(Z))w.throw_error(x.error.type("atomic",y.args[1],"functor/3"));else if(x.type.is_integer(Z)&&x.type.is_integer($)&&$.value!==0)w.throw_error(x.error.type("atom",y.args[1],"functor/3"));else if(x.type.is_variable(z)){if(y.args[2].value>=0){for(var oe=[],xe=0;xe<$.value;xe++)oe.push(w.next_free_variable());var Te=x.type.is_integer(Z)?Z:new j(Z.id,oe);w.prepend([new Pe(b.goal.replace(new j("=",[z,Te])),b.substitution,b)])}}else{var lt=x.type.is_integer(z)?z:new j(z.id,[]),It=x.type.is_integer(z)?new Re(0,!1):new Re(z.args.length,!1),qt=new j(",",[new j("=",[lt,Z]),new j("=",[It,$])]);w.prepend([new Pe(b.goal.replace(qt),b.substitution,b)])}},"arg/3":function(w,b,y){if(x.type.is_variable(y.args[0])||x.type.is_variable(y.args[1]))w.throw_error(x.error.instantiation(y.indicator));else if(y.args[0].value<0)w.throw_error(x.error.domain("not_less_than_zero",y.args[0],y.indicator));else if(!x.type.is_compound(y.args[1]))w.throw_error(x.error.type("compound",y.args[1],y.indicator));else{var F=y.args[0].value;if(F>0&&F<=y.args[1].args.length){var z=new j("=",[y.args[1].args[F-1],y.args[2]]);w.prepend([new Pe(b.goal.replace(z),b.substitution,b)])}}},"=../2":function(w,b,y){var F;if(x.type.is_variable(y.args[0])&&(x.type.is_variable(y.args[1])||x.type.is_non_empty_list(y.args[1])&&x.type.is_variable(y.args[1].args[0])))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_fully_list(y.args[1]))w.throw_error(x.error.type("list",y.args[1],y.indicator));else if(x.type.is_variable(y.args[0])){if(!x.type.is_variable(y.args[1])){var Z=[];for(F=y.args[1].args[1];F.indicator==="./2";)Z.push(F.args[0]),F=F.args[1];x.type.is_variable(y.args[0])&&x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):Z.length===0&&x.type.is_compound(y.args[1].args[0])?w.throw_error(x.error.type("atomic",y.args[1].args[0],y.indicator)):Z.length>0&&(x.type.is_compound(y.args[1].args[0])||x.type.is_number(y.args[1].args[0]))?w.throw_error(x.error.type("atom",y.args[1].args[0],y.indicator)):Z.length===0?w.prepend([new Pe(b.goal.replace(new j("=",[y.args[1].args[0],y.args[0]],b)),b.substitution,b)]):w.prepend([new Pe(b.goal.replace(new j("=",[new j(y.args[1].args[0].id,Z),y.args[0]])),b.substitution,b)])}}else{if(x.type.is_atomic(y.args[0]))F=new j(".",[y.args[0],new j("[]")]);else{F=new j("[]");for(var z=y.args[0].args.length-1;z>=0;z--)F=new j(".",[y.args[0].args[z],F]);F=new j(".",[new j(y.args[0].id),F])}w.prepend([new Pe(b.goal.replace(new j("=",[F,y.args[1]])),b.substitution,b)])}},"copy_term/2":function(w,b,y){var F=y.args[0].rename(w);w.prepend([new Pe(b.goal.replace(new j("=",[F,y.args[1]])),b.substitution,b.parent)])},"term_variables/2":function(w,b,y){var F=y.args[0],z=y.args[1];if(!x.type.is_fully_list(z))w.throw_error(x.error.type("list",z,y.indicator));else{var Z=g(s(ye(F.variables()),function($){return new De($)}));w.prepend([new Pe(b.goal.replace(new j("=",[z,Z])),b.substitution,b)])}},"clause/2":function(w,b,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))w.throw_error(x.error.type("callable",y.args[0],y.indicator));else if(!x.type.is_variable(y.args[1])&&!x.type.is_callable(y.args[1]))w.throw_error(x.error.type("callable",y.args[1],y.indicator));else if(w.session.rules[y.args[0].indicator]!==void 0)if(w.is_public_predicate(y.args[0].indicator)){var F=[];for(var z in w.session.rules[y.args[0].indicator])if(w.session.rules[y.args[0].indicator].hasOwnProperty(z)){var Z=w.session.rules[y.args[0].indicator][z];w.session.renamed_variables={},Z=Z.rename(w),Z.body===null&&(Z.body=new j("true"));var $=new j(",",[new j("=",[Z.head,y.args[0]]),new j("=",[Z.body,y.args[1]])]);F.push(new Pe(b.goal.replace($),b.substitution,b))}w.prepend(F)}else w.throw_error(x.error.permission("access","private_procedure",y.args[0].indicator,y.indicator))},"current_predicate/1":function(w,b,y){var F=y.args[0];if(!x.type.is_variable(F)&&(!x.type.is_compound(F)||F.indicator!=="//2"))w.throw_error(x.error.type("predicate_indicator",F,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_variable(F.args[0])&&!x.type.is_atom(F.args[0]))w.throw_error(x.error.type("atom",F.args[0],y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_variable(F.args[1])&&!x.type.is_integer(F.args[1]))w.throw_error(x.error.type("integer",F.args[1],y.indicator));else{var z=[];for(var Z in w.session.rules)if(w.session.rules.hasOwnProperty(Z)){var $=Z.lastIndexOf("/"),oe=Z.substr(0,$),xe=parseInt(Z.substr($+1,Z.length-($+1))),Te=new j("/",[new j(oe),new Re(xe,!1)]),lt=new j("=",[Te,F]);z.push(new Pe(b.goal.replace(lt),b.substitution,b))}w.prepend(z)}},"asserta/1":function(w,b,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))w.throw_error(x.error.type("callable",y.args[0],y.indicator));else{var F,z;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=Ce(y.args[0].args[1])):(F=y.args[0],z=null),x.type.is_callable(F)?z!==null&&!x.type.is_callable(z)?w.throw_error(x.error.type("callable",z,y.indicator)):w.is_public_predicate(F.indicator)?(w.session.rules[F.indicator]===void 0&&(w.session.rules[F.indicator]=[]),w.session.public_predicates[F.indicator]=!0,w.session.rules[F.indicator]=[new Ye(F,z,!0)].concat(w.session.rules[F.indicator]),w.success(b)):w.throw_error(x.error.permission("modify","static_procedure",F.indicator,y.indicator)):w.throw_error(x.error.type("callable",F,y.indicator))}},"assertz/1":function(w,b,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))w.throw_error(x.error.type("callable",y.args[0],y.indicator));else{var F,z;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=Ce(y.args[0].args[1])):(F=y.args[0],z=null),x.type.is_callable(F)?z!==null&&!x.type.is_callable(z)?w.throw_error(x.error.type("callable",z,y.indicator)):w.is_public_predicate(F.indicator)?(w.session.rules[F.indicator]===void 0&&(w.session.rules[F.indicator]=[]),w.session.public_predicates[F.indicator]=!0,w.session.rules[F.indicator].push(new Ye(F,z,!0)),w.success(b)):w.throw_error(x.error.permission("modify","static_procedure",F.indicator,y.indicator)):w.throw_error(x.error.type("callable",F,y.indicator))}},"retract/1":function(w,b,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_callable(y.args[0]))w.throw_error(x.error.type("callable",y.args[0],y.indicator));else{var F,z;if(y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=y.args[0].args[1]):(F=y.args[0],z=new j("true")),typeof b.retract>"u")if(w.is_public_predicate(F.indicator)){if(w.session.rules[F.indicator]!==void 0){for(var Z=[],$=0;$<w.session.rules[F.indicator].length;$++){w.session.renamed_variables={};var oe=w.session.rules[F.indicator][$],xe=oe.rename(w);xe.body===null&&(xe.body=new j("true",[]));var Te=w.get_flag("occurs_check").indicator==="true/0",lt=x.unify(new j(",",[F,z]),new j(",",[xe.head,xe.body]),Te);if(lt!==null){var It=new Pe(b.goal.replace(new j(",",[new j("retract",[new j(":-",[F,z])]),new j(",",[new j("=",[F,xe.head]),new j("=",[z,xe.body])])])),b.substitution,b);It.retract=oe,Z.push(It)}}w.prepend(Z)}}else w.throw_error(x.error.permission("modify","static_procedure",F.indicator,y.indicator));else fe(w,b,F.indicator,b.retract)}},"retractall/1":function(w,b,y){var F=y.args[0];x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_callable(F)?w.prepend([new Pe(b.goal.replace(new j(",",[new j("retract",[new x.type.Term(":-",[F,new De("_")])]),new j("fail",[])])),b.substitution,b),new Pe(b.goal.replace(null),b.substitution,b)]):w.throw_error(x.error.type("callable",F,y.indicator))},"abolish/1":function(w,b,y){if(x.type.is_variable(y.args[0])||x.type.is_term(y.args[0])&&y.args[0].indicator==="//2"&&(x.type.is_variable(y.args[0].args[0])||x.type.is_variable(y.args[0].args[1])))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_term(y.args[0])||y.args[0].indicator!=="//2")w.throw_error(x.error.type("predicate_indicator",y.args[0],y.indicator));else if(!x.type.is_atom(y.args[0].args[0]))w.throw_error(x.error.type("atom",y.args[0].args[0],y.indicator));else if(!x.type.is_integer(y.args[0].args[1]))w.throw_error(x.error.type("integer",y.args[0].args[1],y.indicator));else if(y.args[0].args[1].value<0)w.throw_error(x.error.domain("not_less_than_zero",y.args[0].args[1],y.indicator));else if(x.type.is_number(w.get_flag("max_arity"))&&y.args[0].args[1].value>w.get_flag("max_arity").value)w.throw_error(x.error.representation("max_arity",y.indicator));else{var F=y.args[0].args[0].id+"/"+y.args[0].args[1].value;w.is_public_predicate(F)?(delete w.session.rules[F],w.success(b)):w.throw_error(x.error.permission("modify","static_procedure",F,y.indicator))}},"atom_length/2":function(w,b,y){if(x.type.is_variable(y.args[0]))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_atom(y.args[0]))w.throw_error(x.error.type("atom",y.args[0],y.indicator));else if(!x.type.is_variable(y.args[1])&&!x.type.is_integer(y.args[1]))w.throw_error(x.error.type("integer",y.args[1],y.indicator));else if(x.type.is_integer(y.args[1])&&y.args[1].value<0)w.throw_error(x.error.domain("not_less_than_zero",y.args[1],y.indicator));else{var F=new Re(y.args[0].id.length,!1);w.prepend([new Pe(b.goal.replace(new j("=",[F,y.args[1]])),b.substitution,b)])}},"atom_concat/3":function(w,b,y){var F,z,Z=y.args[0],$=y.args[1],oe=y.args[2];if(x.type.is_variable(oe)&&(x.type.is_variable(Z)||x.type.is_variable($)))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_atom(Z))w.throw_error(x.error.type("atom",Z,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_atom($))w.throw_error(x.error.type("atom",$,y.indicator));else if(!x.type.is_variable(oe)&&!x.type.is_atom(oe))w.throw_error(x.error.type("atom",oe,y.indicator));else{var xe=x.type.is_variable(Z),Te=x.type.is_variable($);if(!xe&&!Te)z=new j("=",[oe,new j(Z.id+$.id)]),w.prepend([new Pe(b.goal.replace(z),b.substitution,b)]);else if(xe&&!Te)F=oe.id.substr(0,oe.id.length-$.id.length),F+$.id===oe.id&&(z=new j("=",[Z,new j(F)]),w.prepend([new Pe(b.goal.replace(z),b.substitution,b)]));else if(Te&&!xe)F=oe.id.substr(Z.id.length),Z.id+F===oe.id&&(z=new j("=",[$,new j(F)]),w.prepend([new Pe(b.goal.replace(z),b.substitution,b)]));else{for(var lt=[],It=0;It<=oe.id.length;It++){var qt=new j(oe.id.substr(0,It)),ir=new j(oe.id.substr(It));z=new j(",",[new j("=",[qt,Z]),new j("=",[ir,$])]),lt.push(new Pe(b.goal.replace(z),b.substitution,b))}w.prepend(lt)}}},"sub_atom/5":function(w,b,y){var F,z=y.args[0],Z=y.args[1],$=y.args[2],oe=y.args[3],xe=y.args[4];if(x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_integer(Z))w.throw_error(x.error.type("integer",Z,y.indicator));else if(!x.type.is_variable($)&&!x.type.is_integer($))w.throw_error(x.error.type("integer",$,y.indicator));else if(!x.type.is_variable(oe)&&!x.type.is_integer(oe))w.throw_error(x.error.type("integer",oe,y.indicator));else if(x.type.is_integer(Z)&&Z.value<0)w.throw_error(x.error.domain("not_less_than_zero",Z,y.indicator));else if(x.type.is_integer($)&&$.value<0)w.throw_error(x.error.domain("not_less_than_zero",$,y.indicator));else if(x.type.is_integer(oe)&&oe.value<0)w.throw_error(x.error.domain("not_less_than_zero",oe,y.indicator));else{var Te=[],lt=[],It=[];if(x.type.is_variable(Z))for(F=0;F<=z.id.length;F++)Te.push(F);else Te.push(Z.value);if(x.type.is_variable($))for(F=0;F<=z.id.length;F++)lt.push(F);else lt.push($.value);if(x.type.is_variable(oe))for(F=0;F<=z.id.length;F++)It.push(F);else It.push(oe.value);var qt=[];for(var ir in Te)if(Te.hasOwnProperty(ir)){F=Te[ir];for(var Pt in lt)if(lt.hasOwnProperty(Pt)){var gn=lt[Pt],Pr=z.id.length-F-gn;if(e(It,Pr)!==-1&&F+gn+Pr===z.id.length){var Ir=z.id.substr(F,gn);if(z.id===z.id.substr(0,F)+Ir+z.id.substr(F+gn,Pr)){var Nr=new j("=",[new j(Ir),xe]),nn=new j("=",[Z,new Re(F)]),ai=new j("=",[$,new Re(gn)]),wo=new j("=",[oe,new Re(Pr)]),ns=new j(",",[new j(",",[new j(",",[nn,ai]),wo]),Nr]);qt.push(new Pe(b.goal.replace(ns),b.substitution,b))}}}}w.prepend(qt)}},"atom_chars/2":function(w,b,y){var F=y.args[0],z=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_atom(F))w.throw_error(x.error.type("atom",F,y.indicator));else if(x.type.is_variable(F)){for(var oe=z,xe=x.type.is_variable(F),Te="";oe.indicator==="./2";){if(x.type.is_character(oe.args[0]))Te+=oe.args[0].id;else if(x.type.is_variable(oe.args[0])&&xe){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_variable(oe.args[0])){w.throw_error(x.error.type("character",oe.args[0],y.indicator));return}oe=oe.args[1]}x.type.is_variable(oe)&&xe?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_empty_list(oe)&&!x.type.is_variable(oe)?w.throw_error(x.error.type("list",z,y.indicator)):w.prepend([new Pe(b.goal.replace(new j("=",[new j(Te),F])),b.substitution,b)])}else{for(var Z=new j("[]"),$=F.id.length-1;$>=0;$--)Z=new j(".",[new j(F.id.charAt($)),Z]);w.prepend([new Pe(b.goal.replace(new j("=",[z,Z])),b.substitution,b)])}},"atom_codes/2":function(w,b,y){var F=y.args[0],z=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_atom(F))w.throw_error(x.error.type("atom",F,y.indicator));else if(x.type.is_variable(F)){for(var oe=z,xe=x.type.is_variable(F),Te="";oe.indicator==="./2";){if(x.type.is_character_code(oe.args[0]))Te+=c(oe.args[0].value);else if(x.type.is_variable(oe.args[0])&&xe){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_variable(oe.args[0])){w.throw_error(x.error.representation("character_code",y.indicator));return}oe=oe.args[1]}x.type.is_variable(oe)&&xe?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_empty_list(oe)&&!x.type.is_variable(oe)?w.throw_error(x.error.type("list",z,y.indicator)):w.prepend([new Pe(b.goal.replace(new j("=",[new j(Te),F])),b.substitution,b)])}else{for(var Z=new j("[]"),$=F.id.length-1;$>=0;$--)Z=new j(".",[new Re(n(F.id,$),!1),Z]);w.prepend([new Pe(b.goal.replace(new j("=",[z,Z])),b.substitution,b)])}},"char_code/2":function(w,b,y){var F=y.args[0],z=y.args[1];if(x.type.is_variable(F)&&x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_character(F))w.throw_error(x.error.type("character",F,y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_integer(z))w.throw_error(x.error.type("integer",z,y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_character_code(z))w.throw_error(x.error.representation("character_code",y.indicator));else if(x.type.is_variable(z)){var Z=new Re(n(F.id,0),!1);w.prepend([new Pe(b.goal.replace(new j("=",[Z,z])),b.substitution,b)])}else{var $=new j(c(z.value));w.prepend([new Pe(b.goal.replace(new j("=",[$,F])),b.substitution,b)])}},"number_chars/2":function(w,b,y){var F,z=y.args[0],Z=y.args[1];if(x.type.is_variable(z)&&x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_number(z))w.throw_error(x.error.type("number",z,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_list(Z))w.throw_error(x.error.type("list",Z,y.indicator));else{var $=x.type.is_variable(z);if(!x.type.is_variable(Z)){var oe=Z,xe=!0;for(F="";oe.indicator==="./2";){if(x.type.is_character(oe.args[0]))F+=oe.args[0].id;else if(x.type.is_variable(oe.args[0]))xe=!1;else if(!x.type.is_variable(oe.args[0])){w.throw_error(x.error.type("character",oe.args[0],y.indicator));return}oe=oe.args[1]}if(xe=xe&&x.type.is_empty_list(oe),!x.type.is_empty_list(oe)&&!x.type.is_variable(oe)){w.throw_error(x.error.type("list",Z,y.indicator));return}if(!xe&&$){w.throw_error(x.error.instantiation(y.indicator));return}else if(xe)if(x.type.is_variable(oe)&&$){w.throw_error(x.error.instantiation(y.indicator));return}else{var Te=w.parse(F),lt=Te.value;!x.type.is_number(lt)||Te.tokens[Te.tokens.length-1].space?w.throw_error(x.error.syntax_by_predicate("parseable_number",y.indicator)):w.prepend([new Pe(b.goal.replace(new j("=",[z,lt])),b.substitution,b)]);return}}if(!$){F=z.toString();for(var It=new j("[]"),qt=F.length-1;qt>=0;qt--)It=new j(".",[new j(F.charAt(qt)),It]);w.prepend([new Pe(b.goal.replace(new j("=",[Z,It])),b.substitution,b)])}}},"number_codes/2":function(w,b,y){var F,z=y.args[0],Z=y.args[1];if(x.type.is_variable(z)&&x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_number(z))w.throw_error(x.error.type("number",z,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_list(Z))w.throw_error(x.error.type("list",Z,y.indicator));else{var $=x.type.is_variable(z);if(!x.type.is_variable(Z)){var oe=Z,xe=!0;for(F="";oe.indicator==="./2";){if(x.type.is_character_code(oe.args[0]))F+=c(oe.args[0].value);else if(x.type.is_variable(oe.args[0]))xe=!1;else if(!x.type.is_variable(oe.args[0])){w.throw_error(x.error.type("character_code",oe.args[0],y.indicator));return}oe=oe.args[1]}if(xe=xe&&x.type.is_empty_list(oe),!x.type.is_empty_list(oe)&&!x.type.is_variable(oe)){w.throw_error(x.error.type("list",Z,y.indicator));return}if(!xe&&$){w.throw_error(x.error.instantiation(y.indicator));return}else if(xe)if(x.type.is_variable(oe)&&$){w.throw_error(x.error.instantiation(y.indicator));return}else{var Te=w.parse(F),lt=Te.value;!x.type.is_number(lt)||Te.tokens[Te.tokens.length-1].space?w.throw_error(x.error.syntax_by_predicate("parseable_number",y.indicator)):w.prepend([new Pe(b.goal.replace(new j("=",[z,lt])),b.substitution,b)]);return}}if(!$){F=z.toString();for(var It=new j("[]"),qt=F.length-1;qt>=0;qt--)It=new j(".",[new Re(n(F,qt),!1),It]);w.prepend([new Pe(b.goal.replace(new j("=",[Z,It])),b.substitution,b)])}}},"upcase_atom/2":function(w,b,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?!x.type.is_variable(z)&&!x.type.is_atom(z)?w.throw_error(x.error.type("atom",z,y.indicator)):w.prepend([new Pe(b.goal.replace(new j("=",[z,new j(F.id.toUpperCase(),[])])),b.substitution,b)]):w.throw_error(x.error.type("atom",F,y.indicator))},"downcase_atom/2":function(w,b,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?!x.type.is_variable(z)&&!x.type.is_atom(z)?w.throw_error(x.error.type("atom",z,y.indicator)):w.prepend([new Pe(b.goal.replace(new j("=",[z,new j(F.id.toLowerCase(),[])])),b.substitution,b)]):w.throw_error(x.error.type("atom",F,y.indicator))},"atomic_list_concat/2":function(w,b,y){var F=y.args[0],z=y.args[1];w.prepend([new Pe(b.goal.replace(new j("atomic_list_concat",[F,new j("",[]),z])),b.substitution,b)])},"atomic_list_concat/3":function(w,b,y){var F=y.args[0],z=y.args[1],Z=y.args[2];if(x.type.is_variable(z)||x.type.is_variable(F)&&x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_list(F))w.throw_error(x.error.type("list",F,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_atom(Z))w.throw_error(x.error.type("atom",Z,y.indicator));else if(x.type.is_variable(Z)){for(var oe="",xe=F;x.type.is_term(xe)&&xe.indicator==="./2";){if(!x.type.is_atom(xe.args[0])&&!x.type.is_number(xe.args[0])){w.throw_error(x.error.type("atomic",xe.args[0],y.indicator));return}oe!==""&&(oe+=z.id),x.type.is_atom(xe.args[0])?oe+=xe.args[0].id:oe+=""+xe.args[0].value,xe=xe.args[1]}oe=new j(oe,[]),x.type.is_variable(xe)?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_term(xe)||xe.indicator!=="[]/0"?w.throw_error(x.error.type("list",F,y.indicator)):w.prepend([new Pe(b.goal.replace(new j("=",[oe,Z])),b.substitution,b)])}else{var $=g(s(Z.id.split(z.id),function(Te){return new j(Te,[])}));w.prepend([new Pe(b.goal.replace(new j("=",[$,F])),b.substitution,b)])}},"@=</2":function(w,b,y){x.compare(y.args[0],y.args[1])<=0&&w.success(b)},"==/2":function(w,b,y){x.compare(y.args[0],y.args[1])===0&&w.success(b)},"\\==/2":function(w,b,y){x.compare(y.args[0],y.args[1])!==0&&w.success(b)},"@</2":function(w,b,y){x.compare(y.args[0],y.args[1])<0&&w.success(b)},"@>/2":function(w,b,y){x.compare(y.args[0],y.args[1])>0&&w.success(b)},"@>=/2":function(w,b,y){x.compare(y.args[0],y.args[1])>=0&&w.success(b)},"compare/3":function(w,b,y){var F=y.args[0],z=y.args[1],Z=y.args[2];if(!x.type.is_variable(F)&&!x.type.is_atom(F))w.throw_error(x.error.type("atom",F,y.indicator));else if(x.type.is_atom(F)&&["<",">","="].indexOf(F.id)===-1)w.throw_error(x.type.domain("order",F,y.indicator));else{var $=x.compare(z,Z);$=$===0?"=":$===-1?"<":">",w.prepend([new Pe(b.goal.replace(new j("=",[F,new j($,[])])),b.substitution,b)])}},"is/2":function(w,b,y){var F=y.args[1].interpret(w);x.type.is_number(F)?w.prepend([new Pe(b.goal.replace(new j("=",[y.args[0],F],w.level)),b.substitution,b)]):w.throw_error(F)},"between/3":function(w,b,y){var F=y.args[0],z=y.args[1],Z=y.args[2];if(x.type.is_variable(F)||x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_integer(F))w.throw_error(x.error.type("integer",F,y.indicator));else if(!x.type.is_integer(z))w.throw_error(x.error.type("integer",z,y.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_integer(Z))w.throw_error(x.error.type("integer",Z,y.indicator));else if(x.type.is_variable(Z)){var $=[new Pe(b.goal.replace(new j("=",[Z,F])),b.substitution,b)];F.value<z.value&&$.push(new Pe(b.goal.replace(new j("between",[new Re(F.value+1,!1),z,Z])),b.substitution,b)),w.prepend($)}else F.value<=Z.value&&z.value>=Z.value&&w.success(b)},"succ/2":function(w,b,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)&&x.type.is_variable(z)?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_variable(F)&&!x.type.is_integer(F)?w.throw_error(x.error.type("integer",F,y.indicator)):!x.type.is_variable(z)&&!x.type.is_integer(z)?w.throw_error(x.error.type("integer",z,y.indicator)):!x.type.is_variable(F)&&F.value<0?w.throw_error(x.error.domain("not_less_than_zero",F,y.indicator)):!x.type.is_variable(z)&&z.value<0?w.throw_error(x.error.domain("not_less_than_zero",z,y.indicator)):(x.type.is_variable(z)||z.value>0)&&(x.type.is_variable(F)?w.prepend([new Pe(b.goal.replace(new j("=",[F,new Re(z.value-1,!1)])),b.substitution,b)]):w.prepend([new Pe(b.goal.replace(new j("=",[z,new Re(F.value+1,!1)])),b.substitution,b)]))},"=:=/2":function(w,b,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F===0&&w.success(b)},"=\\=/2":function(w,b,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F!==0&&w.success(b)},"</2":function(w,b,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F<0&&w.success(b)},"=</2":function(w,b,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F<=0&&w.success(b)},">/2":function(w,b,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F>0&&w.success(b)},">=/2":function(w,b,y){var F=x.arithmetic_compare(w,y.args[0],y.args[1]);x.type.is_term(F)?w.throw_error(F):F>=0&&w.success(b)},"var/1":function(w,b,y){x.type.is_variable(y.args[0])&&w.success(b)},"atom/1":function(w,b,y){x.type.is_atom(y.args[0])&&w.success(b)},"atomic/1":function(w,b,y){x.type.is_atomic(y.args[0])&&w.success(b)},"compound/1":function(w,b,y){x.type.is_compound(y.args[0])&&w.success(b)},"integer/1":function(w,b,y){x.type.is_integer(y.args[0])&&w.success(b)},"float/1":function(w,b,y){x.type.is_float(y.args[0])&&w.success(b)},"number/1":function(w,b,y){x.type.is_number(y.args[0])&&w.success(b)},"nonvar/1":function(w,b,y){x.type.is_variable(y.args[0])||w.success(b)},"ground/1":function(w,b,y){y.variables().length===0&&w.success(b)},"acyclic_term/1":function(w,b,y){for(var F=b.substitution.apply(b.substitution),z=y.args[0].variables(),Z=0;Z<z.length;Z++)if(b.substitution.links[z[Z]]!==void 0&&!b.substitution.links[z[Z]].equals(F.links[z[Z]]))return;w.success(b)},"callable/1":function(w,b,y){x.type.is_callable(y.args[0])&&w.success(b)},"is_list/1":function(w,b,y){for(var F=y.args[0];x.type.is_term(F)&&F.indicator==="./2";)F=F.args[1];x.type.is_term(F)&&F.indicator==="[]/0"&&w.success(b)},"current_input/1":function(w,b,y){var F=y.args[0];!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain("stream",F,y.indicator)):(x.type.is_atom(F)&&w.get_stream_by_alias(F.id)&&(F=w.get_stream_by_alias(F.id)),w.prepend([new Pe(b.goal.replace(new j("=",[F,w.get_current_input()])),b.substitution,b)]))},"current_output/1":function(w,b,y){var F=y.args[0];!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):(x.type.is_atom(F)&&w.get_stream_by_alias(F.id)&&(F=w.get_stream_by_alias(F.id)),w.prepend([new Pe(b.goal.replace(new j("=",[F,w.get_current_output()])),b.substitution,b)]))},"set_input/1":function(w,b,y){var F=y.args[0],z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):x.type.is_stream(z)?z.output===!0?w.throw_error(x.error.permission("input","stream",F,y.indicator)):(w.set_current_input(z),w.success(b)):w.throw_error(x.error.existence("stream",F,y.indicator))},"set_output/1":function(w,b,y){var F=y.args[0],z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):x.type.is_stream(z)?z.input===!0?w.throw_error(x.error.permission("output","stream",F,y.indicator)):(w.set_current_output(z),w.success(b)):w.throw_error(x.error.existence("stream",F,y.indicator))},"open/3":function(w,b,y){var F=y.args[0],z=y.args[1],Z=y.args[2];w.prepend([new Pe(b.goal.replace(new j("open",[F,z,Z,new j("[]",[])])),b.substitution,b)])},"open/4":function(w,b,y){var F=y.args[0],z=y.args[1],Z=y.args[2],$=y.args[3];if(x.type.is_variable(F)||x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_atom(z))w.throw_error(x.error.type("atom",z,y.indicator));else if(!x.type.is_list($))w.throw_error(x.error.type("list",$,y.indicator));else if(!x.type.is_variable(Z))w.throw_error(x.error.type("variable",Z,y.indicator));else if(!x.type.is_atom(F)&&!x.type.is_streamable(F))w.throw_error(x.error.domain("source_sink",F,y.indicator));else if(!x.type.is_io_mode(z))w.throw_error(x.error.domain("io_mode",z,y.indicator));else{for(var oe={},xe=$,Te;x.type.is_term(xe)&&xe.indicator==="./2";){if(Te=xe.args[0],x.type.is_variable(Te)){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_stream_option(Te)){w.throw_error(x.error.domain("stream_option",Te,y.indicator));return}oe[Te.id]=Te.args[0].id,xe=xe.args[1]}if(xe.indicator!=="[]/0"){x.type.is_variable(xe)?w.throw_error(x.error.instantiation(y.indicator)):w.throw_error(x.error.type("list",$,y.indicator));return}else{var lt=oe.alias;if(lt&&w.get_stream_by_alias(lt)){w.throw_error(x.error.permission("open","source_sink",new j("alias",[new j(lt,[])]),y.indicator));return}oe.type||(oe.type="text");var It;if(x.type.is_atom(F)?It=w.file_system_open(F.id,oe.type,z.id):It=F.stream(oe.type,z.id),It===!1){w.throw_error(x.error.permission("open","source_sink",F,y.indicator));return}else if(It===null){w.throw_error(x.error.existence("source_sink",F,y.indicator));return}var qt=new Fe(It,z.id,oe.alias,oe.type,oe.reposition==="true",oe.eof_action);lt?w.session.streams[lt]=qt:w.session.streams[qt.id]=qt,w.prepend([new Pe(b.goal.replace(new j("=",[Z,qt])),b.substitution,b)])}}},"close/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j("close",[F,new j("[]",[])])),b.substitution,b)])},"close/2":function(w,b,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F)||x.type.is_variable(z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_list(z))w.throw_error(x.error.type("list",z,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(Z)||Z.stream===null)w.throw_error(x.error.existence("stream",F,y.indicator));else{for(var $={},oe=z,xe;x.type.is_term(oe)&&oe.indicator==="./2";){if(xe=oe.args[0],x.type.is_variable(xe)){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_close_option(xe)){w.throw_error(x.error.domain("close_option",xe,y.indicator));return}$[xe.id]=xe.args[0].id==="true",oe=oe.args[1]}if(oe.indicator!=="[]/0"){x.type.is_variable(oe)?w.throw_error(x.error.instantiation(y.indicator)):w.throw_error(x.error.type("list",z,y.indicator));return}else{if(Z===w.session.standard_input||Z===w.session.standard_output){w.success(b);return}else Z===w.session.current_input?w.session.current_input=w.session.standard_input:Z===w.session.current_output&&(w.session.current_output=w.session.current_output);Z.alias!==null?delete w.session.streams[Z.alias]:delete w.session.streams[Z.id],Z.output&&Z.stream.flush();var Te=Z.stream.close();Z.stream=null,($.force===!0||Te===!0)&&w.success(b)}}},"flush_output/0":function(w,b,y){w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_output",[new De("S")]),new j("flush_output",[new De("S")])])),b.substitution,b)])},"flush_output/1":function(w,b,y){var F=y.args[0],z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(z)||z.stream===null?w.throw_error(x.error.existence("stream",F,y.indicator)):F.input===!0?w.throw_error(x.error.permission("output","stream",output,y.indicator)):(z.stream.flush(),w.success(b))},"stream_property/2":function(w,b,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_variable(F)&&(!x.type.is_stream(Z)||Z.stream===null))w.throw_error(x.error.existence("stream",F,y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_stream_property(z))w.throw_error(x.error.domain("stream_property",z,y.indicator));else{var $=[],oe=[];if(!x.type.is_variable(F))$.push(Z);else for(var xe in w.session.streams)$.push(w.session.streams[xe]);for(var Te=0;Te<$.length;Te++){var lt=[];$[Te].filename&<.push(new j("file_name",[new j($[Te].file_name,[])])),lt.push(new j("mode",[new j($[Te].mode,[])])),lt.push(new j($[Te].input?"input":"output",[])),$[Te].alias&<.push(new j("alias",[new j($[Te].alias,[])])),lt.push(new j("position",[typeof $[Te].position=="number"?new Re($[Te].position,!1):new j($[Te].position,[])])),lt.push(new j("end_of_stream",[new j($[Te].position==="end_of_stream"?"at":$[Te].position==="past_end_of_stream"?"past":"not",[])])),lt.push(new j("eof_action",[new j($[Te].eof_action,[])])),lt.push(new j("reposition",[new j($[Te].reposition?"true":"false",[])])),lt.push(new j("type",[new j($[Te].type,[])]));for(var It=0;It<lt.length;It++)oe.push(new Pe(b.goal.replace(new j(",",[new j("=",[x.type.is_variable(F)?F:Z,$[Te]]),new j("=",[z,lt[It]])])),b.substitution,b))}w.prepend(oe)}},"at_end_of_stream/0":function(w,b,y){w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_input",[new De("S")]),new j(",",[new j("stream_property",[new De("S"),new j("end_of_stream",[new De("E")])]),new j(",",[new j("!",[]),new j(";",[new j("=",[new De("E"),new j("at",[])]),new j("=",[new De("E"),new j("past",[])])])])])])),b.substitution,b)])},"at_end_of_stream/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("stream_property",[F,new j("end_of_stream",[new De("E")])]),new j(",",[new j("!",[]),new j(";",[new j("=",[new De("E"),new j("at",[])]),new j("=",[new De("E"),new j("past",[])])])])])),b.substitution,b)])},"set_stream_position/2":function(w,b,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(z)?w.throw_error(x.error.instantiation(y.indicator)):!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(Z)||Z.stream===null?w.throw_error(x.error.existence("stream",F,y.indicator)):x.type.is_stream_position(z)?Z.reposition===!1?w.throw_error(x.error.permission("reposition","stream",F,y.indicator)):(x.type.is_integer(z)?Z.position=z.value:Z.position=z.id,w.success(b)):w.throw_error(x.error.domain("stream_position",z,y.indicator))},"get_char/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_input",[new De("S")]),new j("get_char",[new De("S"),F])])),b.substitution,b)])},"get_char/2":function(w,b,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_character(z))w.throw_error(x.error.type("in_character",z,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(Z)||Z.stream===null)w.throw_error(x.error.existence("stream",F,y.indicator));else if(Z.output)w.throw_error(x.error.permission("input","stream",F,y.indicator));else if(Z.type==="binary")w.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if(Z.position==="past_end_of_stream"&&Z.eof_action==="error")w.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(Z.position==="end_of_stream")$="end_of_file",Z.position="past_end_of_stream";else{if($=Z.stream.get(1,Z.position),$===null){w.throw_error(x.error.representation("character",y.indicator));return}Z.position++}w.prepend([new Pe(b.goal.replace(new j("=",[new j($,[]),z])),b.substitution,b)])}},"get_code/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_input",[new De("S")]),new j("get_code",[new De("S"),F])])),b.substitution,b)])},"get_code/2":function(w,b,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_integer(z))w.throw_error(x.error.type("integer",char,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(Z)||Z.stream===null)w.throw_error(x.error.existence("stream",F,y.indicator));else if(Z.output)w.throw_error(x.error.permission("input","stream",F,y.indicator));else if(Z.type==="binary")w.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if(Z.position==="past_end_of_stream"&&Z.eof_action==="error")w.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(Z.position==="end_of_stream")$=-1,Z.position="past_end_of_stream";else{if($=Z.stream.get(1,Z.position),$===null){w.throw_error(x.error.representation("character",y.indicator));return}$=n($,0),Z.position++}w.prepend([new Pe(b.goal.replace(new j("=",[new Re($,!1),z])),b.substitution,b)])}},"peek_char/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_input",[new De("S")]),new j("peek_char",[new De("S"),F])])),b.substitution,b)])},"peek_char/2":function(w,b,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_character(z))w.throw_error(x.error.type("in_character",z,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(Z)||Z.stream===null)w.throw_error(x.error.existence("stream",F,y.indicator));else if(Z.output)w.throw_error(x.error.permission("input","stream",F,y.indicator));else if(Z.type==="binary")w.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if(Z.position==="past_end_of_stream"&&Z.eof_action==="error")w.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(Z.position==="end_of_stream")$="end_of_file",Z.position="past_end_of_stream";else if($=Z.stream.get(1,Z.position),$===null){w.throw_error(x.error.representation("character",y.indicator));return}w.prepend([new Pe(b.goal.replace(new j("=",[new j($,[]),z])),b.substitution,b)])}},"peek_code/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_input",[new De("S")]),new j("peek_code",[new De("S"),F])])),b.substitution,b)])},"peek_code/2":function(w,b,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_integer(z))w.throw_error(x.error.type("integer",char,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(Z)||Z.stream===null)w.throw_error(x.error.existence("stream",F,y.indicator));else if(Z.output)w.throw_error(x.error.permission("input","stream",F,y.indicator));else if(Z.type==="binary")w.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if(Z.position==="past_end_of_stream"&&Z.eof_action==="error")w.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(Z.position==="end_of_stream")$=-1,Z.position="past_end_of_stream";else{if($=Z.stream.get(1,Z.position),$===null){w.throw_error(x.error.representation("character",y.indicator));return}$=n($,0)}w.prepend([new Pe(b.goal.replace(new j("=",[new Re($,!1),z])),b.substitution,b)])}},"put_char/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_output",[new De("S")]),new j("put_char",[new De("S"),F])])),b.substitution,b)])},"put_char/2":function(w,b,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(z)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_character(z)?!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(Z)||Z.stream===null?w.throw_error(x.error.existence("stream",F,y.indicator)):Z.input?w.throw_error(x.error.permission("output","stream",F,y.indicator)):Z.type==="binary"?w.throw_error(x.error.permission("output","binary_stream",F,y.indicator)):Z.stream.put(z.id,Z.position)&&(typeof Z.position=="number"&&Z.position++,w.success(b)):w.throw_error(x.error.type("character",z,y.indicator))},"put_code/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_output",[new De("S")]),new j("put_code",[new De("S"),F])])),b.substitution,b)])},"put_code/2":function(w,b,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(z)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_integer(z)?x.type.is_character_code(z)?!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(Z)||Z.stream===null?w.throw_error(x.error.existence("stream",F,y.indicator)):Z.input?w.throw_error(x.error.permission("output","stream",F,y.indicator)):Z.type==="binary"?w.throw_error(x.error.permission("output","binary_stream",F,y.indicator)):Z.stream.put_char(c(z.value),Z.position)&&(typeof Z.position=="number"&&Z.position++,w.success(b)):w.throw_error(x.error.representation("character_code",y.indicator)):w.throw_error(x.error.type("integer",z,y.indicator))},"nl/0":function(w,b,y){w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_output",[new De("S")]),new j("put_char",[new De("S"),new j(` +`,[])])])),b.substitution,b)])},"nl/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j("put_char",[F,new j(` +`,[])])),b.substitution,b)])},"get_byte/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_input",[new De("S")]),new j("get_byte",[new De("S"),F])])),b.substitution,b)])},"get_byte/2":function(w,b,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_byte(z))w.throw_error(x.error.type("in_byte",char,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(Z)||Z.stream===null)w.throw_error(x.error.existence("stream",F,y.indicator));else if(Z.output)w.throw_error(x.error.permission("input","stream",F,y.indicator));else if(Z.type==="text")w.throw_error(x.error.permission("input","text_stream",F,y.indicator));else if(Z.position==="past_end_of_stream"&&Z.eof_action==="error")w.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(Z.position==="end_of_stream")$="end_of_file",Z.position="past_end_of_stream";else{if($=Z.stream.get_byte(Z.position),$===null){w.throw_error(x.error.representation("byte",y.indicator));return}Z.position++}w.prepend([new Pe(b.goal.replace(new j("=",[new Re($,!1),z])),b.substitution,b)])}},"peek_byte/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_input",[new De("S")]),new j("peek_byte",[new De("S"),F])])),b.substitution,b)])},"peek_byte/2":function(w,b,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_variable(z)&&!x.type.is_byte(z))w.throw_error(x.error.type("in_byte",char,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream(Z)||Z.stream===null)w.throw_error(x.error.existence("stream",F,y.indicator));else if(Z.output)w.throw_error(x.error.permission("input","stream",F,y.indicator));else if(Z.type==="text")w.throw_error(x.error.permission("input","text_stream",F,y.indicator));else if(Z.position==="past_end_of_stream"&&Z.eof_action==="error")w.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{var $;if(Z.position==="end_of_stream")$="end_of_file",Z.position="past_end_of_stream";else if($=Z.stream.get_byte(Z.position),$===null){w.throw_error(x.error.representation("byte",y.indicator));return}w.prepend([new Pe(b.goal.replace(new j("=",[new Re($,!1),z])),b.substitution,b)])}},"put_byte/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_output",[new De("S")]),new j("put_byte",[new De("S"),F])])),b.substitution,b)])},"put_byte/2":function(w,b,y){var F=y.args[0],z=y.args[1],Z=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(z)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_byte(z)?!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?w.throw_error(x.error.domain("stream_or_alias",F,y.indicator)):!x.type.is_stream(Z)||Z.stream===null?w.throw_error(x.error.existence("stream",F,y.indicator)):Z.input?w.throw_error(x.error.permission("output","stream",F,y.indicator)):Z.type==="text"?w.throw_error(x.error.permission("output","text_stream",F,y.indicator)):Z.stream.put_byte(z.value,Z.position)&&(typeof Z.position=="number"&&Z.position++,w.success(b)):w.throw_error(x.error.type("byte",z,y.indicator))},"read/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_input",[new De("S")]),new j("read_term",[new De("S"),F,new j("[]",[])])])),b.substitution,b)])},"read/2":function(w,b,y){var F=y.args[0],z=y.args[1];w.prepend([new Pe(b.goal.replace(new j("read_term",[F,z,new j("[]",[])])),b.substitution,b)])},"read_term/2":function(w,b,y){var F=y.args[0],z=y.args[1];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_input",[new De("S")]),new j("read_term",[new De("S"),F,z])])),b.substitution,b)])},"read_term/3":function(w,b,y){var F=y.args[0],z=y.args[1],Z=y.args[2],$=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F)||x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_list(Z))w.throw_error(x.error.type("list",Z,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream($)||$.stream===null)w.throw_error(x.error.existence("stream",F,y.indicator));else if($.output)w.throw_error(x.error.permission("input","stream",F,y.indicator));else if($.type==="binary")w.throw_error(x.error.permission("input","binary_stream",F,y.indicator));else if($.position==="past_end_of_stream"&&$.eof_action==="error")w.throw_error(x.error.permission("input","past_end_of_stream",F,y.indicator));else{for(var oe={},xe=Z,Te;x.type.is_term(xe)&&xe.indicator==="./2";){if(Te=xe.args[0],x.type.is_variable(Te)){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_read_option(Te)){w.throw_error(x.error.domain("read_option",Te,y.indicator));return}oe[Te.id]=Te.args[0],xe=xe.args[1]}if(xe.indicator!=="[]/0"){x.type.is_variable(xe)?w.throw_error(x.error.instantiation(y.indicator)):w.throw_error(x.error.type("list",Z,y.indicator));return}else{for(var lt,It,qt,ir="",Pt=[],gn=null;gn===null||gn.name!=="atom"||gn.value!=="."||qt.type===f&&x.flatten_error(new j("throw",[qt.value])).found==="token_not_found";){if(lt=$.stream.get(1,$.position),lt===null){w.throw_error(x.error.representation("character",y.indicator));return}if(lt==="end_of_file"||lt==="past_end_of_file"){qt?w.throw_error(x.error.syntax(Pt[qt.len-1],". or expression expected",!1)):w.throw_error(x.error.syntax(null,"token not found",!0));return}$.position++,ir+=lt,It=new U(w),It.new_text(ir),Pt=It.get_tokens(),gn=Pt!==null&&Pt.length>0?Pt[Pt.length-1]:null,Pt!==null&&(qt=W(w,Pt,0,w.__get_max_priority(),!1))}if(qt.type===p&&qt.len===Pt.length-1&&gn.value==="."){qt=qt.value.rename(w);var Pr=new j("=",[z,qt]);if(oe.variables){var Ir=g(s(ye(qt.variables()),function(Nr){return new De(Nr)}));Pr=new j(",",[Pr,new j("=",[oe.variables,Ir])])}if(oe.variable_names){var Ir=g(s(ye(qt.variables()),function(nn){var ai;for(ai in w.session.renamed_variables)if(w.session.renamed_variables.hasOwnProperty(ai)&&w.session.renamed_variables[ai]===nn)break;return new j("=",[new j(ai,[]),new De(nn)])}));Pr=new j(",",[Pr,new j("=",[oe.variable_names,Ir])])}if(oe.singletons){var Ir=g(s(new Ye(qt,null).singleton_variables(),function(nn){var ai;for(ai in w.session.renamed_variables)if(w.session.renamed_variables.hasOwnProperty(ai)&&w.session.renamed_variables[ai]===nn)break;return new j("=",[new j(ai,[]),new De(nn)])}));Pr=new j(",",[Pr,new j("=",[oe.singletons,Ir])])}w.prepend([new Pe(b.goal.replace(Pr),b.substitution,b)])}else qt.type===p?w.throw_error(x.error.syntax(Pt[qt.len],"unexpected token",!1)):w.throw_error(qt.value)}}},"write/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_output",[new De("S")]),new j("write",[new De("S"),F])])),b.substitution,b)])},"write/2":function(w,b,y){var F=y.args[0],z=y.args[1];w.prepend([new Pe(b.goal.replace(new j("write_term",[F,z,new j(".",[new j("quoted",[new j("false",[])]),new j(".",[new j("ignore_ops",[new j("false")]),new j(".",[new j("numbervars",[new j("true")]),new j("[]",[])])])])])),b.substitution,b)])},"writeq/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_output",[new De("S")]),new j("writeq",[new De("S"),F])])),b.substitution,b)])},"writeq/2":function(w,b,y){var F=y.args[0],z=y.args[1];w.prepend([new Pe(b.goal.replace(new j("write_term",[F,z,new j(".",[new j("quoted",[new j("true",[])]),new j(".",[new j("ignore_ops",[new j("false")]),new j(".",[new j("numbervars",[new j("true")]),new j("[]",[])])])])])),b.substitution,b)])},"write_canonical/1":function(w,b,y){var F=y.args[0];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_output",[new De("S")]),new j("write_canonical",[new De("S"),F])])),b.substitution,b)])},"write_canonical/2":function(w,b,y){var F=y.args[0],z=y.args[1];w.prepend([new Pe(b.goal.replace(new j("write_term",[F,z,new j(".",[new j("quoted",[new j("true",[])]),new j(".",[new j("ignore_ops",[new j("true")]),new j(".",[new j("numbervars",[new j("false")]),new j("[]",[])])])])])),b.substitution,b)])},"write_term/2":function(w,b,y){var F=y.args[0],z=y.args[1];w.prepend([new Pe(b.goal.replace(new j(",",[new j("current_output",[new De("S")]),new j("write_term",[new De("S"),F,z])])),b.substitution,b)])},"write_term/3":function(w,b,y){var F=y.args[0],z=y.args[1],Z=y.args[2],$=x.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(x.type.is_variable(F)||x.type.is_variable(Z))w.throw_error(x.error.instantiation(y.indicator));else if(!x.type.is_list(Z))w.throw_error(x.error.type("list",Z,y.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))w.throw_error(x.error.domain("stream_or_alias",F,y.indicator));else if(!x.type.is_stream($)||$.stream===null)w.throw_error(x.error.existence("stream",F,y.indicator));else if($.input)w.throw_error(x.error.permission("output","stream",F,y.indicator));else if($.type==="binary")w.throw_error(x.error.permission("output","binary_stream",F,y.indicator));else if($.position==="past_end_of_stream"&&$.eof_action==="error")w.throw_error(x.error.permission("output","past_end_of_stream",F,y.indicator));else{for(var oe={},xe=Z,Te;x.type.is_term(xe)&&xe.indicator==="./2";){if(Te=xe.args[0],x.type.is_variable(Te)){w.throw_error(x.error.instantiation(y.indicator));return}else if(!x.type.is_write_option(Te)){w.throw_error(x.error.domain("write_option",Te,y.indicator));return}oe[Te.id]=Te.args[0].id==="true",xe=xe.args[1]}if(xe.indicator!=="[]/0"){x.type.is_variable(xe)?w.throw_error(x.error.instantiation(y.indicator)):w.throw_error(x.error.type("list",Z,y.indicator));return}else{oe.session=w.session;var lt=z.toString(oe);$.stream.put(lt,$.position),typeof $.position=="number"&&($.position+=lt.length),w.success(b)}}},"halt/0":function(w,b,y){w.points=[]},"halt/1":function(w,b,y){var F=y.args[0];x.type.is_variable(F)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_integer(F)?w.points=[]:w.throw_error(x.error.type("integer",F,y.indicator))},"current_prolog_flag/2":function(w,b,y){var F=y.args[0],z=y.args[1];if(!x.type.is_variable(F)&&!x.type.is_atom(F))w.throw_error(x.error.type("atom",F,y.indicator));else if(!x.type.is_variable(F)&&!x.type.is_flag(F))w.throw_error(x.error.domain("prolog_flag",F,y.indicator));else{var Z=[];for(var $ in x.flag)if(x.flag.hasOwnProperty($)){var oe=new j(",",[new j("=",[new j($),F]),new j("=",[w.get_flag($),z])]);Z.push(new Pe(b.goal.replace(oe),b.substitution,b))}w.prepend(Z)}},"set_prolog_flag/2":function(w,b,y){var F=y.args[0],z=y.args[1];x.type.is_variable(F)||x.type.is_variable(z)?w.throw_error(x.error.instantiation(y.indicator)):x.type.is_atom(F)?x.type.is_flag(F)?x.type.is_value_flag(F,z)?x.type.is_modifiable_flag(F)?(w.session.flag[F.id]=z,w.success(b)):w.throw_error(x.error.permission("modify","flag",F)):w.throw_error(x.error.domain("flag_value",new j("+",[F,z]),y.indicator)):w.throw_error(x.error.domain("prolog_flag",F,y.indicator)):w.throw_error(x.error.type("atom",F,y.indicator))}},flag:{bounded:{allowed:[new j("true"),new j("false")],value:new j("true"),changeable:!1},max_integer:{allowed:[new Re(Number.MAX_SAFE_INTEGER)],value:new Re(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new Re(Number.MIN_SAFE_INTEGER)],value:new Re(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new j("down"),new j("toward_zero")],value:new j("toward_zero"),changeable:!1},char_conversion:{allowed:[new j("on"),new j("off")],value:new j("on"),changeable:!0},debug:{allowed:[new j("on"),new j("off")],value:new j("off"),changeable:!0},max_arity:{allowed:[new j("unbounded")],value:new j("unbounded"),changeable:!1},unknown:{allowed:[new j("error"),new j("fail"),new j("warning")],value:new j("error"),changeable:!0},double_quotes:{allowed:[new j("chars"),new j("codes"),new j("atom")],value:new j("codes"),changeable:!0},occurs_check:{allowed:[new j("false"),new j("true")],value:new j("false"),changeable:!0},dialect:{allowed:[new j("tau")],value:new j("tau"),changeable:!1},version_data:{allowed:[new j("tau",[new Re(t.major,!1),new Re(t.minor,!1),new Re(t.patch,!1),new j(t.status)])],value:new j("tau",[new Re(t.major,!1),new Re(t.minor,!1),new Re(t.patch,!1),new j(t.status)]),changeable:!1},nodejs:{allowed:[new j("yes"),new j("no")],value:new j(typeof tc<"u"&&tc.exports?"yes":"no"),changeable:!1}},unify:function(w,b,y){y=y===void 0?!1:y;for(var F=[{left:w,right:b}],z={};F.length!==0;){var Z=F.pop();if(w=Z.left,b=Z.right,x.type.is_term(w)&&x.type.is_term(b)){if(w.indicator!==b.indicator)return null;for(var $=0;$<w.args.length;$++)F.push({left:w.args[$],right:b.args[$]})}else if(x.type.is_number(w)&&x.type.is_number(b)){if(w.value!==b.value||w.is_float!==b.is_float)return null}else if(x.type.is_variable(w)){if(x.type.is_variable(b)&&w.id===b.id)continue;if(y===!0&&b.variables().indexOf(w.id)!==-1)return null;if(w.id!=="_"){var oe=new Ne;oe.add(w.id,b);for(var $=0;$<F.length;$++)F[$].left=F[$].left.apply(oe),F[$].right=F[$].right.apply(oe);for(var $ in z)z[$]=z[$].apply(oe);z[w.id]=b}}else if(x.type.is_variable(b))F.push({left:b,right:w});else if(w.unify!==void 0){if(!w.unify(b))return null}else return null}return new Ne(z)},compare:function(w,b){var y=x.type.compare(w,b);return y!==0?y:w.compare(b)},arithmetic_compare:function(w,b,y){var F=b.interpret(w);if(x.type.is_number(F)){var z=y.interpret(w);return x.type.is_number(z)?F.value<z.value?-1:F.value>z.value?1:0:z}else return F},operate:function(w,b){if(x.type.is_operator(b)){for(var y=x.type.is_operator(b),F=[],z,Z=!1,$=0;$<b.args.length;$++){if(z=b.args[$].interpret(w),x.type.is_number(z)){if(y.type_args!==null&&z.is_float!==y.type_args)return x.error.type(y.type_args?"float":"integer",z,w.__call_indicator);F.push(z.value)}else return z;Z=Z||z.is_float}return F.push(w),z=x.arithmetic.evaluation[b.indicator].fn.apply(this,F),Z=y.type_result===null?Z:y.type_result,x.type.is_term(z)?z:z===Number.POSITIVE_INFINITY||z===Number.NEGATIVE_INFINITY?x.error.evaluation("overflow",w.__call_indicator):Z===!1&&w.get_flag("bounded").id==="true"&&(z>w.get_flag("max_integer").value||z<w.get_flag("min_integer").value)?x.error.evaluation("int_overflow",w.__call_indicator):new Re(z,Z)}else return x.error.type("evaluable",b.indicator,w.__call_indicator)},error:{existence:function(w,b,y){return typeof b=="string"&&(b=X(b)),new j("error",[new j("existence_error",[new j(w),b]),X(y)])},type:function(w,b,y){return new j("error",[new j("type_error",[new j(w),b]),X(y)])},instantiation:function(w){return new j("error",[new j("instantiation_error"),X(w)])},domain:function(w,b,y){return new j("error",[new j("domain_error",[new j(w),b]),X(y)])},representation:function(w,b){return new j("error",[new j("representation_error",[new j(w)]),X(b)])},permission:function(w,b,y,F){return new j("error",[new j("permission_error",[new j(w),new j(b),y]),X(F)])},evaluation:function(w,b){return new j("error",[new j("evaluation_error",[new j(w)]),X(b)])},syntax:function(w,b,y){w=w||{value:"",line:0,column:0,matches:[""],start:0};var F=y&&w.matches.length>0?w.start+w.matches[0].length:w.start,z=y?new j("token_not_found"):new j("found",[new j(w.value.toString())]),Z=new j(".",[new j("line",[new Re(w.line+1)]),new j(".",[new j("column",[new Re(F+1)]),new j(".",[z,new j("[]",[])])])]);return new j("error",[new j("syntax_error",[new j(b)]),Z])},syntax_by_predicate:function(w,b){return new j("error",[new j("syntax_error",[new j(w)]),X(b)])}},warning:{singleton:function(w,b,y){for(var F=new j("[]"),z=w.length-1;z>=0;z--)F=new j(".",[new De(w[z]),F]);return new j("warning",[new j("singleton_variables",[F,X(b)]),new j(".",[new j("line",[new Re(y,!1)]),new j("[]")])])},failed_goal:function(w,b){return new j("warning",[new j("failed_goal",[w]),new j(".",[new j("line",[new Re(b,!1)]),new j("[]")])])}},format_variable:function(w){return"_"+w},format_answer:function(w,b,F){b instanceof ke&&(b=b.thread);var F=F||{};if(F.session=b?b.session:void 0,x.type.is_error(w))return"uncaught exception: "+w.args[0].toString();if(w===!1)return"false.";if(w===null)return"limit exceeded ;";var z=0,Z="";if(x.type.is_substitution(w)){var $=w.domain(!0);w=w.filter(function(Te,lt){return!x.type.is_variable(lt)||$.indexOf(lt.id)!==-1&&Te!==lt.id})}for(var oe in w.links)w.links.hasOwnProperty(oe)&&(z++,Z!==""&&(Z+=", "),Z+=oe.toString(F)+" = "+w.links[oe].toString(F));var xe=typeof b>"u"||b.points.length>0?" ;":".";return z===0?"true"+xe:Z+xe},flatten_error:function(w){if(!x.type.is_error(w))return null;w=w.args[0];var b={};return b.type=w.args[0].id,b.thrown=b.type==="syntax_error"?null:w.args[1].id,b.expected=null,b.found=null,b.representation=null,b.existence=null,b.existence_type=null,b.line=null,b.column=null,b.permission_operation=null,b.permission_type=null,b.evaluation_type=null,b.type==="type_error"||b.type==="domain_error"?(b.expected=w.args[0].args[0].id,b.found=w.args[0].args[1].toString()):b.type==="syntax_error"?w.args[1].indicator==="./2"?(b.expected=w.args[0].args[0].id,b.found=w.args[1].args[1].args[1].args[0],b.found=b.found.id==="token_not_found"?b.found.id:b.found.args[0].id,b.line=w.args[1].args[0].args[0].value,b.column=w.args[1].args[1].args[0].args[0].value):b.thrown=w.args[1].id:b.type==="permission_error"?(b.found=w.args[0].args[2].toString(),b.permission_operation=w.args[0].args[0].id,b.permission_type=w.args[0].args[1].id):b.type==="evaluation_error"?b.evaluation_type=w.args[0].args[0].id:b.type==="representation_error"?b.representation=w.args[0].args[0].id:b.type==="existence_error"&&(b.existence=w.args[0].args[1].toString(),b.existence_type=w.args[0].args[0].id),b},create:function(w){return new x.type.Session(w)}};typeof tc<"u"?tc.exports=x:window.pl=x})()});function nve(t,e,r){t.prepend(r.map(s=>new gl.default.type.State(e.goal.replace(s),e.substitution,e)))}function f9(t){let e=sve.get(t.session);if(e==null)throw new Error("Assertion failed: A project should have been registered for the active session");return e}function ove(t,e){sve.set(t,e),t.consult(`:- use_module(library(${OSt.id})).`)}var A9,gl,ive,V0,FSt,NSt,sve,OSt,ave=Ct(()=>{Ve();A9=et(aS()),gl=et(u9()),ive=et(Ie("vm")),{is_atom:V0,is_variable:FSt,is_instantiated_list:NSt}=gl.default.type;sve=new WeakMap;OSt=new gl.default.type.Module("constraints",{"project_workspaces_by_descriptor/3":(t,e,r)=>{let[s,a,n]=r.args;if(!V0(s)||!V0(a)){t.throw_error(gl.default.error.instantiation(r.indicator));return}let c=q.parseIdent(s.id),f=q.makeDescriptor(c,a.id),h=f9(t).tryWorkspaceByDescriptor(f);FSt(n)&&h!==null&&nve(t,e,[new gl.default.type.Term("=",[n,new gl.default.type.Term(String(h.relativeCwd))])]),V0(n)&&h!==null&&h.relativeCwd===n.id&&t.success(e)},"workspace_field/3":(t,e,r)=>{let[s,a,n]=r.args;if(!V0(s)||!V0(a)){t.throw_error(gl.default.error.instantiation(r.indicator));return}let f=f9(t).tryWorkspaceByCwd(s.id);if(f==null)return;let p=(0,A9.default)(f.manifest.raw,a.id);typeof p>"u"||nve(t,e,[new gl.default.type.Term("=",[n,new gl.default.type.Term(typeof p=="object"?JSON.stringify(p):p)])])},"workspace_field_test/3":(t,e,r)=>{let[s,a,n]=r.args;t.prepend([new gl.default.type.State(e.goal.replace(new gl.default.type.Term("workspace_field_test",[s,a,n,new gl.default.type.Term("[]",[])])),e.substitution,e)])},"workspace_field_test/4":(t,e,r)=>{let[s,a,n,c]=r.args;if(!V0(s)||!V0(a)||!V0(n)||!NSt(c)){t.throw_error(gl.default.error.instantiation(r.indicator));return}let p=f9(t).tryWorkspaceByCwd(s.id);if(p==null)return;let h=(0,A9.default)(p.manifest.raw,a.id);if(typeof h>"u")return;let E={$$:h};for(let[S,P]of c.toJavaScript().entries())E[`$${S}`]=P;ive.default.runInNewContext(n.id,E)&&t.success(e)}},["project_workspaces_by_descriptor/3","workspace_field/3","workspace_field_test/3","workspace_field_test/4"])});var yS={};Vt(yS,{Constraints:()=>h9,DependencyType:()=>fve});function yo(t){if(t instanceof JC.default.type.Num)return t.value;if(t instanceof JC.default.type.Term)switch(t.indicator){case"throw/1":return yo(t.args[0]);case"error/1":return yo(t.args[0]);case"error/2":if(t.args[0]instanceof JC.default.type.Term&&t.args[0].indicator==="syntax_error/1")return Object.assign(yo(t.args[0]),...yo(t.args[1]));{let e=yo(t.args[0]);return e.message+=` (in ${yo(t.args[1])})`,e}case"syntax_error/1":return new Yt(43,`Syntax error: ${yo(t.args[0])}`);case"existence_error/2":return new Yt(44,`Existence error: ${yo(t.args[0])} ${yo(t.args[1])} not found`);case"instantiation_error/0":return new Yt(75,"Instantiation error: an argument is variable when an instantiated argument was expected");case"line/1":return{line:yo(t.args[0])};case"column/1":return{column:yo(t.args[0])};case"found/1":return{found:yo(t.args[0])};case"./2":return[yo(t.args[0])].concat(yo(t.args[1]));case"//2":return`${yo(t.args[0])}/${yo(t.args[1])}`;default:return t.id}throw`couldn't pretty print because of unsupported node ${t}`}function cve(t){let e;try{e=yo(t)}catch(r){throw typeof r=="string"?new Yt(42,`Unknown error: ${t} (note: ${r})`):r}return typeof e.line<"u"&&typeof e.column<"u"&&(e.message+=` at line ${e.line}, column ${e.column}`),e}function bm(t){return t.id==="null"?null:`${t.toJavaScript()}`}function LSt(t){if(t.id==="null")return null;{let e=t.toJavaScript();if(typeof e!="string")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return JSON.stringify(e)}}}function K0(t){return typeof t=="string"?`'${t}'`:"[]"}var uve,JC,fve,lve,p9,h9,ES=Ct(()=>{Ve();Ve();bt();uve=et(HBe()),JC=et(u9());gS();ave();(0,uve.default)(JC.default);fve=(s=>(s.Dependencies="dependencies",s.DevDependencies="devDependencies",s.PeerDependencies="peerDependencies",s))(fve||{}),lve=["dependencies","devDependencies","peerDependencies"];p9=class{constructor(e,r){let s=1e3*e.workspaces.length;this.session=JC.default.create(s),ove(this.session,e),this.session.consult(":- use_module(library(lists))."),this.session.consult(r)}fetchNextAnswer(){return new Promise(e=>{this.session.answer(r=>{e(r)})})}async*makeQuery(e){let r=this.session.query(e);if(r!==!0)throw cve(r);for(;;){let s=await this.fetchNextAnswer();if(s===null)throw new Yt(79,"Resolution limit exceeded");if(!s)break;if(s.id==="throw")throw cve(s);yield s}}};h9=class t{constructor(e){this.source="";this.project=e;let r=e.configuration.get("constraintsPath");le.existsSync(r)&&(this.source=le.readFileSync(r,"utf8"))}static async find(e){return new t(e)}getProjectDatabase(){let e="";for(let r of lve)e+=`dependency_type(${r}). +`;for(let r of this.project.workspacesByCwd.values()){let s=r.relativeCwd;e+=`workspace(${K0(s)}). +`,e+=`workspace_ident(${K0(s)}, ${K0(q.stringifyIdent(r.anchoredLocator))}). +`,e+=`workspace_version(${K0(s)}, ${K0(r.manifest.version)}). +`;for(let a of lve)for(let n of r.manifest[a].values())e+=`workspace_has_dependency(${K0(s)}, ${K0(q.stringifyIdent(n))}, ${K0(n.range)}, ${a}). +`}return e+=`workspace(_) :- false. +`,e+=`workspace_ident(_, _) :- false. +`,e+=`workspace_version(_, _) :- false. +`,e+=`workspace_has_dependency(_, _, _, _) :- false. +`,e}getDeclarations(){let e="";return e+=`gen_enforced_dependency(_, _, _, _) :- false. +`,e+=`gen_enforced_field(_, _, _) :- false. +`,e}get fullSource(){return`${this.getProjectDatabase()} +${this.source} +${this.getDeclarations()}`}createSession(){return new p9(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),s=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:c,dependencyType:f}of e){let p=hS([f,q.stringifyIdent(n)]),h=je.getMapWithDefault(s,a.cwd);je.getMapWithDefault(h,p).set(c??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:c}of r){let f=hS(n),p=je.getMapWithDefault(s,a.cwd);je.getMapWithDefault(p,f).set(JSON.parse(c)??void 0,new Set)}return{manifestUpdates:s,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let s of e.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=K.resolve(this.project.cwd,bm(s.links.WorkspaceCwd)),n=bm(s.links.DependencyIdent),c=bm(s.links.DependencyRange),f=bm(s.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let p=this.project.getWorkspaceByCwd(a),h=q.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:c,dependencyType:f})}return je.sortMap(r,[({dependencyRange:s})=>s!==null?"0":"1",({workspace:s})=>q.stringifyIdent(s.anchoredLocator),({dependencyIdent:s})=>q.stringifyIdent(s)])}async genEnforcedFields(e){let r=[];for await(let s of e.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=K.resolve(this.project.cwd,bm(s.links.WorkspaceCwd)),n=bm(s.links.FieldPath),c=LSt(s.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let f=this.project.getWorkspaceByCwd(a);r.push({workspace:f,fieldPath:n,fieldValue:c})}return je.sortMap(r,[({workspace:s})=>q.stringifyIdent(s.anchoredLocator),({fieldPath:s})=>s])}async*query(e){let r=this.createSession();for await(let s of r.makeQuery(e)){let a={};for(let[n,c]of Object.entries(s.links))n!=="_"&&(a[n]=bm(c));yield a}}}});var Ive=L(pF=>{"use strict";Object.defineProperty(pF,"__esModule",{value:!0});function NS(t){let e=[...t.caches],r=e.shift();return r===void 0?Eve():{get(s,a,n={miss:()=>Promise.resolve()}){return r.get(s,a,n).catch(()=>NS({caches:e}).get(s,a,n))},set(s,a){return r.set(s,a).catch(()=>NS({caches:e}).set(s,a))},delete(s){return r.delete(s).catch(()=>NS({caches:e}).delete(s))},clear(){return r.clear().catch(()=>NS({caches:e}).clear())}}}function Eve(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}pF.createFallbackableCache=NS;pF.createNullCache=Eve});var wve=L((Apr,Cve)=>{Cve.exports=Ive()});var Bve=L(P9=>{"use strict";Object.defineProperty(P9,"__esModule",{value:!0});function rDt(t={serializable:!0}){let e={};return{get(r,s,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let c=s(),f=a&&a.miss||(()=>Promise.resolve());return c.then(p=>f(p)).then(()=>c)},set(r,s){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(s):s,Promise.resolve(s)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}P9.createInMemoryCache=rDt});var Sve=L((hpr,vve)=>{vve.exports=Bve()});var bve=L(ef=>{"use strict";Object.defineProperty(ef,"__esModule",{value:!0});function nDt(t,e,r){let s={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return t===x9.WithinHeaders?s:{}},queryParameters(){return t===x9.WithinQueryParameters?s:{}}}}function iDt(t){let e=0,r=()=>(e++,new Promise(s=>{setTimeout(()=>{s(t(r))},Math.min(100*e,1e3))}));return t(r)}function Dve(t,e=(r,s)=>Promise.resolve()){return Object.assign(t,{wait(r){return Dve(t.then(s=>Promise.all([e(s,r),s])).then(s=>s[1]))}})}function sDt(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),s=t[e];t[e]=t[r],t[r]=s}return t}function oDt(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function aDt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var lDt="4.22.1",cDt=t=>()=>t.transporter.requester.destroy(),x9={WithinQueryParameters:0,WithinHeaders:1};ef.AuthMode=x9;ef.addMethods=oDt;ef.createAuth=nDt;ef.createRetryablePromise=iDt;ef.createWaitablePromise=Dve;ef.destroy=cDt;ef.encode=aDt;ef.shuffle=sDt;ef.version=lDt});var OS=L((dpr,Pve)=>{Pve.exports=bve()});var xve=L(k9=>{"use strict";Object.defineProperty(k9,"__esModule",{value:!0});var uDt={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};k9.MethodEnum=uDt});var LS=L((ypr,kve)=>{kve.exports=xve()});var Wve=L(Vi=>{"use strict";Object.defineProperty(Vi,"__esModule",{value:!0});var Tve=LS();function Q9(t,e){let r=t||{},s=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(s[a]=r[a])}),{data:Object.entries(s).length>0?s:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var MS={Read:1,Write:2,Any:3},sw={Up:1,Down:2,Timeouted:3},Rve=2*60*1e3;function R9(t,e=sw.Up){return{...t,status:e,lastUpdate:Date.now()}}function Fve(t){return t.status===sw.Up||Date.now()-t.lastUpdate>Rve}function Nve(t){return t.status===sw.Timeouted&&Date.now()-t.lastUpdate<=Rve}function F9(t){return typeof t=="string"?{protocol:"https",url:t,accept:MS.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||MS.Any}}function fDt(t,e){return Promise.all(e.map(r=>t.get(r,()=>Promise.resolve(R9(r))))).then(r=>{let s=r.filter(f=>Fve(f)),a=r.filter(f=>Nve(f)),n=[...s,...a],c=n.length>0?n.map(f=>F9(f)):e;return{getTimeout(f,p){return(a.length===0&&f===0?1:a.length+3+f)*p},statelessHosts:c}})}var ADt=({isTimedOut:t,status:e})=>!t&&~~e===0,pDt=t=>{let e=t.status;return t.isTimedOut||ADt(t)||~~(e/100)!==2&&~~(e/100)!==4},hDt=({status:t})=>~~(t/100)===2,gDt=(t,e)=>pDt(t)?e.onRetry(t):hDt(t)?e.onSuccess(t):e.onFail(t);function Qve(t,e,r,s){let a=[],n=Uve(r,s),c=Hve(t,s),f=r.method,p=r.method!==Tve.MethodEnum.Get?{}:{...r.data,...s.data},h={"x-algolia-agent":t.userAgent.value,...t.queryParameters,...p,...s.queryParameters},E=0,C=(S,P)=>{let I=S.pop();if(I===void 0)throw Gve(T9(a));let R={data:n,headers:c,method:f,url:Mve(I,r.path,h),connectTimeout:P(E,t.timeouts.connect),responseTimeout:P(E,s.timeout)},N=W=>{let te={request:R,response:W,host:I,triesLeft:S.length};return a.push(te),te},U={onSuccess:W=>Ove(W),onRetry(W){let te=N(W);return W.isTimedOut&&E++,Promise.all([t.logger.info("Retryable failure",N9(te)),t.hostsCache.set(I,R9(I,W.isTimedOut?sw.Timeouted:sw.Down))]).then(()=>C(S,P))},onFail(W){throw N(W),Lve(W,T9(a))}};return t.requester.send(R).then(W=>gDt(W,U))};return fDt(t.hostsCache,e).then(S=>C([...S.statelessHosts].reverse(),S.getTimeout))}function dDt(t){let{hostsCache:e,logger:r,requester:s,requestsCache:a,responsesCache:n,timeouts:c,userAgent:f,hosts:p,queryParameters:h,headers:E}=t,C={hostsCache:e,logger:r,requester:s,requestsCache:a,responsesCache:n,timeouts:c,userAgent:f,headers:E,queryParameters:h,hosts:p.map(S=>F9(S)),read(S,P){let I=Q9(P,C.timeouts.read),R=()=>Qve(C,C.hosts.filter(W=>(W.accept&MS.Read)!==0),S,I);if((I.cacheable!==void 0?I.cacheable:S.cacheable)!==!0)return R();let U={request:S,mappedRequestOptions:I,transporter:{queryParameters:C.queryParameters,headers:C.headers}};return C.responsesCache.get(U,()=>C.requestsCache.get(U,()=>C.requestsCache.set(U,R()).then(W=>Promise.all([C.requestsCache.delete(U),W]),W=>Promise.all([C.requestsCache.delete(U),Promise.reject(W)])).then(([W,te])=>te)),{miss:W=>C.responsesCache.set(U,W)})},write(S,P){return Qve(C,C.hosts.filter(I=>(I.accept&MS.Write)!==0),S,Q9(P,C.timeouts.write))}};return C}function mDt(t){let e={value:`Algolia for JavaScript (${t})`,add(r){let s=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return e.value.indexOf(s)===-1&&(e.value=`${e.value}${s}`),e}};return e}function Ove(t){try{return JSON.parse(t.content)}catch(e){throw qve(e.message,t)}}function Lve({content:t,status:e},r){let s=t;try{s=JSON.parse(t).message}catch{}return jve(s,e,r)}function yDt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}function Mve(t,e,r){let s=_ve(r),a=`${t.protocol}://${t.url}/${e.charAt(0)==="/"?e.substr(1):e}`;return s.length&&(a+=`?${s}`),a}function _ve(t){let e=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(t).map(r=>yDt("%s=%s",r,e(t[r])?JSON.stringify(t[r]):t[r])).join("&")}function Uve(t,e){if(t.method===Tve.MethodEnum.Get||t.data===void 0&&e.data===void 0)return;let r=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(r)}function Hve(t,e){let r={...t.headers,...e.headers},s={};return Object.keys(r).forEach(a=>{let n=r[a];s[a.toLowerCase()]=n}),s}function T9(t){return t.map(e=>N9(e))}function N9(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function jve(t,e,r){return{name:"ApiError",message:t,status:e,transporterStackTrace:r}}function qve(t,e){return{name:"DeserializationError",message:t,response:e}}function Gve(t){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:t}}Vi.CallEnum=MS;Vi.HostStatusEnum=sw;Vi.createApiError=jve;Vi.createDeserializationError=qve;Vi.createMappedRequestOptions=Q9;Vi.createRetryError=Gve;Vi.createStatefulHost=R9;Vi.createStatelessHost=F9;Vi.createTransporter=dDt;Vi.createUserAgent=mDt;Vi.deserializeFailure=Lve;Vi.deserializeSuccess=Ove;Vi.isStatefulHostTimeouted=Nve;Vi.isStatefulHostUp=Fve;Vi.serializeData=Uve;Vi.serializeHeaders=Hve;Vi.serializeQueryParameters=_ve;Vi.serializeUrl=Mve;Vi.stackFrameWithoutCredentials=N9;Vi.stackTraceWithoutCredentials=T9});var _S=L((Ipr,Yve)=>{Yve.exports=Wve()});var Vve=L(z0=>{"use strict";Object.defineProperty(z0,"__esModule",{value:!0});var ow=OS(),EDt=_S(),US=LS(),IDt=t=>{let e=t.region||"us",r=ow.createAuth(ow.AuthMode.WithinHeaders,t.appId,t.apiKey),s=EDt.createTransporter({hosts:[{url:`analytics.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a=t.appId;return ow.addMethods({appId:a,transporter:s},t.methods)},CDt=t=>(e,r)=>t.transporter.write({method:US.MethodEnum.Post,path:"2/abtests",data:e},r),wDt=t=>(e,r)=>t.transporter.write({method:US.MethodEnum.Delete,path:ow.encode("2/abtests/%s",e)},r),BDt=t=>(e,r)=>t.transporter.read({method:US.MethodEnum.Get,path:ow.encode("2/abtests/%s",e)},r),vDt=t=>e=>t.transporter.read({method:US.MethodEnum.Get,path:"2/abtests"},e),SDt=t=>(e,r)=>t.transporter.write({method:US.MethodEnum.Post,path:ow.encode("2/abtests/%s/stop",e)},r);z0.addABTest=CDt;z0.createAnalyticsClient=IDt;z0.deleteABTest=wDt;z0.getABTest=BDt;z0.getABTests=vDt;z0.stopABTest=SDt});var Jve=L((wpr,Kve)=>{Kve.exports=Vve()});var Zve=L(HS=>{"use strict";Object.defineProperty(HS,"__esModule",{value:!0});var O9=OS(),DDt=_S(),zve=LS(),bDt=t=>{let e=t.region||"us",r=O9.createAuth(O9.AuthMode.WithinHeaders,t.appId,t.apiKey),s=DDt.createTransporter({hosts:[{url:`personalization.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}});return O9.addMethods({appId:t.appId,transporter:s},t.methods)},PDt=t=>e=>t.transporter.read({method:zve.MethodEnum.Get,path:"1/strategies/personalization"},e),xDt=t=>(e,r)=>t.transporter.write({method:zve.MethodEnum.Post,path:"1/strategies/personalization",data:e},r);HS.createPersonalizationClient=bDt;HS.getPersonalizationStrategy=PDt;HS.setPersonalizationStrategy=xDt});var $ve=L((vpr,Xve)=>{Xve.exports=Zve()});var pSe=L(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});var Kt=OS(),dl=_S(),br=LS(),kDt=Ie("crypto");function hF(t){let e=r=>t.request(r).then(s=>{if(t.batch!==void 0&&t.batch(s.hits),!t.shouldStop(s))return s.cursor?e({cursor:s.cursor}):e({page:(r.page||0)+1})});return e({})}var QDt=t=>{let e=t.appId,r=Kt.createAuth(t.authMode!==void 0?t.authMode:Kt.AuthMode.WithinHeaders,e,t.apiKey),s=dl.createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:dl.CallEnum.Read},{url:`${e}.algolia.net`,accept:dl.CallEnum.Write}].concat(Kt.shuffle([{url:`${e}-1.algolianet.com`},{url:`${e}-2.algolianet.com`},{url:`${e}-3.algolianet.com`}])),...t,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a={transporter:s,appId:e,addAlgoliaAgent(n,c){s.userAgent.add({segment:n,version:c})},clearCache(){return Promise.all([s.requestsCache.clear(),s.responsesCache.clear()]).then(()=>{})}};return Kt.addMethods(a,t.methods)};function eSe(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function tSe(){return{name:"ObjectNotFoundError",message:"Object not found."}}function rSe(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var TDt=t=>(e,r)=>{let{queryParameters:s,...a}=r||{},n={acl:e,...s!==void 0?{queryParameters:s}:{}},c=(f,p)=>Kt.createRetryablePromise(h=>jS(t)(f.key,p).catch(E=>{if(E.status!==404)throw E;return h()}));return Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:"1/keys",data:n},a),c)},RDt=t=>(e,r,s)=>{let a=dl.createMappedRequestOptions(s);return a.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:br.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},FDt=t=>(e,r,s)=>t.transporter.write({method:br.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:e,cluster:r}},s),NDt=t=>(e,r)=>Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(s,a)=>aw(t)(s.taskID,a)),gF=t=>(e,r,s)=>{let a=(n,c)=>qS(t)(e,{methods:{waitTask:ds}}).waitTask(n.taskID,c);return Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/operation",e),data:{operation:"copy",destination:r}},s),a)},ODt=t=>(e,r,s)=>gF(t)(e,r,{...s,scope:[mF.Rules]}),LDt=t=>(e,r,s)=>gF(t)(e,r,{...s,scope:[mF.Settings]}),MDt=t=>(e,r,s)=>gF(t)(e,r,{...s,scope:[mF.Synonyms]}),_Dt=t=>(e,r)=>e.method===br.MethodEnum.Get?t.transporter.read(e,r):t.transporter.write(e,r),UDt=t=>(e,r)=>{let s=(a,n)=>Kt.createRetryablePromise(c=>jS(t)(e,n).then(c).catch(f=>{if(f.status!==404)throw f}));return Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Delete,path:Kt.encode("1/keys/%s",e)},r),s)},HDt=t=>(e,r,s)=>{let a=r.map(n=>({action:"deleteEntry",body:{objectID:n}}));return Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},s),(n,c)=>aw(t)(n.taskID,c))},jDt=()=>(t,e)=>{let r=dl.serializeQueryParameters(e),s=kDt.createHmac("sha256",t).update(r).digest("hex");return Buffer.from(s+r).toString("base64")},jS=t=>(e,r)=>t.transporter.read({method:br.MethodEnum.Get,path:Kt.encode("1/keys/%s",e)},r),nSe=t=>(e,r)=>t.transporter.read({method:br.MethodEnum.Get,path:Kt.encode("1/task/%s",e.toString())},r),qDt=t=>e=>t.transporter.read({method:br.MethodEnum.Get,path:"/1/dictionaries/*/settings"},e),GDt=t=>e=>t.transporter.read({method:br.MethodEnum.Get,path:"1/logs"},e),WDt=()=>t=>{let e=Buffer.from(t,"base64").toString("ascii"),r=/validUntil=(\d+)/,s=e.match(r);if(s===null)throw rSe();return parseInt(s[1],10)-Math.round(new Date().getTime()/1e3)},YDt=t=>e=>t.transporter.read({method:br.MethodEnum.Get,path:"1/clusters/mapping/top"},e),VDt=t=>(e,r)=>t.transporter.read({method:br.MethodEnum.Get,path:Kt.encode("1/clusters/mapping/%s",e)},r),KDt=t=>e=>{let{retrieveMappings:r,...s}=e||{};return r===!0&&(s.getClusters=!0),t.transporter.read({method:br.MethodEnum.Get,path:"1/clusters/mapping/pending"},s)},qS=t=>(e,r={})=>{let s={transporter:t.transporter,appId:t.appId,indexName:e};return Kt.addMethods(s,r.methods)},JDt=t=>e=>t.transporter.read({method:br.MethodEnum.Get,path:"1/keys"},e),zDt=t=>e=>t.transporter.read({method:br.MethodEnum.Get,path:"1/clusters"},e),ZDt=t=>e=>t.transporter.read({method:br.MethodEnum.Get,path:"1/indexes"},e),XDt=t=>e=>t.transporter.read({method:br.MethodEnum.Get,path:"1/clusters/mapping"},e),$Dt=t=>(e,r,s)=>{let a=(n,c)=>qS(t)(e,{methods:{waitTask:ds}}).waitTask(n.taskID,c);return Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/operation",e),data:{operation:"move",destination:r}},s),a)},ebt=t=>(e,r)=>{let s=(a,n)=>Promise.all(Object.keys(a.taskID).map(c=>qS(t)(c,{methods:{waitTask:ds}}).waitTask(a.taskID[c],n)));return Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:e}},r),s)},tbt=t=>(e,r)=>t.transporter.read({method:br.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:e}},r),rbt=t=>(e,r)=>{let s=e.map(a=>({...a,params:dl.serializeQueryParameters(a.params||{})}));return t.transporter.read({method:br.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:s},cacheable:!0},r)},nbt=t=>(e,r)=>Promise.all(e.map(s=>{let{facetName:a,facetQuery:n,...c}=s.params;return qS(t)(s.indexName,{methods:{searchForFacetValues:uSe}}).searchForFacetValues(a,n,{...r,...c})})),ibt=t=>(e,r)=>{let s=dl.createMappedRequestOptions(r);return s.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:br.MethodEnum.Delete,path:"1/clusters/mapping"},s)},sbt=t=>(e,r,s)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:a}},s),(n,c)=>aw(t)(n.taskID,c))},obt=t=>(e,r)=>{let s=(a,n)=>Kt.createRetryablePromise(c=>jS(t)(e,n).catch(f=>{if(f.status!==404)throw f;return c()}));return Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("1/keys/%s/restore",e)},r),s)},abt=t=>(e,r,s)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},s),(n,c)=>aw(t)(n.taskID,c))},lbt=t=>(e,r,s)=>t.transporter.read({method:br.MethodEnum.Post,path:Kt.encode("/1/dictionaries/%s/search",e),data:{query:r},cacheable:!0},s),cbt=t=>(e,r)=>t.transporter.read({method:br.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:e}},r),ubt=t=>(e,r)=>Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:e},r),(s,a)=>aw(t)(s.taskID,a)),fbt=t=>(e,r)=>{let s=Object.assign({},r),{queryParameters:a,...n}=r||{},c=a?{queryParameters:a}:{},f=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],p=E=>Object.keys(s).filter(C=>f.indexOf(C)!==-1).every(C=>{if(Array.isArray(E[C])&&Array.isArray(s[C])){let S=E[C];return S.length===s[C].length&&S.every((P,I)=>P===s[C][I])}else return E[C]===s[C]}),h=(E,C)=>Kt.createRetryablePromise(S=>jS(t)(e,C).then(P=>p(P)?Promise.resolve():S()));return Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Put,path:Kt.encode("1/keys/%s",e),data:c},n),h)},aw=t=>(e,r)=>Kt.createRetryablePromise(s=>nSe(t)(e,r).then(a=>a.status!=="published"?s():void 0)),iSe=t=>(e,r)=>{let s=(a,n)=>ds(t)(a.taskID,n);return Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/batch",t.indexName),data:{requests:e}},r),s)},Abt=t=>e=>hF({shouldStop:r=>r.cursor===void 0,...e,request:r=>t.transporter.read({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/browse",t.indexName),data:r},e)}),pbt=t=>e=>{let r={hitsPerPage:1e3,...e};return hF({shouldStop:s=>s.hits.length<r.hitsPerPage,...r,request(s){return fSe(t)("",{...r,...s}).then(a=>({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},hbt=t=>e=>{let r={hitsPerPage:1e3,...e};return hF({shouldStop:s=>s.hits.length<r.hitsPerPage,...r,request(s){return ASe(t)("",{...r,...s}).then(a=>({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},dF=t=>(e,r,s)=>{let{batchSize:a,...n}=s||{},c={taskIDs:[],objectIDs:[]},f=(p=0)=>{let h=[],E;for(E=p;E<e.length&&(h.push(e[E]),h.length!==(a||1e3));E++);return h.length===0?Promise.resolve(c):iSe(t)(h.map(C=>({action:r,body:C})),n).then(C=>(c.objectIDs=c.objectIDs.concat(C.objectIDs),c.taskIDs.push(C.taskID),E++,f(E)))};return Kt.createWaitablePromise(f(),(p,h)=>Promise.all(p.taskIDs.map(E=>ds(t)(E,h))))},gbt=t=>e=>Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/clear",t.indexName)},e),(r,s)=>ds(t)(r.taskID,s)),dbt=t=>e=>{let{forwardToReplicas:r,...s}=e||{},a=dl.createMappedRequestOptions(s);return r&&(a.queryParameters.forwardToReplicas=1),Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/rules/clear",t.indexName)},a),(n,c)=>ds(t)(n.taskID,c))},mbt=t=>e=>{let{forwardToReplicas:r,...s}=e||{},a=dl.createMappedRequestOptions(s);return r&&(a.queryParameters.forwardToReplicas=1),Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/synonyms/clear",t.indexName)},a),(n,c)=>ds(t)(n.taskID,c))},ybt=t=>(e,r)=>Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/deleteByQuery",t.indexName),data:e},r),(s,a)=>ds(t)(s.taskID,a)),Ebt=t=>e=>Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Delete,path:Kt.encode("1/indexes/%s",t.indexName)},e),(r,s)=>ds(t)(r.taskID,s)),Ibt=t=>(e,r)=>Kt.createWaitablePromise(sSe(t)([e],r).then(s=>({taskID:s.taskIDs[0]})),(s,a)=>ds(t)(s.taskID,a)),sSe=t=>(e,r)=>{let s=e.map(a=>({objectID:a}));return dF(t)(s,xm.DeleteObject,r)},Cbt=t=>(e,r)=>{let{forwardToReplicas:s,...a}=r||{},n=dl.createMappedRequestOptions(a);return s&&(n.queryParameters.forwardToReplicas=1),Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Delete,path:Kt.encode("1/indexes/%s/rules/%s",t.indexName,e)},n),(c,f)=>ds(t)(c.taskID,f))},wbt=t=>(e,r)=>{let{forwardToReplicas:s,...a}=r||{},n=dl.createMappedRequestOptions(a);return s&&(n.queryParameters.forwardToReplicas=1),Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Delete,path:Kt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},n),(c,f)=>ds(t)(c.taskID,f))},Bbt=t=>e=>oSe(t)(e).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),vbt=t=>(e,r,s)=>t.transporter.read({method:br.MethodEnum.Post,path:Kt.encode("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},s),Sbt=t=>(e,r)=>{let{query:s,paginate:a,...n}=r||{},c=0,f=()=>cSe(t)(s||"",{...n,page:c}).then(p=>{for(let[h,E]of Object.entries(p.hits))if(e(E))return{object:E,position:parseInt(h,10),page:c};if(c++,a===!1||c>=p.nbPages)throw tSe();return f()});return f()},Dbt=t=>(e,r)=>t.transporter.read({method:br.MethodEnum.Get,path:Kt.encode("1/indexes/%s/%s",t.indexName,e)},r),bbt=()=>(t,e)=>{for(let[r,s]of Object.entries(t.hits))if(s.objectID===e)return parseInt(r,10);return-1},Pbt=t=>(e,r)=>{let{attributesToRetrieve:s,...a}=r||{},n=e.map(c=>({indexName:t.indexName,objectID:c,...s?{attributesToRetrieve:s}:{}}));return t.transporter.read({method:br.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:n}},a)},xbt=t=>(e,r)=>t.transporter.read({method:br.MethodEnum.Get,path:Kt.encode("1/indexes/%s/rules/%s",t.indexName,e)},r),oSe=t=>e=>t.transporter.read({method:br.MethodEnum.Get,path:Kt.encode("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},e),kbt=t=>(e,r)=>t.transporter.read({method:br.MethodEnum.Get,path:Kt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},r),aSe=t=>(e,r)=>t.transporter.read({method:br.MethodEnum.Get,path:Kt.encode("1/indexes/%s/task/%s",t.indexName,e.toString())},r),Qbt=t=>(e,r)=>Kt.createWaitablePromise(lSe(t)([e],r).then(s=>({objectID:s.objectIDs[0],taskID:s.taskIDs[0]})),(s,a)=>ds(t)(s.taskID,a)),lSe=t=>(e,r)=>{let{createIfNotExists:s,...a}=r||{},n=s?xm.PartialUpdateObject:xm.PartialUpdateObjectNoCreate;return dF(t)(e,n,a)},Tbt=t=>(e,r)=>{let{safe:s,autoGenerateObjectIDIfNotExist:a,batchSize:n,...c}=r||{},f=(I,R,N,U)=>Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/operation",I),data:{operation:N,destination:R}},U),(W,te)=>ds(t)(W.taskID,te)),p=Math.random().toString(36).substring(7),h=`${t.indexName}_tmp_${p}`,E=L9({appId:t.appId,transporter:t.transporter,indexName:h}),C=[],S=f(t.indexName,h,"copy",{...c,scope:["settings","synonyms","rules"]});C.push(S);let P=(s?S.wait(c):S).then(()=>{let I=E(e,{...c,autoGenerateObjectIDIfNotExist:a,batchSize:n});return C.push(I),s?I.wait(c):I}).then(()=>{let I=f(h,t.indexName,"move",c);return C.push(I),s?I.wait(c):I}).then(()=>Promise.all(C)).then(([I,R,N])=>({objectIDs:R.objectIDs,taskIDs:[I.taskID,...R.taskIDs,N.taskID]}));return Kt.createWaitablePromise(P,(I,R)=>Promise.all(C.map(N=>N.wait(R))))},Rbt=t=>(e,r)=>M9(t)(e,{...r,clearExistingRules:!0}),Fbt=t=>(e,r)=>_9(t)(e,{...r,clearExistingSynonyms:!0}),Nbt=t=>(e,r)=>Kt.createWaitablePromise(L9(t)([e],r).then(s=>({objectID:s.objectIDs[0],taskID:s.taskIDs[0]})),(s,a)=>ds(t)(s.taskID,a)),L9=t=>(e,r)=>{let{autoGenerateObjectIDIfNotExist:s,...a}=r||{},n=s?xm.AddObject:xm.UpdateObject;if(n===xm.UpdateObject){for(let c of e)if(c.objectID===void 0)return Kt.createWaitablePromise(Promise.reject(eSe()))}return dF(t)(e,n,a)},Obt=t=>(e,r)=>M9(t)([e],r),M9=t=>(e,r)=>{let{forwardToReplicas:s,clearExistingRules:a,...n}=r||{},c=dl.createMappedRequestOptions(n);return s&&(c.queryParameters.forwardToReplicas=1),a&&(c.queryParameters.clearExistingRules=1),Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/rules/batch",t.indexName),data:e},c),(f,p)=>ds(t)(f.taskID,p))},Lbt=t=>(e,r)=>_9(t)([e],r),_9=t=>(e,r)=>{let{forwardToReplicas:s,clearExistingSynonyms:a,replaceExistingSynonyms:n,...c}=r||{},f=dl.createMappedRequestOptions(c);return s&&(f.queryParameters.forwardToReplicas=1),(n||a)&&(f.queryParameters.replaceExistingSynonyms=1),Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/synonyms/batch",t.indexName),data:e},f),(p,h)=>ds(t)(p.taskID,h))},cSe=t=>(e,r)=>t.transporter.read({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r),uSe=t=>(e,r,s)=>t.transporter.read({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},s),fSe=t=>(e,r)=>t.transporter.read({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/rules/search",t.indexName),data:{query:e}},r),ASe=t=>(e,r)=>t.transporter.read({method:br.MethodEnum.Post,path:Kt.encode("1/indexes/%s/synonyms/search",t.indexName),data:{query:e}},r),Mbt=t=>(e,r)=>{let{forwardToReplicas:s,...a}=r||{},n=dl.createMappedRequestOptions(a);return s&&(n.queryParameters.forwardToReplicas=1),Kt.createWaitablePromise(t.transporter.write({method:br.MethodEnum.Put,path:Kt.encode("1/indexes/%s/settings",t.indexName),data:e},n),(c,f)=>ds(t)(c.taskID,f))},ds=t=>(e,r)=>Kt.createRetryablePromise(s=>aSe(t)(e,r).then(a=>a.status!=="published"?s():void 0)),_bt={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",Inference:"inference",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},xm={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},mF={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},Ubt={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},Hbt={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};Ft.ApiKeyACLEnum=_bt;Ft.BatchActionEnum=xm;Ft.ScopeEnum=mF;Ft.StrategyEnum=Ubt;Ft.SynonymEnum=Hbt;Ft.addApiKey=TDt;Ft.assignUserID=RDt;Ft.assignUserIDs=FDt;Ft.batch=iSe;Ft.browseObjects=Abt;Ft.browseRules=pbt;Ft.browseSynonyms=hbt;Ft.chunkedBatch=dF;Ft.clearDictionaryEntries=NDt;Ft.clearObjects=gbt;Ft.clearRules=dbt;Ft.clearSynonyms=mbt;Ft.copyIndex=gF;Ft.copyRules=ODt;Ft.copySettings=LDt;Ft.copySynonyms=MDt;Ft.createBrowsablePromise=hF;Ft.createMissingObjectIDError=eSe;Ft.createObjectNotFoundError=tSe;Ft.createSearchClient=QDt;Ft.createValidUntilNotFoundError=rSe;Ft.customRequest=_Dt;Ft.deleteApiKey=UDt;Ft.deleteBy=ybt;Ft.deleteDictionaryEntries=HDt;Ft.deleteIndex=Ebt;Ft.deleteObject=Ibt;Ft.deleteObjects=sSe;Ft.deleteRule=Cbt;Ft.deleteSynonym=wbt;Ft.exists=Bbt;Ft.findAnswers=vbt;Ft.findObject=Sbt;Ft.generateSecuredApiKey=jDt;Ft.getApiKey=jS;Ft.getAppTask=nSe;Ft.getDictionarySettings=qDt;Ft.getLogs=GDt;Ft.getObject=Dbt;Ft.getObjectPosition=bbt;Ft.getObjects=Pbt;Ft.getRule=xbt;Ft.getSecuredApiKeyRemainingValidity=WDt;Ft.getSettings=oSe;Ft.getSynonym=kbt;Ft.getTask=aSe;Ft.getTopUserIDs=YDt;Ft.getUserID=VDt;Ft.hasPendingMappings=KDt;Ft.initIndex=qS;Ft.listApiKeys=JDt;Ft.listClusters=zDt;Ft.listIndices=ZDt;Ft.listUserIDs=XDt;Ft.moveIndex=$Dt;Ft.multipleBatch=ebt;Ft.multipleGetObjects=tbt;Ft.multipleQueries=rbt;Ft.multipleSearchForFacetValues=nbt;Ft.partialUpdateObject=Qbt;Ft.partialUpdateObjects=lSe;Ft.removeUserID=ibt;Ft.replaceAllObjects=Tbt;Ft.replaceAllRules=Rbt;Ft.replaceAllSynonyms=Fbt;Ft.replaceDictionaryEntries=sbt;Ft.restoreApiKey=obt;Ft.saveDictionaryEntries=abt;Ft.saveObject=Nbt;Ft.saveObjects=L9;Ft.saveRule=Obt;Ft.saveRules=M9;Ft.saveSynonym=Lbt;Ft.saveSynonyms=_9;Ft.search=cSe;Ft.searchDictionaryEntries=lbt;Ft.searchForFacetValues=uSe;Ft.searchRules=fSe;Ft.searchSynonyms=ASe;Ft.searchUserIDs=cbt;Ft.setDictionarySettings=ubt;Ft.setSettings=Mbt;Ft.updateApiKey=fbt;Ft.waitAppTask=aw;Ft.waitTask=ds});var gSe=L((Dpr,hSe)=>{hSe.exports=pSe()});var dSe=L(yF=>{"use strict";Object.defineProperty(yF,"__esModule",{value:!0});function jbt(){return{debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var qbt={Debug:1,Info:2,Error:3};yF.LogLevelEnum=qbt;yF.createNullLogger=jbt});var ySe=L((Ppr,mSe)=>{mSe.exports=dSe()});var wSe=L(U9=>{"use strict";Object.defineProperty(U9,"__esModule",{value:!0});var ESe=Ie("http"),ISe=Ie("https"),Gbt=Ie("url"),CSe={keepAlive:!0},Wbt=new ESe.Agent(CSe),Ybt=new ISe.Agent(CSe);function Vbt({agent:t,httpAgent:e,httpsAgent:r,requesterOptions:s={}}={}){let a=e||t||Wbt,n=r||t||Ybt;return{send(c){return new Promise(f=>{let p=Gbt.parse(c.url),h=p.query===null?p.pathname:`${p.pathname}?${p.query}`,E={...s,agent:p.protocol==="https:"?n:a,hostname:p.hostname,path:h,method:c.method,headers:{...s&&s.headers?s.headers:{},...c.headers},...p.port!==void 0?{port:p.port||""}:{}},C=(p.protocol==="https:"?ISe:ESe).request(E,R=>{let N=[];R.on("data",U=>{N=N.concat(U)}),R.on("end",()=>{clearTimeout(P),clearTimeout(I),f({status:R.statusCode||0,content:Buffer.concat(N).toString(),isTimedOut:!1})})}),S=(R,N)=>setTimeout(()=>{C.abort(),f({status:0,content:N,isTimedOut:!0})},R*1e3),P=S(c.connectTimeout,"Connection timeout"),I;C.on("error",R=>{clearTimeout(P),clearTimeout(I),f({status:0,content:R.message,isTimedOut:!1})}),C.once("response",()=>{clearTimeout(P),I=S(c.responseTimeout,"Socket timeout")}),c.data!==void 0&&C.write(c.data),C.end()})},destroy(){return a.destroy(),n.destroy(),Promise.resolve()}}}U9.createNodeHttpRequester=Vbt});var vSe=L((kpr,BSe)=>{BSe.exports=wSe()});var PSe=L((Qpr,bSe)=>{"use strict";var SSe=wve(),Kbt=Sve(),lw=Jve(),j9=OS(),H9=$ve(),jt=gSe(),Jbt=ySe(),zbt=vSe(),Zbt=_S();function DSe(t,e,r){let s={appId:t,apiKey:e,timeouts:{connect:2,read:5,write:30},requester:zbt.createNodeHttpRequester(),logger:Jbt.createNullLogger(),responsesCache:SSe.createNullCache(),requestsCache:SSe.createNullCache(),hostsCache:Kbt.createInMemoryCache(),userAgent:Zbt.createUserAgent(j9.version).add({segment:"Node.js",version:process.versions.node})},a={...s,...r},n=()=>c=>H9.createPersonalizationClient({...s,...c,methods:{getPersonalizationStrategy:H9.getPersonalizationStrategy,setPersonalizationStrategy:H9.setPersonalizationStrategy}});return jt.createSearchClient({...a,methods:{search:jt.multipleQueries,searchForFacetValues:jt.multipleSearchForFacetValues,multipleBatch:jt.multipleBatch,multipleGetObjects:jt.multipleGetObjects,multipleQueries:jt.multipleQueries,copyIndex:jt.copyIndex,copySettings:jt.copySettings,copyRules:jt.copyRules,copySynonyms:jt.copySynonyms,moveIndex:jt.moveIndex,listIndices:jt.listIndices,getLogs:jt.getLogs,listClusters:jt.listClusters,multipleSearchForFacetValues:jt.multipleSearchForFacetValues,getApiKey:jt.getApiKey,addApiKey:jt.addApiKey,listApiKeys:jt.listApiKeys,updateApiKey:jt.updateApiKey,deleteApiKey:jt.deleteApiKey,restoreApiKey:jt.restoreApiKey,assignUserID:jt.assignUserID,assignUserIDs:jt.assignUserIDs,getUserID:jt.getUserID,searchUserIDs:jt.searchUserIDs,listUserIDs:jt.listUserIDs,getTopUserIDs:jt.getTopUserIDs,removeUserID:jt.removeUserID,hasPendingMappings:jt.hasPendingMappings,generateSecuredApiKey:jt.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:jt.getSecuredApiKeyRemainingValidity,destroy:j9.destroy,clearDictionaryEntries:jt.clearDictionaryEntries,deleteDictionaryEntries:jt.deleteDictionaryEntries,getDictionarySettings:jt.getDictionarySettings,getAppTask:jt.getAppTask,replaceDictionaryEntries:jt.replaceDictionaryEntries,saveDictionaryEntries:jt.saveDictionaryEntries,searchDictionaryEntries:jt.searchDictionaryEntries,setDictionarySettings:jt.setDictionarySettings,waitAppTask:jt.waitAppTask,customRequest:jt.customRequest,initIndex:c=>f=>jt.initIndex(c)(f,{methods:{batch:jt.batch,delete:jt.deleteIndex,findAnswers:jt.findAnswers,getObject:jt.getObject,getObjects:jt.getObjects,saveObject:jt.saveObject,saveObjects:jt.saveObjects,search:jt.search,searchForFacetValues:jt.searchForFacetValues,waitTask:jt.waitTask,setSettings:jt.setSettings,getSettings:jt.getSettings,partialUpdateObject:jt.partialUpdateObject,partialUpdateObjects:jt.partialUpdateObjects,deleteObject:jt.deleteObject,deleteObjects:jt.deleteObjects,deleteBy:jt.deleteBy,clearObjects:jt.clearObjects,browseObjects:jt.browseObjects,getObjectPosition:jt.getObjectPosition,findObject:jt.findObject,exists:jt.exists,saveSynonym:jt.saveSynonym,saveSynonyms:jt.saveSynonyms,getSynonym:jt.getSynonym,searchSynonyms:jt.searchSynonyms,browseSynonyms:jt.browseSynonyms,deleteSynonym:jt.deleteSynonym,clearSynonyms:jt.clearSynonyms,replaceAllObjects:jt.replaceAllObjects,replaceAllSynonyms:jt.replaceAllSynonyms,searchRules:jt.searchRules,getRule:jt.getRule,deleteRule:jt.deleteRule,saveRule:jt.saveRule,saveRules:jt.saveRules,replaceAllRules:jt.replaceAllRules,browseRules:jt.browseRules,clearRules:jt.clearRules}}),initAnalytics:()=>c=>lw.createAnalyticsClient({...s,...c,methods:{addABTest:lw.addABTest,getABTest:lw.getABTest,getABTests:lw.getABTests,stopABTest:lw.stopABTest,deleteABTest:lw.deleteABTest}}),initPersonalization:n,initRecommendation:()=>c=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),n()(c))}})}DSe.version=j9.version;bSe.exports=DSe});var G9=L((Tpr,q9)=>{var xSe=PSe();q9.exports=xSe;q9.exports.default=xSe});var V9=L((Fpr,TSe)=>{"use strict";var QSe=Object.getOwnPropertySymbols,$bt=Object.prototype.hasOwnProperty,ePt=Object.prototype.propertyIsEnumerable;function tPt(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function rPt(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var s=Object.getOwnPropertyNames(e).map(function(n){return e[n]});if(s.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(n){a[n]=n}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}TSe.exports=rPt()?Object.assign:function(t,e){for(var r,s=tPt(t),a,n=1;n<arguments.length;n++){r=Object(arguments[n]);for(var c in r)$bt.call(r,c)&&(s[c]=r[c]);if(QSe){a=QSe(r);for(var f=0;f<a.length;f++)ePt.call(r,a[f])&&(s[a[f]]=r[a[f]])}}return s}});var KSe=L(Dn=>{"use strict";var J9=V9(),cw=60103,NSe=60106;Dn.Fragment=60107;Dn.StrictMode=60108;Dn.Profiler=60114;var OSe=60109,LSe=60110,MSe=60112;Dn.Suspense=60113;var _Se=60115,USe=60116;typeof Symbol=="function"&&Symbol.for&&(Wc=Symbol.for,cw=Wc("react.element"),NSe=Wc("react.portal"),Dn.Fragment=Wc("react.fragment"),Dn.StrictMode=Wc("react.strict_mode"),Dn.Profiler=Wc("react.profiler"),OSe=Wc("react.provider"),LSe=Wc("react.context"),MSe=Wc("react.forward_ref"),Dn.Suspense=Wc("react.suspense"),_Se=Wc("react.memo"),USe=Wc("react.lazy"));var Wc,RSe=typeof Symbol=="function"&&Symbol.iterator;function nPt(t){return t===null||typeof t!="object"?null:(t=RSe&&t[RSe]||t["@@iterator"],typeof t=="function"?t:null)}function GS(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r<arguments.length;r++)e+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+t+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var HSe={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},jSe={};function uw(t,e,r){this.props=t,this.context=e,this.refs=jSe,this.updater=r||HSe}uw.prototype.isReactComponent={};uw.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error(GS(85));this.updater.enqueueSetState(this,t,e,"setState")};uw.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function qSe(){}qSe.prototype=uw.prototype;function z9(t,e,r){this.props=t,this.context=e,this.refs=jSe,this.updater=r||HSe}var Z9=z9.prototype=new qSe;Z9.constructor=z9;J9(Z9,uw.prototype);Z9.isPureReactComponent=!0;var X9={current:null},GSe=Object.prototype.hasOwnProperty,WSe={key:!0,ref:!0,__self:!0,__source:!0};function YSe(t,e,r){var s,a={},n=null,c=null;if(e!=null)for(s in e.ref!==void 0&&(c=e.ref),e.key!==void 0&&(n=""+e.key),e)GSe.call(e,s)&&!WSe.hasOwnProperty(s)&&(a[s]=e[s]);var f=arguments.length-2;if(f===1)a.children=r;else if(1<f){for(var p=Array(f),h=0;h<f;h++)p[h]=arguments[h+2];a.children=p}if(t&&t.defaultProps)for(s in f=t.defaultProps,f)a[s]===void 0&&(a[s]=f[s]);return{$$typeof:cw,type:t,key:n,ref:c,props:a,_owner:X9.current}}function iPt(t,e){return{$$typeof:cw,type:t.type,key:e,ref:t.ref,props:t.props,_owner:t._owner}}function $9(t){return typeof t=="object"&&t!==null&&t.$$typeof===cw}function sPt(t){var e={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,function(r){return e[r]})}var FSe=/\/+/g;function K9(t,e){return typeof t=="object"&&t!==null&&t.key!=null?sPt(""+t.key):e.toString(36)}function IF(t,e,r,s,a){var n=typeof t;(n==="undefined"||n==="boolean")&&(t=null);var c=!1;if(t===null)c=!0;else switch(n){case"string":case"number":c=!0;break;case"object":switch(t.$$typeof){case cw:case NSe:c=!0}}if(c)return c=t,a=a(c),t=s===""?"."+K9(c,0):s,Array.isArray(a)?(r="",t!=null&&(r=t.replace(FSe,"$&/")+"/"),IF(a,e,r,"",function(h){return h})):a!=null&&($9(a)&&(a=iPt(a,r+(!a.key||c&&c.key===a.key?"":(""+a.key).replace(FSe,"$&/")+"/")+t)),e.push(a)),1;if(c=0,s=s===""?".":s+":",Array.isArray(t))for(var f=0;f<t.length;f++){n=t[f];var p=s+K9(n,f);c+=IF(n,e,r,p,a)}else if(p=nPt(t),typeof p=="function")for(t=p.call(t),f=0;!(n=t.next()).done;)n=n.value,p=s+K9(n,f++),c+=IF(n,e,r,p,a);else if(n==="object")throw e=""+t,Error(GS(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e));return c}function EF(t,e,r){if(t==null)return t;var s=[],a=0;return IF(t,s,"","",function(n){return e.call(r,n,a++)}),s}function oPt(t){if(t._status===-1){var e=t._result;e=e(),t._status=0,t._result=e,e.then(function(r){t._status===0&&(r=r.default,t._status=1,t._result=r)},function(r){t._status===0&&(t._status=2,t._result=r)})}if(t._status===1)return t._result;throw t._result}var VSe={current:null};function eh(){var t=VSe.current;if(t===null)throw Error(GS(321));return t}var aPt={ReactCurrentDispatcher:VSe,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:X9,IsSomeRendererActing:{current:!1},assign:J9};Dn.Children={map:EF,forEach:function(t,e,r){EF(t,function(){e.apply(this,arguments)},r)},count:function(t){var e=0;return EF(t,function(){e++}),e},toArray:function(t){return EF(t,function(e){return e})||[]},only:function(t){if(!$9(t))throw Error(GS(143));return t}};Dn.Component=uw;Dn.PureComponent=z9;Dn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=aPt;Dn.cloneElement=function(t,e,r){if(t==null)throw Error(GS(267,t));var s=J9({},t.props),a=t.key,n=t.ref,c=t._owner;if(e!=null){if(e.ref!==void 0&&(n=e.ref,c=X9.current),e.key!==void 0&&(a=""+e.key),t.type&&t.type.defaultProps)var f=t.type.defaultProps;for(p in e)GSe.call(e,p)&&!WSe.hasOwnProperty(p)&&(s[p]=e[p]===void 0&&f!==void 0?f[p]:e[p])}var p=arguments.length-2;if(p===1)s.children=r;else if(1<p){f=Array(p);for(var h=0;h<p;h++)f[h]=arguments[h+2];s.children=f}return{$$typeof:cw,type:t.type,key:a,ref:n,props:s,_owner:c}};Dn.createContext=function(t,e){return e===void 0&&(e=null),t={$$typeof:LSe,_calculateChangedBits:e,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null},t.Provider={$$typeof:OSe,_context:t},t.Consumer=t};Dn.createElement=YSe;Dn.createFactory=function(t){var e=YSe.bind(null,t);return e.type=t,e};Dn.createRef=function(){return{current:null}};Dn.forwardRef=function(t){return{$$typeof:MSe,render:t}};Dn.isValidElement=$9;Dn.lazy=function(t){return{$$typeof:USe,_payload:{_status:-1,_result:t},_init:oPt}};Dn.memo=function(t,e){return{$$typeof:_Se,type:t,compare:e===void 0?null:e}};Dn.useCallback=function(t,e){return eh().useCallback(t,e)};Dn.useContext=function(t,e){return eh().useContext(t,e)};Dn.useDebugValue=function(){};Dn.useEffect=function(t,e){return eh().useEffect(t,e)};Dn.useImperativeHandle=function(t,e,r){return eh().useImperativeHandle(t,e,r)};Dn.useLayoutEffect=function(t,e){return eh().useLayoutEffect(t,e)};Dn.useMemo=function(t,e){return eh().useMemo(t,e)};Dn.useReducer=function(t,e,r){return eh().useReducer(t,e,r)};Dn.useRef=function(t){return eh().useRef(t)};Dn.useState=function(t){return eh().useState(t)};Dn.version="17.0.2"});var hn=L((Opr,JSe)=>{"use strict";JSe.exports=KSe()});var tW=L((Lpr,eW)=>{"use strict";var Cn=eW.exports;eW.exports.default=Cn;var Zn="\x1B[",WS="\x1B]",fw="\x07",CF=";",zSe=process.env.TERM_PROGRAM==="Apple_Terminal";Cn.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?Zn+(t+1)+"G":Zn+(e+1)+";"+(t+1)+"H"};Cn.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=Zn+-t+"D":t>0&&(r+=Zn+t+"C"),e<0?r+=Zn+-e+"A":e>0&&(r+=Zn+e+"B"),r};Cn.cursorUp=(t=1)=>Zn+t+"A";Cn.cursorDown=(t=1)=>Zn+t+"B";Cn.cursorForward=(t=1)=>Zn+t+"C";Cn.cursorBackward=(t=1)=>Zn+t+"D";Cn.cursorLeft=Zn+"G";Cn.cursorSavePosition=zSe?"\x1B7":Zn+"s";Cn.cursorRestorePosition=zSe?"\x1B8":Zn+"u";Cn.cursorGetPosition=Zn+"6n";Cn.cursorNextLine=Zn+"E";Cn.cursorPrevLine=Zn+"F";Cn.cursorHide=Zn+"?25l";Cn.cursorShow=Zn+"?25h";Cn.eraseLines=t=>{let e="";for(let r=0;r<t;r++)e+=Cn.eraseLine+(r<t-1?Cn.cursorUp():"");return t&&(e+=Cn.cursorLeft),e};Cn.eraseEndLine=Zn+"K";Cn.eraseStartLine=Zn+"1K";Cn.eraseLine=Zn+"2K";Cn.eraseDown=Zn+"J";Cn.eraseUp=Zn+"1J";Cn.eraseScreen=Zn+"2J";Cn.scrollUp=Zn+"S";Cn.scrollDown=Zn+"T";Cn.clearScreen="\x1Bc";Cn.clearTerminal=process.platform==="win32"?`${Cn.eraseScreen}${Zn}0f`:`${Cn.eraseScreen}${Zn}3J${Zn}H`;Cn.beep=fw;Cn.link=(t,e)=>[WS,"8",CF,CF,e,fw,t,WS,"8",CF,CF,fw].join("");Cn.image=(t,e={})=>{let r=`${WS}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+fw};Cn.iTerm={setCwd:(t=process.cwd())=>`${WS}50;CurrentDir=${t}${fw}`,annotation:(t,e={})=>{let r=`${WS}1337;`,s=typeof e.x<"u",a=typeof e.y<"u";if((s||a)&&!(s&&a&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(s?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+fw}}});var XSe=L((Mpr,rW)=>{"use strict";var ZSe=(t,e)=>{for(let r of Reflect.ownKeys(e))Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r));return t};rW.exports=ZSe;rW.exports.default=ZSe});var eDe=L((_pr,BF)=>{"use strict";var lPt=XSe(),wF=new WeakMap,$Se=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let r,s=0,a=t.displayName||t.name||"<anonymous>",n=function(...c){if(wF.set(n,++s),s===1)r=t.apply(this,c),t=null;else if(e.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return lPt(n,t),wF.set(n,s),n};BF.exports=$Se;BF.exports.default=$Se;BF.exports.callCount=t=>{if(!wF.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return wF.get(t)}});var tDe=L((Upr,vF)=>{vF.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&vF.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&vF.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var sW=L((Hpr,hw)=>{var Ti=global.process,km=function(t){return t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function"};km(Ti)?(rDe=Ie("assert"),Aw=tDe(),nDe=/^win/i.test(Ti.platform),YS=Ie("events"),typeof YS!="function"&&(YS=YS.EventEmitter),Ti.__signal_exit_emitter__?zs=Ti.__signal_exit_emitter__:(zs=Ti.__signal_exit_emitter__=new YS,zs.count=0,zs.emitted={}),zs.infinite||(zs.setMaxListeners(1/0),zs.infinite=!0),hw.exports=function(t,e){if(!km(global.process))return function(){};rDe.equal(typeof t,"function","a callback must be provided for exit handler"),pw===!1&&nW();var r="exit";e&&e.alwaysLast&&(r="afterexit");var s=function(){zs.removeListener(r,t),zs.listeners("exit").length===0&&zs.listeners("afterexit").length===0&&SF()};return zs.on(r,t),s},SF=function(){!pw||!km(global.process)||(pw=!1,Aw.forEach(function(e){try{Ti.removeListener(e,DF[e])}catch{}}),Ti.emit=bF,Ti.reallyExit=iW,zs.count-=1)},hw.exports.unload=SF,Qm=function(e,r,s){zs.emitted[e]||(zs.emitted[e]=!0,zs.emit(e,r,s))},DF={},Aw.forEach(function(t){DF[t]=function(){if(km(global.process)){var r=Ti.listeners(t);r.length===zs.count&&(SF(),Qm("exit",null,t),Qm("afterexit",null,t),nDe&&t==="SIGHUP"&&(t="SIGINT"),Ti.kill(Ti.pid,t))}}}),hw.exports.signals=function(){return Aw},pw=!1,nW=function(){pw||!km(global.process)||(pw=!0,zs.count+=1,Aw=Aw.filter(function(e){try{return Ti.on(e,DF[e]),!0}catch{return!1}}),Ti.emit=sDe,Ti.reallyExit=iDe)},hw.exports.load=nW,iW=Ti.reallyExit,iDe=function(e){km(global.process)&&(Ti.exitCode=e||0,Qm("exit",Ti.exitCode,null),Qm("afterexit",Ti.exitCode,null),iW.call(Ti,Ti.exitCode))},bF=Ti.emit,sDe=function(e,r){if(e==="exit"&&km(global.process)){r!==void 0&&(Ti.exitCode=r);var s=bF.apply(this,arguments);return Qm("exit",Ti.exitCode,null),Qm("afterexit",Ti.exitCode,null),s}else return bF.apply(this,arguments)}):hw.exports=function(){return function(){}};var rDe,Aw,nDe,YS,zs,SF,Qm,DF,pw,nW,iW,iDe,bF,sDe});var aDe=L((jpr,oDe)=>{"use strict";var cPt=eDe(),uPt=sW();oDe.exports=cPt(()=>{uPt(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var oW=L(gw=>{"use strict";var fPt=aDe(),PF=!1;gw.show=(t=process.stderr)=>{t.isTTY&&(PF=!1,t.write("\x1B[?25h"))};gw.hide=(t=process.stderr)=>{t.isTTY&&(fPt(),PF=!0,t.write("\x1B[?25l"))};gw.toggle=(t,e)=>{t!==void 0&&(PF=t),PF?gw.show(e):gw.hide(e)}});var fDe=L(VS=>{"use strict";var uDe=VS&&VS.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(VS,"__esModule",{value:!0});var lDe=uDe(tW()),cDe=uDe(oW()),APt=(t,{showCursor:e=!1}={})=>{let r=0,s="",a=!1,n=c=>{!e&&!a&&(cDe.default.hide(),a=!0);let f=c+` +`;f!==s&&(s=f,t.write(lDe.default.eraseLines(r)+f),r=f.split(` +`).length)};return n.clear=()=>{t.write(lDe.default.eraseLines(r)),s="",r=0},n.done=()=>{s="",r=0,e||(cDe.default.show(),a=!1)},n};VS.default={create:APt}});var ADe=L((Wpr,pPt)=>{pPt.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var gDe=L(rc=>{"use strict";var hDe=ADe(),AA=process.env;Object.defineProperty(rc,"_vendors",{value:hDe.map(function(t){return t.constant})});rc.name=null;rc.isPR=null;hDe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(s){return pDe(s)});if(rc[t.constant]=r,r)switch(rc.name=t.name,typeof t.pr){case"string":rc.isPR=!!AA[t.pr];break;case"object":"env"in t.pr?rc.isPR=t.pr.env in AA&&AA[t.pr.env]!==t.pr.ne:"any"in t.pr?rc.isPR=t.pr.any.some(function(s){return!!AA[s]}):rc.isPR=pDe(t.pr);break;default:rc.isPR=null}});rc.isCI=!!(AA.CI||AA.CONTINUOUS_INTEGRATION||AA.BUILD_NUMBER||AA.RUN_ID||rc.name);function pDe(t){return typeof t=="string"?!!AA[t]:Object.keys(t).every(function(e){return AA[e]===t[e]})}});var mDe=L((Vpr,dDe)=>{"use strict";dDe.exports=gDe().isCI});var EDe=L((Kpr,yDe)=>{"use strict";var hPt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};yDe.exports=(t,{include:e,exclude:r}={})=>{let s=a=>{let n=c=>typeof c=="string"?a===c:c.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of hPt(t.constructor.prototype)){if(n==="constructor"||!s(n))continue;let c=Reflect.getOwnPropertyDescriptor(a,n);c&&typeof c.value=="function"&&(t[n]=t[n].bind(t))}return t}});var SDe=L(Vn=>{"use strict";var mw,zS,TF,pW;typeof performance=="object"&&typeof performance.now=="function"?(IDe=performance,Vn.unstable_now=function(){return IDe.now()}):(aW=Date,CDe=aW.now(),Vn.unstable_now=function(){return aW.now()-CDe});var IDe,aW,CDe;typeof window>"u"||typeof MessageChannel!="function"?(dw=null,lW=null,cW=function(){if(dw!==null)try{var t=Vn.unstable_now();dw(!0,t),dw=null}catch(e){throw setTimeout(cW,0),e}},mw=function(t){dw!==null?setTimeout(mw,0,t):(dw=t,setTimeout(cW,0))},zS=function(t,e){lW=setTimeout(t,e)},TF=function(){clearTimeout(lW)},Vn.unstable_shouldYield=function(){return!1},pW=Vn.unstable_forceFrameRate=function(){}):(wDe=window.setTimeout,BDe=window.clearTimeout,typeof console<"u"&&(vDe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof vDe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")),KS=!1,JS=null,xF=-1,uW=5,fW=0,Vn.unstable_shouldYield=function(){return Vn.unstable_now()>=fW},pW=function(){},Vn.unstable_forceFrameRate=function(t){0>t||125<t?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):uW=0<t?Math.floor(1e3/t):5},AW=new MessageChannel,kF=AW.port2,AW.port1.onmessage=function(){if(JS!==null){var t=Vn.unstable_now();fW=t+uW;try{JS(!0,t)?kF.postMessage(null):(KS=!1,JS=null)}catch(e){throw kF.postMessage(null),e}}else KS=!1},mw=function(t){JS=t,KS||(KS=!0,kF.postMessage(null))},zS=function(t,e){xF=wDe(function(){t(Vn.unstable_now())},e)},TF=function(){BDe(xF),xF=-1});var dw,lW,cW,wDe,BDe,vDe,KS,JS,xF,uW,fW,AW,kF;function hW(t,e){var r=t.length;t.push(e);e:for(;;){var s=r-1>>>1,a=t[s];if(a!==void 0&&0<QF(a,e))t[s]=e,t[r]=a,r=s;else break e}}function tf(t){return t=t[0],t===void 0?null:t}function RF(t){var e=t[0];if(e!==void 0){var r=t.pop();if(r!==e){t[0]=r;e:for(var s=0,a=t.length;s<a;){var n=2*(s+1)-1,c=t[n],f=n+1,p=t[f];if(c!==void 0&&0>QF(c,r))p!==void 0&&0>QF(p,c)?(t[s]=p,t[f]=r,s=f):(t[s]=c,t[n]=r,s=n);else if(p!==void 0&&0>QF(p,r))t[s]=p,t[f]=r,s=f;else break e}}return e}return null}function QF(t,e){var r=t.sortIndex-e.sortIndex;return r!==0?r:t.id-e.id}var pA=[],Z0=[],gPt=1,Yc=null,ea=3,FF=!1,Tm=!1,ZS=!1;function gW(t){for(var e=tf(Z0);e!==null;){if(e.callback===null)RF(Z0);else if(e.startTime<=t)RF(Z0),e.sortIndex=e.expirationTime,hW(pA,e);else break;e=tf(Z0)}}function dW(t){if(ZS=!1,gW(t),!Tm)if(tf(pA)!==null)Tm=!0,mw(mW);else{var e=tf(Z0);e!==null&&zS(dW,e.startTime-t)}}function mW(t,e){Tm=!1,ZS&&(ZS=!1,TF()),FF=!0;var r=ea;try{for(gW(e),Yc=tf(pA);Yc!==null&&(!(Yc.expirationTime>e)||t&&!Vn.unstable_shouldYield());){var s=Yc.callback;if(typeof s=="function"){Yc.callback=null,ea=Yc.priorityLevel;var a=s(Yc.expirationTime<=e);e=Vn.unstable_now(),typeof a=="function"?Yc.callback=a:Yc===tf(pA)&&RF(pA),gW(e)}else RF(pA);Yc=tf(pA)}if(Yc!==null)var n=!0;else{var c=tf(Z0);c!==null&&zS(dW,c.startTime-e),n=!1}return n}finally{Yc=null,ea=r,FF=!1}}var dPt=pW;Vn.unstable_IdlePriority=5;Vn.unstable_ImmediatePriority=1;Vn.unstable_LowPriority=4;Vn.unstable_NormalPriority=3;Vn.unstable_Profiling=null;Vn.unstable_UserBlockingPriority=2;Vn.unstable_cancelCallback=function(t){t.callback=null};Vn.unstable_continueExecution=function(){Tm||FF||(Tm=!0,mw(mW))};Vn.unstable_getCurrentPriorityLevel=function(){return ea};Vn.unstable_getFirstCallbackNode=function(){return tf(pA)};Vn.unstable_next=function(t){switch(ea){case 1:case 2:case 3:var e=3;break;default:e=ea}var r=ea;ea=e;try{return t()}finally{ea=r}};Vn.unstable_pauseExecution=function(){};Vn.unstable_requestPaint=dPt;Vn.unstable_runWithPriority=function(t,e){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var r=ea;ea=t;try{return e()}finally{ea=r}};Vn.unstable_scheduleCallback=function(t,e,r){var s=Vn.unstable_now();switch(typeof r=="object"&&r!==null?(r=r.delay,r=typeof r=="number"&&0<r?s+r:s):r=s,t){case 1:var a=-1;break;case 2:a=250;break;case 5:a=1073741823;break;case 4:a=1e4;break;default:a=5e3}return a=r+a,t={id:gPt++,callback:e,priorityLevel:t,startTime:r,expirationTime:a,sortIndex:-1},r>s?(t.sortIndex=r,hW(Z0,t),tf(pA)===null&&t===tf(Z0)&&(ZS?TF():ZS=!0,zS(dW,r-s))):(t.sortIndex=a,hW(pA,t),Tm||FF||(Tm=!0,mw(mW))),t};Vn.unstable_wrapCallback=function(t){var e=ea;return function(){var r=ea;ea=e;try{return t.apply(this,arguments)}finally{ea=r}}}});var yW=L((zpr,DDe)=>{"use strict";DDe.exports=SDe()});var bDe=L((Zpr,XS)=>{XS.exports=function(e){var r={},s=V9(),a=hn(),n=yW();function c(v){for(var D="https://reactjs.org/docs/error-decoder.html?invariant="+v,Q=1;Q<arguments.length;Q++)D+="&args[]="+encodeURIComponent(arguments[Q]);return"Minified React error #"+v+"; visit "+D+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var f=a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,p=60103,h=60106,E=60107,C=60108,S=60114,P=60109,I=60110,R=60112,N=60113,U=60120,W=60115,te=60116,ie=60121,Ae=60129,ce=60130,me=60131;if(typeof Symbol=="function"&&Symbol.for){var pe=Symbol.for;p=pe("react.element"),h=pe("react.portal"),E=pe("react.fragment"),C=pe("react.strict_mode"),S=pe("react.profiler"),P=pe("react.provider"),I=pe("react.context"),R=pe("react.forward_ref"),N=pe("react.suspense"),U=pe("react.suspense_list"),W=pe("react.memo"),te=pe("react.lazy"),ie=pe("react.block"),pe("react.scope"),Ae=pe("react.debug_trace_mode"),ce=pe("react.offscreen"),me=pe("react.legacy_hidden")}var Be=typeof Symbol=="function"&&Symbol.iterator;function Ce(v){return v===null||typeof v!="object"?null:(v=Be&&v[Be]||v["@@iterator"],typeof v=="function"?v:null)}function g(v){if(v==null)return null;if(typeof v=="function")return v.displayName||v.name||null;if(typeof v=="string")return v;switch(v){case E:return"Fragment";case h:return"Portal";case S:return"Profiler";case C:return"StrictMode";case N:return"Suspense";case U:return"SuspenseList"}if(typeof v=="object")switch(v.$$typeof){case I:return(v.displayName||"Context")+".Consumer";case P:return(v._context.displayName||"Context")+".Provider";case R:var D=v.render;return D=D.displayName||D.name||"",v.displayName||(D!==""?"ForwardRef("+D+")":"ForwardRef");case W:return g(v.type);case ie:return g(v._render);case te:D=v._payload,v=v._init;try{return g(v(D))}catch{}}return null}function we(v){var D=v,Q=v;if(v.alternate)for(;D.return;)D=D.return;else{v=D;do D=v,D.flags&1026&&(Q=D.return),v=D.return;while(v)}return D.tag===3?Q:null}function ye(v){if(we(v)!==v)throw Error(c(188))}function fe(v){var D=v.alternate;if(!D){if(D=we(v),D===null)throw Error(c(188));return D!==v?null:v}for(var Q=v,H=D;;){var V=Q.return;if(V===null)break;var ne=V.alternate;if(ne===null){if(H=V.return,H!==null){Q=H;continue}break}if(V.child===ne.child){for(ne=V.child;ne;){if(ne===Q)return ye(V),v;if(ne===H)return ye(V),D;ne=ne.sibling}throw Error(c(188))}if(Q.return!==H.return)Q=V,H=ne;else{for(var Se=!1,Ue=V.child;Ue;){if(Ue===Q){Se=!0,Q=V,H=ne;break}if(Ue===H){Se=!0,H=V,Q=ne;break}Ue=Ue.sibling}if(!Se){for(Ue=ne.child;Ue;){if(Ue===Q){Se=!0,Q=ne,H=V;break}if(Ue===H){Se=!0,H=ne,Q=V;break}Ue=Ue.sibling}if(!Se)throw Error(c(189))}}if(Q.alternate!==H)throw Error(c(190))}if(Q.tag!==3)throw Error(c(188));return Q.stateNode.current===Q?v:D}function se(v){if(v=fe(v),!v)return null;for(var D=v;;){if(D.tag===5||D.tag===6)return D;if(D.child)D.child.return=D,D=D.child;else{if(D===v)break;for(;!D.sibling;){if(!D.return||D.return===v)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}}return null}function X(v){if(v=fe(v),!v)return null;for(var D=v;;){if(D.tag===5||D.tag===6)return D;if(D.child&&D.tag!==4)D.child.return=D,D=D.child;else{if(D===v)break;for(;!D.sibling;){if(!D.return||D.return===v)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}}return null}function De(v,D){for(var Q=v.alternate;D!==null;){if(D===v||D===Q)return!0;D=D.return}return!1}var Re=e.getPublicInstance,dt=e.getRootHostContext,j=e.getChildHostContext,rt=e.prepareForCommit,Fe=e.resetAfterCommit,Ne=e.createInstance,Pe=e.appendInitialChild,Ye=e.finalizeInitialChildren,ke=e.prepareUpdate,it=e.shouldSetTextContent,_e=e.createTextInstance,x=e.scheduleTimeout,w=e.cancelTimeout,b=e.noTimeout,y=e.isPrimaryRenderer,F=e.supportsMutation,z=e.supportsPersistence,Z=e.supportsHydration,$=e.getInstanceFromNode,oe=e.makeOpaqueHydratingObject,xe=e.makeClientId,Te=e.beforeActiveInstanceBlur,lt=e.afterActiveInstanceBlur,It=e.preparePortalMount,qt=e.supportsTestSelectors,ir=e.findFiberRoot,Pt=e.getBoundingRect,gn=e.getTextContent,Pr=e.isHiddenSubtree,Ir=e.matchAccessibilityRole,Nr=e.setFocusIfFocusable,nn=e.setupIntersectionObserver,ai=e.appendChild,wo=e.appendChildToContainer,ns=e.commitTextUpdate,to=e.commitMount,Bo=e.commitUpdate,ji=e.insertBefore,ro=e.insertInContainerBefore,vo=e.removeChild,RA=e.removeChildFromContainer,pf=e.resetTextContent,yh=e.hideInstance,Eh=e.hideTextInstance,no=e.unhideInstance,jn=e.unhideTextInstance,Fs=e.clearContainer,io=e.cloneInstance,lu=e.createContainerChildSet,cu=e.appendChildToContainerChildSet,uu=e.finalizeContainerChildren,FA=e.replaceContainerChildren,NA=e.cloneHiddenInstance,aa=e.cloneHiddenTextInstance,la=e.canHydrateInstance,OA=e.canHydrateTextInstance,gr=e.isSuspenseInstancePending,So=e.isSuspenseInstanceFallback,Me=e.getNextHydratableSibling,fu=e.getFirstHydratableChild,Cr=e.hydrateInstance,hf=e.hydrateTextInstance,LA=e.getNextHydratableInstanceAfterSuspenseInstance,MA=e.commitHydratedContainer,Au=e.commitHydratedSuspenseInstance,pu;function ac(v){if(pu===void 0)try{throw Error()}catch(Q){var D=Q.stack.trim().match(/\n( *(at )?)/);pu=D&&D[1]||""}return` +`+pu+v}var ve=!1;function Nt(v,D){if(!v||ve)return"";ve=!0;var Q=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(D)if(D=function(){throw Error()},Object.defineProperty(D.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(D,[])}catch(At){var H=At}Reflect.construct(v,[],D)}else{try{D.call()}catch(At){H=At}v.call(D.prototype)}else{try{throw Error()}catch(At){H=At}v()}}catch(At){if(At&&H&&typeof At.stack=="string"){for(var V=At.stack.split(` +`),ne=H.stack.split(` +`),Se=V.length-1,Ue=ne.length-1;1<=Se&&0<=Ue&&V[Se]!==ne[Ue];)Ue--;for(;1<=Se&&0<=Ue;Se--,Ue--)if(V[Se]!==ne[Ue]){if(Se!==1||Ue!==1)do if(Se--,Ue--,0>Ue||V[Se]!==ne[Ue])return` +`+V[Se].replace(" at new "," at ");while(1<=Se&&0<=Ue);break}}}finally{ve=!1,Error.prepareStackTrace=Q}return(v=v?v.displayName||v.name:"")?ac(v):""}var lc=[],Li=-1;function so(v){return{current:v}}function Rt(v){0>Li||(v.current=lc[Li],lc[Li]=null,Li--)}function xn(v,D){Li++,lc[Li]=v.current,v.current=D}var ca={},qi=so(ca),Mi=so(!1),Oa=ca;function dn(v,D){var Q=v.type.contextTypes;if(!Q)return ca;var H=v.stateNode;if(H&&H.__reactInternalMemoizedUnmaskedChildContext===D)return H.__reactInternalMemoizedMaskedChildContext;var V={},ne;for(ne in Q)V[ne]=D[ne];return H&&(v=v.stateNode,v.__reactInternalMemoizedUnmaskedChildContext=D,v.__reactInternalMemoizedMaskedChildContext=V),V}function Jn(v){return v=v.childContextTypes,v!=null}function hu(){Rt(Mi),Rt(qi)}function Ih(v,D,Q){if(qi.current!==ca)throw Error(c(168));xn(qi,D),xn(Mi,Q)}function La(v,D,Q){var H=v.stateNode;if(v=D.childContextTypes,typeof H.getChildContext!="function")return Q;H=H.getChildContext();for(var V in H)if(!(V in v))throw Error(c(108,g(D)||"Unknown",V));return s({},Q,H)}function Ma(v){return v=(v=v.stateNode)&&v.__reactInternalMemoizedMergedChildContext||ca,Oa=qi.current,xn(qi,v),xn(Mi,Mi.current),!0}function Ua(v,D,Q){var H=v.stateNode;if(!H)throw Error(c(169));Q?(v=La(v,D,Oa),H.__reactInternalMemoizedMergedChildContext=v,Rt(Mi),Rt(qi),xn(qi,v)):Rt(Mi),xn(Mi,Q)}var Xe=null,Ha=null,gf=n.unstable_now;gf();var cc=0,wn=8;function ua(v){if(1&v)return wn=15,1;if(2&v)return wn=14,2;if(4&v)return wn=13,4;var D=24&v;return D!==0?(wn=12,D):v&32?(wn=11,32):(D=192&v,D!==0?(wn=10,D):v&256?(wn=9,256):(D=3584&v,D!==0?(wn=8,D):v&4096?(wn=7,4096):(D=4186112&v,D!==0?(wn=6,D):(D=62914560&v,D!==0?(wn=5,D):v&67108864?(wn=4,67108864):v&134217728?(wn=3,134217728):(D=805306368&v,D!==0?(wn=2,D):1073741824&v?(wn=1,1073741824):(wn=8,v))))))}function _A(v){switch(v){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function UA(v){switch(v){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(c(358,v))}}function fa(v,D){var Q=v.pendingLanes;if(Q===0)return wn=0;var H=0,V=0,ne=v.expiredLanes,Se=v.suspendedLanes,Ue=v.pingedLanes;if(ne!==0)H=ne,V=wn=15;else if(ne=Q&134217727,ne!==0){var At=ne&~Se;At!==0?(H=ua(At),V=wn):(Ue&=ne,Ue!==0&&(H=ua(Ue),V=wn))}else ne=Q&~Se,ne!==0?(H=ua(ne),V=wn):Ue!==0&&(H=ua(Ue),V=wn);if(H===0)return 0;if(H=31-is(H),H=Q&((0>H?0:1<<H)<<1)-1,D!==0&&D!==H&&!(D&Se)){if(ua(D),V<=wn)return D;wn=V}if(D=v.entangledLanes,D!==0)for(v=v.entanglements,D&=H;0<D;)Q=31-is(D),V=1<<Q,H|=v[Q],D&=~V;return H}function vl(v){return v=v.pendingLanes&-1073741825,v!==0?v:v&1073741824?1073741824:0}function Mt(v,D){switch(v){case 15:return 1;case 14:return 2;case 12:return v=kn(24&~D),v===0?Mt(10,D):v;case 10:return v=kn(192&~D),v===0?Mt(8,D):v;case 8:return v=kn(3584&~D),v===0&&(v=kn(4186112&~D),v===0&&(v=512)),v;case 2:return D=kn(805306368&~D),D===0&&(D=268435456),D}throw Error(c(358,v))}function kn(v){return v&-v}function Aa(v){for(var D=[],Q=0;31>Q;Q++)D.push(v);return D}function ja(v,D,Q){v.pendingLanes|=D;var H=D-1;v.suspendedLanes&=H,v.pingedLanes&=H,v=v.eventTimes,D=31-is(D),v[D]=Q}var is=Math.clz32?Math.clz32:fc,uc=Math.log,gu=Math.LN2;function fc(v){return v===0?32:31-(uc(v)/gu|0)|0}var qa=n.unstable_runWithPriority,_i=n.unstable_scheduleCallback,ws=n.unstable_cancelCallback,Sl=n.unstable_shouldYield,df=n.unstable_requestPaint,Ac=n.unstable_now,Bi=n.unstable_getCurrentPriorityLevel,Qn=n.unstable_ImmediatePriority,pc=n.unstable_UserBlockingPriority,Je=n.unstable_NormalPriority,st=n.unstable_LowPriority,St=n.unstable_IdlePriority,lr={},ee=df!==void 0?df:function(){},Ee=null,Oe=null,gt=!1,yt=Ac(),Dt=1e4>yt?Ac:function(){return Ac()-yt};function tr(){switch(Bi()){case Qn:return 99;case pc:return 98;case Je:return 97;case st:return 96;case St:return 95;default:throw Error(c(332))}}function fn(v){switch(v){case 99:return Qn;case 98:return pc;case 97:return Je;case 96:return st;case 95:return St;default:throw Error(c(332))}}function li(v,D){return v=fn(v),qa(v,D)}function Gi(v,D,Q){return v=fn(v),_i(v,D,Q)}function Tn(){if(Oe!==null){var v=Oe;Oe=null,ws(v)}Ga()}function Ga(){if(!gt&&Ee!==null){gt=!0;var v=0;try{var D=Ee;li(99,function(){for(;v<D.length;v++){var Q=D[v];do Q=Q(!0);while(Q!==null)}}),Ee=null}catch(Q){throw Ee!==null&&(Ee=Ee.slice(v+1)),_i(Qn,Tn),Q}finally{gt=!1}}}var gy=f.ReactCurrentBatchConfig;function X1(v,D){return v===D&&(v!==0||1/v===1/D)||v!==v&&D!==D}var Do=typeof Object.is=="function"?Object.is:X1,dy=Object.prototype.hasOwnProperty;function Ch(v,D){if(Do(v,D))return!0;if(typeof v!="object"||v===null||typeof D!="object"||D===null)return!1;var Q=Object.keys(v),H=Object.keys(D);if(Q.length!==H.length)return!1;for(H=0;H<Q.length;H++)if(!dy.call(D,Q[H])||!Do(v[Q[H]],D[Q[H]]))return!1;return!0}function $1(v){switch(v.tag){case 5:return ac(v.type);case 16:return ac("Lazy");case 13:return ac("Suspense");case 19:return ac("SuspenseList");case 0:case 2:case 15:return v=Nt(v.type,!1),v;case 11:return v=Nt(v.type.render,!1),v;case 22:return v=Nt(v.type._render,!1),v;case 1:return v=Nt(v.type,!0),v;default:return""}}function bo(v,D){if(v&&v.defaultProps){D=s({},D),v=v.defaultProps;for(var Q in v)D[Q]===void 0&&(D[Q]=v[Q]);return D}return D}var wh=so(null),Bh=null,du=null,vh=null;function Rg(){vh=du=Bh=null}function Fg(v,D){v=v.type._context,y?(xn(wh,v._currentValue),v._currentValue=D):(xn(wh,v._currentValue2),v._currentValue2=D)}function Ng(v){var D=wh.current;Rt(wh),v=v.type._context,y?v._currentValue=D:v._currentValue2=D}function my(v,D){for(;v!==null;){var Q=v.alternate;if((v.childLanes&D)===D){if(Q===null||(Q.childLanes&D)===D)break;Q.childLanes|=D}else v.childLanes|=D,Q!==null&&(Q.childLanes|=D);v=v.return}}function mf(v,D){Bh=v,vh=du=null,v=v.dependencies,v!==null&&v.firstContext!==null&&(v.lanes&D&&(Ke=!0),v.firstContext=null)}function Po(v,D){if(vh!==v&&D!==!1&&D!==0)if((typeof D!="number"||D===1073741823)&&(vh=v,D=1073741823),D={context:v,observedBits:D,next:null},du===null){if(Bh===null)throw Error(c(308));du=D,Bh.dependencies={lanes:0,firstContext:D,responders:null}}else du=du.next=D;return y?v._currentValue:v._currentValue2}var Dl=!1;function Sh(v){v.updateQueue={baseState:v.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function Og(v,D){v=v.updateQueue,D.updateQueue===v&&(D.updateQueue={baseState:v.baseState,firstBaseUpdate:v.firstBaseUpdate,lastBaseUpdate:v.lastBaseUpdate,shared:v.shared,effects:v.effects})}function bl(v,D){return{eventTime:v,lane:D,tag:0,payload:null,callback:null,next:null}}function Pl(v,D){if(v=v.updateQueue,v!==null){v=v.shared;var Q=v.pending;Q===null?D.next=D:(D.next=Q.next,Q.next=D),v.pending=D}}function yy(v,D){var Q=v.updateQueue,H=v.alternate;if(H!==null&&(H=H.updateQueue,Q===H)){var V=null,ne=null;if(Q=Q.firstBaseUpdate,Q!==null){do{var Se={eventTime:Q.eventTime,lane:Q.lane,tag:Q.tag,payload:Q.payload,callback:Q.callback,next:null};ne===null?V=ne=Se:ne=ne.next=Se,Q=Q.next}while(Q!==null);ne===null?V=ne=D:ne=ne.next=D}else V=ne=D;Q={baseState:H.baseState,firstBaseUpdate:V,lastBaseUpdate:ne,shared:H.shared,effects:H.effects},v.updateQueue=Q;return}v=Q.lastBaseUpdate,v===null?Q.firstBaseUpdate=D:v.next=D,Q.lastBaseUpdate=D}function HA(v,D,Q,H){var V=v.updateQueue;Dl=!1;var ne=V.firstBaseUpdate,Se=V.lastBaseUpdate,Ue=V.shared.pending;if(Ue!==null){V.shared.pending=null;var At=Ue,Gt=At.next;At.next=null,Se===null?ne=Gt:Se.next=Gt,Se=At;var vr=v.alternate;if(vr!==null){vr=vr.updateQueue;var Lr=vr.lastBaseUpdate;Lr!==Se&&(Lr===null?vr.firstBaseUpdate=Gt:Lr.next=Gt,vr.lastBaseUpdate=At)}}if(ne!==null){Lr=V.baseState,Se=0,vr=Gt=At=null;do{Ue=ne.lane;var Xt=ne.eventTime;if((H&Ue)===Ue){vr!==null&&(vr=vr.next={eventTime:Xt,lane:0,tag:ne.tag,payload:ne.payload,callback:ne.callback,next:null});e:{var zn=v,yi=ne;switch(Ue=D,Xt=Q,yi.tag){case 1:if(zn=yi.payload,typeof zn=="function"){Lr=zn.call(Xt,Lr,Ue);break e}Lr=zn;break e;case 3:zn.flags=zn.flags&-4097|64;case 0:if(zn=yi.payload,Ue=typeof zn=="function"?zn.call(Xt,Lr,Ue):zn,Ue==null)break e;Lr=s({},Lr,Ue);break e;case 2:Dl=!0}}ne.callback!==null&&(v.flags|=32,Ue=V.effects,Ue===null?V.effects=[ne]:Ue.push(ne))}else Xt={eventTime:Xt,lane:Ue,tag:ne.tag,payload:ne.payload,callback:ne.callback,next:null},vr===null?(Gt=vr=Xt,At=Lr):vr=vr.next=Xt,Se|=Ue;if(ne=ne.next,ne===null){if(Ue=V.shared.pending,Ue===null)break;ne=Ue.next,Ue.next=null,V.lastBaseUpdate=Ue,V.shared.pending=null}}while(!0);vr===null&&(At=Lr),V.baseState=At,V.firstBaseUpdate=Gt,V.lastBaseUpdate=vr,Zg|=Se,v.lanes=Se,v.memoizedState=Lr}}function Ey(v,D,Q){if(v=D.effects,D.effects=null,v!==null)for(D=0;D<v.length;D++){var H=v[D],V=H.callback;if(V!==null){if(H.callback=null,H=Q,typeof V!="function")throw Error(c(191,V));V.call(H)}}}var Iy=new a.Component().refs;function jA(v,D,Q,H){D=v.memoizedState,Q=Q(H,D),Q=Q==null?D:s({},D,Q),v.memoizedState=Q,v.lanes===0&&(v.updateQueue.baseState=Q)}var qA={isMounted:function(v){return(v=v._reactInternals)?we(v)===v:!1},enqueueSetState:function(v,D,Q){v=v._reactInternals;var H=To(),V=Ss(v),ne=bl(H,V);ne.payload=D,Q!=null&&(ne.callback=Q),Pl(v,ne),Rl(v,V,H)},enqueueReplaceState:function(v,D,Q){v=v._reactInternals;var H=To(),V=Ss(v),ne=bl(H,V);ne.tag=1,ne.payload=D,Q!=null&&(ne.callback=Q),Pl(v,ne),Rl(v,V,H)},enqueueForceUpdate:function(v,D){v=v._reactInternals;var Q=To(),H=Ss(v),V=bl(Q,H);V.tag=2,D!=null&&(V.callback=D),Pl(v,V),Rl(v,H,Q)}};function Y(v,D,Q,H,V,ne,Se){return v=v.stateNode,typeof v.shouldComponentUpdate=="function"?v.shouldComponentUpdate(H,ne,Se):D.prototype&&D.prototype.isPureReactComponent?!Ch(Q,H)||!Ch(V,ne):!0}function xt(v,D,Q){var H=!1,V=ca,ne=D.contextType;return typeof ne=="object"&&ne!==null?ne=Po(ne):(V=Jn(D)?Oa:qi.current,H=D.contextTypes,ne=(H=H!=null)?dn(v,V):ca),D=new D(Q,ne),v.memoizedState=D.state!==null&&D.state!==void 0?D.state:null,D.updater=qA,v.stateNode=D,D._reactInternals=v,H&&(v=v.stateNode,v.__reactInternalMemoizedUnmaskedChildContext=V,v.__reactInternalMemoizedMaskedChildContext=ne),D}function GA(v,D,Q,H){v=D.state,typeof D.componentWillReceiveProps=="function"&&D.componentWillReceiveProps(Q,H),typeof D.UNSAFE_componentWillReceiveProps=="function"&&D.UNSAFE_componentWillReceiveProps(Q,H),D.state!==v&&qA.enqueueReplaceState(D,D.state,null)}function xo(v,D,Q,H){var V=v.stateNode;V.props=Q,V.state=v.memoizedState,V.refs=Iy,Sh(v);var ne=D.contextType;typeof ne=="object"&&ne!==null?V.context=Po(ne):(ne=Jn(D)?Oa:qi.current,V.context=dn(v,ne)),HA(v,Q,V,H),V.state=v.memoizedState,ne=D.getDerivedStateFromProps,typeof ne=="function"&&(jA(v,D,ne,Q),V.state=v.memoizedState),typeof D.getDerivedStateFromProps=="function"||typeof V.getSnapshotBeforeUpdate=="function"||typeof V.UNSAFE_componentWillMount!="function"&&typeof V.componentWillMount!="function"||(D=V.state,typeof V.componentWillMount=="function"&&V.componentWillMount(),typeof V.UNSAFE_componentWillMount=="function"&&V.UNSAFE_componentWillMount(),D!==V.state&&qA.enqueueReplaceState(V,V.state,null),HA(v,Q,V,H),V.state=v.memoizedState),typeof V.componentDidMount=="function"&&(v.flags|=4)}var yf=Array.isArray;function mt(v,D,Q){if(v=Q.ref,v!==null&&typeof v!="function"&&typeof v!="object"){if(Q._owner){if(Q=Q._owner,Q){if(Q.tag!==1)throw Error(c(309));var H=Q.stateNode}if(!H)throw Error(c(147,v));var V=""+v;return D!==null&&D.ref!==null&&typeof D.ref=="function"&&D.ref._stringRef===V?D.ref:(D=function(ne){var Se=H.refs;Se===Iy&&(Se=H.refs={}),ne===null?delete Se[V]:Se[V]=ne},D._stringRef=V,D)}if(typeof v!="string")throw Error(c(284));if(!Q._owner)throw Error(c(290,v))}return v}function mu(v,D){if(v.type!=="textarea")throw Error(c(31,Object.prototype.toString.call(D)==="[object Object]"?"object with keys {"+Object.keys(D).join(", ")+"}":D))}function Cy(v){function D($e,qe){if(v){var ht=$e.lastEffect;ht!==null?(ht.nextEffect=qe,$e.lastEffect=qe):$e.firstEffect=$e.lastEffect=qe,qe.nextEffect=null,qe.flags=8}}function Q($e,qe){if(!v)return null;for(;qe!==null;)D($e,qe),qe=qe.sibling;return null}function H($e,qe){for($e=new Map;qe!==null;)qe.key!==null?$e.set(qe.key,qe):$e.set(qe.index,qe),qe=qe.sibling;return $e}function V($e,qe){return $e=bu($e,qe),$e.index=0,$e.sibling=null,$e}function ne($e,qe,ht){return $e.index=ht,v?(ht=$e.alternate,ht!==null?(ht=ht.index,ht<qe?($e.flags=2,qe):ht):($e.flags=2,qe)):qe}function Se($e){return v&&$e.alternate===null&&($e.flags=2),$e}function Ue($e,qe,ht,Zt){return qe===null||qe.tag!==6?(qe=b2(ht,$e.mode,Zt),qe.return=$e,qe):(qe=V(qe,ht),qe.return=$e,qe)}function At($e,qe,ht,Zt){return qe!==null&&qe.elementType===ht.type?(Zt=V(qe,ht.props),Zt.ref=mt($e,qe,ht),Zt.return=$e,Zt):(Zt=id(ht.type,ht.key,ht.props,null,$e.mode,Zt),Zt.ref=mt($e,qe,ht),Zt.return=$e,Zt)}function Gt($e,qe,ht,Zt){return qe===null||qe.tag!==4||qe.stateNode.containerInfo!==ht.containerInfo||qe.stateNode.implementation!==ht.implementation?(qe=Ro(ht,$e.mode,Zt),qe.return=$e,qe):(qe=V(qe,ht.children||[]),qe.return=$e,qe)}function vr($e,qe,ht,Zt,Sr){return qe===null||qe.tag!==7?(qe=Qf(ht,$e.mode,Zt,Sr),qe.return=$e,qe):(qe=V(qe,ht),qe.return=$e,qe)}function Lr($e,qe,ht){if(typeof qe=="string"||typeof qe=="number")return qe=b2(""+qe,$e.mode,ht),qe.return=$e,qe;if(typeof qe=="object"&&qe!==null){switch(qe.$$typeof){case p:return ht=id(qe.type,qe.key,qe.props,null,$e.mode,ht),ht.ref=mt($e,null,qe),ht.return=$e,ht;case h:return qe=Ro(qe,$e.mode,ht),qe.return=$e,qe}if(yf(qe)||Ce(qe))return qe=Qf(qe,$e.mode,ht,null),qe.return=$e,qe;mu($e,qe)}return null}function Xt($e,qe,ht,Zt){var Sr=qe!==null?qe.key:null;if(typeof ht=="string"||typeof ht=="number")return Sr!==null?null:Ue($e,qe,""+ht,Zt);if(typeof ht=="object"&&ht!==null){switch(ht.$$typeof){case p:return ht.key===Sr?ht.type===E?vr($e,qe,ht.props.children,Zt,Sr):At($e,qe,ht,Zt):null;case h:return ht.key===Sr?Gt($e,qe,ht,Zt):null}if(yf(ht)||Ce(ht))return Sr!==null?null:vr($e,qe,ht,Zt,null);mu($e,ht)}return null}function zn($e,qe,ht,Zt,Sr){if(typeof Zt=="string"||typeof Zt=="number")return $e=$e.get(ht)||null,Ue(qe,$e,""+Zt,Sr);if(typeof Zt=="object"&&Zt!==null){switch(Zt.$$typeof){case p:return $e=$e.get(Zt.key===null?ht:Zt.key)||null,Zt.type===E?vr(qe,$e,Zt.props.children,Sr,Zt.key):At(qe,$e,Zt,Sr);case h:return $e=$e.get(Zt.key===null?ht:Zt.key)||null,Gt(qe,$e,Zt,Sr)}if(yf(Zt)||Ce(Zt))return $e=$e.get(ht)||null,vr(qe,$e,Zt,Sr,null);mu(qe,Zt)}return null}function yi($e,qe,ht,Zt){for(var Sr=null,Xn=null,kr=qe,Rn=qe=0,Un=null;kr!==null&&Rn<ht.length;Rn++){kr.index>Rn?(Un=kr,kr=null):Un=kr.sibling;var zr=Xt($e,kr,ht[Rn],Zt);if(zr===null){kr===null&&(kr=Un);break}v&&kr&&zr.alternate===null&&D($e,kr),qe=ne(zr,qe,Rn),Xn===null?Sr=zr:Xn.sibling=zr,Xn=zr,kr=Un}if(Rn===ht.length)return Q($e,kr),Sr;if(kr===null){for(;Rn<ht.length;Rn++)kr=Lr($e,ht[Rn],Zt),kr!==null&&(qe=ne(kr,qe,Rn),Xn===null?Sr=kr:Xn.sibling=kr,Xn=kr);return Sr}for(kr=H($e,kr);Rn<ht.length;Rn++)Un=zn(kr,$e,Rn,ht[Rn],Zt),Un!==null&&(v&&Un.alternate!==null&&kr.delete(Un.key===null?Rn:Un.key),qe=ne(Un,qe,Rn),Xn===null?Sr=Un:Xn.sibling=Un,Xn=Un);return v&&kr.forEach(function(ci){return D($e,ci)}),Sr}function Za($e,qe,ht,Zt){var Sr=Ce(ht);if(typeof Sr!="function")throw Error(c(150));if(ht=Sr.call(ht),ht==null)throw Error(c(151));for(var Xn=Sr=null,kr=qe,Rn=qe=0,Un=null,zr=ht.next();kr!==null&&!zr.done;Rn++,zr=ht.next()){kr.index>Rn?(Un=kr,kr=null):Un=kr.sibling;var ci=Xt($e,kr,zr.value,Zt);if(ci===null){kr===null&&(kr=Un);break}v&&kr&&ci.alternate===null&&D($e,kr),qe=ne(ci,qe,Rn),Xn===null?Sr=ci:Xn.sibling=ci,Xn=ci,kr=Un}if(zr.done)return Q($e,kr),Sr;if(kr===null){for(;!zr.done;Rn++,zr=ht.next())zr=Lr($e,zr.value,Zt),zr!==null&&(qe=ne(zr,qe,Rn),Xn===null?Sr=zr:Xn.sibling=zr,Xn=zr);return Sr}for(kr=H($e,kr);!zr.done;Rn++,zr=ht.next())zr=zn(kr,$e,Rn,zr.value,Zt),zr!==null&&(v&&zr.alternate!==null&&kr.delete(zr.key===null?Rn:zr.key),qe=ne(zr,qe,Rn),Xn===null?Sr=zr:Xn.sibling=zr,Xn=zr);return v&&kr.forEach(function(Pu){return D($e,Pu)}),Sr}return function($e,qe,ht,Zt){var Sr=typeof ht=="object"&&ht!==null&&ht.type===E&&ht.key===null;Sr&&(ht=ht.props.children);var Xn=typeof ht=="object"&&ht!==null;if(Xn)switch(ht.$$typeof){case p:e:{for(Xn=ht.key,Sr=qe;Sr!==null;){if(Sr.key===Xn){switch(Sr.tag){case 7:if(ht.type===E){Q($e,Sr.sibling),qe=V(Sr,ht.props.children),qe.return=$e,$e=qe;break e}break;default:if(Sr.elementType===ht.type){Q($e,Sr.sibling),qe=V(Sr,ht.props),qe.ref=mt($e,Sr,ht),qe.return=$e,$e=qe;break e}}Q($e,Sr);break}else D($e,Sr);Sr=Sr.sibling}ht.type===E?(qe=Qf(ht.props.children,$e.mode,Zt,ht.key),qe.return=$e,$e=qe):(Zt=id(ht.type,ht.key,ht.props,null,$e.mode,Zt),Zt.ref=mt($e,qe,ht),Zt.return=$e,$e=Zt)}return Se($e);case h:e:{for(Sr=ht.key;qe!==null;){if(qe.key===Sr)if(qe.tag===4&&qe.stateNode.containerInfo===ht.containerInfo&&qe.stateNode.implementation===ht.implementation){Q($e,qe.sibling),qe=V(qe,ht.children||[]),qe.return=$e,$e=qe;break e}else{Q($e,qe);break}else D($e,qe);qe=qe.sibling}qe=Ro(ht,$e.mode,Zt),qe.return=$e,$e=qe}return Se($e)}if(typeof ht=="string"||typeof ht=="number")return ht=""+ht,qe!==null&&qe.tag===6?(Q($e,qe.sibling),qe=V(qe,ht),qe.return=$e,$e=qe):(Q($e,qe),qe=b2(ht,$e.mode,Zt),qe.return=$e,$e=qe),Se($e);if(yf(ht))return yi($e,qe,ht,Zt);if(Ce(ht))return Za($e,qe,ht,Zt);if(Xn&&mu($e,ht),typeof ht>"u"&&!Sr)switch($e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(c(152,g($e.type)||"Component"))}return Q($e,qe)}}var Lg=Cy(!0),e2=Cy(!1),Dh={},ur=so(Dh),Zi=so(Dh),Ef=so(Dh);function Wa(v){if(v===Dh)throw Error(c(174));return v}function Mg(v,D){xn(Ef,D),xn(Zi,v),xn(ur,Dh),v=dt(D),Rt(ur),xn(ur,v)}function yu(){Rt(ur),Rt(Zi),Rt(Ef)}function If(v){var D=Wa(Ef.current),Q=Wa(ur.current);D=j(Q,v.type,D),Q!==D&&(xn(Zi,v),xn(ur,D))}function wt(v){Zi.current===v&&(Rt(ur),Rt(Zi))}var di=so(0);function WA(v){for(var D=v;D!==null;){if(D.tag===13){var Q=D.memoizedState;if(Q!==null&&(Q=Q.dehydrated,Q===null||gr(Q)||So(Q)))return D}else if(D.tag===19&&D.memoizedProps.revealOrder!==void 0){if(D.flags&64)return D}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===v)break;for(;D.sibling===null;){if(D.return===null||D.return===v)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}return null}var Ya=null,pa=null,Va=!1;function _g(v,D){var Q=za(5,null,null,0);Q.elementType="DELETED",Q.type="DELETED",Q.stateNode=D,Q.return=v,Q.flags=8,v.lastEffect!==null?(v.lastEffect.nextEffect=Q,v.lastEffect=Q):v.firstEffect=v.lastEffect=Q}function bh(v,D){switch(v.tag){case 5:return D=la(D,v.type,v.pendingProps),D!==null?(v.stateNode=D,!0):!1;case 6:return D=OA(D,v.pendingProps),D!==null?(v.stateNode=D,!0):!1;case 13:return!1;default:return!1}}function Ug(v){if(Va){var D=pa;if(D){var Q=D;if(!bh(v,D)){if(D=Me(Q),!D||!bh(v,D)){v.flags=v.flags&-1025|2,Va=!1,Ya=v;return}_g(Ya,Q)}Ya=v,pa=fu(D)}else v.flags=v.flags&-1025|2,Va=!1,Ya=v}}function wy(v){for(v=v.return;v!==null&&v.tag!==5&&v.tag!==3&&v.tag!==13;)v=v.return;Ya=v}function YA(v){if(!Z||v!==Ya)return!1;if(!Va)return wy(v),Va=!0,!1;var D=v.type;if(v.tag!==5||D!=="head"&&D!=="body"&&!it(D,v.memoizedProps))for(D=pa;D;)_g(v,D),D=Me(D);if(wy(v),v.tag===13){if(!Z)throw Error(c(316));if(v=v.memoizedState,v=v!==null?v.dehydrated:null,!v)throw Error(c(317));pa=LA(v)}else pa=Ya?Me(v.stateNode):null;return!0}function Hg(){Z&&(pa=Ya=null,Va=!1)}var Eu=[];function Iu(){for(var v=0;v<Eu.length;v++){var D=Eu[v];y?D._workInProgressVersionPrimary=null:D._workInProgressVersionSecondary=null}Eu.length=0}var Cf=f.ReactCurrentDispatcher,Ns=f.ReactCurrentBatchConfig,Cu=0,qn=null,ss=null,ki=null,VA=!1,wf=!1;function mn(){throw Error(c(321))}function jg(v,D){if(D===null)return!1;for(var Q=0;Q<D.length&&Q<v.length;Q++)if(!Do(v[Q],D[Q]))return!1;return!0}function qg(v,D,Q,H,V,ne){if(Cu=ne,qn=D,D.memoizedState=null,D.updateQueue=null,D.lanes=0,Cf.current=v===null||v.memoizedState===null?O:J,v=Q(H,V),wf){ne=0;do{if(wf=!1,!(25>ne))throw Error(c(301));ne+=1,ki=ss=null,D.updateQueue=null,Cf.current=re,v=Q(H,V)}while(wf)}if(Cf.current=kt,D=ss!==null&&ss.next!==null,Cu=0,ki=ss=qn=null,VA=!1,D)throw Error(c(300));return v}function os(){var v={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ki===null?qn.memoizedState=ki=v:ki=ki.next=v,ki}function xl(){if(ss===null){var v=qn.alternate;v=v!==null?v.memoizedState:null}else v=ss.next;var D=ki===null?qn.memoizedState:ki.next;if(D!==null)ki=D,ss=v;else{if(v===null)throw Error(c(310));ss=v,v={memoizedState:ss.memoizedState,baseState:ss.baseState,baseQueue:ss.baseQueue,queue:ss.queue,next:null},ki===null?qn.memoizedState=ki=v:ki=ki.next=v}return ki}function ko(v,D){return typeof D=="function"?D(v):D}function Bf(v){var D=xl(),Q=D.queue;if(Q===null)throw Error(c(311));Q.lastRenderedReducer=v;var H=ss,V=H.baseQueue,ne=Q.pending;if(ne!==null){if(V!==null){var Se=V.next;V.next=ne.next,ne.next=Se}H.baseQueue=V=ne,Q.pending=null}if(V!==null){V=V.next,H=H.baseState;var Ue=Se=ne=null,At=V;do{var Gt=At.lane;if((Cu&Gt)===Gt)Ue!==null&&(Ue=Ue.next={lane:0,action:At.action,eagerReducer:At.eagerReducer,eagerState:At.eagerState,next:null}),H=At.eagerReducer===v?At.eagerState:v(H,At.action);else{var vr={lane:Gt,action:At.action,eagerReducer:At.eagerReducer,eagerState:At.eagerState,next:null};Ue===null?(Se=Ue=vr,ne=H):Ue=Ue.next=vr,qn.lanes|=Gt,Zg|=Gt}At=At.next}while(At!==null&&At!==V);Ue===null?ne=H:Ue.next=Se,Do(H,D.memoizedState)||(Ke=!0),D.memoizedState=H,D.baseState=ne,D.baseQueue=Ue,Q.lastRenderedState=H}return[D.memoizedState,Q.dispatch]}function vf(v){var D=xl(),Q=D.queue;if(Q===null)throw Error(c(311));Q.lastRenderedReducer=v;var H=Q.dispatch,V=Q.pending,ne=D.memoizedState;if(V!==null){Q.pending=null;var Se=V=V.next;do ne=v(ne,Se.action),Se=Se.next;while(Se!==V);Do(ne,D.memoizedState)||(Ke=!0),D.memoizedState=ne,D.baseQueue===null&&(D.baseState=ne),Q.lastRenderedState=ne}return[ne,H]}function kl(v,D,Q){var H=D._getVersion;H=H(D._source);var V=y?D._workInProgressVersionPrimary:D._workInProgressVersionSecondary;if(V!==null?v=V===H:(v=v.mutableReadLanes,(v=(Cu&v)===v)&&(y?D._workInProgressVersionPrimary=H:D._workInProgressVersionSecondary=H,Eu.push(D))),v)return Q(D._source);throw Eu.push(D),Error(c(350))}function yn(v,D,Q,H){var V=ao;if(V===null)throw Error(c(349));var ne=D._getVersion,Se=ne(D._source),Ue=Cf.current,At=Ue.useState(function(){return kl(V,D,Q)}),Gt=At[1],vr=At[0];At=ki;var Lr=v.memoizedState,Xt=Lr.refs,zn=Xt.getSnapshot,yi=Lr.source;Lr=Lr.subscribe;var Za=qn;return v.memoizedState={refs:Xt,source:D,subscribe:H},Ue.useEffect(function(){Xt.getSnapshot=Q,Xt.setSnapshot=Gt;var $e=ne(D._source);if(!Do(Se,$e)){$e=Q(D._source),Do(vr,$e)||(Gt($e),$e=Ss(Za),V.mutableReadLanes|=$e&V.pendingLanes),$e=V.mutableReadLanes,V.entangledLanes|=$e;for(var qe=V.entanglements,ht=$e;0<ht;){var Zt=31-is(ht),Sr=1<<Zt;qe[Zt]|=$e,ht&=~Sr}}},[Q,D,H]),Ue.useEffect(function(){return H(D._source,function(){var $e=Xt.getSnapshot,qe=Xt.setSnapshot;try{qe($e(D._source));var ht=Ss(Za);V.mutableReadLanes|=ht&V.pendingLanes}catch(Zt){qe(function(){throw Zt})}})},[D,H]),Do(zn,Q)&&Do(yi,D)&&Do(Lr,H)||(v={pending:null,dispatch:null,lastRenderedReducer:ko,lastRenderedState:vr},v.dispatch=Gt=Qh.bind(null,qn,v),At.queue=v,At.baseQueue=null,vr=kl(V,D,Q),At.memoizedState=At.baseState=vr),vr}function Qo(v,D,Q){var H=xl();return yn(H,v,D,Q)}function wu(v){var D=os();return typeof v=="function"&&(v=v()),D.memoizedState=D.baseState=v,v=D.queue={pending:null,dispatch:null,lastRenderedReducer:ko,lastRenderedState:v},v=v.dispatch=Qh.bind(null,qn,v),[D.memoizedState,v]}function ha(v,D,Q,H){return v={tag:v,create:D,destroy:Q,deps:H,next:null},D=qn.updateQueue,D===null?(D={lastEffect:null},qn.updateQueue=D,D.lastEffect=v.next=v):(Q=D.lastEffect,Q===null?D.lastEffect=v.next=v:(H=Q.next,Q.next=v,v.next=H,D.lastEffect=v)),v}function Os(v){var D=os();return v={current:v},D.memoizedState=v}function Ph(){return xl().memoizedState}function KA(v,D,Q,H){var V=os();qn.flags|=v,V.memoizedState=ha(1|D,Q,void 0,H===void 0?null:H)}function Sf(v,D,Q,H){var V=xl();H=H===void 0?null:H;var ne=void 0;if(ss!==null){var Se=ss.memoizedState;if(ne=Se.destroy,H!==null&&jg(H,Se.deps)){ha(D,Q,ne,H);return}}qn.flags|=v,V.memoizedState=ha(1|D,Q,ne,H)}function oo(v,D){return KA(516,4,v,D)}function Xr(v,D){return Sf(516,4,v,D)}function xh(v,D){return Sf(4,2,v,D)}function JA(v,D){if(typeof D=="function")return v=v(),D(v),function(){D(null)};if(D!=null)return v=v(),D.current=v,function(){D.current=null}}function By(v,D,Q){return Q=Q!=null?Q.concat([v]):null,Sf(4,2,JA.bind(null,D,v),Q)}function Gg(){}function kh(v,D){var Q=xl();D=D===void 0?null:D;var H=Q.memoizedState;return H!==null&&D!==null&&jg(D,H[1])?H[0]:(Q.memoizedState=[v,D],v)}function hc(v,D){var Q=xl();D=D===void 0?null:D;var H=Q.memoizedState;return H!==null&&D!==null&&jg(D,H[1])?H[0]:(v=v(),Q.memoizedState=[v,D],v)}function vy(v,D){var Q=tr();li(98>Q?98:Q,function(){v(!0)}),li(97<Q?97:Q,function(){var H=Ns.transition;Ns.transition=1;try{v(!1),D()}finally{Ns.transition=H}})}function Qh(v,D,Q){var H=To(),V=Ss(v),ne={lane:V,action:Q,eagerReducer:null,eagerState:null,next:null},Se=D.pending;if(Se===null?ne.next=ne:(ne.next=Se.next,Se.next=ne),D.pending=ne,Se=v.alternate,v===qn||Se!==null&&Se===qn)wf=VA=!0;else{if(v.lanes===0&&(Se===null||Se.lanes===0)&&(Se=D.lastRenderedReducer,Se!==null))try{var Ue=D.lastRenderedState,At=Se(Ue,Q);if(ne.eagerReducer=Se,ne.eagerState=At,Do(At,Ue))return}catch{}finally{}Rl(v,V,H)}}var kt={readContext:Po,useCallback:mn,useContext:mn,useEffect:mn,useImperativeHandle:mn,useLayoutEffect:mn,useMemo:mn,useReducer:mn,useRef:mn,useState:mn,useDebugValue:mn,useDeferredValue:mn,useTransition:mn,useMutableSource:mn,useOpaqueIdentifier:mn,unstable_isNewReconciler:!1},O={readContext:Po,useCallback:function(v,D){return os().memoizedState=[v,D===void 0?null:D],v},useContext:Po,useEffect:oo,useImperativeHandle:function(v,D,Q){return Q=Q!=null?Q.concat([v]):null,KA(4,2,JA.bind(null,D,v),Q)},useLayoutEffect:function(v,D){return KA(4,2,v,D)},useMemo:function(v,D){var Q=os();return D=D===void 0?null:D,v=v(),Q.memoizedState=[v,D],v},useReducer:function(v,D,Q){var H=os();return D=Q!==void 0?Q(D):D,H.memoizedState=H.baseState=D,v=H.queue={pending:null,dispatch:null,lastRenderedReducer:v,lastRenderedState:D},v=v.dispatch=Qh.bind(null,qn,v),[H.memoizedState,v]},useRef:Os,useState:wu,useDebugValue:Gg,useDeferredValue:function(v){var D=wu(v),Q=D[0],H=D[1];return oo(function(){var V=Ns.transition;Ns.transition=1;try{H(v)}finally{Ns.transition=V}},[v]),Q},useTransition:function(){var v=wu(!1),D=v[0];return v=vy.bind(null,v[1]),Os(v),[v,D]},useMutableSource:function(v,D,Q){var H=os();return H.memoizedState={refs:{getSnapshot:D,setSnapshot:null},source:v,subscribe:Q},yn(H,v,D,Q)},useOpaqueIdentifier:function(){if(Va){var v=!1,D=oe(function(){throw v||(v=!0,Q(xe())),Error(c(355))}),Q=wu(D)[1];return!(qn.mode&2)&&(qn.flags|=516,ha(5,function(){Q(xe())},void 0,null)),D}return D=xe(),wu(D),D},unstable_isNewReconciler:!1},J={readContext:Po,useCallback:kh,useContext:Po,useEffect:Xr,useImperativeHandle:By,useLayoutEffect:xh,useMemo:hc,useReducer:Bf,useRef:Ph,useState:function(){return Bf(ko)},useDebugValue:Gg,useDeferredValue:function(v){var D=Bf(ko),Q=D[0],H=D[1];return Xr(function(){var V=Ns.transition;Ns.transition=1;try{H(v)}finally{Ns.transition=V}},[v]),Q},useTransition:function(){var v=Bf(ko)[0];return[Ph().current,v]},useMutableSource:Qo,useOpaqueIdentifier:function(){return Bf(ko)[0]},unstable_isNewReconciler:!1},re={readContext:Po,useCallback:kh,useContext:Po,useEffect:Xr,useImperativeHandle:By,useLayoutEffect:xh,useMemo:hc,useReducer:vf,useRef:Ph,useState:function(){return vf(ko)},useDebugValue:Gg,useDeferredValue:function(v){var D=vf(ko),Q=D[0],H=D[1];return Xr(function(){var V=Ns.transition;Ns.transition=1;try{H(v)}finally{Ns.transition=V}},[v]),Q},useTransition:function(){var v=vf(ko)[0];return[Ph().current,v]},useMutableSource:Qo,useOpaqueIdentifier:function(){return vf(ko)[0]},unstable_isNewReconciler:!1},de=f.ReactCurrentOwner,Ke=!1;function ft(v,D,Q,H){D.child=v===null?e2(D,null,Q,H):Lg(D,v.child,Q,H)}function dr(v,D,Q,H,V){Q=Q.render;var ne=D.ref;return mf(D,V),H=qg(v,D,Q,H,ne,V),v!==null&&!Ke?(D.updateQueue=v.updateQueue,D.flags&=-517,v.lanes&=~V,Gn(v,D,V)):(D.flags|=1,ft(v,D,H,V),D.child)}function Br(v,D,Q,H,V,ne){if(v===null){var Se=Q.type;return typeof Se=="function"&&!S2(Se)&&Se.defaultProps===void 0&&Q.compare===null&&Q.defaultProps===void 0?(D.tag=15,D.type=Se,_n(v,D,Se,H,V,ne)):(v=id(Q.type,null,H,D,D.mode,ne),v.ref=D.ref,v.return=D,D.child=v)}return Se=v.child,!(V&ne)&&(V=Se.memoizedProps,Q=Q.compare,Q=Q!==null?Q:Ch,Q(V,H)&&v.ref===D.ref)?Gn(v,D,ne):(D.flags|=1,v=bu(Se,H),v.ref=D.ref,v.return=D,D.child=v)}function _n(v,D,Q,H,V,ne){if(v!==null&&Ch(v.memoizedProps,H)&&v.ref===D.ref)if(Ke=!1,(ne&V)!==0)v.flags&16384&&(Ke=!0);else return D.lanes=v.lanes,Gn(v,D,ne);return zA(v,D,Q,H,ne)}function mi(v,D,Q){var H=D.pendingProps,V=H.children,ne=v!==null?v.memoizedState:null;if(H.mode==="hidden"||H.mode==="unstable-defer-without-hiding")if(!(D.mode&4))D.memoizedState={baseLanes:0},jy(D,Q);else if(Q&1073741824)D.memoizedState={baseLanes:0},jy(D,ne!==null?ne.baseLanes:Q);else return v=ne!==null?ne.baseLanes|Q:Q,D.lanes=D.childLanes=1073741824,D.memoizedState={baseLanes:v},jy(D,v),null;else ne!==null?(H=ne.baseLanes|Q,D.memoizedState=null):H=Q,jy(D,H);return ft(v,D,V,Q),D.child}function Bs(v,D){var Q=D.ref;(v===null&&Q!==null||v!==null&&v.ref!==Q)&&(D.flags|=128)}function zA(v,D,Q,H,V){var ne=Jn(Q)?Oa:qi.current;return ne=dn(D,ne),mf(D,V),Q=qg(v,D,Q,H,ne,V),v!==null&&!Ke?(D.updateQueue=v.updateQueue,D.flags&=-517,v.lanes&=~V,Gn(v,D,V)):(D.flags|=1,ft(v,D,Q,V),D.child)}function dP(v,D,Q,H,V){if(Jn(Q)){var ne=!0;Ma(D)}else ne=!1;if(mf(D,V),D.stateNode===null)v!==null&&(v.alternate=null,D.alternate=null,D.flags|=2),xt(D,Q,H),xo(D,Q,H,V),H=!0;else if(v===null){var Se=D.stateNode,Ue=D.memoizedProps;Se.props=Ue;var At=Se.context,Gt=Q.contextType;typeof Gt=="object"&&Gt!==null?Gt=Po(Gt):(Gt=Jn(Q)?Oa:qi.current,Gt=dn(D,Gt));var vr=Q.getDerivedStateFromProps,Lr=typeof vr=="function"||typeof Se.getSnapshotBeforeUpdate=="function";Lr||typeof Se.UNSAFE_componentWillReceiveProps!="function"&&typeof Se.componentWillReceiveProps!="function"||(Ue!==H||At!==Gt)&&GA(D,Se,H,Gt),Dl=!1;var Xt=D.memoizedState;Se.state=Xt,HA(D,H,Se,V),At=D.memoizedState,Ue!==H||Xt!==At||Mi.current||Dl?(typeof vr=="function"&&(jA(D,Q,vr,H),At=D.memoizedState),(Ue=Dl||Y(D,Q,Ue,H,Xt,At,Gt))?(Lr||typeof Se.UNSAFE_componentWillMount!="function"&&typeof Se.componentWillMount!="function"||(typeof Se.componentWillMount=="function"&&Se.componentWillMount(),typeof Se.UNSAFE_componentWillMount=="function"&&Se.UNSAFE_componentWillMount()),typeof Se.componentDidMount=="function"&&(D.flags|=4)):(typeof Se.componentDidMount=="function"&&(D.flags|=4),D.memoizedProps=H,D.memoizedState=At),Se.props=H,Se.state=At,Se.context=Gt,H=Ue):(typeof Se.componentDidMount=="function"&&(D.flags|=4),H=!1)}else{Se=D.stateNode,Og(v,D),Ue=D.memoizedProps,Gt=D.type===D.elementType?Ue:bo(D.type,Ue),Se.props=Gt,Lr=D.pendingProps,Xt=Se.context,At=Q.contextType,typeof At=="object"&&At!==null?At=Po(At):(At=Jn(Q)?Oa:qi.current,At=dn(D,At));var zn=Q.getDerivedStateFromProps;(vr=typeof zn=="function"||typeof Se.getSnapshotBeforeUpdate=="function")||typeof Se.UNSAFE_componentWillReceiveProps!="function"&&typeof Se.componentWillReceiveProps!="function"||(Ue!==Lr||Xt!==At)&&GA(D,Se,H,At),Dl=!1,Xt=D.memoizedState,Se.state=Xt,HA(D,H,Se,V);var yi=D.memoizedState;Ue!==Lr||Xt!==yi||Mi.current||Dl?(typeof zn=="function"&&(jA(D,Q,zn,H),yi=D.memoizedState),(Gt=Dl||Y(D,Q,Gt,H,Xt,yi,At))?(vr||typeof Se.UNSAFE_componentWillUpdate!="function"&&typeof Se.componentWillUpdate!="function"||(typeof Se.componentWillUpdate=="function"&&Se.componentWillUpdate(H,yi,At),typeof Se.UNSAFE_componentWillUpdate=="function"&&Se.UNSAFE_componentWillUpdate(H,yi,At)),typeof Se.componentDidUpdate=="function"&&(D.flags|=4),typeof Se.getSnapshotBeforeUpdate=="function"&&(D.flags|=256)):(typeof Se.componentDidUpdate!="function"||Ue===v.memoizedProps&&Xt===v.memoizedState||(D.flags|=4),typeof Se.getSnapshotBeforeUpdate!="function"||Ue===v.memoizedProps&&Xt===v.memoizedState||(D.flags|=256),D.memoizedProps=H,D.memoizedState=yi),Se.props=H,Se.state=yi,Se.context=At,H=Gt):(typeof Se.componentDidUpdate!="function"||Ue===v.memoizedProps&&Xt===v.memoizedState||(D.flags|=4),typeof Se.getSnapshotBeforeUpdate!="function"||Ue===v.memoizedProps&&Xt===v.memoizedState||(D.flags|=256),H=!1)}return t2(v,D,Q,H,ne,V)}function t2(v,D,Q,H,V,ne){Bs(v,D);var Se=(D.flags&64)!==0;if(!H&&!Se)return V&&Ua(D,Q,!1),Gn(v,D,ne);H=D.stateNode,de.current=D;var Ue=Se&&typeof Q.getDerivedStateFromError!="function"?null:H.render();return D.flags|=1,v!==null&&Se?(D.child=Lg(D,v.child,null,ne),D.child=Lg(D,null,Ue,ne)):ft(v,D,Ue,ne),D.memoizedState=H.state,V&&Ua(D,Q,!0),D.child}function Sy(v){var D=v.stateNode;D.pendingContext?Ih(v,D.pendingContext,D.pendingContext!==D.context):D.context&&Ih(v,D.context,!1),Mg(v,D.containerInfo)}var Th={dehydrated:null,retryLane:0};function r2(v,D,Q){var H=D.pendingProps,V=di.current,ne=!1,Se;return(Se=(D.flags&64)!==0)||(Se=v!==null&&v.memoizedState===null?!1:(V&2)!==0),Se?(ne=!0,D.flags&=-65):v!==null&&v.memoizedState===null||H.fallback===void 0||H.unstable_avoidThisFallback===!0||(V|=1),xn(di,V&1),v===null?(H.fallback!==void 0&&Ug(D),v=H.children,V=H.fallback,ne?(v=Ka(D,v,V,Q),D.child.memoizedState={baseLanes:Q},D.memoizedState=Th,v):typeof H.unstable_expectedLoadTime=="number"?(v=Ka(D,v,V,Q),D.child.memoizedState={baseLanes:Q},D.memoizedState=Th,D.lanes=33554432,v):(Q=D2({mode:"visible",children:v},D.mode,Q,null),Q.return=D,D.child=Q)):v.memoizedState!==null?ne?(H=ZA(v,D,H.children,H.fallback,Q),ne=D.child,V=v.child.memoizedState,ne.memoizedState=V===null?{baseLanes:Q}:{baseLanes:V.baseLanes|Q},ne.childLanes=v.childLanes&~Q,D.memoizedState=Th,H):(Q=n2(v,D,H.children,Q),D.memoizedState=null,Q):ne?(H=ZA(v,D,H.children,H.fallback,Q),ne=D.child,V=v.child.memoizedState,ne.memoizedState=V===null?{baseLanes:Q}:{baseLanes:V.baseLanes|Q},ne.childLanes=v.childLanes&~Q,D.memoizedState=Th,H):(Q=n2(v,D,H.children,Q),D.memoizedState=null,Q)}function Ka(v,D,Q,H){var V=v.mode,ne=v.child;return D={mode:"hidden",children:D},!(V&2)&&ne!==null?(ne.childLanes=0,ne.pendingProps=D):ne=D2(D,V,0,null),Q=Qf(Q,V,H,null),ne.return=v,Q.return=v,ne.sibling=Q,v.child=ne,Q}function n2(v,D,Q,H){var V=v.child;return v=V.sibling,Q=bu(V,{mode:"visible",children:Q}),!(D.mode&2)&&(Q.lanes=H),Q.return=D,Q.sibling=null,v!==null&&(v.nextEffect=null,v.flags=8,D.firstEffect=D.lastEffect=v),D.child=Q}function ZA(v,D,Q,H,V){var ne=D.mode,Se=v.child;v=Se.sibling;var Ue={mode:"hidden",children:Q};return!(ne&2)&&D.child!==Se?(Q=D.child,Q.childLanes=0,Q.pendingProps=Ue,Se=Q.lastEffect,Se!==null?(D.firstEffect=Q.firstEffect,D.lastEffect=Se,Se.nextEffect=null):D.firstEffect=D.lastEffect=null):Q=bu(Se,Ue),v!==null?H=bu(v,H):(H=Qf(H,ne,V,null),H.flags|=2),H.return=D,Q.return=D,Q.sibling=H,D.child=Q,H}function Rh(v,D){v.lanes|=D;var Q=v.alternate;Q!==null&&(Q.lanes|=D),my(v.return,D)}function Dy(v,D,Q,H,V,ne){var Se=v.memoizedState;Se===null?v.memoizedState={isBackwards:D,rendering:null,renderingStartTime:0,last:H,tail:Q,tailMode:V,lastEffect:ne}:(Se.isBackwards=D,Se.rendering=null,Se.renderingStartTime=0,Se.last=H,Se.tail=Q,Se.tailMode=V,Se.lastEffect=ne)}function mP(v,D,Q){var H=D.pendingProps,V=H.revealOrder,ne=H.tail;if(ft(v,D,H.children,Q),H=di.current,H&2)H=H&1|2,D.flags|=64;else{if(v!==null&&v.flags&64)e:for(v=D.child;v!==null;){if(v.tag===13)v.memoizedState!==null&&Rh(v,Q);else if(v.tag===19)Rh(v,Q);else if(v.child!==null){v.child.return=v,v=v.child;continue}if(v===D)break e;for(;v.sibling===null;){if(v.return===null||v.return===D)break e;v=v.return}v.sibling.return=v.return,v=v.sibling}H&=1}if(xn(di,H),!(D.mode&2))D.memoizedState=null;else switch(V){case"forwards":for(Q=D.child,V=null;Q!==null;)v=Q.alternate,v!==null&&WA(v)===null&&(V=Q),Q=Q.sibling;Q=V,Q===null?(V=D.child,D.child=null):(V=Q.sibling,Q.sibling=null),Dy(D,!1,V,Q,ne,D.lastEffect);break;case"backwards":for(Q=null,V=D.child,D.child=null;V!==null;){if(v=V.alternate,v!==null&&WA(v)===null){D.child=V;break}v=V.sibling,V.sibling=Q,Q=V,V=v}Dy(D,!0,Q,null,ne,D.lastEffect);break;case"together":Dy(D,!1,null,null,void 0,D.lastEffect);break;default:D.memoizedState=null}return D.child}function Gn(v,D,Q){if(v!==null&&(D.dependencies=v.dependencies),Zg|=D.lanes,Q&D.childLanes){if(v!==null&&D.child!==v.child)throw Error(c(153));if(D.child!==null){for(v=D.child,Q=bu(v,v.pendingProps),D.child=Q,Q.return=D;v.sibling!==null;)v=v.sibling,Q=Q.sibling=bu(v,v.pendingProps),Q.return=D;Q.sibling=null}return D.child}return null}function as(v){v.flags|=4}var Ql,Tl,Bu,ga;if(F)Ql=function(v,D){for(var Q=D.child;Q!==null;){if(Q.tag===5||Q.tag===6)Pe(v,Q.stateNode);else if(Q.tag!==4&&Q.child!==null){Q.child.return=Q,Q=Q.child;continue}if(Q===D)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===D)return;Q=Q.return}Q.sibling.return=Q.return,Q=Q.sibling}},Tl=function(){},Bu=function(v,D,Q,H,V){if(v=v.memoizedProps,v!==H){var ne=D.stateNode,Se=Wa(ur.current);Q=ke(ne,Q,v,H,V,Se),(D.updateQueue=Q)&&as(D)}},ga=function(v,D,Q,H){Q!==H&&as(D)};else if(z){Ql=function(v,D,Q,H){for(var V=D.child;V!==null;){if(V.tag===5){var ne=V.stateNode;Q&&H&&(ne=NA(ne,V.type,V.memoizedProps,V)),Pe(v,ne)}else if(V.tag===6)ne=V.stateNode,Q&&H&&(ne=aa(ne,V.memoizedProps,V)),Pe(v,ne);else if(V.tag!==4){if(V.tag===13&&V.flags&4&&(ne=V.memoizedState!==null)){var Se=V.child;if(Se!==null&&(Se.child!==null&&(Se.child.return=Se,Ql(v,Se,!0,ne)),ne=Se.sibling,ne!==null)){ne.return=V,V=ne;continue}}if(V.child!==null){V.child.return=V,V=V.child;continue}}if(V===D)break;for(;V.sibling===null;){if(V.return===null||V.return===D)return;V=V.return}V.sibling.return=V.return,V=V.sibling}};var XA=function(v,D,Q,H){for(var V=D.child;V!==null;){if(V.tag===5){var ne=V.stateNode;Q&&H&&(ne=NA(ne,V.type,V.memoizedProps,V)),cu(v,ne)}else if(V.tag===6)ne=V.stateNode,Q&&H&&(ne=aa(ne,V.memoizedProps,V)),cu(v,ne);else if(V.tag!==4){if(V.tag===13&&V.flags&4&&(ne=V.memoizedState!==null)){var Se=V.child;if(Se!==null&&(Se.child!==null&&(Se.child.return=Se,XA(v,Se,!0,ne)),ne=Se.sibling,ne!==null)){ne.return=V,V=ne;continue}}if(V.child!==null){V.child.return=V,V=V.child;continue}}if(V===D)break;for(;V.sibling===null;){if(V.return===null||V.return===D)return;V=V.return}V.sibling.return=V.return,V=V.sibling}};Tl=function(v){var D=v.stateNode;if(v.firstEffect!==null){var Q=D.containerInfo,H=lu(Q);XA(H,v,!1,!1),D.pendingChildren=H,as(v),uu(Q,H)}},Bu=function(v,D,Q,H,V){var ne=v.stateNode,Se=v.memoizedProps;if((v=D.firstEffect===null)&&Se===H)D.stateNode=ne;else{var Ue=D.stateNode,At=Wa(ur.current),Gt=null;Se!==H&&(Gt=ke(Ue,Q,Se,H,V,At)),v&&Gt===null?D.stateNode=ne:(ne=io(ne,Gt,Q,Se,H,D,v,Ue),Ye(ne,Q,H,V,At)&&as(D),D.stateNode=ne,v?as(D):Ql(ne,D,!1,!1))}},ga=function(v,D,Q,H){Q!==H?(v=Wa(Ef.current),Q=Wa(ur.current),D.stateNode=_e(H,v,Q,D),as(D)):D.stateNode=v.stateNode}}else Tl=function(){},Bu=function(){},ga=function(){};function $A(v,D){if(!Va)switch(v.tailMode){case"hidden":D=v.tail;for(var Q=null;D!==null;)D.alternate!==null&&(Q=D),D=D.sibling;Q===null?v.tail=null:Q.sibling=null;break;case"collapsed":Q=v.tail;for(var H=null;Q!==null;)Q.alternate!==null&&(H=Q),Q=Q.sibling;H===null?D||v.tail===null?v.tail=null:v.tail.sibling=null:H.sibling=null}}function WL(v,D,Q){var H=D.pendingProps;switch(D.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return Jn(D.type)&&hu(),null;case 3:return yu(),Rt(Mi),Rt(qi),Iu(),H=D.stateNode,H.pendingContext&&(H.context=H.pendingContext,H.pendingContext=null),(v===null||v.child===null)&&(YA(D)?as(D):H.hydrate||(D.flags|=256)),Tl(D),null;case 5:wt(D);var V=Wa(Ef.current);if(Q=D.type,v!==null&&D.stateNode!=null)Bu(v,D,Q,H,V),v.ref!==D.ref&&(D.flags|=128);else{if(!H){if(D.stateNode===null)throw Error(c(166));return null}if(v=Wa(ur.current),YA(D)){if(!Z)throw Error(c(175));v=Cr(D.stateNode,D.type,D.memoizedProps,V,v,D),D.updateQueue=v,v!==null&&as(D)}else{var ne=Ne(Q,H,V,v,D);Ql(ne,D,!1,!1),D.stateNode=ne,Ye(ne,Q,H,V,v)&&as(D)}D.ref!==null&&(D.flags|=128)}return null;case 6:if(v&&D.stateNode!=null)ga(v,D,v.memoizedProps,H);else{if(typeof H!="string"&&D.stateNode===null)throw Error(c(166));if(v=Wa(Ef.current),V=Wa(ur.current),YA(D)){if(!Z)throw Error(c(176));hf(D.stateNode,D.memoizedProps,D)&&as(D)}else D.stateNode=_e(H,v,V,D)}return null;case 13:return Rt(di),H=D.memoizedState,D.flags&64?(D.lanes=Q,D):(H=H!==null,V=!1,v===null?D.memoizedProps.fallback!==void 0&&YA(D):V=v.memoizedState!==null,H&&!V&&D.mode&2&&(v===null&&D.memoizedProps.unstable_avoidThisFallback!==!0||di.current&1?vs===0&&(vs=3):((vs===0||vs===3)&&(vs=4),ao===null||!(Zg&134217727)&&!(Oh&134217727)||Lh(ao,Ls))),z&&H&&(D.flags|=4),F&&(H||V)&&(D.flags|=4),null);case 4:return yu(),Tl(D),v===null&&It(D.stateNode.containerInfo),null;case 10:return Ng(D),null;case 17:return Jn(D.type)&&hu(),null;case 19:if(Rt(di),H=D.memoizedState,H===null)return null;if(V=(D.flags&64)!==0,ne=H.rendering,ne===null)if(V)$A(H,!1);else{if(vs!==0||v!==null&&v.flags&64)for(v=D.child;v!==null;){if(ne=WA(v),ne!==null){for(D.flags|=64,$A(H,!1),v=ne.updateQueue,v!==null&&(D.updateQueue=v,D.flags|=4),H.lastEffect===null&&(D.firstEffect=null),D.lastEffect=H.lastEffect,v=Q,H=D.child;H!==null;)V=H,Q=v,V.flags&=2,V.nextEffect=null,V.firstEffect=null,V.lastEffect=null,ne=V.alternate,ne===null?(V.childLanes=0,V.lanes=Q,V.child=null,V.memoizedProps=null,V.memoizedState=null,V.updateQueue=null,V.dependencies=null,V.stateNode=null):(V.childLanes=ne.childLanes,V.lanes=ne.lanes,V.child=ne.child,V.memoizedProps=ne.memoizedProps,V.memoizedState=ne.memoizedState,V.updateQueue=ne.updateQueue,V.type=ne.type,Q=ne.dependencies,V.dependencies=Q===null?null:{lanes:Q.lanes,firstContext:Q.firstContext}),H=H.sibling;return xn(di,di.current&1|2),D.child}v=v.sibling}H.tail!==null&&Dt()>m2&&(D.flags|=64,V=!0,$A(H,!1),D.lanes=33554432)}else{if(!V)if(v=WA(ne),v!==null){if(D.flags|=64,V=!0,v=v.updateQueue,v!==null&&(D.updateQueue=v,D.flags|=4),$A(H,!0),H.tail===null&&H.tailMode==="hidden"&&!ne.alternate&&!Va)return D=D.lastEffect=H.lastEffect,D!==null&&(D.nextEffect=null),null}else 2*Dt()-H.renderingStartTime>m2&&Q!==1073741824&&(D.flags|=64,V=!0,$A(H,!1),D.lanes=33554432);H.isBackwards?(ne.sibling=D.child,D.child=ne):(v=H.last,v!==null?v.sibling=ne:D.child=ne,H.last=ne)}return H.tail!==null?(v=H.tail,H.rendering=v,H.tail=v.sibling,H.lastEffect=D.lastEffect,H.renderingStartTime=Dt(),v.sibling=null,D=di.current,xn(di,V?D&1|2:D&1),v):null;case 23:case 24:return B2(),v!==null&&v.memoizedState!==null!=(D.memoizedState!==null)&&H.mode!=="unstable-defer-without-hiding"&&(D.flags|=4),null}throw Error(c(156,D.tag))}function YL(v){switch(v.tag){case 1:Jn(v.type)&&hu();var D=v.flags;return D&4096?(v.flags=D&-4097|64,v):null;case 3:if(yu(),Rt(Mi),Rt(qi),Iu(),D=v.flags,D&64)throw Error(c(285));return v.flags=D&-4097|64,v;case 5:return wt(v),null;case 13:return Rt(di),D=v.flags,D&4096?(v.flags=D&-4097|64,v):null;case 19:return Rt(di),null;case 4:return yu(),null;case 10:return Ng(v),null;case 23:case 24:return B2(),null;default:return null}}function Wg(v,D){try{var Q="",H=D;do Q+=$1(H),H=H.return;while(H);var V=Q}catch(ne){V=` +Error generating stack: `+ne.message+` +`+ne.stack}return{value:v,source:D,stack:V}}function Yg(v,D){try{console.error(D.value)}catch(Q){setTimeout(function(){throw Q})}}var VL=typeof WeakMap=="function"?WeakMap:Map;function i2(v,D,Q){Q=bl(-1,Q),Q.tag=3,Q.payload={element:null};var H=D.value;return Q.callback=function(){My||(My=!0,y2=H),Yg(v,D)},Q}function Vg(v,D,Q){Q=bl(-1,Q),Q.tag=3;var H=v.type.getDerivedStateFromError;if(typeof H=="function"){var V=D.value;Q.payload=function(){return Yg(v,D),H(V)}}var ne=v.stateNode;return ne!==null&&typeof ne.componentDidCatch=="function"&&(Q.callback=function(){typeof H!="function"&&(gc===null?gc=new Set([this]):gc.add(this),Yg(v,D));var Se=D.stack;this.componentDidCatch(D.value,{componentStack:Se!==null?Se:""})}),Q}var KL=typeof WeakSet=="function"?WeakSet:Set;function s2(v){var D=v.ref;if(D!==null)if(typeof D=="function")try{D(null)}catch(Q){kf(v,Q)}else D.current=null}function by(v,D){switch(D.tag){case 0:case 11:case 15:case 22:return;case 1:if(D.flags&256&&v!==null){var Q=v.memoizedProps,H=v.memoizedState;v=D.stateNode,D=v.getSnapshotBeforeUpdate(D.elementType===D.type?Q:bo(D.type,Q),H),v.__reactInternalSnapshotBeforeUpdate=D}return;case 3:F&&D.flags&256&&Fs(D.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(c(163))}function Fh(v,D){if(D=D.updateQueue,D=D!==null?D.lastEffect:null,D!==null){var Q=D=D.next;do{if((Q.tag&v)===v){var H=Q.destroy;Q.destroy=void 0,H!==void 0&&H()}Q=Q.next}while(Q!==D)}}function yP(v,D,Q){switch(Q.tag){case 0:case 11:case 15:case 22:if(D=Q.updateQueue,D=D!==null?D.lastEffect:null,D!==null){v=D=D.next;do{if((v.tag&3)===3){var H=v.create;v.destroy=H()}v=v.next}while(v!==D)}if(D=Q.updateQueue,D=D!==null?D.lastEffect:null,D!==null){v=D=D.next;do{var V=v;H=V.next,V=V.tag,V&4&&V&1&&(TP(Q,v),nM(Q,v)),v=H}while(v!==D)}return;case 1:v=Q.stateNode,Q.flags&4&&(D===null?v.componentDidMount():(H=Q.elementType===Q.type?D.memoizedProps:bo(Q.type,D.memoizedProps),v.componentDidUpdate(H,D.memoizedState,v.__reactInternalSnapshotBeforeUpdate))),D=Q.updateQueue,D!==null&&Ey(Q,D,v);return;case 3:if(D=Q.updateQueue,D!==null){if(v=null,Q.child!==null)switch(Q.child.tag){case 5:v=Re(Q.child.stateNode);break;case 1:v=Q.child.stateNode}Ey(Q,D,v)}return;case 5:v=Q.stateNode,D===null&&Q.flags&4&&to(v,Q.type,Q.memoizedProps,Q);return;case 6:return;case 4:return;case 12:return;case 13:Z&&Q.memoizedState===null&&(Q=Q.alternate,Q!==null&&(Q=Q.memoizedState,Q!==null&&(Q=Q.dehydrated,Q!==null&&Au(Q))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(c(163))}function EP(v,D){if(F)for(var Q=v;;){if(Q.tag===5){var H=Q.stateNode;D?yh(H):no(Q.stateNode,Q.memoizedProps)}else if(Q.tag===6)H=Q.stateNode,D?Eh(H):jn(H,Q.memoizedProps);else if((Q.tag!==23&&Q.tag!==24||Q.memoizedState===null||Q===v)&&Q.child!==null){Q.child.return=Q,Q=Q.child;continue}if(Q===v)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===v)return;Q=Q.return}Q.sibling.return=Q.return,Q=Q.sibling}}function Py(v,D){if(Ha&&typeof Ha.onCommitFiberUnmount=="function")try{Ha.onCommitFiberUnmount(Xe,D)}catch{}switch(D.tag){case 0:case 11:case 14:case 15:case 22:if(v=D.updateQueue,v!==null&&(v=v.lastEffect,v!==null)){var Q=v=v.next;do{var H=Q,V=H.destroy;if(H=H.tag,V!==void 0)if(H&4)TP(D,Q);else{H=D;try{V()}catch(ne){kf(H,ne)}}Q=Q.next}while(Q!==v)}break;case 1:if(s2(D),v=D.stateNode,typeof v.componentWillUnmount=="function")try{v.props=D.memoizedProps,v.state=D.memoizedState,v.componentWillUnmount()}catch(ne){kf(D,ne)}break;case 5:s2(D);break;case 4:F?BP(v,D):z&&z&&(D=D.stateNode.containerInfo,v=lu(D),FA(D,v))}}function IP(v,D){for(var Q=D;;)if(Py(v,Q),Q.child===null||F&&Q.tag===4){if(Q===D)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===D)return;Q=Q.return}Q.sibling.return=Q.return,Q=Q.sibling}else Q.child.return=Q,Q=Q.child}function xy(v){v.alternate=null,v.child=null,v.dependencies=null,v.firstEffect=null,v.lastEffect=null,v.memoizedProps=null,v.memoizedState=null,v.pendingProps=null,v.return=null,v.updateQueue=null}function CP(v){return v.tag===5||v.tag===3||v.tag===4}function wP(v){if(F){e:{for(var D=v.return;D!==null;){if(CP(D))break e;D=D.return}throw Error(c(160))}var Q=D;switch(D=Q.stateNode,Q.tag){case 5:var H=!1;break;case 3:D=D.containerInfo,H=!0;break;case 4:D=D.containerInfo,H=!0;break;default:throw Error(c(161))}Q.flags&16&&(pf(D),Q.flags&=-17);e:t:for(Q=v;;){for(;Q.sibling===null;){if(Q.return===null||CP(Q.return)){Q=null;break e}Q=Q.return}for(Q.sibling.return=Q.return,Q=Q.sibling;Q.tag!==5&&Q.tag!==6&&Q.tag!==18;){if(Q.flags&2||Q.child===null||Q.tag===4)continue t;Q.child.return=Q,Q=Q.child}if(!(Q.flags&2)){Q=Q.stateNode;break e}}H?o2(v,Q,D):a2(v,Q,D)}}function o2(v,D,Q){var H=v.tag,V=H===5||H===6;if(V)v=V?v.stateNode:v.stateNode.instance,D?ro(Q,v,D):wo(Q,v);else if(H!==4&&(v=v.child,v!==null))for(o2(v,D,Q),v=v.sibling;v!==null;)o2(v,D,Q),v=v.sibling}function a2(v,D,Q){var H=v.tag,V=H===5||H===6;if(V)v=V?v.stateNode:v.stateNode.instance,D?ji(Q,v,D):ai(Q,v);else if(H!==4&&(v=v.child,v!==null))for(a2(v,D,Q),v=v.sibling;v!==null;)a2(v,D,Q),v=v.sibling}function BP(v,D){for(var Q=D,H=!1,V,ne;;){if(!H){H=Q.return;e:for(;;){if(H===null)throw Error(c(160));switch(V=H.stateNode,H.tag){case 5:ne=!1;break e;case 3:V=V.containerInfo,ne=!0;break e;case 4:V=V.containerInfo,ne=!0;break e}H=H.return}H=!0}if(Q.tag===5||Q.tag===6)IP(v,Q),ne?RA(V,Q.stateNode):vo(V,Q.stateNode);else if(Q.tag===4){if(Q.child!==null){V=Q.stateNode.containerInfo,ne=!0,Q.child.return=Q,Q=Q.child;continue}}else if(Py(v,Q),Q.child!==null){Q.child.return=Q,Q=Q.child;continue}if(Q===D)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===D)return;Q=Q.return,Q.tag===4&&(H=!1)}Q.sibling.return=Q.return,Q=Q.sibling}}function l2(v,D){if(F){switch(D.tag){case 0:case 11:case 14:case 15:case 22:Fh(3,D);return;case 1:return;case 5:var Q=D.stateNode;if(Q!=null){var H=D.memoizedProps;v=v!==null?v.memoizedProps:H;var V=D.type,ne=D.updateQueue;D.updateQueue=null,ne!==null&&Bo(Q,ne,V,v,H,D)}return;case 6:if(D.stateNode===null)throw Error(c(162));Q=D.memoizedProps,ns(D.stateNode,v!==null?v.memoizedProps:Q,Q);return;case 3:Z&&(D=D.stateNode,D.hydrate&&(D.hydrate=!1,MA(D.containerInfo)));return;case 12:return;case 13:vP(D),Kg(D);return;case 19:Kg(D);return;case 17:return;case 23:case 24:EP(D,D.memoizedState!==null);return}throw Error(c(163))}switch(D.tag){case 0:case 11:case 14:case 15:case 22:Fh(3,D);return;case 12:return;case 13:vP(D),Kg(D);return;case 19:Kg(D);return;case 3:Z&&(Q=D.stateNode,Q.hydrate&&(Q.hydrate=!1,MA(Q.containerInfo)));break;case 23:case 24:return}e:if(z){switch(D.tag){case 1:case 5:case 6:case 20:break e;case 3:case 4:D=D.stateNode,FA(D.containerInfo,D.pendingChildren);break e}throw Error(c(163))}}function vP(v){v.memoizedState!==null&&(d2=Dt(),F&&EP(v.child,!0))}function Kg(v){var D=v.updateQueue;if(D!==null){v.updateQueue=null;var Q=v.stateNode;Q===null&&(Q=v.stateNode=new KL),D.forEach(function(H){var V=sM.bind(null,v,H);Q.has(H)||(Q.add(H),H.then(V,V))})}}function JL(v,D){return v!==null&&(v=v.memoizedState,v===null||v.dehydrated!==null)?(D=D.memoizedState,D!==null&&D.dehydrated===null):!1}var ky=0,Qy=1,Ty=2,Jg=3,Ry=4;if(typeof Symbol=="function"&&Symbol.for){var zg=Symbol.for;ky=zg("selector.component"),Qy=zg("selector.has_pseudo_class"),Ty=zg("selector.role"),Jg=zg("selector.test_id"),Ry=zg("selector.text")}function Fy(v){var D=$(v);if(D!=null){if(typeof D.memoizedProps["data-testname"]!="string")throw Error(c(364));return D}if(v=ir(v),v===null)throw Error(c(362));return v.stateNode.current}function Df(v,D){switch(D.$$typeof){case ky:if(v.type===D.value)return!0;break;case Qy:e:{D=D.value,v=[v,0];for(var Q=0;Q<v.length;){var H=v[Q++],V=v[Q++],ne=D[V];if(H.tag!==5||!Pr(H)){for(;ne!=null&&Df(H,ne);)V++,ne=D[V];if(V===D.length){D=!0;break e}else for(H=H.child;H!==null;)v.push(H,V),H=H.sibling}}D=!1}return D;case Ty:if(v.tag===5&&Ir(v.stateNode,D.value))return!0;break;case Ry:if((v.tag===5||v.tag===6)&&(v=gn(v),v!==null&&0<=v.indexOf(D.value)))return!0;break;case Jg:if(v.tag===5&&(v=v.memoizedProps["data-testname"],typeof v=="string"&&v.toLowerCase()===D.value.toLowerCase()))return!0;break;default:throw Error(c(365,D))}return!1}function bf(v){switch(v.$$typeof){case ky:return"<"+(g(v.value)||"Unknown")+">";case Qy:return":has("+(bf(v)||"")+")";case Ty:return'[role="'+v.value+'"]';case Ry:return'"'+v.value+'"';case Jg:return'[data-testname="'+v.value+'"]';default:throw Error(c(365,v))}}function c2(v,D){var Q=[];v=[v,0];for(var H=0;H<v.length;){var V=v[H++],ne=v[H++],Se=D[ne];if(V.tag!==5||!Pr(V)){for(;Se!=null&&Df(V,Se);)ne++,Se=D[ne];if(ne===D.length)Q.push(V);else for(V=V.child;V!==null;)v.push(V,ne),V=V.sibling}}return Q}function u2(v,D){if(!qt)throw Error(c(363));v=Fy(v),v=c2(v,D),D=[],v=Array.from(v);for(var Q=0;Q<v.length;){var H=v[Q++];if(H.tag===5)Pr(H)||D.push(H.stateNode);else for(H=H.child;H!==null;)v.push(H),H=H.sibling}return D}var Ny=null;function zL(v){if(Ny===null)try{var D=("require"+Math.random()).slice(0,7);Ny=(XS&&XS[D]).call(XS,"timers").setImmediate}catch{Ny=function(H){var V=new MessageChannel;V.port1.onmessage=H,V.port2.postMessage(void 0)}}return Ny(v)}var ZL=Math.ceil,Oy=f.ReactCurrentDispatcher,f2=f.ReactCurrentOwner,A2=f.IsSomeRendererActing,xr=0,ao=null,Xi=null,Ls=0,ep=0,p2=so(0),vs=0,Ly=null,Nh=0,Zg=0,Oh=0,h2=0,g2=null,d2=0,m2=1/0;function Pf(){m2=Dt()+500}var sr=null,My=!1,y2=null,gc=null,xf=!1,Xg=null,$g=90,E2=[],I2=[],vu=null,ed=0,C2=null,_y=-1,Su=0,Uy=0,td=null,rd=!1;function To(){return xr&48?Dt():_y!==-1?_y:_y=Dt()}function Ss(v){if(v=v.mode,!(v&2))return 1;if(!(v&4))return tr()===99?1:2;if(Su===0&&(Su=Nh),gy.transition!==0){Uy!==0&&(Uy=g2!==null?g2.pendingLanes:0),v=Su;var D=4186112&~Uy;return D&=-D,D===0&&(v=4186112&~v,D=v&-v,D===0&&(D=8192)),D}return v=tr(),xr&4&&v===98?v=Mt(12,Su):(v=_A(v),v=Mt(v,Su)),v}function Rl(v,D,Q){if(50<ed)throw ed=0,C2=null,Error(c(185));if(v=Hy(v,D),v===null)return null;ja(v,D,Q),v===ao&&(Oh|=D,vs===4&&Lh(v,Ls));var H=tr();D===1?xr&8&&!(xr&48)?w2(v):(da(v,Q),xr===0&&(Pf(),Tn())):(!(xr&4)||H!==98&&H!==99||(vu===null?vu=new Set([v]):vu.add(v)),da(v,Q)),g2=v}function Hy(v,D){v.lanes|=D;var Q=v.alternate;for(Q!==null&&(Q.lanes|=D),Q=v,v=v.return;v!==null;)v.childLanes|=D,Q=v.alternate,Q!==null&&(Q.childLanes|=D),Q=v,v=v.return;return Q.tag===3?Q.stateNode:null}function da(v,D){for(var Q=v.callbackNode,H=v.suspendedLanes,V=v.pingedLanes,ne=v.expirationTimes,Se=v.pendingLanes;0<Se;){var Ue=31-is(Se),At=1<<Ue,Gt=ne[Ue];if(Gt===-1){if(!(At&H)||At&V){Gt=D,ua(At);var vr=wn;ne[Ue]=10<=vr?Gt+250:6<=vr?Gt+5e3:-1}}else Gt<=D&&(v.expiredLanes|=At);Se&=~At}if(H=fa(v,v===ao?Ls:0),D=wn,H===0)Q!==null&&(Q!==lr&&ws(Q),v.callbackNode=null,v.callbackPriority=0);else{if(Q!==null){if(v.callbackPriority===D)return;Q!==lr&&ws(Q)}D===15?(Q=w2.bind(null,v),Ee===null?(Ee=[Q],Oe=_i(Qn,Ga)):Ee.push(Q),Q=lr):D===14?Q=Gi(99,w2.bind(null,v)):(Q=UA(D),Q=Gi(Q,SP.bind(null,v))),v.callbackPriority=D,v.callbackNode=Q}}function SP(v){if(_y=-1,Uy=Su=0,xr&48)throw Error(c(327));var D=v.callbackNode;if(Du()&&v.callbackNode!==D)return null;var Q=fa(v,v===ao?Ls:0);if(Q===0)return null;var H=Q,V=xr;xr|=16;var ne=xP();(ao!==v||Ls!==H)&&(Pf(),Mh(v,H));do try{eM();break}catch(Ue){PP(v,Ue)}while(!0);if(Rg(),Oy.current=ne,xr=V,Xi!==null?H=0:(ao=null,Ls=0,H=vs),Nh&Oh)Mh(v,0);else if(H!==0){if(H===2&&(xr|=64,v.hydrate&&(v.hydrate=!1,Fs(v.containerInfo)),Q=vl(v),Q!==0&&(H=nd(v,Q))),H===1)throw D=Ly,Mh(v,0),Lh(v,Q),da(v,Dt()),D;switch(v.finishedWork=v.current.alternate,v.finishedLanes=Q,H){case 0:case 1:throw Error(c(345));case 2:tp(v);break;case 3:if(Lh(v,Q),(Q&62914560)===Q&&(H=d2+500-Dt(),10<H)){if(fa(v,0)!==0)break;if(V=v.suspendedLanes,(V&Q)!==Q){To(),v.pingedLanes|=v.suspendedLanes&V;break}v.timeoutHandle=x(tp.bind(null,v),H);break}tp(v);break;case 4:if(Lh(v,Q),(Q&4186112)===Q)break;for(H=v.eventTimes,V=-1;0<Q;){var Se=31-is(Q);ne=1<<Se,Se=H[Se],Se>V&&(V=Se),Q&=~ne}if(Q=V,Q=Dt()-Q,Q=(120>Q?120:480>Q?480:1080>Q?1080:1920>Q?1920:3e3>Q?3e3:4320>Q?4320:1960*ZL(Q/1960))-Q,10<Q){v.timeoutHandle=x(tp.bind(null,v),Q);break}tp(v);break;case 5:tp(v);break;default:throw Error(c(329))}}return da(v,Dt()),v.callbackNode===D?SP.bind(null,v):null}function Lh(v,D){for(D&=~h2,D&=~Oh,v.suspendedLanes|=D,v.pingedLanes&=~D,v=v.expirationTimes;0<D;){var Q=31-is(D),H=1<<Q;v[Q]=-1,D&=~H}}function w2(v){if(xr&48)throw Error(c(327));if(Du(),v===ao&&v.expiredLanes&Ls){var D=Ls,Q=nd(v,D);Nh&Oh&&(D=fa(v,D),Q=nd(v,D))}else D=fa(v,0),Q=nd(v,D);if(v.tag!==0&&Q===2&&(xr|=64,v.hydrate&&(v.hydrate=!1,Fs(v.containerInfo)),D=vl(v),D!==0&&(Q=nd(v,D))),Q===1)throw Q=Ly,Mh(v,0),Lh(v,D),da(v,Dt()),Q;return v.finishedWork=v.current.alternate,v.finishedLanes=D,tp(v),da(v,Dt()),null}function XL(){if(vu!==null){var v=vu;vu=null,v.forEach(function(D){D.expiredLanes|=24&D.pendingLanes,da(D,Dt())})}Tn()}function DP(v,D){var Q=xr;xr|=1;try{return v(D)}finally{xr=Q,xr===0&&(Pf(),Tn())}}function bP(v,D){var Q=xr;if(Q&48)return v(D);xr|=1;try{if(v)return li(99,v.bind(null,D))}finally{xr=Q,Tn()}}function jy(v,D){xn(p2,ep),ep|=D,Nh|=D}function B2(){ep=p2.current,Rt(p2)}function Mh(v,D){v.finishedWork=null,v.finishedLanes=0;var Q=v.timeoutHandle;if(Q!==b&&(v.timeoutHandle=b,w(Q)),Xi!==null)for(Q=Xi.return;Q!==null;){var H=Q;switch(H.tag){case 1:H=H.type.childContextTypes,H!=null&&hu();break;case 3:yu(),Rt(Mi),Rt(qi),Iu();break;case 5:wt(H);break;case 4:yu();break;case 13:Rt(di);break;case 19:Rt(di);break;case 10:Ng(H);break;case 23:case 24:B2()}Q=Q.return}ao=v,Xi=bu(v.current,null),Ls=ep=Nh=D,vs=0,Ly=null,h2=Oh=Zg=0}function PP(v,D){do{var Q=Xi;try{if(Rg(),Cf.current=kt,VA){for(var H=qn.memoizedState;H!==null;){var V=H.queue;V!==null&&(V.pending=null),H=H.next}VA=!1}if(Cu=0,ki=ss=qn=null,wf=!1,f2.current=null,Q===null||Q.return===null){vs=1,Ly=D,Xi=null;break}e:{var ne=v,Se=Q.return,Ue=Q,At=D;if(D=Ls,Ue.flags|=2048,Ue.firstEffect=Ue.lastEffect=null,At!==null&&typeof At=="object"&&typeof At.then=="function"){var Gt=At;if(!(Ue.mode&2)){var vr=Ue.alternate;vr?(Ue.updateQueue=vr.updateQueue,Ue.memoizedState=vr.memoizedState,Ue.lanes=vr.lanes):(Ue.updateQueue=null,Ue.memoizedState=null)}var Lr=(di.current&1)!==0,Xt=Se;do{var zn;if(zn=Xt.tag===13){var yi=Xt.memoizedState;if(yi!==null)zn=yi.dehydrated!==null;else{var Za=Xt.memoizedProps;zn=Za.fallback===void 0?!1:Za.unstable_avoidThisFallback!==!0?!0:!Lr}}if(zn){var $e=Xt.updateQueue;if($e===null){var qe=new Set;qe.add(Gt),Xt.updateQueue=qe}else $e.add(Gt);if(!(Xt.mode&2)){if(Xt.flags|=64,Ue.flags|=16384,Ue.flags&=-2981,Ue.tag===1)if(Ue.alternate===null)Ue.tag=17;else{var ht=bl(-1,1);ht.tag=2,Pl(Ue,ht)}Ue.lanes|=1;break e}At=void 0,Ue=D;var Zt=ne.pingCache;if(Zt===null?(Zt=ne.pingCache=new VL,At=new Set,Zt.set(Gt,At)):(At=Zt.get(Gt),At===void 0&&(At=new Set,Zt.set(Gt,At))),!At.has(Ue)){At.add(Ue);var Sr=FP.bind(null,ne,Gt,Ue);Gt.then(Sr,Sr)}Xt.flags|=4096,Xt.lanes=D;break e}Xt=Xt.return}while(Xt!==null);At=Error((g(Ue.type)||"A React component")+` suspended while rendering, but no fallback UI was specified. + +Add a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.`)}vs!==5&&(vs=2),At=Wg(At,Ue),Xt=Se;do{switch(Xt.tag){case 3:ne=At,Xt.flags|=4096,D&=-D,Xt.lanes|=D;var Xn=i2(Xt,ne,D);yy(Xt,Xn);break e;case 1:ne=At;var kr=Xt.type,Rn=Xt.stateNode;if(!(Xt.flags&64)&&(typeof kr.getDerivedStateFromError=="function"||Rn!==null&&typeof Rn.componentDidCatch=="function"&&(gc===null||!gc.has(Rn)))){Xt.flags|=4096,D&=-D,Xt.lanes|=D;var Un=Vg(Xt,ne,D);yy(Xt,Un);break e}}Xt=Xt.return}while(Xt!==null)}QP(Q)}catch(zr){D=zr,Xi===Q&&Q!==null&&(Xi=Q=Q.return);continue}break}while(!0)}function xP(){var v=Oy.current;return Oy.current=kt,v===null?kt:v}function nd(v,D){var Q=xr;xr|=16;var H=xP();ao===v&&Ls===D||Mh(v,D);do try{$L();break}catch(V){PP(v,V)}while(!0);if(Rg(),xr=Q,Oy.current=H,Xi!==null)throw Error(c(261));return ao=null,Ls=0,vs}function $L(){for(;Xi!==null;)kP(Xi)}function eM(){for(;Xi!==null&&!Sl();)kP(Xi)}function kP(v){var D=NP(v.alternate,v,ep);v.memoizedProps=v.pendingProps,D===null?QP(v):Xi=D,f2.current=null}function QP(v){var D=v;do{var Q=D.alternate;if(v=D.return,D.flags&2048){if(Q=YL(D),Q!==null){Q.flags&=2047,Xi=Q;return}v!==null&&(v.firstEffect=v.lastEffect=null,v.flags|=2048)}else{if(Q=WL(Q,D,ep),Q!==null){Xi=Q;return}if(Q=D,Q.tag!==24&&Q.tag!==23||Q.memoizedState===null||ep&1073741824||!(Q.mode&4)){for(var H=0,V=Q.child;V!==null;)H|=V.lanes|V.childLanes,V=V.sibling;Q.childLanes=H}v!==null&&!(v.flags&2048)&&(v.firstEffect===null&&(v.firstEffect=D.firstEffect),D.lastEffect!==null&&(v.lastEffect!==null&&(v.lastEffect.nextEffect=D.firstEffect),v.lastEffect=D.lastEffect),1<D.flags&&(v.lastEffect!==null?v.lastEffect.nextEffect=D:v.firstEffect=D,v.lastEffect=D))}if(D=D.sibling,D!==null){Xi=D;return}Xi=D=v}while(D!==null);vs===0&&(vs=5)}function tp(v){var D=tr();return li(99,tM.bind(null,v,D)),null}function tM(v,D){do Du();while(Xg!==null);if(xr&48)throw Error(c(327));var Q=v.finishedWork;if(Q===null)return null;if(v.finishedWork=null,v.finishedLanes=0,Q===v.current)throw Error(c(177));v.callbackNode=null;var H=Q.lanes|Q.childLanes,V=H,ne=v.pendingLanes&~V;v.pendingLanes=V,v.suspendedLanes=0,v.pingedLanes=0,v.expiredLanes&=V,v.mutableReadLanes&=V,v.entangledLanes&=V,V=v.entanglements;for(var Se=v.eventTimes,Ue=v.expirationTimes;0<ne;){var At=31-is(ne),Gt=1<<At;V[At]=0,Se[At]=-1,Ue[At]=-1,ne&=~Gt}if(vu!==null&&!(H&24)&&vu.has(v)&&vu.delete(v),v===ao&&(Xi=ao=null,Ls=0),1<Q.flags?Q.lastEffect!==null?(Q.lastEffect.nextEffect=Q,H=Q.firstEffect):H=Q:H=Q.firstEffect,H!==null){V=xr,xr|=32,f2.current=null,td=rt(v.containerInfo),rd=!1,sr=H;do try{rM()}catch(qe){if(sr===null)throw Error(c(330));kf(sr,qe),sr=sr.nextEffect}while(sr!==null);td=null,sr=H;do try{for(Se=v;sr!==null;){var vr=sr.flags;if(vr&16&&F&&pf(sr.stateNode),vr&128){var Lr=sr.alternate;if(Lr!==null){var Xt=Lr.ref;Xt!==null&&(typeof Xt=="function"?Xt(null):Xt.current=null)}}switch(vr&1038){case 2:wP(sr),sr.flags&=-3;break;case 6:wP(sr),sr.flags&=-3,l2(sr.alternate,sr);break;case 1024:sr.flags&=-1025;break;case 1028:sr.flags&=-1025,l2(sr.alternate,sr);break;case 4:l2(sr.alternate,sr);break;case 8:Ue=Se,ne=sr,F?BP(Ue,ne):IP(Ue,ne);var zn=ne.alternate;xy(ne),zn!==null&&xy(zn)}sr=sr.nextEffect}}catch(qe){if(sr===null)throw Error(c(330));kf(sr,qe),sr=sr.nextEffect}while(sr!==null);rd&<(),Fe(v.containerInfo),v.current=Q,sr=H;do try{for(vr=v;sr!==null;){var yi=sr.flags;if(yi&36&&yP(vr,sr.alternate,sr),yi&128){Lr=void 0;var Za=sr.ref;if(Za!==null){var $e=sr.stateNode;switch(sr.tag){case 5:Lr=Re($e);break;default:Lr=$e}typeof Za=="function"?Za(Lr):Za.current=Lr}}sr=sr.nextEffect}}catch(qe){if(sr===null)throw Error(c(330));kf(sr,qe),sr=sr.nextEffect}while(sr!==null);sr=null,ee(),xr=V}else v.current=Q;if(xf)xf=!1,Xg=v,$g=D;else for(sr=H;sr!==null;)D=sr.nextEffect,sr.nextEffect=null,sr.flags&8&&(yi=sr,yi.sibling=null,yi.stateNode=null),sr=D;if(H=v.pendingLanes,H===0&&(gc=null),H===1?v===C2?ed++:(ed=0,C2=v):ed=0,Q=Q.stateNode,Ha&&typeof Ha.onCommitFiberRoot=="function")try{Ha.onCommitFiberRoot(Xe,Q,void 0,(Q.current.flags&64)===64)}catch{}if(da(v,Dt()),My)throw My=!1,v=y2,y2=null,v;return xr&8||Tn(),null}function rM(){for(;sr!==null;){var v=sr.alternate;rd||td===null||(sr.flags&8?De(sr,td)&&(rd=!0,Te()):sr.tag===13&&JL(v,sr)&&De(sr,td)&&(rd=!0,Te()));var D=sr.flags;D&256&&by(v,sr),!(D&512)||xf||(xf=!0,Gi(97,function(){return Du(),null})),sr=sr.nextEffect}}function Du(){if($g!==90){var v=97<$g?97:$g;return $g=90,li(v,iM)}return!1}function nM(v,D){E2.push(D,v),xf||(xf=!0,Gi(97,function(){return Du(),null}))}function TP(v,D){I2.push(D,v),xf||(xf=!0,Gi(97,function(){return Du(),null}))}function iM(){if(Xg===null)return!1;var v=Xg;if(Xg=null,xr&48)throw Error(c(331));var D=xr;xr|=32;var Q=I2;I2=[];for(var H=0;H<Q.length;H+=2){var V=Q[H],ne=Q[H+1],Se=V.destroy;if(V.destroy=void 0,typeof Se=="function")try{Se()}catch(At){if(ne===null)throw Error(c(330));kf(ne,At)}}for(Q=E2,E2=[],H=0;H<Q.length;H+=2){V=Q[H],ne=Q[H+1];try{var Ue=V.create;V.destroy=Ue()}catch(At){if(ne===null)throw Error(c(330));kf(ne,At)}}for(Ue=v.current.firstEffect;Ue!==null;)v=Ue.nextEffect,Ue.nextEffect=null,Ue.flags&8&&(Ue.sibling=null,Ue.stateNode=null),Ue=v;return xr=D,Tn(),!0}function RP(v,D,Q){D=Wg(Q,D),D=i2(v,D,1),Pl(v,D),D=To(),v=Hy(v,1),v!==null&&(ja(v,1,D),da(v,D))}function kf(v,D){if(v.tag===3)RP(v,v,D);else for(var Q=v.return;Q!==null;){if(Q.tag===3){RP(Q,v,D);break}else if(Q.tag===1){var H=Q.stateNode;if(typeof Q.type.getDerivedStateFromError=="function"||typeof H.componentDidCatch=="function"&&(gc===null||!gc.has(H))){v=Wg(D,v);var V=Vg(Q,v,1);if(Pl(Q,V),V=To(),Q=Hy(Q,1),Q!==null)ja(Q,1,V),da(Q,V);else if(typeof H.componentDidCatch=="function"&&(gc===null||!gc.has(H)))try{H.componentDidCatch(D,v)}catch{}break}}Q=Q.return}}function FP(v,D,Q){var H=v.pingCache;H!==null&&H.delete(D),D=To(),v.pingedLanes|=v.suspendedLanes&Q,ao===v&&(Ls&Q)===Q&&(vs===4||vs===3&&(Ls&62914560)===Ls&&500>Dt()-d2?Mh(v,0):h2|=Q),da(v,D)}function sM(v,D){var Q=v.stateNode;Q!==null&&Q.delete(D),D=0,D===0&&(D=v.mode,D&2?D&4?(Su===0&&(Su=Nh),D=kn(62914560&~Su),D===0&&(D=4194304)):D=tr()===99?1:2:D=1),Q=To(),v=Hy(v,D),v!==null&&(ja(v,D,Q),da(v,Q))}var NP;NP=function(v,D,Q){var H=D.lanes;if(v!==null)if(v.memoizedProps!==D.pendingProps||Mi.current)Ke=!0;else if(Q&H)Ke=!!(v.flags&16384);else{switch(Ke=!1,D.tag){case 3:Sy(D),Hg();break;case 5:If(D);break;case 1:Jn(D.type)&&Ma(D);break;case 4:Mg(D,D.stateNode.containerInfo);break;case 10:Fg(D,D.memoizedProps.value);break;case 13:if(D.memoizedState!==null)return Q&D.child.childLanes?r2(v,D,Q):(xn(di,di.current&1),D=Gn(v,D,Q),D!==null?D.sibling:null);xn(di,di.current&1);break;case 19:if(H=(Q&D.childLanes)!==0,v.flags&64){if(H)return mP(v,D,Q);D.flags|=64}var V=D.memoizedState;if(V!==null&&(V.rendering=null,V.tail=null,V.lastEffect=null),xn(di,di.current),H)break;return null;case 23:case 24:return D.lanes=0,mi(v,D,Q)}return Gn(v,D,Q)}else Ke=!1;switch(D.lanes=0,D.tag){case 2:if(H=D.type,v!==null&&(v.alternate=null,D.alternate=null,D.flags|=2),v=D.pendingProps,V=dn(D,qi.current),mf(D,Q),V=qg(null,D,H,v,V,Q),D.flags|=1,typeof V=="object"&&V!==null&&typeof V.render=="function"&&V.$$typeof===void 0){if(D.tag=1,D.memoizedState=null,D.updateQueue=null,Jn(H)){var ne=!0;Ma(D)}else ne=!1;D.memoizedState=V.state!==null&&V.state!==void 0?V.state:null,Sh(D);var Se=H.getDerivedStateFromProps;typeof Se=="function"&&jA(D,H,Se,v),V.updater=qA,D.stateNode=V,V._reactInternals=D,xo(D,H,v,Q),D=t2(null,D,H,!0,ne,Q)}else D.tag=0,ft(null,D,V,Q),D=D.child;return D;case 16:V=D.elementType;e:{switch(v!==null&&(v.alternate=null,D.alternate=null,D.flags|=2),v=D.pendingProps,ne=V._init,V=ne(V._payload),D.type=V,ne=D.tag=aM(V),v=bo(V,v),ne){case 0:D=zA(null,D,V,v,Q);break e;case 1:D=dP(null,D,V,v,Q);break e;case 11:D=dr(null,D,V,v,Q);break e;case 14:D=Br(null,D,V,bo(V.type,v),H,Q);break e}throw Error(c(306,V,""))}return D;case 0:return H=D.type,V=D.pendingProps,V=D.elementType===H?V:bo(H,V),zA(v,D,H,V,Q);case 1:return H=D.type,V=D.pendingProps,V=D.elementType===H?V:bo(H,V),dP(v,D,H,V,Q);case 3:if(Sy(D),H=D.updateQueue,v===null||H===null)throw Error(c(282));if(H=D.pendingProps,V=D.memoizedState,V=V!==null?V.element:null,Og(v,D),HA(D,H,null,Q),H=D.memoizedState.element,H===V)Hg(),D=Gn(v,D,Q);else{if(V=D.stateNode,(ne=V.hydrate)&&(Z?(pa=fu(D.stateNode.containerInfo),Ya=D,ne=Va=!0):ne=!1),ne){if(Z&&(v=V.mutableSourceEagerHydrationData,v!=null))for(V=0;V<v.length;V+=2)ne=v[V],Se=v[V+1],y?ne._workInProgressVersionPrimary=Se:ne._workInProgressVersionSecondary=Se,Eu.push(ne);for(Q=e2(D,null,H,Q),D.child=Q;Q;)Q.flags=Q.flags&-3|1024,Q=Q.sibling}else ft(v,D,H,Q),Hg();D=D.child}return D;case 5:return If(D),v===null&&Ug(D),H=D.type,V=D.pendingProps,ne=v!==null?v.memoizedProps:null,Se=V.children,it(H,V)?Se=null:ne!==null&&it(H,ne)&&(D.flags|=16),Bs(v,D),ft(v,D,Se,Q),D.child;case 6:return v===null&&Ug(D),null;case 13:return r2(v,D,Q);case 4:return Mg(D,D.stateNode.containerInfo),H=D.pendingProps,v===null?D.child=Lg(D,null,H,Q):ft(v,D,H,Q),D.child;case 11:return H=D.type,V=D.pendingProps,V=D.elementType===H?V:bo(H,V),dr(v,D,H,V,Q);case 7:return ft(v,D,D.pendingProps,Q),D.child;case 8:return ft(v,D,D.pendingProps.children,Q),D.child;case 12:return ft(v,D,D.pendingProps.children,Q),D.child;case 10:e:{if(H=D.type._context,V=D.pendingProps,Se=D.memoizedProps,ne=V.value,Fg(D,ne),Se!==null){var Ue=Se.value;if(ne=Do(Ue,ne)?0:(typeof H._calculateChangedBits=="function"?H._calculateChangedBits(Ue,ne):1073741823)|0,ne===0){if(Se.children===V.children&&!Mi.current){D=Gn(v,D,Q);break e}}else for(Ue=D.child,Ue!==null&&(Ue.return=D);Ue!==null;){var At=Ue.dependencies;if(At!==null){Se=Ue.child;for(var Gt=At.firstContext;Gt!==null;){if(Gt.context===H&&Gt.observedBits&ne){Ue.tag===1&&(Gt=bl(-1,Q&-Q),Gt.tag=2,Pl(Ue,Gt)),Ue.lanes|=Q,Gt=Ue.alternate,Gt!==null&&(Gt.lanes|=Q),my(Ue.return,Q),At.lanes|=Q;break}Gt=Gt.next}}else Se=Ue.tag===10&&Ue.type===D.type?null:Ue.child;if(Se!==null)Se.return=Ue;else for(Se=Ue;Se!==null;){if(Se===D){Se=null;break}if(Ue=Se.sibling,Ue!==null){Ue.return=Se.return,Se=Ue;break}Se=Se.return}Ue=Se}}ft(v,D,V.children,Q),D=D.child}return D;case 9:return V=D.type,ne=D.pendingProps,H=ne.children,mf(D,Q),V=Po(V,ne.unstable_observedBits),H=H(V),D.flags|=1,ft(v,D,H,Q),D.child;case 14:return V=D.type,ne=bo(V,D.pendingProps),ne=bo(V.type,ne),Br(v,D,V,ne,H,Q);case 15:return _n(v,D,D.type,D.pendingProps,H,Q);case 17:return H=D.type,V=D.pendingProps,V=D.elementType===H?V:bo(H,V),v!==null&&(v.alternate=null,D.alternate=null,D.flags|=2),D.tag=1,Jn(H)?(v=!0,Ma(D)):v=!1,mf(D,Q),xt(D,H,V),xo(D,H,V,Q),t2(null,D,H,!0,v,Q);case 19:return mP(v,D,Q);case 23:return mi(v,D,Q);case 24:return mi(v,D,Q)}throw Error(c(156,D.tag))};var qy={current:!1},Ms=n.unstable_flushAllWithoutAsserting,OP=typeof Ms=="function";function v2(){if(Ms!==void 0)return Ms();for(var v=!1;Du();)v=!0;return v}function ma(v){try{v2(),zL(function(){v2()?ma(v):v()})}catch(D){v(D)}}var Ja=0,Gy=!1;function oM(v,D,Q,H){this.tag=v,this.key=Q,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=D,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=H,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function za(v,D,Q,H){return new oM(v,D,Q,H)}function S2(v){return v=v.prototype,!(!v||!v.isReactComponent)}function aM(v){if(typeof v=="function")return S2(v)?1:0;if(v!=null){if(v=v.$$typeof,v===R)return 11;if(v===W)return 14}return 2}function bu(v,D){var Q=v.alternate;return Q===null?(Q=za(v.tag,D,v.key,v.mode),Q.elementType=v.elementType,Q.type=v.type,Q.stateNode=v.stateNode,Q.alternate=v,v.alternate=Q):(Q.pendingProps=D,Q.type=v.type,Q.flags=0,Q.nextEffect=null,Q.firstEffect=null,Q.lastEffect=null),Q.childLanes=v.childLanes,Q.lanes=v.lanes,Q.child=v.child,Q.memoizedProps=v.memoizedProps,Q.memoizedState=v.memoizedState,Q.updateQueue=v.updateQueue,D=v.dependencies,Q.dependencies=D===null?null:{lanes:D.lanes,firstContext:D.firstContext},Q.sibling=v.sibling,Q.index=v.index,Q.ref=v.ref,Q}function id(v,D,Q,H,V,ne){var Se=2;if(H=v,typeof v=="function")S2(v)&&(Se=1);else if(typeof v=="string")Se=5;else e:switch(v){case E:return Qf(Q.children,V,ne,D);case Ae:Se=8,V|=16;break;case C:Se=8,V|=1;break;case S:return v=za(12,Q,D,V|8),v.elementType=S,v.type=S,v.lanes=ne,v;case N:return v=za(13,Q,D,V),v.type=N,v.elementType=N,v.lanes=ne,v;case U:return v=za(19,Q,D,V),v.elementType=U,v.lanes=ne,v;case ce:return D2(Q,V,ne,D);case me:return v=za(24,Q,D,V),v.elementType=me,v.lanes=ne,v;default:if(typeof v=="object"&&v!==null)switch(v.$$typeof){case P:Se=10;break e;case I:Se=9;break e;case R:Se=11;break e;case W:Se=14;break e;case te:Se=16,H=null;break e;case ie:Se=22;break e}throw Error(c(130,v==null?v:typeof v,""))}return D=za(Se,Q,D,V),D.elementType=v,D.type=H,D.lanes=ne,D}function Qf(v,D,Q,H){return v=za(7,v,H,D),v.lanes=Q,v}function D2(v,D,Q,H){return v=za(23,v,H,D),v.elementType=ce,v.lanes=Q,v}function b2(v,D,Q){return v=za(6,v,null,D),v.lanes=Q,v}function Ro(v,D,Q){return D=za(4,v.children!==null?v.children:[],v.key,D),D.lanes=Q,D.stateNode={containerInfo:v.containerInfo,pendingChildren:null,implementation:v.implementation},D}function lM(v,D,Q){this.tag=D,this.containerInfo=v,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=b,this.pendingContext=this.context=null,this.hydrate=Q,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Aa(0),this.expirationTimes=Aa(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Aa(0),Z&&(this.mutableSourceEagerHydrationData=null)}function LP(v){var D=v._reactInternals;if(D===void 0)throw typeof v.render=="function"?Error(c(188)):Error(c(268,Object.keys(v)));return v=se(D),v===null?null:v.stateNode}function MP(v,D){if(v=v.memoizedState,v!==null&&v.dehydrated!==null){var Q=v.retryLane;v.retryLane=Q!==0&&Q<D?Q:D}}function Wy(v,D){MP(v,D),(v=v.alternate)&&MP(v,D)}function cM(v){return v=se(v),v===null?null:v.stateNode}function uM(){return null}return r.IsThisRendererActing=qy,r.act=function(v){function D(){Ja--,A2.current=Q,qy.current=H}Gy===!1&&(Gy=!0,console.error("act(...) is not supported in production builds of React, and might not behave as expected.")),Ja++;var Q=A2.current,H=qy.current;A2.current=!0,qy.current=!0;try{var V=DP(v)}catch(ne){throw D(),ne}if(V!==null&&typeof V=="object"&&typeof V.then=="function")return{then:function(ne,Se){V.then(function(){1<Ja||OP===!0&&Q===!0?(D(),ne()):ma(function(Ue){D(),Ue?Se(Ue):ne()})},function(Ue){D(),Se(Ue)})}};try{Ja!==1||OP!==!1&&Q!==!1||v2(),D()}catch(ne){throw D(),ne}return{then:function(ne){ne()}}},r.attemptContinuousHydration=function(v){if(v.tag===13){var D=To();Rl(v,67108864,D),Wy(v,67108864)}},r.attemptHydrationAtCurrentPriority=function(v){if(v.tag===13){var D=To(),Q=Ss(v);Rl(v,Q,D),Wy(v,Q)}},r.attemptSynchronousHydration=function(v){switch(v.tag){case 3:var D=v.stateNode;if(D.hydrate){var Q=ua(D.pendingLanes);D.expiredLanes|=Q&D.pendingLanes,da(D,Dt()),!(xr&48)&&(Pf(),Tn())}break;case 13:var H=To();bP(function(){return Rl(v,1,H)}),Wy(v,4)}},r.attemptUserBlockingHydration=function(v){if(v.tag===13){var D=To();Rl(v,4,D),Wy(v,4)}},r.batchedEventUpdates=function(v,D){var Q=xr;xr|=2;try{return v(D)}finally{xr=Q,xr===0&&(Pf(),Tn())}},r.batchedUpdates=DP,r.createComponentSelector=function(v){return{$$typeof:ky,value:v}},r.createContainer=function(v,D,Q){return v=new lM(v,D,Q),D=za(3,null,null,D===2?7:D===1?3:0),v.current=D,D.stateNode=v,Sh(D),v},r.createHasPsuedoClassSelector=function(v){return{$$typeof:Qy,value:v}},r.createPortal=function(v,D,Q){var H=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:h,key:H==null?null:""+H,children:v,containerInfo:D,implementation:Q}},r.createRoleSelector=function(v){return{$$typeof:Ty,value:v}},r.createTestNameSelector=function(v){return{$$typeof:Jg,value:v}},r.createTextSelector=function(v){return{$$typeof:Ry,value:v}},r.deferredUpdates=function(v){return li(97,v)},r.discreteUpdates=function(v,D,Q,H,V){var ne=xr;xr|=4;try{return li(98,v.bind(null,D,Q,H,V))}finally{xr=ne,xr===0&&(Pf(),Tn())}},r.findAllNodes=u2,r.findBoundingRects=function(v,D){if(!qt)throw Error(c(363));D=u2(v,D),v=[];for(var Q=0;Q<D.length;Q++)v.push(Pt(D[Q]));for(D=v.length-1;0<D;D--){Q=v[D];for(var H=Q.x,V=H+Q.width,ne=Q.y,Se=ne+Q.height,Ue=D-1;0<=Ue;Ue--)if(D!==Ue){var At=v[Ue],Gt=At.x,vr=Gt+At.width,Lr=At.y,Xt=Lr+At.height;if(H>=Gt&&ne>=Lr&&V<=vr&&Se<=Xt){v.splice(D,1);break}else if(H!==Gt||Q.width!==At.width||Xt<ne||Lr>Se){if(!(ne!==Lr||Q.height!==At.height||vr<H||Gt>V)){Gt>H&&(At.width+=Gt-H,At.x=H),vr<V&&(At.width=V-Gt),v.splice(D,1);break}}else{Lr>ne&&(At.height+=Lr-ne,At.y=ne),Xt<Se&&(At.height=Se-Lr),v.splice(D,1);break}}}return v},r.findHostInstance=LP,r.findHostInstanceWithNoPortals=function(v){return v=X(v),v===null?null:v.tag===20?v.stateNode.instance:v.stateNode},r.findHostInstanceWithWarning=function(v){return LP(v)},r.flushControlled=function(v){var D=xr;xr|=1;try{li(99,v)}finally{xr=D,xr===0&&(Pf(),Tn())}},r.flushDiscreteUpdates=function(){!(xr&49)&&(XL(),Du())},r.flushPassiveEffects=Du,r.flushSync=bP,r.focusWithin=function(v,D){if(!qt)throw Error(c(363));for(v=Fy(v),D=c2(v,D),D=Array.from(D),v=0;v<D.length;){var Q=D[v++];if(!Pr(Q)){if(Q.tag===5&&Nr(Q.stateNode))return!0;for(Q=Q.child;Q!==null;)D.push(Q),Q=Q.sibling}}return!1},r.getCurrentUpdateLanePriority=function(){return cc},r.getFindAllNodesFailureDescription=function(v,D){if(!qt)throw Error(c(363));var Q=0,H=[];v=[Fy(v),0];for(var V=0;V<v.length;){var ne=v[V++],Se=v[V++],Ue=D[Se];if((ne.tag!==5||!Pr(ne))&&(Df(ne,Ue)&&(H.push(bf(Ue)),Se++,Se>Q&&(Q=Se)),Se<D.length))for(ne=ne.child;ne!==null;)v.push(ne,Se),ne=ne.sibling}if(Q<D.length){for(v=[];Q<D.length;Q++)v.push(bf(D[Q]));return`findAllNodes was able to match part of the selector: + `+(H.join(" > ")+` + +No matching component was found for: + `)+v.join(" > ")}return null},r.getPublicRootInstance=function(v){if(v=v.current,!v.child)return null;switch(v.child.tag){case 5:return Re(v.child.stateNode);default:return v.child.stateNode}},r.injectIntoDevTools=function(v){if(v={bundleType:v.bundleType,version:v.version,rendererPackageName:v.rendererPackageName,rendererConfig:v.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:f.ReactCurrentDispatcher,findHostInstanceByFiber:cM,findFiberByHostInstance:v.findFiberByHostInstance||uM,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")v=!1;else{var D=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!D.isDisabled&&D.supportsFiber)try{Xe=D.inject(v),Ha=D}catch{}v=!0}return v},r.observeVisibleRects=function(v,D,Q,H){if(!qt)throw Error(c(363));v=u2(v,D);var V=nn(v,Q,H).disconnect;return{disconnect:function(){V()}}},r.registerMutableSourceForHydration=function(v,D){var Q=D._getVersion;Q=Q(D._source),v.mutableSourceEagerHydrationData==null?v.mutableSourceEagerHydrationData=[D,Q]:v.mutableSourceEagerHydrationData.push(D,Q)},r.runWithPriority=function(v,D){var Q=cc;try{return cc=v,D()}finally{cc=Q}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(v,D){var Q=xr;xr&=-2,xr|=8;try{return v(D)}finally{xr=Q,xr===0&&(Pf(),Tn())}},r.updateContainer=function(v,D,Q,H){var V=D.current,ne=To(),Se=Ss(V);e:if(Q){Q=Q._reactInternals;t:{if(we(Q)!==Q||Q.tag!==1)throw Error(c(170));var Ue=Q;do{switch(Ue.tag){case 3:Ue=Ue.stateNode.context;break t;case 1:if(Jn(Ue.type)){Ue=Ue.stateNode.__reactInternalMemoizedMergedChildContext;break t}}Ue=Ue.return}while(Ue!==null);throw Error(c(171))}if(Q.tag===1){var At=Q.type;if(Jn(At)){Q=La(Q,At,Ue);break e}}Q=Ue}else Q=ca;return D.context===null?D.context=Q:D.pendingContext=Q,D=bl(ne,Se),D.payload={element:v},H=H===void 0?null:H,H!==null&&(D.callback=H),Pl(V,D),Rl(V,Se,ne),Se},r}});var xDe=L((Xpr,PDe)=>{"use strict";PDe.exports=bDe()});var QDe=L(($pr,kDe)=>{"use strict";var mPt={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};kDe.exports=mPt});var NDe=L((ehr,FDe)=>{"use strict";var yPt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])}return t},NF=function(){function t(e,r){for(var s=0;s<r.length;s++){var a=r[s];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(e,r,s){return r&&t(e.prototype,r),s&&t(e,s),e}}();function EW(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function IW(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var rf=QDe(),EPt=function(){function t(e,r,s,a,n,c){IW(this,t),this.left=e,this.right=r,this.top=s,this.bottom=a,this.width=n,this.height=c}return NF(t,[{key:"fromJS",value:function(r){r(this.left,this.right,this.top,this.bottom,this.width,this.height)}},{key:"toString",value:function(){return"<Layout#"+this.left+":"+this.right+";"+this.top+":"+this.bottom+";"+this.width+":"+this.height+">"}}]),t}(),TDe=function(){NF(t,null,[{key:"fromJS",value:function(r){var s=r.width,a=r.height;return new t(s,a)}}]);function t(e,r){IW(this,t),this.width=e,this.height=r}return NF(t,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return"<Size#"+this.width+"x"+this.height+">"}}]),t}(),RDe=function(){function t(e,r){IW(this,t),this.unit=e,this.value=r}return NF(t,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case rf.UNIT_POINT:return String(this.value);case rf.UNIT_PERCENT:return this.value+"%";case rf.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),t}();FDe.exports=function(t,e){function r(c,f,p){var h=c[f];c[f]=function(){for(var E=arguments.length,C=Array(E),S=0;S<E;S++)C[S]=arguments[S];return p.call.apply(p,[this,h].concat(C))}}for(var s=["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding"],a=function(){var f,p=s[n],h=(f={},EW(f,rf.UNIT_POINT,e.Node.prototype[p]),EW(f,rf.UNIT_PERCENT,e.Node.prototype[p+"Percent"]),EW(f,rf.UNIT_AUTO,e.Node.prototype[p+"Auto"]),f);r(e.Node.prototype,p,function(E){for(var C=arguments.length,S=Array(C>1?C-1:0),P=1;P<C;P++)S[P-1]=arguments[P];var I=S.pop(),R=void 0,N=void 0;if(I==="auto")R=rf.UNIT_AUTO,N=void 0;else if(I instanceof RDe)R=I.unit,N=I.valueOf();else if(R=typeof I=="string"&&I.endsWith("%")?rf.UNIT_PERCENT:rf.UNIT_POINT,N=parseFloat(I),!Number.isNaN(I)&&Number.isNaN(N))throw new Error("Invalid value "+I+" for "+p);if(!h[R])throw new Error('Failed to execute "'+p+`": Unsupported unit '`+I+"'");if(N!==void 0){var U;return(U=h[R]).call.apply(U,[this].concat(S,[N]))}else{var W;return(W=h[R]).call.apply(W,[this].concat(S))}})},n=0;n<s.length;n++)a();return r(e.Config.prototype,"free",function(){e.Config.destroy(this)}),r(e.Node,"create",function(c,f){return f?e.Node.createWithConfig(f):e.Node.createDefault()}),r(e.Node.prototype,"free",function(){e.Node.destroy(this)}),r(e.Node.prototype,"freeRecursive",function(){for(var c=0,f=this.getChildCount();c<f;++c)this.getChild(0).freeRecursive();this.free()}),r(e.Node.prototype,"setMeasureFunc",function(c,f){return f?c.call(this,function(){return TDe.fromJS(f.apply(void 0,arguments))}):this.unsetMeasureFunc()}),r(e.Node.prototype,"calculateLayout",function(c){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:rf.DIRECTION_LTR;return c.call(this,f,p,h)}),yPt({Config:e.Config,Node:e.Node,Layout:t("Layout",EPt),Size:t("Size",TDe),Value:t("Value",RDe),getInstanceCount:function(){return e.getInstanceCount.apply(e,arguments)}},rf)}});var ODe=L((exports,module)=>{(function(t,e){typeof define=="function"&&define.amd?define([],function(){return e}):typeof module=="object"&&module.exports?module.exports=e:(t.nbind=t.nbind||{}).init=e})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(t,e){return function(){t&&t.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){e(r);return}e(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof Ie=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var s=nodeFS.readFileSync(e);return r?s:s.toString()},Module.readBinary=function(e){var r=Module.read(e,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(t,e){quit(t)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,s){var a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):s()},a.onerror=s,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(t){dump(t)}:function(t){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(t){document.title=t})}else throw"Unknown runtime environment. Where are we?";function globalEval(t){eval.call(null,t)}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(t,e){throw e}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(t){return tempRet0=t,t},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(t){STACKTOP=t},getNativeTypeSize:function(t){switch(t){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(t[t.length-1]==="*")return Runtime.QUANTUM_SIZE;if(t[0]==="i"){var e=parseInt(t.substr(1));return assert(e%8===0),e/8}else return 0}}},getNativeFieldSize:function(t){return Math.max(Runtime.getNativeTypeSize(t),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(t,e){return e==="double"||e==="i64"?t&7&&(assert((t&7)===4),t+=4):assert((t&3)===0),t},getAlignSize:function(t,e,r){return!r&&(t=="i64"||t=="double")?8:t?Math.min(e||(t?Runtime.getNativeFieldSize(t):0),Runtime.QUANTUM_SIZE):Math.min(e,8)},dynCall:function(t,e,r){return r&&r.length?Module["dynCall_"+t].apply(null,[e].concat(r)):Module["dynCall_"+t].call(null,e)},functionPointers:[],addFunction:function(t){for(var e=0;e<Runtime.functionPointers.length;e++)if(!Runtime.functionPointers[e])return Runtime.functionPointers[e]=t,2*(1+e);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(t){Runtime.functionPointers[(t-2)/2]=null},warnOnce:function(t){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[t]||(Runtime.warnOnce.shown[t]=1,Module.printErr(t))},funcWrappers:{},getFuncWrapper:function(t,e){if(t){assert(e),Runtime.funcWrappers[e]||(Runtime.funcWrappers[e]={});var r=Runtime.funcWrappers[e];return r[t]||(e.length===1?r[t]=function(){return Runtime.dynCall(e,t)}:e.length===2?r[t]=function(a){return Runtime.dynCall(e,t,[a])}:r[t]=function(){return Runtime.dynCall(e,t,Array.prototype.slice.call(arguments))}),r[t]}},getCompilerSetting:function(t){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(t){var e=STACKTOP;return STACKTOP=STACKTOP+t|0,STACKTOP=STACKTOP+15&-16,e},staticAlloc:function(t){var e=STATICTOP;return STATICTOP=STATICTOP+t|0,STATICTOP=STATICTOP+15&-16,e},dynamicAlloc:function(t){var e=HEAP32[DYNAMICTOP_PTR>>2],r=(e+t+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var s=enlargeMemory();if(!s)return HEAP32[DYNAMICTOP_PTR>>2]=e,0}return e},alignMemory:function(t,e){var r=t=Math.ceil(t/(e||16))*(e||16);return r},makeBigInt:function(t,e,r){var s=r?+(t>>>0)+ +(e>>>0)*4294967296:+(t>>>0)+ +(e|0)*4294967296;return s},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(t,e){t||abort("Assertion failed: "+e)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(t){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(t){var e=Runtime.stackAlloc(t.length);return writeArrayToMemory(t,e),e},stringToC:function(t){var e=0;if(t!=null&&t!==0){var r=(t.length<<2)+1;e=Runtime.stackAlloc(r),stringToUTF8(t,e,r)}return e}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,s,a,n){var c=getCFunc(e),f=[],p=0;if(a)for(var h=0;h<a.length;h++){var E=toC[s[h]];E?(p===0&&(p=Runtime.stackSave()),f[h]=E(a[h])):f[h]=a[h]}var C=c.apply(null,f);if(r==="string"&&(C=Pointer_stringify(C)),p!==0){if(n&&n.async){EmterpreterAsync.asyncFinalizers.push(function(){Runtime.stackRestore(p)});return}Runtime.stackRestore(p)}return C};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(t){var e=t.toString().match(sourceRegex).slice(1);return{arguments:e[0],body:e[1],returnValue:e[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource){JSsource={};for(var t in JSfuncs)JSfuncs.hasOwnProperty(t)&&(JSsource[t]=parseJSFunc(JSfuncs[t]))}}cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every(function(t){return t==="number"}),numericRet=returnType!=="string";if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map(function(t,e){return"$"+e}),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(type!=="number"){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"=("+convertCode.returnValue+");"}}}var cfuncname=parseJSFunc(function(){return cfunc}).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc(function(){return Pointer_stringify}).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(ensureJSsource(),funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}})(),Module.ccall=ccall,Module.cwrap=cwrap;function setValue(t,e,r,s){switch(r=r||"i8",r.charAt(r.length-1)==="*"&&(r="i32"),r){case"i1":HEAP8[t>>0]=e;break;case"i8":HEAP8[t>>0]=e;break;case"i16":HEAP16[t>>1]=e;break;case"i32":HEAP32[t>>2]=e;break;case"i64":tempI64=[e>>>0,(tempDouble=e,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1];break;case"float":HEAPF32[t>>2]=e;break;case"double":HEAPF64[t>>3]=e;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(t,e,r){switch(e=e||"i8",e.charAt(e.length-1)==="*"&&(e="i32"),e){case"i1":return HEAP8[t>>0];case"i8":return HEAP8[t>>0];case"i16":return HEAP16[t>>1];case"i32":return HEAP32[t>>2];case"i64":return HEAP32[t>>2];case"float":return HEAPF32[t>>2];case"double":return HEAPF64[t>>3];default:abort("invalid type for setValue: "+e)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(t,e,r,s){var a,n;typeof t=="number"?(a=!0,n=t):(a=!1,n=t.length);var c=typeof e=="string"?e:null,f;if(r==ALLOC_NONE?f=s:f=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(n,c?1:e.length)),a){var s=f,p;for(assert((f&3)==0),p=f+(n&-4);s<p;s+=4)HEAP32[s>>2]=0;for(p=f+n;s<p;)HEAP8[s++>>0]=0;return f}if(c==="i8")return t.subarray||t.slice?HEAPU8.set(t,f):HEAPU8.set(new Uint8Array(t),f),f;for(var h=0,E,C,S;h<n;){var P=t[h];if(typeof P=="function"&&(P=Runtime.getFunctionIndex(P)),E=c||e[h],E===0){h++;continue}E=="i64"&&(E="i32"),setValue(f+h,P,E),S!==E&&(C=Runtime.getNativeTypeSize(E),S=E),h+=C}return f}Module.allocate=allocate;function getMemory(t){return staticSealed?runtimeInitialized?_malloc(t):Runtime.dynamicAlloc(t):Runtime.staticAlloc(t)}Module.getMemory=getMemory;function Pointer_stringify(t,e){if(e===0||!t)return"";for(var r=0,s,a=0;s=HEAPU8[t+a>>0],r|=s,!(s==0&&!e||(a++,e&&a==e)););e||(e=a);var n="";if(r<128){for(var c=1024,f;e>0;)f=String.fromCharCode.apply(String,HEAPU8.subarray(t,t+Math.min(e,c))),n=n?n+f:f,t+=c,e-=c;return n}return Module.UTF8ToString(t)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(t){for(var e="";;){var r=HEAP8[t++>>0];if(!r)return e;e+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(t,e){return writeAsciiToMemory(t,e,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(t,e){for(var r=e;t[r];)++r;if(r-e>16&&t.subarray&&UTF8Decoder)return UTF8Decoder.decode(t.subarray(e,r));for(var s,a,n,c,f,p,h="";;){if(s=t[e++],!s)return h;if(!(s&128)){h+=String.fromCharCode(s);continue}if(a=t[e++]&63,(s&224)==192){h+=String.fromCharCode((s&31)<<6|a);continue}if(n=t[e++]&63,(s&240)==224?s=(s&15)<<12|a<<6|n:(c=t[e++]&63,(s&248)==240?s=(s&7)<<18|a<<12|n<<6|c:(f=t[e++]&63,(s&252)==248?s=(s&3)<<24|a<<18|n<<12|c<<6|f:(p=t[e++]&63,s=(s&1)<<30|a<<24|n<<18|c<<12|f<<6|p))),s<65536)h+=String.fromCharCode(s);else{var E=s-65536;h+=String.fromCharCode(55296|E>>10,56320|E&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(t){return UTF8ArrayToString(HEAPU8,t)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(t,e,r,s){if(!(s>0))return 0;for(var a=r,n=r+s-1,c=0;c<t.length;++c){var f=t.charCodeAt(c);if(f>=55296&&f<=57343&&(f=65536+((f&1023)<<10)|t.charCodeAt(++c)&1023),f<=127){if(r>=n)break;e[r++]=f}else if(f<=2047){if(r+1>=n)break;e[r++]=192|f>>6,e[r++]=128|f&63}else if(f<=65535){if(r+2>=n)break;e[r++]=224|f>>12,e[r++]=128|f>>6&63,e[r++]=128|f&63}else if(f<=2097151){if(r+3>=n)break;e[r++]=240|f>>18,e[r++]=128|f>>12&63,e[r++]=128|f>>6&63,e[r++]=128|f&63}else if(f<=67108863){if(r+4>=n)break;e[r++]=248|f>>24,e[r++]=128|f>>18&63,e[r++]=128|f>>12&63,e[r++]=128|f>>6&63,e[r++]=128|f&63}else{if(r+5>=n)break;e[r++]=252|f>>30,e[r++]=128|f>>24&63,e[r++]=128|f>>18&63,e[r++]=128|f>>12&63,e[r++]=128|f>>6&63,e[r++]=128|f&63}}return e[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(t,e,r){return stringToUTF8Array(t,HEAPU8,e,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(t){for(var e=0,r=0;r<t.length;++r){var s=t.charCodeAt(r);s>=55296&&s<=57343&&(s=65536+((s&1023)<<10)|t.charCodeAt(++r)&1023),s<=127?++e:s<=2047?e+=2:s<=65535?e+=3:s<=2097151?e+=4:s<=67108863?e+=5:e+=6}return e}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(t){var e=Module.___cxa_demangle||Module.__cxa_demangle;if(e){try{var r=t.substr(1),s=lengthBytesUTF8(r)+1,a=_malloc(s);stringToUTF8(r,a,s);var n=_malloc(4),c=e(a,0,0,n);if(getValue(n,"i32")===0&&c)return Pointer_stringify(c)}catch{}finally{a&&_free(a),n&&_free(n),c&&_free(c)}return t}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t}function demangleAll(t){var e=/__Z[\w\d_]+/g;return t.replace(e,function(r){var s=demangle(r);return r===s?r:r+" ["+s+"]"})}function jsStackTrace(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()}function stackTrace(){var t=jsStackTrace();return Module.extraStackTrace&&(t+=` +`+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY<TOTAL_STACK&&Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),Module.buffer?buffer=Module.buffer:buffer=new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}if(HEAP32[0]=1668509029,HEAP16[1]=25459,HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;function callRuntimeCallbacks(t){for(;t.length>0;){var e=t.shift();if(typeof e=="function"){e();continue}var r=e.func;typeof r=="number"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var s=r>0?r:lengthBytesUTF8(t)+1,a=new Array(s),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r<t.length;r++){var s=t[r];s>255&&(s&=255),e.push(String.fromCharCode(s))}return e.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var s,a;r&&(a=e+lengthBytesUTF8(t),s=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=s)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var s=0;s<t.length;++s)HEAP8[e++>>0]=t.charCodeAt(s);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var s=e>>>16,a=e&65535,n=r>>>16,c=r&65535;return a*c+(s*c+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(t){return t}function addRunDependency(t){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(t){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(t,e,r,s,a,n,c,f){return _nbind.callbackSignatureList[t].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(t,e,r,s,a,n,c,f){return ASM_CONSTS[t](e,r,s,a,n,c,f)}function _emscripten_asm_const_iiiii(t,e,r,s,a){return ASM_CONSTS[t](e,r,s,a)}function _emscripten_asm_const_iiidddddd(t,e,r,s,a,n,c,f,p){return ASM_CONSTS[t](e,r,s,a,n,c,f,p)}function _emscripten_asm_const_iiididi(t,e,r,s,a,n,c){return ASM_CONSTS[t](e,r,s,a,n,c)}function _emscripten_asm_const_iiii(t,e,r,s){return ASM_CONSTS[t](e,r,s)}function _emscripten_asm_const_iiiid(t,e,r,s,a){return ASM_CONSTS[t](e,r,s,a)}function _emscripten_asm_const_iiiiii(t,e,r,s,a,n){return ASM_CONSTS[t](e,r,s,a,n)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(t,e){__ATEXIT__.unshift({func:t,arg:e})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(t,e,r,s){var a=arguments.length,n=a<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,r):s,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(t,e,r,s);else for(var f=t.length-1;f>=0;f--)(c=t[f])&&(n=(a<3?c(n):a>3?c(e,r,n):c(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n}function _defineHidden(t){return function(e,r){Object.defineProperty(e,r,{configurable:!1,enumerable:!1,value:t,writable:!0})}}var _nbind={};function __nbind_free_external(t){_nbind.externalList[t].dereference(t)}function __nbind_reference_external(t){_nbind.externalList[t].reference()}function _llvm_stackrestore(t){var e=_llvm_stacksave,r=e.LLVM_SAVEDSTACKS[t];e.LLVM_SAVEDSTACKS.splice(t,1),Runtime.stackRestore(r)}function __nbind_register_pool(t,e,r,s){_nbind.Pool.pageSize=t,_nbind.Pool.usedPtr=e/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=s/4,HEAP32[e/4]=16909060,HEAP8[e]==1&&(_nbind.bigEndian=!0),HEAP32[e/4]=0,_nbind.makeTypeKindTbl=(n={},n[1024]=_nbind.PrimitiveType,n[64]=_nbind.Int64Type,n[2048]=_nbind.BindClass,n[3072]=_nbind.BindClassPtr,n[4096]=_nbind.SharedClassPtr,n[5120]=_nbind.ArrayType,n[6144]=_nbind.ArrayType,n[7168]=_nbind.CStringType,n[9216]=_nbind.CallbackType,n[10240]=_nbind.BindType,n),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});a.proto=Module,_nbind.BindClass.list.push(a);var n}function _emscripten_set_main_loop_timing(t,e){if(Browser.mainLoop.timingMode=t,Browser.mainLoop.timingValue=e,!Browser.mainLoop.func)return 1;if(t==0)Browser.mainLoop.scheduler=function(){var c=Math.max(0,Browser.mainLoop.tickStartTime+e-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,c)},Browser.mainLoop.method="timeout";else if(t==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(t==2){if(!window.setImmediate){let n=function(c){c.source===window&&c.data===s&&(c.stopPropagation(),r.shift()())};var a=n,r=[],s="setimmediate";window.addEventListener("message",n,!0),window.setImmediate=function(f){r.push(f),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(f),window.postMessage({target:s})):window.postMessage(s,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(t,e,r,s,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=t,Browser.mainLoop.arg=s;var n;typeof s<"u"?n=function(){Module.dynCall_vi(t,s)}:n=function(){Module.dynCall_v(t)};var c=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var p=Date.now(),h=Browser.mainLoop.queue.shift();if(h.func(h.arg),Browser.mainLoop.remainingBlockers){var E=Browser.mainLoop.remainingBlockers,C=E%1==0?E-1:Math.floor(E);h.counted?Browser.mainLoop.remainingBlockers=C:(C=C+.5,Browser.mainLoop.remainingBlockers=(8*E+C)/9)}if(console.log('main loop blocker "'+h.name+'" took '+(Date.now()-p)+" ms"),Browser.mainLoop.updateStatus(),c<Browser.mainLoop.currentlyRunningMainloop)return;setTimeout(Browser.mainLoop.runner,0);return}if(!(c<Browser.mainLoop.currentlyRunningMainloop)){if(Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0,Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(n),!(c<Browser.mainLoop.currentlyRunningMainloop)&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Browser.mainLoop.scheduler())}}},a||(e&&e>0?_emscripten_set_main_loop_timing(0,1e3/e):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var t=Browser.mainLoop.timingMode,e=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(t,e),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var t=Module.statusMessage||"Please wait...",e=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;e?e<r?Module.setStatus(t+" ("+(r-e)+"/"+r+")"):Module.setStatus(t):Module.setStatus("")}},runIter:function(t){if(!ABORT){if(Module.preMainLoop){var e=Module.preMainLoop();if(e===!1)return}try{t()}catch(r){if(r instanceof ExitStatus)return;throw r&&typeof r=="object"&&r.stack&&Module.printErr("exception thrown: "+[r,r.stack]),r}Module.postMainLoop&&Module.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(Module.preloadPlugins||(Module.preloadPlugins=[]),Browser.initted)return;Browser.initted=!0;try{new Blob,Browser.hasBlobConstructor=!0}catch{Browser.hasBlobConstructor=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder=typeof MozBlobBuilder<"u"?MozBlobBuilder:typeof WebKitBlobBuilder<"u"?WebKitBlobBuilder:Browser.hasBlobConstructor?null:console.log("warning: no BlobBuilder"),Browser.URLObject=typeof window<"u"?window.URL?window.URL:window.webkitURL:void 0,!Module.noImageDecoding&&typeof Browser.URLObject>"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var t={};t.canHandle=function(n){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(n)},t.handle=function(n,c,f,p){var h=null;if(Browser.hasBlobConstructor)try{h=new Blob([n],{type:Browser.getMimetype(c)}),h.size!==n.length&&(h=new Blob([new Uint8Array(n).buffer],{type:Browser.getMimetype(c)}))}catch(P){Runtime.warnOnce("Blob constructor present but fails: "+P+"; falling back to blob builder")}if(!h){var E=new Browser.BlobBuilder;E.append(new Uint8Array(n).buffer),h=E.getBlob()}var C=Browser.URLObject.createObjectURL(h),S=new Image;S.onload=function(){assert(S.complete,"Image "+c+" could not be decoded");var I=document.createElement("canvas");I.width=S.width,I.height=S.height;var R=I.getContext("2d");R.drawImage(S,0,0),Module.preloadedImages[c]=I,Browser.URLObject.revokeObjectURL(C),f&&f(n)},S.onerror=function(I){console.log("Image "+C+" could not be decoded"),p&&p()},S.src=C},Module.preloadPlugins.push(t);var e={};e.canHandle=function(n){return!Module.noAudioDecoding&&n.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(n,c,f,p){var h=!1;function E(R){h||(h=!0,Module.preloadedAudios[c]=R,f&&f(n))}function C(){h||(h=!0,Module.preloadedAudios[c]=new Audio,p&&p())}if(Browser.hasBlobConstructor){try{var S=new Blob([n],{type:Browser.getMimetype(c)})}catch{return C()}var P=Browser.URLObject.createObjectURL(S),I=new Audio;I.addEventListener("canplaythrough",function(){E(I)},!1),I.onerror=function(N){if(h)return;console.log("warning: browser could not fully decode audio "+c+", trying slower base64 approach");function U(W){for(var te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ie="=",Ae="",ce=0,me=0,pe=0;pe<W.length;pe++)for(ce=ce<<8|W[pe],me+=8;me>=6;){var Be=ce>>me-6&63;me-=6,Ae+=te[Be]}return me==2?(Ae+=te[(ce&3)<<4],Ae+=ie+ie):me==4&&(Ae+=te[(ce&15)<<2],Ae+=ie),Ae}I.src="data:audio/x-"+c.substr(-3)+";base64,"+U(n),E(I)},I.src=P,Browser.safeSetTimeout(function(){E(I)},1e4)}else return C()},Module.preloadPlugins.push(e);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var s=Module.canvas;s&&(s.requestPointerLock=s.requestPointerLock||s.mozRequestPointerLock||s.webkitRequestPointerLock||s.msRequestPointerLock||function(){},s.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},s.exitPointerLock=s.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&s.addEventListener("click",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(t,e,r,s){if(e&&Module.ctx&&t==Module.canvas)return Module.ctx;var a,n;if(e){var c={antialias:!1,alpha:!1};if(s)for(var f in s)c[f]=s[f];n=GL.createContext(t,c),n&&(a=GL.getContext(n).GLctx)}else a=t.getContext("2d");return a?(r&&(e||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=a,e&&GL.makeContextCurrent(n),Module.useWebGL=e,Browser.moduleContextCreatedCallbacks.forEach(function(p){p()}),Browser.init()),a):null},destroyContext:function(t,e,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(t,e,r){Browser.lockPointer=t,Browser.resizeCanvas=e,Browser.vrDevice=r,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var s=Module.canvas;function a(){Browser.isFullscreen=!1;var c=s.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===c?(s.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},s.exitFullscreen=s.exitFullscreen.bind(document),Browser.lockPointer&&s.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(c.parentNode.insertBefore(s,c),c.parentNode.removeChild(c),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(s)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",a,!1),document.addEventListener("mozfullscreenchange",a,!1),document.addEventListener("webkitfullscreenchange",a,!1),document.addEventListener("MSFullscreenChange",a,!1));var n=document.createElement("div");s.parentNode.insertBefore(n,s),n.appendChild(s),n.requestFullscreen=n.requestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen||(n.webkitRequestFullscreen?function(){n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(n.webkitRequestFullScreen?function(){n.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?n.requestFullscreen({vrDisplay:r}):n.requestFullscreen()},requestFullScreen:function(t,e,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(s,a,n){return Browser.requestFullscreen(s,a,n)},Browser.requestFullscreen(t,e,r)},nextRAF:0,fakeRequestAnimationFrame:function(t){var e=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=e+1e3/60;else for(;e+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-e,0);setTimeout(t,r)},requestAnimationFrame:function t(e){typeof window>"u"?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(t){return function(){if(!ABORT)return t.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var t=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],t.forEach(function(e){e()})}},safeRequestAnimationFrame:function(t){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))})},safeSetTimeout:function(t,e){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))},e)},safeSetInterval:function(t,e){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&t()},e)},getMimetype:function(t){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[t.substr(t.lastIndexOf(".")+1)]},getUserMedia:function(t){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(t)},getMovementX:function(t){return t.movementX||t.mozMovementX||t.webkitMovementX||0},getMovementY:function(t){return t.movementY||t.mozMovementY||t.webkitMovementY||0},getMouseWheelDelta:function(t){var e=0;switch(t.type){case"DOMMouseScroll":e=t.detail;break;case"mousewheel":e=t.wheelDelta;break;case"wheel":e=t.deltaY;break;default:throw"unrecognized mouse wheel event: "+t.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(t){if(Browser.pointerLock)t.type!="mousemove"&&"mozMovementX"in t?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(t),Browser.mouseMovementY=Browser.getMovementY(t)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var e=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,s=Module.canvas.height,a=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,n=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(t.type==="touchstart"||t.type==="touchend"||t.type==="touchmove"){var c=t.touch;if(c===void 0)return;var f=c.pageX-(a+e.left),p=c.pageY-(n+e.top);f=f*(r/e.width),p=p*(s/e.height);var h={x:f,y:p};if(t.type==="touchstart")Browser.lastTouches[c.identifier]=h,Browser.touches[c.identifier]=h;else if(t.type==="touchend"||t.type==="touchmove"){var E=Browser.touches[c.identifier];E||(E=h),Browser.lastTouches[c.identifier]=E,Browser.touches[c.identifier]=h}return}var C=t.pageX-(a+e.left),S=t.pageY-(n+e.top);C=C*(r/e.width),S=S*(s/e.height),Browser.mouseMovementX=C-Browser.mouseX,Browser.mouseMovementY=S-Browser.mouseY,Browser.mouseX=C,Browser.mouseY=S}},asyncLoad:function(t,e,r,s){var a=s?"":"al "+t;Module.readAsync(t,function(n){assert(n,'Loading data file "'+t+'" failed (no arrayBuffer).'),e(new Uint8Array(n)),a&&removeRunDependency(a)},function(n){if(r)r();else throw'Loading data file "'+t+'" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var t=Module.canvas;Browser.resizeListeners.forEach(function(e){e(t.width,t.height)})},setCanvasSize:function(t,e,r){var s=Module.canvas;Browser.updateCanvasDimensions(s,t,e),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},updateCanvasDimensions:function(t,e,r){e&&r?(t.widthNative=e,t.heightNative=r):(e=t.widthNative,r=t.heightNative);var s=e,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(s/a<Module.forcedAspectRatio?s=Math.round(a*Module.forcedAspectRatio):a=Math.round(s/Module.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===t.parentNode&&typeof screen<"u"){var n=Math.min(screen.width/s,screen.height/a);s=Math.round(s*n),a=Math.round(a*n)}Browser.resizeCanvas?(t.width!=s&&(t.width=s),t.height!=a&&(t.height=a),typeof t.style<"u"&&(t.style.removeProperty("width"),t.style.removeProperty("height"))):(t.width!=e&&(t.width=e),t.height!=r&&(t.height=r),typeof t.style<"u"&&(s!=e||a!=r?(t.style.setProperty("width",s+"px","important"),t.style.setProperty("height",a+"px","important")):(t.style.removeProperty("width"),t.style.removeProperty("height"))))},wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var t=Browser.nextWgetRequestHandle;return Browser.nextWgetRequestHandle++,t}},SYSCALLS={varargs:0,get:function(t){SYSCALLS.varargs+=4;var e=HEAP32[SYSCALLS.varargs-4>>2];return e},getStr:function(){var t=Pointer_stringify(SYSCALLS.get());return t},get64:function(){var t=SYSCALLS.get(),e=SYSCALLS.get();return t>=0?assert(e===0):assert(e===-1),t},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(s){return(typeof FS>"u"||!(s instanceof FS.ErrnoError))&&abort(s),-s.errno}}function ___syscall54(t,e){SYSCALLS.varargs=e;try{return 0}catch(r){return(typeof FS>"u"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(t){var e=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr<X>"],[640,1,"std::unique_ptr<X>"],[5120,1,"std::vector<X>"],[6144,2,"std::array<X, Y>"],[9216,-1,"std::function<X (Y)>"]];function r(p,h,E,C,S,P){if(h==1){var I=C&896;(I==128||I==256||I==384)&&(p="X const")}var R;return P?R=E.replace("X",p).replace("Y",S):R=p.replace("X",E).replace("Y",S),R.replace(/([*&]) (?=[*&])/g,"$1")}function s(p,h,E,C,S){throw new Error(p+" type "+E.replace("X",h+"?")+(C?" with flag "+C:"")+" in "+S)}function a(p,h,E,C,S,P,I,R){P===void 0&&(P="X"),R===void 0&&(R=1);var N=E(p);if(N)return N;var U=C(p),W=U.placeholderFlag,te=e[W];I&&te&&(P=r(I[2],I[0],P,te[0],"?",!0));var ie;W==0&&(ie="Unbound"),W>=10&&(ie="Corrupt"),R>20&&(ie="Deeply nested"),ie&&s(ie,p,P,W,S||"?");var Ae=U.paramList[0],ce=a(Ae,h,E,C,S,P,te,R+1),me,pe={flags:te[0],id:p,name:"",paramList:[ce]},Be=[],Ce="?";switch(U.placeholderFlag){case 1:me=ce.spec;break;case 2:if((ce.flags&15360)==1024&&ce.spec.ptrSize==1){pe.flags=7168;break}case 3:case 6:case 5:me=ce.spec,ce.flags&15360;break;case 8:Ce=""+U.paramList[1],pe.paramList.push(U.paramList[1]);break;case 9:for(var g=0,we=U.paramList[1];g<we.length;g++){var ye=we[g],fe=a(ye,h,E,C,S,P,te,R+1);Be.push(fe.name),pe.paramList.push(fe)}Ce=Be.join(", ");break;default:break}if(pe.name=r(te[2],te[0],ce.name,ce.flags,Ce),me){for(var se=0,X=Object.keys(me);se<X.length;se++){var De=X[se];pe[De]=pe[De]||me[De]}pe.flags|=me.flags}return n(h,pe)}function n(p,h){var E=h.flags,C=E&896,S=E&15360;return!h.name&&S==1024&&(h.ptrSize==1?h.name=(E&16?"":(E&8?"un":"")+"signed ")+"char":h.name=(E&8?"u":"")+(E&32?"float":"int")+(h.ptrSize*8+"_t")),h.ptrSize==8&&!(E&32)&&(S=64),S==2048&&(C==512||C==640?S=4096:C&&(S=3072)),p(S,h)}var c=function(){function p(h){this.id=h.id,this.name=h.name,this.flags=h.flags,this.spec=h}return p.prototype.toString=function(){return this.name},p}(),f={Type:c,getComplexType:a,makeType:n,structureList:e};return t.output=f,t.output||f}function __nbind_register_type(t,e){var r=_nbind.readAsciiString(e),s={flags:10240,id:t,name:r};_nbind.makeType(_nbind.constructType,s)}function __nbind_register_callback_signature(t,e){var r=_nbind.readTypeIdList(t,e),s=_nbind.callbackSignatureList.length;return _nbind.callbackSignatureList[s]=_nbind.makeJSCaller(r),s}function __extends(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);function s(){this.constructor=t}s.prototype=e.prototype,t.prototype=new s}function __nbind_register_class(t,e,r,s,a,n,c){var f=_nbind.readAsciiString(c),p=_nbind.readPolicyList(e),h=HEAPU32.subarray(t/4,t/4+2),E={flags:2048|(p.Value?2:0),id:h[0],name:f},C=_nbind.makeType(_nbind.constructType,E);C.ptrType=_nbind.getComplexType(h[1],_nbind.constructType,_nbind.getType,_nbind.queryType),C.destroy=_nbind.makeMethodCaller(C.ptrType,{boundID:E.id,flags:0,name:"destroy",num:0,ptr:n,title:C.name+".free",typeList:["void","uint32_t","uint32_t"]}),a&&(C.superIdList=Array.prototype.slice.call(HEAPU32.subarray(r/4,r/4+a)),C.upcastList=Array.prototype.slice.call(HEAPU32.subarray(s/4,s/4+a))),Module[C.name]=C.makeBound(p),_nbind.BindClass.list.push(C)}function _removeAccessorPrefix(t){var e=/^[Gg]et_?([A-Z]?([A-Z]?))/;return t.replace(e,function(r,s,a){return a?s:s.toLowerCase()})}function __nbind_register_function(t,e,r,s,a,n,c,f,p,h){var E=_nbind.getType(t),C=_nbind.readPolicyList(e),S=_nbind.readTypeIdList(r,s),P;if(c==5)P=[{direct:a,name:"__nbindConstructor",ptr:0,title:E.name+" constructor",typeList:["uint32_t"].concat(S.slice(1))},{direct:n,name:"__nbindValueConstructor",ptr:0,title:E.name+" value constructor",typeList:["void","uint32_t"].concat(S.slice(1))}];else{var I=_nbind.readAsciiString(f),R=(E.name&&E.name+".")+I;(c==3||c==4)&&(I=_removeAccessorPrefix(I)),P=[{boundID:t,direct:n,name:I,ptr:a,title:R,typeList:S}]}for(var N=0,U=P;N<U.length;N++){var W=U[N];W.signatureType=c,W.policyTbl=C,W.num=p,W.flags=h,E.addMethod(W)}}function _nbind_value(t,e){_nbind.typeNameTbl[t]||_nbind.throwError("Unknown value type "+t),Module.NBind.bind_value(t,e),_defineHidden(_nbind.typeNameTbl[t].proto.prototype.__nbindValueConstructor)(e.prototype,"__nbindValueConstructor")}Module._nbind_value=_nbind_value;function __nbind_get_value_object(t,e){var r=_nbind.popValue(t);if(!r.fromJS)throw new Error("Object "+r+" has no fromJS function");r.fromJS(function(){r.__nbindValueConstructor.apply(this,Array.prototype.concat.apply([e],arguments))})}function _emscripten_memcpy_big(t,e,r){return HEAPU8.set(HEAPU8.subarray(e,e+r),t),t}function __nbind_register_primitive(t,e,r){var s={flags:1024|r,id:t,ptrSize:e};_nbind.makeType(_nbind.constructType,s)}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);function ___setErrNo(t){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=t),t}function _llvm_stacksave(){var t=_llvm_stacksave;return t.LLVM_SAVEDSTACKS||(t.LLVM_SAVEDSTACKS=[]),t.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),t.LLVM_SAVEDSTACKS.length-1}function ___syscall140(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD(),s=SYSCALLS.get(),a=SYSCALLS.get(),n=SYSCALLS.get(),c=SYSCALLS.get(),f=a;return FS.llseek(r,f,c),HEAP32[n>>2]=r.position,r.getdents&&f===0&&c===0&&(r.getdents=null),0}catch(p){return(typeof FS>"u"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall146(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.get(),s=SYSCALLS.get(),a=SYSCALLS.get(),n=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(E,C){var S=___syscall146.buffers[E];assert(S),C===0||C===10?((E===1?Module.print:Module.printErr)(UTF8ArrayToString(S,0)),S.length=0):S.push(C)});for(var c=0;c<a;c++){for(var f=HEAP32[s+c*8>>2],p=HEAP32[s+(c*8+4)>>2],h=0;h<p;h++)___syscall146.printChar(r,HEAPU8[f+h]);n+=p}return n}catch(E){return(typeof FS>"u"||!(E instanceof FS.ErrnoError))&&abort(E),-E.errno}}function __nbind_finish(){for(var t=0,e=_nbind.BindClass.list;t<e.length;t++){var r=e[t];r.finish()}}var ___dso_handle=STATICTOP;STATICTOP+=16,function(_nbind){var typeIdTbl={};_nbind.typeNameTbl={};var Pool=function(){function t(){}return t.lalloc=function(e){e=e+7&-8;var r=HEAPU32[t.usedPtr];if(e>t.pageSize/2||e>t.pageSize-r){var s=_nbind.typeNameTbl.NBind.proto;return s.lalloc(e)}else return HEAPU32[t.usedPtr]=r+e,t.rootPtr+r},t.lreset=function(e,r){var s=HEAPU32[t.pagePtr];if(s){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(e,r)}else HEAPU32[t.usedPtr]=e},t}();_nbind.Pool=Pool;function constructType(t,e){var r=t==10240?_nbind.makeTypeNameTbl[e.name]||_nbind.BindType:_nbind.makeTypeKindTbl[t],s=new r(e);return typeIdTbl[e.id]=s,_nbind.typeNameTbl[e.name]=s,s}_nbind.constructType=constructType;function getType(t){return typeIdTbl[t]}_nbind.getType=getType;function queryType(t){var e=HEAPU8[t],r=_nbind.structureList[e][1];t/=4,r<0&&(++t,r=HEAPU32[t]+1);var s=Array.prototype.slice.call(HEAPU32.subarray(t+1,t+1+r));return e==9&&(s=[s[0],s.slice(1)]),{paramList:s,placeholderFlag:e}}_nbind.queryType=queryType;function getTypes(t,e){return t.map(function(r){return typeof r=="number"?_nbind.getComplexType(r,constructType,getType,queryType,e):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(t,e){return Array.prototype.slice.call(HEAPU32,t/4,t/4+e)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(t){for(var e=t;HEAPU8[e++];);return String.fromCharCode.apply("",HEAPU8.subarray(t,e-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(t){var e={};if(t)for(;;){var r=HEAPU32[t/4];if(!r)break;e[readAsciiString(r)]=!0,t+=4}return e}_nbind.readPolicyList=readPolicyList;function getDynCall(t,e){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},s=t.map(function(n){return r[n.name]||"i"}).join(""),a=Module["dynCall_"+s];if(!a)throw new Error("dynCall_"+s+" not found for "+e+"("+t.map(function(n){return n.name}).join(", ")+")");return a}_nbind.getDynCall=getDynCall;function addMethod(t,e,r,s){var a=t[e];t.hasOwnProperty(e)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),t[e]=a),a.addMethod(r,s)):(r.arity=s,t[e]=r)}_nbind.addMethod=addMethod;function throwError(t){throw new Error(t)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return e.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},e.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},e}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(t){__extends(e,t);function e(r){var s=t.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return s.heap=a[r.ptrSize*8],s.ptrSize=r.ptrSize,s}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireWrite=function(r,s){return s&&s.Strict&&function(a){if(typeof a=="number")return a;throw new Error("Type mismatch")}},e}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(t,e){if(t==null){if(e&&e.Nullable)return 0;throw new Error("Type mismatch")}if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t)+1,s=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(t,HEAPU8,s,r),s}_nbind.pushCString=pushCString;function popCString(t){return t===0?null:Module.Pointer_stringify(t)}_nbind.popCString=popCString;var CStringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,s){return function(a){return pushCString(a,s)}},e}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=function(s){return!!s},r}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireRead=function(r){return"!!("+r+")"},e.prototype.makeWireWrite=function(r,s){return s&&s.Strict&&function(a){if(typeof a=="boolean")return a;throw new Error("Type mismatch")}||r},e}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function t(){}return t.prototype.persist=function(){this.__nbindState|=1},t}();_nbind.Wrapper=Wrapper;function makeBound(t,e){var r=function(s){__extends(a,s);function a(n,c,f,p){var h=s.call(this)||this;if(!(h instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var E=c,C=f,S=p;if(n!==_nbind.ptrMarker){var P=h.__nbindConstructor.apply(h,arguments);E=4608,S=HEAPU32[P/4],C=HEAPU32[P/4+1]}var I={configurable:!0,enumerable:!1,value:null,writable:!1},R={__nbindFlags:E,__nbindPtr:C};S&&(R.__nbindShared=S,_nbind.mark(h));for(var N=0,U=Object.keys(R);N<U.length;N++){var W=U[N];I.value=R[W],Object.defineProperty(h,W,I)}return _defineHidden(0)(h,"__nbindState"),h}return a.prototype.free=function(){e.destroy.call(this,this.__nbindShared,this.__nbindFlags),this.__nbindState|=2,disableMember(this,"__nbindShared"),disableMember(this,"__nbindPtr")},a}(Wrapper);return __decorate([_defineHidden()],r.prototype,"__nbindConstructor",void 0),__decorate([_defineHidden()],r.prototype,"__nbindValueConstructor",void 0),__decorate([_defineHidden(t)],r.prototype,"__nbindPolicies",void 0),r}_nbind.makeBound=makeBound;function disableMember(t,e){function r(){throw new Error("Accessing deleted object")}Object.defineProperty(t,e,{configurable:!1,enumerable:!1,get:r,set:r})}_nbind.ptrMarker={};var BindClass=function(t){__extends(e,t);function e(r){var s=t.call(this,r)||this;return s.wireRead=function(a){return _nbind.popValue(a,s.ptrType)},s.wireWrite=function(a){return pushPointer(a,s.ptrType,!0)},s.pendingSuperCount=0,s.ready=!1,s.methodTbl={},r.paramList?(s.classType=r.paramList[0].classType,s.proto=s.classType.proto):s.classType=s,s}return e.prototype.makeBound=function(r){var s=_nbind.makeBound(r,this);return this.proto=s,this.ptrType.proto=s,s},e.prototype.addMethod=function(r){var s=this.methodTbl[r.name]||[];s.push(r),this.methodTbl[r.name]=s},e.prototype.registerMethods=function(r,s){for(var a,n=0,c=Object.keys(r.methodTbl);n<c.length;n++)for(var f=c[n],p=r.methodTbl[f],h=0,E=p;h<E.length;h++){var C=E[h],S=void 0,P=void 0;if(S=this.proto.prototype,!(s&&C.signatureType!=1))switch(C.signatureType){case 1:S=this.proto;case 5:P=_nbind.makeCaller(C),_nbind.addMethod(S,C.name,P,C.typeList.length-1);break;case 4:a=_nbind.makeMethodCaller(r.ptrType,C);break;case 3:Object.defineProperty(S,C.name,{configurable:!0,enumerable:!1,get:_nbind.makeMethodCaller(r.ptrType,C),set:a});break;case 2:P=_nbind.makeMethodCaller(r.ptrType,C),_nbind.addMethod(S,C.name,P,C.typeList.length-1);break;default:break}}},e.prototype.registerSuperMethods=function(r,s,a){if(!a[r.name]){a[r.name]=!0;for(var n=0,c,f=0,p=r.superIdList||[];f<p.length;f++){var h=p[f],E=_nbind.getType(h);n++<s||s<0?c=-1:c=0,this.registerSuperMethods(E,c,a)}this.registerMethods(r,s<0)}},e.prototype.finish=function(){if(this.ready)return this;this.ready=!0,this.superList=(this.superIdList||[]).map(function(a){return _nbind.getType(a).finish()});var r=this.proto;if(this.superList.length){var s=function(){this.constructor=r};s.prototype=this.superList[0].proto.prototype,r.prototype=new s}return r!=Module&&(r.prototype.__nbindType=this),this.registerSuperMethods(this,1,{}),this},e.prototype.upcastStep=function(r,s){if(r==this)return s;for(var a=0;a<this.superList.length;++a){var n=this.superList[a].upcastStep(r,_nbind.callUpcast(this.upcastList[a],s));if(n)return n}return 0},e}(_nbind.BindType);BindClass.list=[],_nbind.BindClass=BindClass;function popPointer(t,e){return t?new e.proto(_nbind.ptrMarker,e.flags,t):null}_nbind.popPointer=popPointer;function pushPointer(t,e,r){if(!(t instanceof _nbind.Wrapper)){if(r)return _nbind.pushValue(t);throw new Error("Type mismatch")}var s=t.__nbindPtr,a=t.__nbindType.classType,n=e.classType;if(t instanceof e.proto)for(;a!=n;)s=_nbind.callUpcast(a.upcastList[0],s),a=a.superList[0];else if(s=a.upcastStep(n,s),!s)throw new Error("Type mismatch");return s}_nbind.pushPointer=pushPointer;function pushMutablePointer(t,e){var r=pushPointer(t,e);if(t.__nbindFlags&1)throw new Error("Passing a const value as a non-const argument");return r}var BindClassPtr=function(t){__extends(e,t);function e(r){var s=t.call(this,r)||this;s.classType=r.paramList[0].classType,s.proto=s.classType.proto;var a=r.flags&1,n=(s.flags&896)==256&&r.flags&2,c=a?pushPointer:pushMutablePointer,f=n?_nbind.popValue:popPointer;return s.makeWireWrite=function(p,h){return h.Nullable?function(E){return E?c(E,s):0}:function(E){return c(E,s)}},s.wireRead=function(p){return f(p,s)},s.wireWrite=function(p){return c(p,s)},s}return e}(_nbind.BindType);_nbind.BindClassPtr=BindClassPtr;function popShared(t,e){var r=HEAPU32[t/4],s=HEAPU32[t/4+1];return s?new e.proto(_nbind.ptrMarker,e.flags,s,r):null}_nbind.popShared=popShared;function pushShared(t,e){if(!(t instanceof e.proto))throw new Error("Type mismatch");return t.__nbindShared}function pushMutableShared(t,e){if(!(t instanceof e.proto))throw new Error("Type mismatch");if(t.__nbindFlags&1)throw new Error("Passing a const value as a non-const argument");return t.__nbindShared}var SharedClassPtr=function(t){__extends(e,t);function e(r){var s=t.call(this,r)||this;s.readResources=[_nbind.resources.pool],s.classType=r.paramList[0].classType,s.proto=s.classType.proto;var a=r.flags&1,n=a?pushShared:pushMutableShared;return s.wireRead=function(c){return popShared(c,s)},s.wireWrite=function(c){return n(c,s)},s}return e}(_nbind.BindType);_nbind.SharedClassPtr=SharedClassPtr,_nbind.externalList=[0];var firstFreeExternal=0,External=function(){function t(e){this.refCount=1,this.data=e}return t.prototype.register=function(){var e=firstFreeExternal;return e?firstFreeExternal=_nbind.externalList[e]:e=_nbind.externalList.length,_nbind.externalList[e]=this,e},t.prototype.reference=function(){++this.refCount},t.prototype.dereference=function(e){--this.refCount==0&&(this.free&&this.free(),_nbind.externalList[e]=firstFreeExternal,firstFreeExternal=e)},t}();_nbind.External=External;function popExternal(t){var e=_nbind.externalList[t];return e.dereference(t),e.data}function pushExternal(t){var e=new External(t);return e.reference(),e.register()}var ExternalType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popExternal,r.wireWrite=pushExternal,r}return e}(_nbind.BindType);_nbind.ExternalType=ExternalType,_nbind.callbackSignatureList=[];var CallbackType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=function(s){return typeof s!="function"&&_nbind.throwError("Type mismatch"),new _nbind.External(s).register()},r}return e}(_nbind.BindType);_nbind.CallbackType=CallbackType,_nbind.valueList=[0];var firstFreeValue=0;function pushValue(t){var e=firstFreeValue;return e?firstFreeValue=_nbind.valueList[e]:e=_nbind.valueList.length,_nbind.valueList[e]=t,e*2+1}_nbind.pushValue=pushValue;function popValue(t,e){if(t||_nbind.throwError("Value type JavaScript class is missing or not registered"),t&1){t>>=1;var r=_nbind.valueList[t];return _nbind.valueList[t]=firstFreeValue,firstFreeValue=t,r}else{if(e)return _nbind.popShared(t,e);throw new Error("Invalid value slot "+t)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(t){return typeof t=="number"?t:pushValue(t)*4096+valueBase}function pop64(t){return t<valueBase?t:popValue((t-valueBase)/4096)}var CreateValueType=function(t){__extends(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.makeWireWrite=function(r){return"(_nbind.pushValue(new "+r+"))"},e}(_nbind.BindType);_nbind.CreateValueType=CreateValueType;var Int64Type=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=push64,r.wireRead=pop64,r}return e}(_nbind.BindType);_nbind.Int64Type=Int64Type;function pushArray(t,e){if(!t)return 0;var r=t.length;if((e.size||e.size===0)&&r<e.size)throw new Error("Type mismatch");var s=e.memberType.ptrSize,a=_nbind.Pool.lalloc(4+r*s);HEAPU32[a/4]=r;var n=e.memberType.heap,c=(a+4)/s,f=e.memberType.wireWrite,p=0;if(f)for(;p<r;)n[c++]=f(t[p++]);else for(;p<r;)n[c++]=t[p++];return a}_nbind.pushArray=pushArray;function popArray(t,e){if(t===0)return null;var r=HEAPU32[t/4],s=new Array(r),a=e.memberType.heap;t=(t+4)/e.memberType.ptrSize;var n=e.memberType.wireRead,c=0;if(n)for(;c<r;)s[c++]=n(a[t++]);else for(;c<r;)s[c++]=a[t++];return s}_nbind.popArray=popArray;var ArrayType=function(t){__extends(e,t);function e(r){var s=t.call(this,r)||this;return s.wireRead=function(a){return popArray(a,s)},s.wireWrite=function(a){return pushArray(a,s)},s.readResources=[_nbind.resources.pool],s.writeResources=[_nbind.resources.pool],s.memberType=r.paramList[0],r.paramList[1]&&(s.size=r.paramList[1]),s}return e}(_nbind.BindType);_nbind.ArrayType=ArrayType;function pushString(t,e){if(t==null)if(e&&e.Nullable)t="";else throw new Error("Type mismatch");if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t),s=_nbind.Pool.lalloc(4+r+1);return HEAPU32[s/4]=r,Module.stringToUTF8Array(t,HEAPU8,s+4,r+1),s}_nbind.pushString=pushString;function popString(t){if(t===0)return null;var e=HEAPU32[t/4];return Module.Pointer_stringify(t+4,e)}_nbind.popString=popString;var StringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popString,r.wireWrite=pushString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,s){return function(a){return pushString(a,s)}},e}(_nbind.BindType);_nbind.StringType=StringType;function makeArgList(t){return Array.apply(null,Array(t)).map(function(e,r){return"a"+(r+1)})}function anyNeedsWireWrite(t,e){return t.reduce(function(r,s){return r||s.needsWireWrite(e)},!1)}function anyNeedsWireRead(t,e){return t.reduce(function(r,s){return r||!!s.needsWireRead(e)},!1)}function makeWireRead(t,e,r,s){var a=t.length;return r.makeWireRead?r.makeWireRead(s,t,a):r.wireRead?(t[a]=r.wireRead,"(convertParamList["+a+"]("+s+"))"):s}function makeWireWrite(t,e,r,s){var a,n=t.length;return r.makeWireWrite?a=r.makeWireWrite(s,e,t,n):a=r.wireWrite,a?typeof a=="string"?a:(t[n]=a,"(convertParamList["+n+"]("+s+"))"):s}function buildCallerFunction(dynCall,ptrType,ptr,num,policyTbl,needsWireWrite,prefix,returnType,argTypeList,mask,err){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireRead(convertParamList,policyTbl,returnType,"dynCall("+[prefix].concat(argList.map(function(t,e){return makeWireWrite(convertParamList,policyTbl,argTypeList[e],t)})).join(",")+")"),resourceSet=_nbind.listResources([returnType],argTypeList),sourceCode="function("+argList.join(",")+"){"+(mask?"this.__nbindFlags&mask&&err();":"")+resourceSet.makeOpen()+"var r="+callExpression+";"+resourceSet.makeClose()+"return r;}";return eval("("+sourceCode+")")}function buildJSCallerFunction(returnType,argTypeList){var argList=makeArgList(argTypeList.length),convertParamList=[],callExpression=makeWireWrite(convertParamList,null,returnType,"_nbind.externalList[num].data("+argList.map(function(t,e){return makeWireRead(convertParamList,null,argTypeList[e],t)}).join(",")+")"),resourceSet=_nbind.listResources(argTypeList,[returnType]);resourceSet.remove(_nbind.resources.pool);var sourceCode="function("+["dummy","num"].concat(argList).join(",")+"){"+resourceSet.makeOpen()+"var r="+callExpression+";"+resourceSet.makeClose()+"return r;}";return eval("("+sourceCode+")")}_nbind.buildJSCallerFunction=buildJSCallerFunction;function makeJSCaller(t){var e=t.length-1,r=_nbind.getTypes(t,"callback"),s=r[0],a=r.slice(1),n=anyNeedsWireRead(a,null),c=s.needsWireWrite(null);if(!c&&!n)switch(e){case 0:return function(f,p){return _nbind.externalList[p].data()};case 1:return function(f,p,h){return _nbind.externalList[p].data(h)};case 2:return function(f,p,h,E){return _nbind.externalList[p].data(h,E)};case 3:return function(f,p,h,E,C){return _nbind.externalList[p].data(h,E,C)};default:break}return buildJSCallerFunction(s,a)}_nbind.makeJSCaller=makeJSCaller;function makeMethodCaller(t,e){var r=e.typeList.length-1,s=e.typeList.slice(0);s.splice(1,0,"uint32_t",e.boundID);var a=_nbind.getTypes(s,e.title),n=a[0],c=a.slice(3),f=n.needsWireRead(e.policyTbl),p=anyNeedsWireWrite(c,e.policyTbl),h=e.ptr,E=e.num,C=_nbind.getDynCall(a,e.title),S=~e.flags&1;function P(){throw new Error("Calling a non-const method on a const object")}if(!f&&!p)switch(r){case 0:return function(){return this.__nbindFlags&S?P():C(h,E,_nbind.pushPointer(this,t))};case 1:return function(I){return this.__nbindFlags&S?P():C(h,E,_nbind.pushPointer(this,t),I)};case 2:return function(I,R){return this.__nbindFlags&S?P():C(h,E,_nbind.pushPointer(this,t),I,R)};case 3:return function(I,R,N){return this.__nbindFlags&S?P():C(h,E,_nbind.pushPointer(this,t),I,R,N)};default:break}return buildCallerFunction(C,t,h,E,e.policyTbl,p,"ptr,num,pushPointer(this,ptrType)",n,c,S,P)}_nbind.makeMethodCaller=makeMethodCaller;function makeCaller(t){var e=t.typeList.length-1,r=_nbind.getTypes(t.typeList,t.title),s=r[0],a=r.slice(1),n=s.needsWireRead(t.policyTbl),c=anyNeedsWireWrite(a,t.policyTbl),f=t.direct,p=t.ptr;if(t.direct&&!n&&!c){var h=_nbind.getDynCall(r,t.title);switch(e){case 0:return function(){return h(f)};case 1:return function(P){return h(f,P)};case 2:return function(P,I){return h(f,P,I)};case 3:return function(P,I,R){return h(f,P,I,R)};default:break}p=0}var E;if(p){var C=t.typeList.slice(0);C.splice(1,0,"uint32_t"),r=_nbind.getTypes(C,t.title),E="ptr,num"}else p=f,E="ptr";var S=_nbind.getDynCall(r,t.title);return buildCallerFunction(S,null,p,t.num,t.policyTbl,c,E,s,a)}_nbind.makeCaller=makeCaller;function makeOverloader(t,e){var r=[];function s(){return r[arguments.length].apply(this,arguments)}return s.addMethod=function(a,n){r[n]=a},s.addMethod(t,e),s}_nbind.makeOverloader=makeOverloader;var Resource=function(){function t(e,r){var s=this;this.makeOpen=function(){return Object.keys(s.openTbl).join("")},this.makeClose=function(){return Object.keys(s.closeTbl).join("")},this.openTbl={},this.closeTbl={},e&&(this.openTbl[e]=!0),r&&(this.closeTbl[r]=!0)}return t.prototype.add=function(e){for(var r=0,s=Object.keys(e.openTbl);r<s.length;r++){var a=s[r];this.openTbl[a]=!0}for(var n=0,c=Object.keys(e.closeTbl);n<c.length;n++){var a=c[n];this.closeTbl[a]=!0}},t.prototype.remove=function(e){for(var r=0,s=Object.keys(e.openTbl);r<s.length;r++){var a=s[r];delete this.openTbl[a]}for(var n=0,c=Object.keys(e.closeTbl);n<c.length;n++){var a=c[n];delete this.closeTbl[a]}},t}();_nbind.Resource=Resource;function listResources(t,e){for(var r=new Resource,s=0,a=t;s<a.length;s++)for(var n=a[s],c=0,f=n.readResources||[];c<f.length;c++){var p=f[c];r.add(p)}for(var h=0,E=e;h<E.length;h++)for(var n=E[h],C=0,S=n.writeResources||[];C<S.length;C++){var p=S[C];r.add(p)}return r}_nbind.listResources=listResources,_nbind.resources={pool:new Resource("var used=HEAPU32[_nbind.Pool.usedPtr],page=HEAPU32[_nbind.Pool.pagePtr];","_nbind.Pool.lreset(used,page);")};var ExternalBuffer=function(t){__extends(e,t);function e(r,s){var a=t.call(this,r)||this;return a.ptr=s,a}return e.prototype.free=function(){_free(this.ptr)},e}(_nbind.External);function getBuffer(t){return t instanceof ArrayBuffer?new Uint8Array(t):t instanceof DataView?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function pushBuffer(t,e){if(t==null&&e&&e.Nullable&&(t=[]),typeof t!="object")throw new Error("Type mismatch");var r=t,s=r.byteLength||r.length;if(!s&&s!==0&&r.byteLength!==0)throw new Error("Type mismatch");var a=_nbind.Pool.lalloc(8),n=_malloc(s),c=a/4;return HEAPU32[c++]=s,HEAPU32[c++]=n,HEAPU32[c++]=new ExternalBuffer(t,n).register(),HEAPU8.set(getBuffer(t),n),a}var BufferType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireWrite=pushBuffer,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,s){return function(a){return pushBuffer(a,s)}},e}(_nbind.BindType);_nbind.BufferType=BufferType;function commitBuffer(t,e,r){var s=_nbind.externalList[t].data,a=Buffer;if(typeof Buffer!="function"&&(a=function(){}),!(s instanceof Array)){var n=HEAPU8.subarray(e,e+r);if(s instanceof a){var c=void 0;typeof Buffer.from=="function"&&Buffer.from.length>=3?c=Buffer.from(n):c=new Buffer(n),c.copy(s)}else getBuffer(s).set(n)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var t=0,e=dirtyList;t<e.length;t++){var r=e[t];r.__nbindState&3||r.free()}dirtyList=[],gcTimer=0}_nbind.mark=function(t){};function toggleLightGC(t){t?_nbind.mark=function(e){dirtyList.push(e),gcTimer||(gcTimer=setTimeout(sweep,0))}:_nbind.mark=function(e){}}_nbind.toggleLightGC=toggleLightGC}(_nbind),Module.requestFullScreen=function t(e,r,s){Module.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead."),Module.requestFullScreen=Module.requestFullscreen,Browser.requestFullScreen(e,r,s)},Module.requestFullscreen=function t(e,r,s){Browser.requestFullscreen(e,r,s)},Module.requestAnimationFrame=function t(e){Browser.requestAnimationFrame(e)},Module.setCanvasSize=function t(e,r,s){Browser.setCanvasSize(e,r,s)},Module.pauseMainLoop=function t(){Browser.mainLoop.pause()},Module.resumeMainLoop=function t(){Browser.mainLoop.resume()},Module.getUserMedia=function t(){Browser.getUserMedia()},Module.createContext=function t(e,r,s,a){return Browser.createContext(e,r,s,a)},ENVIRONMENT_IS_NODE?_emscripten_get_now=function(){var e=process.hrtime();return e[0]*1e3+e[1]/1e6}:typeof dateNow<"u"?_emscripten_get_now=dateNow:typeof self=="object"&&self.performance&&typeof self.performance.now=="function"?_emscripten_get_now=function(){return self.performance.now()}:typeof performance=="object"&&typeof performance.now=="function"?_emscripten_get_now=function(){return performance.now()}:_emscripten_get_now=Date.now,__ATEXIT__.push(function(){var t=Module._fflush;t&&t(0);var e=___syscall146.printChar;if(e){var r=___syscall146.buffers;r[1].length&&e(1,10),r[2].length&&e(2,10)}}),DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(t,e,r,s,a,n){try{Module.dynCall_viiiii(t,e,r,s,a,n)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_vif(t,e,r){try{Module.dynCall_vif(t,e,r)}catch(s){if(typeof s!="number"&&s!=="longjmp")throw s;Module.setThrew(1,0)}}function invoke_vid(t,e,r){try{Module.dynCall_vid(t,e,r)}catch(s){if(typeof s!="number"&&s!=="longjmp")throw s;Module.setThrew(1,0)}}function invoke_fiff(t,e,r,s){try{return Module.dynCall_fiff(t,e,r,s)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vi(t,e){try{Module.dynCall_vi(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_vii(t,e,r){try{Module.dynCall_vii(t,e,r)}catch(s){if(typeof s!="number"&&s!=="longjmp")throw s;Module.setThrew(1,0)}}function invoke_ii(t,e){try{return Module.dynCall_ii(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_viddi(t,e,r,s,a){try{Module.dynCall_viddi(t,e,r,s,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_vidd(t,e,r,s){try{Module.dynCall_vidd(t,e,r,s)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iiii(t,e,r,s){try{return Module.dynCall_iiii(t,e,r,s)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_diii(t,e,r,s){try{return Module.dynCall_diii(t,e,r,s)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_di(t,e){try{return Module.dynCall_di(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_iid(t,e,r){try{return Module.dynCall_iid(t,e,r)}catch(s){if(typeof s!="number"&&s!=="longjmp")throw s;Module.setThrew(1,0)}}function invoke_iii(t,e,r){try{return Module.dynCall_iii(t,e,r)}catch(s){if(typeof s!="number"&&s!=="longjmp")throw s;Module.setThrew(1,0)}}function invoke_viiddi(t,e,r,s,a,n){try{Module.dynCall_viiddi(t,e,r,s,a,n)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_viiiiii(t,e,r,s,a,n,c){try{Module.dynCall_viiiiii(t,e,r,s,a,n,c)}catch(f){if(typeof f!="number"&&f!=="longjmp")throw f;Module.setThrew(1,0)}}function invoke_dii(t,e,r){try{return Module.dynCall_dii(t,e,r)}catch(s){if(typeof s!="number"&&s!=="longjmp")throw s;Module.setThrew(1,0)}}function invoke_i(t){try{return Module.dynCall_i(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_iiiiii(t,e,r,s,a,n){try{return Module.dynCall_iiiiii(t,e,r,s,a,n)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_viiid(t,e,r,s,a){try{Module.dynCall_viiid(t,e,r,s,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viififi(t,e,r,s,a,n,c){try{Module.dynCall_viififi(t,e,r,s,a,n,c)}catch(f){if(typeof f!="number"&&f!=="longjmp")throw f;Module.setThrew(1,0)}}function invoke_viii(t,e,r,s){try{Module.dynCall_viii(t,e,r,s)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_v(t){try{Module.dynCall_v(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_viid(t,e,r,s){try{Module.dynCall_viid(t,e,r,s)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_idd(t,e,r){try{return Module.dynCall_idd(t,e,r)}catch(s){if(typeof s!="number"&&s!=="longjmp")throw s;Module.setThrew(1,0)}}function invoke_viiii(t,e,r,s,a){try{Module.dynCall_viiii(t,e,r,s,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(t,e,r){var s=new t.Int8Array(r),a=new t.Int16Array(r),n=new t.Int32Array(r),c=new t.Uint8Array(r),f=new t.Uint16Array(r),p=new t.Uint32Array(r),h=new t.Float32Array(r),E=new t.Float64Array(r),C=e.DYNAMICTOP_PTR|0,S=e.tempDoublePtr|0,P=e.ABORT|0,I=e.STACKTOP|0,R=e.STACK_MAX|0,N=e.cttz_i8|0,U=e.___dso_handle|0,W=0,te=0,ie=0,Ae=0,ce=t.NaN,me=t.Infinity,pe=0,Be=0,Ce=0,g=0,we=0,ye=0,fe=t.Math.floor,se=t.Math.abs,X=t.Math.sqrt,De=t.Math.pow,Re=t.Math.cos,dt=t.Math.sin,j=t.Math.tan,rt=t.Math.acos,Fe=t.Math.asin,Ne=t.Math.atan,Pe=t.Math.atan2,Ye=t.Math.exp,ke=t.Math.log,it=t.Math.ceil,_e=t.Math.imul,x=t.Math.min,w=t.Math.max,b=t.Math.clz32,y=t.Math.fround,F=e.abort,z=e.assert,Z=e.enlargeMemory,$=e.getTotalMemory,oe=e.abortOnCannotGrowMemory,xe=e.invoke_viiiii,Te=e.invoke_vif,lt=e.invoke_vid,It=e.invoke_fiff,qt=e.invoke_vi,ir=e.invoke_vii,Pt=e.invoke_ii,gn=e.invoke_viddi,Pr=e.invoke_vidd,Ir=e.invoke_iiii,Nr=e.invoke_diii,nn=e.invoke_di,ai=e.invoke_iid,wo=e.invoke_iii,ns=e.invoke_viiddi,to=e.invoke_viiiiii,Bo=e.invoke_dii,ji=e.invoke_i,ro=e.invoke_iiiiii,vo=e.invoke_viiid,RA=e.invoke_viififi,pf=e.invoke_viii,yh=e.invoke_v,Eh=e.invoke_viid,no=e.invoke_idd,jn=e.invoke_viiii,Fs=e._emscripten_asm_const_iiiii,io=e._emscripten_asm_const_iiidddddd,lu=e._emscripten_asm_const_iiiid,cu=e.__nbind_reference_external,uu=e._emscripten_asm_const_iiiiiiii,FA=e._removeAccessorPrefix,NA=e._typeModule,aa=e.__nbind_register_pool,la=e.__decorate,OA=e._llvm_stackrestore,gr=e.___cxa_atexit,So=e.__extends,Me=e.__nbind_get_value_object,fu=e.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,Cr=e._emscripten_set_main_loop_timing,hf=e.__nbind_register_primitive,LA=e.__nbind_register_type,MA=e._emscripten_memcpy_big,Au=e.__nbind_register_function,pu=e.___setErrNo,ac=e.__nbind_register_class,ve=e.__nbind_finish,Nt=e._abort,lc=e._nbind_value,Li=e._llvm_stacksave,so=e.___syscall54,Rt=e._defineHidden,xn=e._emscripten_set_main_loop,ca=e._emscripten_get_now,qi=e.__nbind_register_callback_signature,Mi=e._emscripten_asm_const_iiiiii,Oa=e.__nbind_free_external,dn=e._emscripten_asm_const_iiii,Jn=e._emscripten_asm_const_iiididi,hu=e.___syscall6,Ih=e._atexit,La=e.___syscall140,Ma=e.___syscall146,Ua=y(0);let Xe=y(0);function Ha(o){o=o|0;var l=0;return l=I,I=I+o|0,I=I+15&-16,l|0}function gf(){return I|0}function cc(o){o=o|0,I=o}function wn(o,l){o=o|0,l=l|0,I=o,R=l}function ua(o,l){o=o|0,l=l|0,W||(W=o,te=l)}function _A(o){o=o|0,ye=o}function UA(){return ye|0}function fa(){var o=0,l=0;Qr(8104,8,400)|0,Qr(8504,408,540)|0,o=9044,l=o+44|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));s[9088]=0,s[9089]=1,n[2273]=0,n[2274]=948,n[2275]=948,gr(17,8104,U|0)|0}function vl(o){o=o|0,gt(o+948|0)}function Mt(o){return o=y(o),((EP(o)|0)&2147483647)>>>0>2139095040|0}function kn(o,l,u){o=o|0,l=l|0,u=u|0;e:do if(n[o+(l<<3)+4>>2]|0)o=o+(l<<3)|0;else{if((l|2|0)==3&&n[o+60>>2]|0){o=o+56|0;break}switch(l|0){case 0:case 2:case 4:case 5:{if(n[o+52>>2]|0){o=o+48|0;break e}break}default:}if(n[o+68>>2]|0){o=o+64|0;break}else{o=(l|1|0)==5?948:u;break}}while(!1);return o|0}function Aa(o){o=o|0;var l=0;return l=KP(1e3)|0,ja(o,(l|0)!=0,2456),n[2276]=(n[2276]|0)+1,Qr(l|0,8104,1e3)|0,s[o+2>>0]|0&&(n[l+4>>2]=2,n[l+12>>2]=4),n[l+976>>2]=o,l|0}function ja(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;d=I,I=I+16|0,A=d,l||(n[A>>2]=u,Gg(o,5,3197,A)),I=d}function is(){return Aa(956)|0}function uc(o){o=o|0;var l=0;return l=Jt(1e3)|0,gu(l,o),ja(n[o+976>>2]|0,1,2456),n[2276]=(n[2276]|0)+1,n[l+944>>2]=0,l|0}function gu(o,l){o=o|0,l=l|0;var u=0;Qr(o|0,l|0,948)|0,vy(o+948|0,l+948|0),u=o+960|0,o=l+960|0,l=u+40|0;do n[u>>2]=n[o>>2],u=u+4|0,o=o+4|0;while((u|0)<(l|0))}function fc(o){o=o|0;var l=0,u=0,A=0,d=0;if(l=o+944|0,u=n[l>>2]|0,u|0&&(qa(u+948|0,o)|0,n[l>>2]=0),u=_i(o)|0,u|0){l=0;do n[(ws(o,l)|0)+944>>2]=0,l=l+1|0;while((l|0)!=(u|0))}u=o+948|0,A=n[u>>2]|0,d=o+952|0,l=n[d>>2]|0,(l|0)!=(A|0)&&(n[d>>2]=l+(~((l+-4-A|0)>>>2)<<2)),Sl(u),JP(o),n[2276]=(n[2276]|0)+-1}function qa(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0;A=n[o>>2]|0,k=o+4|0,u=n[k>>2]|0,m=u;e:do if((A|0)==(u|0))d=A,B=4;else for(o=A;;){if((n[o>>2]|0)==(l|0)){d=o,B=4;break e}if(o=o+4|0,(o|0)==(u|0)){o=0;break}}while(!1);return(B|0)==4&&((d|0)!=(u|0)?(A=d+4|0,o=m-A|0,l=o>>2,l&&(Q2(d|0,A|0,o|0)|0,u=n[k>>2]|0),o=d+(l<<2)|0,(u|0)==(o|0)||(n[k>>2]=u+(~((u+-4-o|0)>>>2)<<2)),o=1):o=0),o|0}function _i(o){return o=o|0,(n[o+952>>2]|0)-(n[o+948>>2]|0)>>2|0}function ws(o,l){o=o|0,l=l|0;var u=0;return u=n[o+948>>2]|0,(n[o+952>>2]|0)-u>>2>>>0>l>>>0?o=n[u+(l<<2)>>2]|0:o=0,o|0}function Sl(o){o=o|0;var l=0,u=0,A=0,d=0;A=I,I=I+32|0,l=A,d=n[o>>2]|0,u=(n[o+4>>2]|0)-d|0,((n[o+8>>2]|0)-d|0)>>>0>u>>>0&&(d=u>>2,Py(l,d,d,o+8|0),IP(o,l),xy(l)),I=A}function df(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0;_=_i(o)|0;do if(_|0){if((n[(ws(o,0)|0)+944>>2]|0)==(o|0)){if(!(qa(o+948|0,l)|0))break;Qr(l+400|0,8504,540)|0,n[l+944>>2]=0,Oe(o);break}B=n[(n[o+976>>2]|0)+12>>2]|0,k=o+948|0,T=(B|0)==0,u=0,m=0;do A=n[(n[k>>2]|0)+(m<<2)>>2]|0,(A|0)==(l|0)?Oe(o):(d=uc(A)|0,n[(n[k>>2]|0)+(u<<2)>>2]=d,n[d+944>>2]=o,T||y_[B&15](A,d,o,u),u=u+1|0),m=m+1|0;while((m|0)!=(_|0));if(u>>>0<_>>>0){T=o+948|0,k=o+952|0,B=u,u=n[k>>2]|0;do m=(n[T>>2]|0)+(B<<2)|0,A=m+4|0,d=u-A|0,l=d>>2,l&&(Q2(m|0,A|0,d|0)|0,u=n[k>>2]|0),d=u,A=m+(l<<2)|0,(d|0)!=(A|0)&&(u=d+(~((d+-4-A|0)>>>2)<<2)|0,n[k>>2]=u),B=B+1|0;while((B|0)!=(_|0))}}while(!1)}function Ac(o){o=o|0;var l=0,u=0,A=0,d=0;Bi(o,(_i(o)|0)==0,2491),Bi(o,(n[o+944>>2]|0)==0,2545),l=o+948|0,u=n[l>>2]|0,A=o+952|0,d=n[A>>2]|0,(d|0)!=(u|0)&&(n[A>>2]=d+(~((d+-4-u|0)>>>2)<<2)),Sl(l),l=o+976|0,u=n[l>>2]|0,Qr(o|0,8104,1e3)|0,s[u+2>>0]|0&&(n[o+4>>2]=2,n[o+12>>2]=4),n[l>>2]=u}function Bi(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;d=I,I=I+16|0,A=d,l||(n[A>>2]=u,Qo(o,5,3197,A)),I=d}function Qn(){return n[2276]|0}function pc(){var o=0;return o=KP(20)|0,Je((o|0)!=0,2592),n[2277]=(n[2277]|0)+1,n[o>>2]=n[239],n[o+4>>2]=n[240],n[o+8>>2]=n[241],n[o+12>>2]=n[242],n[o+16>>2]=n[243],o|0}function Je(o,l){o=o|0,l=l|0;var u=0,A=0;A=I,I=I+16|0,u=A,o||(n[u>>2]=l,Qo(0,5,3197,u)),I=A}function st(o){o=o|0,JP(o),n[2277]=(n[2277]|0)+-1}function St(o,l){o=o|0,l=l|0;var u=0;l?(Bi(o,(_i(o)|0)==0,2629),u=1):(u=0,l=0),n[o+964>>2]=l,n[o+988>>2]=u}function lr(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,m=A+8|0,d=A+4|0,B=A,n[d>>2]=l,Bi(o,(n[l+944>>2]|0)==0,2709),Bi(o,(n[o+964>>2]|0)==0,2763),ee(o),l=o+948|0,n[B>>2]=(n[l>>2]|0)+(u<<2),n[m>>2]=n[B>>2],Ee(l,m,d)|0,n[(n[d>>2]|0)+944>>2]=o,Oe(o),I=A}function ee(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0;if(u=_i(o)|0,u|0&&(n[(ws(o,0)|0)+944>>2]|0)!=(o|0)){A=n[(n[o+976>>2]|0)+12>>2]|0,d=o+948|0,m=(A|0)==0,l=0;do B=n[(n[d>>2]|0)+(l<<2)>>2]|0,k=uc(B)|0,n[(n[d>>2]|0)+(l<<2)>>2]=k,n[k+944>>2]=o,m||y_[A&15](B,k,o,l),l=l+1|0;while((l|0)!=(u|0))}}function Ee(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0,We=0,Le=0,Qe=0,tt=0,Ze=0;tt=I,I=I+64|0,G=tt+52|0,k=tt+48|0,ae=tt+28|0,We=tt+24|0,Le=tt+20|0,Qe=tt,A=n[o>>2]|0,m=A,l=A+((n[l>>2]|0)-m>>2<<2)|0,A=o+4|0,d=n[A>>2]|0,B=o+8|0;do if(d>>>0<(n[B>>2]|0)>>>0){if((l|0)==(d|0)){n[l>>2]=n[u>>2],n[A>>2]=(n[A>>2]|0)+4;break}CP(o,l,d,l+4|0),l>>>0<=u>>>0&&(u=(n[A>>2]|0)>>>0>u>>>0?u+4|0:u),n[l>>2]=n[u>>2]}else{A=(d-m>>2)+1|0,d=O(o)|0,d>>>0<A>>>0&&sn(o),M=n[o>>2]|0,_=(n[B>>2]|0)-M|0,m=_>>1,Py(Qe,_>>2>>>0<d>>>1>>>0?m>>>0<A>>>0?A:m:d,l-M>>2,o+8|0),M=Qe+8|0,A=n[M>>2]|0,m=Qe+12|0,_=n[m>>2]|0,B=_,T=A;do if((A|0)==(_|0)){if(_=Qe+4|0,A=n[_>>2]|0,Ze=n[Qe>>2]|0,d=Ze,A>>>0<=Ze>>>0){A=B-d>>1,A=A|0?A:1,Py(ae,A,A>>>2,n[Qe+16>>2]|0),n[We>>2]=n[_>>2],n[Le>>2]=n[M>>2],n[k>>2]=n[We>>2],n[G>>2]=n[Le>>2],o2(ae,k,G),A=n[Qe>>2]|0,n[Qe>>2]=n[ae>>2],n[ae>>2]=A,A=ae+4|0,Ze=n[_>>2]|0,n[_>>2]=n[A>>2],n[A>>2]=Ze,A=ae+8|0,Ze=n[M>>2]|0,n[M>>2]=n[A>>2],n[A>>2]=Ze,A=ae+12|0,Ze=n[m>>2]|0,n[m>>2]=n[A>>2],n[A>>2]=Ze,xy(ae),A=n[M>>2]|0;break}m=A,B=((m-d>>2)+1|0)/-2|0,k=A+(B<<2)|0,d=T-m|0,m=d>>2,m&&(Q2(k|0,A|0,d|0)|0,A=n[_>>2]|0),Ze=k+(m<<2)|0,n[M>>2]=Ze,n[_>>2]=A+(B<<2),A=Ze}while(!1);n[A>>2]=n[u>>2],n[M>>2]=(n[M>>2]|0)+4,l=wP(o,Qe,l)|0,xy(Qe)}while(!1);return I=tt,l|0}function Oe(o){o=o|0;var l=0;do{if(l=o+984|0,s[l>>0]|0)break;s[l>>0]=1,h[o+504>>2]=y(ce),o=n[o+944>>2]|0}while(o|0)}function gt(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-4-A|0)>>>2)<<2)),Et(u))}function yt(o){return o=o|0,n[o+944>>2]|0}function Dt(o){o=o|0,Bi(o,(n[o+964>>2]|0)!=0,2832),Oe(o)}function tr(o){return o=o|0,(s[o+984>>0]|0)!=0|0}function fn(o,l){o=o|0,l=l|0,EYe(o,l,400)|0&&(Qr(o|0,l|0,400)|0,Oe(o))}function li(o){o=o|0;var l=Xe;return l=y(h[o+44>>2]),o=Mt(l)|0,y(o?y(0):l)}function Gi(o){o=o|0;var l=Xe;return l=y(h[o+48>>2]),Mt(l)|0&&(l=s[(n[o+976>>2]|0)+2>>0]|0?y(1):y(0)),y(l)}function Tn(o,l){o=o|0,l=l|0,n[o+980>>2]=l}function Ga(o){return o=o|0,n[o+980>>2]|0}function gy(o,l){o=o|0,l=l|0;var u=0;u=o+4|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function X1(o){return o=o|0,n[o+4>>2]|0}function Do(o,l){o=o|0,l=l|0;var u=0;u=o+8|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function dy(o){return o=o|0,n[o+8>>2]|0}function Ch(o,l){o=o|0,l=l|0;var u=0;u=o+12|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function $1(o){return o=o|0,n[o+12>>2]|0}function bo(o,l){o=o|0,l=l|0;var u=0;u=o+16|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function wh(o){return o=o|0,n[o+16>>2]|0}function Bh(o,l){o=o|0,l=l|0;var u=0;u=o+20|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function du(o){return o=o|0,n[o+20>>2]|0}function vh(o,l){o=o|0,l=l|0;var u=0;u=o+24|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function Rg(o){return o=o|0,n[o+24>>2]|0}function Fg(o,l){o=o|0,l=l|0;var u=0;u=o+28|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function Ng(o){return o=o|0,n[o+28>>2]|0}function my(o,l){o=o|0,l=l|0;var u=0;u=o+32|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function mf(o){return o=o|0,n[o+32>>2]|0}function Po(o,l){o=o|0,l=l|0;var u=0;u=o+36|0,(n[u>>2]|0)!=(l|0)&&(n[u>>2]=l,Oe(o))}function Dl(o){return o=o|0,n[o+36>>2]|0}function Sh(o,l){o=o|0,l=y(l);var u=0;u=o+40|0,y(h[u>>2])!=l&&(h[u>>2]=l,Oe(o))}function Og(o,l){o=o|0,l=y(l);var u=0;u=o+44|0,y(h[u>>2])!=l&&(h[u>>2]=l,Oe(o))}function bl(o,l){o=o|0,l=y(l);var u=0;u=o+48|0,y(h[u>>2])!=l&&(h[u>>2]=l,Oe(o))}function Pl(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+52|0,d=o+56|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function yy(o,l){o=o|0,l=y(l);var u=0,A=0;A=o+52|0,u=o+56|0,y(h[A>>2])==l&&(n[u>>2]|0)==2||(h[A>>2]=l,A=Mt(l)|0,n[u>>2]=A?3:2,Oe(o))}function HA(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+52|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function Ey(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=(m^1)&1,d=o+132+(l<<3)|0,l=o+132+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function Iy(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=m?0:2,d=o+132+(l<<3)|0,l=o+132+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function jA(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=l+132+(u<<3)|0,l=n[A+4>>2]|0,u=o,n[u>>2]=n[A>>2],n[u+4>>2]=l}function qA(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=(m^1)&1,d=o+60+(l<<3)|0,l=o+60+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function Y(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=m?0:2,d=o+60+(l<<3)|0,l=o+60+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function xt(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=l+60+(u<<3)|0,l=n[A+4>>2]|0,u=o,n[u>>2]=n[A>>2],n[u+4>>2]=l}function GA(o,l){o=o|0,l=l|0;var u=0;u=o+60+(l<<3)+4|0,(n[u>>2]|0)!=3&&(h[o+60+(l<<3)>>2]=y(ce),n[u>>2]=3,Oe(o))}function xo(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=(m^1)&1,d=o+204+(l<<3)|0,l=o+204+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function yf(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=m?0:2,d=o+204+(l<<3)|0,l=o+204+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function mt(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=l+204+(u<<3)|0,l=n[A+4>>2]|0,u=o,n[u>>2]=n[A>>2],n[u+4>>2]=l}function mu(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0,m=0;m=Mt(u)|0,A=(m^1)&1,d=o+276+(l<<3)|0,l=o+276+(l<<3)+4|0,m|y(h[d>>2])==u&&(n[l>>2]|0)==(A|0)||(h[d>>2]=u,n[l>>2]=A,Oe(o))}function Cy(o,l){return o=o|0,l=l|0,y(h[o+276+(l<<3)>>2])}function Lg(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+348|0,d=o+352|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function e2(o,l){o=o|0,l=y(l);var u=0,A=0;A=o+348|0,u=o+352|0,y(h[A>>2])==l&&(n[u>>2]|0)==2||(h[A>>2]=l,A=Mt(l)|0,n[u>>2]=A?3:2,Oe(o))}function Dh(o){o=o|0;var l=0;l=o+352|0,(n[l>>2]|0)!=3&&(h[o+348>>2]=y(ce),n[l>>2]=3,Oe(o))}function ur(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+348|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function Zi(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+356|0,d=o+360|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function Ef(o,l){o=o|0,l=y(l);var u=0,A=0;A=o+356|0,u=o+360|0,y(h[A>>2])==l&&(n[u>>2]|0)==2||(h[A>>2]=l,A=Mt(l)|0,n[u>>2]=A?3:2,Oe(o))}function Wa(o){o=o|0;var l=0;l=o+360|0,(n[l>>2]|0)!=3&&(h[o+356>>2]=y(ce),n[l>>2]=3,Oe(o))}function Mg(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+356|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function yu(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+364|0,d=o+368|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function If(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=m?0:2,A=o+364|0,d=o+368|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function wt(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+364|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function di(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+372|0,d=o+376|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function WA(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=m?0:2,A=o+372|0,d=o+376|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function Ya(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+372|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function pa(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+380|0,d=o+384|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function Va(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=m?0:2,A=o+380|0,d=o+384|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function _g(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+380|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function bh(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=(m^1)&1,A=o+388|0,d=o+392|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function Ug(o,l){o=o|0,l=y(l);var u=0,A=0,d=0,m=0;m=Mt(l)|0,u=m?0:2,A=o+388|0,d=o+392|0,m|y(h[A>>2])==l&&(n[d>>2]|0)==(u|0)||(h[A>>2]=l,n[d>>2]=u,Oe(o))}function wy(o,l){o=o|0,l=l|0;var u=0,A=0;A=l+388|0,u=n[A+4>>2]|0,l=o,n[l>>2]=n[A>>2],n[l+4>>2]=u}function YA(o,l){o=o|0,l=y(l);var u=0;u=o+396|0,y(h[u>>2])!=l&&(h[u>>2]=l,Oe(o))}function Hg(o){return o=o|0,y(h[o+396>>2])}function Eu(o){return o=o|0,y(h[o+400>>2])}function Iu(o){return o=o|0,y(h[o+404>>2])}function Cf(o){return o=o|0,y(h[o+408>>2])}function Ns(o){return o=o|0,y(h[o+412>>2])}function Cu(o){return o=o|0,y(h[o+416>>2])}function qn(o){return o=o|0,y(h[o+420>>2])}function ss(o,l){switch(o=o|0,l=l|0,Bi(o,(l|0)<6,2918),l|0){case 0:{l=(n[o+496>>2]|0)==2?5:4;break}case 2:{l=(n[o+496>>2]|0)==2?4:5;break}default:}return y(h[o+424+(l<<2)>>2])}function ki(o,l){switch(o=o|0,l=l|0,Bi(o,(l|0)<6,2918),l|0){case 0:{l=(n[o+496>>2]|0)==2?5:4;break}case 2:{l=(n[o+496>>2]|0)==2?4:5;break}default:}return y(h[o+448+(l<<2)>>2])}function VA(o,l){switch(o=o|0,l=l|0,Bi(o,(l|0)<6,2918),l|0){case 0:{l=(n[o+496>>2]|0)==2?5:4;break}case 2:{l=(n[o+496>>2]|0)==2?4:5;break}default:}return y(h[o+472+(l<<2)>>2])}function wf(o,l){o=o|0,l=l|0;var u=0,A=Xe;return u=n[o+4>>2]|0,(u|0)==(n[l+4>>2]|0)?u?(A=y(h[o>>2]),o=y(se(y(A-y(h[l>>2]))))<y(999999974e-13)):o=1:o=0,o|0}function mn(o,l){o=y(o),l=y(l);var u=0;return Mt(o)|0?u=Mt(l)|0:u=y(se(y(o-l)))<y(999999974e-13),u|0}function jg(o,l){o=o|0,l=l|0,qg(o,l)}function qg(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u+4|0,n[A>>2]=0,n[A+4>>2]=0,n[A+8>>2]=0,fu(A|0,o|0,l|0,0),Qo(o,3,(s[A+11>>0]|0)<0?n[A>>2]|0:A,u),jYe(A),I=u}function os(o,l,u,A){o=y(o),l=y(l),u=u|0,A=A|0;var d=Xe;o=y(o*l),d=y(A_(o,y(1)));do if(mn(d,y(0))|0)o=y(o-d);else{if(o=y(o-d),mn(d,y(1))|0){o=y(o+y(1));break}if(u){o=y(o+y(1));break}A||(d>y(.5)?d=y(1):(A=mn(d,y(.5))|0,d=y(A?1:0)),o=y(o+d))}while(!1);return y(o/l)}function xl(o,l,u,A,d,m,B,k,T,_,M,G,ae){o=o|0,l=y(l),u=u|0,A=y(A),d=d|0,m=y(m),B=B|0,k=y(k),T=y(T),_=y(_),M=y(M),G=y(G),ae=ae|0;var We=0,Le=Xe,Qe=Xe,tt=Xe,Ze=Xe,ct=Xe,He=Xe;return T<y(0)|_<y(0)?ae=0:(ae|0&&(Le=y(h[ae+4>>2]),Le!=y(0))?(tt=y(os(l,Le,0,0)),Ze=y(os(A,Le,0,0)),Qe=y(os(m,Le,0,0)),Le=y(os(k,Le,0,0))):(Qe=m,tt=l,Le=k,Ze=A),(d|0)==(o|0)?We=mn(Qe,tt)|0:We=0,(B|0)==(u|0)?ae=mn(Le,Ze)|0:ae=0,!We&&(ct=y(l-M),!(ko(o,ct,T)|0))&&!(Bf(o,ct,d,T)|0)?We=vf(o,ct,d,m,T)|0:We=1,!ae&&(He=y(A-G),!(ko(u,He,_)|0))&&!(Bf(u,He,B,_)|0)?ae=vf(u,He,B,k,_)|0:ae=1,ae=We&ae),ae|0}function ko(o,l,u){return o=o|0,l=y(l),u=y(u),(o|0)==1?o=mn(l,u)|0:o=0,o|0}function Bf(o,l,u,A){return o=o|0,l=y(l),u=u|0,A=y(A),(o|0)==2&(u|0)==0?l>=A?o=1:o=mn(l,A)|0:o=0,o|0}function vf(o,l,u,A,d){return o=o|0,l=y(l),u=u|0,A=y(A),d=y(d),(o|0)==2&(u|0)==2&A>l?d<=l?o=1:o=mn(l,d)|0:o=0,o|0}function kl(o,l,u,A,d,m,B,k,T,_,M){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=m|0,B=y(B),k=y(k),T=T|0,_=_|0,M=M|0;var G=0,ae=0,We=0,Le=0,Qe=Xe,tt=Xe,Ze=0,ct=0,He=0,Ge=0,Lt=0,qr=0,fr=0,$t=0,Tr=0,Hr=0,cr=0,Hn=Xe,Fo=Xe,No=Xe,Oo=0,$a=0;cr=I,I=I+160|0,$t=cr+152|0,fr=cr+120|0,qr=cr+104|0,He=cr+72|0,Le=cr+56|0,Lt=cr+8|0,ct=cr,Ge=(n[2279]|0)+1|0,n[2279]=Ge,Tr=o+984|0,s[Tr>>0]|0&&(n[o+512>>2]|0)!=(n[2278]|0)?Ze=4:(n[o+516>>2]|0)==(A|0)?Hr=0:Ze=4,(Ze|0)==4&&(n[o+520>>2]=0,n[o+924>>2]=-1,n[o+928>>2]=-1,h[o+932>>2]=y(-1),h[o+936>>2]=y(-1),Hr=1);e:do if(n[o+964>>2]|0)if(Qe=y(yn(o,2,B)),tt=y(yn(o,0,B)),G=o+916|0,No=y(h[G>>2]),Fo=y(h[o+920>>2]),Hn=y(h[o+932>>2]),xl(d,l,m,u,n[o+924>>2]|0,No,n[o+928>>2]|0,Fo,Hn,y(h[o+936>>2]),Qe,tt,M)|0)Ze=22;else if(We=n[o+520>>2]|0,!We)Ze=21;else for(ae=0;;){if(G=o+524+(ae*24|0)|0,Hn=y(h[G>>2]),Fo=y(h[o+524+(ae*24|0)+4>>2]),No=y(h[o+524+(ae*24|0)+16>>2]),xl(d,l,m,u,n[o+524+(ae*24|0)+8>>2]|0,Hn,n[o+524+(ae*24|0)+12>>2]|0,Fo,No,y(h[o+524+(ae*24|0)+20>>2]),Qe,tt,M)|0){Ze=22;break e}if(ae=ae+1|0,ae>>>0>=We>>>0){Ze=21;break}}else{if(T){if(G=o+916|0,!(mn(y(h[G>>2]),l)|0)){Ze=21;break}if(!(mn(y(h[o+920>>2]),u)|0)){Ze=21;break}if((n[o+924>>2]|0)!=(d|0)){Ze=21;break}G=(n[o+928>>2]|0)==(m|0)?G:0,Ze=22;break}if(We=n[o+520>>2]|0,!We)Ze=21;else for(ae=0;;){if(G=o+524+(ae*24|0)|0,mn(y(h[G>>2]),l)|0&&mn(y(h[o+524+(ae*24|0)+4>>2]),u)|0&&(n[o+524+(ae*24|0)+8>>2]|0)==(d|0)&&(n[o+524+(ae*24|0)+12>>2]|0)==(m|0)){Ze=22;break e}if(ae=ae+1|0,ae>>>0>=We>>>0){Ze=21;break}}}while(!1);do if((Ze|0)==21)s[11697]|0?(G=0,Ze=28):(G=0,Ze=31);else if((Ze|0)==22){if(ae=(s[11697]|0)!=0,!((G|0)!=0&(Hr^1)))if(ae){Ze=28;break}else{Ze=31;break}Le=G+16|0,n[o+908>>2]=n[Le>>2],We=G+20|0,n[o+912>>2]=n[We>>2],(s[11698]|0)==0|ae^1||(n[ct>>2]=wu(Ge)|0,n[ct+4>>2]=Ge,Qo(o,4,2972,ct),ae=n[o+972>>2]|0,ae|0&&op[ae&127](o),d=ha(d,T)|0,m=ha(m,T)|0,$a=+y(h[Le>>2]),Oo=+y(h[We>>2]),n[Lt>>2]=d,n[Lt+4>>2]=m,E[Lt+8>>3]=+l,E[Lt+16>>3]=+u,E[Lt+24>>3]=$a,E[Lt+32>>3]=Oo,n[Lt+40>>2]=_,Qo(o,4,2989,Lt))}while(!1);return(Ze|0)==28&&(ae=wu(Ge)|0,n[Le>>2]=ae,n[Le+4>>2]=Ge,n[Le+8>>2]=Hr?3047:11699,Qo(o,4,3038,Le),ae=n[o+972>>2]|0,ae|0&&op[ae&127](o),Lt=ha(d,T)|0,Ze=ha(m,T)|0,n[He>>2]=Lt,n[He+4>>2]=Ze,E[He+8>>3]=+l,E[He+16>>3]=+u,n[He+24>>2]=_,Qo(o,4,3049,He),Ze=31),(Ze|0)==31&&(Os(o,l,u,A,d,m,B,k,T,M),s[11697]|0&&(ae=n[2279]|0,Lt=wu(ae)|0,n[qr>>2]=Lt,n[qr+4>>2]=ae,n[qr+8>>2]=Hr?3047:11699,Qo(o,4,3083,qr),ae=n[o+972>>2]|0,ae|0&&op[ae&127](o),Lt=ha(d,T)|0,qr=ha(m,T)|0,Oo=+y(h[o+908>>2]),$a=+y(h[o+912>>2]),n[fr>>2]=Lt,n[fr+4>>2]=qr,E[fr+8>>3]=Oo,E[fr+16>>3]=$a,n[fr+24>>2]=_,Qo(o,4,3092,fr)),n[o+516>>2]=A,G||(ae=o+520|0,G=n[ae>>2]|0,(G|0)==16&&(s[11697]|0&&Qo(o,4,3124,$t),n[ae>>2]=0,G=0),T?G=o+916|0:(n[ae>>2]=G+1,G=o+524+(G*24|0)|0),h[G>>2]=l,h[G+4>>2]=u,n[G+8>>2]=d,n[G+12>>2]=m,n[G+16>>2]=n[o+908>>2],n[G+20>>2]=n[o+912>>2],G=0)),T&&(n[o+416>>2]=n[o+908>>2],n[o+420>>2]=n[o+912>>2],s[o+985>>0]=1,s[Tr>>0]=0),n[2279]=(n[2279]|0)+-1,n[o+512>>2]=n[2278],I=cr,Hr|(G|0)==0|0}function yn(o,l,u){o=o|0,l=l|0,u=y(u);var A=Xe;return A=y(J(o,l,u)),y(A+y(re(o,l,u)))}function Qo(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=I,I=I+16|0,d=m,n[d>>2]=A,o?A=n[o+976>>2]|0:A=0,kh(A,o,l,u,d),I=m}function wu(o){return o=o|0,(o>>>0>60?3201:3201+(60-o)|0)|0}function ha(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;return d=I,I=I+32|0,u=d+12|0,A=d,n[u>>2]=n[254],n[u+4>>2]=n[255],n[u+8>>2]=n[256],n[A>>2]=n[257],n[A+4>>2]=n[258],n[A+8>>2]=n[259],(o|0)>2?o=11699:o=n[(l?A:u)+(o<<2)>>2]|0,I=d,o|0}function Os(o,l,u,A,d,m,B,k,T,_){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=m|0,B=y(B),k=y(k),T=T|0,_=_|0;var M=0,G=0,ae=0,We=0,Le=Xe,Qe=Xe,tt=Xe,Ze=Xe,ct=Xe,He=Xe,Ge=Xe,Lt=0,qr=0,fr=0,$t=Xe,Tr=Xe,Hr=0,cr=Xe,Hn=0,Fo=0,No=0,Oo=0,$a=0,Vh=0,Kh=0,dc=0,Jh=0,Ff=0,Nf=0,zh=0,Zh=0,Xh=0,on=0,mc=0,$h=0,ku=0,e0=Xe,t0=Xe,Of=Xe,Lf=Xe,Qu=Xe,lo=0,Ml=0,ya=0,yc=0,lp=0,cp=Xe,Mf=Xe,up=Xe,fp=Xe,co=Xe,Us=Xe,Ec=0,Wn=Xe,Ap=Xe,Lo=Xe,Tu=Xe,Mo=Xe,Ru=Xe,pp=0,hp=0,Fu=Xe,uo=Xe,Ic=0,gp=0,dp=0,mp=0,Fr=Xe,ui=0,Hs=0,_o=0,fo=0,Mr=0,Ar=0,Cc=0,zt=Xe,yp=0,vi=0;Cc=I,I=I+16|0,lo=Cc+12|0,Ml=Cc+8|0,ya=Cc+4|0,yc=Cc,Bi(o,(d|0)==0|(Mt(l)|0)^1,3326),Bi(o,(m|0)==0|(Mt(u)|0)^1,3406),Hs=ft(o,A)|0,n[o+496>>2]=Hs,Mr=dr(2,Hs)|0,Ar=dr(0,Hs)|0,h[o+440>>2]=y(J(o,Mr,B)),h[o+444>>2]=y(re(o,Mr,B)),h[o+428>>2]=y(J(o,Ar,B)),h[o+436>>2]=y(re(o,Ar,B)),h[o+464>>2]=y(Br(o,Mr)),h[o+468>>2]=y(_n(o,Mr)),h[o+452>>2]=y(Br(o,Ar)),h[o+460>>2]=y(_n(o,Ar)),h[o+488>>2]=y(mi(o,Mr,B)),h[o+492>>2]=y(Bs(o,Mr,B)),h[o+476>>2]=y(mi(o,Ar,B)),h[o+484>>2]=y(Bs(o,Ar,B));do if(n[o+964>>2]|0)zA(o,l,u,d,m,B,k);else{if(_o=o+948|0,fo=(n[o+952>>2]|0)-(n[_o>>2]|0)>>2,!fo){dP(o,l,u,d,m,B,k);break}if(!T&&t2(o,l,u,d,m,B,k)|0)break;ee(o),mc=o+508|0,s[mc>>0]=0,Mr=dr(n[o+4>>2]|0,Hs)|0,Ar=Sy(Mr,Hs)|0,ui=de(Mr)|0,$h=n[o+8>>2]|0,gp=o+28|0,ku=(n[gp>>2]|0)!=0,Mo=ui?B:k,Fu=ui?k:B,e0=y(Th(o,Mr,B)),t0=y(r2(o,Mr,B)),Le=y(Th(o,Ar,B)),Ru=y(Ka(o,Mr,B)),uo=y(Ka(o,Ar,B)),fr=ui?d:m,Ic=ui?m:d,Fr=ui?Ru:uo,ct=ui?uo:Ru,Tu=y(yn(o,2,B)),Ze=y(yn(o,0,B)),Qe=y(y(Xr(o+364|0,B))-Fr),tt=y(y(Xr(o+380|0,B))-Fr),He=y(y(Xr(o+372|0,k))-ct),Ge=y(y(Xr(o+388|0,k))-ct),Of=ui?Qe:He,Lf=ui?tt:Ge,Tu=y(l-Tu),l=y(Tu-Fr),Mt(l)|0?Fr=l:Fr=y($n(y(Ad(l,tt)),Qe)),Ap=y(u-Ze),l=y(Ap-ct),Mt(l)|0?Lo=l:Lo=y($n(y(Ad(l,Ge)),He)),Qe=ui?Fr:Lo,Wn=ui?Lo:Fr;e:do if((fr|0)==1)for(A=0,G=0;;){if(M=ws(o,G)|0,!A)y(ZA(M))>y(0)&&y(Rh(M))>y(0)?A=M:A=0;else if(n2(M)|0){We=0;break e}if(G=G+1|0,G>>>0>=fo>>>0){We=A;break}}else We=0;while(!1);Lt=We+500|0,qr=We+504|0,A=0,M=0,l=y(0),ae=0;do{if(G=n[(n[_o>>2]|0)+(ae<<2)>>2]|0,(n[G+36>>2]|0)==1)Dy(G),s[G+985>>0]=1,s[G+984>>0]=0;else{Sf(G),T&&xh(G,ft(G,Hs)|0,Qe,Wn,Fr);do if((n[G+24>>2]|0)!=1)if((G|0)==(We|0)){n[Lt>>2]=n[2278],h[qr>>2]=y(0);break}else{mP(o,G,Fr,d,Lo,Fr,Lo,m,Hs,_);break}else M|0&&(n[M+960>>2]=G),n[G+960>>2]=0,M=G,A=A|0?A:G;while(!1);Us=y(h[G+504>>2]),l=y(l+y(Us+y(yn(G,Mr,Fr))))}ae=ae+1|0}while((ae|0)!=(fo|0));for(No=l>Qe,Ec=ku&((fr|0)==2&No)?1:fr,Hn=(Ic|0)==1,$a=Hn&(T^1),Vh=(Ec|0)==1,Kh=(Ec|0)==2,dc=976+(Mr<<2)|0,Jh=(Ic|2|0)==2,Xh=Hn&(ku^1),Ff=1040+(Ar<<2)|0,Nf=1040+(Mr<<2)|0,zh=976+(Ar<<2)|0,Zh=(Ic|0)!=1,No=ku&((fr|0)!=0&No),Fo=o+976|0,Hn=Hn^1,l=Qe,Hr=0,Oo=0,Us=y(0),Qu=y(0);;){e:do if(Hr>>>0<fo>>>0)for(qr=n[_o>>2]|0,ae=0,Ge=y(0),He=y(0),tt=y(0),Qe=y(0),G=0,M=0,We=Hr;;){if(Lt=n[qr+(We<<2)>>2]|0,(n[Lt+36>>2]|0)!=1&&(n[Lt+940>>2]=Oo,(n[Lt+24>>2]|0)!=1)){if(Ze=y(yn(Lt,Mr,Fr)),on=n[dc>>2]|0,u=y(Xr(Lt+380+(on<<3)|0,Mo)),ct=y(h[Lt+504>>2]),u=y(Ad(u,ct)),u=y($n(y(Xr(Lt+364+(on<<3)|0,Mo)),u)),ku&(ae|0)!=0&y(Ze+y(He+u))>l){m=ae,Ze=Ge,fr=We;break e}Ze=y(Ze+u),u=y(He+Ze),Ze=y(Ge+Ze),n2(Lt)|0&&(tt=y(tt+y(ZA(Lt))),Qe=y(Qe-y(ct*y(Rh(Lt))))),M|0&&(n[M+960>>2]=Lt),n[Lt+960>>2]=0,ae=ae+1|0,M=Lt,G=G|0?G:Lt}else Ze=Ge,u=He;if(We=We+1|0,We>>>0<fo>>>0)Ge=Ze,He=u;else{m=ae,fr=We;break}}else m=0,Ze=y(0),tt=y(0),Qe=y(0),G=0,fr=Hr;while(!1);on=tt>y(0)&tt<y(1),$t=on?y(1):tt,on=Qe>y(0)&Qe<y(1),Ge=on?y(1):Qe;do if(Vh)on=51;else if(Ze<Of&((Mt(Of)|0)^1))l=Of,on=51;else if(Ze>Lf&((Mt(Lf)|0)^1))l=Lf,on=51;else if(s[(n[Fo>>2]|0)+3>>0]|0)on=51;else{if($t!=y(0)&&y(ZA(o))!=y(0)){on=53;break}l=Ze,on=53}while(!1);if((on|0)==51&&(on=0,Mt(l)|0?on=53:(Tr=y(l-Ze),cr=l)),(on|0)==53&&(on=0,Ze<y(0)?(Tr=y(-Ze),cr=l):(Tr=y(0),cr=l)),!$a&&(lp=(G|0)==0,!lp)){ae=n[dc>>2]|0,We=Tr<y(0),ct=y(Tr/Ge),Lt=Tr>y(0),He=y(Tr/$t),tt=y(0),Ze=y(0),l=y(0),M=G;do u=y(Xr(M+380+(ae<<3)|0,Mo)),Qe=y(Xr(M+364+(ae<<3)|0,Mo)),Qe=y(Ad(u,y($n(Qe,y(h[M+504>>2]))))),We?(u=y(Qe*y(Rh(M))),u!=y(-0)&&(zt=y(Qe-y(ct*u)),cp=y(Gn(M,Mr,zt,cr,Fr)),zt!=cp)&&(tt=y(tt-y(cp-Qe)),l=y(l+u))):Lt&&(Mf=y(ZA(M)),Mf!=y(0))&&(zt=y(Qe+y(He*Mf)),up=y(Gn(M,Mr,zt,cr,Fr)),zt!=up)&&(tt=y(tt-y(up-Qe)),Ze=y(Ze-Mf)),M=n[M+960>>2]|0;while(M|0);if(l=y(Ge+l),Qe=y(Tr+tt),lp)l=y(0);else{ct=y($t+Ze),We=n[dc>>2]|0,Lt=Qe<y(0),qr=l==y(0),He=y(Qe/l),ae=Qe>y(0),ct=y(Qe/ct),l=y(0);do{zt=y(Xr(G+380+(We<<3)|0,Mo)),tt=y(Xr(G+364+(We<<3)|0,Mo)),tt=y(Ad(zt,y($n(tt,y(h[G+504>>2]))))),Lt?(zt=y(tt*y(Rh(G))),Qe=y(-zt),zt!=y(-0)?(zt=y(He*Qe),Qe=y(Gn(G,Mr,y(tt+(qr?Qe:zt)),cr,Fr))):Qe=tt):ae&&(fp=y(ZA(G)),fp!=y(0))?Qe=y(Gn(G,Mr,y(tt+y(ct*fp)),cr,Fr)):Qe=tt,l=y(l-y(Qe-tt)),Ze=y(yn(G,Mr,Fr)),u=y(yn(G,Ar,Fr)),Qe=y(Qe+Ze),h[Ml>>2]=Qe,n[yc>>2]=1,tt=y(h[G+396>>2]);e:do if(Mt(tt)|0){M=Mt(Wn)|0;do if(!M){if(No|(oo(G,Ar,Wn)|0|Hn)||(as(o,G)|0)!=4||(n[(Ql(G,Ar)|0)+4>>2]|0)==3||(n[(Tl(G,Ar)|0)+4>>2]|0)==3)break;h[lo>>2]=Wn,n[ya>>2]=1;break e}while(!1);if(oo(G,Ar,Wn)|0){M=n[G+992+(n[zh>>2]<<2)>>2]|0,zt=y(u+y(Xr(M,Wn))),h[lo>>2]=zt,M=Zh&(n[M+4>>2]|0)==2,n[ya>>2]=((Mt(zt)|0|M)^1)&1;break}else{h[lo>>2]=Wn,n[ya>>2]=M?0:2;break}}else zt=y(Qe-Ze),$t=y(zt/tt),zt=y(tt*zt),n[ya>>2]=1,h[lo>>2]=y(u+(ui?$t:zt));while(!1);Bu(G,Mr,cr,Fr,yc,Ml),Bu(G,Ar,Wn,Fr,ya,lo);do if(!(oo(G,Ar,Wn)|0)&&(as(o,G)|0)==4){if((n[(Ql(G,Ar)|0)+4>>2]|0)==3){M=0;break}M=(n[(Tl(G,Ar)|0)+4>>2]|0)!=3}else M=0;while(!1);zt=y(h[Ml>>2]),$t=y(h[lo>>2]),yp=n[yc>>2]|0,vi=n[ya>>2]|0,kl(G,ui?zt:$t,ui?$t:zt,Hs,ui?yp:vi,ui?vi:yp,Fr,Lo,T&(M^1),3488,_)|0,s[mc>>0]=s[mc>>0]|s[G+508>>0],G=n[G+960>>2]|0}while(G|0)}}else l=y(0);if(l=y(Tr+l),vi=l<y(0)&1,s[mc>>0]=vi|c[mc>>0],Kh&l>y(0)?(M=n[dc>>2]|0,n[o+364+(M<<3)+4>>2]|0&&(co=y(Xr(o+364+(M<<3)|0,Mo)),co>=y(0))?Qe=y($n(y(0),y(co-y(cr-l)))):Qe=y(0)):Qe=l,Lt=Hr>>>0<fr>>>0,Lt){We=n[_o>>2]|0,ae=Hr,M=0;do G=n[We+(ae<<2)>>2]|0,n[G+24>>2]|0||(M=((n[(Ql(G,Mr)|0)+4>>2]|0)==3&1)+M|0,M=M+((n[(Tl(G,Mr)|0)+4>>2]|0)==3&1)|0),ae=ae+1|0;while((ae|0)!=(fr|0));M?(Ze=y(0),u=y(0)):on=101}else on=101;e:do if((on|0)==101)switch(on=0,$h|0){case 1:{M=0,Ze=y(Qe*y(.5)),u=y(0);break e}case 2:{M=0,Ze=Qe,u=y(0);break e}case 3:{if(m>>>0<=1){M=0,Ze=y(0),u=y(0);break e}u=y((m+-1|0)>>>0),M=0,Ze=y(0),u=y(y($n(Qe,y(0)))/u);break e}case 5:{u=y(Qe/y((m+1|0)>>>0)),M=0,Ze=u;break e}case 4:{u=y(Qe/y(m>>>0)),M=0,Ze=y(u*y(.5));break e}default:{M=0,Ze=y(0),u=y(0);break e}}while(!1);if(l=y(e0+Ze),Lt){tt=y(Qe/y(M|0)),ae=n[_o>>2]|0,G=Hr,Qe=y(0);do{M=n[ae+(G<<2)>>2]|0;e:do if((n[M+36>>2]|0)!=1){switch(n[M+24>>2]|0){case 1:{if(ga(M,Mr)|0){if(!T)break e;zt=y(XA(M,Mr,cr)),zt=y(zt+y(Br(o,Mr))),zt=y(zt+y(J(M,Mr,Fr))),h[M+400+(n[Nf>>2]<<2)>>2]=zt;break e}break}case 0:if(vi=(n[(Ql(M,Mr)|0)+4>>2]|0)==3,zt=y(tt+l),l=vi?zt:l,T&&(vi=M+400+(n[Nf>>2]<<2)|0,h[vi>>2]=y(l+y(h[vi>>2]))),vi=(n[(Tl(M,Mr)|0)+4>>2]|0)==3,zt=y(tt+l),l=vi?zt:l,$a){zt=y(u+y(yn(M,Mr,Fr))),Qe=Wn,l=y(l+y(zt+y(h[M+504>>2])));break e}else{l=y(l+y(u+y($A(M,Mr,Fr)))),Qe=y($n(Qe,y($A(M,Ar,Fr))));break e}default:}T&&(zt=y(Ze+y(Br(o,Mr))),vi=M+400+(n[Nf>>2]<<2)|0,h[vi>>2]=y(zt+y(h[vi>>2])))}while(!1);G=G+1|0}while((G|0)!=(fr|0))}else Qe=y(0);if(u=y(t0+l),Jh?Ze=y(y(Gn(o,Ar,y(uo+Qe),Fu,B))-uo):Ze=Wn,tt=y(y(Gn(o,Ar,y(uo+(Xh?Wn:Qe)),Fu,B))-uo),Lt&T){G=Hr;do{ae=n[(n[_o>>2]|0)+(G<<2)>>2]|0;do if((n[ae+36>>2]|0)!=1){if((n[ae+24>>2]|0)==1){if(ga(ae,Ar)|0){if(zt=y(XA(ae,Ar,Wn)),zt=y(zt+y(Br(o,Ar))),zt=y(zt+y(J(ae,Ar,Fr))),M=n[Ff>>2]|0,h[ae+400+(M<<2)>>2]=zt,!(Mt(zt)|0))break}else M=n[Ff>>2]|0;zt=y(Br(o,Ar)),h[ae+400+(M<<2)>>2]=y(zt+y(J(ae,Ar,Fr)));break}M=as(o,ae)|0;do if((M|0)==4){if((n[(Ql(ae,Ar)|0)+4>>2]|0)==3){on=139;break}if((n[(Tl(ae,Ar)|0)+4>>2]|0)==3){on=139;break}if(oo(ae,Ar,Wn)|0){l=Le;break}yp=n[ae+908+(n[dc>>2]<<2)>>2]|0,n[lo>>2]=yp,l=y(h[ae+396>>2]),vi=Mt(l)|0,Qe=(n[S>>2]=yp,y(h[S>>2])),vi?l=tt:(Tr=y(yn(ae,Ar,Fr)),zt=y(Qe/l),l=y(l*Qe),l=y(Tr+(ui?zt:l))),h[Ml>>2]=l,h[lo>>2]=y(y(yn(ae,Mr,Fr))+Qe),n[ya>>2]=1,n[yc>>2]=1,Bu(ae,Mr,cr,Fr,ya,lo),Bu(ae,Ar,Wn,Fr,yc,Ml),l=y(h[lo>>2]),Tr=y(h[Ml>>2]),zt=ui?l:Tr,l=ui?Tr:l,vi=((Mt(zt)|0)^1)&1,kl(ae,zt,l,Hs,vi,((Mt(l)|0)^1)&1,Fr,Lo,1,3493,_)|0,l=Le}else on=139;while(!1);e:do if((on|0)==139){on=0,l=y(Ze-y($A(ae,Ar,Fr)));do if((n[(Ql(ae,Ar)|0)+4>>2]|0)==3){if((n[(Tl(ae,Ar)|0)+4>>2]|0)!=3)break;l=y(Le+y($n(y(0),y(l*y(.5)))));break e}while(!1);if((n[(Tl(ae,Ar)|0)+4>>2]|0)==3){l=Le;break}if((n[(Ql(ae,Ar)|0)+4>>2]|0)==3){l=y(Le+y($n(y(0),l)));break}switch(M|0){case 1:{l=Le;break e}case 2:{l=y(Le+y(l*y(.5)));break e}default:{l=y(Le+l);break e}}}while(!1);zt=y(Us+l),vi=ae+400+(n[Ff>>2]<<2)|0,h[vi>>2]=y(zt+y(h[vi>>2]))}while(!1);G=G+1|0}while((G|0)!=(fr|0))}if(Us=y(Us+tt),Qu=y($n(Qu,u)),m=Oo+1|0,fr>>>0>=fo>>>0)break;l=cr,Hr=fr,Oo=m}do if(T){if(M=m>>>0>1,!M&&!(WL(o)|0))break;if(!(Mt(Wn)|0)){l=y(Wn-Us);e:do switch(n[o+12>>2]|0){case 3:{Le=y(Le+l),He=y(0);break}case 2:{Le=y(Le+y(l*y(.5))),He=y(0);break}case 4:{Wn>Us?He=y(l/y(m>>>0)):He=y(0);break}case 7:if(Wn>Us){Le=y(Le+y(l/y(m<<1>>>0))),He=y(l/y(m>>>0)),He=M?He:y(0);break e}else{Le=y(Le+y(l*y(.5))),He=y(0);break e}case 6:{He=y(l/y(Oo>>>0)),He=Wn>Us&M?He:y(0);break}default:He=y(0)}while(!1);if(m|0)for(Lt=1040+(Ar<<2)|0,qr=976+(Ar<<2)|0,We=0,G=0;;){e:do if(G>>>0<fo>>>0)for(Qe=y(0),tt=y(0),l=y(0),ae=G;;){M=n[(n[_o>>2]|0)+(ae<<2)>>2]|0;do if((n[M+36>>2]|0)!=1&&!(n[M+24>>2]|0)){if((n[M+940>>2]|0)!=(We|0))break e;if(YL(M,Ar)|0&&(zt=y(h[M+908+(n[qr>>2]<<2)>>2]),l=y($n(l,y(zt+y(yn(M,Ar,Fr)))))),(as(o,M)|0)!=5)break;co=y(Wg(M)),co=y(co+y(J(M,0,Fr))),zt=y(h[M+912>>2]),zt=y(y(zt+y(yn(M,0,Fr)))-co),co=y($n(tt,co)),zt=y($n(Qe,zt)),Qe=zt,tt=co,l=y($n(l,y(co+zt)))}while(!1);if(M=ae+1|0,M>>>0<fo>>>0)ae=M;else{ae=M;break}}else tt=y(0),l=y(0),ae=G;while(!1);if(ct=y(He+l),u=Le,Le=y(Le+ct),G>>>0<ae>>>0){Ze=y(u+tt),M=G;do{G=n[(n[_o>>2]|0)+(M<<2)>>2]|0;e:do if((n[G+36>>2]|0)!=1&&!(n[G+24>>2]|0))switch(as(o,G)|0){case 1:{zt=y(u+y(J(G,Ar,Fr))),h[G+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 3:{zt=y(y(Le-y(re(G,Ar,Fr)))-y(h[G+908+(n[qr>>2]<<2)>>2])),h[G+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 2:{zt=y(u+y(y(ct-y(h[G+908+(n[qr>>2]<<2)>>2]))*y(.5))),h[G+400+(n[Lt>>2]<<2)>>2]=zt;break e}case 4:{if(zt=y(u+y(J(G,Ar,Fr))),h[G+400+(n[Lt>>2]<<2)>>2]=zt,oo(G,Ar,Wn)|0||(ui?(Qe=y(h[G+908>>2]),l=y(Qe+y(yn(G,Mr,Fr))),tt=ct):(tt=y(h[G+912>>2]),tt=y(tt+y(yn(G,Ar,Fr))),l=ct,Qe=y(h[G+908>>2])),mn(l,Qe)|0&&mn(tt,y(h[G+912>>2]))|0))break e;kl(G,l,tt,Hs,1,1,Fr,Lo,1,3501,_)|0;break e}case 5:{h[G+404>>2]=y(y(Ze-y(Wg(G)))+y(XA(G,0,Wn)));break e}default:break e}while(!1);M=M+1|0}while((M|0)!=(ae|0))}if(We=We+1|0,(We|0)==(m|0))break;G=ae}}}while(!1);if(h[o+908>>2]=y(Gn(o,2,Tu,B,B)),h[o+912>>2]=y(Gn(o,0,Ap,k,B)),Ec|0&&(pp=n[o+32>>2]|0,hp=(Ec|0)==2,!(hp&(pp|0)!=2))?hp&(pp|0)==2&&(l=y(Ru+cr),l=y($n(y(Ad(l,y(Yg(o,Mr,Qu,Mo)))),Ru)),on=198):(l=y(Gn(o,Mr,Qu,Mo,B)),on=198),(on|0)==198&&(h[o+908+(n[976+(Mr<<2)>>2]<<2)>>2]=l),Ic|0&&(dp=n[o+32>>2]|0,mp=(Ic|0)==2,!(mp&(dp|0)!=2))?mp&(dp|0)==2&&(l=y(uo+Wn),l=y($n(y(Ad(l,y(Yg(o,Ar,y(uo+Us),Fu)))),uo)),on=204):(l=y(Gn(o,Ar,y(uo+Us),Fu,B)),on=204),(on|0)==204&&(h[o+908+(n[976+(Ar<<2)>>2]<<2)>>2]=l),T){if((n[gp>>2]|0)==2){G=976+(Ar<<2)|0,ae=1040+(Ar<<2)|0,M=0;do We=ws(o,M)|0,n[We+24>>2]|0||(yp=n[G>>2]|0,zt=y(h[o+908+(yp<<2)>>2]),vi=We+400+(n[ae>>2]<<2)|0,zt=y(zt-y(h[vi>>2])),h[vi>>2]=y(zt-y(h[We+908+(yp<<2)>>2]))),M=M+1|0;while((M|0)!=(fo|0))}if(A|0){M=ui?Ec:d;do VL(o,A,Fr,M,Lo,Hs,_),A=n[A+960>>2]|0;while(A|0)}if(M=(Mr|2|0)==3,G=(Ar|2|0)==3,M|G){A=0;do ae=n[(n[_o>>2]|0)+(A<<2)>>2]|0,(n[ae+36>>2]|0)!=1&&(M&&i2(o,ae,Mr),G&&i2(o,ae,Ar)),A=A+1|0;while((A|0)!=(fo|0))}}}while(!1);I=Cc}function Ph(o,l){o=o|0,l=y(l);var u=0;ja(o,l>=y(0),3147),u=l==y(0),h[o+4>>2]=u?y(0):l}function KA(o,l,u,A){o=o|0,l=y(l),u=y(u),A=A|0;var d=Xe,m=Xe,B=0,k=0,T=0;n[2278]=(n[2278]|0)+1,Sf(o),oo(o,2,l)|0?(d=y(Xr(n[o+992>>2]|0,l)),T=1,d=y(d+y(yn(o,2,l)))):(d=y(Xr(o+380|0,l)),d>=y(0)?T=2:(T=((Mt(l)|0)^1)&1,d=l)),oo(o,0,u)|0?(m=y(Xr(n[o+996>>2]|0,u)),k=1,m=y(m+y(yn(o,0,l)))):(m=y(Xr(o+388|0,u)),m>=y(0)?k=2:(k=((Mt(u)|0)^1)&1,m=u)),B=o+976|0,kl(o,d,m,A,T,k,l,u,1,3189,n[B>>2]|0)|0&&(xh(o,n[o+496>>2]|0,l,u,l),JA(o,y(h[(n[B>>2]|0)+4>>2]),y(0),y(0)),s[11696]|0)&&jg(o,7)}function Sf(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0;k=I,I=I+32|0,B=k+24|0,m=k+16|0,A=k+8|0,d=k,u=0;do l=o+380+(u<<3)|0,n[o+380+(u<<3)+4>>2]|0&&(T=l,_=n[T+4>>2]|0,M=A,n[M>>2]=n[T>>2],n[M+4>>2]=_,M=o+364+(u<<3)|0,_=n[M+4>>2]|0,T=d,n[T>>2]=n[M>>2],n[T+4>>2]=_,n[m>>2]=n[A>>2],n[m+4>>2]=n[A+4>>2],n[B>>2]=n[d>>2],n[B+4>>2]=n[d+4>>2],wf(m,B)|0)||(l=o+348+(u<<3)|0),n[o+992+(u<<2)>>2]=l,u=u+1|0;while((u|0)!=2);I=k}function oo(o,l,u){o=o|0,l=l|0,u=y(u);var A=0;switch(o=n[o+992+(n[976+(l<<2)>>2]<<2)>>2]|0,n[o+4>>2]|0){case 0:case 3:{o=0;break}case 1:{y(h[o>>2])<y(0)?o=0:A=5;break}case 2:{y(h[o>>2])<y(0)?o=0:o=(Mt(u)|0)^1;break}default:A=5}return(A|0)==5&&(o=1),o|0}function Xr(o,l){switch(o=o|0,l=y(l),n[o+4>>2]|0){case 2:{l=y(y(y(h[o>>2])*l)/y(100));break}case 1:{l=y(h[o>>2]);break}default:l=y(ce)}return y(l)}function xh(o,l,u,A,d){o=o|0,l=l|0,u=y(u),A=y(A),d=y(d);var m=0,B=Xe;l=n[o+944>>2]|0?l:1,m=dr(n[o+4>>2]|0,l)|0,l=Sy(m,l)|0,u=y(yP(o,m,u)),A=y(yP(o,l,A)),B=y(u+y(J(o,m,d))),h[o+400+(n[1040+(m<<2)>>2]<<2)>>2]=B,u=y(u+y(re(o,m,d))),h[o+400+(n[1e3+(m<<2)>>2]<<2)>>2]=u,u=y(A+y(J(o,l,d))),h[o+400+(n[1040+(l<<2)>>2]<<2)>>2]=u,d=y(A+y(re(o,l,d))),h[o+400+(n[1e3+(l<<2)>>2]<<2)>>2]=d}function JA(o,l,u,A){o=o|0,l=y(l),u=y(u),A=y(A);var d=0,m=0,B=Xe,k=Xe,T=0,_=0,M=Xe,G=0,ae=Xe,We=Xe,Le=Xe,Qe=Xe;if(l!=y(0)&&(d=o+400|0,Qe=y(h[d>>2]),m=o+404|0,Le=y(h[m>>2]),G=o+416|0,We=y(h[G>>2]),_=o+420|0,B=y(h[_>>2]),ae=y(Qe+u),M=y(Le+A),A=y(ae+We),k=y(M+B),T=(n[o+988>>2]|0)==1,h[d>>2]=y(os(Qe,l,0,T)),h[m>>2]=y(os(Le,l,0,T)),u=y(A_(y(We*l),y(1))),mn(u,y(0))|0?m=0:m=(mn(u,y(1))|0)^1,u=y(A_(y(B*l),y(1))),mn(u,y(0))|0?d=0:d=(mn(u,y(1))|0)^1,Qe=y(os(A,l,T&m,T&(m^1))),h[G>>2]=y(Qe-y(os(ae,l,0,T))),Qe=y(os(k,l,T&d,T&(d^1))),h[_>>2]=y(Qe-y(os(M,l,0,T))),m=(n[o+952>>2]|0)-(n[o+948>>2]|0)>>2,m|0)){d=0;do JA(ws(o,d)|0,l,ae,M),d=d+1|0;while((d|0)!=(m|0))}}function By(o,l,u,A,d){switch(o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,u|0){case 5:case 0:{o=WX(n[489]|0,A,d)|0;break}default:o=MYe(A,d)|0}return o|0}function Gg(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;d=I,I=I+16|0,m=d,n[m>>2]=A,kh(o,0,l,u,m),I=d}function kh(o,l,u,A,d){if(o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,o=o|0?o:956,A$[n[o+8>>2]&1](o,l,u,A,d)|0,(u|0)==5)Nt();else return}function hc(o,l,u){o=o|0,l=l|0,u=u|0,s[o+l>>0]=u&1}function vy(o,l){o=o|0,l=l|0;var u=0,A=0;n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,u=l+4|0,A=(n[u>>2]|0)-(n[l>>2]|0)>>2,A|0&&(Qh(o,A),kt(o,n[l>>2]|0,n[u>>2]|0,A))}function Qh(o,l){o=o|0,l=l|0;var u=0;if((O(o)|0)>>>0<l>>>0&&sn(o),l>>>0>1073741823)Nt();else{u=Jt(l<<2)|0,n[o+4>>2]=u,n[o>>2]=u,n[o+8>>2]=u+(l<<2);return}}function kt(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,A=o+4|0,o=u-l|0,(o|0)>0&&(Qr(n[A>>2]|0,l|0,o|0)|0,n[A>>2]=(n[A>>2]|0)+(o>>>2<<2))}function O(o){return o=o|0,1073741823}function J(o,l,u){return o=o|0,l=l|0,u=y(u),de(l)|0&&n[o+96>>2]|0?o=o+92|0:o=kn(o+60|0,n[1040+(l<<2)>>2]|0,992)|0,y(Ke(o,u))}function re(o,l,u){return o=o|0,l=l|0,u=y(u),de(l)|0&&n[o+104>>2]|0?o=o+100|0:o=kn(o+60|0,n[1e3+(l<<2)>>2]|0,992)|0,y(Ke(o,u))}function de(o){return o=o|0,(o|1|0)==3|0}function Ke(o,l){return o=o|0,l=y(l),(n[o+4>>2]|0)==3?l=y(0):l=y(Xr(o,l)),y(l)}function ft(o,l){return o=o|0,l=l|0,o=n[o>>2]|0,(o|0?o:(l|0)>1?l:1)|0}function dr(o,l){o=o|0,l=l|0;var u=0;e:do if((l|0)==2){switch(o|0){case 2:{o=3;break e}case 3:break;default:{u=4;break e}}o=2}else u=4;while(!1);return o|0}function Br(o,l){o=o|0,l=l|0;var u=Xe;return de(l)|0&&n[o+312>>2]|0&&(u=y(h[o+308>>2]),u>=y(0))||(u=y($n(y(h[(kn(o+276|0,n[1040+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(u)}function _n(o,l){o=o|0,l=l|0;var u=Xe;return de(l)|0&&n[o+320>>2]|0&&(u=y(h[o+316>>2]),u>=y(0))||(u=y($n(y(h[(kn(o+276|0,n[1e3+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(u)}function mi(o,l,u){o=o|0,l=l|0,u=y(u);var A=Xe;return de(l)|0&&n[o+240>>2]|0&&(A=y(Xr(o+236|0,u)),A>=y(0))||(A=y($n(y(Xr(kn(o+204|0,n[1040+(l<<2)>>2]|0,992)|0,u)),y(0)))),y(A)}function Bs(o,l,u){o=o|0,l=l|0,u=y(u);var A=Xe;return de(l)|0&&n[o+248>>2]|0&&(A=y(Xr(o+244|0,u)),A>=y(0))||(A=y($n(y(Xr(kn(o+204|0,n[1e3+(l<<2)>>2]|0,992)|0,u)),y(0)))),y(A)}function zA(o,l,u,A,d,m,B){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=y(m),B=y(B);var k=Xe,T=Xe,_=Xe,M=Xe,G=Xe,ae=Xe,We=0,Le=0,Qe=0;Qe=I,I=I+16|0,We=Qe,Le=o+964|0,Bi(o,(n[Le>>2]|0)!=0,3519),k=y(Ka(o,2,l)),T=y(Ka(o,0,l)),_=y(yn(o,2,l)),M=y(yn(o,0,l)),Mt(l)|0?G=l:G=y($n(y(0),y(y(l-_)-k))),Mt(u)|0?ae=u:ae=y($n(y(0),y(y(u-M)-T))),(A|0)==1&(d|0)==1?(h[o+908>>2]=y(Gn(o,2,y(l-_),m,m)),l=y(Gn(o,0,y(u-M),B,m))):(p$[n[Le>>2]&1](We,o,G,A,ae,d),G=y(k+y(h[We>>2])),ae=y(l-_),h[o+908>>2]=y(Gn(o,2,(A|2|0)==2?G:ae,m,m)),ae=y(T+y(h[We+4>>2])),l=y(u-M),l=y(Gn(o,0,(d|2|0)==2?ae:l,B,m))),h[o+912>>2]=l,I=Qe}function dP(o,l,u,A,d,m,B){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=y(m),B=y(B);var k=Xe,T=Xe,_=Xe,M=Xe;_=y(Ka(o,2,m)),k=y(Ka(o,0,m)),M=y(yn(o,2,m)),T=y(yn(o,0,m)),l=y(l-M),h[o+908>>2]=y(Gn(o,2,(A|2|0)==2?_:l,m,m)),u=y(u-T),h[o+912>>2]=y(Gn(o,0,(d|2|0)==2?k:u,B,m))}function t2(o,l,u,A,d,m,B){o=o|0,l=y(l),u=y(u),A=A|0,d=d|0,m=y(m),B=y(B);var k=0,T=Xe,_=Xe;return k=(A|0)==2,!(l<=y(0)&k)&&!(u<=y(0)&(d|0)==2)&&!((A|0)==1&(d|0)==1)?o=0:(T=y(yn(o,0,m)),_=y(yn(o,2,m)),k=l<y(0)&k|(Mt(l)|0),l=y(l-_),h[o+908>>2]=y(Gn(o,2,k?y(0):l,m,m)),l=y(u-T),k=u<y(0)&(d|0)==2|(Mt(u)|0),h[o+912>>2]=y(Gn(o,0,k?y(0):l,B,m)),o=1),o|0}function Sy(o,l){return o=o|0,l=l|0,Vg(o)|0?o=dr(2,l)|0:o=0,o|0}function Th(o,l,u){return o=o|0,l=l|0,u=y(u),u=y(mi(o,l,u)),y(u+y(Br(o,l)))}function r2(o,l,u){return o=o|0,l=l|0,u=y(u),u=y(Bs(o,l,u)),y(u+y(_n(o,l)))}function Ka(o,l,u){o=o|0,l=l|0,u=y(u);var A=Xe;return A=y(Th(o,l,u)),y(A+y(r2(o,l,u)))}function n2(o){return o=o|0,n[o+24>>2]|0?o=0:y(ZA(o))!=y(0)?o=1:o=y(Rh(o))!=y(0),o|0}function ZA(o){o=o|0;var l=Xe;if(n[o+944>>2]|0){if(l=y(h[o+44>>2]),Mt(l)|0)return l=y(h[o+40>>2]),o=l>y(0)&((Mt(l)|0)^1),y(o?l:y(0))}else l=y(0);return y(l)}function Rh(o){o=o|0;var l=Xe,u=0,A=Xe;do if(n[o+944>>2]|0){if(l=y(h[o+48>>2]),Mt(l)|0){if(u=s[(n[o+976>>2]|0)+2>>0]|0,!(u<<24>>24)&&(A=y(h[o+40>>2]),A<y(0)&((Mt(A)|0)^1))){l=y(-A);break}l=u<<24>>24?y(1):y(0)}}else l=y(0);while(!1);return y(l)}function Dy(o){o=o|0;var l=0,u=0;if(Xy(o+400|0,0,540)|0,s[o+985>>0]=1,ee(o),u=_i(o)|0,u|0){l=o+948|0,o=0;do Dy(n[(n[l>>2]|0)+(o<<2)>>2]|0),o=o+1|0;while((o|0)!=(u|0))}}function mP(o,l,u,A,d,m,B,k,T,_){o=o|0,l=l|0,u=y(u),A=A|0,d=y(d),m=y(m),B=y(B),k=k|0,T=T|0,_=_|0;var M=0,G=Xe,ae=0,We=0,Le=Xe,Qe=Xe,tt=0,Ze=Xe,ct=0,He=Xe,Ge=0,Lt=0,qr=0,fr=0,$t=0,Tr=0,Hr=0,cr=0,Hn=0,Fo=0;Hn=I,I=I+16|0,qr=Hn+12|0,fr=Hn+8|0,$t=Hn+4|0,Tr=Hn,cr=dr(n[o+4>>2]|0,T)|0,Ge=de(cr)|0,G=y(Xr(KL(l)|0,Ge?m:B)),Lt=oo(l,2,m)|0,Hr=oo(l,0,B)|0;do if(!(Mt(G)|0)&&!(Mt(Ge?u:d)|0)){if(M=l+504|0,!(Mt(y(h[M>>2]))|0)&&(!(s2(n[l+976>>2]|0,0)|0)||(n[l+500>>2]|0)==(n[2278]|0)))break;h[M>>2]=y($n(G,y(Ka(l,cr,m))))}else ae=7;while(!1);do if((ae|0)==7){if(ct=Ge^1,!(ct|Lt^1)){B=y(Xr(n[l+992>>2]|0,m)),h[l+504>>2]=y($n(B,y(Ka(l,2,m))));break}if(!(Ge|Hr^1)){B=y(Xr(n[l+996>>2]|0,B)),h[l+504>>2]=y($n(B,y(Ka(l,0,m))));break}h[qr>>2]=y(ce),h[fr>>2]=y(ce),n[$t>>2]=0,n[Tr>>2]=0,Ze=y(yn(l,2,m)),He=y(yn(l,0,m)),Lt?(Le=y(Ze+y(Xr(n[l+992>>2]|0,m))),h[qr>>2]=Le,n[$t>>2]=1,We=1):(We=0,Le=y(ce)),Hr?(G=y(He+y(Xr(n[l+996>>2]|0,B))),h[fr>>2]=G,n[Tr>>2]=1,M=1):(M=0,G=y(ce)),ae=n[o+32>>2]|0,Ge&(ae|0)==2?ae=2:Mt(Le)|0&&!(Mt(u)|0)&&(h[qr>>2]=u,n[$t>>2]=2,We=2,Le=u),!((ae|0)==2&ct)&&Mt(G)|0&&!(Mt(d)|0)&&(h[fr>>2]=d,n[Tr>>2]=2,M=2,G=d),Qe=y(h[l+396>>2]),tt=Mt(Qe)|0;do if(tt)ae=We;else{if((We|0)==1&ct){h[fr>>2]=y(y(Le-Ze)/Qe),n[Tr>>2]=1,M=1,ae=1;break}Ge&(M|0)==1?(h[qr>>2]=y(Qe*y(G-He)),n[$t>>2]=1,M=1,ae=1):ae=We}while(!1);Fo=Mt(u)|0,We=(as(o,l)|0)!=4,!(Ge|Lt|((A|0)!=1|Fo)|(We|(ae|0)==1))&&(h[qr>>2]=u,n[$t>>2]=1,!tt)&&(h[fr>>2]=y(y(u-Ze)/Qe),n[Tr>>2]=1,M=1),!(Hr|ct|((k|0)!=1|(Mt(d)|0))|(We|(M|0)==1))&&(h[fr>>2]=d,n[Tr>>2]=1,!tt)&&(h[qr>>2]=y(Qe*y(d-He)),n[$t>>2]=1),Bu(l,2,m,m,$t,qr),Bu(l,0,B,m,Tr,fr),u=y(h[qr>>2]),d=y(h[fr>>2]),kl(l,u,d,T,n[$t>>2]|0,n[Tr>>2]|0,m,B,0,3565,_)|0,B=y(h[l+908+(n[976+(cr<<2)>>2]<<2)>>2]),h[l+504>>2]=y($n(B,y(Ka(l,cr,m))))}while(!1);n[l+500>>2]=n[2278],I=Hn}function Gn(o,l,u,A,d){return o=o|0,l=l|0,u=y(u),A=y(A),d=y(d),A=y(Yg(o,l,u,A)),y($n(A,y(Ka(o,l,d))))}function as(o,l){return o=o|0,l=l|0,l=l+20|0,l=n[(n[l>>2]|0?l:o+16|0)>>2]|0,(l|0)==5&&Vg(n[o+4>>2]|0)|0&&(l=1),l|0}function Ql(o,l){return o=o|0,l=l|0,de(l)|0&&n[o+96>>2]|0?l=4:l=n[1040+(l<<2)>>2]|0,o+60+(l<<3)|0}function Tl(o,l){return o=o|0,l=l|0,de(l)|0&&n[o+104>>2]|0?l=5:l=n[1e3+(l<<2)>>2]|0,o+60+(l<<3)|0}function Bu(o,l,u,A,d,m){switch(o=o|0,l=l|0,u=y(u),A=y(A),d=d|0,m=m|0,u=y(Xr(o+380+(n[976+(l<<2)>>2]<<3)|0,u)),u=y(u+y(yn(o,l,A))),n[d>>2]|0){case 2:case 1:{d=Mt(u)|0,A=y(h[m>>2]),h[m>>2]=d|A<u?A:u;break}case 0:{Mt(u)|0||(n[d>>2]=2,h[m>>2]=u);break}default:}}function ga(o,l){return o=o|0,l=l|0,o=o+132|0,de(l)|0&&n[(kn(o,4,948)|0)+4>>2]|0?o=1:o=(n[(kn(o,n[1040+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,o|0}function XA(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0;return o=o+132|0,de(l)|0&&(A=kn(o,4,948)|0,(n[A+4>>2]|0)!=0)?d=4:(A=kn(o,n[1040+(l<<2)>>2]|0,948)|0,n[A+4>>2]|0?d=4:u=y(0)),(d|0)==4&&(u=y(Xr(A,u))),y(u)}function $A(o,l,u){o=o|0,l=l|0,u=y(u);var A=Xe;return A=y(h[o+908+(n[976+(l<<2)>>2]<<2)>>2]),A=y(A+y(J(o,l,u))),y(A+y(re(o,l,u)))}function WL(o){o=o|0;var l=0,u=0,A=0;e:do if(Vg(n[o+4>>2]|0)|0)l=0;else if((n[o+16>>2]|0)!=5)if(u=_i(o)|0,!u)l=0;else for(l=0;;){if(A=ws(o,l)|0,!(n[A+24>>2]|0)&&(n[A+20>>2]|0)==5){l=1;break e}if(l=l+1|0,l>>>0>=u>>>0){l=0;break}}else l=1;while(!1);return l|0}function YL(o,l){o=o|0,l=l|0;var u=Xe;return u=y(h[o+908+(n[976+(l<<2)>>2]<<2)>>2]),u>=y(0)&((Mt(u)|0)^1)|0}function Wg(o){o=o|0;var l=Xe,u=0,A=0,d=0,m=0,B=0,k=0,T=Xe;if(u=n[o+968>>2]|0,u)T=y(h[o+908>>2]),l=y(h[o+912>>2]),l=y(l$[u&0](o,T,l)),Bi(o,(Mt(l)|0)^1,3573);else{m=_i(o)|0;do if(m|0){for(u=0,d=0;;){if(A=ws(o,d)|0,n[A+940>>2]|0){B=8;break}if((n[A+24>>2]|0)!=1)if(k=(as(o,A)|0)==5,k){u=A;break}else u=u|0?u:A;if(d=d+1|0,d>>>0>=m>>>0){B=8;break}}if((B|0)==8&&!u)break;return l=y(Wg(u)),y(l+y(h[u+404>>2]))}while(!1);l=y(h[o+912>>2])}return y(l)}function Yg(o,l,u,A){o=o|0,l=l|0,u=y(u),A=y(A);var d=Xe,m=0;return Vg(l)|0?(l=1,m=3):de(l)|0?(l=0,m=3):(A=y(ce),d=y(ce)),(m|0)==3&&(d=y(Xr(o+364+(l<<3)|0,A)),A=y(Xr(o+380+(l<<3)|0,A))),m=A<u&(A>=y(0)&((Mt(A)|0)^1)),u=m?A:u,m=d>=y(0)&((Mt(d)|0)^1)&u<d,y(m?d:u)}function VL(o,l,u,A,d,m,B){o=o|0,l=l|0,u=y(u),A=A|0,d=y(d),m=m|0,B=B|0;var k=Xe,T=Xe,_=0,M=0,G=Xe,ae=Xe,We=Xe,Le=0,Qe=0,tt=0,Ze=0,ct=Xe,He=0;tt=dr(n[o+4>>2]|0,m)|0,Le=Sy(tt,m)|0,Qe=de(tt)|0,G=y(yn(l,2,u)),ae=y(yn(l,0,u)),oo(l,2,u)|0?k=y(G+y(Xr(n[l+992>>2]|0,u))):ga(l,2)|0&&by(l,2)|0?(k=y(h[o+908>>2]),T=y(Br(o,2)),T=y(k-y(T+y(_n(o,2)))),k=y(XA(l,2,u)),k=y(Gn(l,2,y(T-y(k+y(Fh(l,2,u)))),u,u))):k=y(ce),oo(l,0,d)|0?T=y(ae+y(Xr(n[l+996>>2]|0,d))):ga(l,0)|0&&by(l,0)|0?(T=y(h[o+912>>2]),ct=y(Br(o,0)),ct=y(T-y(ct+y(_n(o,0)))),T=y(XA(l,0,d)),T=y(Gn(l,0,y(ct-y(T+y(Fh(l,0,d)))),d,u))):T=y(ce),_=Mt(k)|0,M=Mt(T)|0;do if(_^M&&(We=y(h[l+396>>2]),!(Mt(We)|0)))if(_){k=y(G+y(y(T-ae)*We));break}else{ct=y(ae+y(y(k-G)/We)),T=M?ct:T;break}while(!1);M=Mt(k)|0,_=Mt(T)|0,M|_&&(He=(M^1)&1,A=u>y(0)&((A|0)!=0&M),k=Qe?k:A?u:k,kl(l,k,T,m,Qe?He:A?2:He,M&(_^1)&1,k,T,0,3623,B)|0,k=y(h[l+908>>2]),k=y(k+y(yn(l,2,u))),T=y(h[l+912>>2]),T=y(T+y(yn(l,0,u)))),kl(l,k,T,m,1,1,k,T,1,3635,B)|0,by(l,tt)|0&&!(ga(l,tt)|0)?(He=n[976+(tt<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(ct-y(h[l+908+(He<<2)>>2])),ct=y(ct-y(_n(o,tt))),ct=y(ct-y(re(l,tt,u))),ct=y(ct-y(Fh(l,tt,Qe?u:d))),h[l+400+(n[1040+(tt<<2)>>2]<<2)>>2]=ct):Ze=21;do if((Ze|0)==21){if(!(ga(l,tt)|0)&&(n[o+8>>2]|0)==1){He=n[976+(tt<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(y(ct-y(h[l+908+(He<<2)>>2]))*y(.5)),h[l+400+(n[1040+(tt<<2)>>2]<<2)>>2]=ct;break}!(ga(l,tt)|0)&&(n[o+8>>2]|0)==2&&(He=n[976+(tt<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(ct-y(h[l+908+(He<<2)>>2])),h[l+400+(n[1040+(tt<<2)>>2]<<2)>>2]=ct)}while(!1);by(l,Le)|0&&!(ga(l,Le)|0)?(He=n[976+(Le<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(ct-y(h[l+908+(He<<2)>>2])),ct=y(ct-y(_n(o,Le))),ct=y(ct-y(re(l,Le,u))),ct=y(ct-y(Fh(l,Le,Qe?d:u))),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=ct):Ze=30;do if((Ze|0)==30&&!(ga(l,Le)|0)){if((as(o,l)|0)==2){He=n[976+(Le<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(y(ct-y(h[l+908+(He<<2)>>2]))*y(.5)),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=ct;break}He=(as(o,l)|0)==3,He^(n[o+28>>2]|0)==2&&(He=n[976+(Le<<2)>>2]|0,ct=y(h[o+908+(He<<2)>>2]),ct=y(ct-y(h[l+908+(He<<2)>>2])),h[l+400+(n[1040+(Le<<2)>>2]<<2)>>2]=ct)}while(!1)}function i2(o,l,u){o=o|0,l=l|0,u=u|0;var A=Xe,d=0;d=n[976+(u<<2)>>2]|0,A=y(h[l+908+(d<<2)>>2]),A=y(y(h[o+908+(d<<2)>>2])-A),A=y(A-y(h[l+400+(n[1040+(u<<2)>>2]<<2)>>2])),h[l+400+(n[1e3+(u<<2)>>2]<<2)>>2]=A}function Vg(o){return o=o|0,(o|1|0)==1|0}function KL(o){o=o|0;var l=Xe;switch(n[o+56>>2]|0){case 0:case 3:{l=y(h[o+40>>2]),l>y(0)&((Mt(l)|0)^1)?o=s[(n[o+976>>2]|0)+2>>0]|0?1056:992:o=1056;break}default:o=o+52|0}return o|0}function s2(o,l){return o=o|0,l=l|0,(s[o+l>>0]|0)!=0|0}function by(o,l){return o=o|0,l=l|0,o=o+132|0,de(l)|0&&n[(kn(o,5,948)|0)+4>>2]|0?o=1:o=(n[(kn(o,n[1e3+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,o|0}function Fh(o,l,u){o=o|0,l=l|0,u=y(u);var A=0,d=0;return o=o+132|0,de(l)|0&&(A=kn(o,5,948)|0,(n[A+4>>2]|0)!=0)?d=4:(A=kn(o,n[1e3+(l<<2)>>2]|0,948)|0,n[A+4>>2]|0?d=4:u=y(0)),(d|0)==4&&(u=y(Xr(A,u))),y(u)}function yP(o,l,u){return o=o|0,l=l|0,u=y(u),ga(o,l)|0?u=y(XA(o,l,u)):u=y(-y(Fh(o,l,u))),y(u)}function EP(o){return o=y(o),h[S>>2]=o,n[S>>2]|0|0}function Py(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>1073741823)Nt();else{d=Jt(l<<2)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<2)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<2)}function IP(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function xy(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-4-l|0)>>>2)<<2)),o=n[o>>2]|0,o|0&&Et(o)}function CP(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;if(B=o+4|0,k=n[B>>2]|0,d=k-A|0,m=d>>2,o=l+(m<<2)|0,o>>>0<u>>>0){A=k;do n[A>>2]=n[o>>2],o=o+4|0,A=(n[B>>2]|0)+4|0,n[B>>2]=A;while(o>>>0<u>>>0)}m|0&&Q2(k+(0-m<<2)|0,l|0,d|0)|0}function wP(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0;return k=l+4|0,T=n[k>>2]|0,d=n[o>>2]|0,B=u,m=B-d|0,A=T+(0-(m>>2)<<2)|0,n[k>>2]=A,(m|0)>0&&Qr(A|0,d|0,m|0)|0,d=o+4|0,m=l+8|0,A=(n[d>>2]|0)-B|0,(A|0)>0&&(Qr(n[m>>2]|0,u|0,A|0)|0,n[m>>2]=(n[m>>2]|0)+(A>>>2<<2)),B=n[o>>2]|0,n[o>>2]=n[k>>2],n[k>>2]=B,B=n[d>>2]|0,n[d>>2]=n[m>>2],n[m>>2]=B,B=o+8|0,u=l+12|0,o=n[B>>2]|0,n[B>>2]=n[u>>2],n[u>>2]=o,n[l>>2]=n[k>>2],T|0}function o2(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;if(B=n[l>>2]|0,m=n[u>>2]|0,(B|0)!=(m|0)){d=o+8|0,u=((m+-4-B|0)>>>2)+1|0,o=B,A=n[d>>2]|0;do n[A>>2]=n[o>>2],A=(n[d>>2]|0)+4|0,n[d>>2]=A,o=o+4|0;while((o|0)!=(m|0));n[l>>2]=B+(u<<2)}}function a2(){fa()}function BP(){var o=0;return o=Jt(4)|0,l2(o),o|0}function l2(o){o=o|0,n[o>>2]=pc()|0}function vP(o){o=o|0,o|0&&(Kg(o),Et(o))}function Kg(o){o=o|0,st(n[o>>2]|0)}function JL(o,l,u){o=o|0,l=l|0,u=u|0,hc(n[o>>2]|0,l,u)}function ky(o,l){o=o|0,l=y(l),Ph(n[o>>2]|0,l)}function Qy(o,l){return o=o|0,l=l|0,s2(n[o>>2]|0,l)|0}function Ty(){var o=0;return o=Jt(8)|0,Jg(o,0),o|0}function Jg(o,l){o=o|0,l=l|0,l?l=Aa(n[l>>2]|0)|0:l=is()|0,n[o>>2]=l,n[o+4>>2]=0,Tn(l,o)}function Ry(o){o=o|0;var l=0;return l=Jt(8)|0,Jg(l,o),l|0}function zg(o){o=o|0,o|0&&(Fy(o),Et(o))}function Fy(o){o=o|0;var l=0;fc(n[o>>2]|0),l=o+4|0,o=n[l>>2]|0,n[l>>2]=0,o|0&&(Df(o),Et(o))}function Df(o){o=o|0,bf(o)}function bf(o){o=o|0,o=n[o>>2]|0,o|0&&Oa(o|0)}function c2(o){return o=o|0,Ga(o)|0}function u2(o){o=o|0;var l=0,u=0;u=o+4|0,l=n[u>>2]|0,n[u>>2]=0,l|0&&(Df(l),Et(l)),Ac(n[o>>2]|0)}function Ny(o,l){o=o|0,l=l|0,fn(n[o>>2]|0,n[l>>2]|0)}function zL(o,l){o=o|0,l=l|0,vh(n[o>>2]|0,l)}function ZL(o,l,u){o=o|0,l=l|0,u=+u,Ey(n[o>>2]|0,l,y(u))}function Oy(o,l,u){o=o|0,l=l|0,u=+u,Iy(n[o>>2]|0,l,y(u))}function f2(o,l){o=o|0,l=l|0,Ch(n[o>>2]|0,l)}function A2(o,l){o=o|0,l=l|0,bo(n[o>>2]|0,l)}function xr(o,l){o=o|0,l=l|0,Bh(n[o>>2]|0,l)}function ao(o,l){o=o|0,l=l|0,gy(n[o>>2]|0,l)}function Xi(o,l){o=o|0,l=l|0,Fg(n[o>>2]|0,l)}function Ls(o,l){o=o|0,l=l|0,Do(n[o>>2]|0,l)}function ep(o,l,u){o=o|0,l=l|0,u=+u,qA(n[o>>2]|0,l,y(u))}function p2(o,l,u){o=o|0,l=l|0,u=+u,Y(n[o>>2]|0,l,y(u))}function vs(o,l){o=o|0,l=l|0,GA(n[o>>2]|0,l)}function Ly(o,l){o=o|0,l=l|0,my(n[o>>2]|0,l)}function Nh(o,l){o=o|0,l=l|0,Po(n[o>>2]|0,l)}function Zg(o,l){o=o|0,l=+l,Sh(n[o>>2]|0,y(l))}function Oh(o,l){o=o|0,l=+l,Pl(n[o>>2]|0,y(l))}function h2(o,l){o=o|0,l=+l,yy(n[o>>2]|0,y(l))}function g2(o,l){o=o|0,l=+l,Og(n[o>>2]|0,y(l))}function d2(o,l){o=o|0,l=+l,bl(n[o>>2]|0,y(l))}function m2(o,l){o=o|0,l=+l,Lg(n[o>>2]|0,y(l))}function Pf(o,l){o=o|0,l=+l,e2(n[o>>2]|0,y(l))}function sr(o){o=o|0,Dh(n[o>>2]|0)}function My(o,l){o=o|0,l=+l,Zi(n[o>>2]|0,y(l))}function y2(o,l){o=o|0,l=+l,Ef(n[o>>2]|0,y(l))}function gc(o){o=o|0,Wa(n[o>>2]|0)}function xf(o,l){o=o|0,l=+l,yu(n[o>>2]|0,y(l))}function Xg(o,l){o=o|0,l=+l,If(n[o>>2]|0,y(l))}function $g(o,l){o=o|0,l=+l,di(n[o>>2]|0,y(l))}function E2(o,l){o=o|0,l=+l,WA(n[o>>2]|0,y(l))}function I2(o,l){o=o|0,l=+l,pa(n[o>>2]|0,y(l))}function vu(o,l){o=o|0,l=+l,Va(n[o>>2]|0,y(l))}function ed(o,l){o=o|0,l=+l,bh(n[o>>2]|0,y(l))}function C2(o,l){o=o|0,l=+l,Ug(n[o>>2]|0,y(l))}function _y(o,l){o=o|0,l=+l,YA(n[o>>2]|0,y(l))}function Su(o,l,u){o=o|0,l=l|0,u=+u,mu(n[o>>2]|0,l,y(u))}function Uy(o,l,u){o=o|0,l=l|0,u=+u,xo(n[o>>2]|0,l,y(u))}function td(o,l,u){o=o|0,l=l|0,u=+u,yf(n[o>>2]|0,l,y(u))}function rd(o){return o=o|0,Rg(n[o>>2]|0)|0}function To(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;A=I,I=I+16|0,d=A,jA(d,n[l>>2]|0,u),Ss(o,d),I=A}function Ss(o,l){o=o|0,l=l|0,Rl(o,n[l+4>>2]|0,+y(h[l>>2]))}function Rl(o,l,u){o=o|0,l=l|0,u=+u,n[o>>2]=l,E[o+8>>3]=u}function Hy(o){return o=o|0,$1(n[o>>2]|0)|0}function da(o){return o=o|0,wh(n[o>>2]|0)|0}function SP(o){return o=o|0,du(n[o>>2]|0)|0}function Lh(o){return o=o|0,X1(n[o>>2]|0)|0}function w2(o){return o=o|0,Ng(n[o>>2]|0)|0}function XL(o){return o=o|0,dy(n[o>>2]|0)|0}function DP(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;A=I,I=I+16|0,d=A,xt(d,n[l>>2]|0,u),Ss(o,d),I=A}function bP(o){return o=o|0,mf(n[o>>2]|0)|0}function jy(o){return o=o|0,Dl(n[o>>2]|0)|0}function B2(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,HA(A,n[l>>2]|0),Ss(o,A),I=u}function Mh(o){return o=o|0,+ +y(li(n[o>>2]|0))}function PP(o){return o=o|0,+ +y(Gi(n[o>>2]|0))}function xP(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,ur(A,n[l>>2]|0),Ss(o,A),I=u}function nd(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,Mg(A,n[l>>2]|0),Ss(o,A),I=u}function $L(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,wt(A,n[l>>2]|0),Ss(o,A),I=u}function eM(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,Ya(A,n[l>>2]|0),Ss(o,A),I=u}function kP(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,_g(A,n[l>>2]|0),Ss(o,A),I=u}function QP(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,wy(A,n[l>>2]|0),Ss(o,A),I=u}function tp(o){return o=o|0,+ +y(Hg(n[o>>2]|0))}function tM(o,l){return o=o|0,l=l|0,+ +y(Cy(n[o>>2]|0,l))}function rM(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;A=I,I=I+16|0,d=A,mt(d,n[l>>2]|0,u),Ss(o,d),I=A}function Du(o,l,u){o=o|0,l=l|0,u=u|0,lr(n[o>>2]|0,n[l>>2]|0,u)}function nM(o,l){o=o|0,l=l|0,df(n[o>>2]|0,n[l>>2]|0)}function TP(o){return o=o|0,_i(n[o>>2]|0)|0}function iM(o){return o=o|0,o=yt(n[o>>2]|0)|0,o?o=c2(o)|0:o=0,o|0}function RP(o,l){return o=o|0,l=l|0,o=ws(n[o>>2]|0,l)|0,o?o=c2(o)|0:o=0,o|0}function kf(o,l){o=o|0,l=l|0;var u=0,A=0;A=Jt(4)|0,FP(A,l),u=o+4|0,l=n[u>>2]|0,n[u>>2]=A,l|0&&(Df(l),Et(l)),St(n[o>>2]|0,1)}function FP(o,l){o=o|0,l=l|0,lM(o,l)}function sM(o,l,u,A,d,m){o=o|0,l=l|0,u=y(u),A=A|0,d=y(d),m=m|0;var B=0,k=0;B=I,I=I+16|0,k=B,NP(k,Ga(l)|0,+u,A,+d,m),h[o>>2]=y(+E[k>>3]),h[o+4>>2]=y(+E[k+8>>3]),I=B}function NP(o,l,u,A,d,m){o=o|0,l=l|0,u=+u,A=A|0,d=+d,m=m|0;var B=0,k=0,T=0,_=0,M=0;B=I,I=I+32|0,M=B+8|0,_=B+20|0,T=B,k=B+16|0,E[M>>3]=u,n[_>>2]=A,E[T>>3]=d,n[k>>2]=m,qy(o,n[l+4>>2]|0,M,_,T,k),I=B}function qy(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0;B=I,I=I+16|0,k=B,Nl(k),l=Ms(l)|0,OP(o,l,+E[u>>3],n[A>>2]|0,+E[d>>3],n[m>>2]|0),Ol(k),I=B}function Ms(o){return o=o|0,n[o>>2]|0}function OP(o,l,u,A,d,m){o=o|0,l=l|0,u=+u,A=A|0,d=+d,m=m|0;var B=0;B=ma(v2()|0)|0,u=+Ja(u),A=Gy(A)|0,d=+Ja(d),oM(o,Jn(0,B|0,l|0,+u,A|0,+d,Gy(m)|0)|0)}function v2(){var o=0;return s[7608]|0||(D2(9120),o=7608,n[o>>2]=1,n[o+4>>2]=0),9120}function ma(o){return o=o|0,n[o+8>>2]|0}function Ja(o){return o=+o,+ +Qf(o)}function Gy(o){return o=o|0,id(o)|0}function oM(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;d=I,I=I+32|0,u=d,A=l,A&1?(za(u,0),Me(A|0,u|0)|0,S2(o,u),aM(u)):(n[o>>2]=n[l>>2],n[o+4>>2]=n[l+4>>2],n[o+8>>2]=n[l+8>>2],n[o+12>>2]=n[l+12>>2]),I=d}function za(o,l){o=o|0,l=l|0,bu(o,l),n[o+8>>2]=0,s[o+24>>0]=0}function S2(o,l){o=o|0,l=l|0,l=l+8|0,n[o>>2]=n[l>>2],n[o+4>>2]=n[l+4>>2],n[o+8>>2]=n[l+8>>2],n[o+12>>2]=n[l+12>>2]}function aM(o){o=o|0,s[o+24>>0]=0}function bu(o,l){o=o|0,l=l|0,n[o>>2]=l}function id(o){return o=o|0,o|0}function Qf(o){return o=+o,+o}function D2(o){o=o|0,Ro(o,b2()|0,4)}function b2(){return 1064}function Ro(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u,n[o+8>>2]=qi(l|0,u+1|0)|0}function lM(o,l){o=o|0,l=l|0,l=n[l>>2]|0,n[o>>2]=l,cu(l|0)}function LP(o){o=o|0;var l=0,u=0;u=o+4|0,l=n[u>>2]|0,n[u>>2]=0,l|0&&(Df(l),Et(l)),St(n[o>>2]|0,0)}function MP(o){o=o|0,Dt(n[o>>2]|0)}function Wy(o){return o=o|0,tr(n[o>>2]|0)|0}function cM(o,l,u,A){o=o|0,l=+l,u=+u,A=A|0,KA(n[o>>2]|0,y(l),y(u),A)}function uM(o){return o=o|0,+ +y(Eu(n[o>>2]|0))}function v(o){return o=o|0,+ +y(Cf(n[o>>2]|0))}function D(o){return o=o|0,+ +y(Iu(n[o>>2]|0))}function Q(o){return o=o|0,+ +y(Ns(n[o>>2]|0))}function H(o){return o=o|0,+ +y(Cu(n[o>>2]|0))}function V(o){return o=o|0,+ +y(qn(n[o>>2]|0))}function ne(o,l){o=o|0,l=l|0,E[o>>3]=+y(Eu(n[l>>2]|0)),E[o+8>>3]=+y(Cf(n[l>>2]|0)),E[o+16>>3]=+y(Iu(n[l>>2]|0)),E[o+24>>3]=+y(Ns(n[l>>2]|0)),E[o+32>>3]=+y(Cu(n[l>>2]|0)),E[o+40>>3]=+y(qn(n[l>>2]|0))}function Se(o,l){return o=o|0,l=l|0,+ +y(ss(n[o>>2]|0,l))}function Ue(o,l){return o=o|0,l=l|0,+ +y(ki(n[o>>2]|0,l))}function At(o,l){return o=o|0,l=l|0,+ +y(VA(n[o>>2]|0,l))}function Gt(){return Qn()|0}function vr(){Lr(),Xt(),zn(),yi(),Za(),$e()}function Lr(){vqe(11713,4938,1)}function Xt(){q6e(10448)}function zn(){v6e(10408)}function yi(){Vje(10324)}function Za(){tHe(10096)}function $e(){qe(9132)}function qe(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0,We=0,Le=0,Qe=0,tt=0,Ze=0,ct=0,He=0,Ge=0,Lt=0,qr=0,fr=0,$t=0,Tr=0,Hr=0,cr=0,Hn=0,Fo=0,No=0,Oo=0,$a=0,Vh=0,Kh=0,dc=0,Jh=0,Ff=0,Nf=0,zh=0,Zh=0,Xh=0,on=0,mc=0,$h=0,ku=0,e0=0,t0=0,Of=0,Lf=0,Qu=0,lo=0,Ml=0,ya=0,yc=0,lp=0,cp=0,Mf=0,up=0,fp=0,co=0,Us=0,Ec=0,Wn=0,Ap=0,Lo=0,Tu=0,Mo=0,Ru=0,pp=0,hp=0,Fu=0,uo=0,Ic=0,gp=0,dp=0,mp=0,Fr=0,ui=0,Hs=0,_o=0,fo=0,Mr=0,Ar=0,Cc=0;l=I,I=I+672|0,u=l+656|0,Cc=l+648|0,Ar=l+640|0,Mr=l+632|0,fo=l+624|0,_o=l+616|0,Hs=l+608|0,ui=l+600|0,Fr=l+592|0,mp=l+584|0,dp=l+576|0,gp=l+568|0,Ic=l+560|0,uo=l+552|0,Fu=l+544|0,hp=l+536|0,pp=l+528|0,Ru=l+520|0,Mo=l+512|0,Tu=l+504|0,Lo=l+496|0,Ap=l+488|0,Wn=l+480|0,Ec=l+472|0,Us=l+464|0,co=l+456|0,fp=l+448|0,up=l+440|0,Mf=l+432|0,cp=l+424|0,lp=l+416|0,yc=l+408|0,ya=l+400|0,Ml=l+392|0,lo=l+384|0,Qu=l+376|0,Lf=l+368|0,Of=l+360|0,t0=l+352|0,e0=l+344|0,ku=l+336|0,$h=l+328|0,mc=l+320|0,on=l+312|0,Xh=l+304|0,Zh=l+296|0,zh=l+288|0,Nf=l+280|0,Ff=l+272|0,Jh=l+264|0,dc=l+256|0,Kh=l+248|0,Vh=l+240|0,$a=l+232|0,Oo=l+224|0,No=l+216|0,Fo=l+208|0,Hn=l+200|0,cr=l+192|0,Hr=l+184|0,Tr=l+176|0,$t=l+168|0,fr=l+160|0,qr=l+152|0,Lt=l+144|0,Ge=l+136|0,He=l+128|0,ct=l+120|0,Ze=l+112|0,tt=l+104|0,Qe=l+96|0,Le=l+88|0,We=l+80|0,ae=l+72|0,G=l+64|0,M=l+56|0,_=l+48|0,T=l+40|0,k=l+32|0,B=l+24|0,m=l+16|0,d=l+8|0,A=l,ht(o,3646),Zt(o,3651,2)|0,Sr(o,3665,2)|0,Xn(o,3682,18)|0,n[Cc>>2]=19,n[Cc+4>>2]=0,n[u>>2]=n[Cc>>2],n[u+4>>2]=n[Cc+4>>2],kr(o,3690,u)|0,n[Ar>>2]=1,n[Ar+4>>2]=0,n[u>>2]=n[Ar>>2],n[u+4>>2]=n[Ar+4>>2],Rn(o,3696,u)|0,n[Mr>>2]=2,n[Mr+4>>2]=0,n[u>>2]=n[Mr>>2],n[u+4>>2]=n[Mr+4>>2],Un(o,3706,u)|0,n[fo>>2]=1,n[fo+4>>2]=0,n[u>>2]=n[fo>>2],n[u+4>>2]=n[fo+4>>2],zr(o,3722,u)|0,n[_o>>2]=2,n[_o+4>>2]=0,n[u>>2]=n[_o>>2],n[u+4>>2]=n[_o+4>>2],zr(o,3734,u)|0,n[Hs>>2]=3,n[Hs+4>>2]=0,n[u>>2]=n[Hs>>2],n[u+4>>2]=n[Hs+4>>2],Un(o,3753,u)|0,n[ui>>2]=4,n[ui+4>>2]=0,n[u>>2]=n[ui>>2],n[u+4>>2]=n[ui+4>>2],Un(o,3769,u)|0,n[Fr>>2]=5,n[Fr+4>>2]=0,n[u>>2]=n[Fr>>2],n[u+4>>2]=n[Fr+4>>2],Un(o,3783,u)|0,n[mp>>2]=6,n[mp+4>>2]=0,n[u>>2]=n[mp>>2],n[u+4>>2]=n[mp+4>>2],Un(o,3796,u)|0,n[dp>>2]=7,n[dp+4>>2]=0,n[u>>2]=n[dp>>2],n[u+4>>2]=n[dp+4>>2],Un(o,3813,u)|0,n[gp>>2]=8,n[gp+4>>2]=0,n[u>>2]=n[gp>>2],n[u+4>>2]=n[gp+4>>2],Un(o,3825,u)|0,n[Ic>>2]=3,n[Ic+4>>2]=0,n[u>>2]=n[Ic>>2],n[u+4>>2]=n[Ic+4>>2],zr(o,3843,u)|0,n[uo>>2]=4,n[uo+4>>2]=0,n[u>>2]=n[uo>>2],n[u+4>>2]=n[uo+4>>2],zr(o,3853,u)|0,n[Fu>>2]=9,n[Fu+4>>2]=0,n[u>>2]=n[Fu>>2],n[u+4>>2]=n[Fu+4>>2],Un(o,3870,u)|0,n[hp>>2]=10,n[hp+4>>2]=0,n[u>>2]=n[hp>>2],n[u+4>>2]=n[hp+4>>2],Un(o,3884,u)|0,n[pp>>2]=11,n[pp+4>>2]=0,n[u>>2]=n[pp>>2],n[u+4>>2]=n[pp+4>>2],Un(o,3896,u)|0,n[Ru>>2]=1,n[Ru+4>>2]=0,n[u>>2]=n[Ru>>2],n[u+4>>2]=n[Ru+4>>2],ci(o,3907,u)|0,n[Mo>>2]=2,n[Mo+4>>2]=0,n[u>>2]=n[Mo>>2],n[u+4>>2]=n[Mo+4>>2],ci(o,3915,u)|0,n[Tu>>2]=3,n[Tu+4>>2]=0,n[u>>2]=n[Tu>>2],n[u+4>>2]=n[Tu+4>>2],ci(o,3928,u)|0,n[Lo>>2]=4,n[Lo+4>>2]=0,n[u>>2]=n[Lo>>2],n[u+4>>2]=n[Lo+4>>2],ci(o,3948,u)|0,n[Ap>>2]=5,n[Ap+4>>2]=0,n[u>>2]=n[Ap>>2],n[u+4>>2]=n[Ap+4>>2],ci(o,3960,u)|0,n[Wn>>2]=6,n[Wn+4>>2]=0,n[u>>2]=n[Wn>>2],n[u+4>>2]=n[Wn+4>>2],ci(o,3974,u)|0,n[Ec>>2]=7,n[Ec+4>>2]=0,n[u>>2]=n[Ec>>2],n[u+4>>2]=n[Ec+4>>2],ci(o,3983,u)|0,n[Us>>2]=20,n[Us+4>>2]=0,n[u>>2]=n[Us>>2],n[u+4>>2]=n[Us+4>>2],kr(o,3999,u)|0,n[co>>2]=8,n[co+4>>2]=0,n[u>>2]=n[co>>2],n[u+4>>2]=n[co+4>>2],ci(o,4012,u)|0,n[fp>>2]=9,n[fp+4>>2]=0,n[u>>2]=n[fp>>2],n[u+4>>2]=n[fp+4>>2],ci(o,4022,u)|0,n[up>>2]=21,n[up+4>>2]=0,n[u>>2]=n[up>>2],n[u+4>>2]=n[up+4>>2],kr(o,4039,u)|0,n[Mf>>2]=10,n[Mf+4>>2]=0,n[u>>2]=n[Mf>>2],n[u+4>>2]=n[Mf+4>>2],ci(o,4053,u)|0,n[cp>>2]=11,n[cp+4>>2]=0,n[u>>2]=n[cp>>2],n[u+4>>2]=n[cp+4>>2],ci(o,4065,u)|0,n[lp>>2]=12,n[lp+4>>2]=0,n[u>>2]=n[lp>>2],n[u+4>>2]=n[lp+4>>2],ci(o,4084,u)|0,n[yc>>2]=13,n[yc+4>>2]=0,n[u>>2]=n[yc>>2],n[u+4>>2]=n[yc+4>>2],ci(o,4097,u)|0,n[ya>>2]=14,n[ya+4>>2]=0,n[u>>2]=n[ya>>2],n[u+4>>2]=n[ya+4>>2],ci(o,4117,u)|0,n[Ml>>2]=15,n[Ml+4>>2]=0,n[u>>2]=n[Ml>>2],n[u+4>>2]=n[Ml+4>>2],ci(o,4129,u)|0,n[lo>>2]=16,n[lo+4>>2]=0,n[u>>2]=n[lo>>2],n[u+4>>2]=n[lo+4>>2],ci(o,4148,u)|0,n[Qu>>2]=17,n[Qu+4>>2]=0,n[u>>2]=n[Qu>>2],n[u+4>>2]=n[Qu+4>>2],ci(o,4161,u)|0,n[Lf>>2]=18,n[Lf+4>>2]=0,n[u>>2]=n[Lf>>2],n[u+4>>2]=n[Lf+4>>2],ci(o,4181,u)|0,n[Of>>2]=5,n[Of+4>>2]=0,n[u>>2]=n[Of>>2],n[u+4>>2]=n[Of+4>>2],zr(o,4196,u)|0,n[t0>>2]=6,n[t0+4>>2]=0,n[u>>2]=n[t0>>2],n[u+4>>2]=n[t0+4>>2],zr(o,4206,u)|0,n[e0>>2]=7,n[e0+4>>2]=0,n[u>>2]=n[e0>>2],n[u+4>>2]=n[e0+4>>2],zr(o,4217,u)|0,n[ku>>2]=3,n[ku+4>>2]=0,n[u>>2]=n[ku>>2],n[u+4>>2]=n[ku+4>>2],Pu(o,4235,u)|0,n[$h>>2]=1,n[$h+4>>2]=0,n[u>>2]=n[$h>>2],n[u+4>>2]=n[$h+4>>2],fM(o,4251,u)|0,n[mc>>2]=4,n[mc+4>>2]=0,n[u>>2]=n[mc>>2],n[u+4>>2]=n[mc+4>>2],Pu(o,4263,u)|0,n[on>>2]=5,n[on+4>>2]=0,n[u>>2]=n[on>>2],n[u+4>>2]=n[on+4>>2],Pu(o,4279,u)|0,n[Xh>>2]=6,n[Xh+4>>2]=0,n[u>>2]=n[Xh>>2],n[u+4>>2]=n[Xh+4>>2],Pu(o,4293,u)|0,n[Zh>>2]=7,n[Zh+4>>2]=0,n[u>>2]=n[Zh>>2],n[u+4>>2]=n[Zh+4>>2],Pu(o,4306,u)|0,n[zh>>2]=8,n[zh+4>>2]=0,n[u>>2]=n[zh>>2],n[u+4>>2]=n[zh+4>>2],Pu(o,4323,u)|0,n[Nf>>2]=9,n[Nf+4>>2]=0,n[u>>2]=n[Nf>>2],n[u+4>>2]=n[Nf+4>>2],Pu(o,4335,u)|0,n[Ff>>2]=2,n[Ff+4>>2]=0,n[u>>2]=n[Ff>>2],n[u+4>>2]=n[Ff+4>>2],fM(o,4353,u)|0,n[Jh>>2]=12,n[Jh+4>>2]=0,n[u>>2]=n[Jh>>2],n[u+4>>2]=n[Jh+4>>2],sd(o,4363,u)|0,n[dc>>2]=1,n[dc+4>>2]=0,n[u>>2]=n[dc>>2],n[u+4>>2]=n[dc+4>>2],rp(o,4376,u)|0,n[Kh>>2]=2,n[Kh+4>>2]=0,n[u>>2]=n[Kh>>2],n[u+4>>2]=n[Kh+4>>2],rp(o,4388,u)|0,n[Vh>>2]=13,n[Vh+4>>2]=0,n[u>>2]=n[Vh>>2],n[u+4>>2]=n[Vh+4>>2],sd(o,4402,u)|0,n[$a>>2]=14,n[$a+4>>2]=0,n[u>>2]=n[$a>>2],n[u+4>>2]=n[$a+4>>2],sd(o,4411,u)|0,n[Oo>>2]=15,n[Oo+4>>2]=0,n[u>>2]=n[Oo>>2],n[u+4>>2]=n[Oo+4>>2],sd(o,4421,u)|0,n[No>>2]=16,n[No+4>>2]=0,n[u>>2]=n[No>>2],n[u+4>>2]=n[No+4>>2],sd(o,4433,u)|0,n[Fo>>2]=17,n[Fo+4>>2]=0,n[u>>2]=n[Fo>>2],n[u+4>>2]=n[Fo+4>>2],sd(o,4446,u)|0,n[Hn>>2]=18,n[Hn+4>>2]=0,n[u>>2]=n[Hn>>2],n[u+4>>2]=n[Hn+4>>2],sd(o,4458,u)|0,n[cr>>2]=3,n[cr+4>>2]=0,n[u>>2]=n[cr>>2],n[u+4>>2]=n[cr+4>>2],rp(o,4471,u)|0,n[Hr>>2]=1,n[Hr+4>>2]=0,n[u>>2]=n[Hr>>2],n[u+4>>2]=n[Hr+4>>2],_P(o,4486,u)|0,n[Tr>>2]=10,n[Tr+4>>2]=0,n[u>>2]=n[Tr>>2],n[u+4>>2]=n[Tr+4>>2],Pu(o,4496,u)|0,n[$t>>2]=11,n[$t+4>>2]=0,n[u>>2]=n[$t>>2],n[u+4>>2]=n[$t+4>>2],Pu(o,4508,u)|0,n[fr>>2]=3,n[fr+4>>2]=0,n[u>>2]=n[fr>>2],n[u+4>>2]=n[fr+4>>2],fM(o,4519,u)|0,n[qr>>2]=4,n[qr+4>>2]=0,n[u>>2]=n[qr>>2],n[u+4>>2]=n[qr+4>>2],TOe(o,4530,u)|0,n[Lt>>2]=19,n[Lt+4>>2]=0,n[u>>2]=n[Lt>>2],n[u+4>>2]=n[Lt+4>>2],ROe(o,4542,u)|0,n[Ge>>2]=12,n[Ge+4>>2]=0,n[u>>2]=n[Ge>>2],n[u+4>>2]=n[Ge+4>>2],FOe(o,4554,u)|0,n[He>>2]=13,n[He+4>>2]=0,n[u>>2]=n[He>>2],n[u+4>>2]=n[He+4>>2],NOe(o,4568,u)|0,n[ct>>2]=2,n[ct+4>>2]=0,n[u>>2]=n[ct>>2],n[u+4>>2]=n[ct+4>>2],OOe(o,4578,u)|0,n[Ze>>2]=20,n[Ze+4>>2]=0,n[u>>2]=n[Ze>>2],n[u+4>>2]=n[Ze+4>>2],LOe(o,4587,u)|0,n[tt>>2]=22,n[tt+4>>2]=0,n[u>>2]=n[tt>>2],n[u+4>>2]=n[tt+4>>2],kr(o,4602,u)|0,n[Qe>>2]=23,n[Qe+4>>2]=0,n[u>>2]=n[Qe>>2],n[u+4>>2]=n[Qe+4>>2],kr(o,4619,u)|0,n[Le>>2]=14,n[Le+4>>2]=0,n[u>>2]=n[Le>>2],n[u+4>>2]=n[Le+4>>2],MOe(o,4629,u)|0,n[We>>2]=1,n[We+4>>2]=0,n[u>>2]=n[We>>2],n[u+4>>2]=n[We+4>>2],_Oe(o,4637,u)|0,n[ae>>2]=4,n[ae+4>>2]=0,n[u>>2]=n[ae>>2],n[u+4>>2]=n[ae+4>>2],rp(o,4653,u)|0,n[G>>2]=5,n[G+4>>2]=0,n[u>>2]=n[G>>2],n[u+4>>2]=n[G+4>>2],rp(o,4669,u)|0,n[M>>2]=6,n[M+4>>2]=0,n[u>>2]=n[M>>2],n[u+4>>2]=n[M+4>>2],rp(o,4686,u)|0,n[_>>2]=7,n[_+4>>2]=0,n[u>>2]=n[_>>2],n[u+4>>2]=n[_+4>>2],rp(o,4701,u)|0,n[T>>2]=8,n[T+4>>2]=0,n[u>>2]=n[T>>2],n[u+4>>2]=n[T+4>>2],rp(o,4719,u)|0,n[k>>2]=9,n[k+4>>2]=0,n[u>>2]=n[k>>2],n[u+4>>2]=n[k+4>>2],rp(o,4736,u)|0,n[B>>2]=21,n[B+4>>2]=0,n[u>>2]=n[B>>2],n[u+4>>2]=n[B+4>>2],UOe(o,4754,u)|0,n[m>>2]=2,n[m+4>>2]=0,n[u>>2]=n[m>>2],n[u+4>>2]=n[m+4>>2],_P(o,4772,u)|0,n[d>>2]=3,n[d+4>>2]=0,n[u>>2]=n[d>>2],n[u+4>>2]=n[d+4>>2],_P(o,4790,u)|0,n[A>>2]=4,n[A+4>>2]=0,n[u>>2]=n[A>>2],n[u+4>>2]=n[A+4>>2],_P(o,4808,u)|0,I=l}function ht(o,l){o=o|0,l=l|0;var u=0;u=Y8e()|0,n[o>>2]=u,V8e(u,l),Gh(n[o>>2]|0)}function Zt(o,l,u){return o=o|0,l=l|0,u=u|0,T8e(o,Bn(l)|0,u,0),o|0}function Sr(o,l,u){return o=o|0,l=l|0,u=u|0,d8e(o,Bn(l)|0,u,0),o|0}function Xn(o,l,u){return o=o|0,l=l|0,u=u|0,r8e(o,Bn(l)|0,u,0),o|0}function kr(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],U3e(o,l,d),I=A,o|0}function Rn(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],C3e(o,l,d),I=A,o|0}function Un(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],s3e(o,l,d),I=A,o|0}function zr(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],q4e(o,l,d),I=A,o|0}function ci(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],b4e(o,l,d),I=A,o|0}function Pu(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],f4e(o,l,d),I=A,o|0}function fM(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],JUe(o,l,d),I=A,o|0}function sd(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],CUe(o,l,d),I=A,o|0}function rp(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sUe(o,l,d),I=A,o|0}function _P(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],q_e(o,l,d),I=A,o|0}function TOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],b_e(o,l,d),I=A,o|0}function ROe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],f_e(o,l,d),I=A,o|0}function FOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],zMe(o,l,d),I=A,o|0}function NOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],NMe(o,l,d),I=A,o|0}function OOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],yMe(o,l,d),I=A,o|0}function LOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tMe(o,l,d),I=A,o|0}function MOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],_Le(o,l,d),I=A,o|0}function _Oe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],CLe(o,l,d),I=A,o|0}function UOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],HOe(o,l,d),I=A,o|0}function HOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jOe(o,u,d,1),I=A}function Bn(o){return o=o|0,o|0}function jOe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=AM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=qOe(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,GOe(m,A)|0,A),I=d}function AM(){var o=0,l=0;if(s[7616]|0||(jz(9136),gr(24,9136,U|0)|0,l=7616,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9136)|0)){o=9136,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));jz(9136)}return 9136}function qOe(o){return o=o|0,0}function GOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=AM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Hz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(VOe(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function vn(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,T=0,_=0,M=0,G=0,ae=0,We=0;B=I,I=I+32|0,ae=B+24|0,G=B+20|0,T=B+16|0,M=B+12|0,_=B+8|0,k=B+4|0,We=B,n[G>>2]=l,n[T>>2]=u,n[M>>2]=A,n[_>>2]=d,n[k>>2]=m,m=o+28|0,n[We>>2]=n[m>>2],n[ae>>2]=n[We>>2],WOe(o+24|0,ae,G,M,_,T,k)|0,n[m>>2]=n[n[m>>2]>>2],I=B}function WOe(o,l,u,A,d,m,B){return o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,B=B|0,o=YOe(l)|0,l=Jt(24)|0,Uz(l+4|0,n[u>>2]|0,n[A>>2]|0,n[d>>2]|0,n[m>>2]|0,n[B>>2]|0),n[l>>2]=n[o>>2],n[o>>2]=l,l|0}function YOe(o){return o=o|0,n[o>>2]|0}function Uz(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,n[o>>2]=l,n[o+4>>2]=u,n[o+8>>2]=A,n[o+12>>2]=d,n[o+16>>2]=m}function yr(o,l){return o=o|0,l=l|0,l|o|0}function Hz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function VOe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=KOe(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,JOe(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Hz(m,A,u),n[T>>2]=(n[T>>2]|0)+12,zOe(o,k),ZOe(k),I=_;return}}function KOe(o){return o=o|0,357913941}function JOe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function zOe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function ZOe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function jz(o){o=o|0,eLe(o)}function XOe(o){o=o|0,$Oe(o+24|0)}function Ur(o){return o=o|0,n[o>>2]|0}function $Oe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function eLe(o){o=o|0;var l=0;l=en()|0,tn(o,2,3,l,tLe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function en(){return 9228}function tLe(){return 1140}function rLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=nLe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=iLe(l,A)|0,I=u,l|0}function tn(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,n[o>>2]=l,n[o+4>>2]=u,n[o+8>>2]=A,n[o+12>>2]=d,n[o+16>>2]=m}function nLe(o){return o=o|0,(n[(AM()|0)+24>>2]|0)+(o*12|0)|0}function iLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;return d=I,I=I+48|0,A=d,u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),ap[u&31](A,o),A=sLe(A)|0,I=d,A|0}function sLe(o){o=o|0;var l=0,u=0,A=0,d=0;return d=I,I=I+32|0,l=d+12|0,u=d,A=pM(qz()|0)|0,A?(hM(l,A),gM(u,l),oLe(o,u),o=dM(l)|0):o=aLe(o)|0,I=d,o|0}function qz(){var o=0;return s[7632]|0||(mLe(9184),gr(25,9184,U|0)|0,o=7632,n[o>>2]=1,n[o+4>>2]=0),9184}function pM(o){return o=o|0,n[o+36>>2]|0}function hM(o,l){o=o|0,l=l|0,n[o>>2]=l,n[o+4>>2]=o,n[o+8>>2]=0}function gM(o,l){o=o|0,l=l|0,n[o>>2]=n[l>>2],n[o+4>>2]=n[l+4>>2],n[o+8>>2]=0}function oLe(o,l){o=o|0,l=l|0,fLe(l,o,o+8|0,o+16|0,o+24|0,o+32|0,o+40|0)|0}function dM(o){return o=o|0,n[(n[o+4>>2]|0)+8>>2]|0}function aLe(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,T=0;T=I,I=I+16|0,u=T+4|0,A=T,d=Fl(8)|0,m=d,B=Jt(48)|0,k=B,l=k+48|0;do n[k>>2]=n[o>>2],k=k+4|0,o=o+4|0;while((k|0)<(l|0));return l=m+4|0,n[l>>2]=B,k=Jt(8)|0,B=n[l>>2]|0,n[A>>2]=0,n[u>>2]=n[A>>2],Gz(k,B,u),n[d>>2]=k,I=T,m|0}function Gz(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Jt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1092,n[u+12>>2]=l,n[o+4>>2]=u}function lLe(o){o=o|0,Zy(o),Et(o)}function cLe(o){o=o|0,o=n[o+12>>2]|0,o|0&&Et(o)}function uLe(o){o=o|0,Et(o)}function fLe(o,l,u,A,d,m,B){return o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,B=B|0,m=ALe(n[o>>2]|0,l,u,A,d,m,B)|0,B=o+4|0,n[(n[B>>2]|0)+8>>2]=m,n[(n[B>>2]|0)+8>>2]|0}function ALe(o,l,u,A,d,m,B){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,B=B|0;var k=0,T=0;return k=I,I=I+16|0,T=k,Nl(T),o=Ms(o)|0,B=pLe(o,+E[l>>3],+E[u>>3],+E[A>>3],+E[d>>3],+E[m>>3],+E[B>>3])|0,Ol(T),I=k,B|0}function pLe(o,l,u,A,d,m,B){o=o|0,l=+l,u=+u,A=+A,d=+d,m=+m,B=+B;var k=0;return k=ma(hLe()|0)|0,l=+Ja(l),u=+Ja(u),A=+Ja(A),d=+Ja(d),m=+Ja(m),io(0,k|0,o|0,+l,+u,+A,+d,+m,+ +Ja(B))|0}function hLe(){var o=0;return s[7624]|0||(gLe(9172),o=7624,n[o>>2]=1,n[o+4>>2]=0),9172}function gLe(o){o=o|0,Ro(o,dLe()|0,6)}function dLe(){return 1112}function mLe(o){o=o|0,_h(o)}function yLe(o){o=o|0,Wz(o+24|0),Yz(o+16|0)}function Wz(o){o=o|0,ILe(o)}function Yz(o){o=o|0,ELe(o)}function ELe(o){o=o|0;var l=0,u=0;if(l=n[o>>2]|0,l|0)do u=l,l=n[l>>2]|0,Et(u);while(l|0);n[o>>2]=0}function ILe(o){o=o|0;var l=0,u=0;if(l=n[o>>2]|0,l|0)do u=l,l=n[l>>2]|0,Et(u);while(l|0);n[o>>2]=0}function _h(o){o=o|0;var l=0;n[o+16>>2]=0,n[o+20>>2]=0,l=o+24|0,n[l>>2]=0,n[o+28>>2]=l,n[o+36>>2]=0,s[o+40>>0]=0,s[o+41>>0]=0}function CLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wLe(o,u,d,0),I=A}function wLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=mM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=BLe(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,vLe(m,A)|0,A),I=d}function mM(){var o=0,l=0;if(s[7640]|0||(Kz(9232),gr(26,9232,U|0)|0,l=7640,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9232)|0)){o=9232,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));Kz(9232)}return 9232}function BLe(o){return o=o|0,0}function vLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=mM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Vz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(SLe(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function Vz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function SLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=DLe(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,bLe(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Vz(m,A,u),n[T>>2]=(n[T>>2]|0)+12,PLe(o,k),xLe(k),I=_;return}}function DLe(o){return o=o|0,357913941}function bLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function PLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function xLe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function Kz(o){o=o|0,TLe(o)}function kLe(o){o=o|0,QLe(o+24|0)}function QLe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function TLe(o){o=o|0;var l=0;l=en()|0,tn(o,2,1,l,RLe()|0,3),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function RLe(){return 1144}function FLe(o,l,u,A,d){o=o|0,l=l|0,u=+u,A=+A,d=d|0;var m=0,B=0,k=0,T=0;m=I,I=I+16|0,B=m+8|0,k=m,T=NLe(o)|0,o=n[T+4>>2]|0,n[k>>2]=n[T>>2],n[k+4>>2]=o,n[B>>2]=n[k>>2],n[B+4>>2]=n[k+4>>2],OLe(l,B,u,A,d),I=m}function NLe(o){return o=o|0,(n[(mM()|0)+24>>2]|0)+(o*12|0)|0}function OLe(o,l,u,A,d){o=o|0,l=l|0,u=+u,A=+A,d=d|0;var m=0,B=0,k=0,T=0,_=0;_=I,I=I+16|0,B=_+2|0,k=_+1|0,T=_,m=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(m=n[(n[o>>2]|0)+m>>2]|0),Tf(B,u),u=+Rf(B,u),Tf(k,A),A=+Rf(k,A),np(T,d),T=ip(T,d)|0,c$[m&1](o,u,A,T),I=_}function Tf(o,l){o=o|0,l=+l}function Rf(o,l){return o=o|0,l=+l,+ +MLe(l)}function np(o,l){o=o|0,l=l|0}function ip(o,l){return o=o|0,l=l|0,LLe(l)|0}function LLe(o){return o=o|0,o|0}function MLe(o){return o=+o,+o}function _Le(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ULe(o,u,d,1),I=A}function ULe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=yM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=HLe(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,jLe(m,A)|0,A),I=d}function yM(){var o=0,l=0;if(s[7648]|0||(zz(9268),gr(27,9268,U|0)|0,l=7648,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9268)|0)){o=9268,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));zz(9268)}return 9268}function HLe(o){return o=o|0,0}function jLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=yM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Jz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(qLe(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function Jz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function qLe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=GLe(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,WLe(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Jz(m,A,u),n[T>>2]=(n[T>>2]|0)+12,YLe(o,k),VLe(k),I=_;return}}function GLe(o){return o=o|0,357913941}function WLe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function YLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function VLe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function zz(o){o=o|0,zLe(o)}function KLe(o){o=o|0,JLe(o+24|0)}function JLe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function zLe(o){o=o|0;var l=0;l=en()|0,tn(o,2,4,l,ZLe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function ZLe(){return 1160}function XLe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=$Le(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=eMe(l,A)|0,I=u,l|0}function $Le(o){return o=o|0,(n[(yM()|0)+24>>2]|0)+(o*12|0)|0}function eMe(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),Zz(hd[u&31](o)|0)|0}function Zz(o){return o=o|0,o&1|0}function tMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rMe(o,u,d,0),I=A}function rMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=EM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=nMe(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,iMe(m,A)|0,A),I=d}function EM(){var o=0,l=0;if(s[7656]|0||($z(9304),gr(28,9304,U|0)|0,l=7656,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9304)|0)){o=9304,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));$z(9304)}return 9304}function nMe(o){return o=o|0,0}function iMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=EM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],Xz(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(sMe(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function Xz(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function sMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=oMe(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,aMe(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],Xz(m,A,u),n[T>>2]=(n[T>>2]|0)+12,lMe(o,k),cMe(k),I=_;return}}function oMe(o){return o=o|0,357913941}function aMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function lMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function cMe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function $z(o){o=o|0,AMe(o)}function uMe(o){o=o|0,fMe(o+24|0)}function fMe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function AMe(o){o=o|0;var l=0;l=en()|0,tn(o,2,5,l,pMe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function pMe(){return 1164}function hMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=gMe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],dMe(l,d,u),I=A}function gMe(o){return o=o|0,(n[(EM()|0)+24>>2]|0)+(o*12|0)|0}function dMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),Uh(d,u),u=Hh(d,u)|0,ap[A&31](o,u),jh(d),I=m}function Uh(o,l){o=o|0,l=l|0,mMe(o,l)}function Hh(o,l){return o=o|0,l=l|0,o|0}function jh(o){o=o|0,Df(o)}function mMe(o,l){o=o|0,l=l|0,IM(o,l)}function IM(o,l){o=o|0,l=l|0,n[o>>2]=l}function yMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],EMe(o,u,d,0),I=A}function EMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=CM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=IMe(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,CMe(m,A)|0,A),I=d}function CM(){var o=0,l=0;if(s[7664]|0||(tZ(9340),gr(29,9340,U|0)|0,l=7664,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9340)|0)){o=9340,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));tZ(9340)}return 9340}function IMe(o){return o=o|0,0}function CMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=CM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],eZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(wMe(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function eZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function wMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=BMe(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,vMe(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],eZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,SMe(o,k),DMe(k),I=_;return}}function BMe(o){return o=o|0,357913941}function vMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function SMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function DMe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function tZ(o){o=o|0,xMe(o)}function bMe(o){o=o|0,PMe(o+24|0)}function PMe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function xMe(o){o=o|0;var l=0;l=en()|0,tn(o,2,4,l,kMe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function kMe(){return 1180}function QMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=TMe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],u=RMe(l,d,u)|0,I=A,u|0}function TMe(o){return o=o|0,(n[(CM()|0)+24>>2]|0)+(o*12|0)|0}function RMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;return m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),od(d,u),d=ad(d,u)|0,d=UP(m_[A&15](o,d)|0)|0,I=m,d|0}function od(o,l){o=o|0,l=l|0}function ad(o,l){return o=o|0,l=l|0,FMe(l)|0}function UP(o){return o=o|0,o|0}function FMe(o){return o=o|0,o|0}function NMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],OMe(o,u,d,0),I=A}function OMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=wM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=LMe(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,MMe(m,A)|0,A),I=d}function wM(){var o=0,l=0;if(s[7672]|0||(nZ(9376),gr(30,9376,U|0)|0,l=7672,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9376)|0)){o=9376,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));nZ(9376)}return 9376}function LMe(o){return o=o|0,0}function MMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=wM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],rZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(_Me(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function rZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function _Me(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=UMe(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,HMe(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],rZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,jMe(o,k),qMe(k),I=_;return}}function UMe(o){return o=o|0,357913941}function HMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function jMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function qMe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function nZ(o){o=o|0,YMe(o)}function GMe(o){o=o|0,WMe(o+24|0)}function WMe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function YMe(o){o=o|0;var l=0;l=en()|0,tn(o,2,5,l,iZ()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function iZ(){return 1196}function VMe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=KMe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=JMe(l,A)|0,I=u,l|0}function KMe(o){return o=o|0,(n[(wM()|0)+24>>2]|0)+(o*12|0)|0}function JMe(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),UP(hd[u&31](o)|0)|0}function zMe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ZMe(o,u,d,1),I=A}function ZMe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=BM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=XMe(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,$Me(m,A)|0,A),I=d}function BM(){var o=0,l=0;if(s[7680]|0||(oZ(9412),gr(31,9412,U|0)|0,l=7680,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9412)|0)){o=9412,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));oZ(9412)}return 9412}function XMe(o){return o=o|0,0}function $Me(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=BM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],sZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(e_e(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function sZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function e_e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=t_e(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,r_e(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],sZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,n_e(o,k),i_e(k),I=_;return}}function t_e(o){return o=o|0,357913941}function r_e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function n_e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function i_e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function oZ(o){o=o|0,a_e(o)}function s_e(o){o=o|0,o_e(o+24|0)}function o_e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function a_e(o){o=o|0;var l=0;l=en()|0,tn(o,2,6,l,aZ()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function aZ(){return 1200}function l_e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=c_e(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=u_e(l,A)|0,I=u,l|0}function c_e(o){return o=o|0,(n[(BM()|0)+24>>2]|0)+(o*12|0)|0}function u_e(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),HP(hd[u&31](o)|0)|0}function HP(o){return o=o|0,o|0}function f_e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],A_e(o,u,d,0),I=A}function A_e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=vM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=p_e(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,h_e(m,A)|0,A),I=d}function vM(){var o=0,l=0;if(s[7688]|0||(cZ(9448),gr(32,9448,U|0)|0,l=7688,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9448)|0)){o=9448,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));cZ(9448)}return 9448}function p_e(o){return o=o|0,0}function h_e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=vM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],lZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(g_e(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function lZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function g_e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=d_e(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,m_e(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],lZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,y_e(o,k),E_e(k),I=_;return}}function d_e(o){return o=o|0,357913941}function m_e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function y_e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function E_e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function cZ(o){o=o|0,w_e(o)}function I_e(o){o=o|0,C_e(o+24|0)}function C_e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function w_e(o){o=o|0;var l=0;l=en()|0,tn(o,2,6,l,uZ()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function uZ(){return 1204}function B_e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=v_e(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],S_e(l,d,u),I=A}function v_e(o){return o=o|0,(n[(vM()|0)+24>>2]|0)+(o*12|0)|0}function S_e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),SM(d,u),d=DM(d,u)|0,ap[A&31](o,d),I=m}function SM(o,l){o=o|0,l=l|0}function DM(o,l){return o=o|0,l=l|0,D_e(l)|0}function D_e(o){return o=o|0,o|0}function b_e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],P_e(o,u,d,0),I=A}function P_e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=bM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=x_e(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,k_e(m,A)|0,A),I=d}function bM(){var o=0,l=0;if(s[7696]|0||(AZ(9484),gr(33,9484,U|0)|0,l=7696,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9484)|0)){o=9484,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));AZ(9484)}return 9484}function x_e(o){return o=o|0,0}function k_e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=bM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],fZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(Q_e(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function fZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function Q_e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=T_e(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,R_e(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],fZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,F_e(o,k),N_e(k),I=_;return}}function T_e(o){return o=o|0,357913941}function R_e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function F_e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function N_e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function AZ(o){o=o|0,M_e(o)}function O_e(o){o=o|0,L_e(o+24|0)}function L_e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function M_e(o){o=o|0;var l=0;l=en()|0,tn(o,2,1,l,__e()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function __e(){return 1212}function U_e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,m=d+8|0,B=d,k=H_e(o)|0,o=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=o,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],j_e(l,m,u,A),I=d}function H_e(o){return o=o|0,(n[(bM()|0)+24>>2]|0)+(o*12|0)|0}function j_e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;k=I,I=I+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(d=n[(n[o>>2]|0)+d>>2]|0),SM(m,u),m=DM(m,u)|0,od(B,A),B=ad(B,A)|0,F2[d&15](o,m,B),I=k}function q_e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],G_e(o,u,d,1),I=A}function G_e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=PM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=W_e(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,Y_e(m,A)|0,A),I=d}function PM(){var o=0,l=0;if(s[7704]|0||(hZ(9520),gr(34,9520,U|0)|0,l=7704,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9520)|0)){o=9520,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));hZ(9520)}return 9520}function W_e(o){return o=o|0,0}function Y_e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=PM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],pZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(V_e(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function pZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function V_e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=K_e(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,J_e(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],pZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,z_e(o,k),Z_e(k),I=_;return}}function K_e(o){return o=o|0,357913941}function J_e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function z_e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function Z_e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function hZ(o){o=o|0,eUe(o)}function X_e(o){o=o|0,$_e(o+24|0)}function $_e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function eUe(o){o=o|0;var l=0;l=en()|0,tn(o,2,1,l,tUe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function tUe(){return 1224}function rUe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;return d=I,I=I+16|0,m=d+8|0,B=d,k=nUe(o)|0,o=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=o,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],A=+iUe(l,m,u),I=d,+A}function nUe(o){return o=o|0,(n[(PM()|0)+24>>2]|0)+(o*12|0)|0}function iUe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),np(d,u),d=ip(d,u)|0,B=+Qf(+f$[A&7](o,d)),I=m,+B}function sUe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],oUe(o,u,d,1),I=A}function oUe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=xM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=aUe(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,lUe(m,A)|0,A),I=d}function xM(){var o=0,l=0;if(s[7712]|0||(dZ(9556),gr(35,9556,U|0)|0,l=7712,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9556)|0)){o=9556,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));dZ(9556)}return 9556}function aUe(o){return o=o|0,0}function lUe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=xM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],gZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(cUe(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function gZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function cUe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=uUe(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,fUe(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],gZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,AUe(o,k),pUe(k),I=_;return}}function uUe(o){return o=o|0,357913941}function fUe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function AUe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function pUe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function dZ(o){o=o|0,dUe(o)}function hUe(o){o=o|0,gUe(o+24|0)}function gUe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function dUe(o){o=o|0;var l=0;l=en()|0,tn(o,2,5,l,mUe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function mUe(){return 1232}function yUe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=EUe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],u=+IUe(l,d),I=A,+u}function EUe(o){return o=o|0,(n[(xM()|0)+24>>2]|0)+(o*12|0)|0}function IUe(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),+ +Qf(+u$[u&15](o))}function CUe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wUe(o,u,d,1),I=A}function wUe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=kM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=BUe(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,vUe(m,A)|0,A),I=d}function kM(){var o=0,l=0;if(s[7720]|0||(yZ(9592),gr(36,9592,U|0)|0,l=7720,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9592)|0)){o=9592,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));yZ(9592)}return 9592}function BUe(o){return o=o|0,0}function vUe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=kM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],mZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(SUe(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function mZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function SUe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=DUe(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,bUe(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],mZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,PUe(o,k),xUe(k),I=_;return}}function DUe(o){return o=o|0,357913941}function bUe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function PUe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function xUe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function yZ(o){o=o|0,TUe(o)}function kUe(o){o=o|0,QUe(o+24|0)}function QUe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function TUe(o){o=o|0;var l=0;l=en()|0,tn(o,2,7,l,RUe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function RUe(){return 1276}function FUe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=NUe(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=OUe(l,A)|0,I=u,l|0}function NUe(o){return o=o|0,(n[(kM()|0)+24>>2]|0)+(o*12|0)|0}function OUe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;return d=I,I=I+16|0,A=d,u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),ap[u&31](A,o),A=EZ(A)|0,I=d,A|0}function EZ(o){o=o|0;var l=0,u=0,A=0,d=0;return d=I,I=I+32|0,l=d+12|0,u=d,A=pM(IZ()|0)|0,A?(hM(l,A),gM(u,l),LUe(o,u),o=dM(l)|0):o=MUe(o)|0,I=d,o|0}function IZ(){var o=0;return s[7736]|0||(KUe(9640),gr(25,9640,U|0)|0,o=7736,n[o>>2]=1,n[o+4>>2]=0),9640}function LUe(o,l){o=o|0,l=l|0,jUe(l,o,o+8|0)|0}function MUe(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0;return u=I,I=I+16|0,d=u+4|0,B=u,A=Fl(8)|0,l=A,k=Jt(16)|0,n[k>>2]=n[o>>2],n[k+4>>2]=n[o+4>>2],n[k+8>>2]=n[o+8>>2],n[k+12>>2]=n[o+12>>2],m=l+4|0,n[m>>2]=k,o=Jt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],QM(o,m,d),n[A>>2]=o,I=u,l|0}function QM(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Jt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1244,n[u+12>>2]=l,n[o+4>>2]=u}function _Ue(o){o=o|0,Zy(o),Et(o)}function UUe(o){o=o|0,o=n[o+12>>2]|0,o|0&&Et(o)}function HUe(o){o=o|0,Et(o)}function jUe(o,l,u){return o=o|0,l=l|0,u=u|0,l=qUe(n[o>>2]|0,l,u)|0,u=o+4|0,n[(n[u>>2]|0)+8>>2]=l,n[(n[u>>2]|0)+8>>2]|0}function qUe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;return A=I,I=I+16|0,d=A,Nl(d),o=Ms(o)|0,u=GUe(o,n[l>>2]|0,+E[u>>3])|0,Ol(d),I=A,u|0}function GUe(o,l,u){o=o|0,l=l|0,u=+u;var A=0;return A=ma(WUe()|0)|0,l=Gy(l)|0,lu(0,A|0,o|0,l|0,+ +Ja(u))|0}function WUe(){var o=0;return s[7728]|0||(YUe(9628),o=7728,n[o>>2]=1,n[o+4>>2]=0),9628}function YUe(o){o=o|0,Ro(o,VUe()|0,2)}function VUe(){return 1264}function KUe(o){o=o|0,_h(o)}function JUe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],zUe(o,u,d,1),I=A}function zUe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=TM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=ZUe(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,XUe(m,A)|0,A),I=d}function TM(){var o=0,l=0;if(s[7744]|0||(wZ(9684),gr(37,9684,U|0)|0,l=7744,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9684)|0)){o=9684,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));wZ(9684)}return 9684}function ZUe(o){return o=o|0,0}function XUe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=TM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],CZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):($Ue(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function CZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function $Ue(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=e4e(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,t4e(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],CZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,r4e(o,k),n4e(k),I=_;return}}function e4e(o){return o=o|0,357913941}function t4e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function r4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function n4e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function wZ(o){o=o|0,o4e(o)}function i4e(o){o=o|0,s4e(o+24|0)}function s4e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function o4e(o){o=o|0;var l=0;l=en()|0,tn(o,2,5,l,a4e()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function a4e(){return 1280}function l4e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=c4e(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],u=u4e(l,d,u)|0,I=A,u|0}function c4e(o){return o=o|0,(n[(TM()|0)+24>>2]|0)+(o*12|0)|0}function u4e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return B=I,I=I+32|0,d=B,m=B+16|0,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),np(m,u),m=ip(m,u)|0,F2[A&15](d,o,m),m=EZ(d)|0,I=B,m|0}function f4e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],A4e(o,u,d,1),I=A}function A4e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=RM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=p4e(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,h4e(m,A)|0,A),I=d}function RM(){var o=0,l=0;if(s[7752]|0||(vZ(9720),gr(38,9720,U|0)|0,l=7752,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9720)|0)){o=9720,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));vZ(9720)}return 9720}function p4e(o){return o=o|0,0}function h4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=RM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],BZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(g4e(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function BZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function g4e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=d4e(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,m4e(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],BZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,y4e(o,k),E4e(k),I=_;return}}function d4e(o){return o=o|0,357913941}function m4e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function y4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function E4e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function vZ(o){o=o|0,w4e(o)}function I4e(o){o=o|0,C4e(o+24|0)}function C4e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function w4e(o){o=o|0;var l=0;l=en()|0,tn(o,2,8,l,B4e()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function B4e(){return 1288}function v4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;return u=I,I=I+16|0,A=u+8|0,d=u,m=S4e(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],l=D4e(l,A)|0,I=u,l|0}function S4e(o){return o=o|0,(n[(RM()|0)+24>>2]|0)+(o*12|0)|0}function D4e(o,l){o=o|0,l=l|0;var u=0;return u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),id(hd[u&31](o)|0)|0}function b4e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],P4e(o,u,d,0),I=A}function P4e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=FM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=x4e(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,k4e(m,A)|0,A),I=d}function FM(){var o=0,l=0;if(s[7760]|0||(DZ(9756),gr(39,9756,U|0)|0,l=7760,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9756)|0)){o=9756,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));DZ(9756)}return 9756}function x4e(o){return o=o|0,0}function k4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=FM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],SZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(Q4e(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function SZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function Q4e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=T4e(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,R4e(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],SZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,F4e(o,k),N4e(k),I=_;return}}function T4e(o){return o=o|0,357913941}function R4e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function F4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function N4e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function DZ(o){o=o|0,M4e(o)}function O4e(o){o=o|0,L4e(o+24|0)}function L4e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function M4e(o){o=o|0;var l=0;l=en()|0,tn(o,2,8,l,_4e()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function _4e(){return 1292}function U4e(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=H4e(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],j4e(l,d,u),I=A}function H4e(o){return o=o|0,(n[(FM()|0)+24>>2]|0)+(o*12|0)|0}function j4e(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),Tf(d,u),u=+Rf(d,u),a$[A&31](o,u),I=m}function q4e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],G4e(o,u,d,0),I=A}function G4e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=NM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=W4e(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,Y4e(m,A)|0,A),I=d}function NM(){var o=0,l=0;if(s[7768]|0||(PZ(9792),gr(40,9792,U|0)|0,l=7768,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9792)|0)){o=9792,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));PZ(9792)}return 9792}function W4e(o){return o=o|0,0}function Y4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=NM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],bZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(V4e(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function bZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function V4e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=K4e(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,J4e(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],bZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,z4e(o,k),Z4e(k),I=_;return}}function K4e(o){return o=o|0,357913941}function J4e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function z4e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function Z4e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function PZ(o){o=o|0,e3e(o)}function X4e(o){o=o|0,$4e(o+24|0)}function $4e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function e3e(o){o=o|0;var l=0;l=en()|0,tn(o,2,1,l,t3e()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function t3e(){return 1300}function r3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=+A;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,m=d+8|0,B=d,k=n3e(o)|0,o=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=o,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],i3e(l,m,u,A),I=d}function n3e(o){return o=o|0,(n[(NM()|0)+24>>2]|0)+(o*12|0)|0}function i3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=+A;var d=0,m=0,B=0,k=0;k=I,I=I+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(d=n[(n[o>>2]|0)+d>>2]|0),np(m,u),m=ip(m,u)|0,Tf(B,A),A=+Rf(B,A),g$[d&15](o,m,A),I=k}function s3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],o3e(o,u,d,0),I=A}function o3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=OM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=a3e(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,l3e(m,A)|0,A),I=d}function OM(){var o=0,l=0;if(s[7776]|0||(kZ(9828),gr(41,9828,U|0)|0,l=7776,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9828)|0)){o=9828,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));kZ(9828)}return 9828}function a3e(o){return o=o|0,0}function l3e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=OM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],xZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(c3e(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function xZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function c3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=u3e(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,f3e(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],xZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,A3e(o,k),p3e(k),I=_;return}}function u3e(o){return o=o|0,357913941}function f3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function A3e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function p3e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function kZ(o){o=o|0,d3e(o)}function h3e(o){o=o|0,g3e(o+24|0)}function g3e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function d3e(o){o=o|0;var l=0;l=en()|0,tn(o,2,7,l,m3e()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function m3e(){return 1312}function y3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=E3e(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],I3e(l,d,u),I=A}function E3e(o){return o=o|0,(n[(OM()|0)+24>>2]|0)+(o*12|0)|0}function I3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),np(d,u),d=ip(d,u)|0,ap[A&31](o,d),I=m}function C3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],w3e(o,u,d,0),I=A}function w3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=LM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=B3e(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,v3e(m,A)|0,A),I=d}function LM(){var o=0,l=0;if(s[7784]|0||(TZ(9864),gr(42,9864,U|0)|0,l=7784,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9864)|0)){o=9864,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));TZ(9864)}return 9864}function B3e(o){return o=o|0,0}function v3e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=LM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],QZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(S3e(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function QZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function S3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=D3e(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,b3e(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],QZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,P3e(o,k),x3e(k),I=_;return}}function D3e(o){return o=o|0,357913941}function b3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function P3e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function x3e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function TZ(o){o=o|0,T3e(o)}function k3e(o){o=o|0,Q3e(o+24|0)}function Q3e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function T3e(o){o=o|0;var l=0;l=en()|0,tn(o,2,8,l,R3e()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function R3e(){return 1320}function F3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=N3e(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],O3e(l,d,u),I=A}function N3e(o){return o=o|0,(n[(LM()|0)+24>>2]|0)+(o*12|0)|0}function O3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),L3e(d,u),d=M3e(d,u)|0,ap[A&31](o,d),I=m}function L3e(o,l){o=o|0,l=l|0}function M3e(o,l){return o=o|0,l=l|0,_3e(l)|0}function _3e(o){return o=o|0,o|0}function U3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],H3e(o,u,d,0),I=A}function H3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=MM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=j3e(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,q3e(m,A)|0,A),I=d}function MM(){var o=0,l=0;if(s[7792]|0||(FZ(9900),gr(43,9900,U|0)|0,l=7792,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9900)|0)){o=9900,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));FZ(9900)}return 9900}function j3e(o){return o=o|0,0}function q3e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=MM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],RZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(G3e(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function RZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function G3e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=W3e(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,Y3e(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],RZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,V3e(o,k),K3e(k),I=_;return}}function W3e(o){return o=o|0,357913941}function Y3e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function V3e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function K3e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function FZ(o){o=o|0,Z3e(o)}function J3e(o){o=o|0,z3e(o+24|0)}function z3e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function Z3e(o){o=o|0;var l=0;l=en()|0,tn(o,2,22,l,X3e()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function X3e(){return 1344}function $3e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0;u=I,I=I+16|0,A=u+8|0,d=u,m=e8e(o)|0,o=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=o,n[A>>2]=n[d>>2],n[A+4>>2]=n[d+4>>2],t8e(l,A),I=u}function e8e(o){return o=o|0,(n[(MM()|0)+24>>2]|0)+(o*12|0)|0}function t8e(o,l){o=o|0,l=l|0;var u=0;u=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(u=n[(n[o>>2]|0)+u>>2]|0),op[u&127](o)}function r8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=_M()|0,o=n8e(u)|0,vn(m,l,d,o,i8e(u,A)|0,A)}function _M(){var o=0,l=0;if(s[7800]|0||(OZ(9936),gr(44,9936,U|0)|0,l=7800,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9936)|0)){o=9936,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));OZ(9936)}return 9936}function n8e(o){return o=o|0,o|0}function i8e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,T=_M()|0,B=T+24|0,l=yr(l,4)|0,n[m>>2]=l,u=T+28|0,A=n[u>>2]|0,A>>>0<(n[T+32>>2]|0)>>>0?(NZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(s8e(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function NZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function s8e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=o8e(o)|0,A>>>0<B>>>0)sn(o);else{T=n[o>>2]|0,M=(n[o+8>>2]|0)-T|0,_=M>>2,a8e(d,M>>3>>>0<A>>>1>>>0?_>>>0<B>>>0?B:_:A,(n[m>>2]|0)-T>>3,o+8|0),B=d+8|0,NZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,l8e(o,d),c8e(d),I=k;return}}function o8e(o){return o=o|0,536870911}function a8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Jt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function l8e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function c8e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&Et(o)}function OZ(o){o=o|0,A8e(o)}function u8e(o){o=o|0,f8e(o+24|0)}function f8e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function A8e(o){o=o|0;var l=0;l=en()|0,tn(o,1,23,l,uZ()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function p8e(o,l){o=o|0,l=l|0,g8e(n[(h8e(o)|0)>>2]|0,l)}function h8e(o){return o=o|0,(n[(_M()|0)+24>>2]|0)+(o<<3)|0}function g8e(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,SM(A,l),l=DM(A,l)|0,op[o&127](l),I=u}function d8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=UM()|0,o=m8e(u)|0,vn(m,l,d,o,y8e(u,A)|0,A)}function UM(){var o=0,l=0;if(s[7808]|0||(MZ(9972),gr(45,9972,U|0)|0,l=7808,n[l>>2]=1,n[l+4>>2]=0),!(Ur(9972)|0)){o=9972,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));MZ(9972)}return 9972}function m8e(o){return o=o|0,o|0}function y8e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,T=UM()|0,B=T+24|0,l=yr(l,4)|0,n[m>>2]=l,u=T+28|0,A=n[u>>2]|0,A>>>0<(n[T+32>>2]|0)>>>0?(LZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(E8e(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function LZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function E8e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=I8e(o)|0,A>>>0<B>>>0)sn(o);else{T=n[o>>2]|0,M=(n[o+8>>2]|0)-T|0,_=M>>2,C8e(d,M>>3>>>0<A>>>1>>>0?_>>>0<B>>>0?B:_:A,(n[m>>2]|0)-T>>3,o+8|0),B=d+8|0,LZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,w8e(o,d),B8e(d),I=k;return}}function I8e(o){return o=o|0,536870911}function C8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Jt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function w8e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function B8e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&Et(o)}function MZ(o){o=o|0,D8e(o)}function v8e(o){o=o|0,S8e(o+24|0)}function S8e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function D8e(o){o=o|0;var l=0;l=en()|0,tn(o,1,9,l,b8e()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function b8e(){return 1348}function P8e(o,l){return o=o|0,l=l|0,k8e(n[(x8e(o)|0)>>2]|0,l)|0}function x8e(o){return o=o|0,(n[(UM()|0)+24>>2]|0)+(o<<3)|0}function k8e(o,l){o=o|0,l=l|0;var u=0,A=0;return u=I,I=I+16|0,A=u,_Z(A,l),l=UZ(A,l)|0,l=UP(hd[o&31](l)|0)|0,I=u,l|0}function _Z(o,l){o=o|0,l=l|0}function UZ(o,l){return o=o|0,l=l|0,Q8e(l)|0}function Q8e(o){return o=o|0,o|0}function T8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=HM()|0,o=R8e(u)|0,vn(m,l,d,o,F8e(u,A)|0,A)}function HM(){var o=0,l=0;if(s[7816]|0||(jZ(10008),gr(46,10008,U|0)|0,l=7816,n[l>>2]=1,n[l+4>>2]=0),!(Ur(10008)|0)){o=10008,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));jZ(10008)}return 10008}function R8e(o){return o=o|0,o|0}function F8e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,T=HM()|0,B=T+24|0,l=yr(l,4)|0,n[m>>2]=l,u=T+28|0,A=n[u>>2]|0,A>>>0<(n[T+32>>2]|0)>>>0?(HZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(N8e(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function HZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function N8e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=O8e(o)|0,A>>>0<B>>>0)sn(o);else{T=n[o>>2]|0,M=(n[o+8>>2]|0)-T|0,_=M>>2,L8e(d,M>>3>>>0<A>>>1>>>0?_>>>0<B>>>0?B:_:A,(n[m>>2]|0)-T>>3,o+8|0),B=d+8|0,HZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,M8e(o,d),_8e(d),I=k;return}}function O8e(o){return o=o|0,536870911}function L8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Jt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function M8e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function _8e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&Et(o)}function jZ(o){o=o|0,j8e(o)}function U8e(o){o=o|0,H8e(o+24|0)}function H8e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function j8e(o){o=o|0;var l=0;l=en()|0,tn(o,1,15,l,iZ()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function q8e(o){return o=o|0,W8e(n[(G8e(o)|0)>>2]|0)|0}function G8e(o){return o=o|0,(n[(HM()|0)+24>>2]|0)+(o<<3)|0}function W8e(o){return o=o|0,UP(tx[o&7]()|0)|0}function Y8e(){var o=0;return s[7832]|0||(eHe(10052),gr(25,10052,U|0)|0,o=7832,n[o>>2]=1,n[o+4>>2]=0),10052}function V8e(o,l){o=o|0,l=l|0,n[o>>2]=K8e()|0,n[o+4>>2]=J8e()|0,n[o+12>>2]=l,n[o+8>>2]=z8e()|0,n[o+32>>2]=2}function K8e(){return 11709}function J8e(){return 1188}function z8e(){return jP()|0}function Z8e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(qh(A,896)|0)==512?u|0&&(X8e(u),Et(u)):l|0&&(Fy(l),Et(l))}function qh(o,l){return o=o|0,l=l|0,l&o|0}function X8e(o){o=o|0,o=n[o+4>>2]|0,o|0&&Wh(o)}function jP(){var o=0;return s[7824]|0||(n[2511]=$8e()|0,n[2512]=0,o=7824,n[o>>2]=1,n[o+4>>2]=0),10044}function $8e(){return 0}function eHe(o){o=o|0,_h(o)}function tHe(o){o=o|0;var l=0,u=0,A=0,d=0,m=0;l=I,I=I+32|0,u=l+24|0,m=l+16|0,d=l+8|0,A=l,rHe(o,4827),nHe(o,4834,3)|0,iHe(o,3682,47)|0,n[m>>2]=9,n[m+4>>2]=0,n[u>>2]=n[m>>2],n[u+4>>2]=n[m+4>>2],sHe(o,4841,u)|0,n[d>>2]=1,n[d+4>>2]=0,n[u>>2]=n[d>>2],n[u+4>>2]=n[d+4>>2],oHe(o,4871,u)|0,n[A>>2]=10,n[A+4>>2]=0,n[u>>2]=n[A>>2],n[u+4>>2]=n[A+4>>2],aHe(o,4891,u)|0,I=l}function rHe(o,l){o=o|0,l=l|0;var u=0;u=_je()|0,n[o>>2]=u,Uje(u,l),Gh(n[o>>2]|0)}function nHe(o,l,u){return o=o|0,l=l|0,u=u|0,Bje(o,Bn(l)|0,u,0),o|0}function iHe(o,l,u){return o=o|0,l=l|0,u=u|0,lje(o,Bn(l)|0,u,0),o|0}function sHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qHe(o,l,d),I=A,o|0}function oHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vHe(o,l,d),I=A,o|0}function aHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=n[u+4>>2]|0,n[m>>2]=n[u>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lHe(o,l,d),I=A,o|0}function lHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],cHe(o,u,d,1),I=A}function cHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=jM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=uHe(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,fHe(m,A)|0,A),I=d}function jM(){var o=0,l=0;if(s[7840]|0||(GZ(10100),gr(48,10100,U|0)|0,l=7840,n[l>>2]=1,n[l+4>>2]=0),!(Ur(10100)|0)){o=10100,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));GZ(10100)}return 10100}function uHe(o){return o=o|0,0}function fHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=jM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],qZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(AHe(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function qZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function AHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=pHe(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,hHe(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],qZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,gHe(o,k),dHe(k),I=_;return}}function pHe(o){return o=o|0,357913941}function hHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function gHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function dHe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function GZ(o){o=o|0,EHe(o)}function mHe(o){o=o|0,yHe(o+24|0)}function yHe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function EHe(o){o=o|0;var l=0;l=en()|0,tn(o,2,6,l,IHe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function IHe(){return 1364}function CHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;return A=I,I=I+16|0,d=A+8|0,m=A,B=wHe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],u=BHe(l,d,u)|0,I=A,u|0}function wHe(o){return o=o|0,(n[(jM()|0)+24>>2]|0)+(o*12|0)|0}function BHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;return m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),np(d,u),d=ip(d,u)|0,d=Zz(m_[A&15](o,d)|0)|0,I=m,d|0}function vHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],SHe(o,u,d,0),I=A}function SHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=qM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=DHe(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,bHe(m,A)|0,A),I=d}function qM(){var o=0,l=0;if(s[7848]|0||(YZ(10136),gr(49,10136,U|0)|0,l=7848,n[l>>2]=1,n[l+4>>2]=0),!(Ur(10136)|0)){o=10136,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));YZ(10136)}return 10136}function DHe(o){return o=o|0,0}function bHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=qM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],WZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(PHe(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function WZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function PHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=xHe(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,kHe(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],WZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,QHe(o,k),THe(k),I=_;return}}function xHe(o){return o=o|0,357913941}function kHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function QHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function THe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function YZ(o){o=o|0,NHe(o)}function RHe(o){o=o|0,FHe(o+24|0)}function FHe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function NHe(o){o=o|0;var l=0;l=en()|0,tn(o,2,9,l,OHe()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function OHe(){return 1372}function LHe(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,d=A+8|0,m=A,B=MHe(o)|0,o=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=o,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],_He(l,d,u),I=A}function MHe(o){return o=o|0,(n[(qM()|0)+24>>2]|0)+(o*12|0)|0}function _He(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0,B=Xe;m=I,I=I+16|0,d=m,A=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(A=n[(n[o>>2]|0)+A>>2]|0),UHe(d,u),B=y(HHe(d,u)),o$[A&1](o,B),I=m}function UHe(o,l){o=o|0,l=+l}function HHe(o,l){return o=o|0,l=+l,y(jHe(l))}function jHe(o){return o=+o,y(o)}function qHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,d=A+8|0,m=A,k=n[u>>2]|0,B=n[u+4>>2]|0,u=Bn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],GHe(o,u,d,0),I=A}function GHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0,T=0,_=0,M=0;d=I,I=I+32|0,m=d+16|0,M=d+8|0,k=d,_=n[u>>2]|0,T=n[u+4>>2]|0,B=n[o>>2]|0,o=GM()|0,n[M>>2]=_,n[M+4>>2]=T,n[m>>2]=n[M>>2],n[m+4>>2]=n[M+4>>2],u=WHe(m)|0,n[k>>2]=_,n[k+4>>2]=T,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],vn(B,l,o,u,YHe(m,A)|0,A),I=d}function GM(){var o=0,l=0;if(s[7856]|0||(KZ(10172),gr(50,10172,U|0)|0,l=7856,n[l>>2]=1,n[l+4>>2]=0),!(Ur(10172)|0)){o=10172,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));KZ(10172)}return 10172}function WHe(o){return o=o|0,0}function YHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0;return M=I,I=I+32|0,d=M+24|0,B=M+16|0,k=M,T=M+8|0,m=n[o>>2]|0,A=n[o+4>>2]|0,n[k>>2]=m,n[k+4>>2]=A,G=GM()|0,_=G+24|0,o=yr(l,4)|0,n[T>>2]=o,l=G+28|0,u=n[l>>2]|0,u>>>0<(n[G+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=A,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],VZ(u,d,o),o=(n[l>>2]|0)+12|0,n[l>>2]=o):(VHe(_,k,T),o=n[l>>2]|0),I=M,((o-(n[_>>2]|0)|0)/12|0)+-1|0}function VZ(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=n[l+4>>2]|0,n[o>>2]=n[l>>2],n[o+4>>2]=A,n[o+8>>2]=u}function VHe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;if(_=I,I=I+48|0,A=_+32|0,B=_+24|0,k=_,T=o+4|0,d=(((n[T>>2]|0)-(n[o>>2]|0)|0)/12|0)+1|0,m=KHe(o)|0,m>>>0<d>>>0)sn(o);else{M=n[o>>2]|0,ae=((n[o+8>>2]|0)-M|0)/12|0,G=ae<<1,JHe(k,ae>>>0<m>>>1>>>0?G>>>0<d>>>0?d:G:m,((n[T>>2]|0)-M|0)/12|0,o+8|0),T=k+8|0,m=n[T>>2]|0,d=n[l+4>>2]|0,u=n[u>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[A>>2]=n[B>>2],n[A+4>>2]=n[B+4>>2],VZ(m,A,u),n[T>>2]=(n[T>>2]|0)+12,zHe(o,k),ZHe(k),I=_;return}}function KHe(o){return o=o|0,357913941}function JHe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>357913941)Nt();else{d=Jt(l*12|0)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u*12|0)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l*12|0)}function zHe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function ZHe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~(((A+-12-l|0)>>>0)/12|0)*12|0)),o=n[o>>2]|0,o|0&&Et(o)}function KZ(o){o=o|0,eje(o)}function XHe(o){o=o|0,$He(o+24|0)}function $He(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~(((l+-12-A|0)>>>0)/12|0)*12|0)),Et(u))}function eje(o){o=o|0;var l=0;l=en()|0,tn(o,2,3,l,tje()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function tje(){return 1380}function rje(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,m=d+8|0,B=d,k=nje(o)|0,o=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=o,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],ije(l,m,u,A),I=d}function nje(o){return o=o|0,(n[(GM()|0)+24>>2]|0)+(o*12|0)|0}function ije(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;k=I,I=I+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,o=o+(l>>1)|0,l&1&&(d=n[(n[o>>2]|0)+d>>2]|0),np(m,u),m=ip(m,u)|0,sje(B,A),B=oje(B,A)|0,F2[d&15](o,m,B),I=k}function sje(o,l){o=o|0,l=l|0}function oje(o,l){return o=o|0,l=l|0,aje(l)|0}function aje(o){return o=o|0,(o|0)!=0|0}function lje(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=WM()|0,o=cje(u)|0,vn(m,l,d,o,uje(u,A)|0,A)}function WM(){var o=0,l=0;if(s[7864]|0||(zZ(10208),gr(51,10208,U|0)|0,l=7864,n[l>>2]=1,n[l+4>>2]=0),!(Ur(10208)|0)){o=10208,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));zZ(10208)}return 10208}function cje(o){return o=o|0,o|0}function uje(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,T=WM()|0,B=T+24|0,l=yr(l,4)|0,n[m>>2]=l,u=T+28|0,A=n[u>>2]|0,A>>>0<(n[T+32>>2]|0)>>>0?(JZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(fje(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function JZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function fje(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=Aje(o)|0,A>>>0<B>>>0)sn(o);else{T=n[o>>2]|0,M=(n[o+8>>2]|0)-T|0,_=M>>2,pje(d,M>>3>>>0<A>>>1>>>0?_>>>0<B>>>0?B:_:A,(n[m>>2]|0)-T>>3,o+8|0),B=d+8|0,JZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,hje(o,d),gje(d),I=k;return}}function Aje(o){return o=o|0,536870911}function pje(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Jt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function hje(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function gje(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&Et(o)}function zZ(o){o=o|0,yje(o)}function dje(o){o=o|0,mje(o+24|0)}function mje(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function yje(o){o=o|0;var l=0;l=en()|0,tn(o,1,24,l,Eje()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function Eje(){return 1392}function Ije(o,l){o=o|0,l=l|0,wje(n[(Cje(o)|0)>>2]|0,l)}function Cje(o){return o=o|0,(n[(WM()|0)+24>>2]|0)+(o<<3)|0}function wje(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,_Z(A,l),l=UZ(A,l)|0,op[o&127](l),I=u}function Bje(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=YM()|0,o=vje(u)|0,vn(m,l,d,o,Sje(u,A)|0,A)}function YM(){var o=0,l=0;if(s[7872]|0||(XZ(10244),gr(52,10244,U|0)|0,l=7872,n[l>>2]=1,n[l+4>>2]=0),!(Ur(10244)|0)){o=10244,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));XZ(10244)}return 10244}function vje(o){return o=o|0,o|0}function Sje(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,T=YM()|0,B=T+24|0,l=yr(l,4)|0,n[m>>2]=l,u=T+28|0,A=n[u>>2]|0,A>>>0<(n[T+32>>2]|0)>>>0?(ZZ(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(Dje(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function ZZ(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function Dje(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=bje(o)|0,A>>>0<B>>>0)sn(o);else{T=n[o>>2]|0,M=(n[o+8>>2]|0)-T|0,_=M>>2,Pje(d,M>>3>>>0<A>>>1>>>0?_>>>0<B>>>0?B:_:A,(n[m>>2]|0)-T>>3,o+8|0),B=d+8|0,ZZ(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,xje(o,d),kje(d),I=k;return}}function bje(o){return o=o|0,536870911}function Pje(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Jt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function xje(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function kje(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&Et(o)}function XZ(o){o=o|0,Rje(o)}function Qje(o){o=o|0,Tje(o+24|0)}function Tje(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function Rje(o){o=o|0;var l=0;l=en()|0,tn(o,1,16,l,Fje()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function Fje(){return 1400}function Nje(o){return o=o|0,Lje(n[(Oje(o)|0)>>2]|0)|0}function Oje(o){return o=o|0,(n[(YM()|0)+24>>2]|0)+(o<<3)|0}function Lje(o){return o=o|0,Mje(tx[o&7]()|0)|0}function Mje(o){return o=o|0,o|0}function _je(){var o=0;return s[7880]|0||(Yje(10280),gr(25,10280,U|0)|0,o=7880,n[o>>2]=1,n[o+4>>2]=0),10280}function Uje(o,l){o=o|0,l=l|0,n[o>>2]=Hje()|0,n[o+4>>2]=jje()|0,n[o+12>>2]=l,n[o+8>>2]=qje()|0,n[o+32>>2]=4}function Hje(){return 11711}function jje(){return 1356}function qje(){return jP()|0}function Gje(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(qh(A,896)|0)==512?u|0&&(Wje(u),Et(u)):l|0&&(Kg(l),Et(l))}function Wje(o){o=o|0,o=n[o+4>>2]|0,o|0&&Wh(o)}function Yje(o){o=o|0,_h(o)}function Vje(o){o=o|0,Kje(o,4920),Jje(o)|0,zje(o)|0}function Kje(o,l){o=o|0,l=l|0;var u=0;u=IZ()|0,n[o>>2]=u,m6e(u,l),Gh(n[o>>2]|0)}function Jje(o){o=o|0;var l=0;return l=n[o>>2]|0,ld(l,a6e()|0),o|0}function zje(o){o=o|0;var l=0;return l=n[o>>2]|0,ld(l,Zje()|0),o|0}function Zje(){var o=0;return s[7888]|0||($Z(10328),gr(53,10328,U|0)|0,o=7888,n[o>>2]=1,n[o+4>>2]=0),Ur(10328)|0||$Z(10328),10328}function ld(o,l){o=o|0,l=l|0,vn(o,0,l,0,0,0)}function $Z(o){o=o|0,e6e(o),cd(o,10)}function Xje(o){o=o|0,$je(o+24|0)}function $je(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function e6e(o){o=o|0;var l=0;l=en()|0,tn(o,5,1,l,i6e()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function t6e(o,l,u){o=o|0,l=l|0,u=+u,r6e(o,l,u)}function cd(o,l){o=o|0,l=l|0,n[o+20>>2]=l}function r6e(o,l,u){o=o|0,l=l|0,u=+u;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+16|0,m=A+8|0,k=A+13|0,d=A,B=A+12|0,np(k,l),n[m>>2]=ip(k,l)|0,Tf(B,u),E[d>>3]=+Rf(B,u),n6e(o,m,d),I=A}function n6e(o,l,u){o=o|0,l=l|0,u=u|0,Rl(o+8|0,n[l>>2]|0,+E[u>>3]),s[o+24>>0]=1}function i6e(){return 1404}function s6e(o,l){return o=o|0,l=+l,o6e(o,l)|0}function o6e(o,l){o=o|0,l=+l;var u=0,A=0,d=0,m=0,B=0,k=0,T=0;return A=I,I=I+16|0,m=A+4|0,B=A+8|0,k=A,d=Fl(8)|0,u=d,T=Jt(16)|0,np(m,o),o=ip(m,o)|0,Tf(B,l),Rl(T,o,+Rf(B,l)),B=u+4|0,n[B>>2]=T,o=Jt(8)|0,B=n[B>>2]|0,n[k>>2]=0,n[m>>2]=n[k>>2],QM(o,B,m),n[d>>2]=o,I=A,u|0}function a6e(){var o=0;return s[7896]|0||(eX(10364),gr(54,10364,U|0)|0,o=7896,n[o>>2]=1,n[o+4>>2]=0),Ur(10364)|0||eX(10364),10364}function eX(o){o=o|0,u6e(o),cd(o,55)}function l6e(o){o=o|0,c6e(o+24|0)}function c6e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function u6e(o){o=o|0;var l=0;l=en()|0,tn(o,5,4,l,h6e()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function f6e(o){o=o|0,A6e(o)}function A6e(o){o=o|0,p6e(o)}function p6e(o){o=o|0,tX(o+8|0),s[o+24>>0]=1}function tX(o){o=o|0,n[o>>2]=0,E[o+8>>3]=0}function h6e(){return 1424}function g6e(){return d6e()|0}function d6e(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0;return l=I,I=I+16|0,d=l+4|0,B=l,u=Fl(8)|0,o=u,A=Jt(16)|0,tX(A),m=o+4|0,n[m>>2]=A,A=Jt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],QM(A,m,d),n[u>>2]=A,I=l,o|0}function m6e(o,l){o=o|0,l=l|0,n[o>>2]=y6e()|0,n[o+4>>2]=E6e()|0,n[o+12>>2]=l,n[o+8>>2]=I6e()|0,n[o+32>>2]=5}function y6e(){return 11710}function E6e(){return 1416}function I6e(){return qP()|0}function C6e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(qh(A,896)|0)==512?u|0&&(w6e(u),Et(u)):l|0&&Et(l)}function w6e(o){o=o|0,o=n[o+4>>2]|0,o|0&&Wh(o)}function qP(){var o=0;return s[7904]|0||(n[2600]=B6e()|0,n[2601]=0,o=7904,n[o>>2]=1,n[o+4>>2]=0),10400}function B6e(){return n[357]|0}function v6e(o){o=o|0,S6e(o,4926),D6e(o)|0}function S6e(o,l){o=o|0,l=l|0;var u=0;u=qz()|0,n[o>>2]=u,L6e(u,l),Gh(n[o>>2]|0)}function D6e(o){o=o|0;var l=0;return l=n[o>>2]|0,ld(l,b6e()|0),o|0}function b6e(){var o=0;return s[7912]|0||(rX(10412),gr(56,10412,U|0)|0,o=7912,n[o>>2]=1,n[o+4>>2]=0),Ur(10412)|0||rX(10412),10412}function rX(o){o=o|0,k6e(o),cd(o,57)}function P6e(o){o=o|0,x6e(o+24|0)}function x6e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function k6e(o){o=o|0;var l=0;l=en()|0,tn(o,5,5,l,F6e()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function Q6e(o){o=o|0,T6e(o)}function T6e(o){o=o|0,R6e(o)}function R6e(o){o=o|0;var l=0,u=0;l=o+8|0,u=l+48|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(u|0));s[o+56>>0]=1}function F6e(){return 1432}function N6e(){return O6e()|0}function O6e(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0,k=0;B=I,I=I+16|0,o=B+4|0,l=B,u=Fl(8)|0,A=u,d=Jt(48)|0,m=d,k=m+48|0;do n[m>>2]=0,m=m+4|0;while((m|0)<(k|0));return m=A+4|0,n[m>>2]=d,k=Jt(8)|0,m=n[m>>2]|0,n[l>>2]=0,n[o>>2]=n[l>>2],Gz(k,m,o),n[u>>2]=k,I=B,A|0}function L6e(o,l){o=o|0,l=l|0,n[o>>2]=M6e()|0,n[o+4>>2]=_6e()|0,n[o+12>>2]=l,n[o+8>>2]=U6e()|0,n[o+32>>2]=6}function M6e(){return 11704}function _6e(){return 1436}function U6e(){return qP()|0}function H6e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(qh(A,896)|0)==512?u|0&&(j6e(u),Et(u)):l|0&&Et(l)}function j6e(o){o=o|0,o=n[o+4>>2]|0,o|0&&Wh(o)}function q6e(o){o=o|0,G6e(o,4933),W6e(o)|0,Y6e(o)|0}function G6e(o,l){o=o|0,l=l|0;var u=0;u=dqe()|0,n[o>>2]=u,mqe(u,l),Gh(n[o>>2]|0)}function W6e(o){o=o|0;var l=0;return l=n[o>>2]|0,ld(l,oqe()|0),o|0}function Y6e(o){o=o|0;var l=0;return l=n[o>>2]|0,ld(l,V6e()|0),o|0}function V6e(){var o=0;return s[7920]|0||(nX(10452),gr(58,10452,U|0)|0,o=7920,n[o>>2]=1,n[o+4>>2]=0),Ur(10452)|0||nX(10452),10452}function nX(o){o=o|0,z6e(o),cd(o,1)}function K6e(o){o=o|0,J6e(o+24|0)}function J6e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function z6e(o){o=o|0;var l=0;l=en()|0,tn(o,5,1,l,eqe()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function Z6e(o,l,u){o=o|0,l=+l,u=+u,X6e(o,l,u)}function X6e(o,l,u){o=o|0,l=+l,u=+u;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+32|0,m=A+8|0,k=A+17|0,d=A,B=A+16|0,Tf(k,l),E[m>>3]=+Rf(k,l),Tf(B,u),E[d>>3]=+Rf(B,u),$6e(o,m,d),I=A}function $6e(o,l,u){o=o|0,l=l|0,u=u|0,iX(o+8|0,+E[l>>3],+E[u>>3]),s[o+24>>0]=1}function iX(o,l,u){o=o|0,l=+l,u=+u,E[o>>3]=l,E[o+8>>3]=u}function eqe(){return 1472}function tqe(o,l){return o=+o,l=+l,rqe(o,l)|0}function rqe(o,l){o=+o,l=+l;var u=0,A=0,d=0,m=0,B=0,k=0,T=0;return A=I,I=I+16|0,B=A+4|0,k=A+8|0,T=A,d=Fl(8)|0,u=d,m=Jt(16)|0,Tf(B,o),o=+Rf(B,o),Tf(k,l),iX(m,o,+Rf(k,l)),k=u+4|0,n[k>>2]=m,m=Jt(8)|0,k=n[k>>2]|0,n[T>>2]=0,n[B>>2]=n[T>>2],sX(m,k,B),n[d>>2]=m,I=A,u|0}function sX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Jt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1452,n[u+12>>2]=l,n[o+4>>2]=u}function nqe(o){o=o|0,Zy(o),Et(o)}function iqe(o){o=o|0,o=n[o+12>>2]|0,o|0&&Et(o)}function sqe(o){o=o|0,Et(o)}function oqe(){var o=0;return s[7928]|0||(oX(10488),gr(59,10488,U|0)|0,o=7928,n[o>>2]=1,n[o+4>>2]=0),Ur(10488)|0||oX(10488),10488}function oX(o){o=o|0,cqe(o),cd(o,60)}function aqe(o){o=o|0,lqe(o+24|0)}function lqe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function cqe(o){o=o|0;var l=0;l=en()|0,tn(o,5,6,l,pqe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function uqe(o){o=o|0,fqe(o)}function fqe(o){o=o|0,Aqe(o)}function Aqe(o){o=o|0,aX(o+8|0),s[o+24>>0]=1}function aX(o){o=o|0,n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,n[o+12>>2]=0}function pqe(){return 1492}function hqe(){return gqe()|0}function gqe(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0;return l=I,I=I+16|0,d=l+4|0,B=l,u=Fl(8)|0,o=u,A=Jt(16)|0,aX(A),m=o+4|0,n[m>>2]=A,A=Jt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],sX(A,m,d),n[u>>2]=A,I=l,o|0}function dqe(){var o=0;return s[7936]|0||(Bqe(10524),gr(25,10524,U|0)|0,o=7936,n[o>>2]=1,n[o+4>>2]=0),10524}function mqe(o,l){o=o|0,l=l|0,n[o>>2]=yqe()|0,n[o+4>>2]=Eqe()|0,n[o+12>>2]=l,n[o+8>>2]=Iqe()|0,n[o+32>>2]=7}function yqe(){return 11700}function Eqe(){return 1484}function Iqe(){return qP()|0}function Cqe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(qh(A,896)|0)==512?u|0&&(wqe(u),Et(u)):l|0&&Et(l)}function wqe(o){o=o|0,o=n[o+4>>2]|0,o|0&&Wh(o)}function Bqe(o){o=o|0,_h(o)}function vqe(o,l,u){o=o|0,l=l|0,u=u|0,o=Bn(l)|0,l=Sqe(u)|0,u=Dqe(u,0)|0,rGe(o,l,u,VM()|0,0)}function Sqe(o){return o=o|0,o|0}function Dqe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,T=VM()|0,B=T+24|0,l=yr(l,4)|0,n[m>>2]=l,u=T+28|0,A=n[u>>2]|0,A>>>0<(n[T+32>>2]|0)>>>0?(cX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(Rqe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function VM(){var o=0,l=0;if(s[7944]|0||(lX(10568),gr(61,10568,U|0)|0,l=7944,n[l>>2]=1,n[l+4>>2]=0),!(Ur(10568)|0)){o=10568,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));lX(10568)}return 10568}function lX(o){o=o|0,xqe(o)}function bqe(o){o=o|0,Pqe(o+24|0)}function Pqe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function xqe(o){o=o|0;var l=0;l=en()|0,tn(o,1,17,l,aZ()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function kqe(o){return o=o|0,Tqe(n[(Qqe(o)|0)>>2]|0)|0}function Qqe(o){return o=o|0,(n[(VM()|0)+24>>2]|0)+(o<<3)|0}function Tqe(o){return o=o|0,HP(tx[o&7]()|0)|0}function cX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function Rqe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=Fqe(o)|0,A>>>0<B>>>0)sn(o);else{T=n[o>>2]|0,M=(n[o+8>>2]|0)-T|0,_=M>>2,Nqe(d,M>>3>>>0<A>>>1>>>0?_>>>0<B>>>0?B:_:A,(n[m>>2]|0)-T>>3,o+8|0),B=d+8|0,cX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,Oqe(o,d),Lqe(d),I=k;return}}function Fqe(o){return o=o|0,536870911}function Nqe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Jt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function Oqe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function Lqe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&Et(o)}function Mqe(){_qe()}function _qe(){Uqe(10604)}function Uqe(o){o=o|0,Hqe(o,4955)}function Hqe(o,l){o=o|0,l=l|0;var u=0;u=jqe()|0,n[o>>2]=u,qqe(u,l),Gh(n[o>>2]|0)}function jqe(){var o=0;return s[7952]|0||(Xqe(10612),gr(25,10612,U|0)|0,o=7952,n[o>>2]=1,n[o+4>>2]=0),10612}function qqe(o,l){o=o|0,l=l|0,n[o>>2]=Vqe()|0,n[o+4>>2]=Kqe()|0,n[o+12>>2]=l,n[o+8>>2]=Jqe()|0,n[o+32>>2]=8}function Gh(o){o=o|0;var l=0,u=0;l=I,I=I+16|0,u=l,Yy()|0,n[u>>2]=o,Gqe(10608,u),I=l}function Yy(){return s[11714]|0||(n[2652]=0,gr(62,10608,U|0)|0,s[11714]=1),10608}function Gqe(o,l){o=o|0,l=l|0;var u=0;u=Jt(8)|0,n[u+4>>2]=n[l>>2],n[u>>2]=n[o>>2],n[o>>2]=u}function Wqe(o){o=o|0,Yqe(o)}function Yqe(o){o=o|0;var l=0,u=0;if(l=n[o>>2]|0,l|0)do u=l,l=n[l>>2]|0,Et(u);while(l|0);n[o>>2]=0}function Vqe(){return 11715}function Kqe(){return 1496}function Jqe(){return jP()|0}function zqe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(qh(A,896)|0)==512?u|0&&(Zqe(u),Et(u)):l|0&&Et(l)}function Zqe(o){o=o|0,o=n[o+4>>2]|0,o|0&&Wh(o)}function Xqe(o){o=o|0,_h(o)}function $qe(o,l){o=o|0,l=l|0;var u=0,A=0;Yy()|0,u=n[2652]|0;e:do if(u|0){for(;A=n[u+4>>2]|0,!(A|0&&!(GX(KM(A)|0,o)|0));)if(u=n[u>>2]|0,!u)break e;eGe(A,l)}while(!1)}function KM(o){return o=o|0,n[o+12>>2]|0}function eGe(o,l){o=o|0,l=l|0;var u=0;o=o+36|0,u=n[o>>2]|0,u|0&&(Df(u),Et(u)),u=Jt(4)|0,FP(u,l),n[o>>2]=u}function JM(){return s[11716]|0||(n[2664]=0,gr(63,10656,U|0)|0,s[11716]=1),10656}function uX(){var o=0;return s[11717]|0?o=n[2665]|0:(tGe(),n[2665]=1504,s[11717]=1,o=1504),o|0}function tGe(){s[11740]|0||(s[11718]=yr(yr(8,0)|0,0)|0,s[11719]=yr(yr(0,0)|0,0)|0,s[11720]=yr(yr(0,16)|0,0)|0,s[11721]=yr(yr(8,0)|0,0)|0,s[11722]=yr(yr(0,0)|0,0)|0,s[11723]=yr(yr(8,0)|0,0)|0,s[11724]=yr(yr(0,0)|0,0)|0,s[11725]=yr(yr(8,0)|0,0)|0,s[11726]=yr(yr(0,0)|0,0)|0,s[11727]=yr(yr(8,0)|0,0)|0,s[11728]=yr(yr(0,0)|0,0)|0,s[11729]=yr(yr(0,0)|0,32)|0,s[11730]=yr(yr(0,0)|0,32)|0,s[11740]=1)}function fX(){return 1572}function rGe(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,T=0,_=0,M=0;m=I,I=I+32|0,M=m+16|0,_=m+12|0,T=m+8|0,k=m+4|0,B=m,n[M>>2]=o,n[_>>2]=l,n[T>>2]=u,n[k>>2]=A,n[B>>2]=d,JM()|0,nGe(10656,M,_,T,k,B),I=m}function nGe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0;B=Jt(24)|0,Uz(B+4|0,n[l>>2]|0,n[u>>2]|0,n[A>>2]|0,n[d>>2]|0,n[m>>2]|0),n[B>>2]=n[o>>2],n[o>>2]=B}function AX(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0,We=0,Le=0,Qe=0,tt=0,Ze=0,ct=0;if(ct=I,I=I+32|0,Le=ct+20|0,Qe=ct+8|0,tt=ct+4|0,Ze=ct,l=n[l>>2]|0,l|0){We=Le+4|0,T=Le+8|0,_=Qe+4|0,M=Qe+8|0,G=Qe+8|0,ae=Le+8|0;do{if(B=l+4|0,k=zM(B)|0,k|0){if(d=P2(k)|0,n[Le>>2]=0,n[We>>2]=0,n[T>>2]=0,A=(x2(k)|0)+1|0,iGe(Le,A),A|0)for(;A=A+-1|0,xu(Qe,n[d>>2]|0),m=n[We>>2]|0,m>>>0<(n[ae>>2]|0)>>>0?(n[m>>2]=n[Qe>>2],n[We>>2]=(n[We>>2]|0)+4):ZM(Le,Qe),A;)d=d+4|0;A=k2(k)|0,n[Qe>>2]=0,n[_>>2]=0,n[M>>2]=0;e:do if(n[A>>2]|0)for(d=0,m=0;;){if((d|0)==(m|0)?sGe(Qe,A):(n[d>>2]=n[A>>2],n[_>>2]=(n[_>>2]|0)+4),A=A+4|0,!(n[A>>2]|0))break e;d=n[_>>2]|0,m=n[G>>2]|0}while(!1);n[tt>>2]=GP(B)|0,n[Ze>>2]=Ur(k)|0,oGe(u,o,tt,Ze,Le,Qe),XM(Qe),sp(Le)}l=n[l>>2]|0}while(l|0)}I=ct}function zM(o){return o=o|0,n[o+12>>2]|0}function P2(o){return o=o|0,n[o+12>>2]|0}function x2(o){return o=o|0,n[o+16>>2]|0}function iGe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;d=I,I=I+32|0,u=d,A=n[o>>2]|0,(n[o+8>>2]|0)-A>>2>>>0<l>>>0&&(IX(u,l,(n[o+4>>2]|0)-A>>2,o+8|0),CX(o,u),wX(u)),I=d}function ZM(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0;if(B=I,I=I+32|0,u=B,A=o+4|0,d=((n[A>>2]|0)-(n[o>>2]|0)>>2)+1|0,m=EX(o)|0,m>>>0<d>>>0)sn(o);else{k=n[o>>2]|0,_=(n[o+8>>2]|0)-k|0,T=_>>1,IX(u,_>>2>>>0<m>>>1>>>0?T>>>0<d>>>0?d:T:m,(n[A>>2]|0)-k>>2,o+8|0),m=u+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,CX(o,u),wX(u),I=B;return}}function k2(o){return o=o|0,n[o+8>>2]|0}function sGe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0;if(B=I,I=I+32|0,u=B,A=o+4|0,d=((n[A>>2]|0)-(n[o>>2]|0)>>2)+1|0,m=yX(o)|0,m>>>0<d>>>0)sn(o);else{k=n[o>>2]|0,_=(n[o+8>>2]|0)-k|0,T=_>>1,SGe(u,_>>2>>>0<m>>>1>>>0?T>>>0<d>>>0?d:T:m,(n[A>>2]|0)-k>>2,o+8|0),m=u+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,DGe(o,u),bGe(u),I=B;return}}function GP(o){return o=o|0,n[o>>2]|0}function oGe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,aGe(o,l,u,A,d,m)}function XM(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-4-A|0)>>>2)<<2)),Et(u))}function sp(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-4-A|0)>>>2)<<2)),Et(u))}function aGe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,T=0,_=0,M=0,G=0;B=I,I=I+48|0,M=B+40|0,k=B+32|0,G=B+24|0,T=B+12|0,_=B,Nl(k),o=Ms(o)|0,n[G>>2]=n[l>>2],u=n[u>>2]|0,A=n[A>>2]|0,$M(T,d),lGe(_,m),n[M>>2]=n[G>>2],cGe(o,M,u,A,T,_),XM(_),sp(T),Ol(k),I=B}function $M(o,l){o=o|0,l=l|0;var u=0,A=0;n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,u=l+4|0,A=(n[u>>2]|0)-(n[l>>2]|0)>>2,A|0&&(BGe(o,A),vGe(o,n[l>>2]|0,n[u>>2]|0,A))}function lGe(o,l){o=o|0,l=l|0;var u=0,A=0;n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,u=l+4|0,A=(n[u>>2]|0)-(n[l>>2]|0)>>2,A|0&&(CGe(o,A),wGe(o,n[l>>2]|0,n[u>>2]|0,A))}function cGe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,T=0,_=0,M=0,G=0;B=I,I=I+32|0,M=B+28|0,G=B+24|0,k=B+12|0,T=B,_=ma(uGe()|0)|0,n[G>>2]=n[l>>2],n[M>>2]=n[G>>2],l=ud(M)|0,u=pX(u)|0,A=e_(A)|0,n[k>>2]=n[d>>2],M=d+4|0,n[k+4>>2]=n[M>>2],G=d+8|0,n[k+8>>2]=n[G>>2],n[G>>2]=0,n[M>>2]=0,n[d>>2]=0,d=t_(k)|0,n[T>>2]=n[m>>2],M=m+4|0,n[T+4>>2]=n[M>>2],G=m+8|0,n[T+8>>2]=n[G>>2],n[G>>2]=0,n[M>>2]=0,n[m>>2]=0,uu(0,_|0,o|0,l|0,u|0,A|0,d|0,fGe(T)|0)|0,XM(T),sp(k),I=B}function uGe(){var o=0;return s[7968]|0||(EGe(10708),o=7968,n[o>>2]=1,n[o+4>>2]=0),10708}function ud(o){return o=o|0,gX(o)|0}function pX(o){return o=o|0,hX(o)|0}function e_(o){return o=o|0,HP(o)|0}function t_(o){return o=o|0,pGe(o)|0}function fGe(o){return o=o|0,AGe(o)|0}function AGe(o){o=o|0;var l=0,u=0,A=0;if(A=(n[o+4>>2]|0)-(n[o>>2]|0)|0,u=A>>2,A=Fl(A+4|0)|0,n[A>>2]=u,u|0){l=0;do n[A+4+(l<<2)>>2]=hX(n[(n[o>>2]|0)+(l<<2)>>2]|0)|0,l=l+1|0;while((l|0)!=(u|0))}return A|0}function hX(o){return o=o|0,o|0}function pGe(o){o=o|0;var l=0,u=0,A=0;if(A=(n[o+4>>2]|0)-(n[o>>2]|0)|0,u=A>>2,A=Fl(A+4|0)|0,n[A>>2]=u,u|0){l=0;do n[A+4+(l<<2)>>2]=gX((n[o>>2]|0)+(l<<2)|0)|0,l=l+1|0;while((l|0)!=(u|0))}return A|0}function gX(o){o=o|0;var l=0,u=0,A=0,d=0;return d=I,I=I+32|0,l=d+12|0,u=d,A=pM(dX()|0)|0,A?(hM(l,A),gM(u,l),JWe(o,u),o=dM(l)|0):o=hGe(o)|0,I=d,o|0}function dX(){var o=0;return s[7960]|0||(yGe(10664),gr(25,10664,U|0)|0,o=7960,n[o>>2]=1,n[o+4>>2]=0),10664}function hGe(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0;return u=I,I=I+16|0,d=u+4|0,B=u,A=Fl(8)|0,l=A,k=Jt(4)|0,n[k>>2]=n[o>>2],m=l+4|0,n[m>>2]=k,o=Jt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],mX(o,m,d),n[A>>2]=o,I=u,l|0}function mX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Jt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1656,n[u+12>>2]=l,n[o+4>>2]=u}function gGe(o){o=o|0,Zy(o),Et(o)}function dGe(o){o=o|0,o=n[o+12>>2]|0,o|0&&Et(o)}function mGe(o){o=o|0,Et(o)}function yGe(o){o=o|0,_h(o)}function EGe(o){o=o|0,Ro(o,IGe()|0,5)}function IGe(){return 1676}function CGe(o,l){o=o|0,l=l|0;var u=0;if((yX(o)|0)>>>0<l>>>0&&sn(o),l>>>0>1073741823)Nt();else{u=Jt(l<<2)|0,n[o+4>>2]=u,n[o>>2]=u,n[o+8>>2]=u+(l<<2);return}}function wGe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,A=o+4|0,o=u-l|0,(o|0)>0&&(Qr(n[A>>2]|0,l|0,o|0)|0,n[A>>2]=(n[A>>2]|0)+(o>>>2<<2))}function yX(o){return o=o|0,1073741823}function BGe(o,l){o=o|0,l=l|0;var u=0;if((EX(o)|0)>>>0<l>>>0&&sn(o),l>>>0>1073741823)Nt();else{u=Jt(l<<2)|0,n[o+4>>2]=u,n[o>>2]=u,n[o+8>>2]=u+(l<<2);return}}function vGe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,A=o+4|0,o=u-l|0,(o|0)>0&&(Qr(n[A>>2]|0,l|0,o|0)|0,n[A>>2]=(n[A>>2]|0)+(o>>>2<<2))}function EX(o){return o=o|0,1073741823}function SGe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>1073741823)Nt();else{d=Jt(l<<2)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<2)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<2)}function DGe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function bGe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-4-l|0)>>>2)<<2)),o=n[o>>2]|0,o|0&&Et(o)}function IX(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>1073741823)Nt();else{d=Jt(l<<2)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<2)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<2)}function CX(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function wX(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-4-l|0)>>>2)<<2)),o=n[o>>2]|0,o|0&&Et(o)}function PGe(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0,We=0,Le=0,Qe=0;if(Qe=I,I=I+32|0,M=Qe+20|0,G=Qe+12|0,_=Qe+16|0,ae=Qe+4|0,We=Qe,Le=Qe+8|0,k=uX()|0,m=n[k>>2]|0,B=n[m>>2]|0,B|0)for(T=n[k+8>>2]|0,k=n[k+4>>2]|0;xu(M,B),xGe(o,M,k,T),m=m+4|0,B=n[m>>2]|0,B;)T=T+1|0,k=k+1|0;if(m=fX()|0,B=n[m>>2]|0,B|0)do xu(M,B),n[G>>2]=n[m+4>>2],kGe(l,M,G),m=m+8|0,B=n[m>>2]|0;while(B|0);if(m=n[(Yy()|0)>>2]|0,m|0)do l=n[m+4>>2]|0,xu(M,n[(Vy(l)|0)>>2]|0),n[G>>2]=KM(l)|0,QGe(u,M,G),m=n[m>>2]|0;while(m|0);if(xu(_,0),m=JM()|0,n[M>>2]=n[_>>2],AX(M,m,d),m=n[(Yy()|0)>>2]|0,m|0){o=M+4|0,l=M+8|0,u=M+8|0;do{if(T=n[m+4>>2]|0,xu(G,n[(Vy(T)|0)>>2]|0),TGe(ae,BX(T)|0),B=n[ae>>2]|0,B|0){n[M>>2]=0,n[o>>2]=0,n[l>>2]=0;do xu(We,n[(Vy(n[B+4>>2]|0)|0)>>2]|0),k=n[o>>2]|0,k>>>0<(n[u>>2]|0)>>>0?(n[k>>2]=n[We>>2],n[o>>2]=(n[o>>2]|0)+4):ZM(M,We),B=n[B>>2]|0;while(B|0);RGe(A,G,M),sp(M)}n[Le>>2]=n[G>>2],_=vX(T)|0,n[M>>2]=n[Le>>2],AX(M,_,d),Yz(ae),m=n[m>>2]|0}while(m|0)}I=Qe}function xGe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,WGe(o,l,u,A)}function kGe(o,l,u){o=o|0,l=l|0,u=u|0,GGe(o,l,u)}function Vy(o){return o=o|0,o|0}function QGe(o,l,u){o=o|0,l=l|0,u=u|0,UGe(o,l,u)}function BX(o){return o=o|0,o+16|0}function TGe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0;if(m=I,I=I+16|0,d=m+8|0,u=m,n[o>>2]=0,A=n[l>>2]|0,n[d>>2]=A,n[u>>2]=o,u=_Ge(u)|0,A|0){if(A=Jt(12)|0,B=(SX(d)|0)+4|0,o=n[B+4>>2]|0,l=A+4|0,n[l>>2]=n[B>>2],n[l+4>>2]=o,l=n[n[d>>2]>>2]|0,n[d>>2]=l,!l)o=A;else for(l=A;o=Jt(12)|0,T=(SX(d)|0)+4|0,k=n[T+4>>2]|0,B=o+4|0,n[B>>2]=n[T>>2],n[B+4>>2]=k,n[l>>2]=o,B=n[n[d>>2]>>2]|0,n[d>>2]=B,B;)l=o;n[o>>2]=n[u>>2],n[u>>2]=A}I=m}function RGe(o,l,u){o=o|0,l=l|0,u=u|0,FGe(o,l,u)}function vX(o){return o=o|0,o+24|0}function FGe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+32|0,B=A+24|0,d=A+16|0,k=A+12|0,m=A,Nl(d),o=Ms(o)|0,n[k>>2]=n[l>>2],$M(m,u),n[B>>2]=n[k>>2],NGe(o,B,m),sp(m),Ol(d),I=A}function NGe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=I,I=I+32|0,B=A+16|0,k=A+12|0,d=A,m=ma(OGe()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=ud(B)|0,n[d>>2]=n[u>>2],B=u+4|0,n[d+4>>2]=n[B>>2],k=u+8|0,n[d+8>>2]=n[k>>2],n[k>>2]=0,n[B>>2]=0,n[u>>2]=0,Fs(0,m|0,o|0,l|0,t_(d)|0)|0,sp(d),I=A}function OGe(){var o=0;return s[7976]|0||(LGe(10720),o=7976,n[o>>2]=1,n[o+4>>2]=0),10720}function LGe(o){o=o|0,Ro(o,MGe()|0,2)}function MGe(){return 1732}function _Ge(o){return o=o|0,n[o>>2]|0}function SX(o){return o=o|0,n[o>>2]|0}function UGe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+32|0,m=A+16|0,d=A+8|0,B=A,Nl(d),o=Ms(o)|0,n[B>>2]=n[l>>2],u=n[u>>2]|0,n[m>>2]=n[B>>2],DX(o,m,u),Ol(d),I=A}function DX(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+16|0,m=A+4|0,B=A,d=ma(HGe()|0)|0,n[B>>2]=n[l>>2],n[m>>2]=n[B>>2],l=ud(m)|0,Fs(0,d|0,o|0,l|0,pX(u)|0)|0,I=A}function HGe(){var o=0;return s[7984]|0||(jGe(10732),o=7984,n[o>>2]=1,n[o+4>>2]=0),10732}function jGe(o){o=o|0,Ro(o,qGe()|0,2)}function qGe(){return 1744}function GGe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;A=I,I=I+32|0,m=A+16|0,d=A+8|0,B=A,Nl(d),o=Ms(o)|0,n[B>>2]=n[l>>2],u=n[u>>2]|0,n[m>>2]=n[B>>2],DX(o,m,u),Ol(d),I=A}function WGe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+32|0,B=d+16|0,m=d+8|0,k=d,Nl(m),o=Ms(o)|0,n[k>>2]=n[l>>2],u=s[u>>0]|0,A=s[A>>0]|0,n[B>>2]=n[k>>2],YGe(o,B,u,A),Ol(m),I=d}function YGe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,B=d+4|0,k=d,m=ma(VGe()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=ud(B)|0,u=Ky(u)|0,Mi(0,m|0,o|0,l|0,u|0,Ky(A)|0)|0,I=d}function VGe(){var o=0;return s[7992]|0||(JGe(10744),o=7992,n[o>>2]=1,n[o+4>>2]=0),10744}function Ky(o){return o=o|0,KGe(o)|0}function KGe(o){return o=o|0,o&255|0}function JGe(o){o=o|0,Ro(o,zGe()|0,3)}function zGe(){return 1756}function ZGe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;switch(ae=I,I=I+32|0,k=ae+8|0,T=ae+4|0,_=ae+20|0,M=ae,IM(o,0),A=KWe(l)|0,n[k>>2]=0,G=k+4|0,n[G>>2]=0,n[k+8>>2]=0,A<<24>>24){case 0:{s[_>>0]=0,XGe(T,u,_),WP(o,T)|0,bf(T);break}case 8:{G=a_(l)|0,s[_>>0]=8,xu(M,n[G+4>>2]|0),$Ge(T,u,_,M,G+8|0),WP(o,T)|0,bf(T);break}case 9:{if(m=a_(l)|0,l=n[m+4>>2]|0,l|0)for(B=k+8|0,d=m+12|0;l=l+-1|0,xu(T,n[d>>2]|0),A=n[G>>2]|0,A>>>0<(n[B>>2]|0)>>>0?(n[A>>2]=n[T>>2],n[G>>2]=(n[G>>2]|0)+4):ZM(k,T),l;)d=d+4|0;s[_>>0]=9,xu(M,n[m+8>>2]|0),e5e(T,u,_,M,k),WP(o,T)|0,bf(T);break}default:G=a_(l)|0,s[_>>0]=A,xu(M,n[G+4>>2]|0),t5e(T,u,_,M),WP(o,T)|0,bf(T)}sp(k),I=ae}function XGe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;A=I,I=I+16|0,d=A,Nl(d),l=Ms(l)|0,h5e(o,l,s[u>>0]|0),Ol(d),I=A}function WP(o,l){o=o|0,l=l|0;var u=0;return u=n[o>>2]|0,u|0&&Oa(u|0),n[o>>2]=n[l>>2],n[l>>2]=0,o|0}function $Ge(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,T=0;m=I,I=I+32|0,k=m+16|0,B=m+8|0,T=m,Nl(B),l=Ms(l)|0,u=s[u>>0]|0,n[T>>2]=n[A>>2],d=n[d>>2]|0,n[k>>2]=n[T>>2],u5e(o,l,u,k,d),Ol(B),I=m}function e5e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,T=0,_=0;m=I,I=I+32|0,T=m+24|0,B=m+16|0,_=m+12|0,k=m,Nl(B),l=Ms(l)|0,u=s[u>>0]|0,n[_>>2]=n[A>>2],$M(k,d),n[T>>2]=n[_>>2],o5e(o,l,u,T,k),sp(k),Ol(B),I=m}function t5e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+32|0,B=d+16|0,m=d+8|0,k=d,Nl(m),l=Ms(l)|0,u=s[u>>0]|0,n[k>>2]=n[A>>2],n[B>>2]=n[k>>2],r5e(o,l,u,B),Ol(m),I=d}function r5e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0,B=0,k=0;d=I,I=I+16|0,m=d+4|0,k=d,B=ma(n5e()|0)|0,u=Ky(u)|0,n[k>>2]=n[A>>2],n[m>>2]=n[k>>2],YP(o,Fs(0,B|0,l|0,u|0,ud(m)|0)|0),I=d}function n5e(){var o=0;return s[8e3]|0||(i5e(10756),o=8e3,n[o>>2]=1,n[o+4>>2]=0),10756}function YP(o,l){o=o|0,l=l|0,IM(o,l)}function i5e(o){o=o|0,Ro(o,s5e()|0,2)}function s5e(){return 1772}function o5e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,T=0,_=0;m=I,I=I+32|0,T=m+16|0,_=m+12|0,B=m,k=ma(a5e()|0)|0,u=Ky(u)|0,n[_>>2]=n[A>>2],n[T>>2]=n[_>>2],A=ud(T)|0,n[B>>2]=n[d>>2],T=d+4|0,n[B+4>>2]=n[T>>2],_=d+8|0,n[B+8>>2]=n[_>>2],n[_>>2]=0,n[T>>2]=0,n[d>>2]=0,YP(o,Mi(0,k|0,l|0,u|0,A|0,t_(B)|0)|0),sp(B),I=m}function a5e(){var o=0;return s[8008]|0||(l5e(10768),o=8008,n[o>>2]=1,n[o+4>>2]=0),10768}function l5e(o){o=o|0,Ro(o,c5e()|0,3)}function c5e(){return 1784}function u5e(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,T=0;m=I,I=I+16|0,k=m+4|0,T=m,B=ma(f5e()|0)|0,u=Ky(u)|0,n[T>>2]=n[A>>2],n[k>>2]=n[T>>2],A=ud(k)|0,YP(o,Mi(0,B|0,l|0,u|0,A|0,e_(d)|0)|0),I=m}function f5e(){var o=0;return s[8016]|0||(A5e(10780),o=8016,n[o>>2]=1,n[o+4>>2]=0),10780}function A5e(o){o=o|0,Ro(o,p5e()|0,3)}function p5e(){return 1800}function h5e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;A=ma(g5e()|0)|0,YP(o,dn(0,A|0,l|0,Ky(u)|0)|0)}function g5e(){var o=0;return s[8024]|0||(d5e(10792),o=8024,n[o>>2]=1,n[o+4>>2]=0),10792}function d5e(o){o=o|0,Ro(o,m5e()|0,1)}function m5e(){return 1816}function y5e(){E5e(),I5e(),C5e()}function E5e(){n[2702]=e$(65536)|0}function I5e(){H5e(10856)}function C5e(){w5e(10816)}function w5e(o){o=o|0,B5e(o,5044),v5e(o)|0}function B5e(o,l){o=o|0,l=l|0;var u=0;u=dX()|0,n[o>>2]=u,N5e(u,l),Gh(n[o>>2]|0)}function v5e(o){o=o|0;var l=0;return l=n[o>>2]|0,ld(l,S5e()|0),o|0}function S5e(){var o=0;return s[8032]|0||(bX(10820),gr(64,10820,U|0)|0,o=8032,n[o>>2]=1,n[o+4>>2]=0),Ur(10820)|0||bX(10820),10820}function bX(o){o=o|0,P5e(o),cd(o,25)}function D5e(o){o=o|0,b5e(o+24|0)}function b5e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function P5e(o){o=o|0;var l=0;l=en()|0,tn(o,5,18,l,T5e()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function x5e(o,l){o=o|0,l=l|0,k5e(o,l)}function k5e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;u=I,I=I+16|0,A=u,d=u+4|0,od(d,l),n[A>>2]=ad(d,l)|0,Q5e(o,A),I=u}function Q5e(o,l){o=o|0,l=l|0,PX(o+4|0,n[l>>2]|0),s[o+8>>0]=1}function PX(o,l){o=o|0,l=l|0,n[o>>2]=l}function T5e(){return 1824}function R5e(o){return o=o|0,F5e(o)|0}function F5e(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0;return u=I,I=I+16|0,d=u+4|0,B=u,A=Fl(8)|0,l=A,k=Jt(4)|0,od(d,o),PX(k,ad(d,o)|0),m=l+4|0,n[m>>2]=k,o=Jt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],mX(o,m,d),n[A>>2]=o,I=u,l|0}function Fl(o){o=o|0;var l=0,u=0;return o=o+7&-8,o>>>0<=32768&&(l=n[2701]|0,o>>>0<=(65536-l|0)>>>0)?(u=(n[2702]|0)+l|0,n[2701]=l+o,o=u):(o=e$(o+8|0)|0,n[o>>2]=n[2703],n[2703]=o,o=o+8|0),o|0}function N5e(o,l){o=o|0,l=l|0,n[o>>2]=O5e()|0,n[o+4>>2]=L5e()|0,n[o+12>>2]=l,n[o+8>>2]=M5e()|0,n[o+32>>2]=9}function O5e(){return 11744}function L5e(){return 1832}function M5e(){return qP()|0}function _5e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(qh(A,896)|0)==512?u|0&&(U5e(u),Et(u)):l|0&&Et(l)}function U5e(o){o=o|0,o=n[o+4>>2]|0,o|0&&Wh(o)}function H5e(o){o=o|0,j5e(o,5052),q5e(o)|0,G5e(o,5058,26)|0,W5e(o,5069,1)|0,Y5e(o,5077,10)|0,V5e(o,5087,19)|0,K5e(o,5094,27)|0}function j5e(o,l){o=o|0,l=l|0;var u=0;u=UWe()|0,n[o>>2]=u,HWe(u,l),Gh(n[o>>2]|0)}function q5e(o){o=o|0;var l=0;return l=n[o>>2]|0,ld(l,DWe()|0),o|0}function G5e(o,l,u){return o=o|0,l=l|0,u=u|0,lWe(o,Bn(l)|0,u,0),o|0}function W5e(o,l,u){return o=o|0,l=l|0,u=u|0,V9e(o,Bn(l)|0,u,0),o|0}function Y5e(o,l,u){return o=o|0,l=l|0,u=u|0,S9e(o,Bn(l)|0,u,0),o|0}function V5e(o,l,u){return o=o|0,l=l|0,u=u|0,u9e(o,Bn(l)|0,u,0),o|0}function xX(o,l){o=o|0,l=l|0;var u=0,A=0;e:for(;;){for(u=n[2703]|0;;){if((u|0)==(l|0))break e;if(A=n[u>>2]|0,n[2703]=A,!u)u=A;else break}Et(u)}n[2701]=o}function K5e(o,l,u){return o=o|0,l=l|0,u=u|0,J5e(o,Bn(l)|0,u,0),o|0}function J5e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=r_()|0,o=z5e(u)|0,vn(m,l,d,o,Z5e(u,A)|0,A)}function r_(){var o=0,l=0;if(s[8040]|0||(QX(10860),gr(65,10860,U|0)|0,l=8040,n[l>>2]=1,n[l+4>>2]=0),!(Ur(10860)|0)){o=10860,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));QX(10860)}return 10860}function z5e(o){return o=o|0,o|0}function Z5e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,T=r_()|0,B=T+24|0,l=yr(l,4)|0,n[m>>2]=l,u=T+28|0,A=n[u>>2]|0,A>>>0<(n[T+32>>2]|0)>>>0?(kX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(X5e(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function kX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function X5e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=$5e(o)|0,A>>>0<B>>>0)sn(o);else{T=n[o>>2]|0,M=(n[o+8>>2]|0)-T|0,_=M>>2,e9e(d,M>>3>>>0<A>>>1>>>0?_>>>0<B>>>0?B:_:A,(n[m>>2]|0)-T>>3,o+8|0),B=d+8|0,kX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,t9e(o,d),r9e(d),I=k;return}}function $5e(o){return o=o|0,536870911}function e9e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Jt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function t9e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function r9e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&Et(o)}function QX(o){o=o|0,s9e(o)}function n9e(o){o=o|0,i9e(o+24|0)}function i9e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function s9e(o){o=o|0;var l=0;l=en()|0,tn(o,1,11,l,o9e()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function o9e(){return 1840}function a9e(o,l,u){o=o|0,l=l|0,u=u|0,c9e(n[(l9e(o)|0)>>2]|0,l,u)}function l9e(o){return o=o|0,(n[(r_()|0)+24>>2]|0)+(o<<3)|0}function c9e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;A=I,I=I+16|0,m=A+1|0,d=A,od(m,l),l=ad(m,l)|0,od(d,u),u=ad(d,u)|0,ap[o&31](l,u),I=A}function u9e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=n_()|0,o=f9e(u)|0,vn(m,l,d,o,A9e(u,A)|0,A)}function n_(){var o=0,l=0;if(s[8048]|0||(RX(10896),gr(66,10896,U|0)|0,l=8048,n[l>>2]=1,n[l+4>>2]=0),!(Ur(10896)|0)){o=10896,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));RX(10896)}return 10896}function f9e(o){return o=o|0,o|0}function A9e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,T=n_()|0,B=T+24|0,l=yr(l,4)|0,n[m>>2]=l,u=T+28|0,A=n[u>>2]|0,A>>>0<(n[T+32>>2]|0)>>>0?(TX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(p9e(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function TX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function p9e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=h9e(o)|0,A>>>0<B>>>0)sn(o);else{T=n[o>>2]|0,M=(n[o+8>>2]|0)-T|0,_=M>>2,g9e(d,M>>3>>>0<A>>>1>>>0?_>>>0<B>>>0?B:_:A,(n[m>>2]|0)-T>>3,o+8|0),B=d+8|0,TX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,d9e(o,d),m9e(d),I=k;return}}function h9e(o){return o=o|0,536870911}function g9e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Jt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function d9e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function m9e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&Et(o)}function RX(o){o=o|0,I9e(o)}function y9e(o){o=o|0,E9e(o+24|0)}function E9e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function I9e(o){o=o|0;var l=0;l=en()|0,tn(o,1,11,l,C9e()|0,1),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function C9e(){return 1852}function w9e(o,l){return o=o|0,l=l|0,v9e(n[(B9e(o)|0)>>2]|0,l)|0}function B9e(o){return o=o|0,(n[(n_()|0)+24>>2]|0)+(o<<3)|0}function v9e(o,l){o=o|0,l=l|0;var u=0,A=0;return u=I,I=I+16|0,A=u,od(A,l),l=ad(A,l)|0,l=HP(hd[o&31](l)|0)|0,I=u,l|0}function S9e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=i_()|0,o=D9e(u)|0,vn(m,l,d,o,b9e(u,A)|0,A)}function i_(){var o=0,l=0;if(s[8056]|0||(NX(10932),gr(67,10932,U|0)|0,l=8056,n[l>>2]=1,n[l+4>>2]=0),!(Ur(10932)|0)){o=10932,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));NX(10932)}return 10932}function D9e(o){return o=o|0,o|0}function b9e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,T=i_()|0,B=T+24|0,l=yr(l,4)|0,n[m>>2]=l,u=T+28|0,A=n[u>>2]|0,A>>>0<(n[T+32>>2]|0)>>>0?(FX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(P9e(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function FX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function P9e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=x9e(o)|0,A>>>0<B>>>0)sn(o);else{T=n[o>>2]|0,M=(n[o+8>>2]|0)-T|0,_=M>>2,k9e(d,M>>3>>>0<A>>>1>>>0?_>>>0<B>>>0?B:_:A,(n[m>>2]|0)-T>>3,o+8|0),B=d+8|0,FX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,Q9e(o,d),T9e(d),I=k;return}}function x9e(o){return o=o|0,536870911}function k9e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Jt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function Q9e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function T9e(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&Et(o)}function NX(o){o=o|0,N9e(o)}function R9e(o){o=o|0,F9e(o+24|0)}function F9e(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function N9e(o){o=o|0;var l=0;l=en()|0,tn(o,1,7,l,O9e()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function O9e(){return 1860}function L9e(o,l,u){return o=o|0,l=l|0,u=u|0,_9e(n[(M9e(o)|0)>>2]|0,l,u)|0}function M9e(o){return o=o|0,(n[(i_()|0)+24>>2]|0)+(o<<3)|0}function _9e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0;return A=I,I=I+32|0,B=A+12|0,m=A+8|0,k=A,T=A+16|0,d=A+4|0,U9e(T,l),H9e(k,T,l),Uh(d,u),u=Hh(d,u)|0,n[B>>2]=n[k>>2],F2[o&15](m,B,u),u=j9e(m)|0,bf(m),jh(d),I=A,u|0}function U9e(o,l){o=o|0,l=l|0}function H9e(o,l,u){o=o|0,l=l|0,u=u|0,q9e(o,u)}function j9e(o){return o=o|0,Ms(o)|0}function q9e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0;d=I,I=I+16|0,u=d,A=l,A&1?(G9e(u,0),Me(A|0,u|0)|0,W9e(o,u),Y9e(u)):n[o>>2]=n[l>>2],I=d}function G9e(o,l){o=o|0,l=l|0,bu(o,l),n[o+4>>2]=0,s[o+8>>0]=0}function W9e(o,l){o=o|0,l=l|0,n[o>>2]=n[l+4>>2]}function Y9e(o){o=o|0,s[o+8>>0]=0}function V9e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=s_()|0,o=K9e(u)|0,vn(m,l,d,o,J9e(u,A)|0,A)}function s_(){var o=0,l=0;if(s[8064]|0||(LX(10968),gr(68,10968,U|0)|0,l=8064,n[l>>2]=1,n[l+4>>2]=0),!(Ur(10968)|0)){o=10968,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));LX(10968)}return 10968}function K9e(o){return o=o|0,o|0}function J9e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,T=s_()|0,B=T+24|0,l=yr(l,4)|0,n[m>>2]=l,u=T+28|0,A=n[u>>2]|0,A>>>0<(n[T+32>>2]|0)>>>0?(OX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(z9e(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function OX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function z9e(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=Z9e(o)|0,A>>>0<B>>>0)sn(o);else{T=n[o>>2]|0,M=(n[o+8>>2]|0)-T|0,_=M>>2,X9e(d,M>>3>>>0<A>>>1>>>0?_>>>0<B>>>0?B:_:A,(n[m>>2]|0)-T>>3,o+8|0),B=d+8|0,OX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,$9e(o,d),eWe(d),I=k;return}}function Z9e(o){return o=o|0,536870911}function X9e(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Jt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function $9e(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function eWe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&Et(o)}function LX(o){o=o|0,nWe(o)}function tWe(o){o=o|0,rWe(o+24|0)}function rWe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function nWe(o){o=o|0;var l=0;l=en()|0,tn(o,1,1,l,iWe()|0,5),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function iWe(){return 1872}function sWe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,aWe(n[(oWe(o)|0)>>2]|0,l,u,A,d,m)}function oWe(o){return o=o|0,(n[(s_()|0)+24>>2]|0)+(o<<3)|0}function aWe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,T=0,_=0,M=0,G=0;B=I,I=I+32|0,k=B+16|0,T=B+12|0,_=B+8|0,M=B+4|0,G=B,Uh(k,l),l=Hh(k,l)|0,Uh(T,u),u=Hh(T,u)|0,Uh(_,A),A=Hh(_,A)|0,Uh(M,d),d=Hh(M,d)|0,Uh(G,m),m=Hh(G,m)|0,s$[o&1](l,u,A,d,m),jh(G),jh(M),jh(_),jh(T),jh(k),I=B}function lWe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;m=n[o>>2]|0,d=o_()|0,o=cWe(u)|0,vn(m,l,d,o,uWe(u,A)|0,A)}function o_(){var o=0,l=0;if(s[8072]|0||(_X(11004),gr(69,11004,U|0)|0,l=8072,n[l>>2]=1,n[l+4>>2]=0),!(Ur(11004)|0)){o=11004,l=o+36|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(l|0));_X(11004)}return 11004}function cWe(o){return o=o|0,o|0}function uWe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0,k=0,T=0;return k=I,I=I+16|0,d=k,m=k+4|0,n[d>>2]=o,T=o_()|0,B=T+24|0,l=yr(l,4)|0,n[m>>2]=l,u=T+28|0,A=n[u>>2]|0,A>>>0<(n[T+32>>2]|0)>>>0?(MX(A,o,l),l=(n[u>>2]|0)+8|0,n[u>>2]=l):(fWe(B,d,m),l=n[u>>2]|0),I=k,(l-(n[B>>2]|0)>>3)+-1|0}function MX(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,n[o+4>>2]=u}function fWe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0;if(k=I,I=I+32|0,d=k,m=o+4|0,B=((n[m>>2]|0)-(n[o>>2]|0)>>3)+1|0,A=AWe(o)|0,A>>>0<B>>>0)sn(o);else{T=n[o>>2]|0,M=(n[o+8>>2]|0)-T|0,_=M>>2,pWe(d,M>>3>>>0<A>>>1>>>0?_>>>0<B>>>0?B:_:A,(n[m>>2]|0)-T>>3,o+8|0),B=d+8|0,MX(n[B>>2]|0,n[l>>2]|0,n[u>>2]|0),n[B>>2]=(n[B>>2]|0)+8,hWe(o,d),gWe(d),I=k;return}}function AWe(o){return o=o|0,536870911}function pWe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0;n[o+12>>2]=0,n[o+16>>2]=A;do if(l)if(l>>>0>536870911)Nt();else{d=Jt(l<<3)|0;break}else d=0;while(!1);n[o>>2]=d,A=d+(u<<3)|0,n[o+8>>2]=A,n[o+4>>2]=A,n[o+12>>2]=d+(l<<3)}function hWe(o,l){o=o|0,l=l|0;var u=0,A=0,d=0,m=0,B=0;A=n[o>>2]|0,B=o+4|0,m=l+4|0,d=(n[B>>2]|0)-A|0,u=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=u,(d|0)>0?(Qr(u|0,A|0,d|0)|0,A=m,u=n[m>>2]|0):A=m,m=n[o>>2]|0,n[o>>2]=u,n[A>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=o+8|0,B=l+12|0,o=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=o,n[l>>2]=n[A>>2]}function gWe(o){o=o|0;var l=0,u=0,A=0;l=n[o+4>>2]|0,u=o+8|0,A=n[u>>2]|0,(A|0)!=(l|0)&&(n[u>>2]=A+(~((A+-8-l|0)>>>3)<<3)),o=n[o>>2]|0,o|0&&Et(o)}function _X(o){o=o|0,yWe(o)}function dWe(o){o=o|0,mWe(o+24|0)}function mWe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function yWe(o){o=o|0;var l=0;l=en()|0,tn(o,1,12,l,EWe()|0,2),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function EWe(){return 1896}function IWe(o,l,u){o=o|0,l=l|0,u=u|0,wWe(n[(CWe(o)|0)>>2]|0,l,u)}function CWe(o){return o=o|0,(n[(o_()|0)+24>>2]|0)+(o<<3)|0}function wWe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;A=I,I=I+16|0,m=A+4|0,d=A,BWe(m,l),l=vWe(m,l)|0,Uh(d,u),u=Hh(d,u)|0,ap[o&31](l,u),jh(d),I=A}function BWe(o,l){o=o|0,l=l|0}function vWe(o,l){return o=o|0,l=l|0,SWe(l)|0}function SWe(o){return o=o|0,o|0}function DWe(){var o=0;return s[8080]|0||(UX(11040),gr(70,11040,U|0)|0,o=8080,n[o>>2]=1,n[o+4>>2]=0),Ur(11040)|0||UX(11040),11040}function UX(o){o=o|0,xWe(o),cd(o,71)}function bWe(o){o=o|0,PWe(o+24|0)}function PWe(o){o=o|0;var l=0,u=0,A=0;u=n[o>>2]|0,A=u,u|0&&(o=o+4|0,l=n[o>>2]|0,(l|0)!=(u|0)&&(n[o>>2]=l+(~((l+-8-A|0)>>>3)<<3)),Et(u))}function xWe(o){o=o|0;var l=0;l=en()|0,tn(o,5,7,l,RWe()|0,0),n[o+24>>2]=0,n[o+28>>2]=0,n[o+32>>2]=0}function kWe(o){o=o|0,QWe(o)}function QWe(o){o=o|0,TWe(o)}function TWe(o){o=o|0,s[o+8>>0]=1}function RWe(){return 1936}function FWe(){return NWe()|0}function NWe(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0;return l=I,I=I+16|0,d=l+4|0,B=l,u=Fl(8)|0,o=u,m=o+4|0,n[m>>2]=Jt(1)|0,A=Jt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],OWe(A,m,d),n[u>>2]=A,I=l,o|0}function OWe(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]=l,u=Jt(16)|0,n[u+4>>2]=0,n[u+8>>2]=0,n[u>>2]=1916,n[u+12>>2]=l,n[o+4>>2]=u}function LWe(o){o=o|0,Zy(o),Et(o)}function MWe(o){o=o|0,o=n[o+12>>2]|0,o|0&&Et(o)}function _We(o){o=o|0,Et(o)}function UWe(){var o=0;return s[8088]|0||(VWe(11076),gr(25,11076,U|0)|0,o=8088,n[o>>2]=1,n[o+4>>2]=0),11076}function HWe(o,l){o=o|0,l=l|0,n[o>>2]=jWe()|0,n[o+4>>2]=qWe()|0,n[o+12>>2]=l,n[o+8>>2]=GWe()|0,n[o+32>>2]=10}function jWe(){return 11745}function qWe(){return 1940}function GWe(){return jP()|0}function WWe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,(qh(A,896)|0)==512?u|0&&(YWe(u),Et(u)):l|0&&Et(l)}function YWe(o){o=o|0,o=n[o+4>>2]|0,o|0&&Wh(o)}function VWe(o){o=o|0,_h(o)}function xu(o,l){o=o|0,l=l|0,n[o>>2]=l}function a_(o){return o=o|0,n[o>>2]|0}function KWe(o){return o=o|0,s[n[o>>2]>>0]|0}function JWe(o,l){o=o|0,l=l|0;var u=0,A=0;u=I,I=I+16|0,A=u,n[A>>2]=n[o>>2],zWe(l,A)|0,I=u}function zWe(o,l){o=o|0,l=l|0;var u=0;return u=ZWe(n[o>>2]|0,l)|0,l=o+4|0,n[(n[l>>2]|0)+8>>2]=u,n[(n[l>>2]|0)+8>>2]|0}function ZWe(o,l){o=o|0,l=l|0;var u=0,A=0;return u=I,I=I+16|0,A=u,Nl(A),o=Ms(o)|0,l=XWe(o,n[l>>2]|0)|0,Ol(A),I=u,l|0}function Nl(o){o=o|0,n[o>>2]=n[2701],n[o+4>>2]=n[2703]}function XWe(o,l){o=o|0,l=l|0;var u=0;return u=ma($We()|0)|0,dn(0,u|0,o|0,e_(l)|0)|0}function Ol(o){o=o|0,xX(n[o>>2]|0,n[o+4>>2]|0)}function $We(){var o=0;return s[8096]|0||(eYe(11120),o=8096,n[o>>2]=1,n[o+4>>2]=0),11120}function eYe(o){o=o|0,Ro(o,tYe()|0,1)}function tYe(){return 1948}function rYe(){nYe()}function nYe(){var o=0,l=0,u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0,We=0,Le=0,Qe=0;if(Le=I,I=I+16|0,M=Le+4|0,G=Le,aa(65536,10804,n[2702]|0,10812),u=uX()|0,l=n[u>>2]|0,o=n[l>>2]|0,o|0)for(A=n[u+8>>2]|0,u=n[u+4>>2]|0;hf(o|0,c[u>>0]|0|0,s[A>>0]|0),l=l+4|0,o=n[l>>2]|0,o;)A=A+1|0,u=u+1|0;if(o=fX()|0,l=n[o>>2]|0,l|0)do LA(l|0,n[o+4>>2]|0),o=o+8|0,l=n[o>>2]|0;while(l|0);LA(iYe()|0,5167),_=Yy()|0,o=n[_>>2]|0;e:do if(o|0){do sYe(n[o+4>>2]|0),o=n[o>>2]|0;while(o|0);if(o=n[_>>2]|0,o|0){T=_;do{for(;d=o,o=n[o>>2]|0,d=n[d+4>>2]|0,!!(oYe(d)|0);)if(n[G>>2]=T,n[M>>2]=n[G>>2],aYe(_,M)|0,!o)break e;if(lYe(d),T=n[T>>2]|0,l=HX(d)|0,m=Li()|0,B=I,I=I+((1*(l<<2)|0)+15&-16)|0,k=I,I=I+((1*(l<<2)|0)+15&-16)|0,l=n[(BX(d)|0)>>2]|0,l|0)for(u=B,A=k;n[u>>2]=n[(Vy(n[l+4>>2]|0)|0)>>2],n[A>>2]=n[l+8>>2],l=n[l>>2]|0,l;)u=u+4|0,A=A+4|0;Qe=Vy(d)|0,l=cYe(d)|0,u=HX(d)|0,A=uYe(d)|0,ac(Qe|0,l|0,B|0,k|0,u|0,A|0,KM(d)|0),OA(m|0)}while(o|0)}}while(!1);if(o=n[(JM()|0)>>2]|0,o|0)do Qe=o+4|0,_=zM(Qe)|0,d=k2(_)|0,m=P2(_)|0,B=(x2(_)|0)+1|0,k=VP(_)|0,T=jX(Qe)|0,_=Ur(_)|0,M=GP(Qe)|0,G=l_(Qe)|0,Au(0,d|0,m|0,B|0,k|0,T|0,_|0,M|0,G|0,c_(Qe)|0),o=n[o>>2]|0;while(o|0);o=n[(Yy()|0)>>2]|0;e:do if(o|0){t:for(;;){if(l=n[o+4>>2]|0,l|0&&(ae=n[(Vy(l)|0)>>2]|0,We=n[(vX(l)|0)>>2]|0,We|0)){u=We;do{l=u+4|0,A=zM(l)|0;r:do if(A|0)switch(Ur(A)|0){case 0:break t;case 4:case 3:case 2:{k=k2(A)|0,T=P2(A)|0,_=(x2(A)|0)+1|0,M=VP(A)|0,G=Ur(A)|0,Qe=GP(l)|0,Au(ae|0,k|0,T|0,_|0,M|0,0,G|0,Qe|0,l_(l)|0,c_(l)|0);break r}case 1:{B=k2(A)|0,k=P2(A)|0,T=(x2(A)|0)+1|0,_=VP(A)|0,M=jX(l)|0,G=Ur(A)|0,Qe=GP(l)|0,Au(ae|0,B|0,k|0,T|0,_|0,M|0,G|0,Qe|0,l_(l)|0,c_(l)|0);break r}case 5:{_=k2(A)|0,M=P2(A)|0,G=(x2(A)|0)+1|0,Qe=VP(A)|0,Au(ae|0,_|0,M|0,G|0,Qe|0,fYe(A)|0,Ur(A)|0,0,0,0);break r}default:break r}while(!1);u=n[u>>2]|0}while(u|0)}if(o=n[o>>2]|0,!o)break e}Nt()}while(!1);ve(),I=Le}function iYe(){return 11703}function sYe(o){o=o|0,s[o+40>>0]=0}function oYe(o){return o=o|0,(s[o+40>>0]|0)!=0|0}function aYe(o,l){return o=o|0,l=l|0,l=AYe(l)|0,o=n[l>>2]|0,n[l>>2]=n[o>>2],Et(o),n[l>>2]|0}function lYe(o){o=o|0,s[o+40>>0]=1}function HX(o){return o=o|0,n[o+20>>2]|0}function cYe(o){return o=o|0,n[o+8>>2]|0}function uYe(o){return o=o|0,n[o+32>>2]|0}function VP(o){return o=o|0,n[o+4>>2]|0}function jX(o){return o=o|0,n[o+4>>2]|0}function l_(o){return o=o|0,n[o+8>>2]|0}function c_(o){return o=o|0,n[o+16>>2]|0}function fYe(o){return o=o|0,n[o+20>>2]|0}function AYe(o){return o=o|0,n[o>>2]|0}function KP(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0,We=0,Le=0,Qe=0,tt=0,Ze=0,ct=0,He=0,Ge=0,Lt=0;Lt=I,I=I+16|0,ae=Lt;do if(o>>>0<245){if(_=o>>>0<11?16:o+11&-8,o=_>>>3,G=n[2783]|0,u=G>>>o,u&3|0)return l=(u&1^1)+o|0,o=11172+(l<<1<<2)|0,u=o+8|0,A=n[u>>2]|0,d=A+8|0,m=n[d>>2]|0,(o|0)==(m|0)?n[2783]=G&~(1<<l):(n[m+12>>2]=o,n[u>>2]=m),Ge=l<<3,n[A+4>>2]=Ge|3,Ge=A+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1,Ge=d,I=Lt,Ge|0;if(M=n[2785]|0,_>>>0>M>>>0){if(u|0)return l=2<<o,l=u<<o&(l|0-l),l=(l&0-l)+-1|0,B=l>>>12&16,l=l>>>B,u=l>>>5&8,l=l>>>u,d=l>>>2&4,l=l>>>d,o=l>>>1&2,l=l>>>o,A=l>>>1&1,A=(u|B|d|o|A)+(l>>>A)|0,l=11172+(A<<1<<2)|0,o=l+8|0,d=n[o>>2]|0,B=d+8|0,u=n[B>>2]|0,(l|0)==(u|0)?(o=G&~(1<<A),n[2783]=o):(n[u+12>>2]=l,n[o>>2]=u,o=G),m=(A<<3)-_|0,n[d+4>>2]=_|3,A=d+_|0,n[A+4>>2]=m|1,n[A+m>>2]=m,M|0&&(d=n[2788]|0,l=M>>>3,u=11172+(l<<1<<2)|0,l=1<<l,o&l?(o=u+8|0,l=n[o>>2]|0):(n[2783]=o|l,l=u,o=u+8|0),n[o>>2]=d,n[l+12>>2]=d,n[d+8>>2]=l,n[d+12>>2]=u),n[2785]=m,n[2788]=A,Ge=B,I=Lt,Ge|0;if(k=n[2784]|0,k){if(u=(k&0-k)+-1|0,B=u>>>12&16,u=u>>>B,m=u>>>5&8,u=u>>>m,T=u>>>2&4,u=u>>>T,A=u>>>1&2,u=u>>>A,o=u>>>1&1,o=n[11436+((m|B|T|A|o)+(u>>>o)<<2)>>2]|0,u=(n[o+4>>2]&-8)-_|0,A=n[o+16+(((n[o+16>>2]|0)==0&1)<<2)>>2]|0,!A)T=o,m=u;else{do B=(n[A+4>>2]&-8)-_|0,T=B>>>0<u>>>0,u=T?B:u,o=T?A:o,A=n[A+16+(((n[A+16>>2]|0)==0&1)<<2)>>2]|0;while(A|0);T=o,m=u}if(B=T+_|0,T>>>0<B>>>0){d=n[T+24>>2]|0,l=n[T+12>>2]|0;do if((l|0)==(T|0)){if(o=T+20|0,l=n[o>>2]|0,!l&&(o=T+16|0,l=n[o>>2]|0,!l)){u=0;break}for(;;){if(u=l+20|0,A=n[u>>2]|0,A|0){l=A,o=u;continue}if(u=l+16|0,A=n[u>>2]|0,A)l=A,o=u;else break}n[o>>2]=0,u=l}else u=n[T+8>>2]|0,n[u+12>>2]=l,n[l+8>>2]=u,u=l;while(!1);do if(d|0){if(l=n[T+28>>2]|0,o=11436+(l<<2)|0,(T|0)==(n[o>>2]|0)){if(n[o>>2]=u,!u){n[2784]=k&~(1<<l);break}}else if(n[d+16+(((n[d+16>>2]|0)!=(T|0)&1)<<2)>>2]=u,!u)break;n[u+24>>2]=d,l=n[T+16>>2]|0,l|0&&(n[u+16>>2]=l,n[l+24>>2]=u),l=n[T+20>>2]|0,l|0&&(n[u+20>>2]=l,n[l+24>>2]=u)}while(!1);return m>>>0<16?(Ge=m+_|0,n[T+4>>2]=Ge|3,Ge=T+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1):(n[T+4>>2]=_|3,n[B+4>>2]=m|1,n[B+m>>2]=m,M|0&&(A=n[2788]|0,l=M>>>3,u=11172+(l<<1<<2)|0,l=1<<l,G&l?(o=u+8|0,l=n[o>>2]|0):(n[2783]=G|l,l=u,o=u+8|0),n[o>>2]=A,n[l+12>>2]=A,n[A+8>>2]=l,n[A+12>>2]=u),n[2785]=m,n[2788]=B),Ge=T+8|0,I=Lt,Ge|0}else G=_}else G=_}else G=_}else if(o>>>0<=4294967231)if(o=o+11|0,_=o&-8,T=n[2784]|0,T){A=0-_|0,o=o>>>8,o?_>>>0>16777215?k=31:(G=(o+1048320|0)>>>16&8,He=o<<G,M=(He+520192|0)>>>16&4,He=He<<M,k=(He+245760|0)>>>16&2,k=14-(M|G|k)+(He<<k>>>15)|0,k=_>>>(k+7|0)&1|k<<1):k=0,u=n[11436+(k<<2)>>2]|0;e:do if(!u)u=0,o=0,He=57;else for(o=0,B=_<<((k|0)==31?0:25-(k>>>1)|0),m=0;;){if(d=(n[u+4>>2]&-8)-_|0,d>>>0<A>>>0)if(d)o=u,A=d;else{o=u,A=0,d=u,He=61;break e}if(d=n[u+20>>2]|0,u=n[u+16+(B>>>31<<2)>>2]|0,m=(d|0)==0|(d|0)==(u|0)?m:d,d=(u|0)==0,d){u=m,He=57;break}else B=B<<((d^1)&1)}while(!1);if((He|0)==57){if((u|0)==0&(o|0)==0){if(o=2<<k,o=T&(o|0-o),!o){G=_;break}G=(o&0-o)+-1|0,B=G>>>12&16,G=G>>>B,m=G>>>5&8,G=G>>>m,k=G>>>2&4,G=G>>>k,M=G>>>1&2,G=G>>>M,u=G>>>1&1,o=0,u=n[11436+((m|B|k|M|u)+(G>>>u)<<2)>>2]|0}u?(d=u,He=61):(k=o,B=A)}if((He|0)==61)for(;;)if(He=0,u=(n[d+4>>2]&-8)-_|0,G=u>>>0<A>>>0,u=G?u:A,o=G?d:o,d=n[d+16+(((n[d+16>>2]|0)==0&1)<<2)>>2]|0,d)A=u,He=61;else{k=o,B=u;break}if(k|0&&B>>>0<((n[2785]|0)-_|0)>>>0){if(m=k+_|0,k>>>0>=m>>>0)return Ge=0,I=Lt,Ge|0;d=n[k+24>>2]|0,l=n[k+12>>2]|0;do if((l|0)==(k|0)){if(o=k+20|0,l=n[o>>2]|0,!l&&(o=k+16|0,l=n[o>>2]|0,!l)){l=0;break}for(;;){if(u=l+20|0,A=n[u>>2]|0,A|0){l=A,o=u;continue}if(u=l+16|0,A=n[u>>2]|0,A)l=A,o=u;else break}n[o>>2]=0}else Ge=n[k+8>>2]|0,n[Ge+12>>2]=l,n[l+8>>2]=Ge;while(!1);do if(d){if(o=n[k+28>>2]|0,u=11436+(o<<2)|0,(k|0)==(n[u>>2]|0)){if(n[u>>2]=l,!l){A=T&~(1<<o),n[2784]=A;break}}else if(n[d+16+(((n[d+16>>2]|0)!=(k|0)&1)<<2)>>2]=l,!l){A=T;break}n[l+24>>2]=d,o=n[k+16>>2]|0,o|0&&(n[l+16>>2]=o,n[o+24>>2]=l),o=n[k+20>>2]|0,o&&(n[l+20>>2]=o,n[o+24>>2]=l),A=T}else A=T;while(!1);do if(B>>>0>=16){if(n[k+4>>2]=_|3,n[m+4>>2]=B|1,n[m+B>>2]=B,l=B>>>3,B>>>0<256){u=11172+(l<<1<<2)|0,o=n[2783]|0,l=1<<l,o&l?(o=u+8|0,l=n[o>>2]|0):(n[2783]=o|l,l=u,o=u+8|0),n[o>>2]=m,n[l+12>>2]=m,n[m+8>>2]=l,n[m+12>>2]=u;break}if(l=B>>>8,l?B>>>0>16777215?l=31:(He=(l+1048320|0)>>>16&8,Ge=l<<He,ct=(Ge+520192|0)>>>16&4,Ge=Ge<<ct,l=(Ge+245760|0)>>>16&2,l=14-(ct|He|l)+(Ge<<l>>>15)|0,l=B>>>(l+7|0)&1|l<<1):l=0,u=11436+(l<<2)|0,n[m+28>>2]=l,o=m+16|0,n[o+4>>2]=0,n[o>>2]=0,o=1<<l,!(A&o)){n[2784]=A|o,n[u>>2]=m,n[m+24>>2]=u,n[m+12>>2]=m,n[m+8>>2]=m;break}for(o=B<<((l|0)==31?0:25-(l>>>1)|0),u=n[u>>2]|0;;){if((n[u+4>>2]&-8|0)==(B|0)){He=97;break}if(A=u+16+(o>>>31<<2)|0,l=n[A>>2]|0,l)o=o<<1,u=l;else{He=96;break}}if((He|0)==96){n[A>>2]=m,n[m+24>>2]=u,n[m+12>>2]=m,n[m+8>>2]=m;break}else if((He|0)==97){He=u+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=m,n[He>>2]=m,n[m+8>>2]=Ge,n[m+12>>2]=u,n[m+24>>2]=0;break}}else Ge=B+_|0,n[k+4>>2]=Ge|3,Ge=k+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1;while(!1);return Ge=k+8|0,I=Lt,Ge|0}else G=_}else G=_;else G=-1;while(!1);if(u=n[2785]|0,u>>>0>=G>>>0)return l=u-G|0,o=n[2788]|0,l>>>0>15?(Ge=o+G|0,n[2788]=Ge,n[2785]=l,n[Ge+4>>2]=l|1,n[Ge+l>>2]=l,n[o+4>>2]=G|3):(n[2785]=0,n[2788]=0,n[o+4>>2]=u|3,Ge=o+u+4|0,n[Ge>>2]=n[Ge>>2]|1),Ge=o+8|0,I=Lt,Ge|0;if(B=n[2786]|0,B>>>0>G>>>0)return ct=B-G|0,n[2786]=ct,Ge=n[2789]|0,He=Ge+G|0,n[2789]=He,n[He+4>>2]=ct|1,n[Ge+4>>2]=G|3,Ge=Ge+8|0,I=Lt,Ge|0;if(n[2901]|0?o=n[2903]|0:(n[2903]=4096,n[2902]=4096,n[2904]=-1,n[2905]=-1,n[2906]=0,n[2894]=0,o=ae&-16^1431655768,n[ae>>2]=o,n[2901]=o,o=4096),k=G+48|0,T=G+47|0,m=o+T|0,d=0-o|0,_=m&d,_>>>0<=G>>>0||(o=n[2893]|0,o|0&&(M=n[2891]|0,ae=M+_|0,ae>>>0<=M>>>0|ae>>>0>o>>>0)))return Ge=0,I=Lt,Ge|0;e:do if(n[2894]&4)l=0,He=133;else{u=n[2789]|0;t:do if(u){for(A=11580;o=n[A>>2]|0,!(o>>>0<=u>>>0&&(Qe=A+4|0,(o+(n[Qe>>2]|0)|0)>>>0>u>>>0));)if(o=n[A+8>>2]|0,o)A=o;else{He=118;break t}if(l=m-B&d,l>>>0<2147483647)if(o=Yh(l|0)|0,(o|0)==((n[A>>2]|0)+(n[Qe>>2]|0)|0)){if((o|0)!=-1){B=l,m=o,He=135;break e}}else A=o,He=126;else l=0}else He=118;while(!1);do if((He|0)==118)if(u=Yh(0)|0,(u|0)!=-1&&(l=u,We=n[2902]|0,Le=We+-1|0,l=(Le&l|0?(Le+l&0-We)-l|0:0)+_|0,We=n[2891]|0,Le=l+We|0,l>>>0>G>>>0&l>>>0<2147483647)){if(Qe=n[2893]|0,Qe|0&&Le>>>0<=We>>>0|Le>>>0>Qe>>>0){l=0;break}if(o=Yh(l|0)|0,(o|0)==(u|0)){B=l,m=u,He=135;break e}else A=o,He=126}else l=0;while(!1);do if((He|0)==126){if(u=0-l|0,!(k>>>0>l>>>0&(l>>>0<2147483647&(A|0)!=-1)))if((A|0)==-1){l=0;break}else{B=l,m=A,He=135;break e}if(o=n[2903]|0,o=T-l+o&0-o,o>>>0>=2147483647){B=l,m=A,He=135;break e}if((Yh(o|0)|0)==-1){Yh(u|0)|0,l=0;break}else{B=o+l|0,m=A,He=135;break e}}while(!1);n[2894]=n[2894]|4,He=133}while(!1);if((He|0)==133&&_>>>0<2147483647&&(ct=Yh(_|0)|0,Qe=Yh(0)|0,tt=Qe-ct|0,Ze=tt>>>0>(G+40|0)>>>0,!((ct|0)==-1|Ze^1|ct>>>0<Qe>>>0&((ct|0)!=-1&(Qe|0)!=-1)^1))&&(B=Ze?tt:l,m=ct,He=135),(He|0)==135){l=(n[2891]|0)+B|0,n[2891]=l,l>>>0>(n[2892]|0)>>>0&&(n[2892]=l),T=n[2789]|0;do if(T){for(l=11580;;){if(o=n[l>>2]|0,u=l+4|0,A=n[u>>2]|0,(m|0)==(o+A|0)){He=145;break}if(d=n[l+8>>2]|0,d)l=d;else break}if((He|0)==145&&!(n[l+12>>2]&8|0)&&T>>>0<m>>>0&T>>>0>=o>>>0){n[u>>2]=A+B,Ge=T+8|0,Ge=Ge&7|0?0-Ge&7:0,He=T+Ge|0,Ge=(n[2786]|0)+(B-Ge)|0,n[2789]=He,n[2786]=Ge,n[He+4>>2]=Ge|1,n[He+Ge+4>>2]=40,n[2790]=n[2905];break}for(m>>>0<(n[2787]|0)>>>0&&(n[2787]=m),u=m+B|0,l=11580;;){if((n[l>>2]|0)==(u|0)){He=153;break}if(o=n[l+8>>2]|0,o)l=o;else break}if((He|0)==153&&!(n[l+12>>2]&8|0)){n[l>>2]=m,M=l+4|0,n[M>>2]=(n[M>>2]|0)+B,M=m+8|0,M=m+(M&7|0?0-M&7:0)|0,l=u+8|0,l=u+(l&7|0?0-l&7:0)|0,_=M+G|0,k=l-M-G|0,n[M+4>>2]=G|3;do if((l|0)!=(T|0)){if((l|0)==(n[2788]|0)){Ge=(n[2785]|0)+k|0,n[2785]=Ge,n[2788]=_,n[_+4>>2]=Ge|1,n[_+Ge>>2]=Ge;break}if(o=n[l+4>>2]|0,(o&3|0)==1){B=o&-8,A=o>>>3;e:do if(o>>>0<256)if(o=n[l+8>>2]|0,u=n[l+12>>2]|0,(u|0)==(o|0)){n[2783]=n[2783]&~(1<<A);break}else{n[o+12>>2]=u,n[u+8>>2]=o;break}else{m=n[l+24>>2]|0,o=n[l+12>>2]|0;do if((o|0)==(l|0)){if(A=l+16|0,u=A+4|0,o=n[u>>2]|0,!o)if(o=n[A>>2]|0,o)u=A;else{o=0;break}for(;;){if(A=o+20|0,d=n[A>>2]|0,d|0){o=d,u=A;continue}if(A=o+16|0,d=n[A>>2]|0,d)o=d,u=A;else break}n[u>>2]=0}else Ge=n[l+8>>2]|0,n[Ge+12>>2]=o,n[o+8>>2]=Ge;while(!1);if(!m)break;u=n[l+28>>2]|0,A=11436+(u<<2)|0;do if((l|0)!=(n[A>>2]|0)){if(n[m+16+(((n[m+16>>2]|0)!=(l|0)&1)<<2)>>2]=o,!o)break e}else{if(n[A>>2]=o,o|0)break;n[2784]=n[2784]&~(1<<u);break e}while(!1);if(n[o+24>>2]=m,u=l+16|0,A=n[u>>2]|0,A|0&&(n[o+16>>2]=A,n[A+24>>2]=o),u=n[u+4>>2]|0,!u)break;n[o+20>>2]=u,n[u+24>>2]=o}while(!1);l=l+B|0,d=B+k|0}else d=k;if(l=l+4|0,n[l>>2]=n[l>>2]&-2,n[_+4>>2]=d|1,n[_+d>>2]=d,l=d>>>3,d>>>0<256){u=11172+(l<<1<<2)|0,o=n[2783]|0,l=1<<l,o&l?(o=u+8|0,l=n[o>>2]|0):(n[2783]=o|l,l=u,o=u+8|0),n[o>>2]=_,n[l+12>>2]=_,n[_+8>>2]=l,n[_+12>>2]=u;break}l=d>>>8;do if(!l)l=0;else{if(d>>>0>16777215){l=31;break}He=(l+1048320|0)>>>16&8,Ge=l<<He,ct=(Ge+520192|0)>>>16&4,Ge=Ge<<ct,l=(Ge+245760|0)>>>16&2,l=14-(ct|He|l)+(Ge<<l>>>15)|0,l=d>>>(l+7|0)&1|l<<1}while(!1);if(A=11436+(l<<2)|0,n[_+28>>2]=l,o=_+16|0,n[o+4>>2]=0,n[o>>2]=0,o=n[2784]|0,u=1<<l,!(o&u)){n[2784]=o|u,n[A>>2]=_,n[_+24>>2]=A,n[_+12>>2]=_,n[_+8>>2]=_;break}for(o=d<<((l|0)==31?0:25-(l>>>1)|0),u=n[A>>2]|0;;){if((n[u+4>>2]&-8|0)==(d|0)){He=194;break}if(A=u+16+(o>>>31<<2)|0,l=n[A>>2]|0,l)o=o<<1,u=l;else{He=193;break}}if((He|0)==193){n[A>>2]=_,n[_+24>>2]=u,n[_+12>>2]=_,n[_+8>>2]=_;break}else if((He|0)==194){He=u+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=_,n[He>>2]=_,n[_+8>>2]=Ge,n[_+12>>2]=u,n[_+24>>2]=0;break}}else Ge=(n[2786]|0)+k|0,n[2786]=Ge,n[2789]=_,n[_+4>>2]=Ge|1;while(!1);return Ge=M+8|0,I=Lt,Ge|0}for(l=11580;o=n[l>>2]|0,!(o>>>0<=T>>>0&&(Ge=o+(n[l+4>>2]|0)|0,Ge>>>0>T>>>0));)l=n[l+8>>2]|0;d=Ge+-47|0,o=d+8|0,o=d+(o&7|0?0-o&7:0)|0,d=T+16|0,o=o>>>0<d>>>0?T:o,l=o+8|0,u=m+8|0,u=u&7|0?0-u&7:0,He=m+u|0,u=B+-40-u|0,n[2789]=He,n[2786]=u,n[He+4>>2]=u|1,n[He+u+4>>2]=40,n[2790]=n[2905],u=o+4|0,n[u>>2]=27,n[l>>2]=n[2895],n[l+4>>2]=n[2896],n[l+8>>2]=n[2897],n[l+12>>2]=n[2898],n[2895]=m,n[2896]=B,n[2898]=0,n[2897]=l,l=o+24|0;do He=l,l=l+4|0,n[l>>2]=7;while((He+8|0)>>>0<Ge>>>0);if((o|0)!=(T|0)){if(m=o-T|0,n[u>>2]=n[u>>2]&-2,n[T+4>>2]=m|1,n[o>>2]=m,l=m>>>3,m>>>0<256){u=11172+(l<<1<<2)|0,o=n[2783]|0,l=1<<l,o&l?(o=u+8|0,l=n[o>>2]|0):(n[2783]=o|l,l=u,o=u+8|0),n[o>>2]=T,n[l+12>>2]=T,n[T+8>>2]=l,n[T+12>>2]=u;break}if(l=m>>>8,l?m>>>0>16777215?u=31:(He=(l+1048320|0)>>>16&8,Ge=l<<He,ct=(Ge+520192|0)>>>16&4,Ge=Ge<<ct,u=(Ge+245760|0)>>>16&2,u=14-(ct|He|u)+(Ge<<u>>>15)|0,u=m>>>(u+7|0)&1|u<<1):u=0,A=11436+(u<<2)|0,n[T+28>>2]=u,n[T+20>>2]=0,n[d>>2]=0,l=n[2784]|0,o=1<<u,!(l&o)){n[2784]=l|o,n[A>>2]=T,n[T+24>>2]=A,n[T+12>>2]=T,n[T+8>>2]=T;break}for(o=m<<((u|0)==31?0:25-(u>>>1)|0),u=n[A>>2]|0;;){if((n[u+4>>2]&-8|0)==(m|0)){He=216;break}if(A=u+16+(o>>>31<<2)|0,l=n[A>>2]|0,l)o=o<<1,u=l;else{He=215;break}}if((He|0)==215){n[A>>2]=T,n[T+24>>2]=u,n[T+12>>2]=T,n[T+8>>2]=T;break}else if((He|0)==216){He=u+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=T,n[He>>2]=T,n[T+8>>2]=Ge,n[T+12>>2]=u,n[T+24>>2]=0;break}}}else{Ge=n[2787]|0,(Ge|0)==0|m>>>0<Ge>>>0&&(n[2787]=m),n[2895]=m,n[2896]=B,n[2898]=0,n[2792]=n[2901],n[2791]=-1,l=0;do Ge=11172+(l<<1<<2)|0,n[Ge+12>>2]=Ge,n[Ge+8>>2]=Ge,l=l+1|0;while((l|0)!=32);Ge=m+8|0,Ge=Ge&7|0?0-Ge&7:0,He=m+Ge|0,Ge=B+-40-Ge|0,n[2789]=He,n[2786]=Ge,n[He+4>>2]=Ge|1,n[He+Ge+4>>2]=40,n[2790]=n[2905]}while(!1);if(l=n[2786]|0,l>>>0>G>>>0)return ct=l-G|0,n[2786]=ct,Ge=n[2789]|0,He=Ge+G|0,n[2789]=He,n[He+4>>2]=ct|1,n[Ge+4>>2]=G|3,Ge=Ge+8|0,I=Lt,Ge|0}return n[(Jy()|0)>>2]=12,Ge=0,I=Lt,Ge|0}function JP(o){o=o|0;var l=0,u=0,A=0,d=0,m=0,B=0,k=0,T=0;if(o){u=o+-8|0,d=n[2787]|0,o=n[o+-4>>2]|0,l=o&-8,T=u+l|0;do if(o&1)k=u,B=u;else{if(A=n[u>>2]|0,!(o&3)||(B=u+(0-A)|0,m=A+l|0,B>>>0<d>>>0))return;if((B|0)==(n[2788]|0)){if(o=T+4|0,l=n[o>>2]|0,(l&3|0)!=3){k=B,l=m;break}n[2785]=m,n[o>>2]=l&-2,n[B+4>>2]=m|1,n[B+m>>2]=m;return}if(u=A>>>3,A>>>0<256)if(o=n[B+8>>2]|0,l=n[B+12>>2]|0,(l|0)==(o|0)){n[2783]=n[2783]&~(1<<u),k=B,l=m;break}else{n[o+12>>2]=l,n[l+8>>2]=o,k=B,l=m;break}d=n[B+24>>2]|0,o=n[B+12>>2]|0;do if((o|0)==(B|0)){if(u=B+16|0,l=u+4|0,o=n[l>>2]|0,!o)if(o=n[u>>2]|0,o)l=u;else{o=0;break}for(;;){if(u=o+20|0,A=n[u>>2]|0,A|0){o=A,l=u;continue}if(u=o+16|0,A=n[u>>2]|0,A)o=A,l=u;else break}n[l>>2]=0}else k=n[B+8>>2]|0,n[k+12>>2]=o,n[o+8>>2]=k;while(!1);if(d){if(l=n[B+28>>2]|0,u=11436+(l<<2)|0,(B|0)==(n[u>>2]|0)){if(n[u>>2]=o,!o){n[2784]=n[2784]&~(1<<l),k=B,l=m;break}}else if(n[d+16+(((n[d+16>>2]|0)!=(B|0)&1)<<2)>>2]=o,!o){k=B,l=m;break}n[o+24>>2]=d,l=B+16|0,u=n[l>>2]|0,u|0&&(n[o+16>>2]=u,n[u+24>>2]=o),l=n[l+4>>2]|0,l?(n[o+20>>2]=l,n[l+24>>2]=o,k=B,l=m):(k=B,l=m)}else k=B,l=m}while(!1);if(!(B>>>0>=T>>>0)&&(o=T+4|0,A=n[o>>2]|0,!!(A&1))){if(A&2)n[o>>2]=A&-2,n[k+4>>2]=l|1,n[B+l>>2]=l,d=l;else{if(o=n[2788]|0,(T|0)==(n[2789]|0)){if(T=(n[2786]|0)+l|0,n[2786]=T,n[2789]=k,n[k+4>>2]=T|1,(k|0)!=(o|0))return;n[2788]=0,n[2785]=0;return}if((T|0)==(o|0)){T=(n[2785]|0)+l|0,n[2785]=T,n[2788]=B,n[k+4>>2]=T|1,n[B+T>>2]=T;return}d=(A&-8)+l|0,u=A>>>3;do if(A>>>0<256)if(l=n[T+8>>2]|0,o=n[T+12>>2]|0,(o|0)==(l|0)){n[2783]=n[2783]&~(1<<u);break}else{n[l+12>>2]=o,n[o+8>>2]=l;break}else{m=n[T+24>>2]|0,o=n[T+12>>2]|0;do if((o|0)==(T|0)){if(u=T+16|0,l=u+4|0,o=n[l>>2]|0,!o)if(o=n[u>>2]|0,o)l=u;else{u=0;break}for(;;){if(u=o+20|0,A=n[u>>2]|0,A|0){o=A,l=u;continue}if(u=o+16|0,A=n[u>>2]|0,A)o=A,l=u;else break}n[l>>2]=0,u=o}else u=n[T+8>>2]|0,n[u+12>>2]=o,n[o+8>>2]=u,u=o;while(!1);if(m|0){if(o=n[T+28>>2]|0,l=11436+(o<<2)|0,(T|0)==(n[l>>2]|0)){if(n[l>>2]=u,!u){n[2784]=n[2784]&~(1<<o);break}}else if(n[m+16+(((n[m+16>>2]|0)!=(T|0)&1)<<2)>>2]=u,!u)break;n[u+24>>2]=m,o=T+16|0,l=n[o>>2]|0,l|0&&(n[u+16>>2]=l,n[l+24>>2]=u),o=n[o+4>>2]|0,o|0&&(n[u+20>>2]=o,n[o+24>>2]=u)}}while(!1);if(n[k+4>>2]=d|1,n[B+d>>2]=d,(k|0)==(n[2788]|0)){n[2785]=d;return}}if(o=d>>>3,d>>>0<256){u=11172+(o<<1<<2)|0,l=n[2783]|0,o=1<<o,l&o?(l=u+8|0,o=n[l>>2]|0):(n[2783]=l|o,o=u,l=u+8|0),n[l>>2]=k,n[o+12>>2]=k,n[k+8>>2]=o,n[k+12>>2]=u;return}o=d>>>8,o?d>>>0>16777215?o=31:(B=(o+1048320|0)>>>16&8,T=o<<B,m=(T+520192|0)>>>16&4,T=T<<m,o=(T+245760|0)>>>16&2,o=14-(m|B|o)+(T<<o>>>15)|0,o=d>>>(o+7|0)&1|o<<1):o=0,A=11436+(o<<2)|0,n[k+28>>2]=o,n[k+20>>2]=0,n[k+16>>2]=0,l=n[2784]|0,u=1<<o;do if(l&u){for(l=d<<((o|0)==31?0:25-(o>>>1)|0),u=n[A>>2]|0;;){if((n[u+4>>2]&-8|0)==(d|0)){o=73;break}if(A=u+16+(l>>>31<<2)|0,o=n[A>>2]|0,o)l=l<<1,u=o;else{o=72;break}}if((o|0)==72){n[A>>2]=k,n[k+24>>2]=u,n[k+12>>2]=k,n[k+8>>2]=k;break}else if((o|0)==73){B=u+8|0,T=n[B>>2]|0,n[T+12>>2]=k,n[B>>2]=k,n[k+8>>2]=T,n[k+12>>2]=u,n[k+24>>2]=0;break}}else n[2784]=l|u,n[A>>2]=k,n[k+24>>2]=A,n[k+12>>2]=k,n[k+8>>2]=k;while(!1);if(T=(n[2791]|0)+-1|0,n[2791]=T,!T)o=11588;else return;for(;o=n[o>>2]|0,o;)o=o+8|0;n[2791]=-1}}}function pYe(){return 11628}function hYe(o){o=o|0;var l=0,u=0;return l=I,I=I+16|0,u=l,n[u>>2]=mYe(n[o+60>>2]|0)|0,o=zP(hu(6,u|0)|0)|0,I=l,o|0}function qX(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0,We=0;G=I,I=I+48|0,_=G+16|0,m=G,d=G+32|0,k=o+28|0,A=n[k>>2]|0,n[d>>2]=A,T=o+20|0,A=(n[T>>2]|0)-A|0,n[d+4>>2]=A,n[d+8>>2]=l,n[d+12>>2]=u,A=A+u|0,B=o+60|0,n[m>>2]=n[B>>2],n[m+4>>2]=d,n[m+8>>2]=2,m=zP(Ma(146,m|0)|0)|0;e:do if((A|0)!=(m|0)){for(l=2;!((m|0)<0);)if(A=A-m|0,We=n[d+4>>2]|0,ae=m>>>0>We>>>0,d=ae?d+8|0:d,l=(ae<<31>>31)+l|0,We=m-(ae?We:0)|0,n[d>>2]=(n[d>>2]|0)+We,ae=d+4|0,n[ae>>2]=(n[ae>>2]|0)-We,n[_>>2]=n[B>>2],n[_+4>>2]=d,n[_+8>>2]=l,m=zP(Ma(146,_|0)|0)|0,(A|0)==(m|0)){M=3;break e}n[o+16>>2]=0,n[k>>2]=0,n[T>>2]=0,n[o>>2]=n[o>>2]|32,(l|0)==2?u=0:u=u-(n[d+4>>2]|0)|0}else M=3;while(!1);return(M|0)==3&&(We=n[o+44>>2]|0,n[o+16>>2]=We+(n[o+48>>2]|0),n[k>>2]=We,n[T>>2]=We),I=G,u|0}function gYe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;return d=I,I=I+32|0,m=d,A=d+20|0,n[m>>2]=n[o+60>>2],n[m+4>>2]=0,n[m+8>>2]=l,n[m+12>>2]=A,n[m+16>>2]=u,(zP(La(140,m|0)|0)|0)<0?(n[A>>2]=-1,o=-1):o=n[A>>2]|0,I=d,o|0}function zP(o){return o=o|0,o>>>0>4294963200&&(n[(Jy()|0)>>2]=0-o,o=-1),o|0}function Jy(){return(dYe()|0)+64|0}function dYe(){return u_()|0}function u_(){return 2084}function mYe(o){return o=o|0,o|0}function yYe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;return d=I,I=I+32|0,A=d,n[o+36>>2]=1,!(n[o>>2]&64|0)&&(n[A>>2]=n[o+60>>2],n[A+4>>2]=21523,n[A+8>>2]=d+16,so(54,A|0)|0)&&(s[o+75>>0]=-1),A=qX(o,l,u)|0,I=d,A|0}function GX(o,l){o=o|0,l=l|0;var u=0,A=0;if(u=s[o>>0]|0,A=s[l>>0]|0,!(u<<24>>24)||u<<24>>24!=A<<24>>24)o=A;else{do o=o+1|0,l=l+1|0,u=s[o>>0]|0,A=s[l>>0]|0;while(!(!(u<<24>>24)||u<<24>>24!=A<<24>>24));o=A}return(u&255)-(o&255)|0}function EYe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0;e:do if(!u)o=0;else{for(;A=s[o>>0]|0,d=s[l>>0]|0,A<<24>>24==d<<24>>24;)if(u=u+-1|0,u)o=o+1|0,l=l+1|0;else{o=0;break e}o=(A&255)-(d&255)|0}while(!1);return o|0}function WX(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0,We=0,Le=0,Qe=0;Qe=I,I=I+224|0,M=Qe+120|0,G=Qe+80|0,We=Qe,Le=Qe+136|0,A=G,d=A+40|0;do n[A>>2]=0,A=A+4|0;while((A|0)<(d|0));return n[M>>2]=n[u>>2],(f_(0,l,M,We,G)|0)<0?u=-1:((n[o+76>>2]|0)>-1?ae=IYe(o)|0:ae=0,u=n[o>>2]|0,_=u&32,(s[o+74>>0]|0)<1&&(n[o>>2]=u&-33),A=o+48|0,n[A>>2]|0?u=f_(o,l,M,We,G)|0:(d=o+44|0,m=n[d>>2]|0,n[d>>2]=Le,B=o+28|0,n[B>>2]=Le,k=o+20|0,n[k>>2]=Le,n[A>>2]=80,T=o+16|0,n[T>>2]=Le+80,u=f_(o,l,M,We,G)|0,m&&(ex[n[o+36>>2]&7](o,0,0)|0,u=n[k>>2]|0?u:-1,n[d>>2]=m,n[A>>2]=0,n[T>>2]=0,n[B>>2]=0,n[k>>2]=0)),A=n[o>>2]|0,n[o>>2]=A|_,ae|0&&CYe(o),u=A&32|0?-1:u),I=Qe,u|0}function f_(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0,We=0,Le=0,Qe=0,tt=0,Ze=0,ct=0,He=0,Ge=0,Lt=0,qr=0,fr=0,$t=0,Tr=0,Hr=0,cr=0;cr=I,I=I+64|0,fr=cr+16|0,$t=cr,Lt=cr+24|0,Tr=cr+8|0,Hr=cr+20|0,n[fr>>2]=l,ct=(o|0)!=0,He=Lt+40|0,Ge=He,Lt=Lt+39|0,qr=Tr+4|0,B=0,m=0,M=0;e:for(;;){do if((m|0)>-1)if((B|0)>(2147483647-m|0)){n[(Jy()|0)>>2]=75,m=-1;break}else{m=B+m|0;break}while(!1);if(B=s[l>>0]|0,B<<24>>24)k=l;else{Ze=87;break}t:for(;;){switch(B<<24>>24){case 37:{B=k,Ze=9;break t}case 0:{B=k;break t}default:}tt=k+1|0,n[fr>>2]=tt,B=s[tt>>0]|0,k=tt}t:do if((Ze|0)==9)for(;;){if(Ze=0,(s[k+1>>0]|0)!=37)break t;if(B=B+1|0,k=k+2|0,n[fr>>2]=k,(s[k>>0]|0)==37)Ze=9;else break}while(!1);if(B=B-l|0,ct&&Ds(o,l,B),B|0){l=k;continue}T=k+1|0,B=(s[T>>0]|0)+-48|0,B>>>0<10?(tt=(s[k+2>>0]|0)==36,Qe=tt?B:-1,M=tt?1:M,T=tt?k+3|0:T):Qe=-1,n[fr>>2]=T,B=s[T>>0]|0,k=(B<<24>>24)+-32|0;t:do if(k>>>0<32)for(_=0,G=B;;){if(B=1<<k,!(B&75913)){B=G;break t}if(_=B|_,T=T+1|0,n[fr>>2]=T,B=s[T>>0]|0,k=(B<<24>>24)+-32|0,k>>>0>=32)break;G=B}else _=0;while(!1);if(B<<24>>24==42){if(k=T+1|0,B=(s[k>>0]|0)+-48|0,B>>>0<10&&(s[T+2>>0]|0)==36)n[d+(B<<2)>>2]=10,B=n[A+((s[k>>0]|0)+-48<<3)>>2]|0,M=1,T=T+3|0;else{if(M|0){m=-1;break}ct?(M=(n[u>>2]|0)+3&-4,B=n[M>>2]|0,n[u>>2]=M+4,M=0,T=k):(B=0,M=0,T=k)}n[fr>>2]=T,tt=(B|0)<0,B=tt?0-B|0:B,_=tt?_|8192:_}else{if(B=YX(fr)|0,(B|0)<0){m=-1;break}T=n[fr>>2]|0}do if((s[T>>0]|0)==46){if((s[T+1>>0]|0)!=42){n[fr>>2]=T+1,k=YX(fr)|0,T=n[fr>>2]|0;break}if(G=T+2|0,k=(s[G>>0]|0)+-48|0,k>>>0<10&&(s[T+3>>0]|0)==36){n[d+(k<<2)>>2]=10,k=n[A+((s[G>>0]|0)+-48<<3)>>2]|0,T=T+4|0,n[fr>>2]=T;break}if(M|0){m=-1;break e}ct?(tt=(n[u>>2]|0)+3&-4,k=n[tt>>2]|0,n[u>>2]=tt+4):k=0,n[fr>>2]=G,T=G}else k=-1;while(!1);for(Le=0;;){if(((s[T>>0]|0)+-65|0)>>>0>57){m=-1;break e}if(tt=T+1|0,n[fr>>2]=tt,G=s[(s[T>>0]|0)+-65+(5178+(Le*58|0))>>0]|0,ae=G&255,(ae+-1|0)>>>0<8)Le=ae,T=tt;else break}if(!(G<<24>>24)){m=-1;break}We=(Qe|0)>-1;do if(G<<24>>24==19)if(We){m=-1;break e}else Ze=49;else{if(We){n[d+(Qe<<2)>>2]=ae,We=A+(Qe<<3)|0,Qe=n[We+4>>2]|0,Ze=$t,n[Ze>>2]=n[We>>2],n[Ze+4>>2]=Qe,Ze=49;break}if(!ct){m=0;break e}VX($t,ae,u)}while(!1);if((Ze|0)==49&&(Ze=0,!ct)){B=0,l=tt;continue}T=s[T>>0]|0,T=(Le|0)!=0&(T&15|0)==3?T&-33:T,We=_&-65537,Qe=_&8192|0?We:_;t:do switch(T|0){case 110:switch((Le&255)<<24>>24){case 0:{n[n[$t>>2]>>2]=m,B=0,l=tt;continue e}case 1:{n[n[$t>>2]>>2]=m,B=0,l=tt;continue e}case 2:{B=n[$t>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=tt;continue e}case 3:{a[n[$t>>2]>>1]=m,B=0,l=tt;continue e}case 4:{s[n[$t>>2]>>0]=m,B=0,l=tt;continue e}case 6:{n[n[$t>>2]>>2]=m,B=0,l=tt;continue e}case 7:{B=n[$t>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=tt;continue e}default:{B=0,l=tt;continue e}}case 112:{T=120,k=k>>>0>8?k:8,l=Qe|8,Ze=61;break}case 88:case 120:{l=Qe,Ze=61;break}case 111:{T=$t,l=n[T>>2]|0,T=n[T+4>>2]|0,ae=BYe(l,T,He)|0,We=Ge-ae|0,_=0,G=5642,k=(Qe&8|0)==0|(k|0)>(We|0)?k:We+1|0,We=Qe,Ze=67;break}case 105:case 100:if(T=$t,l=n[T>>2]|0,T=n[T+4>>2]|0,(T|0)<0){l=ZP(0,0,l|0,T|0)|0,T=ye,_=$t,n[_>>2]=l,n[_+4>>2]=T,_=1,G=5642,Ze=66;break t}else{_=(Qe&2049|0)!=0&1,G=Qe&2048|0?5643:Qe&1|0?5644:5642,Ze=66;break t}case 117:{T=$t,_=0,G=5642,l=n[T>>2]|0,T=n[T+4>>2]|0,Ze=66;break}case 99:{s[Lt>>0]=n[$t>>2],l=Lt,_=0,G=5642,ae=He,T=1,k=We;break}case 109:{T=vYe(n[(Jy()|0)>>2]|0)|0,Ze=71;break}case 115:{T=n[$t>>2]|0,T=T|0?T:5652,Ze=71;break}case 67:{n[Tr>>2]=n[$t>>2],n[qr>>2]=0,n[$t>>2]=Tr,ae=-1,T=Tr,Ze=75;break}case 83:{l=n[$t>>2]|0,k?(ae=k,T=l,Ze=75):(_s(o,32,B,0,Qe),l=0,Ze=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{B=DYe(o,+E[$t>>3],B,k,Qe,T)|0,l=tt;continue e}default:_=0,G=5642,ae=He,T=k,k=Qe}while(!1);t:do if((Ze|0)==61)Qe=$t,Le=n[Qe>>2]|0,Qe=n[Qe+4>>2]|0,ae=wYe(Le,Qe,He,T&32)|0,G=(l&8|0)==0|(Le|0)==0&(Qe|0)==0,_=G?0:2,G=G?5642:5642+(T>>4)|0,We=l,l=Le,T=Qe,Ze=67;else if((Ze|0)==66)ae=zy(l,T,He)|0,We=Qe,Ze=67;else if((Ze|0)==71)Ze=0,Qe=SYe(T,0,k)|0,Le=(Qe|0)==0,l=T,_=0,G=5642,ae=Le?T+k|0:Qe,T=Le?k:Qe-T|0,k=We;else if((Ze|0)==75){for(Ze=0,G=T,l=0,k=0;_=n[G>>2]|0,!(!_||(k=KX(Hr,_)|0,(k|0)<0|k>>>0>(ae-l|0)>>>0));)if(l=k+l|0,ae>>>0>l>>>0)G=G+4|0;else break;if((k|0)<0){m=-1;break e}if(_s(o,32,B,l,Qe),!l)l=0,Ze=84;else for(_=0;;){if(k=n[T>>2]|0,!k){Ze=84;break t}if(k=KX(Hr,k)|0,_=k+_|0,(_|0)>(l|0)){Ze=84;break t}if(Ds(o,Hr,k),_>>>0>=l>>>0){Ze=84;break}else T=T+4|0}}while(!1);if((Ze|0)==67)Ze=0,T=(l|0)!=0|(T|0)!=0,Qe=(k|0)!=0|T,T=((T^1)&1)+(Ge-ae)|0,l=Qe?ae:He,ae=He,T=Qe?(k|0)>(T|0)?k:T:k,k=(k|0)>-1?We&-65537:We;else if((Ze|0)==84){Ze=0,_s(o,32,B,l,Qe^8192),B=(B|0)>(l|0)?B:l,l=tt;continue}Le=ae-l|0,We=(T|0)<(Le|0)?Le:T,Qe=We+_|0,B=(B|0)<(Qe|0)?Qe:B,_s(o,32,B,Qe,k),Ds(o,G,_),_s(o,48,B,Qe,k^65536),_s(o,48,We,Le,0),Ds(o,l,Le),_s(o,32,B,Qe,k^8192),l=tt}e:do if((Ze|0)==87&&!o)if(!M)m=0;else{for(m=1;l=n[d+(m<<2)>>2]|0,!!l;)if(VX(A+(m<<3)|0,l,u),m=m+1|0,(m|0)>=10){m=1;break e}for(;;){if(n[d+(m<<2)>>2]|0){m=-1;break e}if(m=m+1|0,(m|0)>=10){m=1;break}}}while(!1);return I=cr,m|0}function IYe(o){return o=o|0,0}function CYe(o){o=o|0}function Ds(o,l,u){o=o|0,l=l|0,u=u|0,n[o>>2]&32||NYe(l,u,o)|0}function YX(o){o=o|0;var l=0,u=0,A=0;if(u=n[o>>2]|0,A=(s[u>>0]|0)+-48|0,A>>>0<10){l=0;do l=A+(l*10|0)|0,u=u+1|0,n[o>>2]=u,A=(s[u>>0]|0)+-48|0;while(A>>>0<10)}else l=0;return l|0}function VX(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;e:do if(l>>>0<=20)do switch(l|0){case 9:{A=(n[u>>2]|0)+3&-4,l=n[A>>2]|0,n[u>>2]=A+4,n[o>>2]=l;break e}case 10:{A=(n[u>>2]|0)+3&-4,l=n[A>>2]|0,n[u>>2]=A+4,A=o,n[A>>2]=l,n[A+4>>2]=((l|0)<0)<<31>>31;break e}case 11:{A=(n[u>>2]|0)+3&-4,l=n[A>>2]|0,n[u>>2]=A+4,A=o,n[A>>2]=l,n[A+4>>2]=0;break e}case 12:{A=(n[u>>2]|0)+7&-8,l=A,d=n[l>>2]|0,l=n[l+4>>2]|0,n[u>>2]=A+8,A=o,n[A>>2]=d,n[A+4>>2]=l;break e}case 13:{d=(n[u>>2]|0)+3&-4,A=n[d>>2]|0,n[u>>2]=d+4,A=(A&65535)<<16>>16,d=o,n[d>>2]=A,n[d+4>>2]=((A|0)<0)<<31>>31;break e}case 14:{d=(n[u>>2]|0)+3&-4,A=n[d>>2]|0,n[u>>2]=d+4,d=o,n[d>>2]=A&65535,n[d+4>>2]=0;break e}case 15:{d=(n[u>>2]|0)+3&-4,A=n[d>>2]|0,n[u>>2]=d+4,A=(A&255)<<24>>24,d=o,n[d>>2]=A,n[d+4>>2]=((A|0)<0)<<31>>31;break e}case 16:{d=(n[u>>2]|0)+3&-4,A=n[d>>2]|0,n[u>>2]=d+4,d=o,n[d>>2]=A&255,n[d+4>>2]=0;break e}case 17:{d=(n[u>>2]|0)+7&-8,m=+E[d>>3],n[u>>2]=d+8,E[o>>3]=m;break e}case 18:{d=(n[u>>2]|0)+7&-8,m=+E[d>>3],n[u>>2]=d+8,E[o>>3]=m;break e}default:break e}while(!1);while(!1)}function wYe(o,l,u,A){if(o=o|0,l=l|0,u=u|0,A=A|0,!((o|0)==0&(l|0)==0))do u=u+-1|0,s[u>>0]=c[5694+(o&15)>>0]|0|A,o=XP(o|0,l|0,4)|0,l=ye;while(!((o|0)==0&(l|0)==0));return u|0}function BYe(o,l,u){if(o=o|0,l=l|0,u=u|0,!((o|0)==0&(l|0)==0))do u=u+-1|0,s[u>>0]=o&7|48,o=XP(o|0,l|0,3)|0,l=ye;while(!((o|0)==0&(l|0)==0));return u|0}function zy(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;if(l>>>0>0|(l|0)==0&o>>>0>4294967295){for(;A=g_(o|0,l|0,10,0)|0,u=u+-1|0,s[u>>0]=A&255|48,A=o,o=h_(o|0,l|0,10,0)|0,l>>>0>9|(l|0)==9&A>>>0>4294967295;)l=ye;l=o}else l=o;if(l)for(;u=u+-1|0,s[u>>0]=(l>>>0)%10|0|48,!(l>>>0<10);)l=(l>>>0)/10|0;return u|0}function vYe(o){return o=o|0,QYe(o,n[(kYe()|0)+188>>2]|0)|0}function SYe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;m=l&255,A=(u|0)!=0;e:do if(A&(o&3|0)!=0)for(d=l&255;;){if((s[o>>0]|0)==d<<24>>24){B=6;break e}if(o=o+1|0,u=u+-1|0,A=(u|0)!=0,!(A&(o&3|0)!=0)){B=5;break}}else B=5;while(!1);(B|0)==5&&(A?B=6:u=0);e:do if((B|0)==6&&(d=l&255,(s[o>>0]|0)!=d<<24>>24)){A=_e(m,16843009)|0;t:do if(u>>>0>3){for(;m=n[o>>2]^A,!((m&-2139062144^-2139062144)&m+-16843009|0);)if(o=o+4|0,u=u+-4|0,u>>>0<=3){B=11;break t}}else B=11;while(!1);if((B|0)==11&&!u){u=0;break}for(;;){if((s[o>>0]|0)==d<<24>>24)break e;if(o=o+1|0,u=u+-1|0,!u){u=0;break}}}while(!1);return(u|0?o:0)|0}function _s(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0;if(B=I,I=I+256|0,m=B,(u|0)>(A|0)&(d&73728|0)==0){if(d=u-A|0,Xy(m|0,l|0,(d>>>0<256?d:256)|0)|0,d>>>0>255){l=u-A|0;do Ds(o,m,256),d=d+-256|0;while(d>>>0>255);d=l&255}Ds(o,m,d)}I=B}function KX(o,l){return o=o|0,l=l|0,o?o=PYe(o,l,0)|0:o=0,o|0}function DYe(o,l,u,A,d,m){o=o|0,l=+l,u=u|0,A=A|0,d=d|0,m=m|0;var B=0,k=0,T=0,_=0,M=0,G=0,ae=0,We=0,Le=0,Qe=0,tt=0,Ze=0,ct=0,He=0,Ge=0,Lt=0,qr=0,fr=0,$t=0,Tr=0,Hr=0,cr=0,Hn=0;Hn=I,I=I+560|0,T=Hn+8|0,tt=Hn,cr=Hn+524|0,Hr=cr,_=Hn+512|0,n[tt>>2]=0,Tr=_+12|0,JX(l)|0,(ye|0)<0?(l=-l,fr=1,qr=5659):(fr=(d&2049|0)!=0&1,qr=d&2048|0?5662:d&1|0?5665:5660),JX(l)|0,$t=ye&2146435072;do if($t>>>0<2146435072|($t|0)==2146435072&!1){if(We=+bYe(l,tt)*2,B=We!=0,B&&(n[tt>>2]=(n[tt>>2]|0)+-1),ct=m|32,(ct|0)==97){Le=m&32,ae=Le|0?qr+9|0:qr,G=fr|2,B=12-A|0;do if(A>>>0>11|(B|0)==0)l=We;else{l=8;do B=B+-1|0,l=l*16;while(B|0);if((s[ae>>0]|0)==45){l=-(l+(-We-l));break}else{l=We+l-l;break}}while(!1);k=n[tt>>2]|0,B=(k|0)<0?0-k|0:k,B=zy(B,((B|0)<0)<<31>>31,Tr)|0,(B|0)==(Tr|0)&&(B=_+11|0,s[B>>0]=48),s[B+-1>>0]=(k>>31&2)+43,M=B+-2|0,s[M>>0]=m+15,_=(A|0)<1,T=(d&8|0)==0,B=cr;do $t=~~l,k=B+1|0,s[B>>0]=c[5694+$t>>0]|Le,l=(l-+($t|0))*16,(k-Hr|0)==1&&!(T&(_&l==0))?(s[k>>0]=46,B=B+2|0):B=k;while(l!=0);$t=B-Hr|0,Hr=Tr-M|0,Tr=(A|0)!=0&($t+-2|0)<(A|0)?A+2|0:$t,B=Hr+G+Tr|0,_s(o,32,u,B,d),Ds(o,ae,G),_s(o,48,u,B,d^65536),Ds(o,cr,$t),_s(o,48,Tr-$t|0,0,0),Ds(o,M,Hr),_s(o,32,u,B,d^8192);break}k=(A|0)<0?6:A,B?(B=(n[tt>>2]|0)+-28|0,n[tt>>2]=B,l=We*268435456):(l=We,B=n[tt>>2]|0),$t=(B|0)<0?T:T+288|0,T=$t;do Ge=~~l>>>0,n[T>>2]=Ge,T=T+4|0,l=(l-+(Ge>>>0))*1e9;while(l!=0);if((B|0)>0)for(_=$t,G=T;;){if(M=(B|0)<29?B:29,B=G+-4|0,B>>>0>=_>>>0){T=0;do He=t$(n[B>>2]|0,0,M|0)|0,He=p_(He|0,ye|0,T|0,0)|0,Ge=ye,Ze=g_(He|0,Ge|0,1e9,0)|0,n[B>>2]=Ze,T=h_(He|0,Ge|0,1e9,0)|0,B=B+-4|0;while(B>>>0>=_>>>0);T&&(_=_+-4|0,n[_>>2]=T)}for(T=G;!(T>>>0<=_>>>0);)if(B=T+-4|0,!(n[B>>2]|0))T=B;else break;if(B=(n[tt>>2]|0)-M|0,n[tt>>2]=B,(B|0)>0)G=T;else break}else _=$t;if((B|0)<0){A=((k+25|0)/9|0)+1|0,Qe=(ct|0)==102;do{if(Le=0-B|0,Le=(Le|0)<9?Le:9,_>>>0<T>>>0){M=(1<<Le)+-1|0,G=1e9>>>Le,ae=0,B=_;do Ge=n[B>>2]|0,n[B>>2]=(Ge>>>Le)+ae,ae=_e(Ge&M,G)|0,B=B+4|0;while(B>>>0<T>>>0);B=n[_>>2]|0?_:_+4|0,ae?(n[T>>2]=ae,_=B,B=T+4|0):(_=B,B=T)}else _=n[_>>2]|0?_:_+4|0,B=T;T=Qe?$t:_,T=(B-T>>2|0)>(A|0)?T+(A<<2)|0:B,B=(n[tt>>2]|0)+Le|0,n[tt>>2]=B}while((B|0)<0);B=_,A=T}else B=_,A=T;if(Ge=$t,B>>>0<A>>>0){if(T=(Ge-B>>2)*9|0,M=n[B>>2]|0,M>>>0>=10){_=10;do _=_*10|0,T=T+1|0;while(M>>>0>=_>>>0)}}else T=0;if(Qe=(ct|0)==103,Ze=(k|0)!=0,_=k-((ct|0)!=102?T:0)+((Ze&Qe)<<31>>31)|0,(_|0)<(((A-Ge>>2)*9|0)+-9|0)){if(_=_+9216|0,Le=$t+4+(((_|0)/9|0)+-1024<<2)|0,_=((_|0)%9|0)+1|0,(_|0)<9){M=10;do M=M*10|0,_=_+1|0;while((_|0)!=9)}else M=10;if(G=n[Le>>2]|0,ae=(G>>>0)%(M>>>0)|0,_=(Le+4|0)==(A|0),_&(ae|0)==0)_=Le;else if(We=((G>>>0)/(M>>>0)|0)&1|0?9007199254740994:9007199254740992,He=(M|0)/2|0,l=ae>>>0<He>>>0?.5:_&(ae|0)==(He|0)?1:1.5,fr&&(He=(s[qr>>0]|0)==45,l=He?-l:l,We=He?-We:We),_=G-ae|0,n[Le>>2]=_,We+l!=We){if(He=_+M|0,n[Le>>2]=He,He>>>0>999999999)for(T=Le;_=T+-4|0,n[T>>2]=0,_>>>0<B>>>0&&(B=B+-4|0,n[B>>2]=0),He=(n[_>>2]|0)+1|0,n[_>>2]=He,He>>>0>999999999;)T=_;else _=Le;if(T=(Ge-B>>2)*9|0,G=n[B>>2]|0,G>>>0>=10){M=10;do M=M*10|0,T=T+1|0;while(G>>>0>=M>>>0)}}else _=Le;_=_+4|0,_=A>>>0>_>>>0?_:A,He=B}else _=A,He=B;for(ct=_;;){if(ct>>>0<=He>>>0){tt=0;break}if(B=ct+-4|0,!(n[B>>2]|0))ct=B;else{tt=1;break}}A=0-T|0;do if(Qe)if(B=((Ze^1)&1)+k|0,(B|0)>(T|0)&(T|0)>-5?(M=m+-1|0,k=B+-1-T|0):(M=m+-2|0,k=B+-1|0),B=d&8,B)Le=B;else{if(tt&&(Lt=n[ct+-4>>2]|0,(Lt|0)!=0))if((Lt>>>0)%10|0)_=0;else{_=0,B=10;do B=B*10|0,_=_+1|0;while(!((Lt>>>0)%(B>>>0)|0|0))}else _=9;if(B=((ct-Ge>>2)*9|0)+-9|0,(M|32|0)==102){Le=B-_|0,Le=(Le|0)>0?Le:0,k=(k|0)<(Le|0)?k:Le,Le=0;break}else{Le=B+T-_|0,Le=(Le|0)>0?Le:0,k=(k|0)<(Le|0)?k:Le,Le=0;break}}else M=m,Le=d&8;while(!1);if(Qe=k|Le,G=(Qe|0)!=0&1,ae=(M|32|0)==102,ae)Ze=0,B=(T|0)>0?T:0;else{if(B=(T|0)<0?A:T,B=zy(B,((B|0)<0)<<31>>31,Tr)|0,_=Tr,(_-B|0)<2)do B=B+-1|0,s[B>>0]=48;while((_-B|0)<2);s[B+-1>>0]=(T>>31&2)+43,B=B+-2|0,s[B>>0]=M,Ze=B,B=_-B|0}if(B=fr+1+k+G+B|0,_s(o,32,u,B,d),Ds(o,qr,fr),_s(o,48,u,B,d^65536),ae){M=He>>>0>$t>>>0?$t:He,Le=cr+9|0,G=Le,ae=cr+8|0,_=M;do{if(T=zy(n[_>>2]|0,0,Le)|0,(_|0)==(M|0))(T|0)==(Le|0)&&(s[ae>>0]=48,T=ae);else if(T>>>0>cr>>>0){Xy(cr|0,48,T-Hr|0)|0;do T=T+-1|0;while(T>>>0>cr>>>0)}Ds(o,T,G-T|0),_=_+4|0}while(_>>>0<=$t>>>0);if(Qe|0&&Ds(o,5710,1),_>>>0<ct>>>0&(k|0)>0)for(;;){if(T=zy(n[_>>2]|0,0,Le)|0,T>>>0>cr>>>0){Xy(cr|0,48,T-Hr|0)|0;do T=T+-1|0;while(T>>>0>cr>>>0)}if(Ds(o,T,(k|0)<9?k:9),_=_+4|0,T=k+-9|0,_>>>0<ct>>>0&(k|0)>9)k=T;else{k=T;break}}_s(o,48,k+9|0,9,0)}else{if(Qe=tt?ct:He+4|0,(k|0)>-1){tt=cr+9|0,Le=(Le|0)==0,A=tt,G=0-Hr|0,ae=cr+8|0,M=He;do{T=zy(n[M>>2]|0,0,tt)|0,(T|0)==(tt|0)&&(s[ae>>0]=48,T=ae);do if((M|0)==(He|0)){if(_=T+1|0,Ds(o,T,1),Le&(k|0)<1){T=_;break}Ds(o,5710,1),T=_}else{if(T>>>0<=cr>>>0)break;Xy(cr|0,48,T+G|0)|0;do T=T+-1|0;while(T>>>0>cr>>>0)}while(!1);Hr=A-T|0,Ds(o,T,(k|0)>(Hr|0)?Hr:k),k=k-Hr|0,M=M+4|0}while(M>>>0<Qe>>>0&(k|0)>-1)}_s(o,48,k+18|0,18,0),Ds(o,Ze,Tr-Ze|0)}_s(o,32,u,B,d^8192)}else cr=(m&32|0)!=0,B=fr+3|0,_s(o,32,u,B,d&-65537),Ds(o,qr,fr),Ds(o,l!=l|!1?cr?5686:5690:cr?5678:5682,3),_s(o,32,u,B,d^8192);while(!1);return I=Hn,((B|0)<(u|0)?u:B)|0}function JX(o){o=+o;var l=0;return E[S>>3]=o,l=n[S>>2]|0,ye=n[S+4>>2]|0,l|0}function bYe(o,l){return o=+o,l=l|0,+ +zX(o,l)}function zX(o,l){o=+o,l=l|0;var u=0,A=0,d=0;switch(E[S>>3]=o,u=n[S>>2]|0,A=n[S+4>>2]|0,d=XP(u|0,A|0,52)|0,d&2047){case 0:{o!=0?(o=+zX(o*18446744073709552e3,l),u=(n[l>>2]|0)+-64|0):u=0,n[l>>2]=u;break}case 2047:break;default:n[l>>2]=(d&2047)+-1022,n[S>>2]=u,n[S+4>>2]=A&-2146435073|1071644672,o=+E[S>>3]}return+o}function PYe(o,l,u){o=o|0,l=l|0,u=u|0;do if(o){if(l>>>0<128){s[o>>0]=l,o=1;break}if(!(n[n[(xYe()|0)+188>>2]>>2]|0))if((l&-128|0)==57216){s[o>>0]=l,o=1;break}else{n[(Jy()|0)>>2]=84,o=-1;break}if(l>>>0<2048){s[o>>0]=l>>>6|192,s[o+1>>0]=l&63|128,o=2;break}if(l>>>0<55296|(l&-8192|0)==57344){s[o>>0]=l>>>12|224,s[o+1>>0]=l>>>6&63|128,s[o+2>>0]=l&63|128,o=3;break}if((l+-65536|0)>>>0<1048576){s[o>>0]=l>>>18|240,s[o+1>>0]=l>>>12&63|128,s[o+2>>0]=l>>>6&63|128,s[o+3>>0]=l&63|128,o=4;break}else{n[(Jy()|0)>>2]=84,o=-1;break}}else o=1;while(!1);return o|0}function xYe(){return u_()|0}function kYe(){return u_()|0}function QYe(o,l){o=o|0,l=l|0;var u=0,A=0;for(A=0;;){if((c[5712+A>>0]|0)==(o|0)){o=2;break}if(u=A+1|0,(u|0)==87){u=5800,A=87,o=5;break}else A=u}if((o|0)==2&&(A?(u=5800,o=5):u=5800),(o|0)==5)for(;;){do o=u,u=u+1|0;while(s[o>>0]|0);if(A=A+-1|0,A)o=5;else break}return TYe(u,n[l+20>>2]|0)|0}function TYe(o,l){return o=o|0,l=l|0,RYe(o,l)|0}function RYe(o,l){return o=o|0,l=l|0,l?l=FYe(n[l>>2]|0,n[l+4>>2]|0,o)|0:l=0,(l|0?l:o)|0}function FYe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0;ae=(n[o>>2]|0)+1794895138|0,m=fd(n[o+8>>2]|0,ae)|0,A=fd(n[o+12>>2]|0,ae)|0,d=fd(n[o+16>>2]|0,ae)|0;e:do if(m>>>0<l>>>2>>>0&&(G=l-(m<<2)|0,A>>>0<G>>>0&d>>>0<G>>>0)&&!((d|A)&3|0)){for(G=A>>>2,M=d>>>2,_=0;;){if(k=m>>>1,T=_+k|0,B=T<<1,d=B+G|0,A=fd(n[o+(d<<2)>>2]|0,ae)|0,d=fd(n[o+(d+1<<2)>>2]|0,ae)|0,!(d>>>0<l>>>0&A>>>0<(l-d|0)>>>0)){A=0;break e}if(s[o+(d+A)>>0]|0){A=0;break e}if(A=GX(u,o+d|0)|0,!A)break;if(A=(A|0)<0,(m|0)==1){A=0;break e}else _=A?_:T,m=A?k:m-k|0}A=B+M|0,d=fd(n[o+(A<<2)>>2]|0,ae)|0,A=fd(n[o+(A+1<<2)>>2]|0,ae)|0,A>>>0<l>>>0&d>>>0<(l-A|0)>>>0?A=s[o+(A+d)>>0]|0?0:o+A|0:A=0}else A=0;while(!1);return A|0}function fd(o,l){o=o|0,l=l|0;var u=0;return u=i$(o|0)|0,(l|0?u:o)|0}function NYe(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0,k=0;A=u+16|0,d=n[A>>2]|0,d?m=5:OYe(u)|0?A=0:(d=n[A>>2]|0,m=5);e:do if((m|0)==5){if(k=u+20|0,B=n[k>>2]|0,A=B,(d-B|0)>>>0<l>>>0){A=ex[n[u+36>>2]&7](u,o,l)|0;break}t:do if((s[u+75>>0]|0)>-1){for(B=l;;){if(!B){m=0,d=o;break t}if(d=B+-1|0,(s[o+d>>0]|0)==10)break;B=d}if(A=ex[n[u+36>>2]&7](u,o,B)|0,A>>>0<B>>>0)break e;m=B,d=o+B|0,l=l-B|0,A=n[k>>2]|0}else m=0,d=o;while(!1);Qr(A|0,d|0,l|0)|0,n[k>>2]=(n[k>>2]|0)+l,A=m+l|0}while(!1);return A|0}function OYe(o){o=o|0;var l=0,u=0;return l=o+74|0,u=s[l>>0]|0,s[l>>0]=u+255|u,l=n[o>>2]|0,l&8?(n[o>>2]=l|32,o=-1):(n[o+8>>2]=0,n[o+4>>2]=0,u=n[o+44>>2]|0,n[o+28>>2]=u,n[o+20>>2]=u,n[o+16>>2]=u+(n[o+48>>2]|0),o=0),o|0}function $n(o,l){o=y(o),l=y(l);var u=0,A=0;u=ZX(o)|0;do if((u&2147483647)>>>0<=2139095040){if(A=ZX(l)|0,(A&2147483647)>>>0<=2139095040)if((A^u|0)<0){o=(u|0)<0?l:o;break}else{o=o<l?l:o;break}}else o=l;while(!1);return y(o)}function ZX(o){return o=y(o),h[S>>2]=o,n[S>>2]|0|0}function Ad(o,l){o=y(o),l=y(l);var u=0,A=0;u=XX(o)|0;do if((u&2147483647)>>>0<=2139095040){if(A=XX(l)|0,(A&2147483647)>>>0<=2139095040)if((A^u|0)<0){o=(u|0)<0?o:l;break}else{o=o<l?o:l;break}}else o=l;while(!1);return y(o)}function XX(o){return o=y(o),h[S>>2]=o,n[S>>2]|0|0}function A_(o,l){o=y(o),l=y(l);var u=0,A=0,d=0,m=0,B=0,k=0,T=0,_=0;m=(h[S>>2]=o,n[S>>2]|0),k=(h[S>>2]=l,n[S>>2]|0),u=m>>>23&255,B=k>>>23&255,T=m&-2147483648,d=k<<1;e:do if(d|0&&!((u|0)==255|((LYe(l)|0)&2147483647)>>>0>2139095040)){if(A=m<<1,A>>>0<=d>>>0)return l=y(o*y(0)),y((A|0)==(d|0)?l:o);if(u)A=m&8388607|8388608;else{if(u=m<<9,(u|0)>-1){A=u,u=0;do u=u+-1|0,A=A<<1;while((A|0)>-1)}else u=0;A=m<<1-u}if(B)k=k&8388607|8388608;else{if(m=k<<9,(m|0)>-1){d=0;do d=d+-1|0,m=m<<1;while((m|0)>-1)}else d=0;B=d,k=k<<1-d}d=A-k|0,m=(d|0)>-1;t:do if((u|0)>(B|0)){for(;;){if(m)if(d)A=d;else break;if(A=A<<1,u=u+-1|0,d=A-k|0,m=(d|0)>-1,(u|0)<=(B|0))break t}l=y(o*y(0));break e}while(!1);if(m)if(d)A=d;else{l=y(o*y(0));break}if(A>>>0<8388608)do A=A<<1,u=u+-1|0;while(A>>>0<8388608);(u|0)>0?u=A+-8388608|u<<23:u=A>>>(1-u|0),l=(n[S>>2]=u|T,y(h[S>>2]))}else _=3;while(!1);return(_|0)==3&&(l=y(o*l),l=y(l/l)),y(l)}function LYe(o){return o=y(o),h[S>>2]=o,n[S>>2]|0|0}function MYe(o,l){return o=o|0,l=l|0,WX(n[582]|0,o,l)|0}function sn(o){o=o|0,Nt()}function Zy(o){o=o|0}function _Ye(o,l){return o=o|0,l=l|0,0}function UYe(o){return o=o|0,($X(o+4|0)|0)==-1?(op[n[(n[o>>2]|0)+8>>2]&127](o),o=1):o=0,o|0}function $X(o){o=o|0;var l=0;return l=n[o>>2]|0,n[o>>2]=l+-1,l+-1|0}function Wh(o){o=o|0,UYe(o)|0&&HYe(o)}function HYe(o){o=o|0;var l=0;l=o+8|0,n[l>>2]|0&&($X(l)|0)!=-1||op[n[(n[o>>2]|0)+16>>2]&127](o)}function Jt(o){o=o|0;var l=0;for(l=o|0?o:1;o=KP(l)|0,!(o|0);){if(o=qYe()|0,!o){o=0;break}h$[o&0]()}return o|0}function e$(o){return o=o|0,Jt(o)|0}function Et(o){o=o|0,JP(o)}function jYe(o){o=o|0,(s[o+11>>0]|0)<0&&Et(n[o>>2]|0)}function qYe(){var o=0;return o=n[2923]|0,n[2923]=o+0,o|0}function GYe(){}function ZP(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,A=l-A-(u>>>0>o>>>0|0)>>>0,ye=A,o-u>>>0|0|0}function p_(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,u=o+u>>>0,ye=l+A+(u>>>0<o>>>0|0)>>>0,u|0|0}function Xy(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0,B=0;if(m=o+u|0,l=l&255,(u|0)>=67){for(;o&3;)s[o>>0]=l,o=o+1|0;for(A=m&-4|0,d=A-64|0,B=l|l<<8|l<<16|l<<24;(o|0)<=(d|0);)n[o>>2]=B,n[o+4>>2]=B,n[o+8>>2]=B,n[o+12>>2]=B,n[o+16>>2]=B,n[o+20>>2]=B,n[o+24>>2]=B,n[o+28>>2]=B,n[o+32>>2]=B,n[o+36>>2]=B,n[o+40>>2]=B,n[o+44>>2]=B,n[o+48>>2]=B,n[o+52>>2]=B,n[o+56>>2]=B,n[o+60>>2]=B,o=o+64|0;for(;(o|0)<(A|0);)n[o>>2]=B,o=o+4|0}for(;(o|0)<(m|0);)s[o>>0]=l,o=o+1|0;return m-u|0}function t$(o,l,u){return o=o|0,l=l|0,u=u|0,(u|0)<32?(ye=l<<u|(o&(1<<u)-1<<32-u)>>>32-u,o<<u):(ye=o<<u-32,0)}function XP(o,l,u){return o=o|0,l=l|0,u=u|0,(u|0)<32?(ye=l>>>u,o>>>u|(l&(1<<u)-1)<<32-u):(ye=0,l>>>u-32|0)}function Qr(o,l,u){o=o|0,l=l|0,u=u|0;var A=0,d=0,m=0;if((u|0)>=8192)return MA(o|0,l|0,u|0)|0;if(m=o|0,d=o+u|0,(o&3)==(l&3)){for(;o&3;){if(!u)return m|0;s[o>>0]=s[l>>0]|0,o=o+1|0,l=l+1|0,u=u-1|0}for(u=d&-4|0,A=u-64|0;(o|0)<=(A|0);)n[o>>2]=n[l>>2],n[o+4>>2]=n[l+4>>2],n[o+8>>2]=n[l+8>>2],n[o+12>>2]=n[l+12>>2],n[o+16>>2]=n[l+16>>2],n[o+20>>2]=n[l+20>>2],n[o+24>>2]=n[l+24>>2],n[o+28>>2]=n[l+28>>2],n[o+32>>2]=n[l+32>>2],n[o+36>>2]=n[l+36>>2],n[o+40>>2]=n[l+40>>2],n[o+44>>2]=n[l+44>>2],n[o+48>>2]=n[l+48>>2],n[o+52>>2]=n[l+52>>2],n[o+56>>2]=n[l+56>>2],n[o+60>>2]=n[l+60>>2],o=o+64|0,l=l+64|0;for(;(o|0)<(u|0);)n[o>>2]=n[l>>2],o=o+4|0,l=l+4|0}else for(u=d-4|0;(o|0)<(u|0);)s[o>>0]=s[l>>0]|0,s[o+1>>0]=s[l+1>>0]|0,s[o+2>>0]=s[l+2>>0]|0,s[o+3>>0]=s[l+3>>0]|0,o=o+4|0,l=l+4|0;for(;(o|0)<(d|0);)s[o>>0]=s[l>>0]|0,o=o+1|0,l=l+1|0;return m|0}function r$(o){o=o|0;var l=0;return l=s[N+(o&255)>>0]|0,(l|0)<8?l|0:(l=s[N+(o>>8&255)>>0]|0,(l|0)<8?l+8|0:(l=s[N+(o>>16&255)>>0]|0,(l|0)<8?l+16|0:(s[N+(o>>>24)>>0]|0)+24|0))}function n$(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0;var m=0,B=0,k=0,T=0,_=0,M=0,G=0,ae=0,We=0,Le=0;if(M=o,T=l,_=T,B=u,ae=A,k=ae,!_)return m=(d|0)!=0,k?m?(n[d>>2]=o|0,n[d+4>>2]=l&0,ae=0,d=0,ye=ae,d|0):(ae=0,d=0,ye=ae,d|0):(m&&(n[d>>2]=(M>>>0)%(B>>>0),n[d+4>>2]=0),ae=0,d=(M>>>0)/(B>>>0)>>>0,ye=ae,d|0);m=(k|0)==0;do if(B){if(!m){if(m=(b(k|0)|0)-(b(_|0)|0)|0,m>>>0<=31){G=m+1|0,k=31-m|0,l=m-31>>31,B=G,o=M>>>(G>>>0)&l|_<<k,l=_>>>(G>>>0)&l,m=0,k=M<<k;break}return d?(n[d>>2]=o|0,n[d+4>>2]=T|l&0,ae=0,d=0,ye=ae,d|0):(ae=0,d=0,ye=ae,d|0)}if(m=B-1|0,m&B|0){k=(b(B|0)|0)+33-(b(_|0)|0)|0,Le=64-k|0,G=32-k|0,T=G>>31,We=k-32|0,l=We>>31,B=k,o=G-1>>31&_>>>(We>>>0)|(_<<G|M>>>(k>>>0))&l,l=l&_>>>(k>>>0),m=M<<Le&T,k=(_<<Le|M>>>(We>>>0))&T|M<<G&k-33>>31;break}return d|0&&(n[d>>2]=m&M,n[d+4>>2]=0),(B|0)==1?(We=T|l&0,Le=o|0|0,ye=We,Le|0):(Le=r$(B|0)|0,We=_>>>(Le>>>0)|0,Le=_<<32-Le|M>>>(Le>>>0)|0,ye=We,Le|0)}else{if(m)return d|0&&(n[d>>2]=(_>>>0)%(B>>>0),n[d+4>>2]=0),We=0,Le=(_>>>0)/(B>>>0)>>>0,ye=We,Le|0;if(!M)return d|0&&(n[d>>2]=0,n[d+4>>2]=(_>>>0)%(k>>>0)),We=0,Le=(_>>>0)/(k>>>0)>>>0,ye=We,Le|0;if(m=k-1|0,!(m&k))return d|0&&(n[d>>2]=o|0,n[d+4>>2]=m&_|l&0),We=0,Le=_>>>((r$(k|0)|0)>>>0),ye=We,Le|0;if(m=(b(k|0)|0)-(b(_|0)|0)|0,m>>>0<=30){l=m+1|0,k=31-m|0,B=l,o=_<<k|M>>>(l>>>0),l=_>>>(l>>>0),m=0,k=M<<k;break}return d?(n[d>>2]=o|0,n[d+4>>2]=T|l&0,We=0,Le=0,ye=We,Le|0):(We=0,Le=0,ye=We,Le|0)}while(!1);if(!B)_=k,T=0,k=0;else{G=u|0|0,M=ae|A&0,_=p_(G|0,M|0,-1,-1)|0,u=ye,T=k,k=0;do A=T,T=m>>>31|T<<1,m=k|m<<1,A=o<<1|A>>>31|0,ae=o>>>31|l<<1|0,ZP(_|0,u|0,A|0,ae|0)|0,Le=ye,We=Le>>31|((Le|0)<0?-1:0)<<1,k=We&1,o=ZP(A|0,ae|0,We&G|0,(((Le|0)<0?-1:0)>>31|((Le|0)<0?-1:0)<<1)&M|0)|0,l=ye,B=B-1|0;while(B|0);_=T,T=0}return B=0,d|0&&(n[d>>2]=o,n[d+4>>2]=l),We=(m|0)>>>31|(_|B)<<1|(B<<1|m>>>31)&0|T,Le=(m<<1|0)&-2|k,ye=We,Le|0}function h_(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,n$(o,l,u,A,0)|0}function Yh(o){o=o|0;var l=0,u=0;return u=o+15&-16|0,l=n[C>>2]|0,o=l+u|0,(u|0)>0&(o|0)<(l|0)|(o|0)<0?(oe()|0,pu(12),-1):(n[C>>2]=o,(o|0)>($()|0)&&!(Z()|0)?(n[C>>2]=l,pu(12),-1):l|0)}function Q2(o,l,u){o=o|0,l=l|0,u=u|0;var A=0;if((l|0)<(o|0)&(o|0)<(l+u|0)){for(A=o,l=l+u|0,o=o+u|0;(u|0)>0;)o=o-1|0,l=l-1|0,u=u-1|0,s[o>>0]=s[l>>0]|0;o=A}else Qr(o,l,u)|0;return o|0}function g_(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0;var d=0,m=0;return m=I,I=I+16|0,d=m|0,n$(o,l,u,A,d)|0,I=m,ye=n[d+4>>2]|0,n[d>>2]|0|0}function i$(o){return o=o|0,(o&255)<<24|(o>>8&255)<<16|(o>>16&255)<<8|o>>>24|0}function WYe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,s$[o&1](l|0,u|0,A|0,d|0,m|0)}function YYe(o,l,u){o=o|0,l=l|0,u=y(u),o$[o&1](l|0,y(u))}function VYe(o,l,u){o=o|0,l=l|0,u=+u,a$[o&31](l|0,+u)}function KYe(o,l,u,A){return o=o|0,l=l|0,u=y(u),A=y(A),y(l$[o&0](l|0,y(u),y(A)))}function JYe(o,l){o=o|0,l=l|0,op[o&127](l|0)}function zYe(o,l,u){o=o|0,l=l|0,u=u|0,ap[o&31](l|0,u|0)}function ZYe(o,l){return o=o|0,l=l|0,hd[o&31](l|0)|0}function XYe(o,l,u,A,d){o=o|0,l=l|0,u=+u,A=+A,d=d|0,c$[o&1](l|0,+u,+A,d|0)}function $Ye(o,l,u,A){o=o|0,l=l|0,u=+u,A=+A,RVe[o&1](l|0,+u,+A)}function eVe(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,ex[o&7](l|0,u|0,A|0)|0}function tVe(o,l,u,A){return o=o|0,l=l|0,u=u|0,A=A|0,+FVe[o&1](l|0,u|0,A|0)}function rVe(o,l){return o=o|0,l=l|0,+u$[o&15](l|0)}function nVe(o,l,u){return o=o|0,l=l|0,u=+u,NVe[o&1](l|0,+u)|0}function iVe(o,l,u){return o=o|0,l=l|0,u=u|0,m_[o&15](l|0,u|0)|0}function sVe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=+A,d=+d,m=m|0,OVe[o&1](l|0,u|0,+A,+d,m|0)}function oVe(o,l,u,A,d,m,B){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,B=B|0,LVe[o&1](l|0,u|0,A|0,d|0,m|0,B|0)}function aVe(o,l,u){return o=o|0,l=l|0,u=u|0,+f$[o&7](l|0,u|0)}function lVe(o){return o=o|0,tx[o&7]()|0}function cVe(o,l,u,A,d,m){return o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,A$[o&1](l|0,u|0,A|0,d|0,m|0)|0}function uVe(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=+d,MVe[o&1](l|0,u|0,A|0,+d)}function fVe(o,l,u,A,d,m,B){o=o|0,l=l|0,u=u|0,A=y(A),d=d|0,m=y(m),B=B|0,p$[o&1](l|0,u|0,y(A),d|0,y(m),B|0)}function AVe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,F2[o&15](l|0,u|0,A|0)}function pVe(o){o=o|0,h$[o&0]()}function hVe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=+A,g$[o&15](l|0,u|0,+A)}function gVe(o,l,u){return o=o|0,l=+l,u=+u,_Ve[o&1](+l,+u)|0}function dVe(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,y_[o&15](l|0,u|0,A|0,d|0)}function mVe(o,l,u,A,d){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,F(0)}function yVe(o,l){o=o|0,l=y(l),F(1)}function Xa(o,l){o=o|0,l=+l,F(2)}function EVe(o,l,u){return o=o|0,l=y(l),u=y(u),F(3),Xe}function wr(o){o=o|0,F(4)}function T2(o,l){o=o|0,l=l|0,F(5)}function Ll(o){return o=o|0,F(6),0}function IVe(o,l,u,A){o=o|0,l=+l,u=+u,A=A|0,F(7)}function CVe(o,l,u){o=o|0,l=+l,u=+u,F(8)}function wVe(o,l,u){return o=o|0,l=l|0,u=u|0,F(9),0}function BVe(o,l,u){return o=o|0,l=l|0,u=u|0,F(10),0}function pd(o){return o=o|0,F(11),0}function vVe(o,l){return o=o|0,l=+l,F(12),0}function R2(o,l){return o=o|0,l=l|0,F(13),0}function SVe(o,l,u,A,d){o=o|0,l=l|0,u=+u,A=+A,d=d|0,F(14)}function DVe(o,l,u,A,d,m){o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,m=m|0,F(15)}function d_(o,l){return o=o|0,l=l|0,F(16),0}function bVe(){return F(17),0}function PVe(o,l,u,A,d){return o=o|0,l=l|0,u=u|0,A=A|0,d=d|0,F(18),0}function xVe(o,l,u,A){o=o|0,l=l|0,u=u|0,A=+A,F(19)}function kVe(o,l,u,A,d,m){o=o|0,l=l|0,u=y(u),A=A|0,d=y(d),m=m|0,F(20)}function $P(o,l,u){o=o|0,l=l|0,u=u|0,F(21)}function QVe(){F(22)}function $y(o,l,u){o=o|0,l=l|0,u=+u,F(23)}function TVe(o,l){return o=+o,l=+l,F(24),0}function eE(o,l,u,A){o=o|0,l=l|0,u=u|0,A=A|0,F(25)}var s$=[mVe,PGe],o$=[yVe,ky],a$=[Xa,Zg,Oh,h2,g2,d2,m2,Pf,My,y2,xf,Xg,$g,E2,I2,vu,ed,C2,_y,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa],l$=[EVe],op=[wr,Zy,lLe,cLe,uLe,_Ue,UUe,HUe,nqe,iqe,sqe,gGe,dGe,mGe,LWe,MWe,_We,vl,zg,u2,sr,gc,LP,MP,XOe,yLe,kLe,KLe,uMe,bMe,GMe,s_e,I_e,O_e,X_e,hUe,kUe,i4e,I4e,O4e,X4e,h3e,k3e,J3e,u8e,v8e,U8e,vP,mHe,RHe,XHe,dje,Qje,Xje,l6e,f6e,P6e,Q6e,K6e,aqe,uqe,bqe,Wqe,Wz,D5e,n9e,y9e,R9e,tWe,dWe,bWe,kWe,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr,wr],ap=[T2,Ny,zL,f2,A2,xr,ao,Xi,Ls,vs,Ly,Nh,B2,xP,nd,$L,eM,kP,QP,nM,kf,ne,$3e,p8e,Ije,x5e,$qe,xX,T2,T2,T2,T2],hd=[Ll,hYe,Ry,rd,Hy,da,SP,Lh,w2,XL,bP,jy,TP,iM,Wy,q8e,Nje,kqe,R5e,Fl,Ll,Ll,Ll,Ll,Ll,Ll,Ll,Ll,Ll,Ll,Ll,Ll],c$=[IVe,cM],RVe=[CVe,Z6e],ex=[wVe,qX,gYe,yYe,QMe,l4e,CHe,L9e],FVe=[BVe,rUe],u$=[pd,Mh,PP,tp,uM,v,D,Q,H,V,pd,pd,pd,pd,pd,pd],NVe=[vVe,s6e],m_=[R2,_Ye,RP,rLe,XLe,VMe,l_e,FUe,v4e,P8e,Qy,w9e,R2,R2,R2,R2],OVe=[SVe,FLe],LVe=[DVe,sWe],f$=[d_,tM,Se,Ue,At,yUe,d_,d_],tx=[bVe,Gt,Ty,BP,g6e,N6e,hqe,FWe],A$=[PVe,By],MVe=[xVe,r3e],p$=[kVe,sM],F2=[$P,To,DP,rM,Du,hMe,B_e,y3e,F3e,JL,ZGe,a9e,IWe,$P,$P,$P],h$=[QVe],g$=[$y,ZL,Oy,ep,p2,Su,Uy,td,U4e,LHe,t6e,$y,$y,$y,$y,$y],_Ve=[TVe,tqe],y_=[eE,U_e,Z8e,rje,Gje,C6e,H6e,Cqe,zqe,_5e,WWe,eE,eE,eE,eE,eE];return{_llvm_bswap_i32:i$,dynCall_idd:gVe,dynCall_i:lVe,_i64Subtract:ZP,___udivdi3:h_,dynCall_vif:YYe,setThrew:ua,dynCall_viii:AVe,_bitshift64Lshr:XP,_bitshift64Shl:t$,dynCall_vi:JYe,dynCall_viiddi:sVe,dynCall_diii:tVe,dynCall_iii:iVe,_memset:Xy,_sbrk:Yh,_memcpy:Qr,__GLOBAL__sub_I_Yoga_cpp:a2,dynCall_vii:zYe,___uremdi3:g_,dynCall_vid:VYe,stackAlloc:Ha,_nbind_init:rYe,getTempRet0:UA,dynCall_di:rVe,dynCall_iid:nVe,setTempRet0:_A,_i64Add:p_,dynCall_fiff:KYe,dynCall_iiii:eVe,_emscripten_get_global_libc:pYe,dynCall_viid:hVe,dynCall_viiid:uVe,dynCall_viififi:fVe,dynCall_ii:ZYe,__GLOBAL__sub_I_Binding_cc:y5e,dynCall_viiii:dVe,dynCall_iiiiii:cVe,stackSave:gf,dynCall_viiiii:WYe,__GLOBAL__sub_I_nbind_cc:vr,dynCall_vidd:$Ye,_free:JP,runPostSets:GYe,dynCall_viiiiii:oVe,establishStackSpace:wn,_memmove:Q2,stackRestore:cc,_malloc:KP,__GLOBAL__sub_I_common_cc:Mqe,dynCall_viddi:XYe,dynCall_dii:aVe,dynCall_v:pVe}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function t(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=t)},Module.callMain=Module.callMain=function t(e){e=e||[],ensureInitRuntime();var r=e.length+1;function s(){for(var p=0;p<3;p++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];s();for(var n=0;n<r-1;n=n+1)a.push(allocate(intArrayFromString(e[n]),"i8",ALLOC_NORMAL)),s();a.push(0),a=allocate(a,"i32",ALLOC_NORMAL);try{var c=Module._main(r,a,0);exit(c,!0)}catch(p){if(p instanceof ExitStatus)return;if(p=="SimulateInfiniteLoop"){Module.noExitRuntime=!0;return}else{var f=p;p&&typeof p=="object"&&p.stack&&(f=[p,p.stack]),Module.printErr("exception thrown: "+f),Module.quit(1,p)}}finally{calledMain=!0}};function run(t){if(t=t||Module.arguments,preloadStartTime===null&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0)||Module.calledRun)return;function e(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(t),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),e()},1)):e()}Module.run=Module.run=run;function exit(t,e){e&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=t,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(t)),ENVIRONMENT_IS_NODE&&process.exit(t),Module.quit(t,new ExitStatus(t)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(t){Module.onAbort&&Module.onAbort(t),t!==void 0?(Module.print(t),Module.printErr(t),t=JSON.stringify(t)):t="",ABORT=!0,EXITSTATUS=1;var e=` +If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+t+") at "+stackTrace()+e;throw abortDecorators&&abortDecorators.forEach(function(s){r=s(r,t)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var Rm=L((rhr,LDe)=>{"use strict";var IPt=NDe(),CPt=ODe(),CW=!1,wW=null;CPt({},function(t,e){if(!CW){if(CW=!0,t)throw t;wW=e}});if(!CW)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");LDe.exports=IPt(wW.bind,wW.lib)});var vW=L((nhr,BW)=>{"use strict";var MDe=t=>Number.isNaN(t)?!1:t>=4352&&(t<=4447||t===9001||t===9002||11904<=t&&t<=12871&&t!==12351||12880<=t&&t<=19903||19968<=t&&t<=42182||43360<=t&&t<=43388||44032<=t&&t<=55203||63744<=t&&t<=64255||65040<=t&&t<=65049||65072<=t&&t<=65131||65281<=t&&t<=65376||65504<=t&&t<=65510||110592<=t&&t<=110593||127488<=t&&t<=127569||131072<=t&&t<=262141);BW.exports=MDe;BW.exports.default=MDe});var UDe=L((ihr,_De)=>{"use strict";_De.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var $S=L((shr,SW)=>{"use strict";var wPt=vk(),BPt=vW(),vPt=UDe(),HDe=t=>{if(typeof t!="string"||t.length===0||(t=wPt(t),t.length===0))return 0;t=t.replace(vPt()," ");let e=0;for(let r=0;r<t.length;r++){let s=t.codePointAt(r);s<=31||s>=127&&s<=159||s>=768&&s<=879||(s>65535&&r++,e+=BPt(s)?2:1)}return e};SW.exports=HDe;SW.exports.default=HDe});var bW=L((ohr,DW)=>{"use strict";var SPt=$S(),jDe=t=>{let e=0;for(let r of t.split(` +`))e=Math.max(e,SPt(r));return e};DW.exports=jDe;DW.exports.default=jDe});var qDe=L(eD=>{"use strict";var DPt=eD&&eD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(eD,"__esModule",{value:!0});var bPt=DPt(bW()),PW={};eD.default=t=>{if(t.length===0)return{width:0,height:0};if(PW[t])return PW[t];let e=bPt.default(t),r=t.split(` +`).length;return PW[t]={width:e,height:r},{width:e,height:r}}});var GDe=L(tD=>{"use strict";var PPt=tD&&tD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(tD,"__esModule",{value:!0});var bn=PPt(Rm()),xPt=(t,e)=>{"position"in e&&t.setPositionType(e.position==="absolute"?bn.default.POSITION_TYPE_ABSOLUTE:bn.default.POSITION_TYPE_RELATIVE)},kPt=(t,e)=>{"marginLeft"in e&&t.setMargin(bn.default.EDGE_START,e.marginLeft||0),"marginRight"in e&&t.setMargin(bn.default.EDGE_END,e.marginRight||0),"marginTop"in e&&t.setMargin(bn.default.EDGE_TOP,e.marginTop||0),"marginBottom"in e&&t.setMargin(bn.default.EDGE_BOTTOM,e.marginBottom||0)},QPt=(t,e)=>{"paddingLeft"in e&&t.setPadding(bn.default.EDGE_LEFT,e.paddingLeft||0),"paddingRight"in e&&t.setPadding(bn.default.EDGE_RIGHT,e.paddingRight||0),"paddingTop"in e&&t.setPadding(bn.default.EDGE_TOP,e.paddingTop||0),"paddingBottom"in e&&t.setPadding(bn.default.EDGE_BOTTOM,e.paddingBottom||0)},TPt=(t,e)=>{var r;"flexGrow"in e&&t.setFlexGrow((r=e.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in e&&t.setFlexShrink(typeof e.flexShrink=="number"?e.flexShrink:1),"flexDirection"in e&&(e.flexDirection==="row"&&t.setFlexDirection(bn.default.FLEX_DIRECTION_ROW),e.flexDirection==="row-reverse"&&t.setFlexDirection(bn.default.FLEX_DIRECTION_ROW_REVERSE),e.flexDirection==="column"&&t.setFlexDirection(bn.default.FLEX_DIRECTION_COLUMN),e.flexDirection==="column-reverse"&&t.setFlexDirection(bn.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in e&&(typeof e.flexBasis=="number"?t.setFlexBasis(e.flexBasis):typeof e.flexBasis=="string"?t.setFlexBasisPercent(Number.parseInt(e.flexBasis,10)):t.setFlexBasis(NaN)),"alignItems"in e&&((e.alignItems==="stretch"||!e.alignItems)&&t.setAlignItems(bn.default.ALIGN_STRETCH),e.alignItems==="flex-start"&&t.setAlignItems(bn.default.ALIGN_FLEX_START),e.alignItems==="center"&&t.setAlignItems(bn.default.ALIGN_CENTER),e.alignItems==="flex-end"&&t.setAlignItems(bn.default.ALIGN_FLEX_END)),"alignSelf"in e&&((e.alignSelf==="auto"||!e.alignSelf)&&t.setAlignSelf(bn.default.ALIGN_AUTO),e.alignSelf==="flex-start"&&t.setAlignSelf(bn.default.ALIGN_FLEX_START),e.alignSelf==="center"&&t.setAlignSelf(bn.default.ALIGN_CENTER),e.alignSelf==="flex-end"&&t.setAlignSelf(bn.default.ALIGN_FLEX_END)),"justifyContent"in e&&((e.justifyContent==="flex-start"||!e.justifyContent)&&t.setJustifyContent(bn.default.JUSTIFY_FLEX_START),e.justifyContent==="center"&&t.setJustifyContent(bn.default.JUSTIFY_CENTER),e.justifyContent==="flex-end"&&t.setJustifyContent(bn.default.JUSTIFY_FLEX_END),e.justifyContent==="space-between"&&t.setJustifyContent(bn.default.JUSTIFY_SPACE_BETWEEN),e.justifyContent==="space-around"&&t.setJustifyContent(bn.default.JUSTIFY_SPACE_AROUND))},RPt=(t,e)=>{var r,s;"width"in e&&(typeof e.width=="number"?t.setWidth(e.width):typeof e.width=="string"?t.setWidthPercent(Number.parseInt(e.width,10)):t.setWidthAuto()),"height"in e&&(typeof e.height=="number"?t.setHeight(e.height):typeof e.height=="string"?t.setHeightPercent(Number.parseInt(e.height,10)):t.setHeightAuto()),"minWidth"in e&&(typeof e.minWidth=="string"?t.setMinWidthPercent(Number.parseInt(e.minWidth,10)):t.setMinWidth((r=e.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in e&&(typeof e.minHeight=="string"?t.setMinHeightPercent(Number.parseInt(e.minHeight,10)):t.setMinHeight((s=e.minHeight)!==null&&s!==void 0?s:0))},FPt=(t,e)=>{"display"in e&&t.setDisplay(e.display==="flex"?bn.default.DISPLAY_FLEX:bn.default.DISPLAY_NONE)},NPt=(t,e)=>{if("borderStyle"in e){let r=typeof e.borderStyle=="string"?1:0;t.setBorder(bn.default.EDGE_TOP,r),t.setBorder(bn.default.EDGE_BOTTOM,r),t.setBorder(bn.default.EDGE_LEFT,r),t.setBorder(bn.default.EDGE_RIGHT,r)}};tD.default=(t,e={})=>{xPt(t,e),kPt(t,e),QPt(t,e),TPt(t,e),RPt(t,e),FPt(t,e),NPt(t,e)}});var VDe=L((chr,YDe)=>{"use strict";var rD=$S(),OPt=vk(),LPt=pk(),kW=new Set(["\x1B","\x9B"]),MPt=39,WDe=t=>`${kW.values().next().value}[${t}m`,_Pt=t=>t.split(" ").map(e=>rD(e)),xW=(t,e,r)=>{let s=[...e],a=!1,n=rD(OPt(t[t.length-1]));for(let[c,f]of s.entries()){let p=rD(f);if(n+p<=r?t[t.length-1]+=f:(t.push(f),n=0),kW.has(f))a=!0;else if(a&&f==="m"){a=!1;continue}a||(n+=p,n===r&&c<s.length-1&&(t.push(""),n=0))}!n&&t[t.length-1].length>0&&t.length>1&&(t[t.length-2]+=t.pop())},UPt=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(rD(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},HPt=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let s="",a="",n,c=_Pt(t),f=[""];for(let[p,h]of t.split(" ").entries()){r.trim!==!1&&(f[f.length-1]=f[f.length-1].trimLeft());let E=rD(f[f.length-1]);if(p!==0&&(E>=e&&(r.wordWrap===!1||r.trim===!1)&&(f.push(""),E=0),(E>0||r.trim===!1)&&(f[f.length-1]+=" ",E++)),r.hard&&c[p]>e){let C=e-E,S=1+Math.floor((c[p]-C-1)/e);Math.floor((c[p]-1)/e)<S&&f.push(""),xW(f,h,e);continue}if(E+c[p]>e&&E>0&&c[p]>0){if(r.wordWrap===!1&&E<e){xW(f,h,e);continue}f.push("")}if(E+c[p]>e&&r.wordWrap===!1){xW(f,h,e);continue}f[f.length-1]+=h}r.trim!==!1&&(f=f.map(UPt)),s=f.join(` +`);for(let[p,h]of[...s].entries()){if(a+=h,kW.has(h)){let C=parseFloat(/\d[^m]*/.exec(s.slice(p,p+4)));n=C===MPt?null:C}let E=LPt.codes.get(Number(n));n&&E&&(s[p+1]===` +`?a+=WDe(E):h===` +`&&(a+=WDe(n)))}return a};YDe.exports=(t,e,r)=>String(t).normalize().replace(/\r\n/g,` +`).split(` +`).map(s=>HPt(s,e,r)).join(` +`)});var zDe=L((uhr,JDe)=>{"use strict";var KDe="[\uD800-\uDBFF][\uDC00-\uDFFF]",jPt=t=>t&&t.exact?new RegExp(`^${KDe}$`):new RegExp(KDe,"g");JDe.exports=jPt});var QW=L((fhr,ebe)=>{"use strict";var qPt=vW(),GPt=zDe(),ZDe=pk(),$De=["\x1B","\x9B"],OF=t=>`${$De[0]}[${t}m`,XDe=(t,e,r)=>{let s=[];t=[...t];for(let a of t){let n=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let c=ZDe.codes.get(parseInt(a,10));if(c){let f=t.indexOf(c.toString());f>=0?t.splice(f,1):s.push(OF(e?c:n))}else if(e){s.push(OF(0));break}else s.push(OF(n))}if(e&&(s=s.filter((a,n)=>s.indexOf(a)===n),r!==void 0)){let a=OF(ZDe.codes.get(parseInt(r,10)));s=s.reduce((n,c)=>c===a?[c,...n]:[...n,c],[])}return s.join("")};ebe.exports=(t,e,r)=>{let s=[...t.normalize()],a=[];r=typeof r=="number"?r:s.length;let n=!1,c,f=0,p="";for(let[h,E]of s.entries()){let C=!1;if($De.includes(E)){let S=/\d[^m]*/.exec(t.slice(h,h+18));c=S&&S.length>0?S[0]:void 0,f<r&&(n=!0,c!==void 0&&a.push(c))}else n&&E==="m"&&(n=!1,C=!0);if(!n&&!C&&++f,!GPt({exact:!0}).test(E)&&qPt(E.codePointAt())&&++f,f>e&&f<=r)p+=E;else if(f===e&&!n&&c!==void 0)p=XDe(a);else if(f>=r){p+=XDe(a,!0,c);break}}return p}});var rbe=L((Ahr,tbe)=>{"use strict";var X0=QW(),WPt=$S();function LF(t,e,r){if(t.charAt(e)===" ")return e;for(let s=1;s<=3;s++)if(r){if(t.charAt(e+s)===" ")return e+s}else if(t.charAt(e-s)===" ")return e-s;return e}tbe.exports=(t,e,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:s,space:a,preferTruncationOnSpace:n}=r,c="\u2026",f=1;if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof e!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof e}`);if(e<1)return"";if(e===1)return c;let p=WPt(t);if(p<=e)return t;if(s==="start"){if(n){let h=LF(t,p-e+1,!0);return c+X0(t,h,p).trim()}return a===!0&&(c+=" ",f=2),c+X0(t,p-e+f,p)}if(s==="middle"){a===!0&&(c=" "+c+" ",f=3);let h=Math.floor(e/2);if(n){let E=LF(t,h),C=LF(t,p-(e-h)+1,!0);return X0(t,0,E)+c+X0(t,C,p).trim()}return X0(t,0,h)+c+X0(t,p-(e-h)+f,p)}if(s==="end"){if(n){let h=LF(t,e-1);return X0(t,0,h)+c}return a===!0&&(c=" "+c,f=2),X0(t,0,e-f)+c}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${s}`)}});var RW=L(nD=>{"use strict";var nbe=nD&&nD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nD,"__esModule",{value:!0});var YPt=nbe(VDe()),VPt=nbe(rbe()),TW={};nD.default=(t,e,r)=>{let s=t+String(e)+String(r);if(TW[s])return TW[s];let a=t;if(r==="wrap"&&(a=YPt.default(t,e,{trim:!1,hard:!0})),r.startsWith("truncate")){let n="end";r==="truncate-middle"&&(n="middle"),r==="truncate-start"&&(n="start"),a=VPt.default(t,e,{position:n})}return TW[s]=a,a}});var NW=L(FW=>{"use strict";Object.defineProperty(FW,"__esModule",{value:!0});var ibe=t=>{let e="";if(t.childNodes.length>0)for(let r of t.childNodes){let s="";r.nodeName==="#text"?s=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(s=ibe(r)),s.length>0&&typeof r.internal_transform=="function"&&(s=r.internal_transform(s))),e+=s}return e};FW.default=ibe});var OW=L(xi=>{"use strict";var iD=xi&&xi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xi,"__esModule",{value:!0});xi.setTextNodeValue=xi.createTextNode=xi.setStyle=xi.setAttribute=xi.removeChildNode=xi.insertBeforeNode=xi.appendChildNode=xi.createNode=xi.TEXT_NAME=void 0;var KPt=iD(Rm()),sbe=iD(qDe()),JPt=iD(GDe()),zPt=iD(RW()),ZPt=iD(NW());xi.TEXT_NAME="#text";xi.createNode=t=>{var e;let r={nodeName:t,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:t==="ink-virtual-text"?void 0:KPt.default.Node.create()};return t==="ink-text"&&((e=r.yogaNode)===null||e===void 0||e.setMeasureFunc(XPt.bind(null,r))),r};xi.appendChildNode=(t,e)=>{var r;e.parentNode&&xi.removeChildNode(e.parentNode,e),e.parentNode=t,t.childNodes.push(e),e.yogaNode&&((r=t.yogaNode)===null||r===void 0||r.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&MF(t)};xi.insertBeforeNode=(t,e,r)=>{var s,a;e.parentNode&&xi.removeChildNode(e.parentNode,e),e.parentNode=t;let n=t.childNodes.indexOf(r);if(n>=0){t.childNodes.splice(n,0,e),e.yogaNode&&((s=t.yogaNode)===null||s===void 0||s.insertChild(e.yogaNode,n));return}t.childNodes.push(e),e.yogaNode&&((a=t.yogaNode)===null||a===void 0||a.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&MF(t)};xi.removeChildNode=(t,e)=>{var r,s;e.yogaNode&&((s=(r=e.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||s===void 0||s.removeChild(e.yogaNode)),e.parentNode=null;let a=t.childNodes.indexOf(e);a>=0&&t.childNodes.splice(a,1),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&MF(t)};xi.setAttribute=(t,e,r)=>{t.attributes[e]=r};xi.setStyle=(t,e)=>{t.style=e,t.yogaNode&&JPt.default(t.yogaNode,e)};xi.createTextNode=t=>{let e={nodeName:"#text",nodeValue:t,yogaNode:void 0,parentNode:null,style:{}};return xi.setTextNodeValue(e,t),e};var XPt=function(t,e){var r,s;let a=t.nodeName==="#text"?t.nodeValue:ZPt.default(t),n=sbe.default(a);if(n.width<=e||n.width>=1&&e>0&&e<1)return n;let c=(s=(r=t.style)===null||r===void 0?void 0:r.textWrap)!==null&&s!==void 0?s:"wrap",f=zPt.default(a,e,c);return sbe.default(f)},obe=t=>{var e;if(!(!t||!t.parentNode))return(e=t.yogaNode)!==null&&e!==void 0?e:obe(t.parentNode)},MF=t=>{let e=obe(t);e?.markDirty()};xi.setTextNodeValue=(t,e)=>{typeof e!="string"&&(e=String(e)),t.nodeValue=e,MF(t)}});var fbe=L(sD=>{"use strict";var ube=sD&&sD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(sD,"__esModule",{value:!0});var abe=yW(),$Pt=ube(xDe()),lbe=ube(Rm()),ta=OW(),cbe=t=>{t?.unsetMeasureFunc(),t?.freeRecursive()};sD.default=$Pt.default({schedulePassiveEffects:abe.unstable_scheduleCallback,cancelPassiveEffects:abe.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>null,preparePortalMount:()=>null,clearContainer:()=>!1,shouldDeprioritizeSubtree:()=>!1,resetAfterCommit:t=>{if(t.isStaticDirty){t.isStaticDirty=!1,typeof t.onImmediateRender=="function"&&t.onImmediateRender();return}typeof t.onRender=="function"&&t.onRender()},getChildHostContext:(t,e)=>{let r=t.isInsideText,s=e==="ink-text"||e==="ink-virtual-text";return r===s?t:{isInsideText:s}},shouldSetTextContent:()=>!1,createInstance:(t,e,r,s)=>{if(s.isInsideText&&t==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let a=t==="ink-text"&&s.isInsideText?"ink-virtual-text":t,n=ta.createNode(a);for(let[c,f]of Object.entries(e))c!=="children"&&(c==="style"?ta.setStyle(n,f):c==="internal_transform"?n.internal_transform=f:c==="internal_static"?n.internal_static=!0:ta.setAttribute(n,c,f));return n},createTextInstance:(t,e,r)=>{if(!r.isInsideText)throw new Error(`Text string "${t}" must be rendered inside <Text> component`);return ta.createTextNode(t)},resetTextContent:()=>{},hideTextInstance:t=>{ta.setTextNodeValue(t,"")},unhideTextInstance:(t,e)=>{ta.setTextNodeValue(t,e)},getPublicInstance:t=>t,hideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(lbe.default.DISPLAY_NONE)},unhideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(lbe.default.DISPLAY_FLEX)},appendInitialChild:ta.appendChildNode,appendChild:ta.appendChildNode,insertBefore:ta.insertBeforeNode,finalizeInitialChildren:(t,e,r,s)=>(t.internal_static&&(s.isStaticDirty=!0,s.staticNode=t),!1),supportsMutation:!0,appendChildToContainer:ta.appendChildNode,insertInContainerBefore:ta.insertBeforeNode,removeChildFromContainer:(t,e)=>{ta.removeChildNode(t,e),cbe(e.yogaNode)},prepareUpdate:(t,e,r,s,a)=>{t.internal_static&&(a.isStaticDirty=!0);let n={},c=Object.keys(s);for(let f of c)if(s[f]!==r[f]){if(f==="style"&&typeof s.style=="object"&&typeof r.style=="object"){let h=s.style,E=r.style,C=Object.keys(h);for(let S of C){if(S==="borderStyle"||S==="borderColor"){if(typeof n.style!="object"){let P={};n.style=P}n.style.borderStyle=h.borderStyle,n.style.borderColor=h.borderColor}if(h[S]!==E[S]){if(typeof n.style!="object"){let P={};n.style=P}n.style[S]=h[S]}}continue}n[f]=s[f]}return n},commitUpdate:(t,e)=>{for(let[r,s]of Object.entries(e))r!=="children"&&(r==="style"?ta.setStyle(t,s):r==="internal_transform"?t.internal_transform=s:r==="internal_static"?t.internal_static=!0:ta.setAttribute(t,r,s))},commitTextUpdate:(t,e,r)=>{ta.setTextNodeValue(t,r)},removeChild:(t,e)=>{ta.removeChildNode(t,e),cbe(e.yogaNode)}})});var pbe=L((mhr,Abe)=>{"use strict";Abe.exports=(t,e=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof t!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof t}\``);if(typeof e!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof e}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(e===0)return t;let s=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return t.replace(s,r.indent.repeat(e))}});var hbe=L(oD=>{"use strict";var ext=oD&&oD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(oD,"__esModule",{value:!0});var _F=ext(Rm());oD.default=t=>t.getComputedWidth()-t.getComputedPadding(_F.default.EDGE_LEFT)-t.getComputedPadding(_F.default.EDGE_RIGHT)-t.getComputedBorder(_F.default.EDGE_LEFT)-t.getComputedBorder(_F.default.EDGE_RIGHT)});var gbe=L((Ehr,txt)=>{txt.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var mbe=L((Ihr,LW)=>{"use strict";var dbe=gbe();LW.exports=dbe;LW.exports.default=dbe});var MW=L(lD=>{"use strict";var rxt=lD&&lD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lD,"__esModule",{value:!0});var aD=rxt(kE()),nxt=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,ixt=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,UF=(t,e)=>e==="foreground"?t:"bg"+t[0].toUpperCase()+t.slice(1);lD.default=(t,e,r)=>{if(!e)return t;if(e in aD.default){let a=UF(e,r);return aD.default[a](t)}if(e.startsWith("#")){let a=UF("hex",r);return aD.default[a](e)(t)}if(e.startsWith("ansi")){let a=ixt.exec(e);if(!a)return t;let n=UF(a[1],r),c=Number(a[2]);return aD.default[n](c)(t)}if(e.startsWith("rgb")||e.startsWith("hsl")||e.startsWith("hsv")||e.startsWith("hwb")){let a=nxt.exec(e);if(!a)return t;let n=UF(a[1],r),c=Number(a[2]),f=Number(a[3]),p=Number(a[4]);return aD.default[n](c,f,p)(t)}return t}});var Ebe=L(cD=>{"use strict";var ybe=cD&&cD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(cD,"__esModule",{value:!0});var sxt=ybe(mbe()),_W=ybe(MW());cD.default=(t,e,r,s)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),n=r.yogaNode.getComputedHeight(),c=r.style.borderColor,f=sxt.default[r.style.borderStyle],p=_W.default(f.topLeft+f.horizontal.repeat(a-2)+f.topRight,c,"foreground"),h=(_W.default(f.vertical,c,"foreground")+` +`).repeat(n-2),E=_W.default(f.bottomLeft+f.horizontal.repeat(a-2)+f.bottomRight,c,"foreground");s.write(t,e,p,{transformers:[]}),s.write(t,e+1,h,{transformers:[]}),s.write(t+a-1,e+1,h,{transformers:[]}),s.write(t,e+n-1,E,{transformers:[]})}}});var Cbe=L(uD=>{"use strict";var Fm=uD&&uD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uD,"__esModule",{value:!0});var oxt=Fm(Rm()),axt=Fm(bW()),lxt=Fm(pbe()),cxt=Fm(RW()),uxt=Fm(hbe()),fxt=Fm(NW()),Axt=Fm(Ebe()),pxt=(t,e)=>{var r;let s=(r=t.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(s){let a=s.getComputedLeft(),n=s.getComputedTop();e=` +`.repeat(n)+lxt.default(e,a)}return e},Ibe=(t,e,r)=>{var s;let{offsetX:a=0,offsetY:n=0,transformers:c=[],skipStaticElements:f}=r;if(f&&t.internal_static)return;let{yogaNode:p}=t;if(p){if(p.getDisplay()===oxt.default.DISPLAY_NONE)return;let h=a+p.getComputedLeft(),E=n+p.getComputedTop(),C=c;if(typeof t.internal_transform=="function"&&(C=[t.internal_transform,...c]),t.nodeName==="ink-text"){let S=fxt.default(t);if(S.length>0){let P=axt.default(S),I=uxt.default(p);if(P>I){let R=(s=t.style.textWrap)!==null&&s!==void 0?s:"wrap";S=cxt.default(S,I,R)}S=pxt(t,S),e.write(h,E,S,{transformers:C})}return}if(t.nodeName==="ink-box"&&Axt.default(h,E,t,e),t.nodeName==="ink-root"||t.nodeName==="ink-box")for(let S of t.childNodes)Ibe(S,e,{offsetX:h,offsetY:E,transformers:C,skipStaticElements:f})}};uD.default=Ibe});var vbe=L(fD=>{"use strict";var Bbe=fD&&fD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fD,"__esModule",{value:!0});var wbe=Bbe(QW()),hxt=Bbe($S()),UW=class{constructor(e){this.writes=[];let{width:r,height:s}=e;this.width=r,this.height=s}write(e,r,s,a){let{transformers:n}=a;s&&this.writes.push({x:e,y:r,text:s,transformers:n})}get(){let e=[];for(let s=0;s<this.height;s++)e.push(" ".repeat(this.width));for(let s of this.writes){let{x:a,y:n,text:c,transformers:f}=s,p=c.split(` +`),h=0;for(let E of p){let C=e[n+h];if(!C)continue;let S=hxt.default(E);for(let P of f)E=P(E);e[n+h]=wbe.default(C,0,a)+E+wbe.default(C,a+S),h++}}return{output:e.map(s=>s.trimRight()).join(` +`),height:e.length}}};fD.default=UW});var bbe=L(AD=>{"use strict";var HW=AD&&AD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(AD,"__esModule",{value:!0});var gxt=HW(Rm()),Sbe=HW(Cbe()),Dbe=HW(vbe());AD.default=(t,e)=>{var r;if(t.yogaNode.setWidth(e),t.yogaNode){t.yogaNode.calculateLayout(void 0,void 0,gxt.default.DIRECTION_LTR);let s=new Dbe.default({width:t.yogaNode.getComputedWidth(),height:t.yogaNode.getComputedHeight()});Sbe.default(t,s,{skipStaticElements:!0});let a;!((r=t.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new Dbe.default({width:t.staticNode.yogaNode.getComputedWidth(),height:t.staticNode.yogaNode.getComputedHeight()}),Sbe.default(t.staticNode,a,{skipStaticElements:!1}));let{output:n,height:c}=s.get();return{output:n,outputHeight:c,staticOutput:a?`${a.get().output} +`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var Qbe=L((Dhr,kbe)=>{"use strict";var Pbe=Ie("stream"),xbe=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],jW={},dxt=t=>{let e=new Pbe.PassThrough,r=new Pbe.PassThrough;e.write=a=>t("stdout",a),r.write=a=>t("stderr",a);let s=new console.Console(e,r);for(let a of xbe)jW[a]=console[a],console[a]=s[a];return()=>{for(let a of xbe)console[a]=jW[a];jW={}}};kbe.exports=dxt});var GW=L(qW=>{"use strict";Object.defineProperty(qW,"__esModule",{value:!0});qW.default=new WeakMap});var YW=L(WW=>{"use strict";Object.defineProperty(WW,"__esModule",{value:!0});var mxt=hn(),Tbe=mxt.createContext({exit:()=>{}});Tbe.displayName="InternalAppContext";WW.default=Tbe});var KW=L(VW=>{"use strict";Object.defineProperty(VW,"__esModule",{value:!0});var yxt=hn(),Rbe=yxt.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});Rbe.displayName="InternalStdinContext";VW.default=Rbe});var zW=L(JW=>{"use strict";Object.defineProperty(JW,"__esModule",{value:!0});var Ext=hn(),Fbe=Ext.createContext({stdout:void 0,write:()=>{}});Fbe.displayName="InternalStdoutContext";JW.default=Fbe});var XW=L(ZW=>{"use strict";Object.defineProperty(ZW,"__esModule",{value:!0});var Ixt=hn(),Nbe=Ixt.createContext({stderr:void 0,write:()=>{}});Nbe.displayName="InternalStderrContext";ZW.default=Nbe});var HF=L($W=>{"use strict";Object.defineProperty($W,"__esModule",{value:!0});var Cxt=hn(),Obe=Cxt.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});Obe.displayName="InternalFocusContext";$W.default=Obe});var Mbe=L((Rhr,Lbe)=>{"use strict";var wxt=/[|\\{}()[\]^$+*?.-]/g;Lbe.exports=t=>{if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(wxt,"\\$&")}});var jbe=L((Fhr,Hbe)=>{"use strict";var Bxt=Mbe(),vxt=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",Ube=[].concat(Ie("module").builtinModules,"bootstrap_node","node").map(t=>new RegExp(`(?:\\((?:node:)?${t}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${t}(?:\\.js)?:\\d+:\\d+$)`));Ube.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var eY=class t{constructor(e){e={ignoredPackages:[],...e},"internals"in e||(e.internals=t.nodeInternals()),"cwd"in e||(e.cwd=vxt),this._cwd=e.cwd.replace(/\\/g,"/"),this._internals=[].concat(e.internals,Sxt(e.ignoredPackages)),this._wrapCallSite=e.wrapCallSite||!1}static nodeInternals(){return[...Ube]}clean(e,r=0){r=" ".repeat(r),Array.isArray(e)||(e=e.split(` +`)),!/^\s*at /.test(e[0])&&/^\s*at /.test(e[1])&&(e=e.slice(1));let s=!1,a=null,n=[];return e.forEach(c=>{if(c=c.replace(/\\/g,"/"),this._internals.some(p=>p.test(c)))return;let f=/^\s*at /.test(c);s?c=c.trimEnd().replace(/^(\s+)at /,"$1"):(c=c.trim(),f&&(c=c.slice(3))),c=c.replace(`${this._cwd}/`,""),c&&(f?(a&&(n.push(a),a=null),n.push(c)):(s=!0,a=c))}),n.map(c=>`${r}${c} +`).join("")}captureString(e,r=this.captureString){typeof e=="function"&&(r=e,e=1/0);let{stackTraceLimit:s}=Error;e&&(Error.stackTraceLimit=e);let a={};Error.captureStackTrace(a,r);let{stack:n}=a;return Error.stackTraceLimit=s,this.clean(n)}capture(e,r=this.capture){typeof e=="function"&&(r=e,e=1/0);let{prepareStackTrace:s,stackTraceLimit:a}=Error;Error.prepareStackTrace=(f,p)=>this._wrapCallSite?p.map(this._wrapCallSite):p,e&&(Error.stackTraceLimit=e);let n={};Error.captureStackTrace(n,r);let{stack:c}=n;return Object.assign(Error,{prepareStackTrace:s,stackTraceLimit:a}),c}at(e=this.at){let[r]=this.capture(1,e);if(!r)return{};let s={line:r.getLineNumber(),column:r.getColumnNumber()};_be(s,r.getFileName(),this._cwd),r.isConstructor()&&(s.constructor=!0),r.isEval()&&(s.evalOrigin=r.getEvalOrigin()),r.isNative()&&(s.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(s.type=a);let n=r.getFunctionName();n&&(s.function=n);let c=r.getMethodName();return c&&n!==c&&(s.method=c),s}parseLine(e){let r=e&&e.match(Dxt);if(!r)return null;let s=r[1]==="new",a=r[2],n=r[3],c=r[4],f=Number(r[5]),p=Number(r[6]),h=r[7],E=r[8],C=r[9],S=r[10]==="native",P=r[11]===")",I,R={};if(E&&(R.line=Number(E)),C&&(R.column=Number(C)),P&&h){let N=0;for(let U=h.length-1;U>0;U--)if(h.charAt(U)===")")N++;else if(h.charAt(U)==="("&&h.charAt(U-1)===" "&&(N--,N===-1&&h.charAt(U-1)===" ")){let W=h.slice(0,U-1);h=h.slice(U+1),a+=` (${W}`;break}}if(a){let N=a.match(bxt);N&&(a=N[1],I=N[2])}return _be(R,h,this._cwd),s&&(R.constructor=!0),n&&(R.evalOrigin=n,R.evalLine=f,R.evalColumn=p,R.evalFile=c&&c.replace(/\\/g,"/")),S&&(R.native=!0),a&&(R.function=a),I&&a!==I&&(R.method=I),R}};function _be(t,e,r){e&&(e=e.replace(/\\/g,"/"),e.startsWith(`${r}/`)&&(e=e.slice(r.length+1)),t.file=e)}function Sxt(t){if(t.length===0)return[];let e=t.map(r=>Bxt(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${e.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var Dxt=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),bxt=/^(.*?) \[as (.*?)\]$/;Hbe.exports=eY});var Gbe=L((Nhr,qbe)=>{"use strict";qbe.exports=(t,e)=>t.replace(/^\t+/gm,r=>" ".repeat(r.length*(e||2)))});var Ybe=L((Ohr,Wbe)=>{"use strict";var Pxt=Gbe(),xxt=(t,e)=>{let r=[],s=t-e,a=t+e;for(let n=s;n<=a;n++)r.push(n);return r};Wbe.exports=(t,e,r)=>{if(typeof t!="string")throw new TypeError("Source code is missing.");if(!e||e<1)throw new TypeError("Line number must start from `1`.");if(t=Pxt(t).split(/\r?\n/),!(e>t.length))return r={around:3,...r},xxt(e,r.around).filter(s=>t[s-1]!==void 0).map(s=>({line:s,value:t[s-1]}))}});var jF=L(nf=>{"use strict";var kxt=nf&&nf.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Qxt=nf&&nf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Txt=nf&&nf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&kxt(e,t,r);return Qxt(e,t),e},Rxt=nf&&nf.__rest||function(t,e){var r={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(r[s]=t[s]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(t);a<s.length;a++)e.indexOf(s[a])<0&&Object.prototype.propertyIsEnumerable.call(t,s[a])&&(r[s[a]]=t[s[a]]);return r};Object.defineProperty(nf,"__esModule",{value:!0});var Vbe=Txt(hn()),tY=Vbe.forwardRef((t,e)=>{var{children:r}=t,s=Rxt(t,["children"]);let a=Object.assign(Object.assign({},s),{marginLeft:s.marginLeft||s.marginX||s.margin||0,marginRight:s.marginRight||s.marginX||s.margin||0,marginTop:s.marginTop||s.marginY||s.margin||0,marginBottom:s.marginBottom||s.marginY||s.margin||0,paddingLeft:s.paddingLeft||s.paddingX||s.padding||0,paddingRight:s.paddingRight||s.paddingX||s.padding||0,paddingTop:s.paddingTop||s.paddingY||s.padding||0,paddingBottom:s.paddingBottom||s.paddingY||s.padding||0});return Vbe.default.createElement("ink-box",{ref:e,style:a},r)});tY.displayName="Box";tY.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};nf.default=tY});var iY=L(pD=>{"use strict";var rY=pD&&pD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pD,"__esModule",{value:!0});var Fxt=rY(hn()),yw=rY(kE()),Kbe=rY(MW()),nY=({color:t,backgroundColor:e,dimColor:r,bold:s,italic:a,underline:n,strikethrough:c,inverse:f,wrap:p,children:h})=>{if(h==null)return null;let E=C=>(r&&(C=yw.default.dim(C)),t&&(C=Kbe.default(C,t,"foreground")),e&&(C=Kbe.default(C,e,"background")),s&&(C=yw.default.bold(C)),a&&(C=yw.default.italic(C)),n&&(C=yw.default.underline(C)),c&&(C=yw.default.strikethrough(C)),f&&(C=yw.default.inverse(C)),C);return Fxt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:p},internal_transform:E},h)};nY.displayName="Text";nY.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};pD.default=nY});var Xbe=L(sf=>{"use strict";var Nxt=sf&&sf.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Oxt=sf&&sf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Lxt=sf&&sf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Nxt(e,t,r);return Oxt(e,t),e},hD=sf&&sf.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(sf,"__esModule",{value:!0});var Jbe=Lxt(Ie("fs")),Rs=hD(hn()),zbe=hD(jbe()),Mxt=hD(Ybe()),th=hD(jF()),hA=hD(iY()),Zbe=new zbe.default({cwd:process.cwd(),internals:zbe.default.nodeInternals()}),_xt=({error:t})=>{let e=t.stack?t.stack.split(` +`).slice(1):void 0,r=e?Zbe.parseLine(e[0]):void 0,s,a=0;if(r?.file&&r?.line&&Jbe.existsSync(r.file)){let n=Jbe.readFileSync(r.file,"utf8");if(s=Mxt.default(n,r.line),s)for(let{line:c}of s)a=Math.max(a,String(c).length)}return Rs.default.createElement(th.default,{flexDirection:"column",padding:1},Rs.default.createElement(th.default,null,Rs.default.createElement(hA.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),Rs.default.createElement(hA.default,null," ",t.message)),r&&Rs.default.createElement(th.default,{marginTop:1},Rs.default.createElement(hA.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&s&&Rs.default.createElement(th.default,{marginTop:1,flexDirection:"column"},s.map(({line:n,value:c})=>Rs.default.createElement(th.default,{key:n},Rs.default.createElement(th.default,{width:a+1},Rs.default.createElement(hA.default,{dimColor:n!==r.line,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0},String(n).padStart(a," "),":")),Rs.default.createElement(hA.default,{key:n,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0}," "+c)))),t.stack&&Rs.default.createElement(th.default,{marginTop:1,flexDirection:"column"},t.stack.split(` +`).slice(1).map(n=>{let c=Zbe.parseLine(n);return c?Rs.default.createElement(th.default,{key:n},Rs.default.createElement(hA.default,{dimColor:!0},"- "),Rs.default.createElement(hA.default,{dimColor:!0,bold:!0},c.function),Rs.default.createElement(hA.default,{dimColor:!0,color:"gray"}," ","(",c.file,":",c.line,":",c.column,")")):Rs.default.createElement(th.default,{key:n},Rs.default.createElement(hA.default,{dimColor:!0},"- "),Rs.default.createElement(hA.default,{dimColor:!0,bold:!0},n))})))};sf.default=_xt});var ePe=L(of=>{"use strict";var Uxt=of&&of.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Hxt=of&&of.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),jxt=of&&of.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Uxt(e,t,r);return Hxt(e,t),e},Om=of&&of.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(of,"__esModule",{value:!0});var Nm=jxt(hn()),$be=Om(oW()),qxt=Om(YW()),Gxt=Om(KW()),Wxt=Om(zW()),Yxt=Om(XW()),Vxt=Om(HF()),Kxt=Om(Xbe()),Jxt=" ",zxt="\x1B[Z",Zxt="\x1B",qF=class extends Nm.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=e=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),e){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=e=>{e===""&&this.props.exitOnCtrlC&&this.handleExit(),e===Zxt&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(e===Jxt&&this.focusNext(),e===zxt&&this.focusPrevious())},this.handleExit=e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focus=e=>{this.setState(r=>r.focusables.some(a=>a?.id===e)?{activeFocusId:e}:r)},this.focusNext=()=>{this.setState(e=>{var r;let s=(r=e.focusables[0])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findNextFocusable(e)||s}})},this.focusPrevious=()=>{this.setState(e=>{var r;let s=(r=e.focusables[e.focusables.length-1])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findPreviousFocusable(e)||s}})},this.addFocusable=(e,{autoFocus:r})=>{this.setState(s=>{let a=s.activeFocusId;return!a&&r&&(a=e),{activeFocusId:a,focusables:[...s.focusables,{id:e,isActive:!0}]}})},this.removeFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.filter(s=>s.id!==e)}))},this.activateFocusable=e=>{this.setState(r=>({focusables:r.focusables.map(s=>s.id!==e?s:{id:e,isActive:!0})}))},this.deactivateFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.map(s=>s.id!==e?s:{id:e,isActive:!1})}))},this.findNextFocusable=e=>{var r;let s=e.focusables.findIndex(a=>a.id===e.activeFocusId);for(let a=s+1;a<e.focusables.length;a++)if(!((r=e.focusables[a])===null||r===void 0)&&r.isActive)return e.focusables[a].id},this.findPreviousFocusable=e=>{var r;let s=e.focusables.findIndex(a=>a.id===e.activeFocusId);for(let a=s-1;a>=0;a--)if(!((r=e.focusables[a])===null||r===void 0)&&r.isActive)return e.focusables[a].id}}static getDerivedStateFromError(e){return{error:e}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return Nm.default.createElement(qxt.default.Provider,{value:{exit:this.handleExit}},Nm.default.createElement(Gxt.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},Nm.default.createElement(Wxt.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},Nm.default.createElement(Yxt.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},Nm.default.createElement(Vxt.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious,focus:this.focus}},this.state.error?Nm.default.createElement(Kxt.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){$be.default.hide(this.props.stdout)}componentWillUnmount(){$be.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}};of.default=qF;qF.displayName="InternalApp"});var nPe=L(af=>{"use strict";var Xxt=af&&af.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),$xt=af&&af.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ekt=af&&af.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&Xxt(e,t,r);return $xt(e,t),e},lf=af&&af.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(af,"__esModule",{value:!0});var tkt=lf(hn()),tPe=V8(),rkt=lf(fDe()),nkt=lf(tW()),ikt=lf(mDe()),skt=lf(EDe()),sY=lf(fbe()),okt=lf(bbe()),akt=lf(sW()),lkt=lf(Qbe()),ckt=ekt(OW()),ukt=lf(GW()),fkt=lf(ePe()),Ew=process.env.CI==="false"?!1:ikt.default,rPe=()=>{},oY=class{constructor(e){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:s,staticOutput:a}=okt.default(this.rootNode,this.options.stdout.columns||80),n=a&&a!==` +`;if(this.options.debug){n&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(Ew){n&&this.options.stdout.write(a),this.lastOutput=r;return}if(n&&(this.fullStaticOutput+=a),s>=this.options.stdout.rows){this.options.stdout.write(nkt.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}n&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!n&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},skt.default(this),this.options=e,this.rootNode=ckt.createNode("ink-root"),this.rootNode.onRender=e.debug?this.onRender:tPe(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=rkt.default.create(e.stdout),this.throttledLog=e.debug?this.log:tPe(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=sY.default.createContainer(this.rootNode,0,!1,null),this.unsubscribeExit=akt.default(this.unmount,{alwaysLast:!1}),e.patchConsole&&this.patchConsole(),Ew||(e.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{e.stdout.off("resize",this.onRender)})}render(e){let r=tkt.default.createElement(fkt.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);sY.default.updateContainer(r,this.container,null,rPe)}writeToStdout(e){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(e+this.fullStaticOutput+this.lastOutput);return}if(Ew){this.options.stdout.write(e);return}this.log.clear(),this.options.stdout.write(e),this.log(this.lastOutput)}}writeToStderr(e){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(e),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(Ew){this.options.stderr.write(e);return}this.log.clear(),this.options.stderr.write(e),this.log(this.lastOutput)}}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),Ew?this.options.stdout.write(this.lastOutput+` +`):this.options.debug||this.log.done(),this.isUnmounted=!0,sY.default.updateContainer(null,this.container,null,rPe),ukt.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((e,r)=>{this.resolveExitPromise=e,this.rejectExitPromise=r})),this.exitPromise}clear(){!Ew&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=lkt.default((e,r)=>{e==="stdout"&&this.writeToStdout(r),e==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};af.default=oY});var sPe=L(gD=>{"use strict";var iPe=gD&&gD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(gD,"__esModule",{value:!0});var Akt=iPe(nPe()),GF=iPe(GW()),pkt=Ie("stream"),hkt=(t,e)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},gkt(e)),s=dkt(r.stdout,()=>new Akt.default(r));return s.render(t),{rerender:s.render,unmount:()=>s.unmount(),waitUntilExit:s.waitUntilExit,cleanup:()=>GF.default.delete(r.stdout),clear:s.clear}};gD.default=hkt;var gkt=(t={})=>t instanceof pkt.Stream?{stdout:t,stdin:process.stdin}:t,dkt=(t,e)=>{let r;return GF.default.has(t)?r=GF.default.get(t):(r=e(),GF.default.set(t,r)),r}});var aPe=L(rh=>{"use strict";var mkt=rh&&rh.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),ykt=rh&&rh.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ekt=rh&&rh.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&mkt(e,t,r);return ykt(e,t),e};Object.defineProperty(rh,"__esModule",{value:!0});var dD=Ekt(hn()),oPe=t=>{let{items:e,children:r,style:s}=t,[a,n]=dD.useState(0),c=dD.useMemo(()=>e.slice(a),[e,a]);dD.useLayoutEffect(()=>{n(e.length)},[e.length]);let f=c.map((h,E)=>r(h,a+E)),p=dD.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},s),[s]);return dD.default.createElement("ink-box",{internal_static:!0,style:p},f)};oPe.displayName="Static";rh.default=oPe});var cPe=L(mD=>{"use strict";var Ikt=mD&&mD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(mD,"__esModule",{value:!0});var Ckt=Ikt(hn()),lPe=({children:t,transform:e})=>t==null?null:Ckt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:e},t);lPe.displayName="Transform";mD.default=lPe});var fPe=L(yD=>{"use strict";var wkt=yD&&yD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(yD,"__esModule",{value:!0});var Bkt=wkt(hn()),uPe=({count:t=1})=>Bkt.default.createElement("ink-text",null,` +`.repeat(t));uPe.displayName="Newline";yD.default=uPe});var hPe=L(ED=>{"use strict";var APe=ED&&ED.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ED,"__esModule",{value:!0});var vkt=APe(hn()),Skt=APe(jF()),pPe=()=>vkt.default.createElement(Skt.default,{flexGrow:1});pPe.displayName="Spacer";ED.default=pPe});var WF=L(ID=>{"use strict";var Dkt=ID&&ID.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ID,"__esModule",{value:!0});var bkt=hn(),Pkt=Dkt(KW()),xkt=()=>bkt.useContext(Pkt.default);ID.default=xkt});var dPe=L(CD=>{"use strict";var kkt=CD&&CD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(CD,"__esModule",{value:!0});var gPe=hn(),Qkt=kkt(WF()),Tkt=(t,e={})=>{let{stdin:r,setRawMode:s,internal_exitOnCtrlC:a}=Qkt.default();gPe.useEffect(()=>{if(e.isActive!==!1)return s(!0),()=>{s(!1)}},[e.isActive,s]),gPe.useEffect(()=>{if(e.isActive===!1)return;let n=c=>{let f=String(c),p={upArrow:f==="\x1B[A",downArrow:f==="\x1B[B",leftArrow:f==="\x1B[D",rightArrow:f==="\x1B[C",pageDown:f==="\x1B[6~",pageUp:f==="\x1B[5~",return:f==="\r",escape:f==="\x1B",ctrl:!1,shift:!1,tab:f===" "||f==="\x1B[Z",backspace:f==="\b",delete:f==="\x7F"||f==="\x1B[3~",meta:!1};f<=""&&!p.return&&(f=String.fromCharCode(f.charCodeAt(0)+97-1),p.ctrl=!0),f.startsWith("\x1B")&&(f=f.slice(1),p.meta=!0);let h=f>="A"&&f<="Z",E=f>="\u0410"&&f<="\u042F";f.length===1&&(h||E)&&(p.shift=!0),p.tab&&f==="[Z"&&(p.shift=!0),(p.tab||p.backspace||p.delete)&&(f=""),(!(f==="c"&&p.ctrl)||!a)&&t(f,p)};return r?.on("data",n),()=>{r?.off("data",n)}},[e.isActive,r,a,t])};CD.default=Tkt});var mPe=L(wD=>{"use strict";var Rkt=wD&&wD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(wD,"__esModule",{value:!0});var Fkt=hn(),Nkt=Rkt(YW()),Okt=()=>Fkt.useContext(Nkt.default);wD.default=Okt});var yPe=L(BD=>{"use strict";var Lkt=BD&&BD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(BD,"__esModule",{value:!0});var Mkt=hn(),_kt=Lkt(zW()),Ukt=()=>Mkt.useContext(_kt.default);BD.default=Ukt});var EPe=L(vD=>{"use strict";var Hkt=vD&&vD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vD,"__esModule",{value:!0});var jkt=hn(),qkt=Hkt(XW()),Gkt=()=>jkt.useContext(qkt.default);vD.default=Gkt});var CPe=L(DD=>{"use strict";var IPe=DD&&DD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(DD,"__esModule",{value:!0});var SD=hn(),Wkt=IPe(HF()),Ykt=IPe(WF()),Vkt=({isActive:t=!0,autoFocus:e=!1,id:r}={})=>{let{isRawModeSupported:s,setRawMode:a}=Ykt.default(),{activeId:n,add:c,remove:f,activate:p,deactivate:h,focus:E}=SD.useContext(Wkt.default),C=SD.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return SD.useEffect(()=>(c(C,{autoFocus:e}),()=>{f(C)}),[C,e]),SD.useEffect(()=>{t?p(C):h(C)},[t,C]),SD.useEffect(()=>{if(!(!s||!t))return a(!0),()=>{a(!1)}},[t]),{isFocused:!!C&&n===C,focus:E}};DD.default=Vkt});var wPe=L(bD=>{"use strict";var Kkt=bD&&bD.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(bD,"__esModule",{value:!0});var Jkt=hn(),zkt=Kkt(HF()),Zkt=()=>{let t=Jkt.useContext(zkt.default);return{enableFocus:t.enableFocus,disableFocus:t.disableFocus,focusNext:t.focusNext,focusPrevious:t.focusPrevious,focus:t.focus}};bD.default=Zkt});var BPe=L(aY=>{"use strict";Object.defineProperty(aY,"__esModule",{value:!0});aY.default=t=>{var e,r,s,a;return{width:(r=(e=t.yogaNode)===null||e===void 0?void 0:e.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(s=t.yogaNode)===null||s===void 0?void 0:s.getComputedHeight())!==null&&a!==void 0?a:0}}});var Vc=L(Eo=>{"use strict";Object.defineProperty(Eo,"__esModule",{value:!0});var Xkt=sPe();Object.defineProperty(Eo,"render",{enumerable:!0,get:function(){return Xkt.default}});var $kt=jF();Object.defineProperty(Eo,"Box",{enumerable:!0,get:function(){return $kt.default}});var eQt=iY();Object.defineProperty(Eo,"Text",{enumerable:!0,get:function(){return eQt.default}});var tQt=aPe();Object.defineProperty(Eo,"Static",{enumerable:!0,get:function(){return tQt.default}});var rQt=cPe();Object.defineProperty(Eo,"Transform",{enumerable:!0,get:function(){return rQt.default}});var nQt=fPe();Object.defineProperty(Eo,"Newline",{enumerable:!0,get:function(){return nQt.default}});var iQt=hPe();Object.defineProperty(Eo,"Spacer",{enumerable:!0,get:function(){return iQt.default}});var sQt=dPe();Object.defineProperty(Eo,"useInput",{enumerable:!0,get:function(){return sQt.default}});var oQt=mPe();Object.defineProperty(Eo,"useApp",{enumerable:!0,get:function(){return oQt.default}});var aQt=WF();Object.defineProperty(Eo,"useStdin",{enumerable:!0,get:function(){return aQt.default}});var lQt=yPe();Object.defineProperty(Eo,"useStdout",{enumerable:!0,get:function(){return lQt.default}});var cQt=EPe();Object.defineProperty(Eo,"useStderr",{enumerable:!0,get:function(){return cQt.default}});var uQt=CPe();Object.defineProperty(Eo,"useFocus",{enumerable:!0,get:function(){return uQt.default}});var fQt=wPe();Object.defineProperty(Eo,"useFocusManager",{enumerable:!0,get:function(){return fQt.default}});var AQt=BPe();Object.defineProperty(Eo,"measureElement",{enumerable:!0,get:function(){return AQt.default}})});var cY={};Vt(cY,{Gem:()=>lY});var vPe,Lm,lY,YF=Ct(()=>{vPe=et(Vc()),Lm=et(hn()),lY=(0,Lm.memo)(({active:t})=>{let e=(0,Lm.useMemo)(()=>t?"\u25C9":"\u25EF",[t]),r=(0,Lm.useMemo)(()=>t?"green":"yellow",[t]);return Lm.default.createElement(vPe.Text,{color:r},e)})});var DPe={};Vt(DPe,{useKeypress:()=>Mm});function Mm({active:t},e,r){let{stdin:s}=(0,SPe.useStdin)(),a=(0,VF.useCallback)((n,c)=>e(n,c),r);(0,VF.useEffect)(()=>{if(!(!t||!s))return s.on("keypress",a),()=>{s.off("keypress",a)}},[t,a,s])}var SPe,VF,PD=Ct(()=>{SPe=et(Vc()),VF=et(hn())});var PPe={};Vt(PPe,{FocusRequest:()=>bPe,useFocusRequest:()=>uY});var bPe,uY,fY=Ct(()=>{PD();bPe=(r=>(r.BEFORE="before",r.AFTER="after",r))(bPe||{}),uY=function({active:t},e,r){Mm({active:t},(s,a)=>{a.name==="tab"&&(a.shift?e("before"):e("after"))},r)}});var xPe={};Vt(xPe,{useListInput:()=>xD});var xD,KF=Ct(()=>{PD();xD=function(t,e,{active:r,minus:s,plus:a,set:n,loop:c=!0}){Mm({active:r},(f,p)=>{let h=e.indexOf(t);switch(p.name){case s:{let E=h-1;if(c){n(e[(e.length+E)%e.length]);return}if(E<0)return;n(e[E])}break;case a:{let E=h+1;if(c){n(e[E%e.length]);return}if(E>=e.length)return;n(e[E])}break}},[e,t,a,n,c])}});var JF={};Vt(JF,{ScrollableItems:()=>pQt});var $0,ml,pQt,zF=Ct(()=>{$0=et(Vc()),ml=et(hn());fY();KF();pQt=({active:t=!0,children:e=[],radius:r=10,size:s=1,loop:a=!0,onFocusRequest:n,willReachEnd:c})=>{let f=N=>{if(N.key===null)throw new Error("Expected all children to have a key");return N.key},p=ml.default.Children.map(e,N=>f(N)),h=p[0],[E,C]=(0,ml.useState)(h),S=p.indexOf(E);(0,ml.useEffect)(()=>{p.includes(E)||C(h)},[e]),(0,ml.useEffect)(()=>{c&&S>=p.length-2&&c()},[S]),uY({active:t&&!!n},N=>{n?.(N)},[n]),xD(E,p,{active:t,minus:"up",plus:"down",set:C,loop:a});let P=S-r,I=S+r;I>p.length&&(P-=I-p.length,I=p.length),P<0&&(I+=-P,P=0),I>=p.length&&(I=p.length-1);let R=[];for(let N=P;N<=I;++N){let U=p[N],W=t&&U===E;R.push(ml.default.createElement($0.Box,{key:U,height:s},ml.default.createElement($0.Box,{marginLeft:1,marginRight:1},ml.default.createElement($0.Text,null,W?ml.default.createElement($0.Text,{color:"cyan",bold:!0},">"):" ")),ml.default.createElement($0.Box,null,ml.default.cloneElement(e[N],{active:W}))))}return ml.default.createElement($0.Box,{flexDirection:"column",width:"100%"},R)}});var kPe,nh,QPe,AY,TPe,pY=Ct(()=>{kPe=et(Vc()),nh=et(hn()),QPe=Ie("readline"),AY=nh.default.createContext(null),TPe=({children:t})=>{let{stdin:e,setRawMode:r}=(0,kPe.useStdin)();(0,nh.useEffect)(()=>{r&&r(!0),e&&(0,QPe.emitKeypressEvents)(e)},[e,r]);let[s,a]=(0,nh.useState)(new Map),n=(0,nh.useMemo)(()=>({getAll:()=>s,get:c=>s.get(c),set:(c,f)=>a(new Map([...s,[c,f]]))}),[s,a]);return nh.default.createElement(AY.Provider,{value:n,children:t})}});var hY={};Vt(hY,{useMinistore:()=>hQt});function hQt(t,e){let r=(0,ZF.useContext)(AY);if(r===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof t>"u")return r.getAll();let s=(0,ZF.useCallback)(n=>{r.set(t,n)},[t,r.set]),a=r.get(t);return typeof a>"u"&&(a=e),[a,s]}var ZF,gY=Ct(()=>{ZF=et(hn());pY()});var $F={};Vt($F,{renderForm:()=>gQt});async function gQt(t,e,{stdin:r,stdout:s,stderr:a}){let n,c=p=>{let{exit:h}=(0,XF.useApp)();Mm({active:!0},(E,C)=>{C.name==="return"&&(n=p,h())},[h,p])},{waitUntilExit:f}=(0,XF.render)(dY.default.createElement(TPe,null,dY.default.createElement(t,{...e,useSubmit:c})),{stdin:r,stdout:s,stderr:a});return await f(),n}var XF,dY,eN=Ct(()=>{XF=et(Vc()),dY=et(hn());pY();PD()});var OPe=L(kD=>{"use strict";Object.defineProperty(kD,"__esModule",{value:!0});kD.UncontrolledTextInput=void 0;var FPe=hn(),mY=hn(),RPe=Vc(),_m=kE(),NPe=({value:t,placeholder:e="",focus:r=!0,mask:s,highlightPastedText:a=!1,showCursor:n=!0,onChange:c,onSubmit:f})=>{let[{cursorOffset:p,cursorWidth:h},E]=mY.useState({cursorOffset:(t||"").length,cursorWidth:0});mY.useEffect(()=>{E(R=>{if(!r||!n)return R;let N=t||"";return R.cursorOffset>N.length-1?{cursorOffset:N.length,cursorWidth:0}:R})},[t,r,n]);let C=a?h:0,S=s?s.repeat(t.length):t,P=S,I=e?_m.grey(e):void 0;if(n&&r){I=e.length>0?_m.inverse(e[0])+_m.grey(e.slice(1)):_m.inverse(" "),P=S.length>0?"":_m.inverse(" ");let R=0;for(let N of S)R>=p-C&&R<=p?P+=_m.inverse(N):P+=N,R++;S.length>0&&p===S.length&&(P+=_m.inverse(" "))}return RPe.useInput((R,N)=>{if(N.upArrow||N.downArrow||N.ctrl&&R==="c"||N.tab||N.shift&&N.tab)return;if(N.return){f&&f(t);return}let U=p,W=t,te=0;N.leftArrow?n&&U--:N.rightArrow?n&&U++:N.backspace||N.delete?p>0&&(W=t.slice(0,p-1)+t.slice(p,t.length),U--):(W=t.slice(0,p)+R+t.slice(p,t.length),U+=R.length,R.length>1&&(te=R.length)),p<0&&(U=0),p>t.length&&(U=t.length),E({cursorOffset:U,cursorWidth:te}),W!==t&&c(W)},{isActive:r}),FPe.createElement(RPe.Text,null,e?S.length>0?P:I:P)};kD.default=NPe;kD.UncontrolledTextInput=({initialValue:t="",...e})=>{let[r,s]=mY.useState(t);return FPe.createElement(NPe,Object.assign({},e,{value:r,onChange:s}))}});var _Pe={};Vt(_Pe,{Pad:()=>yY});var LPe,MPe,yY,EY=Ct(()=>{LPe=et(Vc()),MPe=et(hn()),yY=({length:t,active:e})=>{if(t===0)return null;let r=t>1?` ${"-".repeat(t-1)}`:" ";return MPe.default.createElement(LPe.Text,{dimColor:!e},r)}});var UPe={};Vt(UPe,{ItemOptions:()=>dQt});var TD,eg,dQt,HPe=Ct(()=>{TD=et(Vc()),eg=et(hn());KF();YF();EY();dQt=function({active:t,skewer:e,options:r,value:s,onChange:a,sizes:n=[]}){let c=r.filter(({label:p})=>!!p).map(({value:p})=>p),f=r.findIndex(p=>p.value===s&&p.label!="");return xD(s,c,{active:t,minus:"left",plus:"right",set:a}),eg.default.createElement(eg.default.Fragment,null,r.map(({label:p},h)=>{let E=h===f,C=n[h]-1||0,S=p.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),P=Math.max(0,C-S.length-2);return p?eg.default.createElement(TD.Box,{key:p,width:C,marginLeft:1},eg.default.createElement(TD.Text,{wrap:"truncate"},eg.default.createElement(lY,{active:E})," ",p),e?eg.default.createElement(yY,{active:t,length:P}):null):eg.default.createElement(TD.Box,{key:`spacer-${h}`,width:C,marginLeft:1})}))}});var rxe=L((Ugr,txe)=>{var kY;txe.exports=()=>(typeof kY>"u"&&(kY=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),kY)});var Bxe=L((fdr,wxe)=>{var _Y=Symbol("arg flag"),Kc=class t extends Error{constructor(e,r){super(e),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,t.prototype)}};function JD(t,{argv:e=process.argv.slice(2),permissive:r=!1,stopAtPositional:s=!1}={}){if(!t)throw new Kc("argument specification object is required","ARG_CONFIG_NO_SPEC");let a={_:[]},n={},c={};for(let f of Object.keys(t)){if(!f)throw new Kc("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(f[0]!=="-")throw new Kc(`argument key must start with '-' but found: '${f}'`,"ARG_CONFIG_NONOPT_KEY");if(f.length===1)throw new Kc(`argument key must have a name; singular '-' keys are not allowed: ${f}`,"ARG_CONFIG_NONAME_KEY");if(typeof t[f]=="string"){n[f]=t[f];continue}let p=t[f],h=!1;if(Array.isArray(p)&&p.length===1&&typeof p[0]=="function"){let[E]=p;p=(C,S,P=[])=>(P.push(E(C,S,P[P.length-1])),P),h=E===Boolean||E[_Y]===!0}else if(typeof p=="function")h=p===Boolean||p[_Y]===!0;else throw new Kc(`type missing or not a function or valid array type: ${f}`,"ARG_CONFIG_VAD_TYPE");if(f[1]!=="-"&&f.length>2)throw new Kc(`short argument keys (with a single hyphen) must have only one character: ${f}`,"ARG_CONFIG_SHORTOPT_TOOLONG");c[f]=[p,h]}for(let f=0,p=e.length;f<p;f++){let h=e[f];if(s&&a._.length>0){a._=a._.concat(e.slice(f));break}if(h==="--"){a._=a._.concat(e.slice(f+1));break}if(h.length>1&&h[0]==="-"){let E=h[1]==="-"||h.length===2?[h]:h.slice(1).split("").map(C=>`-${C}`);for(let C=0;C<E.length;C++){let S=E[C],[P,I]=S[1]==="-"?S.split(/=(.*)/,2):[S,void 0],R=P;for(;R in n;)R=n[R];if(!(R in c))if(r){a._.push(S);continue}else throw new Kc(`unknown or unexpected option: ${P}`,"ARG_UNKNOWN_OPTION");let[N,U]=c[R];if(!U&&C+1<E.length)throw new Kc(`option requires argument (but was followed by another short argument): ${P}`,"ARG_MISSING_REQUIRED_SHORTARG");if(U)a[R]=N(!0,R,a[R]);else if(I===void 0){if(e.length<f+2||e[f+1].length>1&&e[f+1][0]==="-"&&!(e[f+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(N===Number||typeof BigInt<"u"&&N===BigInt))){let W=P===R?"":` (alias for ${R})`;throw new Kc(`option requires argument: ${P}${W}`,"ARG_MISSING_REQUIRED_LONGARG")}a[R]=N(e[f+1],R,a[R]),++f}else a[R]=N(I,R,a[R])}}else a._.push(h)}return a}JD.flag=t=>(t[_Y]=!0,t);JD.COUNT=JD.flag((t,e,r)=>(r||0)+1);JD.ArgError=Kc;wxe.exports=JD});var Qxe=L((Hdr,kxe)=>{var qY;kxe.exports=()=>(typeof qY>"u"&&(qY=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),qY)});var Oxe=L((JY,zY)=>{(function(t){JY&&typeof JY=="object"&&typeof zY<"u"?zY.exports=t():typeof define=="function"&&define.amd?define([],t):typeof window<"u"?window.isWindows=t():typeof global<"u"?global.isWindows=t():typeof self<"u"?self.isWindows=t():this.isWindows=t()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Uxe=L((_mr,_xe)=>{"use strict";ZY.ifExists=mTt;var Dw=Ie("util"),Jc=Ie("path"),Lxe=Oxe(),hTt=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,gTt={createPwshFile:!0,createCmdFile:Lxe(),fs:Ie("fs")},dTt=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function Mxe(t){let e={...gTt,...t},r=e.fs;return e.fs_={chmod:r.chmod?Dw.promisify(r.chmod):async()=>{},mkdir:Dw.promisify(r.mkdir),readFile:Dw.promisify(r.readFile),stat:Dw.promisify(r.stat),unlink:Dw.promisify(r.unlink),writeFile:Dw.promisify(r.writeFile)},e}async function ZY(t,e,r){let s=Mxe(r);await s.fs_.stat(t),await ETt(t,e,s)}function mTt(t,e,r){return ZY(t,e,r).catch(()=>{})}function yTt(t,e){return e.fs_.unlink(t).catch(()=>{})}async function ETt(t,e,r){let s=await vTt(t,r);return await ITt(e,r),CTt(t,e,s,r)}function ITt(t,e){return e.fs_.mkdir(Jc.dirname(t),{recursive:!0})}function CTt(t,e,r,s){let a=Mxe(s),n=[{generator:bTt,extension:""}];return a.createCmdFile&&n.push({generator:DTt,extension:".cmd"}),a.createPwshFile&&n.push({generator:PTt,extension:".ps1"}),Promise.all(n.map(c=>STt(t,e+c.extension,r,c.generator,a)))}function wTt(t,e){return yTt(t,e)}function BTt(t,e){return xTt(t,e)}async function vTt(t,e){let a=(await e.fs_.readFile(t,"utf8")).trim().split(/\r*\n/)[0].match(hTt);if(!a){let n=Jc.extname(t).toLowerCase();return{program:dTt.get(n)||null,additionalArgs:""}}return{program:a[1],additionalArgs:a[2]}}async function STt(t,e,r,s,a){let n=a.preserveSymlinks?"--preserve-symlinks":"",c=[r.additionalArgs,n].filter(f=>f).join(" ");return a=Object.assign({},a,{prog:r.program,args:c}),await wTt(e,a),await a.fs_.writeFile(e,s(t,e,a),"utf8"),BTt(e,a)}function DTt(t,e,r){let a=Jc.relative(Jc.dirname(e),t).split("/").join("\\"),n=Jc.isAbsolute(a)?`"${a}"`:`"%~dp0\\${a}"`,c,f=r.prog,p=r.args||"",h=XY(r.nodePath).win32;f?(c=`"%~dp0\\${f}.exe"`,a=n):(f=n,p="",a="");let E=r.progArgs?`${r.progArgs.join(" ")} `:"",C=h?`@SET NODE_PATH=${h}\r +`:"";return c?C+=`@IF EXIST ${c} (\r + ${c} ${p} ${a} ${E}%*\r +) ELSE (\r + @SETLOCAL\r + @SET PATHEXT=%PATHEXT:;.JS;=;%\r + ${f} ${p} ${a} ${E}%*\r +)\r +`:C+=`@${f} ${p} ${a} ${E}%*\r +`,C}function bTt(t,e,r){let s=Jc.relative(Jc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n;s=s.split("\\").join("/");let c=Jc.isAbsolute(s)?`"${s}"`:`"$basedir/${s}"`,f=r.args||"",p=XY(r.nodePath).posix;a?(n=`"$basedir/${r.prog}"`,s=c):(a=c,f="",s="");let h=r.progArgs?`${r.progArgs.join(" ")} `:"",E=`#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") + +case \`uname\` in + *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; +esac + +`,C=r.nodePath?`export NODE_PATH="${p}" +`:"";return n?E+=`${C}if [ -x ${n} ]; then + exec ${n} ${f} ${s} ${h}"$@" +else + exec ${a} ${f} ${s} ${h}"$@" +fi +`:E+=`${C}${a} ${f} ${s} ${h}"$@" +exit $? +`,E}function PTt(t,e,r){let s=Jc.relative(Jc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n=a&&`"${a}$exe"`,c;s=s.split("\\").join("/");let f=Jc.isAbsolute(s)?`"${s}"`:`"$basedir/${s}"`,p=r.args||"",h=XY(r.nodePath),E=h.win32,C=h.posix;n?(c=`"$basedir/${r.prog}$exe"`,s=f):(n=f,p="",s="");let S=r.progArgs?`${r.progArgs.join(" ")} `:"",P=`#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +${r.nodePath?`$env_node_path=$env:NODE_PATH +$env:NODE_PATH="${E}" +`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +}`;return r.nodePath&&(P+=` else { + $env:NODE_PATH="${C}" +}`),c?P+=` +$ret=0 +if (Test-Path ${c}) { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${c} ${p} ${s} ${S}$args + } else { + & ${c} ${p} ${s} ${S}$args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${n} ${p} ${s} ${S}$args + } else { + & ${n} ${p} ${s} ${S}$args + } + $ret=$LASTEXITCODE +} +${r.nodePath?`$env:NODE_PATH=$env_node_path +`:""}exit $ret +`:P+=` +# Support pipeline input +if ($MyInvocation.ExpectingInput) { + $input | & ${n} ${p} ${s} ${S}$args +} else { + & ${n} ${p} ${s} ${S}$args +} +${r.nodePath?`$env:NODE_PATH=$env_node_path +`:""}exit $LASTEXITCODE +`,P}function xTt(t,e){return e.fs_.chmod(t,493)}function XY(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(Jc.delimiter):Array.from(t),r={};for(let s=0;s<e.length;s++){let a=e[s].split("/").join("\\"),n=Lxe()?e[s].split("\\").join("/").replace(/^([^:\\/]*):/,(c,f)=>`/mnt/${f.toLowerCase()}`):e[s];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${n}`:n,r[s]={win32:a,posix:n}}return r}_xe.exports=ZY});var AV=L((oEr,oke)=>{oke.exports=Ie("stream")});var uke=L((aEr,cke)=>{"use strict";function ake(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,s)}return r}function sRt(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?ake(Object(r),!0).forEach(function(s){oRt(t,s,r[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ake(Object(r)).forEach(function(s){Object.defineProperty(t,s,Object.getOwnPropertyDescriptor(r,s))})}return t}function oRt(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function aRt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function lke(t,e){for(var r=0;r<e.length;r++){var s=e[r];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,s.key,s)}}function lRt(t,e,r){return e&&lke(t.prototype,e),r&&lke(t,r),t}var cRt=Ie("buffer"),hN=cRt.Buffer,uRt=Ie("util"),pV=uRt.inspect,fRt=pV&&pV.custom||"inspect";function ARt(t,e,r){hN.prototype.copy.call(t,e,r)}cke.exports=function(){function t(){aRt(this,t),this.head=null,this.tail=null,this.length=0}return lRt(t,[{key:"push",value:function(r){var s={data:r,next:null};this.length>0?this.tail.next=s:this.head=s,this.tail=s,++this.length}},{key:"unshift",value:function(r){var s={data:r,next:this.head};this.length===0&&(this.tail=s),this.head=s,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var s=this.head,a=""+s.data;s=s.next;)a+=r+s.data;return a}},{key:"concat",value:function(r){if(this.length===0)return hN.alloc(0);for(var s=hN.allocUnsafe(r>>>0),a=this.head,n=0;a;)ARt(a.data,s,n),n+=a.data.length,a=a.next;return s}},{key:"consume",value:function(r,s){var a;return r<this.head.data.length?(a=this.head.data.slice(0,r),this.head.data=this.head.data.slice(r)):r===this.head.data.length?a=this.shift():a=s?this._getString(r):this._getBuffer(r),a}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(r){var s=this.head,a=1,n=s.data;for(r-=n.length;s=s.next;){var c=s.data,f=r>c.length?c.length:r;if(f===c.length?n+=c:n+=c.slice(0,r),r-=f,r===0){f===c.length?(++a,s.next?this.head=s.next:this.head=this.tail=null):(this.head=s,s.data=c.slice(f));break}++a}return this.length-=a,n}},{key:"_getBuffer",value:function(r){var s=hN.allocUnsafe(r),a=this.head,n=1;for(a.data.copy(s),r-=a.data.length;a=a.next;){var c=a.data,f=r>c.length?c.length:r;if(c.copy(s,s.length-r,0,f),r-=f,r===0){f===c.length?(++n,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=c.slice(f));break}++n}return this.length-=n,s}},{key:fRt,value:function(r,s){return pV(this,sRt({},s,{depth:0,customInspect:!1}))}}]),t}()});var gV=L((lEr,Ake)=>{"use strict";function pRt(t,e){var r=this,s=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return s||a?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(hV,this,t)):process.nextTick(hV,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(n){!e&&n?r._writableState?r._writableState.errorEmitted?process.nextTick(gN,r):(r._writableState.errorEmitted=!0,process.nextTick(fke,r,n)):process.nextTick(fke,r,n):e?(process.nextTick(gN,r),e(n)):process.nextTick(gN,r)}),this)}function fke(t,e){hV(t,e),gN(t)}function gN(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function hRt(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function hV(t,e){t.emit("error",e)}function gRt(t,e){var r=t._readableState,s=t._writableState;r&&r.autoDestroy||s&&s.autoDestroy?t.destroy(e):t.emit("error",e)}Ake.exports={destroy:pRt,undestroy:hRt,errorOrDestroy:gRt}});var ag=L((cEr,gke)=>{"use strict";var hke={};function Zc(t,e,r){r||(r=Error);function s(n,c,f){return typeof e=="string"?e:e(n,c,f)}class a extends r{constructor(c,f,p){super(s(c,f,p))}}a.prototype.name=r.name,a.prototype.code=t,hke[t]=a}function pke(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(s=>String(s)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function dRt(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function mRt(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function yRt(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}Zc("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);Zc("ERR_INVALID_ARG_TYPE",function(t,e,r){let s;typeof e=="string"&&dRt(e,"not ")?(s="must not be",e=e.replace(/^not /,"")):s="must be";let a;if(mRt(t," argument"))a=`The ${t} ${s} ${pke(e,"type")}`;else{let n=yRt(t,".")?"property":"argument";a=`The "${t}" ${n} ${s} ${pke(e,"type")}`}return a+=`. Received type ${typeof r}`,a},TypeError);Zc("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Zc("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});Zc("ERR_STREAM_PREMATURE_CLOSE","Premature close");Zc("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});Zc("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Zc("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Zc("ERR_STREAM_WRITE_AFTER_END","write after end");Zc("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Zc("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);Zc("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");gke.exports.codes=hke});var dV=L((uEr,dke)=>{"use strict";var ERt=ag().codes.ERR_INVALID_OPT_VALUE;function IRt(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function CRt(t,e,r,s){var a=IRt(e,s,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=s?r:"highWaterMark";throw new ERt(n,a)}return Math.floor(a)}return t.objectMode?16:16*1024}dke.exports={getHighWaterMark:CRt}});var mke=L((fEr,mV)=>{typeof Object.create=="function"?mV.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:mV.exports=function(e,r){if(r){e.super_=r;var s=function(){};s.prototype=r.prototype,e.prototype=new s,e.prototype.constructor=e}}});var lg=L((AEr,EV)=>{try{if(yV=Ie("util"),typeof yV.inherits!="function")throw"";EV.exports=yV.inherits}catch{EV.exports=mke()}var yV});var Eke=L((pEr,yke)=>{yke.exports=Ie("util").deprecate});var wV=L((hEr,Ske)=>{"use strict";Ske.exports=Ki;function Cke(t){var e=this;this.next=null,this.entry=null,this.finish=function(){KRt(e,t)}}var Qw;Ki.WritableState=ab;var wRt={deprecate:Eke()},wke=AV(),mN=Ie("buffer").Buffer,BRt=global.Uint8Array||function(){};function vRt(t){return mN.from(t)}function SRt(t){return mN.isBuffer(t)||t instanceof BRt}var CV=gV(),DRt=dV(),bRt=DRt.getHighWaterMark,cg=ag().codes,PRt=cg.ERR_INVALID_ARG_TYPE,xRt=cg.ERR_METHOD_NOT_IMPLEMENTED,kRt=cg.ERR_MULTIPLE_CALLBACK,QRt=cg.ERR_STREAM_CANNOT_PIPE,TRt=cg.ERR_STREAM_DESTROYED,RRt=cg.ERR_STREAM_NULL_VALUES,FRt=cg.ERR_STREAM_WRITE_AFTER_END,NRt=cg.ERR_UNKNOWN_ENCODING,Tw=CV.errorOrDestroy;lg()(Ki,wke);function ORt(){}function ab(t,e,r){Qw=Qw||Wm(),t=t||{},typeof r!="boolean"&&(r=e instanceof Qw),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=bRt(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=t.decodeStrings===!1;this.decodeStrings=!s,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){qRt(e,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Cke(this)}ab.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty(ab.prototype,"buffer",{get:wRt.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var dN;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(dN=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ki,Symbol.hasInstance,{value:function(e){return dN.call(this,e)?!0:this!==Ki?!1:e&&e._writableState instanceof ab}})):dN=function(e){return e instanceof this};function Ki(t){Qw=Qw||Wm();var e=this instanceof Qw;if(!e&&!dN.call(Ki,this))return new Ki(t);this._writableState=new ab(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),wke.call(this)}Ki.prototype.pipe=function(){Tw(this,new QRt)};function LRt(t,e){var r=new FRt;Tw(t,r),process.nextTick(e,r)}function MRt(t,e,r,s){var a;return r===null?a=new RRt:typeof r!="string"&&!e.objectMode&&(a=new PRt("chunk",["string","Buffer"],r)),a?(Tw(t,a),process.nextTick(s,a),!1):!0}Ki.prototype.write=function(t,e,r){var s=this._writableState,a=!1,n=!s.objectMode&&SRt(t);return n&&!mN.isBuffer(t)&&(t=vRt(t)),typeof e=="function"&&(r=e,e=null),n?e="buffer":e||(e=s.defaultEncoding),typeof r!="function"&&(r=ORt),s.ending?LRt(this,r):(n||MRt(this,s,t,r))&&(s.pendingcb++,a=URt(this,s,n,t,e,r)),a};Ki.prototype.cork=function(){this._writableState.corked++};Ki.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&Bke(this,t))};Ki.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new NRt(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Ki.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function _Rt(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=mN.from(e,r)),e}Object.defineProperty(Ki.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function URt(t,e,r,s,a,n){if(!r){var c=_Rt(e,s,a);s!==c&&(r=!0,a="buffer",s=c)}var f=e.objectMode?1:s.length;e.length+=f;var p=e.length<e.highWaterMark;if(p||(e.needDrain=!0),e.writing||e.corked){var h=e.lastBufferedRequest;e.lastBufferedRequest={chunk:s,encoding:a,isBuf:r,callback:n,next:null},h?h.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else IV(t,e,!1,f,s,a,n);return p}function IV(t,e,r,s,a,n,c){e.writelen=s,e.writecb=c,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new TRt("write")):r?t._writev(a,e.onwrite):t._write(a,n,e.onwrite),e.sync=!1}function HRt(t,e,r,s,a){--e.pendingcb,r?(process.nextTick(a,s),process.nextTick(ob,t,e),t._writableState.errorEmitted=!0,Tw(t,s)):(a(s),t._writableState.errorEmitted=!0,Tw(t,s),ob(t,e))}function jRt(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}function qRt(t,e){var r=t._writableState,s=r.sync,a=r.writecb;if(typeof a!="function")throw new kRt;if(jRt(r),e)HRt(t,r,s,e,a);else{var n=vke(r)||t.destroyed;!n&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Bke(t,r),s?process.nextTick(Ike,t,r,n,a):Ike(t,r,n,a)}}function Ike(t,e,r,s){r||GRt(t,e),e.pendingcb--,s(),ob(t,e)}function GRt(t,e){e.length===0&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}function Bke(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var s=e.bufferedRequestCount,a=new Array(s),n=e.corkedRequestsFree;n.entry=r;for(var c=0,f=!0;r;)a[c]=r,r.isBuf||(f=!1),r=r.next,c+=1;a.allBuffers=f,IV(t,e,!0,e.length,a,"",n.finish),e.pendingcb++,e.lastBufferedRequest=null,n.next?(e.corkedRequestsFree=n.next,n.next=null):e.corkedRequestsFree=new Cke(e),e.bufferedRequestCount=0}else{for(;r;){var p=r.chunk,h=r.encoding,E=r.callback,C=e.objectMode?1:p.length;if(IV(t,e,!1,C,p,h,E),r=r.next,e.bufferedRequestCount--,e.writing)break}r===null&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}Ki.prototype._write=function(t,e,r){r(new xRt("_write()"))};Ki.prototype._writev=null;Ki.prototype.end=function(t,e,r){var s=this._writableState;return typeof t=="function"?(r=t,t=null,e=null):typeof e=="function"&&(r=e,e=null),t!=null&&this.write(t,e),s.corked&&(s.corked=1,this.uncork()),s.ending||VRt(this,s,r),this};Object.defineProperty(Ki.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function vke(t){return t.ending&&t.length===0&&t.bufferedRequest===null&&!t.finished&&!t.writing}function WRt(t,e){t._final(function(r){e.pendingcb--,r&&Tw(t,r),e.prefinished=!0,t.emit("prefinish"),ob(t,e)})}function YRt(t,e){!e.prefinished&&!e.finalCalled&&(typeof t._final=="function"&&!e.destroyed?(e.pendingcb++,e.finalCalled=!0,process.nextTick(WRt,t,e)):(e.prefinished=!0,t.emit("prefinish")))}function ob(t,e){var r=vke(e);if(r&&(YRt(t,e),e.pendingcb===0&&(e.finished=!0,t.emit("finish"),e.autoDestroy))){var s=t._readableState;(!s||s.autoDestroy&&s.endEmitted)&&t.destroy()}return r}function VRt(t,e,r){e.ending=!0,ob(t,e),r&&(e.finished?process.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}function KRt(t,e,r){var s=t.entry;for(t.entry=null;s;){var a=s.callback;e.pendingcb--,a(r),s=s.next}e.corkedRequestsFree.next=t}Object.defineProperty(Ki.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}});Ki.prototype.destroy=CV.destroy;Ki.prototype._undestroy=CV.undestroy;Ki.prototype._destroy=function(t,e){e(t)}});var Wm=L((gEr,bke)=>{"use strict";var JRt=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};bke.exports=yA;var Dke=SV(),vV=wV();lg()(yA,Dke);for(BV=JRt(vV.prototype),yN=0;yN<BV.length;yN++)EN=BV[yN],yA.prototype[EN]||(yA.prototype[EN]=vV.prototype[EN]);var BV,EN,yN;function yA(t){if(!(this instanceof yA))return new yA(t);Dke.call(this,t),vV.call(this,t),this.allowHalfOpen=!0,t&&(t.readable===!1&&(this.readable=!1),t.writable===!1&&(this.writable=!1),t.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",zRt)))}Object.defineProperty(yA.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});Object.defineProperty(yA.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(yA.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function zRt(){this._writableState.ended||process.nextTick(ZRt,this)}function ZRt(t){t.end()}Object.defineProperty(yA.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}})});var kke=L((DV,xke)=>{var IN=Ie("buffer"),ch=IN.Buffer;function Pke(t,e){for(var r in t)e[r]=t[r]}ch.from&&ch.alloc&&ch.allocUnsafe&&ch.allocUnsafeSlow?xke.exports=IN:(Pke(IN,DV),DV.Buffer=Rw);function Rw(t,e,r){return ch(t,e,r)}Pke(ch,Rw);Rw.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return ch(t,e,r)};Rw.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var s=ch(t);return e!==void 0?typeof r=="string"?s.fill(e,r):s.fill(e):s.fill(0),s};Rw.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return ch(t)};Rw.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return IN.SlowBuffer(t)}});var xV=L(Tke=>{"use strict";var PV=kke().Buffer,Qke=PV.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function XRt(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function $Rt(t){var e=XRt(t);if(typeof e!="string"&&(PV.isEncoding===Qke||!Qke(t)))throw new Error("Unknown encoding: "+t);return e||t}Tke.StringDecoder=lb;function lb(t){this.encoding=$Rt(t);var e;switch(this.encoding){case"utf16le":this.text=sFt,this.end=oFt,e=4;break;case"utf8":this.fillLast=rFt,e=4;break;case"base64":this.text=aFt,this.end=lFt,e=3;break;default:this.write=cFt,this.end=uFt;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=PV.allocUnsafe(e)}lb.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<t.length?e?e+this.text(t,r):this.text(t,r):e||""};lb.prototype.end=iFt;lb.prototype.text=nFt;lb.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length};function bV(t){return t<=127?0:t>>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function eFt(t,e,r){var s=e.length-1;if(s<r)return 0;var a=bV(e[s]);return a>=0?(a>0&&(t.lastNeed=a-1),a):--s<r||a===-2?0:(a=bV(e[s]),a>=0?(a>0&&(t.lastNeed=a-2),a):--s<r||a===-2?0:(a=bV(e[s]),a>=0?(a>0&&(a===2?a=0:t.lastNeed=a-3),a):0))}function tFt(t,e,r){if((e[0]&192)!==128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"\uFFFD"}}function rFt(t){var e=this.lastTotal-this.lastNeed,r=tFt(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function nFt(t,e){var r=eFt(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var s=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,s),t.toString("utf8",e,s)}function iFt(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function sFt(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var s=r.charCodeAt(r.length-1);if(s>=55296&&s<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function oFt(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function aFt(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function lFt(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function cFt(t){return t.toString(this.encoding)}function uFt(t){return t&&t.length?this.write(t):""}});var CN=L((mEr,Nke)=>{"use strict";var Rke=ag().codes.ERR_STREAM_PREMATURE_CLOSE;function fFt(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,s=new Array(r),a=0;a<r;a++)s[a]=arguments[a];t.apply(this,s)}}}function AFt(){}function pFt(t){return t.setHeader&&typeof t.abort=="function"}function Fke(t,e,r){if(typeof e=="function")return Fke(t,null,e);e||(e={}),r=fFt(r||AFt);var s=e.readable||e.readable!==!1&&t.readable,a=e.writable||e.writable!==!1&&t.writable,n=function(){t.writable||f()},c=t._writableState&&t._writableState.finished,f=function(){a=!1,c=!0,s||r.call(t)},p=t._readableState&&t._readableState.endEmitted,h=function(){s=!1,p=!0,a||r.call(t)},E=function(I){r.call(t,I)},C=function(){var I;if(s&&!p)return(!t._readableState||!t._readableState.ended)&&(I=new Rke),r.call(t,I);if(a&&!c)return(!t._writableState||!t._writableState.ended)&&(I=new Rke),r.call(t,I)},S=function(){t.req.on("finish",f)};return pFt(t)?(t.on("complete",f),t.on("abort",C),t.req?S():t.on("request",S)):a&&!t._writableState&&(t.on("end",n),t.on("close",n)),t.on("end",h),t.on("finish",f),e.error!==!1&&t.on("error",E),t.on("close",C),function(){t.removeListener("complete",f),t.removeListener("abort",C),t.removeListener("request",S),t.req&&t.req.removeListener("finish",f),t.removeListener("end",n),t.removeListener("close",n),t.removeListener("finish",f),t.removeListener("end",h),t.removeListener("error",E),t.removeListener("close",C)}}Nke.exports=Fke});var Lke=L((yEr,Oke)=>{"use strict";var wN;function ug(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var hFt=CN(),fg=Symbol("lastResolve"),Ym=Symbol("lastReject"),ub=Symbol("error"),BN=Symbol("ended"),Vm=Symbol("lastPromise"),kV=Symbol("handlePromise"),Km=Symbol("stream");function Ag(t,e){return{value:t,done:e}}function gFt(t){var e=t[fg];if(e!==null){var r=t[Km].read();r!==null&&(t[Vm]=null,t[fg]=null,t[Ym]=null,e(Ag(r,!1)))}}function dFt(t){process.nextTick(gFt,t)}function mFt(t,e){return function(r,s){t.then(function(){if(e[BN]){r(Ag(void 0,!0));return}e[kV](r,s)},s)}}var yFt=Object.getPrototypeOf(function(){}),EFt=Object.setPrototypeOf((wN={get stream(){return this[Km]},next:function(){var e=this,r=this[ub];if(r!==null)return Promise.reject(r);if(this[BN])return Promise.resolve(Ag(void 0,!0));if(this[Km].destroyed)return new Promise(function(c,f){process.nextTick(function(){e[ub]?f(e[ub]):c(Ag(void 0,!0))})});var s=this[Vm],a;if(s)a=new Promise(mFt(s,this));else{var n=this[Km].read();if(n!==null)return Promise.resolve(Ag(n,!1));a=new Promise(this[kV])}return this[Vm]=a,a}},ug(wN,Symbol.asyncIterator,function(){return this}),ug(wN,"return",function(){var e=this;return new Promise(function(r,s){e[Km].destroy(null,function(a){if(a){s(a);return}r(Ag(void 0,!0))})})}),wN),yFt),IFt=function(e){var r,s=Object.create(EFt,(r={},ug(r,Km,{value:e,writable:!0}),ug(r,fg,{value:null,writable:!0}),ug(r,Ym,{value:null,writable:!0}),ug(r,ub,{value:null,writable:!0}),ug(r,BN,{value:e._readableState.endEmitted,writable:!0}),ug(r,kV,{value:function(n,c){var f=s[Km].read();f?(s[Vm]=null,s[fg]=null,s[Ym]=null,n(Ag(f,!1))):(s[fg]=n,s[Ym]=c)},writable:!0}),r));return s[Vm]=null,hFt(e,function(a){if(a&&a.code!=="ERR_STREAM_PREMATURE_CLOSE"){var n=s[Ym];n!==null&&(s[Vm]=null,s[fg]=null,s[Ym]=null,n(a)),s[ub]=a;return}var c=s[fg];c!==null&&(s[Vm]=null,s[fg]=null,s[Ym]=null,c(Ag(void 0,!0))),s[BN]=!0}),e.on("readable",dFt.bind(null,s)),s};Oke.exports=IFt});var Hke=L((EEr,Uke)=>{"use strict";function Mke(t,e,r,s,a,n,c){try{var f=t[n](c),p=f.value}catch(h){r(h);return}f.done?e(p):Promise.resolve(p).then(s,a)}function CFt(t){return function(){var e=this,r=arguments;return new Promise(function(s,a){var n=t.apply(e,r);function c(p){Mke(n,s,a,c,f,"next",p)}function f(p){Mke(n,s,a,c,f,"throw",p)}c(void 0)})}}function _ke(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,s)}return r}function wFt(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?_ke(Object(r),!0).forEach(function(s){BFt(t,s,r[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):_ke(Object(r)).forEach(function(s){Object.defineProperty(t,s,Object.getOwnPropertyDescriptor(r,s))})}return t}function BFt(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var vFt=ag().codes.ERR_INVALID_ARG_TYPE;function SFt(t,e,r){var s;if(e&&typeof e.next=="function")s=e;else if(e&&e[Symbol.asyncIterator])s=e[Symbol.asyncIterator]();else if(e&&e[Symbol.iterator])s=e[Symbol.iterator]();else throw new vFt("iterable",["Iterable"],e);var a=new t(wFt({objectMode:!0},r)),n=!1;a._read=function(){n||(n=!0,c())};function c(){return f.apply(this,arguments)}function f(){return f=CFt(function*(){try{var p=yield s.next(),h=p.value,E=p.done;E?a.push(null):a.push(yield h)?c():n=!1}catch(C){a.destroy(C)}}),f.apply(this,arguments)}return a}Uke.exports=SFt});var SV=L((CEr,Zke)=>{"use strict";Zke.exports=Pn;var Fw;Pn.ReadableState=Wke;var IEr=Ie("events").EventEmitter,Gke=function(e,r){return e.listeners(r).length},Ab=AV(),vN=Ie("buffer").Buffer,DFt=global.Uint8Array||function(){};function bFt(t){return vN.from(t)}function PFt(t){return vN.isBuffer(t)||t instanceof DFt}var QV=Ie("util"),ln;QV&&QV.debuglog?ln=QV.debuglog("stream"):ln=function(){};var xFt=uke(),MV=gV(),kFt=dV(),QFt=kFt.getHighWaterMark,SN=ag().codes,TFt=SN.ERR_INVALID_ARG_TYPE,RFt=SN.ERR_STREAM_PUSH_AFTER_EOF,FFt=SN.ERR_METHOD_NOT_IMPLEMENTED,NFt=SN.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,Nw,TV,RV;lg()(Pn,Ab);var fb=MV.errorOrDestroy,FV=["error","close","destroy","pause","resume"];function OFt(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function Wke(t,e,r){Fw=Fw||Wm(),t=t||{},typeof r!="boolean"&&(r=e instanceof Fw),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=QFt(this,t,"readableHighWaterMark",r),this.buffer=new xFt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(Nw||(Nw=xV().StringDecoder),this.decoder=new Nw(t.encoding),this.encoding=t.encoding)}function Pn(t){if(Fw=Fw||Wm(),!(this instanceof Pn))return new Pn(t);var e=this instanceof Fw;this._readableState=new Wke(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),Ab.call(this)}Object.defineProperty(Pn.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}});Pn.prototype.destroy=MV.destroy;Pn.prototype._undestroy=MV.undestroy;Pn.prototype._destroy=function(t,e){e(t)};Pn.prototype.push=function(t,e){var r=this._readableState,s;return r.objectMode?s=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=vN.from(t,e),e=""),s=!0),Yke(this,t,e,!1,s)};Pn.prototype.unshift=function(t){return Yke(this,t,null,!0,!1)};function Yke(t,e,r,s,a){ln("readableAddChunk",e);var n=t._readableState;if(e===null)n.reading=!1,_Ft(t,n);else{var c;if(a||(c=LFt(n,e)),c)fb(t,c);else if(n.objectMode||e&&e.length>0)if(typeof e!="string"&&!n.objectMode&&Object.getPrototypeOf(e)!==vN.prototype&&(e=bFt(e)),s)n.endEmitted?fb(t,new NFt):NV(t,n,e,!0);else if(n.ended)fb(t,new RFt);else{if(n.destroyed)return!1;n.reading=!1,n.decoder&&!r?(e=n.decoder.write(e),n.objectMode||e.length!==0?NV(t,n,e,!1):LV(t,n)):NV(t,n,e,!1)}else s||(n.reading=!1,LV(t,n))}return!n.ended&&(n.length<n.highWaterMark||n.length===0)}function NV(t,e,r,s){e.flowing&&e.length===0&&!e.sync?(e.awaitDrain=0,t.emit("data",r)):(e.length+=e.objectMode?1:r.length,s?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&DN(t)),LV(t,e)}function LFt(t,e){var r;return!PFt(e)&&typeof e!="string"&&e!==void 0&&!t.objectMode&&(r=new TFt("chunk",["string","Buffer","Uint8Array"],e)),r}Pn.prototype.isPaused=function(){return this._readableState.flowing===!1};Pn.prototype.setEncoding=function(t){Nw||(Nw=xV().StringDecoder);var e=new Nw(t);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var r=this._readableState.buffer.head,s="";r!==null;)s+=e.write(r.data),r=r.next;return this._readableState.buffer.clear(),s!==""&&this._readableState.buffer.push(s),this._readableState.length=s.length,this};var jke=1073741824;function MFt(t){return t>=jke?t=jke:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function qke(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=MFt(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}Pn.prototype.read=function(t){ln("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return ln("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?OV(this):DN(this),null;if(t=qke(t,e),t===0&&e.ended)return e.length===0&&OV(this),null;var s=e.needReadable;ln("need readable",s),(e.length===0||e.length-t<e.highWaterMark)&&(s=!0,ln("length less than watermark",s)),e.ended||e.reading?(s=!1,ln("reading or ended",s)):s&&(ln("do read"),e.reading=!0,e.sync=!0,e.length===0&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=qke(r,e)));var a;return t>0?a=Jke(t,e):a=null,a===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&OV(this)),a!==null&&this.emit("data",a),a};function _Ft(t,e){if(ln("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?DN(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Vke(t)))}}function DN(t){var e=t._readableState;ln("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(ln("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Vke,t))}function Vke(t){var e=t._readableState;ln("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,_V(t)}function LV(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(UFt,t,e))}function UFt(t,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&e.length===0);){var r=e.length;if(ln("maybeReadMore read 0"),t.read(0),r===e.length)break}e.readingMore=!1}Pn.prototype._read=function(t){fb(this,new FFt("_read()"))};Pn.prototype.pipe=function(t,e){var r=this,s=this._readableState;switch(s.pipesCount){case 0:s.pipes=t;break;case 1:s.pipes=[s.pipes,t];break;default:s.pipes.push(t);break}s.pipesCount+=1,ln("pipe count=%d opts=%j",s.pipesCount,e);var a=(!e||e.end!==!1)&&t!==process.stdout&&t!==process.stderr,n=a?f:R;s.endEmitted?process.nextTick(n):r.once("end",n),t.on("unpipe",c);function c(N,U){ln("onunpipe"),N===r&&U&&U.hasUnpiped===!1&&(U.hasUnpiped=!0,E())}function f(){ln("onend"),t.end()}var p=HFt(r);t.on("drain",p);var h=!1;function E(){ln("cleanup"),t.removeListener("close",P),t.removeListener("finish",I),t.removeListener("drain",p),t.removeListener("error",S),t.removeListener("unpipe",c),r.removeListener("end",f),r.removeListener("end",R),r.removeListener("data",C),h=!0,s.awaitDrain&&(!t._writableState||t._writableState.needDrain)&&p()}r.on("data",C);function C(N){ln("ondata");var U=t.write(N);ln("dest.write",U),U===!1&&((s.pipesCount===1&&s.pipes===t||s.pipesCount>1&&zke(s.pipes,t)!==-1)&&!h&&(ln("false write response, pause",s.awaitDrain),s.awaitDrain++),r.pause())}function S(N){ln("onerror",N),R(),t.removeListener("error",S),Gke(t,"error")===0&&fb(t,N)}OFt(t,"error",S);function P(){t.removeListener("finish",I),R()}t.once("close",P);function I(){ln("onfinish"),t.removeListener("close",P),R()}t.once("finish",I);function R(){ln("unpipe"),r.unpipe(t)}return t.emit("pipe",r),s.flowing||(ln("pipe resume"),r.resume()),t};function HFt(t){return function(){var r=t._readableState;ln("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&Gke(t,"data")&&(r.flowing=!0,_V(t))}}Pn.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var s=e.pipes,a=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var n=0;n<a;n++)s[n].emit("unpipe",this,{hasUnpiped:!1});return this}var c=zke(e.pipes,t);return c===-1?this:(e.pipes.splice(c,1),e.pipesCount-=1,e.pipesCount===1&&(e.pipes=e.pipes[0]),t.emit("unpipe",this,r),this)};Pn.prototype.on=function(t,e){var r=Ab.prototype.on.call(this,t,e),s=this._readableState;return t==="data"?(s.readableListening=this.listenerCount("readable")>0,s.flowing!==!1&&this.resume()):t==="readable"&&!s.endEmitted&&!s.readableListening&&(s.readableListening=s.needReadable=!0,s.flowing=!1,s.emittedReadable=!1,ln("on readable",s.length,s.reading),s.length?DN(this):s.reading||process.nextTick(jFt,this)),r};Pn.prototype.addListener=Pn.prototype.on;Pn.prototype.removeListener=function(t,e){var r=Ab.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(Kke,this),r};Pn.prototype.removeAllListeners=function(t){var e=Ab.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(Kke,this),e};function Kke(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function jFt(t){ln("readable nexttick read 0"),t.read(0)}Pn.prototype.resume=function(){var t=this._readableState;return t.flowing||(ln("resume"),t.flowing=!t.readableListening,qFt(this,t)),t.paused=!1,this};function qFt(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(GFt,t,e))}function GFt(t,e){ln("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),_V(t),e.flowing&&!e.reading&&t.read(0)}Pn.prototype.pause=function(){return ln("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(ln("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function _V(t){var e=t._readableState;for(ln("flow",e.flowing);e.flowing&&t.read()!==null;);}Pn.prototype.wrap=function(t){var e=this,r=this._readableState,s=!1;t.on("end",function(){if(ln("wrapped end"),r.decoder&&!r.ended){var c=r.decoder.end();c&&c.length&&e.push(c)}e.push(null)}),t.on("data",function(c){if(ln("wrapped data"),r.decoder&&(c=r.decoder.write(c)),!(r.objectMode&&c==null)&&!(!r.objectMode&&(!c||!c.length))){var f=e.push(c);f||(s=!0,t.pause())}});for(var a in t)this[a]===void 0&&typeof t[a]=="function"&&(this[a]=function(f){return function(){return t[f].apply(t,arguments)}}(a));for(var n=0;n<FV.length;n++)t.on(FV[n],this.emit.bind(this,FV[n]));return this._read=function(c){ln("wrapped _read",c),s&&(s=!1,t.resume())},this};typeof Symbol=="function"&&(Pn.prototype[Symbol.asyncIterator]=function(){return TV===void 0&&(TV=Lke()),TV(this)});Object.defineProperty(Pn.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(Pn.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(Pn.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});Pn._fromList=Jke;Object.defineProperty(Pn.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function Jke(t,e){if(e.length===0)return null;var r;return e.objectMode?r=e.buffer.shift():!t||t>=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function OV(t){var e=t._readableState;ln("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(WFt,e,t))}function WFt(t,e){if(ln("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(Pn.from=function(t,e){return RV===void 0&&(RV=Hke()),RV(Pn,t,e)});function zke(t,e){for(var r=0,s=t.length;r<s;r++)if(t[r]===e)return r;return-1}});var UV=L((wEr,$ke)=>{"use strict";$ke.exports=uh;var bN=ag().codes,YFt=bN.ERR_METHOD_NOT_IMPLEMENTED,VFt=bN.ERR_MULTIPLE_CALLBACK,KFt=bN.ERR_TRANSFORM_ALREADY_TRANSFORMING,JFt=bN.ERR_TRANSFORM_WITH_LENGTH_0,PN=Wm();lg()(uh,PN);function zFt(t,e){var r=this._transformState;r.transforming=!1;var s=r.writecb;if(s===null)return this.emit("error",new VFt);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),s(t);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function uh(t){if(!(this instanceof uh))return new uh(t);PN.call(this,t),this._transformState={afterTransform:zFt.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&(typeof t.transform=="function"&&(this._transform=t.transform),typeof t.flush=="function"&&(this._flush=t.flush)),this.on("prefinish",ZFt)}function ZFt(){var t=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(e,r){Xke(t,e,r)}):Xke(this,null,null)}uh.prototype.push=function(t,e){return this._transformState.needTransform=!1,PN.prototype.push.call(this,t,e)};uh.prototype._transform=function(t,e,r){r(new YFt("_transform()"))};uh.prototype._write=function(t,e,r){var s=this._transformState;if(s.writecb=r,s.writechunk=t,s.writeencoding=e,!s.transforming){var a=this._readableState;(s.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}};uh.prototype._read=function(t){var e=this._transformState;e.writechunk!==null&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0};uh.prototype._destroy=function(t,e){PN.prototype._destroy.call(this,t,function(r){e(r)})};function Xke(t,e,r){if(e)return t.emit("error",e);if(r!=null&&t.push(r),t._writableState.length)throw new JFt;if(t._transformState.transforming)throw new KFt;return t.push(null)}});var rQe=L((BEr,tQe)=>{"use strict";tQe.exports=pb;var eQe=UV();lg()(pb,eQe);function pb(t){if(!(this instanceof pb))return new pb(t);eQe.call(this,t)}pb.prototype._transform=function(t,e,r){r(null,t)}});var aQe=L((vEr,oQe)=>{"use strict";var HV;function XFt(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var sQe=ag().codes,$Ft=sQe.ERR_MISSING_ARGS,eNt=sQe.ERR_STREAM_DESTROYED;function nQe(t){if(t)throw t}function tNt(t){return t.setHeader&&typeof t.abort=="function"}function rNt(t,e,r,s){s=XFt(s);var a=!1;t.on("close",function(){a=!0}),HV===void 0&&(HV=CN()),HV(t,{readable:e,writable:r},function(c){if(c)return s(c);a=!0,s()});var n=!1;return function(c){if(!a&&!n){if(n=!0,tNt(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();s(c||new eNt("pipe"))}}}function iQe(t){t()}function nNt(t,e){return t.pipe(e)}function iNt(t){return!t.length||typeof t[t.length-1]!="function"?nQe:t.pop()}function sNt(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];var s=iNt(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new $Ft("streams");var a,n=e.map(function(c,f){var p=f<e.length-1,h=f>0;return rNt(c,p,h,function(E){a||(a=E),E&&n.forEach(iQe),!p&&(n.forEach(iQe),s(a))})});return e.reduce(nNt)}oQe.exports=sNt});var Ow=L((Xc,gb)=>{var hb=Ie("stream");process.env.READABLE_STREAM==="disable"&&hb?(gb.exports=hb.Readable,Object.assign(gb.exports,hb),gb.exports.Stream=hb):(Xc=gb.exports=SV(),Xc.Stream=hb||Xc,Xc.Readable=Xc,Xc.Writable=wV(),Xc.Duplex=Wm(),Xc.Transform=UV(),Xc.PassThrough=rQe(),Xc.finished=CN(),Xc.pipeline=aQe())});var uQe=L((SEr,cQe)=>{"use strict";var{Buffer:uf}=Ie("buffer"),lQe=Symbol.for("BufferList");function wi(t){if(!(this instanceof wi))return new wi(t);wi._init.call(this,t)}wi._init=function(e){Object.defineProperty(this,lQe,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};wi.prototype._new=function(e){return new wi(e)};wi.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let s=0;s<this._bufs.length;s++){let a=r+this._bufs[s].length;if(e<a||s===this._bufs.length-1)return[s,e-r];r=a}};wi.prototype._reverseOffset=function(t){let e=t[0],r=t[1];for(let s=0;s<e;s++)r+=this._bufs[s].length;return r};wi.prototype.get=function(e){if(e>this.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};wi.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};wi.prototype.copy=function(e,r,s,a){if((typeof s!="number"||s<0)&&(s=0),(typeof a!="number"||a>this.length)&&(a=this.length),s>=this.length||a<=0)return e||uf.alloc(0);let n=!!e,c=this._offset(s),f=a-s,p=f,h=n&&r||0,E=c[1];if(s===0&&a===this.length){if(!n)return this._bufs.length===1?this._bufs[0]:uf.concat(this._bufs,this.length);for(let C=0;C<this._bufs.length;C++)this._bufs[C].copy(e,h),h+=this._bufs[C].length;return e}if(p<=this._bufs[c[0]].length-E)return n?this._bufs[c[0]].copy(e,r,E,E+p):this._bufs[c[0]].slice(E,E+p);n||(e=uf.allocUnsafe(f));for(let C=c[0];C<this._bufs.length;C++){let S=this._bufs[C].length-E;if(p>S)this._bufs[C].copy(e,h,E),h+=S;else{this._bufs[C].copy(e,h,E,E+p),h+=S;break}p-=S,E&&(E=0)}return e.length>h?e.slice(0,h):e};wi.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let s=this._offset(e),a=this._offset(r),n=this._bufs.slice(s[0],a[0]+1);return a[1]===0?n.pop():n[n.length-1]=n[n.length-1].slice(0,a[1]),s[1]!==0&&(n[0]=n[0].slice(s[1])),this._new(n)};wi.prototype.toString=function(e,r,s){return this.slice(r,s).toString(e)};wi.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};wi.prototype.duplicate=function(){let e=this._new();for(let r=0;r<this._bufs.length;r++)e.append(this._bufs[r]);return e};wi.prototype.append=function(e){if(e==null)return this;if(e.buffer)this._appendBuffer(uf.from(e.buffer,e.byteOffset,e.byteLength));else if(Array.isArray(e))for(let r=0;r<e.length;r++)this.append(e[r]);else if(this._isBufferList(e))for(let r=0;r<e._bufs.length;r++)this.append(e._bufs[r]);else typeof e=="number"&&(e=e.toString()),this._appendBuffer(uf.from(e));return this};wi.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length};wi.prototype.indexOf=function(t,e,r){if(r===void 0&&typeof e=="string"&&(r=e,e=void 0),typeof t=="function"||Array.isArray(t))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if(typeof t=="number"?t=uf.from([t]):typeof t=="string"?t=uf.from(t,r):this._isBufferList(t)?t=t.slice():Array.isArray(t.buffer)?t=uf.from(t.buffer,t.byteOffset,t.byteLength):uf.isBuffer(t)||(t=uf.from(t)),e=Number(e||0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let s=this._offset(e),a=s[0],n=s[1];for(;a<this._bufs.length;a++){let c=this._bufs[a];for(;n<c.length;)if(c.length-n>=t.length){let p=c.indexOf(t,n);if(p!==-1)return this._reverseOffset([a,p]);n=c.length-t.length+1}else{let p=this._reverseOffset([a,n]);if(this._match(p,t))return p;n++}n=0}return-1};wi.prototype._match=function(t,e){if(this.length-t<e.length)return!1;for(let r=0;r<e.length;r++)if(this.get(t+r)!==e[r])return!1;return!0};(function(){let t={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(let e in t)(function(r){t[r]===null?wi.prototype[r]=function(s,a){return this.slice(s,s+a)[r](0,a)}:wi.prototype[r]=function(s=0){return this.slice(s,s+t[r])[r](0)}})(e)})();wi.prototype._isBufferList=function(e){return e instanceof wi||wi.isBufferList(e)};wi.isBufferList=function(e){return e!=null&&e[lQe]};cQe.exports=wi});var fQe=L((DEr,xN)=>{"use strict";var jV=Ow().Duplex,oNt=lg(),db=uQe();function na(t){if(!(this instanceof na))return new na(t);if(typeof t=="function"){this._callback=t;let e=function(s){this._callback&&(this._callback(s),this._callback=null)}.bind(this);this.on("pipe",function(s){s.on("error",e)}),this.on("unpipe",function(s){s.removeListener("error",e)}),t=null}db._init.call(this,t),jV.call(this)}oNt(na,jV);Object.assign(na.prototype,db.prototype);na.prototype._new=function(e){return new na(e)};na.prototype._write=function(e,r,s){this._appendBuffer(e),typeof s=="function"&&s()};na.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};na.prototype.end=function(e){jV.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};na.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};na.prototype._isBufferList=function(e){return e instanceof na||e instanceof db||na.isBufferList(e)};na.isBufferList=db.isBufferList;xN.exports=na;xN.exports.BufferListStream=na;xN.exports.BufferList=db});var WV=L(Mw=>{var aNt=Buffer.alloc,lNt="0000000000000000000",cNt="7777777777777777777",AQe=48,pQe=Buffer.from("ustar\0","binary"),uNt=Buffer.from("00","binary"),fNt=Buffer.from("ustar ","binary"),ANt=Buffer.from(" \0","binary"),pNt=parseInt("7777",8),mb=257,GV=263,hNt=function(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},gNt=function(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},dNt=function(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},hQe=function(t,e,r,s){for(;r<s;r++)if(t[r]===e)return r;return s},gQe=function(t){for(var e=256,r=0;r<148;r++)e+=t[r];for(var s=156;s<512;s++)e+=t[s];return e},pg=function(t,e){return t=t.toString(8),t.length>e?cNt.slice(0,e)+" ":lNt.slice(0,e-t.length)+t+" "};function mNt(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],s=t.length-1;s>0;s--){var a=t[s];e?r.push(a):r.push(255-a)}var n=0,c=r.length;for(s=0;s<c;s++)n+=r[s]*Math.pow(256,s);return e?n:-1*n}var hg=function(t,e,r){if(t=t.slice(e,e+r),e=0,t[e]&128)return mNt(t);for(;e<t.length&&t[e]===32;)e++;for(var s=hNt(hQe(t,32,e,t.length),t.length,t.length);e<s&&t[e]===0;)e++;return s===e?0:parseInt(t.slice(e,s).toString(),8)},Lw=function(t,e,r,s){return t.slice(e,hQe(t,0,e,e+r)).toString(s)},qV=function(t){var e=Buffer.byteLength(t),r=Math.floor(Math.log(e)/Math.log(10))+1;return e+r>=Math.pow(10,r)&&r++,e+r+t};Mw.decodeLongPath=function(t,e){return Lw(t,0,t.length,e)};Mw.encodePax=function(t){var e="";t.name&&(e+=qV(" path="+t.name+` +`)),t.linkname&&(e+=qV(" linkpath="+t.linkname+` +`));var r=t.pax;if(r)for(var s in r)e+=qV(" "+s+"="+r[s]+` +`);return Buffer.from(e)};Mw.decodePax=function(t){for(var e={};t.length;){for(var r=0;r<t.length&&t[r]!==32;)r++;var s=parseInt(t.slice(0,r).toString(),10);if(!s)return e;var a=t.slice(r+1,s-1).toString(),n=a.indexOf("=");if(n===-1)return e;e[a.slice(0,n)]=a.slice(n+1),t=t.slice(s)}return e};Mw.encode=function(t){var e=aNt(512),r=t.name,s="";if(t.typeflag===5&&r[r.length-1]!=="/"&&(r+="/"),Buffer.byteLength(r)!==r.length)return null;for(;Buffer.byteLength(r)>100;){var a=r.indexOf("/");if(a===-1)return null;s+=s?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(s)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(pg(t.mode&pNt,6),100),e.write(pg(t.uid,6),108),e.write(pg(t.gid,6),116),e.write(pg(t.size,11),124),e.write(pg(t.mtime.getTime()/1e3|0,11),136),e[156]=AQe+dNt(t.type),t.linkname&&e.write(t.linkname,157),pQe.copy(e,mb),uNt.copy(e,GV),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(pg(t.devmajor||0,6),329),e.write(pg(t.devminor||0,6),337),s&&e.write(s,345),e.write(pg(gQe(e),6),148),e)};Mw.decode=function(t,e,r){var s=t[156]===0?0:t[156]-AQe,a=Lw(t,0,100,e),n=hg(t,100,8),c=hg(t,108,8),f=hg(t,116,8),p=hg(t,124,12),h=hg(t,136,12),E=gNt(s),C=t[157]===0?null:Lw(t,157,100,e),S=Lw(t,265,32),P=Lw(t,297,32),I=hg(t,329,8),R=hg(t,337,8),N=gQe(t);if(N===8*32)return null;if(N!==hg(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(pQe.compare(t,mb,mb+6)===0)t[345]&&(a=Lw(t,345,155,e)+"/"+a);else if(!(fNt.compare(t,mb,mb+6)===0&&ANt.compare(t,GV,GV+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return s===0&&a&&a[a.length-1]==="/"&&(s=5),{name:a,mode:n,uid:c,gid:f,size:p,mtime:new Date(1e3*h),type:E,linkname:C,uname:S,gname:P,devmajor:I,devminor:R}}});var wQe=L((PEr,CQe)=>{var mQe=Ie("util"),yNt=fQe(),yb=WV(),yQe=Ow().Writable,EQe=Ow().PassThrough,IQe=function(){},dQe=function(t){return t&=511,t&&512-t},ENt=function(t,e){var r=new kN(t,e);return r.end(),r},INt=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},kN=function(t,e){this._parent=t,this.offset=e,EQe.call(this,{autoDestroy:!1})};mQe.inherits(kN,EQe);kN.prototype.destroy=function(t){this._parent.destroy(t)};var fh=function(t){if(!(this instanceof fh))return new fh(t);yQe.call(this,t),t=t||{},this._offset=0,this._buffer=yNt(),this._missing=0,this._partial=!1,this._onparse=IQe,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,s=function(){e._continue()},a=function(S){if(e._locked=!1,S)return e.destroy(S);e._stream||s()},n=function(){e._stream=null;var S=dQe(e._header.size);S?e._parse(S,c):e._parse(512,C),e._locked||s()},c=function(){e._buffer.consume(dQe(e._header.size)),e._parse(512,C),s()},f=function(){var S=e._header.size;e._paxGlobal=yb.decodePax(r.slice(0,S)),r.consume(S),n()},p=function(){var S=e._header.size;e._pax=yb.decodePax(r.slice(0,S)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(S),n()},h=function(){var S=e._header.size;this._gnuLongPath=yb.decodeLongPath(r.slice(0,S),t.filenameEncoding),r.consume(S),n()},E=function(){var S=e._header.size;this._gnuLongLinkPath=yb.decodeLongPath(r.slice(0,S),t.filenameEncoding),r.consume(S),n()},C=function(){var S=e._offset,P;try{P=e._header=yb.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(I){e.emit("error",I)}if(r.consume(512),!P){e._parse(512,C),s();return}if(P.type==="gnu-long-path"){e._parse(P.size,h),s();return}if(P.type==="gnu-long-link-path"){e._parse(P.size,E),s();return}if(P.type==="pax-global-header"){e._parse(P.size,f),s();return}if(P.type==="pax-header"){e._parse(P.size,p),s();return}if(e._gnuLongPath&&(P.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(P.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=P=INt(P,e._pax),e._pax=null),e._locked=!0,!P.size||P.type==="directory"){e._parse(512,C),e.emit("entry",P,ENt(e,S),a);return}e._stream=new kN(e,S),e.emit("entry",P,e._stream,a),e._parse(P.size,n),s()};this._onheader=C,this._parse(512,C)};mQe.inherits(fh,yQe);fh.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};fh.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};fh.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=IQe,this._overflow?this._write(this._overflow,void 0,t):t()}};fh.prototype._write=function(t,e,r){if(!this._destroyed){var s=this._stream,a=this._buffer,n=this._missing;if(t.length&&(this._partial=!0),t.length<n)return this._missing-=t.length,this._overflow=null,s?s.write(t,r):(a.append(t),r());this._cb=r,this._missing=0;var c=null;t.length>n&&(c=t.slice(n),t=t.slice(0,n)),s?s.end(t):a.append(t),this._overflow=c,this._onparse()}};fh.prototype._final=function(t){if(this._partial)return this.destroy(new Error("Unexpected end of data"));t()};CQe.exports=fh});var vQe=L((xEr,BQe)=>{BQe.exports=Ie("fs").constants||Ie("constants")});var xQe=L((kEr,PQe)=>{var _w=vQe(),SQe=vH(),TN=lg(),CNt=Buffer.alloc,DQe=Ow().Readable,Uw=Ow().Writable,wNt=Ie("string_decoder").StringDecoder,QN=WV(),BNt=parseInt("755",8),vNt=parseInt("644",8),bQe=CNt(1024),VV=function(){},YV=function(t,e){e&=511,e&&t.push(bQe.slice(0,512-e))};function SNt(t){switch(t&_w.S_IFMT){case _w.S_IFBLK:return"block-device";case _w.S_IFCHR:return"character-device";case _w.S_IFDIR:return"directory";case _w.S_IFIFO:return"fifo";case _w.S_IFLNK:return"symlink"}return"file"}var RN=function(t){Uw.call(this),this.written=0,this._to=t,this._destroyed=!1};TN(RN,Uw);RN.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};RN.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var FN=function(){Uw.call(this),this.linkname="",this._decoder=new wNt("utf-8"),this._destroyed=!1};TN(FN,Uw);FN.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};FN.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Eb=function(){Uw.call(this),this._destroyed=!1};TN(Eb,Uw);Eb.prototype._write=function(t,e,r){r(new Error("No body allowed for this entry"))};Eb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var EA=function(t){if(!(this instanceof EA))return new EA(t);DQe.call(this,t),this._drain=VV,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};TN(EA,DQe);EA.prototype.entry=function(t,e,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(r=e,e=null),r||(r=VV);var s=this;if((!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=SNt(t.mode)),t.mode||(t.mode=t.type==="directory"?BNt:vNt),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var a=this.push(e);return YV(s,t.size),a?process.nextTick(r):this._drain=r,new Eb}if(t.type==="symlink"&&!t.linkname){var n=new FN;return SQe(n,function(f){if(f)return s.destroy(),r(f);t.linkname=n.linkname,s._encode(t),r()}),n}if(this._encode(t),t.type!=="file"&&t.type!=="contiguous-file")return process.nextTick(r),new Eb;var c=new RN(this);return this._stream=c,SQe(c,function(f){if(s._stream=null,f)return s.destroy(),r(f);if(c.written!==t.size)return s.destroy(),r(new Error("size mismatch"));YV(s,t.size),s._finalizing&&s.finalize(),r()}),c}};EA.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(bQe),this.push(null))};EA.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};EA.prototype._encode=function(t){if(!t.pax){var e=QN.encode(t);if(e){this.push(e);return}}this._encodePax(t)};EA.prototype._encodePax=function(t){var e=QN.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(QN.encode(r)),this.push(e),YV(this,e.length),r.size=t.size,r.type=t.type,this.push(QN.encode(r))};EA.prototype._read=function(t){var e=this._drain;this._drain=VV,e()};PQe.exports=EA});var kQe=L(KV=>{KV.extract=wQe();KV.pack=xQe()});var qQe=L(Ra=>{"use strict";var MNt=Ra&&Ra.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ra,"__esModule",{value:!0});Ra.Minipass=Ra.isWritable=Ra.isReadable=Ra.isStream=void 0;var MQe=typeof process=="object"&&process?process:{stdout:null,stderr:null},o7=Ie("node:events"),jQe=MNt(Ie("node:stream")),_Nt=Ie("node:string_decoder"),UNt=t=>!!t&&typeof t=="object"&&(t instanceof qN||t instanceof jQe.default||(0,Ra.isReadable)(t)||(0,Ra.isWritable)(t));Ra.isStream=UNt;var HNt=t=>!!t&&typeof t=="object"&&t instanceof o7.EventEmitter&&typeof t.pipe=="function"&&t.pipe!==jQe.default.Writable.prototype.pipe;Ra.isReadable=HNt;var jNt=t=>!!t&&typeof t=="object"&&t instanceof o7.EventEmitter&&typeof t.write=="function"&&typeof t.end=="function";Ra.isWritable=jNt;var Ah=Symbol("EOF"),ph=Symbol("maybeEmitEnd"),gg=Symbol("emittedEnd"),LN=Symbol("emittingEnd"),Ib=Symbol("emittedError"),MN=Symbol("closed"),_Qe=Symbol("read"),_N=Symbol("flush"),UQe=Symbol("flushChunk"),ff=Symbol("encoding"),jw=Symbol("decoder"),Zs=Symbol("flowing"),Cb=Symbol("paused"),qw=Symbol("resume"),Xs=Symbol("buffer"),Ta=Symbol("pipes"),$s=Symbol("bufferLength"),e7=Symbol("bufferPush"),UN=Symbol("bufferShift"),ia=Symbol("objectMode"),rs=Symbol("destroyed"),t7=Symbol("error"),r7=Symbol("emitData"),HQe=Symbol("emitEnd"),n7=Symbol("emitEnd2"),CA=Symbol("async"),i7=Symbol("abort"),HN=Symbol("aborted"),wb=Symbol("signal"),Jm=Symbol("dataListeners"),nc=Symbol("discarded"),Bb=t=>Promise.resolve().then(t),qNt=t=>t(),GNt=t=>t==="end"||t==="finish"||t==="prefinish",WNt=t=>t instanceof ArrayBuffer||!!t&&typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,YNt=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),jN=class{src;dest;opts;ondrain;constructor(e,r,s){this.src=e,this.dest=r,this.opts=s,this.ondrain=()=>e[qw](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(e){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},s7=class extends jN{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,r,s){super(e,r,s),this.proxyErrors=a=>r.emit("error",a),e.on("error",this.proxyErrors)}},VNt=t=>!!t.objectMode,KNt=t=>!t.objectMode&&!!t.encoding&&t.encoding!=="buffer",qN=class extends o7.EventEmitter{[Zs]=!1;[Cb]=!1;[Ta]=[];[Xs]=[];[ia];[ff];[CA];[jw];[Ah]=!1;[gg]=!1;[LN]=!1;[MN]=!1;[Ib]=null;[$s]=0;[rs]=!1;[wb];[HN]=!1;[Jm]=0;[nc]=!1;writable=!0;readable=!0;constructor(...e){let r=e[0]||{};if(super(),r.objectMode&&typeof r.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");VNt(r)?(this[ia]=!0,this[ff]=null):KNt(r)?(this[ff]=r.encoding,this[ia]=!1):(this[ia]=!1,this[ff]=null),this[CA]=!!r.async,this[jw]=this[ff]?new _Nt.StringDecoder(this[ff]):null,r&&r.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[Xs]}),r&&r.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[Ta]});let{signal:s}=r;s&&(this[wb]=s,s.aborted?this[i7]():s.addEventListener("abort",()=>this[i7]()))}get bufferLength(){return this[$s]}get encoding(){return this[ff]}set encoding(e){throw new Error("Encoding must be set at instantiation time")}setEncoding(e){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[ia]}set objectMode(e){throw new Error("objectMode must be set at instantiation time")}get async(){return this[CA]}set async(e){this[CA]=this[CA]||!!e}[i7](){this[HN]=!0,this.emit("abort",this[wb]?.reason),this.destroy(this[wb]?.reason)}get aborted(){return this[HN]}set aborted(e){}write(e,r,s){if(this[HN])return!1;if(this[Ah])throw new Error("write after end");if(this[rs])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(s=r,r="utf8"),r||(r="utf8");let a=this[CA]?Bb:qNt;if(!this[ia]&&!Buffer.isBuffer(e)){if(YNt(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if(WNt(e))e=Buffer.from(e);else if(typeof e!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[ia]?(this[Zs]&&this[$s]!==0&&this[_N](!0),this[Zs]?this.emit("data",e):this[e7](e),this[$s]!==0&&this.emit("readable"),s&&a(s),this[Zs]):e.length?(typeof e=="string"&&!(r===this[ff]&&!this[jw]?.lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[ff]&&(e=this[jw].write(e)),this[Zs]&&this[$s]!==0&&this[_N](!0),this[Zs]?this.emit("data",e):this[e7](e),this[$s]!==0&&this.emit("readable"),s&&a(s),this[Zs]):(this[$s]!==0&&this.emit("readable"),s&&a(s),this[Zs])}read(e){if(this[rs])return null;if(this[nc]=!1,this[$s]===0||e===0||e&&e>this[$s])return this[ph](),null;this[ia]&&(e=null),this[Xs].length>1&&!this[ia]&&(this[Xs]=[this[ff]?this[Xs].join(""):Buffer.concat(this[Xs],this[$s])]);let r=this[_Qe](e||null,this[Xs][0]);return this[ph](),r}[_Qe](e,r){if(this[ia])this[UN]();else{let s=r;e===s.length||e===null?this[UN]():typeof s=="string"?(this[Xs][0]=s.slice(e),r=s.slice(0,e),this[$s]-=e):(this[Xs][0]=s.subarray(e),r=s.subarray(0,e),this[$s]-=e)}return this.emit("data",r),!this[Xs].length&&!this[Ah]&&this.emit("drain"),r}end(e,r,s){return typeof e=="function"&&(s=e,e=void 0),typeof r=="function"&&(s=r,r="utf8"),e!==void 0&&this.write(e,r),s&&this.once("end",s),this[Ah]=!0,this.writable=!1,(this[Zs]||!this[Cb])&&this[ph](),this}[qw](){this[rs]||(!this[Jm]&&!this[Ta].length&&(this[nc]=!0),this[Cb]=!1,this[Zs]=!0,this.emit("resume"),this[Xs].length?this[_N]():this[Ah]?this[ph]():this.emit("drain"))}resume(){return this[qw]()}pause(){this[Zs]=!1,this[Cb]=!0,this[nc]=!1}get destroyed(){return this[rs]}get flowing(){return this[Zs]}get paused(){return this[Cb]}[e7](e){this[ia]?this[$s]+=1:this[$s]+=e.length,this[Xs].push(e)}[UN](){return this[ia]?this[$s]-=1:this[$s]-=this[Xs][0].length,this[Xs].shift()}[_N](e=!1){do;while(this[UQe](this[UN]())&&this[Xs].length);!e&&!this[Xs].length&&!this[Ah]&&this.emit("drain")}[UQe](e){return this.emit("data",e),this[Zs]}pipe(e,r){if(this[rs])return e;this[nc]=!1;let s=this[gg];return r=r||{},e===MQe.stdout||e===MQe.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,s?r.end&&e.end():(this[Ta].push(r.proxyErrors?new s7(this,e,r):new jN(this,e,r)),this[CA]?Bb(()=>this[qw]()):this[qw]()),e}unpipe(e){let r=this[Ta].find(s=>s.dest===e);r&&(this[Ta].length===1?(this[Zs]&&this[Jm]===0&&(this[Zs]=!1),this[Ta]=[]):this[Ta].splice(this[Ta].indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let s=super.on(e,r);if(e==="data")this[nc]=!1,this[Jm]++,!this[Ta].length&&!this[Zs]&&this[qw]();else if(e==="readable"&&this[$s]!==0)super.emit("readable");else if(GNt(e)&&this[gg])super.emit(e),this.removeAllListeners(e);else if(e==="error"&&this[Ib]){let a=r;this[CA]?Bb(()=>a.call(this,this[Ib])):a.call(this,this[Ib])}return s}removeListener(e,r){return this.off(e,r)}off(e,r){let s=super.off(e,r);return e==="data"&&(this[Jm]=this.listeners("data").length,this[Jm]===0&&!this[nc]&&!this[Ta].length&&(this[Zs]=!1)),s}removeAllListeners(e){let r=super.removeAllListeners(e);return(e==="data"||e===void 0)&&(this[Jm]=0,!this[nc]&&!this[Ta].length&&(this[Zs]=!1)),r}get emittedEnd(){return this[gg]}[ph](){!this[LN]&&!this[gg]&&!this[rs]&&this[Xs].length===0&&this[Ah]&&(this[LN]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[MN]&&this.emit("close"),this[LN]=!1)}emit(e,...r){let s=r[0];if(e!=="error"&&e!=="close"&&e!==rs&&this[rs])return!1;if(e==="data")return!this[ia]&&!s?!1:this[CA]?(Bb(()=>this[r7](s)),!0):this[r7](s);if(e==="end")return this[HQe]();if(e==="close"){if(this[MN]=!0,!this[gg]&&!this[rs])return!1;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(e==="error"){this[Ib]=s,super.emit(t7,s);let n=!this[wb]||this.listeners("error").length?super.emit("error",s):!1;return this[ph](),n}else if(e==="resume"){let n=super.emit("resume");return this[ph](),n}else if(e==="finish"||e==="prefinish"){let n=super.emit(e);return this.removeAllListeners(e),n}let a=super.emit(e,...r);return this[ph](),a}[r7](e){for(let s of this[Ta])s.dest.write(e)===!1&&this.pause();let r=this[nc]?!1:super.emit("data",e);return this[ph](),r}[HQe](){return this[gg]?!1:(this[gg]=!0,this.readable=!1,this[CA]?(Bb(()=>this[n7]()),!0):this[n7]())}[n7](){if(this[jw]){let r=this[jw].end();if(r){for(let s of this[Ta])s.dest.write(r);this[nc]||super.emit("data",r)}}for(let r of this[Ta])r.end();let e=super.emit("end");return this.removeAllListeners("end"),e}async collect(){let e=Object.assign([],{dataLength:0});this[ia]||(e.dataLength=0);let r=this.promise();return this.on("data",s=>{e.push(s),this[ia]||(e.dataLength+=s.length)}),await r,e}async concat(){if(this[ia])throw new Error("cannot concat in objectMode");let e=await this.collect();return this[ff]?e.join(""):Buffer.concat(e,e.dataLength)}async promise(){return new Promise((e,r)=>{this.on(rs,()=>r(new Error("stream destroyed"))),this.on("error",s=>r(s)),this.on("end",()=>e())})}[Symbol.asyncIterator](){this[nc]=!1;let e=!1,r=async()=>(this.pause(),e=!0,{value:void 0,done:!0});return{next:()=>{if(e)return r();let a=this.read();if(a!==null)return Promise.resolve({done:!1,value:a});if(this[Ah])return r();let n,c,f=C=>{this.off("data",p),this.off("end",h),this.off(rs,E),r(),c(C)},p=C=>{this.off("error",f),this.off("end",h),this.off(rs,E),this.pause(),n({value:C,done:!!this[Ah]})},h=()=>{this.off("error",f),this.off("data",p),this.off(rs,E),r(),n({done:!0,value:void 0})},E=()=>f(new Error("stream destroyed"));return new Promise((C,S)=>{c=S,n=C,this.once(rs,E),this.once("error",f),this.once("end",h),this.once("data",p)})},throw:r,return:r,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[nc]=!1;let e=!1,r=()=>(this.pause(),this.off(t7,r),this.off(rs,r),this.off("end",r),e=!0,{done:!0,value:void 0}),s=()=>{if(e)return r();let a=this.read();return a===null?r():{done:!1,value:a}};return this.once("end",r),this.once(t7,r),this.once(rs,r),{next:s,throw:r,return:r,[Symbol.iterator](){return this}}}destroy(e){if(this[rs])return e?this.emit("error",e):this.emit(rs),this;this[rs]=!0,this[nc]=!0,this[Xs].length=0,this[$s]=0;let r=this;return typeof r.close=="function"&&!this[MN]&&r.close(),e?this.emit("error",e):this.emit(rs),this}static get isStream(){return Ra.isStream}};Ra.Minipass=qN});var YQe=L((ZEr,wA)=>{"use strict";var Sb=Ie("crypto"),{Minipass:JNt}=qQe(),l7=["sha512","sha384","sha256"],u7=["sha512"],zNt=/^[a-z0-9+/]+(?:=?=?)$/i,ZNt=/^([a-z0-9]+)-([^?]+)([?\S*]*)$/,XNt=/^([a-z0-9]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)?$/,$Nt=/^[\x21-\x7E]+$/,Db=t=>t?.length?`?${t.join("?")}`:"",c7=class extends JNt{#t;#r;#i;constructor(e){super(),this.size=0,this.opts=e,this.#e(),e?.algorithms?this.algorithms=[...e.algorithms]:this.algorithms=[...u7],this.algorithm!==null&&!this.algorithms.includes(this.algorithm)&&this.algorithms.push(this.algorithm),this.hashes=this.algorithms.map(Sb.createHash)}#e(){this.sri=this.opts?.integrity?ic(this.opts?.integrity,this.opts):null,this.expectedSize=this.opts?.size,this.sri?this.sri.isHash?(this.goodSri=!0,this.algorithm=this.sri.algorithm):(this.goodSri=!this.sri.isEmpty(),this.algorithm=this.sri.pickAlgorithm(this.opts)):this.algorithm=null,this.digests=this.goodSri?this.sri[this.algorithm]:null,this.optString=Db(this.opts?.options)}on(e,r){return e==="size"&&this.#r?r(this.#r):e==="integrity"&&this.#t?r(this.#t):e==="verified"&&this.#i?r(this.#i):super.on(e,r)}emit(e,r){return e==="end"&&this.#n(),super.emit(e,r)}write(e){return this.size+=e.length,this.hashes.forEach(r=>r.update(e)),super.write(e)}#n(){this.goodSri||this.#e();let e=ic(this.hashes.map((s,a)=>`${this.algorithms[a]}-${s.digest("base64")}${this.optString}`).join(" "),this.opts),r=this.goodSri&&e.match(this.sri,this.opts);if(typeof this.expectedSize=="number"&&this.size!==this.expectedSize){let s=new Error(`stream size mismatch when checking ${this.sri}. + Wanted: ${this.expectedSize} + Found: ${this.size}`);s.code="EBADSIZE",s.found=this.size,s.expected=this.expectedSize,s.sri=this.sri,this.emit("error",s)}else if(this.sri&&!r){let s=new Error(`${this.sri} integrity checksum failed when using ${this.algorithm}: wanted ${this.digests} but got ${e}. (${this.size} bytes)`);s.code="EINTEGRITY",s.found=e,s.expected=this.digests,s.algorithm=this.algorithm,s.sri=this.sri,this.emit("error",s)}else this.#r=this.size,this.emit("size",this.size),this.#t=e,this.emit("integrity",e),r&&(this.#i=r,this.emit("verified",r))}},hh=class{get isHash(){return!0}constructor(e,r){let s=r?.strict;this.source=e.trim(),this.digest="",this.algorithm="",this.options=[];let a=this.source.match(s?XNt:ZNt);if(!a||s&&!l7.includes(a[1]))return;this.algorithm=a[1],this.digest=a[2];let n=a[3];n&&(this.options=n.slice(1).split("?"))}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}match(e,r){let s=ic(e,r);if(!s)return!1;if(s.isIntegrity){let a=s.pickAlgorithm(r,[this.algorithm]);if(!a)return!1;let n=s[a].find(c=>c.digest===this.digest);return n||!1}return s.digest===this.digest?s:!1}toString(e){return e?.strict&&!(l7.includes(this.algorithm)&&this.digest.match(zNt)&&this.options.every(r=>r.match($Nt)))?"":`${this.algorithm}-${this.digest}${Db(this.options)}`}};function GQe(t,e,r,s){let a=t!=="",n=!1,c="",f=s.length-1;for(let h=0;h<f;h++){let E=hh.prototype.toString.call(s[h],r);E&&(n=!0,c+=E,c+=e)}let p=hh.prototype.toString.call(s[f],r);return p&&(n=!0,c+=p),a&&n?t+e+c:t+c}var zm=class{get isIntegrity(){return!0}toJSON(){return this.toString()}isEmpty(){return Object.keys(this).length===0}toString(e){let r=e?.sep||" ",s="";if(e?.strict){r=r.replace(/\S+/g," ");for(let a of l7)this[a]&&(s=GQe(s,r,e,this[a]))}else for(let a of Object.keys(this))s=GQe(s,r,e,this[a]);return s}concat(e,r){let s=typeof e=="string"?e:vb(e,r);return ic(`${this.toString(r)} ${s}`,r)}hexDigest(){return ic(this,{single:!0}).hexDigest()}merge(e,r){let s=ic(e,r);for(let a in s)if(this[a]){if(!this[a].find(n=>s[a].find(c=>n.digest===c.digest)))throw new Error("hashes do not match, cannot update integrity")}else this[a]=s[a]}match(e,r){let s=ic(e,r);if(!s)return!1;let a=s.pickAlgorithm(r,Object.keys(this));return!!a&&this[a]&&s[a]&&this[a].find(n=>s[a].find(c=>n.digest===c.digest))||!1}pickAlgorithm(e,r){let s=e?.pickAlgorithm||aOt,a=Object.keys(this).filter(n=>r?.length?r.includes(n):!0);return a.length?a.reduce((n,c)=>s(n,c)||n):null}};wA.exports.parse=ic;function ic(t,e){if(!t)return null;if(typeof t=="string")return a7(t,e);if(t.algorithm&&t.digest){let r=new zm;return r[t.algorithm]=[t],a7(vb(r,e),e)}else return a7(vb(t,e),e)}function a7(t,e){if(e?.single)return new hh(t,e);let r=t.trim().split(/\s+/).reduce((s,a)=>{let n=new hh(a,e);if(n.algorithm&&n.digest){let c=n.algorithm;s[c]||(s[c]=[]),s[c].push(n)}return s},new zm);return r.isEmpty()?null:r}wA.exports.stringify=vb;function vb(t,e){return t.algorithm&&t.digest?hh.prototype.toString.call(t,e):typeof t=="string"?vb(ic(t,e),e):zm.prototype.toString.call(t,e)}wA.exports.fromHex=eOt;function eOt(t,e,r){let s=Db(r?.options);return ic(`${e}-${Buffer.from(t,"hex").toString("base64")}${s}`,r)}wA.exports.fromData=tOt;function tOt(t,e){let r=e?.algorithms||[...u7],s=Db(e?.options);return r.reduce((a,n)=>{let c=Sb.createHash(n).update(t).digest("base64"),f=new hh(`${n}-${c}${s}`,e);if(f.algorithm&&f.digest){let p=f.algorithm;a[p]||(a[p]=[]),a[p].push(f)}return a},new zm)}wA.exports.fromStream=rOt;function rOt(t,e){let r=f7(e);return new Promise((s,a)=>{t.pipe(r),t.on("error",a),r.on("error",a);let n;r.on("integrity",c=>{n=c}),r.on("end",()=>s(n)),r.resume()})}wA.exports.checkData=nOt;function nOt(t,e,r){if(e=ic(e,r),!e||!Object.keys(e).length){if(r?.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let s=e.pickAlgorithm(r),a=Sb.createHash(s).update(t).digest("base64"),n=ic({algorithm:s,digest:a}),c=n.match(e,r);if(r=r||{},c||!r.error)return c;if(typeof r.size=="number"&&t.length!==r.size){let f=new Error(`data size mismatch when checking ${e}. + Wanted: ${r.size} + Found: ${t.length}`);throw f.code="EBADSIZE",f.found=t.length,f.expected=r.size,f.sri=e,f}else{let f=new Error(`Integrity checksum failed when using ${s}: Wanted ${e}, but got ${n}. (${t.length} bytes)`);throw f.code="EINTEGRITY",f.found=n,f.expected=e,f.algorithm=s,f.sri=e,f}}wA.exports.checkStream=iOt;function iOt(t,e,r){if(r=r||Object.create(null),r.integrity=e,e=ic(e,r),!e||!Object.keys(e).length)return Promise.reject(Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"}));let s=f7(r);return new Promise((a,n)=>{t.pipe(s),t.on("error",n),s.on("error",n);let c;s.on("verified",f=>{c=f}),s.on("end",()=>a(c)),s.resume()})}wA.exports.integrityStream=f7;function f7(t=Object.create(null)){return new c7(t)}wA.exports.create=sOt;function sOt(t){let e=t?.algorithms||[...u7],r=Db(t?.options),s=e.map(Sb.createHash);return{update:function(a,n){return s.forEach(c=>c.update(a,n)),this},digest:function(){return e.reduce((n,c)=>{let f=s.shift().digest("base64"),p=new hh(`${c}-${f}${r}`,t);if(p.algorithm&&p.digest){let h=p.algorithm;n[h]||(n[h]=[]),n[h].push(p)}return n},new zm)}}}var oOt=Sb.getHashes(),WQe=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>oOt.includes(t));function aOt(t,e){return WQe.indexOf(t.toLowerCase())>=WQe.indexOf(e.toLowerCase())?t:e}});var A7=L(dg=>{"use strict";Object.defineProperty(dg,"__esModule",{value:!0});dg.Signature=dg.Envelope=void 0;dg.Envelope={fromJSON(t){return{payload:GN(t.payload)?Buffer.from(VQe(t.payload)):Buffer.alloc(0),payloadType:GN(t.payloadType)?globalThis.String(t.payloadType):"",signatures:globalThis.Array.isArray(t?.signatures)?t.signatures.map(e=>dg.Signature.fromJSON(e)):[]}},toJSON(t){let e={};return t.payload.length!==0&&(e.payload=KQe(t.payload)),t.payloadType!==""&&(e.payloadType=t.payloadType),t.signatures?.length&&(e.signatures=t.signatures.map(r=>dg.Signature.toJSON(r))),e}};dg.Signature={fromJSON(t){return{sig:GN(t.sig)?Buffer.from(VQe(t.sig)):Buffer.alloc(0),keyid:GN(t.keyid)?globalThis.String(t.keyid):""}},toJSON(t){let e={};return t.sig.length!==0&&(e.sig=KQe(t.sig)),t.keyid!==""&&(e.keyid=t.keyid),e}};function VQe(t){return Uint8Array.from(globalThis.Buffer.from(t,"base64"))}function KQe(t){return globalThis.Buffer.from(t).toString("base64")}function GN(t){return t!=null}});var zQe=L(WN=>{"use strict";Object.defineProperty(WN,"__esModule",{value:!0});WN.Timestamp=void 0;WN.Timestamp={fromJSON(t){return{seconds:JQe(t.seconds)?globalThis.String(t.seconds):"0",nanos:JQe(t.nanos)?globalThis.Number(t.nanos):0}},toJSON(t){let e={};return t.seconds!=="0"&&(e.seconds=t.seconds),t.nanos!==0&&(e.nanos=Math.round(t.nanos)),e}};function JQe(t){return t!=null}});var Gw=L(_r=>{"use strict";Object.defineProperty(_r,"__esModule",{value:!0});_r.TimeRange=_r.X509CertificateChain=_r.SubjectAlternativeName=_r.X509Certificate=_r.DistinguishedName=_r.ObjectIdentifierValuePair=_r.ObjectIdentifier=_r.PublicKeyIdentifier=_r.PublicKey=_r.RFC3161SignedTimestamp=_r.LogId=_r.MessageSignature=_r.HashOutput=_r.SubjectAlternativeNameType=_r.PublicKeyDetails=_r.HashAlgorithm=void 0;_r.hashAlgorithmFromJSON=XQe;_r.hashAlgorithmToJSON=$Qe;_r.publicKeyDetailsFromJSON=eTe;_r.publicKeyDetailsToJSON=tTe;_r.subjectAlternativeNameTypeFromJSON=rTe;_r.subjectAlternativeNameTypeToJSON=nTe;var lOt=zQe(),El;(function(t){t[t.HASH_ALGORITHM_UNSPECIFIED=0]="HASH_ALGORITHM_UNSPECIFIED",t[t.SHA2_256=1]="SHA2_256",t[t.SHA2_384=2]="SHA2_384",t[t.SHA2_512=3]="SHA2_512",t[t.SHA3_256=4]="SHA3_256",t[t.SHA3_384=5]="SHA3_384"})(El||(_r.HashAlgorithm=El={}));function XQe(t){switch(t){case 0:case"HASH_ALGORITHM_UNSPECIFIED":return El.HASH_ALGORITHM_UNSPECIFIED;case 1:case"SHA2_256":return El.SHA2_256;case 2:case"SHA2_384":return El.SHA2_384;case 3:case"SHA2_512":return El.SHA2_512;case 4:case"SHA3_256":return El.SHA3_256;case 5:case"SHA3_384":return El.SHA3_384;default:throw new globalThis.Error("Unrecognized enum value "+t+" for enum HashAlgorithm")}}function $Qe(t){switch(t){case El.HASH_ALGORITHM_UNSPECIFIED:return"HASH_ALGORITHM_UNSPECIFIED";case El.SHA2_256:return"SHA2_256";case El.SHA2_384:return"SHA2_384";case El.SHA2_512:return"SHA2_512";case El.SHA3_256:return"SHA3_256";case El.SHA3_384:return"SHA3_384";default:throw new globalThis.Error("Unrecognized enum value "+t+" for enum HashAlgorithm")}}var rn;(function(t){t[t.PUBLIC_KEY_DETAILS_UNSPECIFIED=0]="PUBLIC_KEY_DETAILS_UNSPECIFIED",t[t.PKCS1_RSA_PKCS1V5=1]="PKCS1_RSA_PKCS1V5",t[t.PKCS1_RSA_PSS=2]="PKCS1_RSA_PSS",t[t.PKIX_RSA_PKCS1V5=3]="PKIX_RSA_PKCS1V5",t[t.PKIX_RSA_PSS=4]="PKIX_RSA_PSS",t[t.PKIX_RSA_PKCS1V15_2048_SHA256=9]="PKIX_RSA_PKCS1V15_2048_SHA256",t[t.PKIX_RSA_PKCS1V15_3072_SHA256=10]="PKIX_RSA_PKCS1V15_3072_SHA256",t[t.PKIX_RSA_PKCS1V15_4096_SHA256=11]="PKIX_RSA_PKCS1V15_4096_SHA256",t[t.PKIX_RSA_PSS_2048_SHA256=16]="PKIX_RSA_PSS_2048_SHA256",t[t.PKIX_RSA_PSS_3072_SHA256=17]="PKIX_RSA_PSS_3072_SHA256",t[t.PKIX_RSA_PSS_4096_SHA256=18]="PKIX_RSA_PSS_4096_SHA256",t[t.PKIX_ECDSA_P256_HMAC_SHA_256=6]="PKIX_ECDSA_P256_HMAC_SHA_256",t[t.PKIX_ECDSA_P256_SHA_256=5]="PKIX_ECDSA_P256_SHA_256",t[t.PKIX_ECDSA_P384_SHA_384=12]="PKIX_ECDSA_P384_SHA_384",t[t.PKIX_ECDSA_P521_SHA_512=13]="PKIX_ECDSA_P521_SHA_512",t[t.PKIX_ED25519=7]="PKIX_ED25519",t[t.PKIX_ED25519_PH=8]="PKIX_ED25519_PH",t[t.LMS_SHA256=14]="LMS_SHA256",t[t.LMOTS_SHA256=15]="LMOTS_SHA256"})(rn||(_r.PublicKeyDetails=rn={}));function eTe(t){switch(t){case 0:case"PUBLIC_KEY_DETAILS_UNSPECIFIED":return rn.PUBLIC_KEY_DETAILS_UNSPECIFIED;case 1:case"PKCS1_RSA_PKCS1V5":return rn.PKCS1_RSA_PKCS1V5;case 2:case"PKCS1_RSA_PSS":return rn.PKCS1_RSA_PSS;case 3:case"PKIX_RSA_PKCS1V5":return rn.PKIX_RSA_PKCS1V5;case 4:case"PKIX_RSA_PSS":return rn.PKIX_RSA_PSS;case 9:case"PKIX_RSA_PKCS1V15_2048_SHA256":return rn.PKIX_RSA_PKCS1V15_2048_SHA256;case 10:case"PKIX_RSA_PKCS1V15_3072_SHA256":return rn.PKIX_RSA_PKCS1V15_3072_SHA256;case 11:case"PKIX_RSA_PKCS1V15_4096_SHA256":return rn.PKIX_RSA_PKCS1V15_4096_SHA256;case 16:case"PKIX_RSA_PSS_2048_SHA256":return rn.PKIX_RSA_PSS_2048_SHA256;case 17:case"PKIX_RSA_PSS_3072_SHA256":return rn.PKIX_RSA_PSS_3072_SHA256;case 18:case"PKIX_RSA_PSS_4096_SHA256":return rn.PKIX_RSA_PSS_4096_SHA256;case 6:case"PKIX_ECDSA_P256_HMAC_SHA_256":return rn.PKIX_ECDSA_P256_HMAC_SHA_256;case 5:case"PKIX_ECDSA_P256_SHA_256":return rn.PKIX_ECDSA_P256_SHA_256;case 12:case"PKIX_ECDSA_P384_SHA_384":return rn.PKIX_ECDSA_P384_SHA_384;case 13:case"PKIX_ECDSA_P521_SHA_512":return rn.PKIX_ECDSA_P521_SHA_512;case 7:case"PKIX_ED25519":return rn.PKIX_ED25519;case 8:case"PKIX_ED25519_PH":return rn.PKIX_ED25519_PH;case 14:case"LMS_SHA256":return rn.LMS_SHA256;case 15:case"LMOTS_SHA256":return rn.LMOTS_SHA256;default:throw new globalThis.Error("Unrecognized enum value "+t+" for enum PublicKeyDetails")}}function tTe(t){switch(t){case rn.PUBLIC_KEY_DETAILS_UNSPECIFIED:return"PUBLIC_KEY_DETAILS_UNSPECIFIED";case rn.PKCS1_RSA_PKCS1V5:return"PKCS1_RSA_PKCS1V5";case rn.PKCS1_RSA_PSS:return"PKCS1_RSA_PSS";case rn.PKIX_RSA_PKCS1V5:return"PKIX_RSA_PKCS1V5";case rn.PKIX_RSA_PSS:return"PKIX_RSA_PSS";case rn.PKIX_RSA_PKCS1V15_2048_SHA256:return"PKIX_RSA_PKCS1V15_2048_SHA256";case rn.PKIX_RSA_PKCS1V15_3072_SHA256:return"PKIX_RSA_PKCS1V15_3072_SHA256";case rn.PKIX_RSA_PKCS1V15_4096_SHA256:return"PKIX_RSA_PKCS1V15_4096_SHA256";case rn.PKIX_RSA_PSS_2048_SHA256:return"PKIX_RSA_PSS_2048_SHA256";case rn.PKIX_RSA_PSS_3072_SHA256:return"PKIX_RSA_PSS_3072_SHA256";case rn.PKIX_RSA_PSS_4096_SHA256:return"PKIX_RSA_PSS_4096_SHA256";case rn.PKIX_ECDSA_P256_HMAC_SHA_256:return"PKIX_ECDSA_P256_HMAC_SHA_256";case rn.PKIX_ECDSA_P256_SHA_256:return"PKIX_ECDSA_P256_SHA_256";case rn.PKIX_ECDSA_P384_SHA_384:return"PKIX_ECDSA_P384_SHA_384";case rn.PKIX_ECDSA_P521_SHA_512:return"PKIX_ECDSA_P521_SHA_512";case rn.PKIX_ED25519:return"PKIX_ED25519";case rn.PKIX_ED25519_PH:return"PKIX_ED25519_PH";case rn.LMS_SHA256:return"LMS_SHA256";case rn.LMOTS_SHA256:return"LMOTS_SHA256";default:throw new globalThis.Error("Unrecognized enum value "+t+" for enum PublicKeyDetails")}}var BA;(function(t){t[t.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED=0]="SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED",t[t.EMAIL=1]="EMAIL",t[t.URI=2]="URI",t[t.OTHER_NAME=3]="OTHER_NAME"})(BA||(_r.SubjectAlternativeNameType=BA={}));function rTe(t){switch(t){case 0:case"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED":return BA.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED;case 1:case"EMAIL":return BA.EMAIL;case 2:case"URI":return BA.URI;case 3:case"OTHER_NAME":return BA.OTHER_NAME;default:throw new globalThis.Error("Unrecognized enum value "+t+" for enum SubjectAlternativeNameType")}}function nTe(t){switch(t){case BA.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED:return"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED";case BA.EMAIL:return"EMAIL";case BA.URI:return"URI";case BA.OTHER_NAME:return"OTHER_NAME";default:throw new globalThis.Error("Unrecognized enum value "+t+" for enum SubjectAlternativeNameType")}}_r.HashOutput={fromJSON(t){return{algorithm:ys(t.algorithm)?XQe(t.algorithm):0,digest:ys(t.digest)?Buffer.from(Zm(t.digest)):Buffer.alloc(0)}},toJSON(t){let e={};return t.algorithm!==0&&(e.algorithm=$Qe(t.algorithm)),t.digest.length!==0&&(e.digest=Xm(t.digest)),e}};_r.MessageSignature={fromJSON(t){return{messageDigest:ys(t.messageDigest)?_r.HashOutput.fromJSON(t.messageDigest):void 0,signature:ys(t.signature)?Buffer.from(Zm(t.signature)):Buffer.alloc(0)}},toJSON(t){let e={};return t.messageDigest!==void 0&&(e.messageDigest=_r.HashOutput.toJSON(t.messageDigest)),t.signature.length!==0&&(e.signature=Xm(t.signature)),e}};_r.LogId={fromJSON(t){return{keyId:ys(t.keyId)?Buffer.from(Zm(t.keyId)):Buffer.alloc(0)}},toJSON(t){let e={};return t.keyId.length!==0&&(e.keyId=Xm(t.keyId)),e}};_r.RFC3161SignedTimestamp={fromJSON(t){return{signedTimestamp:ys(t.signedTimestamp)?Buffer.from(Zm(t.signedTimestamp)):Buffer.alloc(0)}},toJSON(t){let e={};return t.signedTimestamp.length!==0&&(e.signedTimestamp=Xm(t.signedTimestamp)),e}};_r.PublicKey={fromJSON(t){return{rawBytes:ys(t.rawBytes)?Buffer.from(Zm(t.rawBytes)):void 0,keyDetails:ys(t.keyDetails)?eTe(t.keyDetails):0,validFor:ys(t.validFor)?_r.TimeRange.fromJSON(t.validFor):void 0}},toJSON(t){let e={};return t.rawBytes!==void 0&&(e.rawBytes=Xm(t.rawBytes)),t.keyDetails!==0&&(e.keyDetails=tTe(t.keyDetails)),t.validFor!==void 0&&(e.validFor=_r.TimeRange.toJSON(t.validFor)),e}};_r.PublicKeyIdentifier={fromJSON(t){return{hint:ys(t.hint)?globalThis.String(t.hint):""}},toJSON(t){let e={};return t.hint!==""&&(e.hint=t.hint),e}};_r.ObjectIdentifier={fromJSON(t){return{id:globalThis.Array.isArray(t?.id)?t.id.map(e=>globalThis.Number(e)):[]}},toJSON(t){let e={};return t.id?.length&&(e.id=t.id.map(r=>Math.round(r))),e}};_r.ObjectIdentifierValuePair={fromJSON(t){return{oid:ys(t.oid)?_r.ObjectIdentifier.fromJSON(t.oid):void 0,value:ys(t.value)?Buffer.from(Zm(t.value)):Buffer.alloc(0)}},toJSON(t){let e={};return t.oid!==void 0&&(e.oid=_r.ObjectIdentifier.toJSON(t.oid)),t.value.length!==0&&(e.value=Xm(t.value)),e}};_r.DistinguishedName={fromJSON(t){return{organization:ys(t.organization)?globalThis.String(t.organization):"",commonName:ys(t.commonName)?globalThis.String(t.commonName):""}},toJSON(t){let e={};return t.organization!==""&&(e.organization=t.organization),t.commonName!==""&&(e.commonName=t.commonName),e}};_r.X509Certificate={fromJSON(t){return{rawBytes:ys(t.rawBytes)?Buffer.from(Zm(t.rawBytes)):Buffer.alloc(0)}},toJSON(t){let e={};return t.rawBytes.length!==0&&(e.rawBytes=Xm(t.rawBytes)),e}};_r.SubjectAlternativeName={fromJSON(t){return{type:ys(t.type)?rTe(t.type):0,identity:ys(t.regexp)?{$case:"regexp",regexp:globalThis.String(t.regexp)}:ys(t.value)?{$case:"value",value:globalThis.String(t.value)}:void 0}},toJSON(t){let e={};return t.type!==0&&(e.type=nTe(t.type)),t.identity?.$case==="regexp"?e.regexp=t.identity.regexp:t.identity?.$case==="value"&&(e.value=t.identity.value),e}};_r.X509CertificateChain={fromJSON(t){return{certificates:globalThis.Array.isArray(t?.certificates)?t.certificates.map(e=>_r.X509Certificate.fromJSON(e)):[]}},toJSON(t){let e={};return t.certificates?.length&&(e.certificates=t.certificates.map(r=>_r.X509Certificate.toJSON(r))),e}};_r.TimeRange={fromJSON(t){return{start:ys(t.start)?ZQe(t.start):void 0,end:ys(t.end)?ZQe(t.end):void 0}},toJSON(t){let e={};return t.start!==void 0&&(e.start=t.start.toISOString()),t.end!==void 0&&(e.end=t.end.toISOString()),e}};function Zm(t){return Uint8Array.from(globalThis.Buffer.from(t,"base64"))}function Xm(t){return globalThis.Buffer.from(t).toString("base64")}function cOt(t){let e=(globalThis.Number(t.seconds)||0)*1e3;return e+=(t.nanos||0)/1e6,new globalThis.Date(e)}function ZQe(t){return t instanceof globalThis.Date?t:typeof t=="string"?new globalThis.Date(t):cOt(lOt.Timestamp.fromJSON(t))}function ys(t){return t!=null}});var p7=L(Es=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});Es.TransparencyLogEntry=Es.InclusionPromise=Es.InclusionProof=Es.Checkpoint=Es.KindVersion=void 0;var iTe=Gw();Es.KindVersion={fromJSON(t){return{kind:Fa(t.kind)?globalThis.String(t.kind):"",version:Fa(t.version)?globalThis.String(t.version):""}},toJSON(t){let e={};return t.kind!==""&&(e.kind=t.kind),t.version!==""&&(e.version=t.version),e}};Es.Checkpoint={fromJSON(t){return{envelope:Fa(t.envelope)?globalThis.String(t.envelope):""}},toJSON(t){let e={};return t.envelope!==""&&(e.envelope=t.envelope),e}};Es.InclusionProof={fromJSON(t){return{logIndex:Fa(t.logIndex)?globalThis.String(t.logIndex):"0",rootHash:Fa(t.rootHash)?Buffer.from(YN(t.rootHash)):Buffer.alloc(0),treeSize:Fa(t.treeSize)?globalThis.String(t.treeSize):"0",hashes:globalThis.Array.isArray(t?.hashes)?t.hashes.map(e=>Buffer.from(YN(e))):[],checkpoint:Fa(t.checkpoint)?Es.Checkpoint.fromJSON(t.checkpoint):void 0}},toJSON(t){let e={};return t.logIndex!=="0"&&(e.logIndex=t.logIndex),t.rootHash.length!==0&&(e.rootHash=VN(t.rootHash)),t.treeSize!=="0"&&(e.treeSize=t.treeSize),t.hashes?.length&&(e.hashes=t.hashes.map(r=>VN(r))),t.checkpoint!==void 0&&(e.checkpoint=Es.Checkpoint.toJSON(t.checkpoint)),e}};Es.InclusionPromise={fromJSON(t){return{signedEntryTimestamp:Fa(t.signedEntryTimestamp)?Buffer.from(YN(t.signedEntryTimestamp)):Buffer.alloc(0)}},toJSON(t){let e={};return t.signedEntryTimestamp.length!==0&&(e.signedEntryTimestamp=VN(t.signedEntryTimestamp)),e}};Es.TransparencyLogEntry={fromJSON(t){return{logIndex:Fa(t.logIndex)?globalThis.String(t.logIndex):"0",logId:Fa(t.logId)?iTe.LogId.fromJSON(t.logId):void 0,kindVersion:Fa(t.kindVersion)?Es.KindVersion.fromJSON(t.kindVersion):void 0,integratedTime:Fa(t.integratedTime)?globalThis.String(t.integratedTime):"0",inclusionPromise:Fa(t.inclusionPromise)?Es.InclusionPromise.fromJSON(t.inclusionPromise):void 0,inclusionProof:Fa(t.inclusionProof)?Es.InclusionProof.fromJSON(t.inclusionProof):void 0,canonicalizedBody:Fa(t.canonicalizedBody)?Buffer.from(YN(t.canonicalizedBody)):Buffer.alloc(0)}},toJSON(t){let e={};return t.logIndex!=="0"&&(e.logIndex=t.logIndex),t.logId!==void 0&&(e.logId=iTe.LogId.toJSON(t.logId)),t.kindVersion!==void 0&&(e.kindVersion=Es.KindVersion.toJSON(t.kindVersion)),t.integratedTime!=="0"&&(e.integratedTime=t.integratedTime),t.inclusionPromise!==void 0&&(e.inclusionPromise=Es.InclusionPromise.toJSON(t.inclusionPromise)),t.inclusionProof!==void 0&&(e.inclusionProof=Es.InclusionProof.toJSON(t.inclusionProof)),t.canonicalizedBody.length!==0&&(e.canonicalizedBody=VN(t.canonicalizedBody)),e}};function YN(t){return Uint8Array.from(globalThis.Buffer.from(t,"base64"))}function VN(t){return globalThis.Buffer.from(t).toString("base64")}function Fa(t){return t!=null}});var h7=L($c=>{"use strict";Object.defineProperty($c,"__esModule",{value:!0});$c.Bundle=$c.VerificationMaterial=$c.TimestampVerificationData=void 0;var sTe=A7(),vA=Gw(),oTe=p7();$c.TimestampVerificationData={fromJSON(t){return{rfc3161Timestamps:globalThis.Array.isArray(t?.rfc3161Timestamps)?t.rfc3161Timestamps.map(e=>vA.RFC3161SignedTimestamp.fromJSON(e)):[]}},toJSON(t){let e={};return t.rfc3161Timestamps?.length&&(e.rfc3161Timestamps=t.rfc3161Timestamps.map(r=>vA.RFC3161SignedTimestamp.toJSON(r))),e}};$c.VerificationMaterial={fromJSON(t){return{content:mg(t.publicKey)?{$case:"publicKey",publicKey:vA.PublicKeyIdentifier.fromJSON(t.publicKey)}:mg(t.x509CertificateChain)?{$case:"x509CertificateChain",x509CertificateChain:vA.X509CertificateChain.fromJSON(t.x509CertificateChain)}:mg(t.certificate)?{$case:"certificate",certificate:vA.X509Certificate.fromJSON(t.certificate)}:void 0,tlogEntries:globalThis.Array.isArray(t?.tlogEntries)?t.tlogEntries.map(e=>oTe.TransparencyLogEntry.fromJSON(e)):[],timestampVerificationData:mg(t.timestampVerificationData)?$c.TimestampVerificationData.fromJSON(t.timestampVerificationData):void 0}},toJSON(t){let e={};return t.content?.$case==="publicKey"?e.publicKey=vA.PublicKeyIdentifier.toJSON(t.content.publicKey):t.content?.$case==="x509CertificateChain"?e.x509CertificateChain=vA.X509CertificateChain.toJSON(t.content.x509CertificateChain):t.content?.$case==="certificate"&&(e.certificate=vA.X509Certificate.toJSON(t.content.certificate)),t.tlogEntries?.length&&(e.tlogEntries=t.tlogEntries.map(r=>oTe.TransparencyLogEntry.toJSON(r))),t.timestampVerificationData!==void 0&&(e.timestampVerificationData=$c.TimestampVerificationData.toJSON(t.timestampVerificationData)),e}};$c.Bundle={fromJSON(t){return{mediaType:mg(t.mediaType)?globalThis.String(t.mediaType):"",verificationMaterial:mg(t.verificationMaterial)?$c.VerificationMaterial.fromJSON(t.verificationMaterial):void 0,content:mg(t.messageSignature)?{$case:"messageSignature",messageSignature:vA.MessageSignature.fromJSON(t.messageSignature)}:mg(t.dsseEnvelope)?{$case:"dsseEnvelope",dsseEnvelope:sTe.Envelope.fromJSON(t.dsseEnvelope)}:void 0}},toJSON(t){let e={};return t.mediaType!==""&&(e.mediaType=t.mediaType),t.verificationMaterial!==void 0&&(e.verificationMaterial=$c.VerificationMaterial.toJSON(t.verificationMaterial)),t.content?.$case==="messageSignature"?e.messageSignature=vA.MessageSignature.toJSON(t.content.messageSignature):t.content?.$case==="dsseEnvelope"&&(e.dsseEnvelope=sTe.Envelope.toJSON(t.content.dsseEnvelope)),e}};function mg(t){return t!=null}});var g7=L(Fi=>{"use strict";Object.defineProperty(Fi,"__esModule",{value:!0});Fi.ClientTrustConfig=Fi.SigningConfig=Fi.TrustedRoot=Fi.CertificateAuthority=Fi.TransparencyLogInstance=void 0;var Il=Gw();Fi.TransparencyLogInstance={fromJSON(t){return{baseUrl:sa(t.baseUrl)?globalThis.String(t.baseUrl):"",hashAlgorithm:sa(t.hashAlgorithm)?(0,Il.hashAlgorithmFromJSON)(t.hashAlgorithm):0,publicKey:sa(t.publicKey)?Il.PublicKey.fromJSON(t.publicKey):void 0,logId:sa(t.logId)?Il.LogId.fromJSON(t.logId):void 0,checkpointKeyId:sa(t.checkpointKeyId)?Il.LogId.fromJSON(t.checkpointKeyId):void 0}},toJSON(t){let e={};return t.baseUrl!==""&&(e.baseUrl=t.baseUrl),t.hashAlgorithm!==0&&(e.hashAlgorithm=(0,Il.hashAlgorithmToJSON)(t.hashAlgorithm)),t.publicKey!==void 0&&(e.publicKey=Il.PublicKey.toJSON(t.publicKey)),t.logId!==void 0&&(e.logId=Il.LogId.toJSON(t.logId)),t.checkpointKeyId!==void 0&&(e.checkpointKeyId=Il.LogId.toJSON(t.checkpointKeyId)),e}};Fi.CertificateAuthority={fromJSON(t){return{subject:sa(t.subject)?Il.DistinguishedName.fromJSON(t.subject):void 0,uri:sa(t.uri)?globalThis.String(t.uri):"",certChain:sa(t.certChain)?Il.X509CertificateChain.fromJSON(t.certChain):void 0,validFor:sa(t.validFor)?Il.TimeRange.fromJSON(t.validFor):void 0}},toJSON(t){let e={};return t.subject!==void 0&&(e.subject=Il.DistinguishedName.toJSON(t.subject)),t.uri!==""&&(e.uri=t.uri),t.certChain!==void 0&&(e.certChain=Il.X509CertificateChain.toJSON(t.certChain)),t.validFor!==void 0&&(e.validFor=Il.TimeRange.toJSON(t.validFor)),e}};Fi.TrustedRoot={fromJSON(t){return{mediaType:sa(t.mediaType)?globalThis.String(t.mediaType):"",tlogs:globalThis.Array.isArray(t?.tlogs)?t.tlogs.map(e=>Fi.TransparencyLogInstance.fromJSON(e)):[],certificateAuthorities:globalThis.Array.isArray(t?.certificateAuthorities)?t.certificateAuthorities.map(e=>Fi.CertificateAuthority.fromJSON(e)):[],ctlogs:globalThis.Array.isArray(t?.ctlogs)?t.ctlogs.map(e=>Fi.TransparencyLogInstance.fromJSON(e)):[],timestampAuthorities:globalThis.Array.isArray(t?.timestampAuthorities)?t.timestampAuthorities.map(e=>Fi.CertificateAuthority.fromJSON(e)):[]}},toJSON(t){let e={};return t.mediaType!==""&&(e.mediaType=t.mediaType),t.tlogs?.length&&(e.tlogs=t.tlogs.map(r=>Fi.TransparencyLogInstance.toJSON(r))),t.certificateAuthorities?.length&&(e.certificateAuthorities=t.certificateAuthorities.map(r=>Fi.CertificateAuthority.toJSON(r))),t.ctlogs?.length&&(e.ctlogs=t.ctlogs.map(r=>Fi.TransparencyLogInstance.toJSON(r))),t.timestampAuthorities?.length&&(e.timestampAuthorities=t.timestampAuthorities.map(r=>Fi.CertificateAuthority.toJSON(r))),e}};Fi.SigningConfig={fromJSON(t){return{mediaType:sa(t.mediaType)?globalThis.String(t.mediaType):"",caUrl:sa(t.caUrl)?globalThis.String(t.caUrl):"",oidcUrl:sa(t.oidcUrl)?globalThis.String(t.oidcUrl):"",tlogUrls:globalThis.Array.isArray(t?.tlogUrls)?t.tlogUrls.map(e=>globalThis.String(e)):[],tsaUrls:globalThis.Array.isArray(t?.tsaUrls)?t.tsaUrls.map(e=>globalThis.String(e)):[]}},toJSON(t){let e={};return t.mediaType!==""&&(e.mediaType=t.mediaType),t.caUrl!==""&&(e.caUrl=t.caUrl),t.oidcUrl!==""&&(e.oidcUrl=t.oidcUrl),t.tlogUrls?.length&&(e.tlogUrls=t.tlogUrls),t.tsaUrls?.length&&(e.tsaUrls=t.tsaUrls),e}};Fi.ClientTrustConfig={fromJSON(t){return{mediaType:sa(t.mediaType)?globalThis.String(t.mediaType):"",trustedRoot:sa(t.trustedRoot)?Fi.TrustedRoot.fromJSON(t.trustedRoot):void 0,signingConfig:sa(t.signingConfig)?Fi.SigningConfig.fromJSON(t.signingConfig):void 0}},toJSON(t){let e={};return t.mediaType!==""&&(e.mediaType=t.mediaType),t.trustedRoot!==void 0&&(e.trustedRoot=Fi.TrustedRoot.toJSON(t.trustedRoot)),t.signingConfig!==void 0&&(e.signingConfig=Fi.SigningConfig.toJSON(t.signingConfig)),e}};function sa(t){return t!=null}});var cTe=L(Vr=>{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});Vr.Input=Vr.Artifact=Vr.ArtifactVerificationOptions_ObserverTimestampOptions=Vr.ArtifactVerificationOptions_TlogIntegratedTimestampOptions=Vr.ArtifactVerificationOptions_TimestampAuthorityOptions=Vr.ArtifactVerificationOptions_CtlogOptions=Vr.ArtifactVerificationOptions_TlogOptions=Vr.ArtifactVerificationOptions=Vr.PublicKeyIdentities=Vr.CertificateIdentities=Vr.CertificateIdentity=void 0;var aTe=h7(),yg=Gw(),lTe=g7();Vr.CertificateIdentity={fromJSON(t){return{issuer:gi(t.issuer)?globalThis.String(t.issuer):"",san:gi(t.san)?yg.SubjectAlternativeName.fromJSON(t.san):void 0,oids:globalThis.Array.isArray(t?.oids)?t.oids.map(e=>yg.ObjectIdentifierValuePair.fromJSON(e)):[]}},toJSON(t){let e={};return t.issuer!==""&&(e.issuer=t.issuer),t.san!==void 0&&(e.san=yg.SubjectAlternativeName.toJSON(t.san)),t.oids?.length&&(e.oids=t.oids.map(r=>yg.ObjectIdentifierValuePair.toJSON(r))),e}};Vr.CertificateIdentities={fromJSON(t){return{identities:globalThis.Array.isArray(t?.identities)?t.identities.map(e=>Vr.CertificateIdentity.fromJSON(e)):[]}},toJSON(t){let e={};return t.identities?.length&&(e.identities=t.identities.map(r=>Vr.CertificateIdentity.toJSON(r))),e}};Vr.PublicKeyIdentities={fromJSON(t){return{publicKeys:globalThis.Array.isArray(t?.publicKeys)?t.publicKeys.map(e=>yg.PublicKey.fromJSON(e)):[]}},toJSON(t){let e={};return t.publicKeys?.length&&(e.publicKeys=t.publicKeys.map(r=>yg.PublicKey.toJSON(r))),e}};Vr.ArtifactVerificationOptions={fromJSON(t){return{signers:gi(t.certificateIdentities)?{$case:"certificateIdentities",certificateIdentities:Vr.CertificateIdentities.fromJSON(t.certificateIdentities)}:gi(t.publicKeys)?{$case:"publicKeys",publicKeys:Vr.PublicKeyIdentities.fromJSON(t.publicKeys)}:void 0,tlogOptions:gi(t.tlogOptions)?Vr.ArtifactVerificationOptions_TlogOptions.fromJSON(t.tlogOptions):void 0,ctlogOptions:gi(t.ctlogOptions)?Vr.ArtifactVerificationOptions_CtlogOptions.fromJSON(t.ctlogOptions):void 0,tsaOptions:gi(t.tsaOptions)?Vr.ArtifactVerificationOptions_TimestampAuthorityOptions.fromJSON(t.tsaOptions):void 0,integratedTsOptions:gi(t.integratedTsOptions)?Vr.ArtifactVerificationOptions_TlogIntegratedTimestampOptions.fromJSON(t.integratedTsOptions):void 0,observerOptions:gi(t.observerOptions)?Vr.ArtifactVerificationOptions_ObserverTimestampOptions.fromJSON(t.observerOptions):void 0}},toJSON(t){let e={};return t.signers?.$case==="certificateIdentities"?e.certificateIdentities=Vr.CertificateIdentities.toJSON(t.signers.certificateIdentities):t.signers?.$case==="publicKeys"&&(e.publicKeys=Vr.PublicKeyIdentities.toJSON(t.signers.publicKeys)),t.tlogOptions!==void 0&&(e.tlogOptions=Vr.ArtifactVerificationOptions_TlogOptions.toJSON(t.tlogOptions)),t.ctlogOptions!==void 0&&(e.ctlogOptions=Vr.ArtifactVerificationOptions_CtlogOptions.toJSON(t.ctlogOptions)),t.tsaOptions!==void 0&&(e.tsaOptions=Vr.ArtifactVerificationOptions_TimestampAuthorityOptions.toJSON(t.tsaOptions)),t.integratedTsOptions!==void 0&&(e.integratedTsOptions=Vr.ArtifactVerificationOptions_TlogIntegratedTimestampOptions.toJSON(t.integratedTsOptions)),t.observerOptions!==void 0&&(e.observerOptions=Vr.ArtifactVerificationOptions_ObserverTimestampOptions.toJSON(t.observerOptions)),e}};Vr.ArtifactVerificationOptions_TlogOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,performOnlineVerification:gi(t.performOnlineVerification)?globalThis.Boolean(t.performOnlineVerification):!1,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.performOnlineVerification!==!1&&(e.performOnlineVerification=t.performOnlineVerification),t.disable!==!1&&(e.disable=t.disable),e}};Vr.ArtifactVerificationOptions_CtlogOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.disable!==!1&&(e.disable=t.disable),e}};Vr.ArtifactVerificationOptions_TimestampAuthorityOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.disable!==!1&&(e.disable=t.disable),e}};Vr.ArtifactVerificationOptions_TlogIntegratedTimestampOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.disable!==!1&&(e.disable=t.disable),e}};Vr.ArtifactVerificationOptions_ObserverTimestampOptions={fromJSON(t){return{threshold:gi(t.threshold)?globalThis.Number(t.threshold):0,disable:gi(t.disable)?globalThis.Boolean(t.disable):!1}},toJSON(t){let e={};return t.threshold!==0&&(e.threshold=Math.round(t.threshold)),t.disable!==!1&&(e.disable=t.disable),e}};Vr.Artifact={fromJSON(t){return{data:gi(t.artifactUri)?{$case:"artifactUri",artifactUri:globalThis.String(t.artifactUri)}:gi(t.artifact)?{$case:"artifact",artifact:Buffer.from(uOt(t.artifact))}:gi(t.artifactDigest)?{$case:"artifactDigest",artifactDigest:yg.HashOutput.fromJSON(t.artifactDigest)}:void 0}},toJSON(t){let e={};return t.data?.$case==="artifactUri"?e.artifactUri=t.data.artifactUri:t.data?.$case==="artifact"?e.artifact=fOt(t.data.artifact):t.data?.$case==="artifactDigest"&&(e.artifactDigest=yg.HashOutput.toJSON(t.data.artifactDigest)),e}};Vr.Input={fromJSON(t){return{artifactTrustRoot:gi(t.artifactTrustRoot)?lTe.TrustedRoot.fromJSON(t.artifactTrustRoot):void 0,artifactVerificationOptions:gi(t.artifactVerificationOptions)?Vr.ArtifactVerificationOptions.fromJSON(t.artifactVerificationOptions):void 0,bundle:gi(t.bundle)?aTe.Bundle.fromJSON(t.bundle):void 0,artifact:gi(t.artifact)?Vr.Artifact.fromJSON(t.artifact):void 0}},toJSON(t){let e={};return t.artifactTrustRoot!==void 0&&(e.artifactTrustRoot=lTe.TrustedRoot.toJSON(t.artifactTrustRoot)),t.artifactVerificationOptions!==void 0&&(e.artifactVerificationOptions=Vr.ArtifactVerificationOptions.toJSON(t.artifactVerificationOptions)),t.bundle!==void 0&&(e.bundle=aTe.Bundle.toJSON(t.bundle)),t.artifact!==void 0&&(e.artifact=Vr.Artifact.toJSON(t.artifact)),e}};function uOt(t){return Uint8Array.from(globalThis.Buffer.from(t,"base64"))}function fOt(t){return globalThis.Buffer.from(t).toString("base64")}function gi(t){return t!=null}});var bb=L(eu=>{"use strict";var AOt=eu&&eu.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),Ww=eu&&eu.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&AOt(e,t,r)};Object.defineProperty(eu,"__esModule",{value:!0});Ww(A7(),eu);Ww(h7(),eu);Ww(Gw(),eu);Ww(p7(),eu);Ww(g7(),eu);Ww(cTe(),eu)});var KN=L(Cl=>{"use strict";Object.defineProperty(Cl,"__esModule",{value:!0});Cl.BUNDLE_V03_MEDIA_TYPE=Cl.BUNDLE_V03_LEGACY_MEDIA_TYPE=Cl.BUNDLE_V02_MEDIA_TYPE=Cl.BUNDLE_V01_MEDIA_TYPE=void 0;Cl.isBundleWithCertificateChain=pOt;Cl.isBundleWithPublicKey=hOt;Cl.isBundleWithMessageSignature=gOt;Cl.isBundleWithDsseEnvelope=dOt;Cl.BUNDLE_V01_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.1";Cl.BUNDLE_V02_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.2";Cl.BUNDLE_V03_LEGACY_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.3";Cl.BUNDLE_V03_MEDIA_TYPE="application/vnd.dev.sigstore.bundle.v0.3+json";function pOt(t){return t.verificationMaterial.content.$case==="x509CertificateChain"}function hOt(t){return t.verificationMaterial.content.$case==="publicKey"}function gOt(t){return t.content.$case==="messageSignature"}function dOt(t){return t.content.$case==="dsseEnvelope"}});var fTe=L(zN=>{"use strict";Object.defineProperty(zN,"__esModule",{value:!0});zN.toMessageSignatureBundle=yOt;zN.toDSSEBundle=EOt;var mOt=bb(),JN=KN();function yOt(t){return{mediaType:t.certificateChain?JN.BUNDLE_V02_MEDIA_TYPE:JN.BUNDLE_V03_MEDIA_TYPE,content:{$case:"messageSignature",messageSignature:{messageDigest:{algorithm:mOt.HashAlgorithm.SHA2_256,digest:t.digest},signature:t.signature}},verificationMaterial:uTe(t)}}function EOt(t){return{mediaType:t.certificateChain?JN.BUNDLE_V02_MEDIA_TYPE:JN.BUNDLE_V03_MEDIA_TYPE,content:{$case:"dsseEnvelope",dsseEnvelope:IOt(t)},verificationMaterial:uTe(t)}}function IOt(t){return{payloadType:t.artifactType,payload:t.artifact,signatures:[COt(t)]}}function COt(t){return{keyid:t.keyHint||"",sig:t.signature}}function uTe(t){return{content:wOt(t),tlogEntries:[],timestampVerificationData:{rfc3161Timestamps:[]}}}function wOt(t){return t.certificate?t.certificateChain?{$case:"x509CertificateChain",x509CertificateChain:{certificates:[{rawBytes:t.certificate}]}}:{$case:"certificate",certificate:{rawBytes:t.certificate}}:{$case:"publicKey",publicKey:{hint:t.keyHint||""}}}});var m7=L(ZN=>{"use strict";Object.defineProperty(ZN,"__esModule",{value:!0});ZN.ValidationError=void 0;var d7=class extends Error{constructor(e,r){super(e),this.fields=r}};ZN.ValidationError=d7});var y7=L($m=>{"use strict";Object.defineProperty($m,"__esModule",{value:!0});$m.assertBundle=BOt;$m.assertBundleV01=ATe;$m.isBundleV01=vOt;$m.assertBundleV02=SOt;$m.assertBundleLatest=DOt;var XN=m7();function BOt(t){let e=$N(t);if(e.length>0)throw new XN.ValidationError("invalid bundle",e)}function ATe(t){let e=[];if(e.push(...$N(t)),e.push(...bOt(t)),e.length>0)throw new XN.ValidationError("invalid v0.1 bundle",e)}function vOt(t){try{return ATe(t),!0}catch{return!1}}function SOt(t){let e=[];if(e.push(...$N(t)),e.push(...pTe(t)),e.length>0)throw new XN.ValidationError("invalid v0.2 bundle",e)}function DOt(t){let e=[];if(e.push(...$N(t)),e.push(...pTe(t)),e.push(...POt(t)),e.length>0)throw new XN.ValidationError("invalid bundle",e)}function $N(t){let e=[];if((t.mediaType===void 0||!t.mediaType.match(/^application\/vnd\.dev\.sigstore\.bundle\+json;version=\d\.\d/)&&!t.mediaType.match(/^application\/vnd\.dev\.sigstore\.bundle\.v\d\.\d\+json/))&&e.push("mediaType"),t.content===void 0)e.push("content");else switch(t.content.$case){case"messageSignature":t.content.messageSignature.messageDigest===void 0?e.push("content.messageSignature.messageDigest"):t.content.messageSignature.messageDigest.digest.length===0&&e.push("content.messageSignature.messageDigest.digest"),t.content.messageSignature.signature.length===0&&e.push("content.messageSignature.signature");break;case"dsseEnvelope":t.content.dsseEnvelope.payload.length===0&&e.push("content.dsseEnvelope.payload"),t.content.dsseEnvelope.signatures.length!==1?e.push("content.dsseEnvelope.signatures"):t.content.dsseEnvelope.signatures[0].sig.length===0&&e.push("content.dsseEnvelope.signatures[0].sig");break}if(t.verificationMaterial===void 0)e.push("verificationMaterial");else{if(t.verificationMaterial.content===void 0)e.push("verificationMaterial.content");else switch(t.verificationMaterial.content.$case){case"x509CertificateChain":t.verificationMaterial.content.x509CertificateChain.certificates.length===0&&e.push("verificationMaterial.content.x509CertificateChain.certificates"),t.verificationMaterial.content.x509CertificateChain.certificates.forEach((r,s)=>{r.rawBytes.length===0&&e.push(`verificationMaterial.content.x509CertificateChain.certificates[${s}].rawBytes`)});break;case"certificate":t.verificationMaterial.content.certificate.rawBytes.length===0&&e.push("verificationMaterial.content.certificate.rawBytes");break}t.verificationMaterial.tlogEntries===void 0?e.push("verificationMaterial.tlogEntries"):t.verificationMaterial.tlogEntries.length>0&&t.verificationMaterial.tlogEntries.forEach((r,s)=>{r.logId===void 0&&e.push(`verificationMaterial.tlogEntries[${s}].logId`),r.kindVersion===void 0&&e.push(`verificationMaterial.tlogEntries[${s}].kindVersion`)})}return e}function bOt(t){let e=[];return t.verificationMaterial&&t.verificationMaterial.tlogEntries?.length>0&&t.verificationMaterial.tlogEntries.forEach((r,s)=>{r.inclusionPromise===void 0&&e.push(`verificationMaterial.tlogEntries[${s}].inclusionPromise`)}),e}function pTe(t){let e=[];return t.verificationMaterial&&t.verificationMaterial.tlogEntries?.length>0&&t.verificationMaterial.tlogEntries.forEach((r,s)=>{r.inclusionProof===void 0?e.push(`verificationMaterial.tlogEntries[${s}].inclusionProof`):r.inclusionProof.checkpoint===void 0&&e.push(`verificationMaterial.tlogEntries[${s}].inclusionProof.checkpoint`)}),e}function POt(t){let e=[];return t.verificationMaterial?.content?.$case==="x509CertificateChain"&&e.push("verificationMaterial.content.$case"),e}});var gTe=L(SA=>{"use strict";Object.defineProperty(SA,"__esModule",{value:!0});SA.envelopeToJSON=SA.envelopeFromJSON=SA.bundleToJSON=SA.bundleFromJSON=void 0;var eO=bb(),hTe=KN(),E7=y7(),xOt=t=>{let e=eO.Bundle.fromJSON(t);switch(e.mediaType){case hTe.BUNDLE_V01_MEDIA_TYPE:(0,E7.assertBundleV01)(e);break;case hTe.BUNDLE_V02_MEDIA_TYPE:(0,E7.assertBundleV02)(e);break;default:(0,E7.assertBundleLatest)(e);break}return e};SA.bundleFromJSON=xOt;var kOt=t=>eO.Bundle.toJSON(t);SA.bundleToJSON=kOt;var QOt=t=>eO.Envelope.fromJSON(t);SA.envelopeFromJSON=QOt;var TOt=t=>eO.Envelope.toJSON(t);SA.envelopeToJSON=TOt});var xb=L(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});Zr.isBundleV01=Zr.assertBundleV02=Zr.assertBundleV01=Zr.assertBundleLatest=Zr.assertBundle=Zr.envelopeToJSON=Zr.envelopeFromJSON=Zr.bundleToJSON=Zr.bundleFromJSON=Zr.ValidationError=Zr.isBundleWithPublicKey=Zr.isBundleWithMessageSignature=Zr.isBundleWithDsseEnvelope=Zr.isBundleWithCertificateChain=Zr.BUNDLE_V03_MEDIA_TYPE=Zr.BUNDLE_V03_LEGACY_MEDIA_TYPE=Zr.BUNDLE_V02_MEDIA_TYPE=Zr.BUNDLE_V01_MEDIA_TYPE=Zr.toMessageSignatureBundle=Zr.toDSSEBundle=void 0;var dTe=fTe();Object.defineProperty(Zr,"toDSSEBundle",{enumerable:!0,get:function(){return dTe.toDSSEBundle}});Object.defineProperty(Zr,"toMessageSignatureBundle",{enumerable:!0,get:function(){return dTe.toMessageSignatureBundle}});var Eg=KN();Object.defineProperty(Zr,"BUNDLE_V01_MEDIA_TYPE",{enumerable:!0,get:function(){return Eg.BUNDLE_V01_MEDIA_TYPE}});Object.defineProperty(Zr,"BUNDLE_V02_MEDIA_TYPE",{enumerable:!0,get:function(){return Eg.BUNDLE_V02_MEDIA_TYPE}});Object.defineProperty(Zr,"BUNDLE_V03_LEGACY_MEDIA_TYPE",{enumerable:!0,get:function(){return Eg.BUNDLE_V03_LEGACY_MEDIA_TYPE}});Object.defineProperty(Zr,"BUNDLE_V03_MEDIA_TYPE",{enumerable:!0,get:function(){return Eg.BUNDLE_V03_MEDIA_TYPE}});Object.defineProperty(Zr,"isBundleWithCertificateChain",{enumerable:!0,get:function(){return Eg.isBundleWithCertificateChain}});Object.defineProperty(Zr,"isBundleWithDsseEnvelope",{enumerable:!0,get:function(){return Eg.isBundleWithDsseEnvelope}});Object.defineProperty(Zr,"isBundleWithMessageSignature",{enumerable:!0,get:function(){return Eg.isBundleWithMessageSignature}});Object.defineProperty(Zr,"isBundleWithPublicKey",{enumerable:!0,get:function(){return Eg.isBundleWithPublicKey}});var ROt=m7();Object.defineProperty(Zr,"ValidationError",{enumerable:!0,get:function(){return ROt.ValidationError}});var tO=gTe();Object.defineProperty(Zr,"bundleFromJSON",{enumerable:!0,get:function(){return tO.bundleFromJSON}});Object.defineProperty(Zr,"bundleToJSON",{enumerable:!0,get:function(){return tO.bundleToJSON}});Object.defineProperty(Zr,"envelopeFromJSON",{enumerable:!0,get:function(){return tO.envelopeFromJSON}});Object.defineProperty(Zr,"envelopeToJSON",{enumerable:!0,get:function(){return tO.envelopeToJSON}});var Pb=y7();Object.defineProperty(Zr,"assertBundle",{enumerable:!0,get:function(){return Pb.assertBundle}});Object.defineProperty(Zr,"assertBundleLatest",{enumerable:!0,get:function(){return Pb.assertBundleLatest}});Object.defineProperty(Zr,"assertBundleV01",{enumerable:!0,get:function(){return Pb.assertBundleV01}});Object.defineProperty(Zr,"assertBundleV02",{enumerable:!0,get:function(){return Pb.assertBundleV02}});Object.defineProperty(Zr,"isBundleV01",{enumerable:!0,get:function(){return Pb.isBundleV01}})});var kb=L(nO=>{"use strict";Object.defineProperty(nO,"__esModule",{value:!0});nO.ByteStream=void 0;var I7=class extends Error{},rO=class t{constructor(e){this.start=0,e?(this.buf=e,this.view=Buffer.from(e)):(this.buf=new ArrayBuffer(0),this.view=Buffer.from(this.buf))}get buffer(){return this.view.subarray(0,this.start)}get length(){return this.view.byteLength}get position(){return this.start}seek(e){this.start=e}slice(e,r){let s=e+r;if(s>this.length)throw new I7("request past end of buffer");return this.view.subarray(e,s)}appendChar(e){this.ensureCapacity(1),this.view[this.start]=e,this.start+=1}appendUint16(e){this.ensureCapacity(2);let r=new Uint16Array([e]),s=new Uint8Array(r.buffer);this.view[this.start]=s[1],this.view[this.start+1]=s[0],this.start+=2}appendUint24(e){this.ensureCapacity(3);let r=new Uint32Array([e]),s=new Uint8Array(r.buffer);this.view[this.start]=s[2],this.view[this.start+1]=s[1],this.view[this.start+2]=s[0],this.start+=3}appendView(e){this.ensureCapacity(e.length),this.view.set(e,this.start),this.start+=e.length}getBlock(e){if(e<=0)return Buffer.alloc(0);if(this.start+e>this.view.length)throw new Error("request past end of buffer");let r=this.view.subarray(this.start,this.start+e);return this.start+=e,r}getUint8(){return this.getBlock(1)[0]}getUint16(){let e=this.getBlock(2);return e[0]<<8|e[1]}ensureCapacity(e){if(this.start+e>this.view.byteLength){let r=t.BLOCK_SIZE+(e>t.BLOCK_SIZE?e:0);this.realloc(this.view.byteLength+r)}}realloc(e){let r=new ArrayBuffer(e),s=Buffer.from(r);s.set(this.view),this.buf=r,this.view=s}};nO.ByteStream=rO;rO.BLOCK_SIZE=1024});var iO=L(Yw=>{"use strict";Object.defineProperty(Yw,"__esModule",{value:!0});Yw.ASN1TypeError=Yw.ASN1ParseError=void 0;var C7=class extends Error{};Yw.ASN1ParseError=C7;var w7=class extends Error{};Yw.ASN1TypeError=w7});var yTe=L(sO=>{"use strict";Object.defineProperty(sO,"__esModule",{value:!0});sO.decodeLength=FOt;sO.encodeLength=NOt;var mTe=iO();function FOt(t){let e=t.getUint8();if(!(e&128))return e;let r=e&127;if(r>6)throw new mTe.ASN1ParseError("length exceeds 6 byte limit");let s=0;for(let a=0;a<r;a++)s=s*256+t.getUint8();if(s===0)throw new mTe.ASN1ParseError("indefinite length encoding not supported");return s}function NOt(t){if(t<128)return Buffer.from([t]);let e=BigInt(t),r=[];for(;e>0n;)r.unshift(Number(e&255n)),e=e>>8n;return Buffer.from([128|r.length,...r])}});var ITe=L(Ig=>{"use strict";Object.defineProperty(Ig,"__esModule",{value:!0});Ig.parseInteger=MOt;Ig.parseStringASCII=ETe;Ig.parseTime=_Ot;Ig.parseOID=UOt;Ig.parseBoolean=HOt;Ig.parseBitString=jOt;var OOt=/^(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/,LOt=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/;function MOt(t){let e=0,r=t.length,s=t[e],a=s>127,n=a?255:0;for(;s==n&&++e<r;)s=t[e];if(r-e===0)return BigInt(a?-1:0);s=a?s-256:s;let f=BigInt(s);for(let p=e+1;p<r;++p)f=f*BigInt(256)+BigInt(t[p]);return f}function ETe(t){return t.toString("ascii")}function _Ot(t,e){let r=ETe(t),s=e?OOt.exec(r):LOt.exec(r);if(!s)throw new Error("invalid time");if(e){let a=Number(s[1]);a+=a>=50?1900:2e3,s[1]=a.toString()}return new Date(`${s[1]}-${s[2]}-${s[3]}T${s[4]}:${s[5]}:${s[6]}Z`)}function UOt(t){let e=0,r=t.length,s=t[e++],a=Math.floor(s/40),n=s%40,c=`${a}.${n}`,f=0;for(;e<r;++e)s=t[e],f=(f<<7)+(s&127),s&128||(c+=`.${f}`,f=0);return c}function HOt(t){return t[0]!==0}function jOt(t){let e=t[0],r=1,s=t.length,a=[];for(let n=r;n<s;++n){let c=t[n],f=n===s-1?e:0;for(let p=7;p>=f;--p)a.push(c>>p&1)}return a}});var wTe=L(oO=>{"use strict";Object.defineProperty(oO,"__esModule",{value:!0});oO.ASN1Tag=void 0;var CTe=iO(),ey={BOOLEAN:1,INTEGER:2,BIT_STRING:3,OCTET_STRING:4,OBJECT_IDENTIFIER:6,SEQUENCE:16,SET:17,PRINTABLE_STRING:19,UTC_TIME:23,GENERALIZED_TIME:24},B7={UNIVERSAL:0,APPLICATION:1,CONTEXT_SPECIFIC:2,PRIVATE:3},v7=class{constructor(e){if(this.number=e&31,this.constructed=(e&32)===32,this.class=e>>6,this.number===31)throw new CTe.ASN1ParseError("long form tags not supported");if(this.class===B7.UNIVERSAL&&this.number===0)throw new CTe.ASN1ParseError("unsupported tag 0x00")}isUniversal(){return this.class===B7.UNIVERSAL}isContextSpecific(e){let r=this.class===B7.CONTEXT_SPECIFIC;return e!==void 0?r&&this.number===e:r}isBoolean(){return this.isUniversal()&&this.number===ey.BOOLEAN}isInteger(){return this.isUniversal()&&this.number===ey.INTEGER}isBitString(){return this.isUniversal()&&this.number===ey.BIT_STRING}isOctetString(){return this.isUniversal()&&this.number===ey.OCTET_STRING}isOID(){return this.isUniversal()&&this.number===ey.OBJECT_IDENTIFIER}isUTCTime(){return this.isUniversal()&&this.number===ey.UTC_TIME}isGeneralizedTime(){return this.isUniversal()&&this.number===ey.GENERALIZED_TIME}toDER(){return this.number|(this.constructed?32:0)|this.class<<6}};oO.ASN1Tag=v7});var DTe=L(lO=>{"use strict";Object.defineProperty(lO,"__esModule",{value:!0});lO.ASN1Obj=void 0;var S7=kb(),ty=iO(),vTe=yTe(),Vw=ITe(),qOt=wTe(),aO=class{constructor(e,r,s){this.tag=e,this.value=r,this.subs=s}static parseBuffer(e){return STe(new S7.ByteStream(e))}toDER(){let e=new S7.ByteStream;if(this.subs.length>0)for(let a of this.subs)e.appendView(a.toDER());else e.appendView(this.value);let r=e.buffer,s=new S7.ByteStream;return s.appendChar(this.tag.toDER()),s.appendView((0,vTe.encodeLength)(r.length)),s.appendView(r),s.buffer}toBoolean(){if(!this.tag.isBoolean())throw new ty.ASN1TypeError("not a boolean");return(0,Vw.parseBoolean)(this.value)}toInteger(){if(!this.tag.isInteger())throw new ty.ASN1TypeError("not an integer");return(0,Vw.parseInteger)(this.value)}toOID(){if(!this.tag.isOID())throw new ty.ASN1TypeError("not an OID");return(0,Vw.parseOID)(this.value)}toDate(){switch(!0){case this.tag.isUTCTime():return(0,Vw.parseTime)(this.value,!0);case this.tag.isGeneralizedTime():return(0,Vw.parseTime)(this.value,!1);default:throw new ty.ASN1TypeError("not a date")}}toBitString(){if(!this.tag.isBitString())throw new ty.ASN1TypeError("not a bit string");return(0,Vw.parseBitString)(this.value)}};lO.ASN1Obj=aO;function STe(t){let e=new qOt.ASN1Tag(t.getUint8()),r=(0,vTe.decodeLength)(t),s=t.slice(t.position,r),a=t.position,n=[];if(e.constructed)n=BTe(t,r);else if(e.isOctetString())try{n=BTe(t,r)}catch{}return n.length===0&&t.seek(a+r),new aO(e,s,n)}function BTe(t,e){let r=t.position+e;if(r>t.length)throw new ty.ASN1ParseError("invalid length");let s=[];for(;t.position<r;)s.push(STe(t));if(t.position!==r)throw new ty.ASN1ParseError("invalid length");return s}});var uO=L(cO=>{"use strict";Object.defineProperty(cO,"__esModule",{value:!0});cO.ASN1Obj=void 0;var GOt=DTe();Object.defineProperty(cO,"ASN1Obj",{enumerable:!0,get:function(){return GOt.ASN1Obj}})});var Kw=L(Cg=>{"use strict";var WOt=Cg&&Cg.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Cg,"__esModule",{value:!0});Cg.createPublicKey=YOt;Cg.digest=VOt;Cg.verify=KOt;Cg.bufferEqual=JOt;var Qb=WOt(Ie("crypto"));function YOt(t,e="spki"){return typeof t=="string"?Qb.default.createPublicKey(t):Qb.default.createPublicKey({key:t,format:"der",type:e})}function VOt(t,...e){let r=Qb.default.createHash(t);for(let s of e)r.update(s);return r.digest()}function KOt(t,e,r,s){try{return Qb.default.verify(s,t,e,r)}catch{return!1}}function JOt(t,e){try{return Qb.default.timingSafeEqual(t,e)}catch{return!1}}});var bTe=L(D7=>{"use strict";Object.defineProperty(D7,"__esModule",{value:!0});D7.preAuthEncoding=ZOt;var zOt="DSSEv1";function ZOt(t,e){let r=[zOt,t.length,t,e.length,""].join(" ");return Buffer.concat([Buffer.from(r,"ascii"),e])}});var kTe=L(fO=>{"use strict";Object.defineProperty(fO,"__esModule",{value:!0});fO.base64Encode=XOt;fO.base64Decode=$Ot;var PTe="base64",xTe="utf-8";function XOt(t){return Buffer.from(t,xTe).toString(PTe)}function $Ot(t){return Buffer.from(t,PTe).toString(xTe)}});var QTe=L(P7=>{"use strict";Object.defineProperty(P7,"__esModule",{value:!0});P7.canonicalize=b7;function b7(t){let e="";if(t===null||typeof t!="object"||t.toJSON!=null)e+=JSON.stringify(t);else if(Array.isArray(t)){e+="[";let r=!0;t.forEach(s=>{r||(e+=","),r=!1,e+=b7(s)}),e+="]"}else{e+="{";let r=!0;Object.keys(t).sort().forEach(s=>{r||(e+=","),r=!1,e+=JSON.stringify(s),e+=":",e+=b7(t[s])}),e+="}"}return e}});var x7=L(AO=>{"use strict";Object.defineProperty(AO,"__esModule",{value:!0});AO.toDER=rLt;AO.fromDER=nLt;var eLt=/-----BEGIN (.*)-----/,tLt=/-----END (.*)-----/;function rLt(t){let e="";return t.split(` +`).forEach(r=>{r.match(eLt)||r.match(tLt)||(e+=r)}),Buffer.from(e,"base64")}function nLt(t,e="CERTIFICATE"){let s=t.toString("base64").match(/.{1,64}/g)||"";return[`-----BEGIN ${e}-----`,...s,`-----END ${e}-----`].join(` +`).concat(` +`)}});var pO=L(Jw=>{"use strict";Object.defineProperty(Jw,"__esModule",{value:!0});Jw.SHA2_HASH_ALGOS=Jw.ECDSA_SIGNATURE_ALGOS=void 0;Jw.ECDSA_SIGNATURE_ALGOS={"1.2.840.10045.4.3.1":"sha224","1.2.840.10045.4.3.2":"sha256","1.2.840.10045.4.3.3":"sha384","1.2.840.10045.4.3.4":"sha512"};Jw.SHA2_HASH_ALGOS={"2.16.840.1.101.3.4.2.1":"sha256","2.16.840.1.101.3.4.2.2":"sha384","2.16.840.1.101.3.4.2.3":"sha512"}});var Q7=L(hO=>{"use strict";Object.defineProperty(hO,"__esModule",{value:!0});hO.RFC3161TimestampVerificationError=void 0;var k7=class extends Error{};hO.RFC3161TimestampVerificationError=k7});var RTe=L(DA=>{"use strict";var iLt=DA&&DA.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),sLt=DA&&DA.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),oLt=DA&&DA.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&iLt(e,t,r);return sLt(e,t),e};Object.defineProperty(DA,"__esModule",{value:!0});DA.TSTInfo=void 0;var TTe=oLt(Kw()),aLt=pO(),lLt=Q7(),T7=class{constructor(e){this.root=e}get version(){return this.root.subs[0].toInteger()}get genTime(){return this.root.subs[4].toDate()}get messageImprintHashAlgorithm(){let e=this.messageImprintObj.subs[0].subs[0].toOID();return aLt.SHA2_HASH_ALGOS[e]}get messageImprintHashedMessage(){return this.messageImprintObj.subs[1].value}get raw(){return this.root.toDER()}verify(e){let r=TTe.digest(this.messageImprintHashAlgorithm,e);if(!TTe.bufferEqual(r,this.messageImprintHashedMessage))throw new lLt.RFC3161TimestampVerificationError("message imprint does not match artifact")}get messageImprintObj(){return this.root.subs[2]}};DA.TSTInfo=T7});var NTe=L(bA=>{"use strict";var cLt=bA&&bA.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),uLt=bA&&bA.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),fLt=bA&&bA.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&cLt(e,t,r);return uLt(e,t),e};Object.defineProperty(bA,"__esModule",{value:!0});bA.RFC3161Timestamp=void 0;var ALt=uO(),R7=fLt(Kw()),FTe=pO(),Tb=Q7(),pLt=RTe(),hLt="1.2.840.113549.1.7.2",gLt="1.2.840.113549.1.9.16.1.4",dLt="1.2.840.113549.1.9.4",F7=class t{constructor(e){this.root=e}static parse(e){let r=ALt.ASN1Obj.parseBuffer(e);return new t(r)}get status(){return this.pkiStatusInfoObj.subs[0].toInteger()}get contentType(){return this.contentTypeObj.toOID()}get eContentType(){return this.eContentTypeObj.toOID()}get signingTime(){return this.tstInfo.genTime}get signerIssuer(){return this.signerSidObj.subs[0].value}get signerSerialNumber(){return this.signerSidObj.subs[1].value}get signerDigestAlgorithm(){let e=this.signerDigestAlgorithmObj.subs[0].toOID();return FTe.SHA2_HASH_ALGOS[e]}get signatureAlgorithm(){let e=this.signatureAlgorithmObj.subs[0].toOID();return FTe.ECDSA_SIGNATURE_ALGOS[e]}get signatureValue(){return this.signatureValueObj.value}get tstInfo(){return new pLt.TSTInfo(this.eContentObj.subs[0].subs[0])}verify(e,r){if(!this.timeStampTokenObj)throw new Tb.RFC3161TimestampVerificationError("timeStampToken is missing");if(this.contentType!==hLt)throw new Tb.RFC3161TimestampVerificationError(`incorrect content type: ${this.contentType}`);if(this.eContentType!==gLt)throw new Tb.RFC3161TimestampVerificationError(`incorrect encapsulated content type: ${this.eContentType}`);this.tstInfo.verify(e),this.verifyMessageDigest(),this.verifySignature(r)}verifyMessageDigest(){let e=R7.digest(this.signerDigestAlgorithm,this.tstInfo.raw),r=this.messageDigestAttributeObj.subs[1].subs[0].value;if(!R7.bufferEqual(e,r))throw new Tb.RFC3161TimestampVerificationError("signed data does not match tstInfo")}verifySignature(e){let r=this.signedAttrsObj.toDER();if(r[0]=49,!R7.verify(r,e,this.signatureValue,this.signatureAlgorithm))throw new Tb.RFC3161TimestampVerificationError("signature verification failed")}get pkiStatusInfoObj(){return this.root.subs[0]}get timeStampTokenObj(){return this.root.subs[1]}get contentTypeObj(){return this.timeStampTokenObj.subs[0]}get signedDataObj(){return this.timeStampTokenObj.subs.find(r=>r.tag.isContextSpecific(0)).subs[0]}get encapContentInfoObj(){return this.signedDataObj.subs[2]}get signerInfosObj(){let e=this.signedDataObj;return e.subs[e.subs.length-1]}get signerInfoObj(){return this.signerInfosObj.subs[0]}get eContentTypeObj(){return this.encapContentInfoObj.subs[0]}get eContentObj(){return this.encapContentInfoObj.subs[1]}get signedAttrsObj(){return this.signerInfoObj.subs.find(r=>r.tag.isContextSpecific(0))}get messageDigestAttributeObj(){return this.signedAttrsObj.subs.find(r=>r.subs[0].tag.isOID()&&r.subs[0].toOID()===dLt)}get signerSidObj(){return this.signerInfoObj.subs[1]}get signerDigestAlgorithmObj(){return this.signerInfoObj.subs[2]}get signatureAlgorithmObj(){return this.signerInfoObj.subs[4]}get signatureValueObj(){return this.signerInfoObj.subs[5]}};bA.RFC3161Timestamp=F7});var OTe=L(gO=>{"use strict";Object.defineProperty(gO,"__esModule",{value:!0});gO.RFC3161Timestamp=void 0;var mLt=NTe();Object.defineProperty(gO,"RFC3161Timestamp",{enumerable:!0,get:function(){return mLt.RFC3161Timestamp}})});var MTe=L(PA=>{"use strict";var yLt=PA&&PA.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),ELt=PA&&PA.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ILt=PA&&PA.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&yLt(e,t,r);return ELt(e,t),e};Object.defineProperty(PA,"__esModule",{value:!0});PA.SignedCertificateTimestamp=void 0;var CLt=ILt(Kw()),LTe=kb(),N7=class t{constructor(e){this.version=e.version,this.logID=e.logID,this.timestamp=e.timestamp,this.extensions=e.extensions,this.hashAlgorithm=e.hashAlgorithm,this.signatureAlgorithm=e.signatureAlgorithm,this.signature=e.signature}get datetime(){return new Date(Number(this.timestamp.readBigInt64BE()))}get algorithm(){switch(this.hashAlgorithm){case 0:return"none";case 1:return"md5";case 2:return"sha1";case 3:return"sha224";case 4:return"sha256";case 5:return"sha384";case 6:return"sha512";default:return"unknown"}}verify(e,r){let s=new LTe.ByteStream;return s.appendChar(this.version),s.appendChar(0),s.appendView(this.timestamp),s.appendUint16(1),s.appendView(e),s.appendUint16(this.extensions.byteLength),this.extensions.byteLength>0&&s.appendView(this.extensions),CLt.verify(s.buffer,r,this.signature,this.algorithm)}static parse(e){let r=new LTe.ByteStream(e),s=r.getUint8(),a=r.getBlock(32),n=r.getBlock(8),c=r.getUint16(),f=r.getBlock(c),p=r.getUint8(),h=r.getUint8(),E=r.getUint16(),C=r.getBlock(E);if(r.position!==e.length)throw new Error("SCT buffer length mismatch");return new t({version:s,logID:a,timestamp:n,extensions:f,hashAlgorithm:p,signatureAlgorithm:h,signature:C})}};PA.SignedCertificateTimestamp=N7});var j7=L(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.X509SCTExtension=oa.X509SubjectKeyIDExtension=oa.X509AuthorityKeyIDExtension=oa.X509SubjectAlternativeNameExtension=oa.X509KeyUsageExtension=oa.X509BasicConstraintsExtension=oa.X509Extension=void 0;var wLt=kb(),BLt=MTe(),gh=class{constructor(e){this.root=e}get oid(){return this.root.subs[0].toOID()}get critical(){return this.root.subs.length===3?this.root.subs[1].toBoolean():!1}get value(){return this.extnValueObj.value}get valueObj(){return this.extnValueObj}get extnValueObj(){return this.root.subs[this.root.subs.length-1]}};oa.X509Extension=gh;var O7=class extends gh{get isCA(){return this.sequence.subs[0]?.toBoolean()??!1}get pathLenConstraint(){return this.sequence.subs.length>1?this.sequence.subs[1].toInteger():void 0}get sequence(){return this.extnValueObj.subs[0]}};oa.X509BasicConstraintsExtension=O7;var L7=class extends gh{get digitalSignature(){return this.bitString[0]===1}get keyCertSign(){return this.bitString[5]===1}get crlSign(){return this.bitString[6]===1}get bitString(){return this.extnValueObj.subs[0].toBitString()}};oa.X509KeyUsageExtension=L7;var M7=class extends gh{get rfc822Name(){return this.findGeneralName(1)?.value.toString("ascii")}get uri(){return this.findGeneralName(6)?.value.toString("ascii")}otherName(e){let r=this.findGeneralName(0);return r===void 0||r.subs[0].toOID()!==e?void 0:r.subs[1].subs[0].value.toString("ascii")}findGeneralName(e){return this.generalNames.find(r=>r.tag.isContextSpecific(e))}get generalNames(){return this.extnValueObj.subs[0].subs}};oa.X509SubjectAlternativeNameExtension=M7;var _7=class extends gh{get keyIdentifier(){return this.findSequenceMember(0)?.value}findSequenceMember(e){return this.sequence.subs.find(r=>r.tag.isContextSpecific(e))}get sequence(){return this.extnValueObj.subs[0]}};oa.X509AuthorityKeyIDExtension=_7;var U7=class extends gh{get keyIdentifier(){return this.extnValueObj.subs[0].value}};oa.X509SubjectKeyIDExtension=U7;var H7=class extends gh{constructor(e){super(e)}get signedCertificateTimestamps(){let e=this.extnValueObj.subs[0].value,r=new wLt.ByteStream(e),s=r.getUint16()+2,a=[];for(;r.position<s;){let n=r.getUint16(),c=r.getBlock(n);a.push(BLt.SignedCertificateTimestamp.parse(c))}if(r.position!==s)throw new Error("SCT list length does not match actual length");return a}};oa.X509SCTExtension=H7});var HTe=L(sc=>{"use strict";var vLt=sc&&sc.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),SLt=sc&&sc.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),UTe=sc&&sc.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&vLt(e,t,r);return SLt(e,t),e};Object.defineProperty(sc,"__esModule",{value:!0});sc.X509Certificate=sc.EXTENSION_OID_SCT=void 0;var DLt=uO(),_Te=UTe(Kw()),bLt=pO(),PLt=UTe(x7()),ry=j7(),xLt="2.5.29.14",kLt="2.5.29.15",QLt="2.5.29.17",TLt="2.5.29.19",RLt="2.5.29.35";sc.EXTENSION_OID_SCT="1.3.6.1.4.1.11129.2.4.2";var q7=class t{constructor(e){this.root=e}static parse(e){let r=typeof e=="string"?PLt.toDER(e):e,s=DLt.ASN1Obj.parseBuffer(r);return new t(s)}get tbsCertificate(){return this.tbsCertificateObj}get version(){return`v${(this.versionObj.subs[0].toInteger()+BigInt(1)).toString()}`}get serialNumber(){return this.serialNumberObj.value}get notBefore(){return this.validityObj.subs[0].toDate()}get notAfter(){return this.validityObj.subs[1].toDate()}get issuer(){return this.issuerObj.value}get subject(){return this.subjectObj.value}get publicKey(){return this.subjectPublicKeyInfoObj.toDER()}get signatureAlgorithm(){let e=this.signatureAlgorithmObj.subs[0].toOID();return bLt.ECDSA_SIGNATURE_ALGOS[e]}get signatureValue(){return this.signatureValueObj.value.subarray(1)}get subjectAltName(){let e=this.extSubjectAltName;return e?.uri||e?.rfc822Name}get extensions(){return this.extensionsObj?.subs[0]?.subs||[]}get extKeyUsage(){let e=this.findExtension(kLt);return e?new ry.X509KeyUsageExtension(e):void 0}get extBasicConstraints(){let e=this.findExtension(TLt);return e?new ry.X509BasicConstraintsExtension(e):void 0}get extSubjectAltName(){let e=this.findExtension(QLt);return e?new ry.X509SubjectAlternativeNameExtension(e):void 0}get extAuthorityKeyID(){let e=this.findExtension(RLt);return e?new ry.X509AuthorityKeyIDExtension(e):void 0}get extSubjectKeyID(){let e=this.findExtension(xLt);return e?new ry.X509SubjectKeyIDExtension(e):void 0}get extSCT(){let e=this.findExtension(sc.EXTENSION_OID_SCT);return e?new ry.X509SCTExtension(e):void 0}get isCA(){let e=this.extBasicConstraints?.isCA||!1;return this.extKeyUsage?e&&this.extKeyUsage.keyCertSign:e}extension(e){let r=this.findExtension(e);return r?new ry.X509Extension(r):void 0}verify(e){let r=e?.publicKey||this.publicKey,s=_Te.createPublicKey(r);return _Te.verify(this.tbsCertificate.toDER(),s,this.signatureValue,this.signatureAlgorithm)}validForDate(e){return this.notBefore<=e&&e<=this.notAfter}equals(e){return this.root.toDER().equals(e.root.toDER())}clone(){let e=this.root.toDER(),r=Buffer.alloc(e.length);return e.copy(r),t.parse(r)}findExtension(e){return this.extensions.find(r=>r.subs[0].toOID()===e)}get tbsCertificateObj(){return this.root.subs[0]}get signatureAlgorithmObj(){return this.root.subs[1]}get signatureValueObj(){return this.root.subs[2]}get versionObj(){return this.tbsCertificateObj.subs[0]}get serialNumberObj(){return this.tbsCertificateObj.subs[1]}get issuerObj(){return this.tbsCertificateObj.subs[3]}get validityObj(){return this.tbsCertificateObj.subs[4]}get subjectObj(){return this.tbsCertificateObj.subs[5]}get subjectPublicKeyInfoObj(){return this.tbsCertificateObj.subs[6]}get extensionsObj(){return this.tbsCertificateObj.subs.find(e=>e.tag.isContextSpecific(3))}};sc.X509Certificate=q7});var qTe=L(wg=>{"use strict";Object.defineProperty(wg,"__esModule",{value:!0});wg.X509SCTExtension=wg.X509Certificate=wg.EXTENSION_OID_SCT=void 0;var jTe=HTe();Object.defineProperty(wg,"EXTENSION_OID_SCT",{enumerable:!0,get:function(){return jTe.EXTENSION_OID_SCT}});Object.defineProperty(wg,"X509Certificate",{enumerable:!0,get:function(){return jTe.X509Certificate}});var FLt=j7();Object.defineProperty(wg,"X509SCTExtension",{enumerable:!0,get:function(){return FLt.X509SCTExtension}})});var wl=L(Kn=>{"use strict";var NLt=Kn&&Kn.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),OLt=Kn&&Kn.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Rb=Kn&&Kn.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&NLt(e,t,r);return OLt(e,t),e};Object.defineProperty(Kn,"__esModule",{value:!0});Kn.X509SCTExtension=Kn.X509Certificate=Kn.EXTENSION_OID_SCT=Kn.ByteStream=Kn.RFC3161Timestamp=Kn.pem=Kn.json=Kn.encoding=Kn.dsse=Kn.crypto=Kn.ASN1Obj=void 0;var LLt=uO();Object.defineProperty(Kn,"ASN1Obj",{enumerable:!0,get:function(){return LLt.ASN1Obj}});Kn.crypto=Rb(Kw());Kn.dsse=Rb(bTe());Kn.encoding=Rb(kTe());Kn.json=Rb(QTe());Kn.pem=Rb(x7());var MLt=OTe();Object.defineProperty(Kn,"RFC3161Timestamp",{enumerable:!0,get:function(){return MLt.RFC3161Timestamp}});var _Lt=kb();Object.defineProperty(Kn,"ByteStream",{enumerable:!0,get:function(){return _Lt.ByteStream}});var G7=qTe();Object.defineProperty(Kn,"EXTENSION_OID_SCT",{enumerable:!0,get:function(){return G7.EXTENSION_OID_SCT}});Object.defineProperty(Kn,"X509Certificate",{enumerable:!0,get:function(){return G7.X509Certificate}});Object.defineProperty(Kn,"X509SCTExtension",{enumerable:!0,get:function(){return G7.X509SCTExtension}})});var GTe=L(W7=>{"use strict";Object.defineProperty(W7,"__esModule",{value:!0});W7.extractJWTSubject=HLt;var ULt=wl();function HLt(t){let e=t.split(".",3),r=JSON.parse(ULt.encoding.base64Decode(e[1]));switch(r.iss){case"https://accounts.google.com":case"https://oauth2.sigstore.dev/auth":return r.email;default:return r.sub}}});var WTe=L((NIr,jLt)=>{jLt.exports={name:"@sigstore/sign",version:"3.1.0",description:"Sigstore signing library",main:"dist/index.js",types:"dist/index.d.ts",scripts:{clean:"shx rm -rf dist *.tsbuildinfo",build:"tsc --build",test:"jest"},files:["dist"],author:"bdehamer@github.com",license:"Apache-2.0",repository:{type:"git",url:"git+https://github.com/sigstore/sigstore-js.git"},bugs:{url:"https://github.com/sigstore/sigstore-js/issues"},homepage:"https://github.com/sigstore/sigstore-js/tree/main/packages/sign#readme",publishConfig:{provenance:!0},devDependencies:{"@sigstore/jest":"^0.0.0","@sigstore/mock":"^0.10.0","@sigstore/rekor-types":"^3.0.0","@types/make-fetch-happen":"^10.0.4","@types/promise-retry":"^1.1.6"},dependencies:{"@sigstore/bundle":"^3.1.0","@sigstore/core":"^2.0.0","@sigstore/protobuf-specs":"^0.4.0","make-fetch-happen":"^14.0.2","proc-log":"^5.0.0","promise-retry":"^2.0.1"},engines:{node:"^18.17.0 || >=20.5.0"}}});var VTe=L(zw=>{"use strict";var qLt=zw&&zw.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(zw,"__esModule",{value:!0});zw.getUserAgent=void 0;var YTe=qLt(Ie("os")),GLt=()=>{let t=WTe().version,e=process.version,r=YTe.default.platform(),s=YTe.default.arch();return`sigstore-js/${t} (Node ${e}) (${r}/${s})`};zw.getUserAgent=GLt});var Bg=L(Ji=>{"use strict";var WLt=Ji&&Ji.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),YLt=Ji&&Ji.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),KTe=Ji&&Ji.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var s=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(s[s.length]=a);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var s=t(e),a=0;a<s.length;a++)s[a]!=="default"&&WLt(r,e,s[a]);return YLt(r,e),r}}();Object.defineProperty(Ji,"__esModule",{value:!0});Ji.ua=Ji.oidc=Ji.pem=Ji.json=Ji.encoding=Ji.dsse=Ji.crypto=void 0;var Fb=wl();Object.defineProperty(Ji,"crypto",{enumerable:!0,get:function(){return Fb.crypto}});Object.defineProperty(Ji,"dsse",{enumerable:!0,get:function(){return Fb.dsse}});Object.defineProperty(Ji,"encoding",{enumerable:!0,get:function(){return Fb.encoding}});Object.defineProperty(Ji,"json",{enumerable:!0,get:function(){return Fb.json}});Object.defineProperty(Ji,"pem",{enumerable:!0,get:function(){return Fb.pem}});Ji.oidc=KTe(GTe());Ji.ua=KTe(VTe())});var V7=L(dO=>{"use strict";Object.defineProperty(dO,"__esModule",{value:!0});dO.BaseBundleBuilder=void 0;var Y7=class{constructor(e){this.signer=e.signer,this.witnesses=e.witnesses}async create(e){let r=await this.prepare(e).then(f=>this.signer.sign(f)),s=await this.package(e,r),a=await Promise.all(this.witnesses.map(f=>f.testify(s.content,VLt(r.key)))),n=[],c=[];return a.forEach(({tlogEntries:f,rfc3161Timestamps:p})=>{n.push(...f??[]),c.push(...p??[])}),s.verificationMaterial.tlogEntries=n,s.verificationMaterial.timestampVerificationData={rfc3161Timestamps:c},s}async prepare(e){return e.data}};dO.BaseBundleBuilder=Y7;function VLt(t){switch(t.$case){case"publicKey":return t.publicKey;case"x509Certificate":return t.certificate}}});var J7=L(xA=>{"use strict";var KLt=xA&&xA.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),JLt=xA&&xA.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),zLt=xA&&xA.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var s=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(s[s.length]=a);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var s=t(e),a=0;a<s.length;a++)s[a]!=="default"&&KLt(r,e,s[a]);return JLt(r,e),r}}();Object.defineProperty(xA,"__esModule",{value:!0});xA.toMessageSignatureBundle=ZLt;xA.toDSSEBundle=XLt;var JTe=zLt(xb()),K7=Bg();function ZLt(t,e){let r=K7.crypto.digest("sha256",t.data);return JTe.toMessageSignatureBundle({digest:r,signature:e.signature,certificate:e.key.$case==="x509Certificate"?K7.pem.toDER(e.key.certificate):void 0,keyHint:e.key.$case==="publicKey"?e.key.hint:void 0,certificateChain:!0})}function XLt(t,e,r){return JTe.toDSSEBundle({artifact:t.data,artifactType:t.type,signature:e.signature,certificate:e.key.$case==="x509Certificate"?K7.pem.toDER(e.key.certificate):void 0,keyHint:e.key.$case==="publicKey"?e.key.hint:void 0,certificateChain:r})}});var ZTe=L(mO=>{"use strict";Object.defineProperty(mO,"__esModule",{value:!0});mO.DSSEBundleBuilder=void 0;var $Lt=Bg(),eMt=V7(),tMt=J7(),z7=class extends eMt.BaseBundleBuilder{constructor(e){super(e),this.certificateChain=e.certificateChain??!1}async prepare(e){let r=zTe(e);return $Lt.dsse.preAuthEncoding(r.type,r.data)}async package(e,r){return(0,tMt.toDSSEBundle)(zTe(e),r,this.certificateChain)}};mO.DSSEBundleBuilder=z7;function zTe(t){return{...t,type:t.type??""}}});var XTe=L(yO=>{"use strict";Object.defineProperty(yO,"__esModule",{value:!0});yO.MessageSignatureBundleBuilder=void 0;var rMt=V7(),nMt=J7(),Z7=class extends rMt.BaseBundleBuilder{constructor(e){super(e)}async package(e,r){return(0,nMt.toMessageSignatureBundle)(e,r)}};yO.MessageSignatureBundleBuilder=Z7});var $Te=L(Zw=>{"use strict";Object.defineProperty(Zw,"__esModule",{value:!0});Zw.MessageSignatureBundleBuilder=Zw.DSSEBundleBuilder=void 0;var iMt=ZTe();Object.defineProperty(Zw,"DSSEBundleBuilder",{enumerable:!0,get:function(){return iMt.DSSEBundleBuilder}});var sMt=XTe();Object.defineProperty(Zw,"MessageSignatureBundleBuilder",{enumerable:!0,get:function(){return sMt.MessageSignatureBundleBuilder}})});var IO=L(EO=>{"use strict";Object.defineProperty(EO,"__esModule",{value:!0});EO.HTTPError=void 0;var X7=class extends Error{constructor({status:e,message:r,location:s}){super(`(${e}) ${r}`),this.statusCode=e,this.location=s}};EO.HTTPError=X7});var Xw=L(Nb=>{"use strict";Object.defineProperty(Nb,"__esModule",{value:!0});Nb.InternalError=void 0;Nb.internalError=aMt;var oMt=IO(),CO=class extends Error{constructor({code:e,message:r,cause:s}){super(r),this.name=this.constructor.name,this.cause=s,this.code=e}};Nb.InternalError=CO;function aMt(t,e,r){throw t instanceof oMt.HTTPError&&(r+=` - ${t.message}`),new CO({code:e,message:r,cause:t})}});var wO=L((WIr,eRe)=>{eRe.exports=fetch});var tRe=L($w=>{"use strict";var lMt=$w&&$w.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($w,"__esModule",{value:!0});$w.CIContextProvider=void 0;var cMt=lMt(wO()),uMt=[fMt,AMt],$7=class{constructor(e="sigstore"){this.audience=e}async getToken(){return Promise.any(uMt.map(e=>e(this.audience))).catch(()=>Promise.reject("CI: no tokens available"))}};$w.CIContextProvider=$7;async function fMt(t){if(!process.env.ACTIONS_ID_TOKEN_REQUEST_URL||!process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN)return Promise.reject("no token available");let e=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);return e.searchParams.append("audience",t),(await(0,cMt.default)(e.href,{retry:2,headers:{Accept:"application/json",Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).json().then(s=>s.value)}async function AMt(){return process.env.SIGSTORE_ID_TOKEN?process.env.SIGSTORE_ID_TOKEN:Promise.reject("no token available")}});var rRe=L(BO=>{"use strict";Object.defineProperty(BO,"__esModule",{value:!0});BO.CIContextProvider=void 0;var pMt=tRe();Object.defineProperty(BO,"CIContextProvider",{enumerable:!0,get:function(){return pMt.CIContextProvider}})});var iRe=L((KIr,nRe)=>{var hMt=Symbol("proc-log.meta");nRe.exports={META:hMt,output:{LEVELS:["standard","error","buffer","flush"],KEYS:{standard:"standard",error:"error",buffer:"buffer",flush:"flush"},standard:function(...t){return process.emit("output","standard",...t)},error:function(...t){return process.emit("output","error",...t)},buffer:function(...t){return process.emit("output","buffer",...t)},flush:function(...t){return process.emit("output","flush",...t)}},log:{LEVELS:["notice","error","warn","info","verbose","http","silly","timing","pause","resume"],KEYS:{notice:"notice",error:"error",warn:"warn",info:"info",verbose:"verbose",http:"http",silly:"silly",timing:"timing",pause:"pause",resume:"resume"},error:function(...t){return process.emit("log","error",...t)},notice:function(...t){return process.emit("log","notice",...t)},warn:function(...t){return process.emit("log","warn",...t)},info:function(...t){return process.emit("log","info",...t)},verbose:function(...t){return process.emit("log","verbose",...t)},http:function(...t){return process.emit("log","http",...t)},silly:function(...t){return process.emit("log","silly",...t)},timing:function(...t){return process.emit("log","timing",...t)},pause:function(){return process.emit("log","pause")},resume:function(){return process.emit("log","resume")}},time:{LEVELS:["start","end"],KEYS:{start:"start",end:"end"},start:function(t,e){process.emit("time","start",t);function r(){return process.emit("time","end",t)}if(typeof e=="function"){let s=e();return s&&s.finally?s.finally(r):(r(),s)}return r},end:function(t){return process.emit("time","end",t)}},input:{LEVELS:["start","end","read"],KEYS:{start:"start",end:"end",read:"read"},start:function(t){process.emit("input","start");function e(){return process.emit("input","end")}if(typeof t=="function"){let r=t();return r&&r.finally?r.finally(e):(e(),r)}return e},end:function(){return process.emit("input","end")},read:function(...t){let e,r,s=new Promise((a,n)=>{e=a,r=n});return process.emit("input","read",e,r,...t),s}}}});var aRe=L((JIr,oRe)=>{"use strict";function sRe(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function gMt(t,e,r){if(!t||typeof t=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof e=="object"&&(r=e,e=void 0),e!=null&&(r.code=e);try{return sRe(t,r)}catch{r.message=t.message,r.stack=t.stack;let a=function(){};return a.prototype=Object.create(Object.getPrototypeOf(t)),sRe(new a,r)}}oRe.exports=gMt});var cRe=L((zIr,lRe)=>{function tu(t,e){typeof e=="boolean"&&(e={forever:e}),this._originalTimeouts=JSON.parse(JSON.stringify(t)),this._timeouts=t,this._options=e||{},this._maxRetryTime=e&&e.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}lRe.exports=tu;tu.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts};tu.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null};tu.prototype.retry=function(t){if(this._timeout&&clearTimeout(this._timeout),!t)return!1;var e=new Date().getTime();if(t&&e-this._operationStart>=this._maxRetryTime)return this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(t);var r=this._timeouts.shift();if(r===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),r=this._timeouts.shift();else return!1;var s=this,a=setTimeout(function(){s._attempts++,s._operationTimeoutCb&&(s._timeout=setTimeout(function(){s._operationTimeoutCb(s._attempts)},s._operationTimeout),s._options.unref&&s._timeout.unref()),s._fn(s._attempts)},r);return this._options.unref&&a.unref(),!0};tu.prototype.attempt=function(t,e){this._fn=t,e&&(e.timeout&&(this._operationTimeout=e.timeout),e.cb&&(this._operationTimeoutCb=e.cb));var r=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){r._operationTimeoutCb()},r._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};tu.prototype.try=function(t){console.log("Using RetryOperation.try() is deprecated"),this.attempt(t)};tu.prototype.start=function(t){console.log("Using RetryOperation.start() is deprecated"),this.attempt(t)};tu.prototype.start=tu.prototype.try;tu.prototype.errors=function(){return this._errors};tu.prototype.attempts=function(){return this._attempts};tu.prototype.mainError=function(){if(this._errors.length===0)return null;for(var t={},e=null,r=0,s=0;s<this._errors.length;s++){var a=this._errors[s],n=a.message,c=(t[n]||0)+1;t[n]=c,c>=r&&(e=a,r=c)}return e}});var uRe=L(ny=>{var dMt=cRe();ny.operation=function(t){var e=ny.timeouts(t);return new dMt(e,{forever:t&&t.forever,unref:t&&t.unref,maxRetryTime:t&&t.maxRetryTime})};ny.timeouts=function(t){if(t instanceof Array)return[].concat(t);var e={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var r in t)e[r]=t[r];if(e.minTimeout>e.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var s=[],a=0;a<e.retries;a++)s.push(this.createTimeout(a,e));return t&&t.forever&&!s.length&&s.push(this.createTimeout(a,e)),s.sort(function(n,c){return n-c}),s};ny.createTimeout=function(t,e){var r=e.randomize?Math.random()+1:1,s=Math.round(r*e.minTimeout*Math.pow(e.factor,t));return s=Math.min(s,e.maxTimeout),s};ny.wrap=function(t,e,r){if(e instanceof Array&&(r=e,e=null),!r){r=[];for(var s in t)typeof t[s]=="function"&&r.push(s)}for(var a=0;a<r.length;a++){var n=r[a],c=t[n];t[n]=function(p){var h=ny.operation(e),E=Array.prototype.slice.call(arguments,1),C=E.pop();E.push(function(S){h.retry(S)||(S&&(arguments[0]=h.mainError()),C.apply(this,arguments))}),h.attempt(function(){p.apply(t,E)})}.bind(t,c),t[n].options=e}}});var ARe=L((XIr,fRe)=>{fRe.exports=uRe()});var gRe=L(($Ir,hRe)=>{"use strict";var mMt=aRe(),yMt=ARe(),EMt=Object.prototype.hasOwnProperty;function pRe(t){return t&&t.code==="EPROMISERETRY"&&EMt.call(t,"retried")}function IMt(t,e){var r,s;return typeof t=="object"&&typeof e=="function"&&(r=e,e=t,t=r),s=yMt.operation(e),new Promise(function(a,n){s.attempt(function(c){Promise.resolve().then(function(){return t(function(f){throw pRe(f)&&(f=f.retried),mMt(new Error("Retrying"),"EPROMISERETRY",{retried:f})},c)}).then(a,function(f){pRe(f)&&(f=f.retried,s.retry(f||new Error))||n(f)})})})}hRe.exports=IMt});var vO=L(Ob=>{"use strict";var mRe=Ob&&Ob.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ob,"__esModule",{value:!0});Ob.fetchWithRetry=TMt;var CMt=Ie("http2"),wMt=mRe(wO()),dRe=iRe(),BMt=mRe(gRe()),vMt=Bg(),SMt=IO(),{HTTP2_HEADER_LOCATION:DMt,HTTP2_HEADER_CONTENT_TYPE:bMt,HTTP2_HEADER_USER_AGENT:PMt,HTTP_STATUS_INTERNAL_SERVER_ERROR:xMt,HTTP_STATUS_TOO_MANY_REQUESTS:kMt,HTTP_STATUS_REQUEST_TIMEOUT:QMt}=CMt.constants;async function TMt(t,e){return(0,BMt.default)(async(r,s)=>{let a=e.method||"POST",n={[PMt]:vMt.ua.getUserAgent(),...e.headers},c=await(0,wMt.default)(t,{method:a,headers:n,body:e.body,timeout:e.timeout,retry:!1}).catch(f=>(dRe.log.http("fetch",`${a} ${t} attempt ${s} failed with ${f}`),r(f)));if(c.ok)return c;{let f=await RMt(c);if(dRe.log.http("fetch",`${a} ${t} attempt ${s} failed with ${c.status}`),FMt(c.status))return r(f);throw f}},NMt(e.retry))}var RMt=async t=>{let e=t.statusText,r=t.headers.get(DMt)||void 0;if(t.headers.get(bMt)?.includes("application/json"))try{e=(await t.json()).message||e}catch{}return new SMt.HTTPError({status:t.status,message:e,location:r})},FMt=t=>[QMt,kMt].includes(t)||t>=xMt,NMt=t=>typeof t=="boolean"?{retries:t?1:0}:typeof t=="number"?{retries:t}:{retries:0,...t}});var yRe=L(SO=>{"use strict";Object.defineProperty(SO,"__esModule",{value:!0});SO.Fulcio=void 0;var OMt=vO(),eK=class{constructor(e){this.options=e}async createSigningCertificate(e){let{baseURL:r,retry:s,timeout:a}=this.options,n=`${r}/api/v2/signingCert`;return(await(0,OMt.fetchWithRetry)(n,{headers:{"Content-Type":"application/json"},body:JSON.stringify(e),timeout:a,retry:s})).json()}};SO.Fulcio=eK});var ERe=L(DO=>{"use strict";Object.defineProperty(DO,"__esModule",{value:!0});DO.CAClient=void 0;var LMt=Xw(),MMt=yRe(),tK=class{constructor(e){this.fulcio=new MMt.Fulcio({baseURL:e.fulcioBaseURL,retry:e.retry,timeout:e.timeout})}async createSigningCertificate(e,r,s){let a=_Mt(e,r,s);try{let n=await this.fulcio.createSigningCertificate(a);return(n.signedCertificateEmbeddedSct?n.signedCertificateEmbeddedSct:n.signedCertificateDetachedSct).chain.certificates}catch(n){(0,LMt.internalError)(n,"CA_CREATE_SIGNING_CERTIFICATE_ERROR","error creating signing certificate")}}};DO.CAClient=tK;function _Mt(t,e,r){return{credentials:{oidcIdentityToken:t},publicKeyRequest:{publicKey:{algorithm:"ECDSA",content:e},proofOfPossession:r.toString("base64")}}}});var CRe=L(e1=>{"use strict";var UMt=e1&&e1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e1,"__esModule",{value:!0});e1.EphemeralSigner=void 0;var IRe=UMt(Ie("crypto")),HMt="ec",jMt="P-256",rK=class{constructor(){this.keypair=IRe.default.generateKeyPairSync(HMt,{namedCurve:jMt})}async sign(e){let r=IRe.default.sign(null,e,this.keypair.privateKey),s=this.keypair.publicKey.export({format:"pem",type:"spki"}).toString("ascii");return{signature:r,key:{$case:"publicKey",publicKey:s}}}};e1.EphemeralSigner=rK});var wRe=L(iy=>{"use strict";Object.defineProperty(iy,"__esModule",{value:!0});iy.FulcioSigner=iy.DEFAULT_FULCIO_URL=void 0;var nK=Xw(),qMt=Bg(),GMt=ERe(),WMt=CRe();iy.DEFAULT_FULCIO_URL="https://fulcio.sigstore.dev";var iK=class{constructor(e){this.ca=new GMt.CAClient({...e,fulcioBaseURL:e.fulcioBaseURL||iy.DEFAULT_FULCIO_URL}),this.identityProvider=e.identityProvider,this.keyHolder=e.keyHolder||new WMt.EphemeralSigner}async sign(e){let r=await this.getIdentityToken(),s;try{s=qMt.oidc.extractJWTSubject(r)}catch(f){throw new nK.InternalError({code:"IDENTITY_TOKEN_PARSE_ERROR",message:`invalid identity token: ${r}`,cause:f})}let a=await this.keyHolder.sign(Buffer.from(s));if(a.key.$case!=="publicKey")throw new nK.InternalError({code:"CA_CREATE_SIGNING_CERTIFICATE_ERROR",message:"unexpected format for signing key"});let n=await this.ca.createSigningCertificate(r,a.key.publicKey,a.signature);return{signature:(await this.keyHolder.sign(e)).signature,key:{$case:"x509Certificate",certificate:n[0]}}}async getIdentityToken(){try{return await this.identityProvider.getToken()}catch(e){throw new nK.InternalError({code:"IDENTITY_TOKEN_READ_ERROR",message:"error retrieving identity token",cause:e})}}};iy.FulcioSigner=iK});var vRe=L(t1=>{"use strict";Object.defineProperty(t1,"__esModule",{value:!0});t1.FulcioSigner=t1.DEFAULT_FULCIO_URL=void 0;var BRe=wRe();Object.defineProperty(t1,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return BRe.DEFAULT_FULCIO_URL}});Object.defineProperty(t1,"FulcioSigner",{enumerable:!0,get:function(){return BRe.FulcioSigner}})});var bRe=L(bO=>{"use strict";Object.defineProperty(bO,"__esModule",{value:!0});bO.Rekor=void 0;var SRe=vO(),sK=class{constructor(e){this.options=e}async createEntry(e){let{baseURL:r,timeout:s,retry:a}=this.options,n=`${r}/api/v1/log/entries`,f=await(await(0,SRe.fetchWithRetry)(n,{headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e),timeout:s,retry:a})).json();return DRe(f)}async getEntry(e){let{baseURL:r,timeout:s,retry:a}=this.options,n=`${r}/api/v1/log/entries/${e}`,f=await(await(0,SRe.fetchWithRetry)(n,{method:"GET",headers:{Accept:"application/json"},timeout:s,retry:a})).json();return DRe(f)}};bO.Rekor=sK;function DRe(t){let e=Object.entries(t);if(e.length!=1)throw new Error("Received multiple entries in Rekor response");let[r,s]=e[0];return{...s,uuid:r}}});var xRe=L(PO=>{"use strict";Object.defineProperty(PO,"__esModule",{value:!0});PO.TLogClient=void 0;var PRe=Xw(),YMt=IO(),VMt=bRe(),oK=class{constructor(e){this.fetchOnConflict=e.fetchOnConflict??!1,this.rekor=new VMt.Rekor({baseURL:e.rekorBaseURL,retry:e.retry,timeout:e.timeout})}async createEntry(e){let r;try{r=await this.rekor.createEntry(e)}catch(s){if(KMt(s)&&this.fetchOnConflict){let a=s.location.split("/").pop()||"";try{r=await this.rekor.getEntry(a)}catch(n){(0,PRe.internalError)(n,"TLOG_FETCH_ENTRY_ERROR","error fetching tlog entry")}}else(0,PRe.internalError)(s,"TLOG_CREATE_ENTRY_ERROR","error creating tlog entry")}return r}};PO.TLogClient=oK;function KMt(t){return t instanceof YMt.HTTPError&&t.statusCode===409&&t.location!==void 0}});var kRe=L(aK=>{"use strict";Object.defineProperty(aK,"__esModule",{value:!0});aK.toProposedEntry=zMt;var JMt=xb(),vg=Bg(),Lb="sha256";function zMt(t,e,r="dsse"){switch(t.$case){case"dsseEnvelope":return r==="intoto"?$Mt(t.dsseEnvelope,e):XMt(t.dsseEnvelope,e);case"messageSignature":return ZMt(t.messageSignature,e)}}function ZMt(t,e){let r=t.messageDigest.digest.toString("hex"),s=t.signature.toString("base64"),a=vg.encoding.base64Encode(e);return{apiVersion:"0.0.1",kind:"hashedrekord",spec:{data:{hash:{algorithm:Lb,value:r}},signature:{content:s,publicKey:{content:a}}}}}function XMt(t,e){let r=JSON.stringify((0,JMt.envelopeToJSON)(t)),s=vg.encoding.base64Encode(e);return{apiVersion:"0.0.1",kind:"dsse",spec:{proposedContent:{envelope:r,verifiers:[s]}}}}function $Mt(t,e){let r=vg.crypto.digest(Lb,t.payload).toString("hex"),s=e_t(t,e),a=vg.encoding.base64Encode(t.payload.toString("base64")),n=vg.encoding.base64Encode(t.signatures[0].sig.toString("base64")),c=t.signatures[0].keyid,f=vg.encoding.base64Encode(e),p={payloadType:t.payloadType,payload:a,signatures:[{sig:n,publicKey:f}]};return c.length>0&&(p.signatures[0].keyid=c),{apiVersion:"0.0.2",kind:"intoto",spec:{content:{envelope:p,hash:{algorithm:Lb,value:s},payloadHash:{algorithm:Lb,value:r}}}}}function e_t(t,e){let r={payloadType:t.payloadType,payload:t.payload.toString("base64"),signatures:[{sig:t.signatures[0].sig.toString("base64"),publicKey:e}]};return t.signatures[0].keyid.length>0&&(r.signatures[0].keyid=t.signatures[0].keyid),vg.crypto.digest(Lb,vg.json.canonicalize(r)).toString("hex")}});var QRe=L(sy=>{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.RekorWitness=sy.DEFAULT_REKOR_URL=void 0;var t_t=Bg(),r_t=xRe(),n_t=kRe();sy.DEFAULT_REKOR_URL="https://rekor.sigstore.dev";var lK=class{constructor(e){this.entryType=e.entryType,this.tlog=new r_t.TLogClient({...e,rekorBaseURL:e.rekorBaseURL||sy.DEFAULT_REKOR_URL})}async testify(e,r){let s=(0,n_t.toProposedEntry)(e,r,this.entryType),a=await this.tlog.createEntry(s);return i_t(a)}};sy.RekorWitness=lK;function i_t(t){let e=Buffer.from(t.logID,"hex"),r=t_t.encoding.base64Decode(t.body),s=JSON.parse(r),a=t?.verification?.signedEntryTimestamp?s_t(t.verification.signedEntryTimestamp):void 0,n=t?.verification?.inclusionProof?o_t(t.verification.inclusionProof):void 0;return{tlogEntries:[{logIndex:t.logIndex.toString(),logId:{keyId:e},integratedTime:t.integratedTime.toString(),kindVersion:{kind:s.kind,version:s.apiVersion},inclusionPromise:a,inclusionProof:n,canonicalizedBody:Buffer.from(t.body,"base64")}]}}function s_t(t){return{signedEntryTimestamp:Buffer.from(t,"base64")}}function o_t(t){return{logIndex:t.logIndex.toString(),treeSize:t.treeSize.toString(),rootHash:Buffer.from(t.rootHash,"hex"),hashes:t.hashes.map(e=>Buffer.from(e,"hex")),checkpoint:{envelope:t.checkpoint}}}});var TRe=L(xO=>{"use strict";Object.defineProperty(xO,"__esModule",{value:!0});xO.TimestampAuthority=void 0;var a_t=vO(),cK=class{constructor(e){this.options=e}async createTimestamp(e){let{baseURL:r,timeout:s,retry:a}=this.options,n=`${r}/api/v1/timestamp`;return(await(0,a_t.fetchWithRetry)(n,{headers:{"Content-Type":"application/json"},body:JSON.stringify(e),timeout:s,retry:a})).buffer()}};xO.TimestampAuthority=cK});var FRe=L(kO=>{"use strict";Object.defineProperty(kO,"__esModule",{value:!0});kO.TSAClient=void 0;var l_t=Xw(),c_t=TRe(),u_t=Bg(),RRe="sha256",uK=class{constructor(e){this.tsa=new c_t.TimestampAuthority({baseURL:e.tsaBaseURL,retry:e.retry,timeout:e.timeout})}async createTimestamp(e){let r={artifactHash:u_t.crypto.digest(RRe,e).toString("base64"),hashAlgorithm:RRe};try{return await this.tsa.createTimestamp(r)}catch(s){(0,l_t.internalError)(s,"TSA_CREATE_TIMESTAMP_ERROR","error creating timestamp")}}};kO.TSAClient=uK});var NRe=L(QO=>{"use strict";Object.defineProperty(QO,"__esModule",{value:!0});QO.TSAWitness=void 0;var f_t=FRe(),fK=class{constructor(e){this.tsa=new f_t.TSAClient({tsaBaseURL:e.tsaBaseURL,retry:e.retry,timeout:e.timeout})}async testify(e){let r=A_t(e);return{rfc3161Timestamps:[{signedTimestamp:await this.tsa.createTimestamp(r)}]}}};QO.TSAWitness=fK;function A_t(t){switch(t.$case){case"dsseEnvelope":return t.dsseEnvelope.signatures[0].sig;case"messageSignature":return t.messageSignature.signature}}});var LRe=L(Sg=>{"use strict";Object.defineProperty(Sg,"__esModule",{value:!0});Sg.TSAWitness=Sg.RekorWitness=Sg.DEFAULT_REKOR_URL=void 0;var ORe=QRe();Object.defineProperty(Sg,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return ORe.DEFAULT_REKOR_URL}});Object.defineProperty(Sg,"RekorWitness",{enumerable:!0,get:function(){return ORe.RekorWitness}});var p_t=NRe();Object.defineProperty(Sg,"TSAWitness",{enumerable:!0,get:function(){return p_t.TSAWitness}})});var pK=L(Is=>{"use strict";Object.defineProperty(Is,"__esModule",{value:!0});Is.TSAWitness=Is.RekorWitness=Is.DEFAULT_REKOR_URL=Is.FulcioSigner=Is.DEFAULT_FULCIO_URL=Is.CIContextProvider=Is.InternalError=Is.MessageSignatureBundleBuilder=Is.DSSEBundleBuilder=void 0;var MRe=$Te();Object.defineProperty(Is,"DSSEBundleBuilder",{enumerable:!0,get:function(){return MRe.DSSEBundleBuilder}});Object.defineProperty(Is,"MessageSignatureBundleBuilder",{enumerable:!0,get:function(){return MRe.MessageSignatureBundleBuilder}});var h_t=Xw();Object.defineProperty(Is,"InternalError",{enumerable:!0,get:function(){return h_t.InternalError}});var g_t=rRe();Object.defineProperty(Is,"CIContextProvider",{enumerable:!0,get:function(){return g_t.CIContextProvider}});var _Re=vRe();Object.defineProperty(Is,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return _Re.DEFAULT_FULCIO_URL}});Object.defineProperty(Is,"FulcioSigner",{enumerable:!0,get:function(){return _Re.FulcioSigner}});var AK=LRe();Object.defineProperty(Is,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return AK.DEFAULT_REKOR_URL}});Object.defineProperty(Is,"RekorWitness",{enumerable:!0,get:function(){return AK.RekorWitness}});Object.defineProperty(Is,"TSAWitness",{enumerable:!0,get:function(){return AK.TSAWitness}})});var HRe=L(Mb=>{"use strict";var URe=Mb&&Mb.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Mb,"__esModule",{value:!0});Mb.appDataPath=m_t;var d_t=URe(Ie("os")),r1=URe(Ie("path"));function m_t(t){let e=d_t.default.homedir();switch(process.platform){case"darwin":{let r=r1.default.join(e,"Library","Application Support");return r1.default.join(r,t)}case"win32":{let r=process.env.LOCALAPPDATA||r1.default.join(e,"AppData","Local");return r1.default.join(r,t,"Data")}default:{let r=process.env.XDG_DATA_HOME||r1.default.join(e,".local","share");return r1.default.join(r,t)}}}});var kA=L(Bl=>{"use strict";Object.defineProperty(Bl,"__esModule",{value:!0});Bl.UnsupportedAlgorithmError=Bl.CryptoError=Bl.LengthOrHashMismatchError=Bl.UnsignedMetadataError=Bl.RepositoryError=Bl.ValueError=void 0;var hK=class extends Error{};Bl.ValueError=hK;var _b=class extends Error{};Bl.RepositoryError=_b;var gK=class extends _b{};Bl.UnsignedMetadataError=gK;var dK=class extends _b{};Bl.LengthOrHashMismatchError=dK;var TO=class extends Error{};Bl.CryptoError=TO;var mK=class extends TO{};Bl.UnsupportedAlgorithmError=mK});var qRe=L(Dg=>{"use strict";Object.defineProperty(Dg,"__esModule",{value:!0});Dg.isDefined=y_t;Dg.isObject=jRe;Dg.isStringArray=E_t;Dg.isObjectArray=I_t;Dg.isStringRecord=C_t;Dg.isObjectRecord=w_t;function y_t(t){return t!==void 0}function jRe(t){return typeof t=="object"&&t!==null}function E_t(t){return Array.isArray(t)&&t.every(e=>typeof e=="string")}function I_t(t){return Array.isArray(t)&&t.every(jRe)}function C_t(t){return typeof t=="object"&&t!==null&&Object.keys(t).every(e=>typeof e=="string")&&Object.values(t).every(e=>typeof e=="string")}function w_t(t){return typeof t=="object"&&t!==null&&Object.keys(t).every(e=>typeof e=="string")&&Object.values(t).every(e=>typeof e=="object"&&e!==null)}});var EK=L((yCr,YRe)=>{var GRe=",",B_t=":",v_t="[",S_t="]",D_t="{",b_t="}";function yK(t){let e=[];if(typeof t=="string")e.push(WRe(t));else if(typeof t=="boolean")e.push(JSON.stringify(t));else if(Number.isInteger(t))e.push(JSON.stringify(t));else if(t===null)e.push(JSON.stringify(t));else if(Array.isArray(t)){e.push(v_t);let r=!0;t.forEach(s=>{r||e.push(GRe),r=!1,e.push(yK(s))}),e.push(S_t)}else if(typeof t=="object"){e.push(D_t);let r=!0;Object.keys(t).sort().forEach(s=>{r||e.push(GRe),r=!1,e.push(WRe(s)),e.push(B_t),e.push(yK(t[s]))}),e.push(b_t)}else throw new TypeError("cannot encode "+t.toString());return e.join("")}function WRe(t){return'"'+t.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'}YRe.exports={canonicalize:yK}});var VRe=L(n1=>{"use strict";var P_t=n1&&n1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(n1,"__esModule",{value:!0});n1.verifySignature=void 0;var x_t=EK(),k_t=P_t(Ie("crypto")),Q_t=(t,e,r)=>{let s=Buffer.from((0,x_t.canonicalize)(t));return k_t.default.verify(void 0,s,e,Buffer.from(r,"hex"))};n1.verifySignature=Q_t});var Af=L(ru=>{"use strict";var T_t=ru&&ru.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),R_t=ru&&ru.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),KRe=ru&&ru.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&T_t(e,t,r);return R_t(e,t),e};Object.defineProperty(ru,"__esModule",{value:!0});ru.crypto=ru.guard=void 0;ru.guard=KRe(qRe());ru.crypto=KRe(VRe())});var oy=L(dh=>{"use strict";var F_t=dh&&dh.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(dh,"__esModule",{value:!0});dh.Signed=dh.MetadataKind=void 0;dh.isMetadataKind=O_t;var N_t=F_t(Ie("util")),Ub=kA(),IK=Af(),JRe=["1","0","31"],CK;(function(t){t.Root="root",t.Timestamp="timestamp",t.Snapshot="snapshot",t.Targets="targets"})(CK||(dh.MetadataKind=CK={}));function O_t(t){return typeof t=="string"&&Object.values(CK).includes(t)}var wK=class t{constructor(e){this.specVersion=e.specVersion||JRe.join(".");let r=this.specVersion.split(".");if(!(r.length===2||r.length===3)||!r.every(s=>L_t(s)))throw new Ub.ValueError("Failed to parse specVersion");if(r[0]!=JRe[0])throw new Ub.ValueError("Unsupported specVersion");this.expires=e.expires,this.version=e.version,this.unrecognizedFields=e.unrecognizedFields||{}}equals(e){return e instanceof t?this.specVersion===e.specVersion&&this.expires===e.expires&&this.version===e.version&&N_t.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}isExpired(e){return e||(e=new Date),e>=new Date(this.expires)}static commonFieldsFromJSON(e){let{spec_version:r,expires:s,version:a,...n}=e;if(IK.guard.isDefined(r)){if(typeof r!="string")throw new TypeError("spec_version must be a string")}else throw new Ub.ValueError("spec_version is not defined");if(IK.guard.isDefined(s)){if(typeof s!="string")throw new TypeError("expires must be a string")}else throw new Ub.ValueError("expires is not defined");if(IK.guard.isDefined(a)){if(typeof a!="number")throw new TypeError("version must be a number")}else throw new Ub.ValueError("version is not defined");return{specVersion:r,expires:s,version:a,unrecognizedFields:n}}};dh.Signed=wK;function L_t(t){return!isNaN(Number(t))}});var Hb=L(Pg=>{"use strict";var zRe=Pg&&Pg.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Pg,"__esModule",{value:!0});Pg.TargetFile=Pg.MetaFile=void 0;var ZRe=zRe(Ie("crypto")),FO=zRe(Ie("util")),bg=kA(),RO=Af(),BK=class t{constructor(e){if(e.version<=0)throw new bg.ValueError("Metafile version must be at least 1");e.length!==void 0&&XRe(e.length),this.version=e.version,this.length=e.length,this.hashes=e.hashes,this.unrecognizedFields=e.unrecognizedFields||{}}equals(e){return e instanceof t?this.version===e.version&&this.length===e.length&&FO.default.isDeepStrictEqual(this.hashes,e.hashes)&&FO.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}verify(e){if(this.length!==void 0&&e.length!==this.length)throw new bg.LengthOrHashMismatchError(`Expected length ${this.length} but got ${e.length}`);this.hashes&&Object.entries(this.hashes).forEach(([r,s])=>{let a;try{a=ZRe.default.createHash(r)}catch{throw new bg.LengthOrHashMismatchError(`Hash algorithm ${r} not supported`)}let n=a.update(e).digest("hex");if(n!==s)throw new bg.LengthOrHashMismatchError(`Expected hash ${s} but got ${n}`)})}toJSON(){let e={version:this.version,...this.unrecognizedFields};return this.length!==void 0&&(e.length=this.length),this.hashes&&(e.hashes=this.hashes),e}static fromJSON(e){let{version:r,length:s,hashes:a,...n}=e;if(typeof r!="number")throw new TypeError("version must be a number");if(RO.guard.isDefined(s)&&typeof s!="number")throw new TypeError("length must be a number");if(RO.guard.isDefined(a)&&!RO.guard.isStringRecord(a))throw new TypeError("hashes must be string keys and values");return new t({version:r,length:s,hashes:a,unrecognizedFields:n})}};Pg.MetaFile=BK;var vK=class t{constructor(e){XRe(e.length),this.length=e.length,this.path=e.path,this.hashes=e.hashes,this.unrecognizedFields=e.unrecognizedFields||{}}get custom(){let e=this.unrecognizedFields.custom;return!e||Array.isArray(e)||typeof e!="object"?{}:e}equals(e){return e instanceof t?this.length===e.length&&this.path===e.path&&FO.default.isDeepStrictEqual(this.hashes,e.hashes)&&FO.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}async verify(e){let r=0,s=Object.keys(this.hashes).reduce((a,n)=>{try{a[n]=ZRe.default.createHash(n)}catch{throw new bg.LengthOrHashMismatchError(`Hash algorithm ${n} not supported`)}return a},{});for await(let a of e)r+=a.length,Object.values(s).forEach(n=>{n.update(a)});if(r!==this.length)throw new bg.LengthOrHashMismatchError(`Expected length ${this.length} but got ${r}`);Object.entries(s).forEach(([a,n])=>{let c=this.hashes[a],f=n.digest("hex");if(f!==c)throw new bg.LengthOrHashMismatchError(`Expected hash ${c} but got ${f}`)})}toJSON(){return{length:this.length,hashes:this.hashes,...this.unrecognizedFields}}static fromJSON(e,r){let{length:s,hashes:a,...n}=r;if(typeof s!="number")throw new TypeError("length must be a number");if(!RO.guard.isStringRecord(a))throw new TypeError("hashes must have string keys and values");return new t({length:s,path:e,hashes:a,unrecognizedFields:n})}};Pg.TargetFile=vK;function XRe(t){if(t<0)throw new bg.ValueError("Length must be at least 0")}});var $Re=L(SK=>{"use strict";Object.defineProperty(SK,"__esModule",{value:!0});SK.encodeOIDString=__t;var M_t=6;function __t(t){let e=t.split("."),r=parseInt(e[0],10)*40+parseInt(e[1],10),s=[];e.slice(2).forEach(n=>{let c=U_t(parseInt(n,10));s.push(...c)});let a=Buffer.from([r,...s]);return Buffer.from([M_t,a.length,...a])}function U_t(t){let e=[],r=0;for(;t>0;)e.unshift(t&127|r),t>>=7,r=128;return e}});var nFe=L(qb=>{"use strict";var H_t=qb&&qb.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qb,"__esModule",{value:!0});qb.getPublicKey=W_t;var i1=H_t(Ie("crypto")),jb=kA(),DK=$Re(),NO=48,eFe=3,tFe=0,j_t="1.3.101.112",q_t="1.2.840.10045.2.1",G_t="1.2.840.10045.3.1.7",bK="-----BEGIN PUBLIC KEY-----";function W_t(t){switch(t.keyType){case"rsa":return Y_t(t);case"ed25519":return V_t(t);case"ecdsa":case"ecdsa-sha2-nistp256":case"ecdsa-sha2-nistp384":return K_t(t);default:throw new jb.UnsupportedAlgorithmError(`Unsupported key type: ${t.keyType}`)}}function Y_t(t){if(!t.keyVal.startsWith(bK))throw new jb.CryptoError("Invalid key format");let e=i1.default.createPublicKey(t.keyVal);switch(t.scheme){case"rsassa-pss-sha256":return{key:e,padding:i1.default.constants.RSA_PKCS1_PSS_PADDING};default:throw new jb.UnsupportedAlgorithmError(`Unsupported RSA scheme: ${t.scheme}`)}}function V_t(t){let e;if(t.keyVal.startsWith(bK))e=i1.default.createPublicKey(t.keyVal);else{if(!rFe(t.keyVal))throw new jb.CryptoError("Invalid key format");e=i1.default.createPublicKey({key:J_t.hexToDER(t.keyVal),format:"der",type:"spki"})}return{key:e}}function K_t(t){let e;if(t.keyVal.startsWith(bK))e=i1.default.createPublicKey(t.keyVal);else{if(!rFe(t.keyVal))throw new jb.CryptoError("Invalid key format");e=i1.default.createPublicKey({key:z_t.hexToDER(t.keyVal),format:"der",type:"spki"})}return{key:e}}var J_t={hexToDER:t=>{let e=Buffer.from(t,"hex"),r=(0,DK.encodeOIDString)(j_t),s=Buffer.concat([Buffer.concat([Buffer.from([NO]),Buffer.from([r.length]),r]),Buffer.concat([Buffer.from([eFe]),Buffer.from([e.length+1]),Buffer.from([tFe]),e])]);return Buffer.concat([Buffer.from([NO]),Buffer.from([s.length]),s])}},z_t={hexToDER:t=>{let e=Buffer.from(t,"hex"),r=Buffer.concat([Buffer.from([eFe]),Buffer.from([e.length+1]),Buffer.from([tFe]),e]),s=Buffer.concat([(0,DK.encodeOIDString)(q_t),(0,DK.encodeOIDString)(G_t)]),a=Buffer.concat([Buffer.from([NO]),Buffer.from([s.length]),s]);return Buffer.concat([Buffer.from([NO]),Buffer.from([a.length+r.length]),a,r])}},rFe=t=>/^[0-9a-fA-F]+$/.test(t)});var OO=L(s1=>{"use strict";var Z_t=s1&&s1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(s1,"__esModule",{value:!0});s1.Key=void 0;var iFe=Z_t(Ie("util")),Gb=kA(),sFe=Af(),X_t=nFe(),PK=class t{constructor(e){let{keyID:r,keyType:s,scheme:a,keyVal:n,unrecognizedFields:c}=e;this.keyID=r,this.keyType=s,this.scheme=a,this.keyVal=n,this.unrecognizedFields=c||{}}verifySignature(e){let r=e.signatures[this.keyID];if(!r)throw new Gb.UnsignedMetadataError("no signature for key found in metadata");if(!this.keyVal.public)throw new Gb.UnsignedMetadataError("no public key found");let s=(0,X_t.getPublicKey)({keyType:this.keyType,scheme:this.scheme,keyVal:this.keyVal.public}),a=e.signed.toJSON();try{if(!sFe.crypto.verifySignature(a,s,r.sig))throw new Gb.UnsignedMetadataError(`failed to verify ${this.keyID} signature`)}catch(n){throw n instanceof Gb.UnsignedMetadataError?n:new Gb.UnsignedMetadataError(`failed to verify ${this.keyID} signature`)}}equals(e){return e instanceof t?this.keyID===e.keyID&&this.keyType===e.keyType&&this.scheme===e.scheme&&iFe.default.isDeepStrictEqual(this.keyVal,e.keyVal)&&iFe.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}toJSON(){return{keytype:this.keyType,scheme:this.scheme,keyval:this.keyVal,...this.unrecognizedFields}}static fromJSON(e,r){let{keytype:s,scheme:a,keyval:n,...c}=r;if(typeof s!="string")throw new TypeError("keytype must be a string");if(typeof a!="string")throw new TypeError("scheme must be a string");if(!sFe.guard.isStringRecord(n))throw new TypeError("keyval must be a string record");return new t({keyID:e,keyType:s,scheme:a,keyVal:n,unrecognizedFields:c})}};s1.Key=PK});var uFe=L((DCr,cFe)=>{"use strict";cFe.exports=aFe;function aFe(t,e,r){t instanceof RegExp&&(t=oFe(t,r)),e instanceof RegExp&&(e=oFe(e,r));var s=lFe(t,e,r);return s&&{start:s[0],end:s[1],pre:r.slice(0,s[0]),body:r.slice(s[0]+t.length,s[1]),post:r.slice(s[1]+e.length)}}function oFe(t,e){var r=e.match(t);return r?r[0]:null}aFe.range=lFe;function lFe(t,e,r){var s,a,n,c,f,p=r.indexOf(t),h=r.indexOf(e,p+1),E=p;if(p>=0&&h>0){for(s=[],n=r.length;E>=0&&!f;)E==p?(s.push(E),p=r.indexOf(t,E+1)):s.length==1?f=[s.pop(),h]:(a=s.pop(),a<n&&(n=a,c=h),h=r.indexOf(e,E+1)),E=p<h&&p>=0?p:h;s.length&&(f=[n,c])}return f}});var yFe=L((bCr,mFe)=>{var fFe=uFe();mFe.exports=tUt;var AFe="\0SLASH"+Math.random()+"\0",pFe="\0OPEN"+Math.random()+"\0",kK="\0CLOSE"+Math.random()+"\0",hFe="\0COMMA"+Math.random()+"\0",gFe="\0PERIOD"+Math.random()+"\0";function xK(t){return parseInt(t,10)==t?parseInt(t,10):t.charCodeAt(0)}function $_t(t){return t.split("\\\\").join(AFe).split("\\{").join(pFe).split("\\}").join(kK).split("\\,").join(hFe).split("\\.").join(gFe)}function eUt(t){return t.split(AFe).join("\\").split(pFe).join("{").split(kK).join("}").split(hFe).join(",").split(gFe).join(".")}function dFe(t){if(!t)return[""];var e=[],r=fFe("{","}",t);if(!r)return t.split(",");var s=r.pre,a=r.body,n=r.post,c=s.split(",");c[c.length-1]+="{"+a+"}";var f=dFe(n);return n.length&&(c[c.length-1]+=f.shift(),c.push.apply(c,f)),e.push.apply(e,c),e}function tUt(t){return t?(t.substr(0,2)==="{}"&&(t="\\{\\}"+t.substr(2)),Wb($_t(t),!0).map(eUt)):[]}function rUt(t){return"{"+t+"}"}function nUt(t){return/^-?0\d/.test(t)}function iUt(t,e){return t<=e}function sUt(t,e){return t>=e}function Wb(t,e){var r=[],s=fFe("{","}",t);if(!s)return[t];var a=s.pre,n=s.post.length?Wb(s.post,!1):[""];if(/\$$/.test(s.pre))for(var c=0;c<n.length;c++){var f=a+"{"+s.body+"}"+n[c];r.push(f)}else{var p=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(s.body),h=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(s.body),E=p||h,C=s.body.indexOf(",")>=0;if(!E&&!C)return s.post.match(/,.*\}/)?(t=s.pre+"{"+s.body+kK+s.post,Wb(t)):[t];var S;if(E)S=s.body.split(/\.\./);else if(S=dFe(s.body),S.length===1&&(S=Wb(S[0],!1).map(rUt),S.length===1))return n.map(function(Ce){return s.pre+S[0]+Ce});var P;if(E){var I=xK(S[0]),R=xK(S[1]),N=Math.max(S[0].length,S[1].length),U=S.length==3?Math.abs(xK(S[2])):1,W=iUt,te=R<I;te&&(U*=-1,W=sUt);var ie=S.some(nUt);P=[];for(var Ae=I;W(Ae,R);Ae+=U){var ce;if(h)ce=String.fromCharCode(Ae),ce==="\\"&&(ce="");else if(ce=String(Ae),ie){var me=N-ce.length;if(me>0){var pe=new Array(me+1).join("0");Ae<0?ce="-"+pe+ce.slice(1):ce=pe+ce}}P.push(ce)}}else{P=[];for(var Be=0;Be<S.length;Be++)P.push.apply(P,Wb(S[Be],!1))}for(var Be=0;Be<P.length;Be++)for(var c=0;c<n.length;c++){var f=a+P[Be]+n[c];(!e||E||f)&&r.push(f)}}return r}});var EFe=L(LO=>{"use strict";Object.defineProperty(LO,"__esModule",{value:!0});LO.assertValidPattern=void 0;var oUt=1024*64,aUt=t=>{if(typeof t!="string")throw new TypeError("invalid pattern");if(t.length>oUt)throw new TypeError("pattern is too long")};LO.assertValidPattern=aUt});var CFe=L(MO=>{"use strict";Object.defineProperty(MO,"__esModule",{value:!0});MO.parseClass=void 0;var lUt={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},Yb=t=>t.replace(/[[\]\\-]/g,"\\$&"),cUt=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),IFe=t=>t.join(""),uUt=(t,e)=>{let r=e;if(t.charAt(r)!=="[")throw new Error("not in a brace expression");let s=[],a=[],n=r+1,c=!1,f=!1,p=!1,h=!1,E=r,C="";e:for(;n<t.length;){let R=t.charAt(n);if((R==="!"||R==="^")&&n===r+1){h=!0,n++;continue}if(R==="]"&&c&&!p){E=n+1;break}if(c=!0,R==="\\"&&!p){p=!0,n++;continue}if(R==="["&&!p){for(let[N,[U,W,te]]of Object.entries(lUt))if(t.startsWith(N,n)){if(C)return["$.",!1,t.length-r,!0];n+=N.length,te?a.push(U):s.push(U),f=f||W;continue e}}if(p=!1,C){R>C?s.push(Yb(C)+"-"+Yb(R)):R===C&&s.push(Yb(R)),C="",n++;continue}if(t.startsWith("-]",n+1)){s.push(Yb(R+"-")),n+=2;continue}if(t.startsWith("-",n+1)){C=R,n+=2;continue}s.push(Yb(R)),n++}if(E<n)return["",!1,0,!1];if(!s.length&&!a.length)return["$.",!1,t.length-r,!0];if(a.length===0&&s.length===1&&/^\\?.$/.test(s[0])&&!h){let R=s[0].length===2?s[0].slice(-1):s[0];return[cUt(R),!1,E-r,!1]}let S="["+(h?"^":"")+IFe(s)+"]",P="["+(h?"":"^")+IFe(a)+"]";return[s.length&&a.length?"("+S+"|"+P+")":s.length?S:P,f,E-r,!0]};MO.parseClass=uUt});var UO=L(_O=>{"use strict";Object.defineProperty(_O,"__esModule",{value:!0});_O.unescape=void 0;var fUt=(t,{windowsPathsNoEscape:e=!1}={})=>e?t.replace(/\[([^\/\\])\]/g,"$1"):t.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");_O.unescape=fUt});var RK=L(qO=>{"use strict";Object.defineProperty(qO,"__esModule",{value:!0});qO.AST=void 0;var AUt=CFe(),HO=UO(),pUt=new Set(["!","?","+","*","@"]),wFe=t=>pUt.has(t),hUt="(?!(?:^|/)\\.\\.?(?:$|/))",jO="(?!\\.)",gUt=new Set(["[","."]),dUt=new Set(["..","."]),mUt=new Set("().*{}+?[]^$\\!"),yUt=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),TK="[^/]",BFe=TK+"*?",vFe=TK+"+?",QK=class t{type;#t;#r;#i=!1;#e=[];#n;#o;#l;#a=!1;#s;#c;#f=!1;constructor(e,r,s={}){this.type=e,e&&(this.#r=!0),this.#n=r,this.#t=this.#n?this.#n.#t:this,this.#s=this.#t===this?s:this.#t.#s,this.#l=this.#t===this?[]:this.#t.#l,e==="!"&&!this.#t.#a&&this.#l.push(this),this.#o=this.#n?this.#n.#e.length:0}get hasMagic(){if(this.#r!==void 0)return this.#r;for(let e of this.#e)if(typeof e!="string"&&(e.type||e.hasMagic))return this.#r=!0;return this.#r}toString(){return this.#c!==void 0?this.#c:this.type?this.#c=this.type+"("+this.#e.map(e=>String(e)).join("|")+")":this.#c=this.#e.map(e=>String(e)).join("")}#p(){if(this!==this.#t)throw new Error("should only call on root");if(this.#a)return this;this.toString(),this.#a=!0;let e;for(;e=this.#l.pop();){if(e.type!=="!")continue;let r=e,s=r.#n;for(;s;){for(let a=r.#o+1;!s.type&&a<s.#e.length;a++)for(let n of e.#e){if(typeof n=="string")throw new Error("string part in extglob AST??");n.copyIn(s.#e[a])}r=s,s=r.#n}}return this}push(...e){for(let r of e)if(r!==""){if(typeof r!="string"&&!(r instanceof t&&r.#n===this))throw new Error("invalid part: "+r);this.#e.push(r)}}toJSON(){let e=this.type===null?this.#e.slice().map(r=>typeof r=="string"?r:r.toJSON()):[this.type,...this.#e.map(r=>r.toJSON())];return this.isStart()&&!this.type&&e.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#a&&this.#n?.type==="!")&&e.push({}),e}isStart(){if(this.#t===this)return!0;if(!this.#n?.isStart())return!1;if(this.#o===0)return!0;let e=this.#n;for(let r=0;r<this.#o;r++){let s=e.#e[r];if(!(s instanceof t&&s.type==="!"))return!1}return!0}isEnd(){if(this.#t===this||this.#n?.type==="!")return!0;if(!this.#n?.isEnd())return!1;if(!this.type)return this.#n?.isEnd();let e=this.#n?this.#n.#e.length:0;return this.#o===e-1}copyIn(e){typeof e=="string"?this.push(e):this.push(e.clone(this))}clone(e){let r=new t(this.type,e);for(let s of this.#e)r.copyIn(s);return r}static#u(e,r,s,a){let n=!1,c=!1,f=-1,p=!1;if(r.type===null){let P=s,I="";for(;P<e.length;){let R=e.charAt(P++);if(n||R==="\\"){n=!n,I+=R;continue}if(c){P===f+1?(R==="^"||R==="!")&&(p=!0):R==="]"&&!(P===f+2&&p)&&(c=!1),I+=R;continue}else if(R==="["){c=!0,f=P,p=!1,I+=R;continue}if(!a.noext&&wFe(R)&&e.charAt(P)==="("){r.push(I),I="";let N=new t(R,r);P=t.#u(e,N,P,a),r.push(N);continue}I+=R}return r.push(I),P}let h=s+1,E=new t(null,r),C=[],S="";for(;h<e.length;){let P=e.charAt(h++);if(n||P==="\\"){n=!n,S+=P;continue}if(c){h===f+1?(P==="^"||P==="!")&&(p=!0):P==="]"&&!(h===f+2&&p)&&(c=!1),S+=P;continue}else if(P==="["){c=!0,f=h,p=!1,S+=P;continue}if(wFe(P)&&e.charAt(h)==="("){E.push(S),S="";let I=new t(P,E);E.push(I),h=t.#u(e,I,h,a);continue}if(P==="|"){E.push(S),S="",C.push(E),E=new t(null,r);continue}if(P===")")return S===""&&r.#e.length===0&&(r.#f=!0),E.push(S),S="",r.push(...C,E),h;S+=P}return r.type=null,r.#r=void 0,r.#e=[e.substring(s-1)],h}static fromGlob(e,r={}){let s=new t(null,void 0,r);return t.#u(e,s,0,r),s}toMMPattern(){if(this!==this.#t)return this.#t.toMMPattern();let e=this.toString(),[r,s,a,n]=this.toRegExpSource();if(!(a||this.#r||this.#s.nocase&&!this.#s.nocaseMagicOnly&&e.toUpperCase()!==e.toLowerCase()))return s;let f=(this.#s.nocase?"i":"")+(n?"u":"");return Object.assign(new RegExp(`^${r}$`,f),{_src:r,_glob:e})}get options(){return this.#s}toRegExpSource(e){let r=e??!!this.#s.dot;if(this.#t===this&&this.#p(),!this.type){let p=this.isStart()&&this.isEnd(),h=this.#e.map(P=>{let[I,R,N,U]=typeof P=="string"?t.#h(P,this.#r,p):P.toRegExpSource(e);return this.#r=this.#r||N,this.#i=this.#i||U,I}).join(""),E="";if(this.isStart()&&typeof this.#e[0]=="string"&&!(this.#e.length===1&&dUt.has(this.#e[0]))){let I=gUt,R=r&&I.has(h.charAt(0))||h.startsWith("\\.")&&I.has(h.charAt(2))||h.startsWith("\\.\\.")&&I.has(h.charAt(4)),N=!r&&!e&&I.has(h.charAt(0));E=R?hUt:N?jO:""}let C="";return this.isEnd()&&this.#t.#a&&this.#n?.type==="!"&&(C="(?:$|\\/)"),[E+h+C,(0,HO.unescape)(h),this.#r=!!this.#r,this.#i]}let s=this.type==="*"||this.type==="+",a=this.type==="!"?"(?:(?!(?:":"(?:",n=this.#A(r);if(this.isStart()&&this.isEnd()&&!n&&this.type!=="!"){let p=this.toString();return this.#e=[p],this.type=null,this.#r=void 0,[p,(0,HO.unescape)(this.toString()),!1,!1]}let c=!s||e||r||!jO?"":this.#A(!0);c===n&&(c=""),c&&(n=`(?:${n})(?:${c})*?`);let f="";if(this.type==="!"&&this.#f)f=(this.isStart()&&!r?jO:"")+vFe;else{let p=this.type==="!"?"))"+(this.isStart()&&!r&&!e?jO:"")+BFe+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&c?")":this.type==="*"&&c?")?":`)${this.type}`;f=a+n+p}return[f,(0,HO.unescape)(n),this.#r=!!this.#r,this.#i]}#A(e){return this.#e.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[s,a,n,c]=r.toRegExpSource(e);return this.#i=this.#i||c,s}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#h(e,r,s=!1){let a=!1,n="",c=!1;for(let f=0;f<e.length;f++){let p=e.charAt(f);if(a){a=!1,n+=(mUt.has(p)?"\\":"")+p;continue}if(p==="\\"){f===e.length-1?n+="\\\\":a=!0;continue}if(p==="["){let[h,E,C,S]=(0,AUt.parseClass)(e,f);if(C){n+=h,c=c||E,f+=C-1,r=r||S;continue}}if(p==="*"){s&&e==="*"?n+=vFe:n+=BFe,r=!0;continue}if(p==="?"){n+=TK,r=!0;continue}n+=yUt(p)}return[n,(0,HO.unescape)(e),!!r,c]}};qO.AST=QK});var FK=L(GO=>{"use strict";Object.defineProperty(GO,"__esModule",{value:!0});GO.escape=void 0;var EUt=(t,{windowsPathsNoEscape:e=!1}={})=>e?t.replace(/[?*()[\]]/g,"[$&]"):t.replace(/[?*()[\]\\]/g,"\\$&");GO.escape=EUt});var QFe=L(pr=>{"use strict";var IUt=pr&&pr.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pr,"__esModule",{value:!0});pr.unescape=pr.escape=pr.AST=pr.Minimatch=pr.match=pr.makeRe=pr.braceExpand=pr.defaults=pr.filter=pr.GLOBSTAR=pr.sep=pr.minimatch=void 0;var CUt=IUt(yFe()),WO=EFe(),bFe=RK(),wUt=FK(),BUt=UO(),vUt=(t,e,r={})=>((0,WO.assertValidPattern)(e),!r.nocomment&&e.charAt(0)==="#"?!1:new ay(e,r).match(t));pr.minimatch=vUt;var SUt=/^\*+([^+@!?\*\[\(]*)$/,DUt=t=>e=>!e.startsWith(".")&&e.endsWith(t),bUt=t=>e=>e.endsWith(t),PUt=t=>(t=t.toLowerCase(),e=>!e.startsWith(".")&&e.toLowerCase().endsWith(t)),xUt=t=>(t=t.toLowerCase(),e=>e.toLowerCase().endsWith(t)),kUt=/^\*+\.\*+$/,QUt=t=>!t.startsWith(".")&&t.includes("."),TUt=t=>t!=="."&&t!==".."&&t.includes("."),RUt=/^\.\*+$/,FUt=t=>t!=="."&&t!==".."&&t.startsWith("."),NUt=/^\*+$/,OUt=t=>t.length!==0&&!t.startsWith("."),LUt=t=>t.length!==0&&t!=="."&&t!=="..",MUt=/^\?+([^+@!?\*\[\(]*)?$/,_Ut=([t,e=""])=>{let r=PFe([t]);return e?(e=e.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(e)):r},UUt=([t,e=""])=>{let r=xFe([t]);return e?(e=e.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(e)):r},HUt=([t,e=""])=>{let r=xFe([t]);return e?s=>r(s)&&s.endsWith(e):r},jUt=([t,e=""])=>{let r=PFe([t]);return e?s=>r(s)&&s.endsWith(e):r},PFe=([t])=>{let e=t.length;return r=>r.length===e&&!r.startsWith(".")},xFe=([t])=>{let e=t.length;return r=>r.length===e&&r!=="."&&r!==".."},kFe=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",SFe={win32:{sep:"\\"},posix:{sep:"/"}};pr.sep=kFe==="win32"?SFe.win32.sep:SFe.posix.sep;pr.minimatch.sep=pr.sep;pr.GLOBSTAR=Symbol("globstar **");pr.minimatch.GLOBSTAR=pr.GLOBSTAR;var qUt="[^/]",GUt=qUt+"*?",WUt="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",YUt="(?:(?!(?:\\/|^)\\.).)*?",VUt=(t,e={})=>r=>(0,pr.minimatch)(r,t,e);pr.filter=VUt;pr.minimatch.filter=pr.filter;var nu=(t,e={})=>Object.assign({},t,e),KUt=t=>{if(!t||typeof t!="object"||!Object.keys(t).length)return pr.minimatch;let e=pr.minimatch;return Object.assign((s,a,n={})=>e(s,a,nu(t,n)),{Minimatch:class extends e.Minimatch{constructor(a,n={}){super(a,nu(t,n))}static defaults(a){return e.defaults(nu(t,a)).Minimatch}},AST:class extends e.AST{constructor(a,n,c={}){super(a,n,nu(t,c))}static fromGlob(a,n={}){return e.AST.fromGlob(a,nu(t,n))}},unescape:(s,a={})=>e.unescape(s,nu(t,a)),escape:(s,a={})=>e.escape(s,nu(t,a)),filter:(s,a={})=>e.filter(s,nu(t,a)),defaults:s=>e.defaults(nu(t,s)),makeRe:(s,a={})=>e.makeRe(s,nu(t,a)),braceExpand:(s,a={})=>e.braceExpand(s,nu(t,a)),match:(s,a,n={})=>e.match(s,a,nu(t,n)),sep:e.sep,GLOBSTAR:pr.GLOBSTAR})};pr.defaults=KUt;pr.minimatch.defaults=pr.defaults;var JUt=(t,e={})=>((0,WO.assertValidPattern)(t),e.nobrace||!/\{(?:(?!\{).)*\}/.test(t)?[t]:(0,CUt.default)(t));pr.braceExpand=JUt;pr.minimatch.braceExpand=pr.braceExpand;var zUt=(t,e={})=>new ay(t,e).makeRe();pr.makeRe=zUt;pr.minimatch.makeRe=pr.makeRe;var ZUt=(t,e,r={})=>{let s=new ay(e,r);return t=t.filter(a=>s.match(a)),s.options.nonull&&!t.length&&t.push(e),t};pr.match=ZUt;pr.minimatch.match=pr.match;var DFe=/[?*]|[+@!]\(.*?\)|\[|\]/,XUt=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),ay=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(e,r={}){(0,WO.assertValidPattern)(e),r=r||{},this.options=r,this.pattern=e,this.platform=r.platform||kFe,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let e of this.set)for(let r of e)if(typeof r!="string")return!0;return!1}debug(...e){}make(){let e=this.pattern,r=this.options;if(!r.nocomment&&e.charAt(0)==="#"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...n)=>console.error(...n)),this.debug(this.pattern,this.globSet);let s=this.globSet.map(n=>this.slashSplit(n));this.globParts=this.preprocess(s),this.debug(this.pattern,this.globParts);let a=this.globParts.map((n,c,f)=>{if(this.isWindows&&this.windowsNoMagicRoot){let p=n[0]===""&&n[1]===""&&(n[2]==="?"||!DFe.test(n[2]))&&!DFe.test(n[3]),h=/^[a-z]:/i.test(n[0]);if(p)return[...n.slice(0,4),...n.slice(4).map(E=>this.parse(E))];if(h)return[n[0],...n.slice(1).map(E=>this.parse(E))]}return n.map(p=>this.parse(p))});if(this.debug(this.pattern,a),this.set=a.filter(n=>n.indexOf(!1)===-1),this.isWindows)for(let n=0;n<this.set.length;n++){let c=this.set[n];c[0]===""&&c[1]===""&&this.globParts[n][2]==="?"&&typeof c[3]=="string"&&/^[a-z]:$/i.test(c[3])&&(c[2]="?")}this.debug(this.pattern,this.set)}preprocess(e){if(this.options.noglobstar)for(let s=0;s<e.length;s++)for(let a=0;a<e[s].length;a++)e[s][a]==="**"&&(e[s][a]="*");let{optimizationLevel:r=1}=this.options;return r>=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):r>=1?e=this.levelOneOptimize(e):e=this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(r=>{let s=-1;for(;(s=r.indexOf("**",s+1))!==-1;){let a=s;for(;r[a+1]==="**";)a++;a!==s&&r.splice(s,a-s)}return r})}levelOneOptimize(e){return e.map(r=>(r=r.reduce((s,a)=>{let n=s[s.length-1];return a==="**"&&n==="**"?s:a===".."&&n&&n!==".."&&n!=="."&&n!=="**"?(s.pop(),s):(s.push(a),s)},[]),r.length===0?[""]:r))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let a=1;a<e.length-1;a++){let n=e[a];a===1&&n===""&&e[0]===""||(n==="."||n==="")&&(r=!0,e.splice(a,1),a--)}e[0]==="."&&e.length===2&&(e[1]==="."||e[1]==="")&&(r=!0,e.pop())}let s=0;for(;(s=e.indexOf("..",s+1))!==-1;){let a=e[s-1];a&&a!=="."&&a!==".."&&a!=="**"&&(r=!0,e.splice(s-1,2),s-=2)}}while(r);return e.length===0?[""]:e}firstPhasePreProcess(e){let r=!1;do{r=!1;for(let s of e){let a=-1;for(;(a=s.indexOf("**",a+1))!==-1;){let c=a;for(;s[c+1]==="**";)c++;c>a&&s.splice(a+1,c-a);let f=s[a+1],p=s[a+2],h=s[a+3];if(f!==".."||!p||p==="."||p===".."||!h||h==="."||h==="..")continue;r=!0,s.splice(a,1);let E=s.slice(0);E[a]="**",e.push(E),a--}if(!this.preserveMultipleSlashes){for(let c=1;c<s.length-1;c++){let f=s[c];c===1&&f===""&&s[0]===""||(f==="."||f==="")&&(r=!0,s.splice(c,1),c--)}s[0]==="."&&s.length===2&&(s[1]==="."||s[1]==="")&&(r=!0,s.pop())}let n=0;for(;(n=s.indexOf("..",n+1))!==-1;){let c=s[n-1];if(c&&c!=="."&&c!==".."&&c!=="**"){r=!0;let p=n===1&&s[n+1]==="**"?["."]:[];s.splice(n-1,2,...p),s.length===0&&s.push(""),n-=2}}}}while(r);return e}secondPhasePreProcess(e){for(let r=0;r<e.length-1;r++)for(let s=r+1;s<e.length;s++){let a=this.partsMatch(e[r],e[s],!this.preserveMultipleSlashes);if(a){e[r]=[],e[s]=a;break}}return e.filter(r=>r.length)}partsMatch(e,r,s=!1){let a=0,n=0,c=[],f="";for(;a<e.length&&n<r.length;)if(e[a]===r[n])c.push(f==="b"?r[n]:e[a]),a++,n++;else if(s&&e[a]==="**"&&r[n]===e[a+1])c.push(e[a]),a++;else if(s&&r[n]==="**"&&e[a]===r[n+1])c.push(r[n]),n++;else if(e[a]==="*"&&r[n]&&(this.options.dot||!r[n].startsWith("."))&&r[n]!=="**"){if(f==="b")return!1;f="a",c.push(e[a]),a++,n++}else if(r[n]==="*"&&e[a]&&(this.options.dot||!e[a].startsWith("."))&&e[a]!=="**"){if(f==="a")return!1;f="b",c.push(r[n]),a++,n++}else return!1;return e.length===r.length&&c}parseNegate(){if(this.nonegate)return;let e=this.pattern,r=!1,s=0;for(let a=0;a<e.length&&e.charAt(a)==="!";a++)r=!r,s++;s&&(this.pattern=e.slice(s)),this.negate=r}matchOne(e,r,s=!1){let a=this.options;if(this.isWindows){let R=typeof e[0]=="string"&&/^[a-z]:$/i.test(e[0]),N=!R&&e[0]===""&&e[1]===""&&e[2]==="?"&&/^[a-z]:$/i.test(e[3]),U=typeof r[0]=="string"&&/^[a-z]:$/i.test(r[0]),W=!U&&r[0]===""&&r[1]===""&&r[2]==="?"&&typeof r[3]=="string"&&/^[a-z]:$/i.test(r[3]),te=N?3:R?0:void 0,ie=W?3:U?0:void 0;if(typeof te=="number"&&typeof ie=="number"){let[Ae,ce]=[e[te],r[ie]];Ae.toLowerCase()===ce.toLowerCase()&&(r[ie]=Ae,ie>te?r=r.slice(ie):te>ie&&(e=e.slice(te)))}}let{optimizationLevel:n=1}=this.options;n>=2&&(e=this.levelTwoFileOptimize(e)),this.debug("matchOne",this,{file:e,pattern:r}),this.debug("matchOne",e.length,r.length);for(var c=0,f=0,p=e.length,h=r.length;c<p&&f<h;c++,f++){this.debug("matchOne loop");var E=r[f],C=e[c];if(this.debug(r,E,C),E===!1)return!1;if(E===pr.GLOBSTAR){this.debug("GLOBSTAR",[r,E,C]);var S=c,P=f+1;if(P===h){for(this.debug("** at the end");c<p;c++)if(e[c]==="."||e[c]===".."||!a.dot&&e[c].charAt(0)===".")return!1;return!0}for(;S<p;){var I=e[S];if(this.debug(` +globstar while`,e,S,r,P,I),this.matchOne(e.slice(S),r.slice(P),s))return this.debug("globstar found match!",S,p,I),!0;if(I==="."||I===".."||!a.dot&&I.charAt(0)==="."){this.debug("dot detected!",e,S,r,P);break}this.debug("globstar swallow a segment, and continue"),S++}return!!(s&&(this.debug(` +>>> no match, partial?`,e,S,r,P),S===p))}let R;if(typeof E=="string"?(R=C===E,this.debug("string match",E,C,R)):(R=E.test(C),this.debug("pattern match",E,C,R)),!R)return!1}if(c===p&&f===h)return!0;if(c===p)return s;if(f===h)return c===p-1&&e[c]==="";throw new Error("wtf?")}braceExpand(){return(0,pr.braceExpand)(this.pattern,this.options)}parse(e){(0,WO.assertValidPattern)(e);let r=this.options;if(e==="**")return pr.GLOBSTAR;if(e==="")return"";let s,a=null;(s=e.match(NUt))?a=r.dot?LUt:OUt:(s=e.match(SUt))?a=(r.nocase?r.dot?xUt:PUt:r.dot?bUt:DUt)(s[1]):(s=e.match(MUt))?a=(r.nocase?r.dot?UUt:_Ut:r.dot?HUt:jUt)(s):(s=e.match(kUt))?a=r.dot?TUt:QUt:(s=e.match(RUt))&&(a=FUt);let n=bFe.AST.fromGlob(e,this.options).toMMPattern();return a&&typeof n=="object"&&Reflect.defineProperty(n,"test",{value:a}),n}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let r=this.options,s=r.noglobstar?GUt:r.dot?WUt:YUt,a=new Set(r.nocase?["i"]:[]),n=e.map(p=>{let h=p.map(E=>{if(E instanceof RegExp)for(let C of E.flags.split(""))a.add(C);return typeof E=="string"?XUt(E):E===pr.GLOBSTAR?pr.GLOBSTAR:E._src});return h.forEach((E,C)=>{let S=h[C+1],P=h[C-1];E!==pr.GLOBSTAR||P===pr.GLOBSTAR||(P===void 0?S!==void 0&&S!==pr.GLOBSTAR?h[C+1]="(?:\\/|"+s+"\\/)?"+S:h[C]=s:S===void 0?h[C-1]=P+"(?:\\/|"+s+")?":S!==pr.GLOBSTAR&&(h[C-1]=P+"(?:\\/|\\/"+s+"\\/)"+S,h[C+1]=pr.GLOBSTAR))}),h.filter(E=>E!==pr.GLOBSTAR).join("/")}).join("|"),[c,f]=e.length>1?["(?:",")"]:["",""];n="^"+c+n+f+"$",this.negate&&(n="^(?!"+n+").+$");try{this.regexp=new RegExp(n,[...a].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(e)?["",...e.split(/\/+/)]:e.split(/\/+/)}match(e,r=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&r)return!0;let s=this.options;this.isWindows&&(e=e.split("\\").join("/"));let a=this.slashSplit(e);this.debug(this.pattern,"split",a);let n=this.set;this.debug(this.pattern,"set",n);let c=a[a.length-1];if(!c)for(let f=a.length-2;!c&&f>=0;f--)c=a[f];for(let f=0;f<n.length;f++){let p=n[f],h=a;if(s.matchBase&&p.length===1&&(h=[c]),this.matchOne(h,p,r))return s.flipNegate?!0:!this.negate}return s.flipNegate?!1:this.negate}static defaults(e){return pr.minimatch.defaults(e).Minimatch}};pr.Minimatch=ay;var $Ut=RK();Object.defineProperty(pr,"AST",{enumerable:!0,get:function(){return $Ut.AST}});var e4t=FK();Object.defineProperty(pr,"escape",{enumerable:!0,get:function(){return e4t.escape}});var t4t=UO();Object.defineProperty(pr,"unescape",{enumerable:!0,get:function(){return t4t.unescape}});pr.minimatch.AST=bFe.AST;pr.minimatch.Minimatch=ay;pr.minimatch.escape=wUt.escape;pr.minimatch.unescape=BUt.unescape});var LK=L(iu=>{"use strict";var TFe=iu&&iu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(iu,"__esModule",{value:!0});iu.SuccinctRoles=iu.DelegatedRole=iu.Role=iu.TOP_LEVEL_ROLE_NAMES=void 0;var RFe=TFe(Ie("crypto")),r4t=QFe(),YO=TFe(Ie("util")),VO=kA(),ly=Af();iu.TOP_LEVEL_ROLE_NAMES=["root","targets","snapshot","timestamp"];var Vb=class t{constructor(e){let{keyIDs:r,threshold:s,unrecognizedFields:a}=e;if(n4t(r))throw new VO.ValueError("duplicate key IDs found");if(s<1)throw new VO.ValueError("threshold must be at least 1");this.keyIDs=r,this.threshold=s,this.unrecognizedFields=a||{}}equals(e){return e instanceof t?this.threshold===e.threshold&&YO.default.isDeepStrictEqual(this.keyIDs,e.keyIDs)&&YO.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}toJSON(){return{keyids:this.keyIDs,threshold:this.threshold,...this.unrecognizedFields}}static fromJSON(e){let{keyids:r,threshold:s,...a}=e;if(!ly.guard.isStringArray(r))throw new TypeError("keyids must be an array");if(typeof s!="number")throw new TypeError("threshold must be a number");return new t({keyIDs:r,threshold:s,unrecognizedFields:a})}};iu.Role=Vb;function n4t(t){return new Set(t).size!==t.length}var NK=class t extends Vb{constructor(e){super(e);let{name:r,terminating:s,paths:a,pathHashPrefixes:n}=e;if(this.name=r,this.terminating=s,e.paths&&e.pathHashPrefixes)throw new VO.ValueError("paths and pathHashPrefixes are mutually exclusive");this.paths=a,this.pathHashPrefixes=n}equals(e){return e instanceof t?super.equals(e)&&this.name===e.name&&this.terminating===e.terminating&&YO.default.isDeepStrictEqual(this.paths,e.paths)&&YO.default.isDeepStrictEqual(this.pathHashPrefixes,e.pathHashPrefixes):!1}isDelegatedPath(e){if(this.paths)return this.paths.some(r=>s4t(e,r));if(this.pathHashPrefixes){let s=RFe.default.createHash("sha256").update(e).digest("hex");return this.pathHashPrefixes.some(a=>s.startsWith(a))}return!1}toJSON(){let e={...super.toJSON(),name:this.name,terminating:this.terminating};return this.paths&&(e.paths=this.paths),this.pathHashPrefixes&&(e.path_hash_prefixes=this.pathHashPrefixes),e}static fromJSON(e){let{keyids:r,threshold:s,name:a,terminating:n,paths:c,path_hash_prefixes:f,...p}=e;if(!ly.guard.isStringArray(r))throw new TypeError("keyids must be an array of strings");if(typeof s!="number")throw new TypeError("threshold must be a number");if(typeof a!="string")throw new TypeError("name must be a string");if(typeof n!="boolean")throw new TypeError("terminating must be a boolean");if(ly.guard.isDefined(c)&&!ly.guard.isStringArray(c))throw new TypeError("paths must be an array of strings");if(ly.guard.isDefined(f)&&!ly.guard.isStringArray(f))throw new TypeError("path_hash_prefixes must be an array of strings");return new t({keyIDs:r,threshold:s,name:a,terminating:n,paths:c,pathHashPrefixes:f,unrecognizedFields:p})}};iu.DelegatedRole=NK;var i4t=(t,e)=>t.map((r,s)=>[r,e[s]]);function s4t(t,e){let r=t.split("/"),s=e.split("/");return s.length!=r.length?!1:i4t(r,s).every(([a,n])=>(0,r4t.minimatch)(a,n))}var OK=class t extends Vb{constructor(e){super(e);let{bitLength:r,namePrefix:s}=e;if(r<=0||r>32)throw new VO.ValueError("bitLength must be between 1 and 32");this.bitLength=r,this.namePrefix=s,this.numberOfBins=Math.pow(2,r),this.suffixLen=(this.numberOfBins-1).toString(16).length}equals(e){return e instanceof t?super.equals(e)&&this.bitLength===e.bitLength&&this.namePrefix===e.namePrefix:!1}getRoleForTarget(e){let a=RFe.default.createHash("sha256").update(e).digest().subarray(0,4),n=32-this.bitLength,f=(a.readUInt32BE()>>>n).toString(16).padStart(this.suffixLen,"0");return`${this.namePrefix}-${f}`}*getRoles(){for(let e=0;e<this.numberOfBins;e++){let r=e.toString(16).padStart(this.suffixLen,"0");yield`${this.namePrefix}-${r}`}}isDelegatedRole(e){let r=this.namePrefix+"-";if(!e.startsWith(r))return!1;let s=e.slice(r.length,e.length);if(s.length!=this.suffixLen||!s.match(/^[0-9a-fA-F]+$/))return!1;let a=parseInt(s,16);return 0<=a&&a<this.numberOfBins}toJSON(){return{...super.toJSON(),bit_length:this.bitLength,name_prefix:this.namePrefix}}static fromJSON(e){let{keyids:r,threshold:s,bit_length:a,name_prefix:n,...c}=e;if(!ly.guard.isStringArray(r))throw new TypeError("keyids must be an array of strings");if(typeof s!="number")throw new TypeError("threshold must be a number");if(typeof a!="number")throw new TypeError("bit_length must be a number");if(typeof n!="string")throw new TypeError("name_prefix must be a string");return new t({keyIDs:r,threshold:s,bitLength:a,namePrefix:n,unrecognizedFields:c})}};iu.SuccinctRoles=OK});var UK=L(o1=>{"use strict";var o4t=o1&&o1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(o1,"__esModule",{value:!0});o1.Root=void 0;var FFe=o4t(Ie("util")),MK=oy(),NFe=kA(),a4t=OO(),KO=LK(),JO=Af(),_K=class t extends MK.Signed{constructor(e){if(super(e),this.type=MK.MetadataKind.Root,this.keys=e.keys||{},this.consistentSnapshot=e.consistentSnapshot??!0,!e.roles)this.roles=KO.TOP_LEVEL_ROLE_NAMES.reduce((r,s)=>({...r,[s]:new KO.Role({keyIDs:[],threshold:1})}),{});else{let r=new Set(Object.keys(e.roles));if(!KO.TOP_LEVEL_ROLE_NAMES.every(s=>r.has(s)))throw new NFe.ValueError("missing top-level role");this.roles=e.roles}}addKey(e,r){if(!this.roles[r])throw new NFe.ValueError(`role ${r} does not exist`);this.roles[r].keyIDs.includes(e.keyID)||this.roles[r].keyIDs.push(e.keyID),this.keys[e.keyID]=e}equals(e){return e instanceof t?super.equals(e)&&this.consistentSnapshot===e.consistentSnapshot&&FFe.default.isDeepStrictEqual(this.keys,e.keys)&&FFe.default.isDeepStrictEqual(this.roles,e.roles):!1}toJSON(){return{_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,keys:l4t(this.keys),roles:c4t(this.roles),consistent_snapshot:this.consistentSnapshot,...this.unrecognizedFields}}static fromJSON(e){let{unrecognizedFields:r,...s}=MK.Signed.commonFieldsFromJSON(e),{keys:a,roles:n,consistent_snapshot:c,...f}=r;if(typeof c!="boolean")throw new TypeError("consistent_snapshot must be a boolean");return new t({...s,keys:u4t(a),roles:f4t(n),consistentSnapshot:c,unrecognizedFields:f})}};o1.Root=_K;function l4t(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function c4t(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function u4t(t){let e;if(JO.guard.isDefined(t)){if(!JO.guard.isObjectRecord(t))throw new TypeError("keys must be an object");e=Object.entries(t).reduce((r,[s,a])=>({...r,[s]:a4t.Key.fromJSON(s,a)}),{})}return e}function f4t(t){let e;if(JO.guard.isDefined(t)){if(!JO.guard.isObjectRecord(t))throw new TypeError("roles must be an object");e=Object.entries(t).reduce((r,[s,a])=>({...r,[s]:KO.Role.fromJSON(a)}),{})}return e}});var jK=L(zO=>{"use strict";Object.defineProperty(zO,"__esModule",{value:!0});zO.Signature=void 0;var HK=class t{constructor(e){let{keyID:r,sig:s}=e;this.keyID=r,this.sig=s}toJSON(){return{keyid:this.keyID,sig:this.sig}}static fromJSON(e){let{keyid:r,sig:s}=e;if(typeof r!="string")throw new TypeError("keyid must be a string");if(typeof s!="string")throw new TypeError("sig must be a string");return new t({keyID:r,sig:s})}};zO.Signature=HK});var WK=L(a1=>{"use strict";var A4t=a1&&a1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(a1,"__esModule",{value:!0});a1.Snapshot=void 0;var p4t=A4t(Ie("util")),qK=oy(),LFe=Hb(),OFe=Af(),GK=class t extends qK.Signed{constructor(e){super(e),this.type=qK.MetadataKind.Snapshot,this.meta=e.meta||{"targets.json":new LFe.MetaFile({version:1})}}equals(e){return e instanceof t?super.equals(e)&&p4t.default.isDeepStrictEqual(this.meta,e.meta):!1}toJSON(){return{_type:this.type,meta:h4t(this.meta),spec_version:this.specVersion,version:this.version,expires:this.expires,...this.unrecognizedFields}}static fromJSON(e){let{unrecognizedFields:r,...s}=qK.Signed.commonFieldsFromJSON(e),{meta:a,...n}=r;return new t({...s,meta:g4t(a),unrecognizedFields:n})}};a1.Snapshot=GK;function h4t(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function g4t(t){let e;if(OFe.guard.isDefined(t))if(OFe.guard.isObjectRecord(t))e=Object.entries(t).reduce((r,[s,a])=>({...r,[s]:LFe.MetaFile.fromJSON(a)}),{});else throw new TypeError("meta field is malformed");return e}});var MFe=L(l1=>{"use strict";var d4t=l1&&l1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(l1,"__esModule",{value:!0});l1.Delegations=void 0;var ZO=d4t(Ie("util")),m4t=kA(),y4t=OO(),YK=LK(),XO=Af(),VK=class t{constructor(e){if(this.keys=e.keys,this.unrecognizedFields=e.unrecognizedFields||{},e.roles&&Object.keys(e.roles).some(r=>YK.TOP_LEVEL_ROLE_NAMES.includes(r)))throw new m4t.ValueError("Delegated role name conflicts with top-level role name");this.succinctRoles=e.succinctRoles,this.roles=e.roles}equals(e){return e instanceof t?ZO.default.isDeepStrictEqual(this.keys,e.keys)&&ZO.default.isDeepStrictEqual(this.roles,e.roles)&&ZO.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields)&&ZO.default.isDeepStrictEqual(this.succinctRoles,e.succinctRoles):!1}*rolesForTarget(e){if(this.roles)for(let r of Object.values(this.roles))r.isDelegatedPath(e)&&(yield{role:r.name,terminating:r.terminating});else this.succinctRoles&&(yield{role:this.succinctRoles.getRoleForTarget(e),terminating:!0})}toJSON(){let e={keys:E4t(this.keys),...this.unrecognizedFields};return this.roles?e.roles=I4t(this.roles):this.succinctRoles&&(e.succinct_roles=this.succinctRoles.toJSON()),e}static fromJSON(e){let{keys:r,roles:s,succinct_roles:a,...n}=e,c;return XO.guard.isObject(a)&&(c=YK.SuccinctRoles.fromJSON(a)),new t({keys:C4t(r),roles:w4t(s),unrecognizedFields:n,succinctRoles:c})}};l1.Delegations=VK;function E4t(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function I4t(t){return Object.values(t).map(e=>e.toJSON())}function C4t(t){if(!XO.guard.isObjectRecord(t))throw new TypeError("keys is malformed");return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:y4t.Key.fromJSON(r,s)}),{})}function w4t(t){let e;if(XO.guard.isDefined(t)){if(!XO.guard.isObjectArray(t))throw new TypeError("roles is malformed");e=t.reduce((r,s)=>{let a=YK.DelegatedRole.fromJSON(s);return{...r,[a.name]:a}},{})}return e}});var zK=L(c1=>{"use strict";var B4t=c1&&c1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(c1,"__esModule",{value:!0});c1.Targets=void 0;var _Fe=B4t(Ie("util")),KK=oy(),v4t=MFe(),S4t=Hb(),$O=Af(),JK=class t extends KK.Signed{constructor(e){super(e),this.type=KK.MetadataKind.Targets,this.targets=e.targets||{},this.delegations=e.delegations}addTarget(e){this.targets[e.path]=e}equals(e){return e instanceof t?super.equals(e)&&_Fe.default.isDeepStrictEqual(this.targets,e.targets)&&_Fe.default.isDeepStrictEqual(this.delegations,e.delegations):!1}toJSON(){let e={_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,targets:D4t(this.targets),...this.unrecognizedFields};return this.delegations&&(e.delegations=this.delegations.toJSON()),e}static fromJSON(e){let{unrecognizedFields:r,...s}=KK.Signed.commonFieldsFromJSON(e),{targets:a,delegations:n,...c}=r;return new t({...s,targets:b4t(a),delegations:P4t(n),unrecognizedFields:c})}};c1.Targets=JK;function D4t(t){return Object.entries(t).reduce((e,[r,s])=>({...e,[r]:s.toJSON()}),{})}function b4t(t){let e;if($O.guard.isDefined(t))if($O.guard.isObjectRecord(t))e=Object.entries(t).reduce((r,[s,a])=>({...r,[s]:S4t.TargetFile.fromJSON(s,a)}),{});else throw new TypeError("targets must be an object");return e}function P4t(t){let e;if($O.guard.isDefined(t))if($O.guard.isObject(t))e=v4t.Delegations.fromJSON(t);else throw new TypeError("delegations must be an object");return e}});var eJ=L(eL=>{"use strict";Object.defineProperty(eL,"__esModule",{value:!0});eL.Timestamp=void 0;var ZK=oy(),UFe=Hb(),XK=Af(),$K=class t extends ZK.Signed{constructor(e){super(e),this.type=ZK.MetadataKind.Timestamp,this.snapshotMeta=e.snapshotMeta||new UFe.MetaFile({version:1})}equals(e){return e instanceof t?super.equals(e)&&this.snapshotMeta.equals(e.snapshotMeta):!1}toJSON(){return{_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,meta:{"snapshot.json":this.snapshotMeta.toJSON()},...this.unrecognizedFields}}static fromJSON(e){let{unrecognizedFields:r,...s}=ZK.Signed.commonFieldsFromJSON(e),{meta:a,...n}=r;return new t({...s,snapshotMeta:x4t(a),unrecognizedFields:n})}};eL.Timestamp=$K;function x4t(t){let e;if(XK.guard.isDefined(t)){let r=t["snapshot.json"];if(!XK.guard.isDefined(r)||!XK.guard.isObject(r))throw new TypeError("missing snapshot.json in meta");e=UFe.MetaFile.fromJSON(r)}return e}});var jFe=L(f1=>{"use strict";var k4t=f1&&f1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(f1,"__esModule",{value:!0});f1.Metadata=void 0;var Q4t=EK(),HFe=k4t(Ie("util")),u1=oy(),Kb=kA(),T4t=UK(),R4t=jK(),F4t=WK(),N4t=zK(),O4t=eJ(),tJ=Af(),rJ=class t{constructor(e,r,s){this.signed=e,this.signatures=r||{},this.unrecognizedFields=s||{}}sign(e,r=!0){let s=Buffer.from((0,Q4t.canonicalize)(this.signed.toJSON())),a=e(s);r||(this.signatures={}),this.signatures[a.keyID]=a}verifyDelegate(e,r){let s,a={};switch(this.signed.type){case u1.MetadataKind.Root:a=this.signed.keys,s=this.signed.roles[e];break;case u1.MetadataKind.Targets:if(!this.signed.delegations)throw new Kb.ValueError(`No delegations found for ${e}`);a=this.signed.delegations.keys,this.signed.delegations.roles?s=this.signed.delegations.roles[e]:this.signed.delegations.succinctRoles&&this.signed.delegations.succinctRoles.isDelegatedRole(e)&&(s=this.signed.delegations.succinctRoles);break;default:throw new TypeError("invalid metadata type")}if(!s)throw new Kb.ValueError(`no delegation found for ${e}`);let n=new Set;if(s.keyIDs.forEach(c=>{let f=a[c];if(f)try{f.verifySignature(r),n.add(f.keyID)}catch{}}),n.size<s.threshold)throw new Kb.UnsignedMetadataError(`${e} was signed by ${n.size}/${s.threshold} keys`)}equals(e){return e instanceof t?this.signed.equals(e.signed)&&HFe.default.isDeepStrictEqual(this.signatures,e.signatures)&&HFe.default.isDeepStrictEqual(this.unrecognizedFields,e.unrecognizedFields):!1}toJSON(){return{signatures:Object.values(this.signatures).map(r=>r.toJSON()),signed:this.signed.toJSON(),...this.unrecognizedFields}}static fromJSON(e,r){let{signed:s,signatures:a,...n}=r;if(!tJ.guard.isDefined(s)||!tJ.guard.isObject(s))throw new TypeError("signed is not defined");if(e!==s._type)throw new Kb.ValueError(`expected '${e}', got ${s._type}`);if(!tJ.guard.isObjectArray(a))throw new TypeError("signatures is not an array");let c;switch(e){case u1.MetadataKind.Root:c=T4t.Root.fromJSON(s);break;case u1.MetadataKind.Timestamp:c=O4t.Timestamp.fromJSON(s);break;case u1.MetadataKind.Snapshot:c=F4t.Snapshot.fromJSON(s);break;case u1.MetadataKind.Targets:c=N4t.Targets.fromJSON(s);break;default:throw new TypeError("invalid metadata type")}let f={};return a.forEach(p=>{let h=R4t.Signature.fromJSON(p);if(f[h.keyID])throw new Kb.ValueError(`multiple signatures found for keyid: ${h.keyID}`);f[h.keyID]=h}),new t(c,f,n)}};f1.Metadata=rJ});var tL=L(Ni=>{"use strict";Object.defineProperty(Ni,"__esModule",{value:!0});Ni.Timestamp=Ni.Targets=Ni.Snapshot=Ni.Signature=Ni.Root=Ni.Metadata=Ni.Key=Ni.TargetFile=Ni.MetaFile=Ni.ValueError=Ni.MetadataKind=void 0;var L4t=oy();Object.defineProperty(Ni,"MetadataKind",{enumerable:!0,get:function(){return L4t.MetadataKind}});var M4t=kA();Object.defineProperty(Ni,"ValueError",{enumerable:!0,get:function(){return M4t.ValueError}});var qFe=Hb();Object.defineProperty(Ni,"MetaFile",{enumerable:!0,get:function(){return qFe.MetaFile}});Object.defineProperty(Ni,"TargetFile",{enumerable:!0,get:function(){return qFe.TargetFile}});var _4t=OO();Object.defineProperty(Ni,"Key",{enumerable:!0,get:function(){return _4t.Key}});var U4t=jFe();Object.defineProperty(Ni,"Metadata",{enumerable:!0,get:function(){return U4t.Metadata}});var H4t=UK();Object.defineProperty(Ni,"Root",{enumerable:!0,get:function(){return H4t.Root}});var j4t=jK();Object.defineProperty(Ni,"Signature",{enumerable:!0,get:function(){return j4t.Signature}});var q4t=WK();Object.defineProperty(Ni,"Snapshot",{enumerable:!0,get:function(){return q4t.Snapshot}});var G4t=zK();Object.defineProperty(Ni,"Targets",{enumerable:!0,get:function(){return G4t.Targets}});var W4t=eJ();Object.defineProperty(Ni,"Timestamp",{enumerable:!0,get:function(){return W4t.Timestamp}})});var WFe=L((WCr,GFe)=>{var A1=1e3,p1=A1*60,h1=p1*60,cy=h1*24,Y4t=cy*7,V4t=cy*365.25;GFe.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return K4t(t);if(r==="number"&&isFinite(t))return e.long?z4t(t):J4t(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function K4t(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),s=(e[2]||"ms").toLowerCase();switch(s){case"years":case"year":case"yrs":case"yr":case"y":return r*V4t;case"weeks":case"week":case"w":return r*Y4t;case"days":case"day":case"d":return r*cy;case"hours":case"hour":case"hrs":case"hr":case"h":return r*h1;case"minutes":case"minute":case"mins":case"min":case"m":return r*p1;case"seconds":case"second":case"secs":case"sec":case"s":return r*A1;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function J4t(t){var e=Math.abs(t);return e>=cy?Math.round(t/cy)+"d":e>=h1?Math.round(t/h1)+"h":e>=p1?Math.round(t/p1)+"m":e>=A1?Math.round(t/A1)+"s":t+"ms"}function z4t(t){var e=Math.abs(t);return e>=cy?rL(t,e,cy,"day"):e>=h1?rL(t,e,h1,"hour"):e>=p1?rL(t,e,p1,"minute"):e>=A1?rL(t,e,A1,"second"):t+" ms"}function rL(t,e,r,s){var a=e>=r*1.5;return Math.round(t/r)+" "+s+(a?"s":"")}});var nJ=L((YCr,YFe)=>{function Z4t(t){r.debug=r,r.default=r,r.coerce=p,r.disable=c,r.enable=a,r.enabled=f,r.humanize=WFe(),r.destroy=h,Object.keys(t).forEach(E=>{r[E]=t[E]}),r.names=[],r.skips=[],r.formatters={};function e(E){let C=0;for(let S=0;S<E.length;S++)C=(C<<5)-C+E.charCodeAt(S),C|=0;return r.colors[Math.abs(C)%r.colors.length]}r.selectColor=e;function r(E){let C,S=null,P,I;function R(...N){if(!R.enabled)return;let U=R,W=Number(new Date),te=W-(C||W);U.diff=te,U.prev=C,U.curr=W,C=W,N[0]=r.coerce(N[0]),typeof N[0]!="string"&&N.unshift("%O");let ie=0;N[0]=N[0].replace(/%([a-zA-Z%])/g,(ce,me)=>{if(ce==="%%")return"%";ie++;let pe=r.formatters[me];if(typeof pe=="function"){let Be=N[ie];ce=pe.call(U,Be),N.splice(ie,1),ie--}return ce}),r.formatArgs.call(U,N),(U.log||r.log).apply(U,N)}return R.namespace=E,R.useColors=r.useColors(),R.color=r.selectColor(E),R.extend=s,R.destroy=r.destroy,Object.defineProperty(R,"enabled",{enumerable:!0,configurable:!1,get:()=>S!==null?S:(P!==r.namespaces&&(P=r.namespaces,I=r.enabled(E)),I),set:N=>{S=N}}),typeof r.init=="function"&&r.init(R),R}function s(E,C){let S=r(this.namespace+(typeof C>"u"?":":C)+E);return S.log=this.log,S}function a(E){r.save(E),r.namespaces=E,r.names=[],r.skips=[];let C=(typeof E=="string"?E:"").trim().replace(" ",",").split(",").filter(Boolean);for(let S of C)S[0]==="-"?r.skips.push(S.slice(1)):r.names.push(S)}function n(E,C){let S=0,P=0,I=-1,R=0;for(;S<E.length;)if(P<C.length&&(C[P]===E[S]||C[P]==="*"))C[P]==="*"?(I=P,R=S,P++):(S++,P++);else if(I!==-1)P=I+1,R++,S=R;else return!1;for(;P<C.length&&C[P]==="*";)P++;return P===C.length}function c(){let E=[...r.names,...r.skips.map(C=>"-"+C)].join(",");return r.enable(""),E}function f(E){for(let C of r.skips)if(n(E,C))return!1;for(let C of r.names)if(n(E,C))return!0;return!1}function p(E){return E instanceof Error?E.stack||E.message:E}function h(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}YFe.exports=Z4t});var VFe=L((oc,nL)=>{oc.formatArgs=$4t;oc.save=e3t;oc.load=t3t;oc.useColors=X4t;oc.storage=r3t();oc.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();oc.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function X4t(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function $4t(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+nL.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,s=0;t[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(r++,a==="%c"&&(s=r))}),t.splice(s,0,e)}oc.log=console.debug||console.log||(()=>{});function e3t(t){try{t?oc.storage.setItem("debug",t):oc.storage.removeItem("debug")}catch{}}function t3t(){let t;try{t=oc.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function r3t(){try{return localStorage}catch{}}nL.exports=nJ()(oc);var{formatters:n3t}=nL.exports;n3t.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var JFe=L((eo,sL)=>{var i3t=Ie("tty"),iL=Ie("util");eo.init=f3t;eo.log=l3t;eo.formatArgs=o3t;eo.save=c3t;eo.load=u3t;eo.useColors=s3t;eo.destroy=iL.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");eo.colors=[6,2,3,4,5,1];try{let t=Ie("supports-color");t&&(t.stderr||t).level>=2&&(eo.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}eo.inspectOpts=Object.keys(process.env).filter(t=>/^debug_/i.test(t)).reduce((t,e)=>{let r=e.substring(6).toLowerCase().replace(/_([a-z])/g,(a,n)=>n.toUpperCase()),s=process.env[e];return/^(yes|on|true|enabled)$/i.test(s)?s=!0:/^(no|off|false|disabled)$/i.test(s)?s=!1:s==="null"?s=null:s=Number(s),t[r]=s,t},{});function s3t(){return"colors"in eo.inspectOpts?!!eo.inspectOpts.colors:i3t.isatty(process.stderr.fd)}function o3t(t){let{namespace:e,useColors:r}=this;if(r){let s=this.color,a="\x1B[3"+(s<8?s:"8;5;"+s),n=` ${a};1m${e} \x1B[0m`;t[0]=n+t[0].split(` +`).join(` +`+n),t.push(a+"m+"+sL.exports.humanize(this.diff)+"\x1B[0m")}else t[0]=a3t()+e+" "+t[0]}function a3t(){return eo.inspectOpts.hideDate?"":new Date().toISOString()+" "}function l3t(...t){return process.stderr.write(iL.formatWithOptions(eo.inspectOpts,...t)+` +`)}function c3t(t){t?process.env.DEBUG=t:delete process.env.DEBUG}function u3t(){return process.env.DEBUG}function f3t(t){t.inspectOpts={};let e=Object.keys(eo.inspectOpts);for(let r=0;r<e.length;r++)t.inspectOpts[e[r]]=eo.inspectOpts[e[r]]}sL.exports=nJ()(eo);var{formatters:KFe}=sL.exports;KFe.o=function(t){return this.inspectOpts.colors=this.useColors,iL.inspect(t,this.inspectOpts).split(` +`).map(e=>e.trim()).join(" ")};KFe.O=function(t){return this.inspectOpts.colors=this.useColors,iL.inspect(t,this.inspectOpts)}});var sJ=L((VCr,iJ)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?iJ.exports=VFe():iJ.exports=JFe()});var aL=L(zi=>{"use strict";Object.defineProperty(zi,"__esModule",{value:!0});zi.DownloadHTTPError=zi.DownloadLengthMismatchError=zi.DownloadError=zi.ExpiredMetadataError=zi.EqualVersionError=zi.BadVersionError=zi.RepositoryError=zi.PersistError=zi.RuntimeError=zi.ValueError=void 0;var oJ=class extends Error{};zi.ValueError=oJ;var aJ=class extends Error{};zi.RuntimeError=aJ;var lJ=class extends Error{};zi.PersistError=lJ;var Jb=class extends Error{};zi.RepositoryError=Jb;var oL=class extends Jb{};zi.BadVersionError=oL;var cJ=class extends oL{};zi.EqualVersionError=cJ;var uJ=class extends Jb{};zi.ExpiredMetadataError=uJ;var zb=class extends Error{};zi.DownloadError=zb;var fJ=class extends zb{};zi.DownloadLengthMismatchError=fJ;var AJ=class extends zb{constructor(e,r){super(e),this.statusCode=r}};zi.DownloadHTTPError=AJ});var ZFe=L(g1=>{"use strict";var hJ=g1&&g1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(g1,"__esModule",{value:!0});g1.withTempFile=void 0;var pJ=hJ(Ie("fs/promises")),A3t=hJ(Ie("os")),zFe=hJ(Ie("path")),p3t=async t=>h3t(async e=>t(zFe.default.join(e,"tempfile")));g1.withTempFile=p3t;var h3t=async t=>{let e=await pJ.default.realpath(A3t.default.tmpdir()),r=await pJ.default.mkdtemp(e+zFe.default.sep);try{return await t(r)}finally{await pJ.default.rm(r,{force:!0,recursive:!0,maxRetries:3})}}});var dJ=L(xg=>{"use strict";var cL=xg&&xg.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xg,"__esModule",{value:!0});xg.DefaultFetcher=xg.BaseFetcher=void 0;var g3t=cL(sJ()),XFe=cL(Ie("fs")),d3t=cL(wO()),m3t=cL(Ie("util")),$Fe=aL(),y3t=ZFe(),E3t=(0,g3t.default)("tuf:fetch"),lL=class{async downloadFile(e,r,s){return(0,y3t.withTempFile)(async a=>{let n=await this.fetch(e),c=0,f=XFe.default.createWriteStream(a);try{for await(let p of n){let h=Buffer.from(p);if(c+=h.length,c>r)throw new $Fe.DownloadLengthMismatchError("Max length reached");await I3t(f,h)}}finally{await m3t.default.promisify(f.close).bind(f)()}return s(a)})}async downloadBytes(e,r){return this.downloadFile(e,r,async s=>{let a=XFe.default.createReadStream(s),n=[];for await(let c of a)n.push(c);return Buffer.concat(n)})}};xg.BaseFetcher=lL;var gJ=class extends lL{constructor(e={}){super(),this.timeout=e.timeout,this.retry=e.retry}async fetch(e){E3t("GET %s",e);let r=await(0,d3t.default)(e,{timeout:this.timeout,retry:this.retry});if(!r.ok||!r?.body)throw new $Fe.DownloadHTTPError("Failed to download",r.status);return r.body}};xg.DefaultFetcher=gJ;var I3t=async(t,e)=>new Promise((r,s)=>{t.write(e,a=>{a&&s(a),r(!0)})})});var eNe=L(uL=>{"use strict";Object.defineProperty(uL,"__esModule",{value:!0});uL.defaultConfig=void 0;uL.defaultConfig={maxRootRotations:256,maxDelegations:32,rootMaxLength:512e3,timestampMaxLength:16384,snapshotMaxLength:2e6,targetsMaxLength:5e6,prefixTargetsWithHash:!0,fetchTimeout:1e5,fetchRetries:void 0,fetchRetry:2}});var tNe=L(fL=>{"use strict";Object.defineProperty(fL,"__esModule",{value:!0});fL.TrustedMetadataStore=void 0;var Cs=tL(),Hi=aL(),mJ=class{constructor(e){this.trustedSet={},this.referenceTime=new Date,this.loadTrustedRoot(e)}get root(){if(!this.trustedSet.root)throw new ReferenceError("No trusted root metadata");return this.trustedSet.root}get timestamp(){return this.trustedSet.timestamp}get snapshot(){return this.trustedSet.snapshot}get targets(){return this.trustedSet.targets}getRole(e){return this.trustedSet[e]}updateRoot(e){let r=JSON.parse(e.toString("utf8")),s=Cs.Metadata.fromJSON(Cs.MetadataKind.Root,r);if(s.signed.type!=Cs.MetadataKind.Root)throw new Hi.RepositoryError(`Expected 'root', got ${s.signed.type}`);if(this.root.verifyDelegate(Cs.MetadataKind.Root,s),s.signed.version!=this.root.signed.version+1)throw new Hi.BadVersionError(`Expected version ${this.root.signed.version+1}, got ${s.signed.version}`);return s.verifyDelegate(Cs.MetadataKind.Root,s),this.trustedSet.root=s,s}updateTimestamp(e){if(this.snapshot)throw new Hi.RuntimeError("Cannot update timestamp after snapshot");if(this.root.signed.isExpired(this.referenceTime))throw new Hi.ExpiredMetadataError("Final root.json is expired");let r=JSON.parse(e.toString("utf8")),s=Cs.Metadata.fromJSON(Cs.MetadataKind.Timestamp,r);if(s.signed.type!=Cs.MetadataKind.Timestamp)throw new Hi.RepositoryError(`Expected 'timestamp', got ${s.signed.type}`);if(this.root.verifyDelegate(Cs.MetadataKind.Timestamp,s),this.timestamp){if(s.signed.version<this.timestamp.signed.version)throw new Hi.BadVersionError(`New timestamp version ${s.signed.version} is less than current version ${this.timestamp.signed.version}`);if(s.signed.version===this.timestamp.signed.version)throw new Hi.EqualVersionError(`New timestamp version ${s.signed.version} is equal to current version ${this.timestamp.signed.version}`);let a=this.timestamp.signed.snapshotMeta,n=s.signed.snapshotMeta;if(n.version<a.version)throw new Hi.BadVersionError(`New snapshot version ${n.version} is less than current version ${a.version}`)}return this.trustedSet.timestamp=s,this.checkFinalTimestamp(),s}updateSnapshot(e,r=!1){if(!this.timestamp)throw new Hi.RuntimeError("Cannot update snapshot before timestamp");if(this.targets)throw new Hi.RuntimeError("Cannot update snapshot after targets");this.checkFinalTimestamp();let s=this.timestamp.signed.snapshotMeta;r||s.verify(e);let a=JSON.parse(e.toString("utf8")),n=Cs.Metadata.fromJSON(Cs.MetadataKind.Snapshot,a);if(n.signed.type!=Cs.MetadataKind.Snapshot)throw new Hi.RepositoryError(`Expected 'snapshot', got ${n.signed.type}`);return this.root.verifyDelegate(Cs.MetadataKind.Snapshot,n),this.snapshot&&Object.entries(this.snapshot.signed.meta).forEach(([c,f])=>{let p=n.signed.meta[c];if(!p)throw new Hi.RepositoryError(`Missing file ${c} in new snapshot`);if(p.version<f.version)throw new Hi.BadVersionError(`New version ${p.version} of ${c} is less than current version ${f.version}`)}),this.trustedSet.snapshot=n,this.checkFinalSnapsnot(),n}updateDelegatedTargets(e,r,s){if(!this.snapshot)throw new Hi.RuntimeError("Cannot update delegated targets before snapshot");this.checkFinalSnapsnot();let a=this.trustedSet[s];if(!a)throw new Hi.RuntimeError(`No trusted ${s} metadata`);let n=this.snapshot.signed.meta?.[`${r}.json`];if(!n)throw new Hi.RepositoryError(`Missing ${r}.json in snapshot`);n.verify(e);let c=JSON.parse(e.toString("utf8")),f=Cs.Metadata.fromJSON(Cs.MetadataKind.Targets,c);if(f.signed.type!=Cs.MetadataKind.Targets)throw new Hi.RepositoryError(`Expected 'targets', got ${f.signed.type}`);a.verifyDelegate(r,f);let p=f.signed.version;if(p!=n.version)throw new Hi.BadVersionError(`Version ${p} of ${r} does not match snapshot version ${n.version}`);if(f.signed.isExpired(this.referenceTime))throw new Hi.ExpiredMetadataError(`${r}.json is expired`);this.trustedSet[r]=f}loadTrustedRoot(e){let r=JSON.parse(e.toString("utf8")),s=Cs.Metadata.fromJSON(Cs.MetadataKind.Root,r);if(s.signed.type!=Cs.MetadataKind.Root)throw new Hi.RepositoryError(`Expected 'root', got ${s.signed.type}`);s.verifyDelegate(Cs.MetadataKind.Root,s),this.trustedSet.root=s}checkFinalTimestamp(){if(!this.timestamp)throw new ReferenceError("No trusted timestamp metadata");if(this.timestamp.signed.isExpired(this.referenceTime))throw new Hi.ExpiredMetadataError("Final timestamp.json is expired")}checkFinalSnapsnot(){if(!this.snapshot)throw new ReferenceError("No trusted snapshot metadata");if(!this.timestamp)throw new ReferenceError("No trusted timestamp metadata");if(this.snapshot.signed.isExpired(this.referenceTime))throw new Hi.ExpiredMetadataError("snapshot.json is expired");let e=this.timestamp.signed.snapshotMeta;if(this.snapshot.signed.version!==e.version)throw new Hi.BadVersionError("Snapshot version doesn't match timestamp")}};fL.TrustedMetadataStore=mJ});var rNe=L(yJ=>{"use strict";Object.defineProperty(yJ,"__esModule",{value:!0});yJ.join=w3t;var C3t=Ie("url");function w3t(t,e){return new C3t.URL(B3t(t)+v3t(e)).toString()}function B3t(t){return t.endsWith("/")?t:t+"/"}function v3t(t){return t.startsWith("/")?t.slice(1):t}});var nNe=L(su=>{"use strict";var S3t=su&&su.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),D3t=su&&su.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),CJ=su&&su.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&S3t(e,t,r);return D3t(e,t),e},b3t=su&&su.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(su,"__esModule",{value:!0});su.Updater=void 0;var QA=tL(),P3t=b3t(sJ()),d1=CJ(Ie("fs")),AL=CJ(Ie("path")),x3t=eNe(),uy=aL(),k3t=dJ(),Q3t=tNe(),Zb=CJ(rNe()),EJ=(0,P3t.default)("tuf:cache"),IJ=class{constructor(e){let{metadataDir:r,metadataBaseUrl:s,targetDir:a,targetBaseUrl:n,fetcher:c,config:f}=e;this.dir=r,this.metadataBaseUrl=s,this.targetDir=a,this.targetBaseUrl=n,this.forceCache=e.forceCache??!1;let p=this.loadLocalMetadata(QA.MetadataKind.Root);this.trustedSet=new Q3t.TrustedMetadataStore(p),this.config={...x3t.defaultConfig,...f},this.fetcher=c||new k3t.DefaultFetcher({timeout:this.config.fetchTimeout,retry:this.config.fetchRetries??this.config.fetchRetry})}async refresh(){if(this.forceCache)try{await this.loadTimestamp({checkRemote:!1})}catch{await this.loadRoot(),await this.loadTimestamp()}else await this.loadRoot(),await this.loadTimestamp();await this.loadSnapshot(),await this.loadTargets(QA.MetadataKind.Targets,QA.MetadataKind.Root)}async getTargetInfo(e){return this.trustedSet.targets||await this.refresh(),this.preorderDepthFirstWalk(e)}async downloadTarget(e,r,s){let a=r||this.generateTargetPath(e);if(!s){if(!this.targetBaseUrl)throw new uy.ValueError("Target base URL not set");s=this.targetBaseUrl}let n=e.path;if(this.trustedSet.root.signed.consistentSnapshot&&this.config.prefixTargetsWithHash){let p=Object.values(e.hashes),{dir:h,base:E}=AL.parse(n),C=`${p[0]}.${E}`;n=h?`${h}/${C}`:C}let f=Zb.join(s,n);return await this.fetcher.downloadFile(f,e.length,async p=>{await e.verify(d1.createReadStream(p)),EJ("WRITE %s",a),d1.copyFileSync(p,a)}),a}async findCachedTarget(e,r){r||(r=this.generateTargetPath(e));try{if(d1.existsSync(r))return await e.verify(d1.createReadStream(r)),r}catch{return}}loadLocalMetadata(e){let r=AL.join(this.dir,`${e}.json`);return EJ("READ %s",r),d1.readFileSync(r)}async loadRoot(){let r=this.trustedSet.root.signed.version+1,s=r+this.config.maxRootRotations;for(let a=r;a<s;a++){let n=Zb.join(this.metadataBaseUrl,`${a}.root.json`);try{let c=await this.fetcher.downloadBytes(n,this.config.rootMaxLength);this.trustedSet.updateRoot(c),this.persistMetadata(QA.MetadataKind.Root,c)}catch(c){if(c instanceof uy.DownloadHTTPError&&[403,404].includes(c.statusCode))break;throw c}}}async loadTimestamp({checkRemote:e}={checkRemote:!0}){try{let a=this.loadLocalMetadata(QA.MetadataKind.Timestamp);if(this.trustedSet.updateTimestamp(a),!e)return}catch{}let r=Zb.join(this.metadataBaseUrl,"timestamp.json"),s=await this.fetcher.downloadBytes(r,this.config.timestampMaxLength);try{this.trustedSet.updateTimestamp(s)}catch(a){if(a instanceof uy.EqualVersionError)return;throw a}this.persistMetadata(QA.MetadataKind.Timestamp,s)}async loadSnapshot(){try{let e=this.loadLocalMetadata(QA.MetadataKind.Snapshot);this.trustedSet.updateSnapshot(e,!0)}catch{if(!this.trustedSet.timestamp)throw new ReferenceError("No timestamp metadata");let r=this.trustedSet.timestamp.signed.snapshotMeta,s=r.length||this.config.snapshotMaxLength,a=this.trustedSet.root.signed.consistentSnapshot?r.version:void 0,n=Zb.join(this.metadataBaseUrl,a?`${a}.snapshot.json`:"snapshot.json");try{let c=await this.fetcher.downloadBytes(n,s);this.trustedSet.updateSnapshot(c),this.persistMetadata(QA.MetadataKind.Snapshot,c)}catch(c){throw new uy.RuntimeError(`Unable to load snapshot metadata error ${c}`)}}}async loadTargets(e,r){if(this.trustedSet.getRole(e))return this.trustedSet.getRole(e);try{let s=this.loadLocalMetadata(e);this.trustedSet.updateDelegatedTargets(s,e,r)}catch{if(!this.trustedSet.snapshot)throw new ReferenceError("No snapshot metadata");let a=this.trustedSet.snapshot.signed.meta[`${e}.json`],n=a.length||this.config.targetsMaxLength,c=this.trustedSet.root.signed.consistentSnapshot?a.version:void 0,f=encodeURIComponent(e),p=Zb.join(this.metadataBaseUrl,c?`${c}.${f}.json`:`${f}.json`);try{let h=await this.fetcher.downloadBytes(p,n);this.trustedSet.updateDelegatedTargets(h,e,r),this.persistMetadata(e,h)}catch(h){throw new uy.RuntimeError(`Unable to load targets error ${h}`)}}return this.trustedSet.getRole(e)}async preorderDepthFirstWalk(e){let r=[{roleName:QA.MetadataKind.Targets,parentRoleName:QA.MetadataKind.Root}],s=new Set;for(;s.size<=this.config.maxDelegations&&r.length>0;){let{roleName:a,parentRoleName:n}=r.pop();if(s.has(a))continue;let c=(await this.loadTargets(a,n))?.signed;if(!c)continue;let f=c.targets?.[e];if(f)return f;if(s.add(a),c.delegations){let p=[],h=c.delegations.rolesForTarget(e);for(let{role:E,terminating:C}of h)if(p.push({roleName:E,parentRoleName:a}),C){r.splice(0);break}p.reverse(),r.push(...p)}}}generateTargetPath(e){if(!this.targetDir)throw new uy.ValueError("Target directory not set");let r=encodeURIComponent(e.path);return AL.join(this.targetDir,r)}persistMetadata(e,r){let s=encodeURIComponent(e);try{let a=AL.join(this.dir,`${s}.json`);EJ("WRITE %s",a),d1.writeFileSync(a,r.toString("utf8"))}catch(a){throw new uy.PersistError(`Failed to persist metadata ${s} error: ${a}`)}}};su.Updater=IJ});var iNe=L(kg=>{"use strict";Object.defineProperty(kg,"__esModule",{value:!0});kg.Updater=kg.BaseFetcher=kg.TargetFile=void 0;var T3t=tL();Object.defineProperty(kg,"TargetFile",{enumerable:!0,get:function(){return T3t.TargetFile}});var R3t=dJ();Object.defineProperty(kg,"BaseFetcher",{enumerable:!0,get:function(){return R3t.BaseFetcher}});var F3t=nNe();Object.defineProperty(kg,"Updater",{enumerable:!0,get:function(){return F3t.Updater}})});var BJ=L(pL=>{"use strict";Object.defineProperty(pL,"__esModule",{value:!0});pL.TUFError=void 0;var wJ=class extends Error{constructor({code:e,message:r,cause:s}){super(r),this.code=e,this.cause=s,this.name=this.constructor.name}};pL.TUFError=wJ});var sNe=L(Xb=>{"use strict";var N3t=Xb&&Xb.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Xb,"__esModule",{value:!0});Xb.readTarget=L3t;var O3t=N3t(Ie("fs")),hL=BJ();async function L3t(t,e){let r=await M3t(t,e);return new Promise((s,a)=>{O3t.default.readFile(r,"utf-8",(n,c)=>{n?a(new hL.TUFError({code:"TUF_READ_TARGET_ERROR",message:`error reading target ${r}`,cause:n})):s(c)})})}async function M3t(t,e){let r;try{r=await t.getTargetInfo(e)}catch(a){throw new hL.TUFError({code:"TUF_REFRESH_METADATA_ERROR",message:"error refreshing TUF metadata",cause:a})}if(!r)throw new hL.TUFError({code:"TUF_FIND_TARGET_ERROR",message:`target ${e} not found`});let s=await t.findCachedTarget(r);if(!s)try{s=await t.downloadTarget(r)}catch(a){throw new hL.TUFError({code:"TUF_DOWNLOAD_TARGET_ERROR",message:`error downloading target ${s}`,cause:a})}return s}});var oNe=L((iwr,_3t)=>{_3t.exports={"https://tuf-repo-cdn.sigstore.dev":{"root.json":"ewogInNpZ25hdHVyZXMiOiBbCiAgewogICAia2V5aWQiOiAiNmYyNjAwODlkNTkyM2RhZjIwMTY2Y2E2NTdjNTQzYWY2MTgzNDZhYjk3MTg4NGE5OTk2MmIwMTk4OGJiZTBjMyIsCiAgICJzaWciOiAiMzA0NjAyMjEwMDhhYjFmNmYxN2Q0ZjllNmQ3ZGNmMWM4ODkxMmI2YjUzY2MxMDM4ODY0NGFlMWYwOWJjMzdhMDgyY2QwNjAwM2UwMjIxMDBlMTQ1ZWY0YzdiNzgyZDRlODEwN2I1MzQzN2U2NjlkMDQ3Njg5MmNlOTk5OTAzYWUzM2QxNDQ0ODM2Njk5NmU3IgogIH0sCiAgewogICAia2V5aWQiOiAiZTcxYTU0ZDU0MzgzNWJhODZhZGFkOTQ2MDM3OWM3NjQxZmI4NzI2ZDE2NGVhNzY2ODAxYTFjNTIyYWJhN2VhMiIsCiAgICJzaWciOiAiMzA0NTAyMjEwMGM3NjhiMmY4NmRhOTk1NjkwMTljMTYwYTA4MWRhNTRhZTM2YzM0YzBhMzEyMGQzY2I2OWI1M2I3ZDExMzc1OGUwMjIwNGY2NzE1MThmNjE3YjIwZDQ2NTM3ZmFlNmMzYjYzYmFlODkxM2Y0ZjE5NjIxNTYxMDVjYzRmMDE5YWMzNWM2YSIKICB9LAogIHsKICAgImtleWlkIjogIjIyZjRjYWVjNmQ4ZTZmOTU1NWFmNjZiM2Q0YzNjYjA2YTNiYjIzZmRjN2UzOWM5MTZjNjFmNDYyZTZmNTJiMDYiLAogICAic2lnIjogIjMwNDUwMjIxMDBiNDQzNGU2OTk1ZDM2OGQyM2U3NDc1OWFjZDBjYjkwMTNjODNhNWQzNTExZjBmOTk3ZWM1NGM0NTZhZTQzNTBhMDIyMDE1YjBlMjY1ZDE4MmQyYjYxZGM3NGUxNTVkOThiM2MzZmJlNTY0YmEwNTI4NmFhMTRjOGRmMDJjOWI3NTY1MTYiCiAgfSwKICB7CiAgICJrZXlpZCI6ICI2MTY0MzgzODEyNWI0NDBiNDBkYjY5NDJmNWNiNWEzMWMwZGMwNDM2ODMxNmViMmFhYTU4Yjk1OTA0YTU4MjIyIiwKICAgInNpZyI6ICIzMDQ1MDIyMTAwODJjNTg0MTFkOTg5ZWI5Zjg2MTQxMDg1N2Q0MjM4MTU5MGVjOTQyNGRiZGFhNTFlNzhlZDEzNTE1NDMxOTA0ZTAyMjAxMTgxODVkYTZhNmMyOTQ3MTMxYzE3Nzk3ZTJiYjc2MjBjZTI2ZTVmMzAxZDFjZWFjNWYyYTdlNThmOWRjZjJlIgogIH0sCiAgewogICAia2V5aWQiOiAiYTY4N2U1YmY0ZmFiODJiMGVlNThkNDZlMDVjOTUzNTE0NWEyYzlhZmI0NThmNDNkNDJiNDVjYTBmZGNlMmE3MCIsCiAgICJzaWciOiAiMzA0NjAyMjEwMGM3ODUxMzg1NGNhZTljMzJlYWE2Yjg4ZTE4OTEyZjQ4MDA2YzI3NTdhMjU4ZjkxNzMxMmNhYmE3NTk0OGViOWUwMjIxMDBkOWUxYjRjZTBhZGZlOWZkMmUyMTQ4ZDdmYTI3YTJmNDBiYTExMjJiZDY5ZGE3NjEyZDhkMTc3NmIwMTNjOTFkIgogIH0sCiAgewogICAia2V5aWQiOiAiZmRmYTgzYTA3YjVhODM1ODliODdkZWQ0MWY3N2YzOWQyMzJhZDkxZjdjY2U1Mjg2OGRhY2QwNmJhMDg5ODQ5ZiIsCiAgICJzaWciOiAiMzA0NTAyMjA1NjQ4M2EyZDVkOWVhOWNlYzZlMTFlYWRmYjMzYzQ4NGI2MTQyOThmYWNhMTVhY2YxYzQzMWIxMWVkN2Y3MzRjMDIyMTAwZDBjMWQ3MjZhZjkyYTg3ZTRlNjY0NTljYTVhZGYzOGEwNWI0NGUxZjk0MzE4NDIzZjk1NGJhZThiY2E1YmIyZSIKICB9LAogIHsKICAgImtleWlkIjogImUyZjU5YWNiOTQ4ODUxOTQwN2UxOGNiZmM5MzI5NTEwYmUwM2MwNGFjYTk5MjlkMmYwMzAxMzQzZmVjODU1MjMiLAogICAic2lnIjogIjMwNDYwMjIxMDBkMDA0ZGU4ODAyNGMzMmRjNTY1M2E5ZjQ4NDNjZmM1MjE1NDI3MDQ4YWQ5NjAwZDJjZjljOTY5ZTZlZGZmM2QyMDIyMTAwZDllYmI3OThmNWZjNjZhZjEwODk5ZGVjZTAxNGE4NjI4Y2NmM2M1NDAyY2Q0YTQyNzAyMDc0NzJmOGY2ZTcxMiIKICB9LAogIHsKICAgImtleWlkIjogIjNjMzQ0YWEwNjhmZDRjYzRlODdkYzUwYjYxMmMwMjQzMWZiYzc3MWU5NTAwMzk5MzY4M2EyYjBiZjI2MGNmMGUiLAogICAic2lnIjogIjMwNDYwMjIxMDBiN2IwOTk5NmM0NWNhMmQ0YjA1NjAzZTU2YmFlZmEyOTcxOGEwYjcxMTQ3Y2Y4YzZlNjYzNDliYWE2MTQ3N2RmMDIyMTAwYzRkYTgwYzcxN2I0ZmE3YmJhMGZkNWM3MmRhOGEwNDk5MzU4YjAxMzU4YjIzMDlmNDFkMTQ1NmVhMWU3ZTFkOSIKICB9LAogIHsKICAgImtleWlkIjogImVjODE2Njk3MzRlMDE3OTk2YzViODVmM2QwMmMzZGUxZGQ0NjM3YTE1MjAxOWZlMWFmMTI1ZDJmOTM2OGI5NWUiLAogICAic2lnIjogIjMwNDYwMjIxMDBiZTk3ODJjMzA3NDRlNDExYTgyZmE4NWI1MTM4ZDYwMWNlMTQ4YmMxOTI1OGFlYzY0ZTdlYzI0NDc4ZjM4ODEyMDIyMTAwY2FlZjYzZGNhZjFhNGI5YTUwMGQzYmQwZTNmMTY0ZWMxOGYxYjYzZDdhOTQ2MGQ5YWNhYjEwNjZkYjBmMDE2ZCIKICB9LAogIHsKICAgImtleWlkIjogIjFlMWQ2NWNlOThiMTBhZGRhZDQ3NjRmZWJmN2RkYTJkMDQzNmIzZDNhMzg5MzU3OWMwZGRkYWVhMjBlNTQ4NDkiLAogICAic2lnIjogIjMwNDUwMjIwNzQ2ZWMzZjg1MzRjZTU1NTMxZDBkMDFmZjY0OTY0ZWY0NDBkMWU3ZDJjNGMxNDI0MDliOGU5NzY5ZjFhZGE2ZjAyMjEwMGUzYjkyOWZjZDkzZWExOGZlYWEwODI1ODg3YTcyMTA0ODk4NzlhNjY3ODBjMDdhODNmNGJkNDZlMmYwOWFiM2IiCiAgfQogXSwKICJzaWduZWQiOiB7CiAgIl90eXBlIjogInJvb3QiLAogICJjb25zaXN0ZW50X3NuYXBzaG90IjogdHJ1ZSwKICAiZXhwaXJlcyI6ICIyMDI1LTAyLTE5VDA4OjA0OjMyWiIsCiAgImtleXMiOiB7CiAgICIyMmY0Y2FlYzZkOGU2Zjk1NTVhZjY2YjNkNGMzY2IwNmEzYmIyM2ZkYzdlMzljOTE2YzYxZjQ2MmU2ZjUyYjA2IjogewogICAgImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6IFsKICAgICAic2hhMjU2IiwKICAgICAic2hhNTEyIgogICAgXSwKICAgICJrZXl0eXBlIjogImVjZHNhIiwKICAgICJrZXl2YWwiOiB7CiAgICAgInB1YmxpYyI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFekJ6Vk9tSENQb2pNVkxTSTM2NFdpaVY4TlByRFxuNklnUnhWbGlza3ovdit5M0pFUjVtY1ZHY09ObGlEY1dNQzVKMmxmSG1qUE5QaGI0SDd4bThMemZTQT09XG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIKICAgIH0sCiAgICAic2NoZW1lIjogImVjZHNhLXNoYTItbmlzdHAyNTYiLAogICAgIngtdHVmLW9uLWNpLWtleW93bmVyIjogIkBzYW50aWFnb3RvcnJlcyIKICAgfSwKICAgIjYxNjQzODM4MTI1YjQ0MGI0MGRiNjk0MmY1Y2I1YTMxYzBkYzA0MzY4MzE2ZWIyYWFhNThiOTU5MDRhNTgyMjIiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVpbmlrU3NBUW1Za05lSDVlWXEvQ25JekxhYWNPXG54bFNhYXdRRE93cUt5L3RDcXhxNXh4UFNKYzIxSzRXSWhzOUd5T2tLZnp1ZVkzR0lMemNNSlo0Y1d3PT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2kta2V5b3duZXIiOiAiQGJvYmNhbGxhd2F5IgogICB9LAogICAiNmYyNjAwODlkNTkyM2RhZjIwMTY2Y2E2NTdjNTQzYWY2MTgzNDZhYjk3MTg4NGE5OTk2MmIwMTk4OGJiZTBjMyI6IHsKICAgICJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOiBbCiAgICAgInNoYTI1NiIsCiAgICAgInNoYTUxMiIKICAgIF0sCiAgICAia2V5dHlwZSI6ICJlY2RzYSIsCiAgICAia2V5dmFsIjogewogICAgICJwdWJsaWMiOiAiLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXk4WEtzbWhCWURJOEpjMEd3ekJ4ZUtheDBjbTVcblNUS0VVNjVIUEZ1blVuNDFzVDhwaTBGak00SWtIei9ZVW13bUxVTzBXdDdseGhqNkJrTElLNHFZQXc9PVxuLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tXG4iCiAgICB9LAogICAgInNjaGVtZSI6ICJlY2RzYS1zaGEyLW5pc3RwMjU2IiwKICAgICJ4LXR1Zi1vbi1jaS1rZXlvd25lciI6ICJAZGxvcmVuYyIKICAgfSwKICAgIjcyNDdmMGRiYWQ4NWIxNDdlMTg2M2JhZGU3NjEyNDNjYzc4NWRjYjdhYTQxMGU3MTA1ZGQzZDJiNjFhMzZkMmMiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVXUmlHcjUraiszSjVTc0grWnRyNW5FMkgyd083XG5CVituTzNzOTNnTGNhMThxVE96SFkxb1d5QUdEeWtNU3NHVFVCU3Q5RCtBbjBLZktzRDJtZlNNNDJRPT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2ktb25saW5lLXVyaSI6ICJnY3BrbXM6Ly9wcm9qZWN0cy9zaWdzdG9yZS1yb290LXNpZ25pbmcvbG9jYXRpb25zL2dsb2JhbC9rZXlSaW5ncy9yb290L2NyeXB0b0tleXMvdGltZXN0YW1wIgogICB9LAogICAiYTY4N2U1YmY0ZmFiODJiMGVlNThkNDZlMDVjOTUzNTE0NWEyYzlhZmI0NThmNDNkNDJiNDVjYTBmZGNlMmE3MCI6IHsKICAgICJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOiBbCiAgICAgInNoYTI1NiIsCiAgICAgInNoYTUxMiIKICAgIF0sCiAgICAia2V5dHlwZSI6ICJlY2RzYSIsCiAgICAia2V5dmFsIjogewogICAgICJwdWJsaWMiOiAiLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRTBnaHJoOTJMdzFZcjNpZEdWNVdxQ3RNREI4Q3hcbitEOGhkQzR3MlpMTklwbFZSb1ZHTHNrWWEzZ2hlTXlPamlKOGtQaTE1YVEyLy83UCtvajdVdkpQR3c9PVxuLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tXG4iCiAgICB9LAogICAgInNjaGVtZSI6ICJlY2RzYS1zaGEyLW5pc3RwMjU2IiwKICAgICJ4LXR1Zi1vbi1jaS1rZXlvd25lciI6ICJAam9zaHVhZ2wiCiAgIH0sCiAgICJlNzFhNTRkNTQzODM1YmE4NmFkYWQ5NDYwMzc5Yzc2NDFmYjg3MjZkMTY0ZWE3NjY4MDFhMWM1MjJhYmE3ZWEyIjogewogICAgImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6IFsKICAgICAic2hhMjU2IiwKICAgICAic2hhNTEyIgogICAgXSwKICAgICJrZXl0eXBlIjogImVjZHNhIiwKICAgICJrZXl2YWwiOiB7CiAgICAgInB1YmxpYyI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFRVhzejNTWlhGYjhqTVY0Mmo2cEpseWpialI4S1xuTjNCd29jZXhxNkxNSWI1cXNXS09RdkxOMTZOVWVmTGM0SHN3T291bVJzVlZhYWpTcFFTNmZvYmtSdz09XG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIKICAgIH0sCiAgICAic2NoZW1lIjogImVjZHNhLXNoYTItbmlzdHAyNTYiLAogICAgIngtdHVmLW9uLWNpLWtleW93bmVyIjogIkBtbm02NzgiCiAgIH0KICB9LAogICJyb2xlcyI6IHsKICAgInJvb3QiOiB7CiAgICAia2V5aWRzIjogWwogICAgICI2ZjI2MDA4OWQ1OTIzZGFmMjAxNjZjYTY1N2M1NDNhZjYxODM0NmFiOTcxODg0YTk5OTYyYjAxOTg4YmJlMGMzIiwKICAgICAiZTcxYTU0ZDU0MzgzNWJhODZhZGFkOTQ2MDM3OWM3NjQxZmI4NzI2ZDE2NGVhNzY2ODAxYTFjNTIyYWJhN2VhMiIsCiAgICAgIjIyZjRjYWVjNmQ4ZTZmOTU1NWFmNjZiM2Q0YzNjYjA2YTNiYjIzZmRjN2UzOWM5MTZjNjFmNDYyZTZmNTJiMDYiLAogICAgICI2MTY0MzgzODEyNWI0NDBiNDBkYjY5NDJmNWNiNWEzMWMwZGMwNDM2ODMxNmViMmFhYTU4Yjk1OTA0YTU4MjIyIiwKICAgICAiYTY4N2U1YmY0ZmFiODJiMGVlNThkNDZlMDVjOTUzNTE0NWEyYzlhZmI0NThmNDNkNDJiNDVjYTBmZGNlMmE3MCIKICAgIF0sCiAgICAidGhyZXNob2xkIjogMwogICB9LAogICAic25hcHNob3QiOiB7CiAgICAia2V5aWRzIjogWwogICAgICI3MjQ3ZjBkYmFkODViMTQ3ZTE4NjNiYWRlNzYxMjQzY2M3ODVkY2I3YWE0MTBlNzEwNWRkM2QyYjYxYTM2ZDJjIgogICAgXSwKICAgICJ0aHJlc2hvbGQiOiAxLAogICAgIngtdHVmLW9uLWNpLWV4cGlyeS1wZXJpb2QiOiAzNjUwLAogICAgIngtdHVmLW9uLWNpLXNpZ25pbmctcGVyaW9kIjogMzY1CiAgIH0sCiAgICJ0YXJnZXRzIjogewogICAgImtleWlkcyI6IFsKICAgICAiNmYyNjAwODlkNTkyM2RhZjIwMTY2Y2E2NTdjNTQzYWY2MTgzNDZhYjk3MTg4NGE5OTk2MmIwMTk4OGJiZTBjMyIsCiAgICAgImU3MWE1NGQ1NDM4MzViYTg2YWRhZDk0NjAzNzljNzY0MWZiODcyNmQxNjRlYTc2NjgwMWExYzUyMmFiYTdlYTIiLAogICAgICIyMmY0Y2FlYzZkOGU2Zjk1NTVhZjY2YjNkNGMzY2IwNmEzYmIyM2ZkYzdlMzljOTE2YzYxZjQ2MmU2ZjUyYjA2IiwKICAgICAiNjE2NDM4MzgxMjViNDQwYjQwZGI2OTQyZjVjYjVhMzFjMGRjMDQzNjgzMTZlYjJhYWE1OGI5NTkwNGE1ODIyMiIsCiAgICAgImE2ODdlNWJmNGZhYjgyYjBlZTU4ZDQ2ZTA1Yzk1MzUxNDVhMmM5YWZiNDU4ZjQzZDQyYjQ1Y2EwZmRjZTJhNzAiCiAgICBdLAogICAgInRocmVzaG9sZCI6IDMKICAgfSwKICAgInRpbWVzdGFtcCI6IHsKICAgICJrZXlpZHMiOiBbCiAgICAgIjcyNDdmMGRiYWQ4NWIxNDdlMTg2M2JhZGU3NjEyNDNjYzc4NWRjYjdhYTQxMGU3MTA1ZGQzZDJiNjFhMzZkMmMiCiAgICBdLAogICAgInRocmVzaG9sZCI6IDEsCiAgICAieC10dWYtb24tY2ktZXhwaXJ5LXBlcmlvZCI6IDcsCiAgICAieC10dWYtb24tY2ktc2lnbmluZy1wZXJpb2QiOiA0CiAgIH0KICB9LAogICJzcGVjX3ZlcnNpb24iOiAiMS4wIiwKICAidmVyc2lvbiI6IDEwLAogICJ4LXR1Zi1vbi1jaS1leHBpcnktcGVyaW9kIjogMTgyLAogICJ4LXR1Zi1vbi1jaS1zaWduaW5nLXBlcmlvZCI6IDMxCiB9Cn0=",targets:{"trusted_root.json":"ewogICJtZWRpYVR5cGUiOiAiYXBwbGljYXRpb24vdm5kLmRldi5zaWdzdG9yZS50cnVzdGVkcm9vdCtqc29uO3ZlcnNpb249MC4xIiwKICAidGxvZ3MiOiBbCiAgICB7CiAgICAgICJiYXNlVXJsIjogImh0dHBzOi8vcmVrb3Iuc2lnc3RvcmUuZGV2IiwKICAgICAgImhhc2hBbGdvcml0aG0iOiAiU0hBMl8yNTYiLAogICAgICAicHVibGljS2V5IjogewogICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUyRzJZKzJ0YWJkVFY1QmNHaUJJeDBhOWZBRndya0JibUxTR3RrczRMM3FYNnlZWTB6dWZCbmhDOFVyL2l5NTVHaFdQLzlBL2JZMkxoQzMwTTkrUll0dz09IiwKICAgICAgICAia2V5RGV0YWlscyI6ICJQS0lYX0VDRFNBX1AyNTZfU0hBXzI1NiIsCiAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgInN0YXJ0IjogIjIwMjEtMDEtMTJUMTE6NTM6MjcuMDAwWiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJsb2dJZCI6IHsKICAgICAgICAia2V5SWQiOiAid05JOWF0UUdseitWV2ZPNkxSeWdINFFVZlkvOFc0UkZ3aVQ1aTVXUmdCMD0iCiAgICAgIH0KICAgIH0KICBdLAogICJjZXJ0aWZpY2F0ZUF1dGhvcml0aWVzIjogWwogICAgewogICAgICAic3ViamVjdCI6IHsKICAgICAgICAib3JnYW5pemF0aW9uIjogInNpZ3N0b3JlLmRldiIsCiAgICAgICAgImNvbW1vbk5hbWUiOiAic2lnc3RvcmUiCiAgICAgIH0sCiAgICAgICJ1cmkiOiAiaHR0cHM6Ly9mdWxjaW8uc2lnc3RvcmUuZGV2IiwKICAgICAgImNlcnRDaGFpbiI6IHsKICAgICAgICAiY2VydGlmaWNhdGVzIjogWwogICAgICAgICAgewogICAgICAgICAgICAicmF3Qnl0ZXMiOiAiTUlJQitEQ0NBWDZnQXdJQkFnSVROVmtEWm9DaW9mUERzeTdkZm02Z2VMYnVoekFLQmdncWhrak9QUVFEQXpBcU1SVXdFd1lEVlFRS0V3eHphV2R6ZEc5eVpTNWtaWFl4RVRBUEJnTlZCQU1UQ0hOcFozTjBiM0psTUI0WERUSXhNRE13TnpBek1qQXlPVm9YRFRNeE1ESXlNekF6TWpBeU9Wb3dLakVWTUJNR0ExVUVDaE1NYzJsbmMzUnZjbVV1WkdWMk1SRXdEd1lEVlFRREV3aHphV2R6ZEc5eVpUQjJNQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQkxTeUE3SWk1aytwTk84WkVXWTB5bGVtV0Rvd09rTmEza0wrR1pFNVo1R1dlaEw5L0E5YlJOQTNSYnJzWjVpMEpjYXN0YVJMN1NwNWZwL2pENWR4cWMvVWRUVm5sdlMxNmFuKzJZZnN3ZS9RdUxvbFJVQ3JjT0UyKzJpQTUrdHpkNk5tTUdRd0RnWURWUjBQQVFIL0JBUURBZ0VHTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFFd0hRWURWUjBPQkJZRUZNakZIUUJCbWlRcE1sRWs2dzJ1U3UxS0J0UHNNQjhHQTFVZEl3UVlNQmFBRk1qRkhRQkJtaVFwTWxFazZ3MnVTdTFLQnRQc01Bb0dDQ3FHU000OUJBTURBMmdBTUdVQ01IOGxpV0pmTXVpNnZYWEJoakRnWTRNd3NsbU4vVEp4VmUvODNXckZvbXdtTmYwNTZ5MVg0OEY5YzRtM2Ezb3pYQUl4QUtqUmF5NS9hai9qc0tLR0lrbVFhdGpJOHV1cEhyLytDeEZ2YUpXbXBZcU5rTERHUlUrOW9yemg1aEkyUnJjdWFRPT0iCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICAidmFsaWRGb3IiOiB7CiAgICAgICAgInN0YXJ0IjogIjIwMjEtMDMtMDdUMDM6MjA6MjkuMDAwWiIsCiAgICAgICAgImVuZCI6ICIyMDIyLTEyLTMxVDIzOjU5OjU5Ljk5OVoiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJzdWJqZWN0IjogewogICAgICAgICJvcmdhbml6YXRpb24iOiAic2lnc3RvcmUuZGV2IiwKICAgICAgICAiY29tbW9uTmFtZSI6ICJzaWdzdG9yZSIKICAgICAgfSwKICAgICAgInVyaSI6ICJodHRwczovL2Z1bGNpby5zaWdzdG9yZS5kZXYiLAogICAgICAiY2VydENoYWluIjogewogICAgICAgICJjZXJ0aWZpY2F0ZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNSUlDR2pDQ0FhR2dBd0lCQWdJVUFMblZpVmZuVTBickphc21Sa0hybi9VbmZhUXdDZ1lJS29aSXpqMEVBd013S2pFVk1CTUdBMVVFQ2hNTWMybG5jM1J2Y21VdVpHVjJNUkV3RHdZRFZRUURFd2h6YVdkemRHOXlaVEFlRncweU1qQTBNVE15TURBMk1UVmFGdzB6TVRFd01EVXhNelUyTlRoYU1EY3hGVEFUQmdOVkJBb1RESE5wWjNOMGIzSmxMbVJsZGpFZU1Cd0dBMVVFQXhNVmMybG5jM1J2Y21VdGFXNTBaWEp0WldScFlYUmxNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRThSVlMveXNIK05PdnVEWnlQSVp0aWxnVUY5TmxhcllwQWQ5SFAxdkJCSDFVNUNWNzdMU1M3czBaaUg0bkU3SHY3cHRTNkx2dlIvU1RrNzk4TFZnTXpMbEo0SGVJZkYzdEhTYWV4TGNZcFNBU3Ixa1MwTi9SZ0JKei85aldDaVhubzNzd2VUQU9CZ05WSFE4QkFmOEVCQU1DQVFZd0V3WURWUjBsQkF3d0NnWUlLd1lCQlFVSEF3TXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVMzlQcHoxWWtFWmI1cU5qcEtGV2l4aTRZWkQ4d0h3WURWUjBqQkJnd0ZvQVVXTUFlWDVGRnBXYXBlc3lRb1pNaTBDckZ4Zm93Q2dZSUtvWkl6ajBFQXdNRFp3QXdaQUl3UENzUUs0RFlpWllEUElhRGk1SEZLbmZ4WHg2QVNTVm1FUmZzeW5ZQmlYMlg2U0pSblpVODQvOURaZG5GdnZ4bUFqQk90NlFwQmxjNEovMER4dmtUQ3FwY2x2emlMNkJDQ1BuamRsSUIzUHUzQnhzUG15Z1VZN0lpMnpiZENkbGlpb3c9IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgInJhd0J5dGVzIjogIk1JSUI5ekNDQVh5Z0F3SUJBZ0lVQUxaTkFQRmR4SFB3amVEbG9Ed3lZQ2hBTy80d0NnWUlLb1pJemowRUF3TXdLakVWTUJNR0ExVUVDaE1NYzJsbmMzUnZjbVV1WkdWMk1SRXdEd1lEVlFRREV3aHphV2R6ZEc5eVpUQWVGdzB5TVRFd01EY3hNelUyTlRsYUZ3MHpNVEV3TURVeE16VTJOVGhhTUNveEZUQVRCZ05WQkFvVERITnBaM04wYjNKbExtUmxkakVSTUE4R0ExVUVBeE1JYzJsbmMzUnZjbVV3ZGpBUUJnY3Foa2pPUFFJQkJnVXJnUVFBSWdOaUFBVDdYZUZUNHJiM1BRR3dTNElhanRMazMvT2xucGdhbmdhQmNsWXBzWUJyNWkrNHluQjA3Y2ViM0xQME9JT1pkeGV4WDY5YzVpVnV5SlJRK0h6MDV5aStVRjN1QldBbEhwaVM1c2gwK0gyR0hFN1NYcmsxRUM1bTFUcjE5TDlnZzkyall6QmhNQTRHQTFVZER3RUIvd1FFQXdJQkJqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUll3QjVma1VXbFpxbDZ6SkNoa3lMUUtzWEYrakFmQmdOVkhTTUVHREFXZ0JSWXdCNWZrVVdsWnFsNnpKQ2hreUxRS3NYRitqQUtCZ2dxaGtqT1BRUURBd05wQURCbUFqRUFqMW5IZVhacCsxM05XQk5hK0VEc0RQOEcxV1dnMXRDTVdQL1dIUHFwYVZvMGpoc3dlTkZaZ1NzMGVFN3dZSTRxQWpFQTJXQjlvdDk4c0lrb0YzdlpZZGQzL1Z0V0I1YjlUTk1lYTdJeC9zdEo1VGZjTExlQUJMRTRCTkpPc1E0dm5CSEoiCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICAidmFsaWRGb3IiOiB7CiAgICAgICAgInN0YXJ0IjogIjIwMjItMDQtMTNUMjA6MDY6MTUuMDAwWiIKICAgICAgfQogICAgfQogIF0sCiAgImN0bG9ncyI6IFsKICAgIHsKICAgICAgImJhc2VVcmwiOiAiaHR0cHM6Ly9jdGZlLnNpZ3N0b3JlLmRldi90ZXN0IiwKICAgICAgImhhc2hBbGdvcml0aG0iOiAiU0hBMl8yNTYiLAogICAgICAicHVibGljS2V5IjogewogICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUViZndSK1JKdWRYc2NnUkJScEtYMVhGRHkzUHl1ZER4ei9TZm5SaTFmVDhla3BmQmQyTzF1b3o3anIzWjhuS3p4QTY5RVVRK2VGQ0ZJM3pldWJQV1U3dz09IiwKICAgICAgICAia2V5RGV0YWlscyI6ICJQS0lYX0VDRFNBX1AyNTZfU0hBXzI1NiIsCiAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgInN0YXJ0IjogIjIwMjEtMDMtMTRUMDA6MDA6MDAuMDAwWiIsCiAgICAgICAgICAiZW5kIjogIjIwMjItMTAtMzFUMjM6NTk6NTkuOTk5WiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJsb2dJZCI6IHsKICAgICAgICAia2V5SWQiOiAiQ0dDUzhDaFMvMmhGMGRGcko0U2NSV2NZckJZOXd6alNiZWE4SWdZMmIzST0iCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJiYXNlVXJsIjogImh0dHBzOi8vY3RmZS5zaWdzdG9yZS5kZXYvMjAyMiIsCiAgICAgICJoYXNoQWxnb3JpdGhtIjogIlNIQTJfMjU2IiwKICAgICAgInB1YmxpY0tleSI6IHsKICAgICAgICAicmF3Qnl0ZXMiOiAiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFaVBTbEZpMENtRlRmRWpDVXFGOUh1Q0VjWVhOS0FhWWFsSUptQlo4eXllelBqVHFoeHJLQnBNbmFvY1Z0TEpCSTFlTTN1WG5RelFHQUpkSjRnczlGeXc9PSIsCiAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICJ2YWxpZEZvciI6IHsKICAgICAgICAgICJzdGFydCI6ICIyMDIyLTEwLTIwVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgfQogICAgICB9LAogICAgICAibG9nSWQiOiB7CiAgICAgICAgImtleUlkIjogIjNUMHdhc2JIRVRKakdSNGNtV2MzQXFKS1hyamVQSzMvaDRweWdDOHA3bzQ9IgogICAgICB9CiAgICB9CiAgXSwKICAidGltZXN0YW1wQXV0aG9yaXRpZXMiOiBbCiAgICB7CiAgICAgICJzdWJqZWN0IjogewogICAgICAgICJvcmdhbml6YXRpb24iOiAiR2l0SHViLCBJbmMuIiwKICAgICAgICAiY29tbW9uTmFtZSI6ICJJbnRlcm5hbCBTZXJ2aWNlcyBSb290IgogICAgICB9LAogICAgICAiY2VydENoYWluIjogewogICAgICAgICJjZXJ0aWZpY2F0ZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNSUlCM0RDQ0FXS2dBd0lCQWdJVWNoa05zSDM2WGEwNGIxTHFJYytxcjlEVmVjTXdDZ1lJS29aSXpqMEVBd013TWpFVk1CTUdBMVVFQ2hNTVIybDBTSFZpTENCSmJtTXVNUmt3RndZRFZRUURFeEJVVTBFZ2FXNTBaWEp0WldScFlYUmxNQjRYRFRJek1EUXhOREF3TURBd01Gb1hEVEkwTURReE16QXdNREF3TUZvd01qRVZNQk1HQTFVRUNoTU1SMmwwU0hWaUxDQkpibU11TVJrd0Z3WURWUVFERXhCVVUwRWdWR2x0WlhOMFlXMXdhVzVuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFVUQ1Wk5iU3FZTWQ2cjhxcE9PRVg5aWJHblpUOUdzdVhPaHIvZjhVOUZKdWdCR0V4S1lwNDBPVUxTMGVyalpXN3hWOXhWNTJObkpmNU9lRHE0ZTVaS3FOV01GUXdEZ1lEVlIwUEFRSC9CQVFEQWdlQU1CTUdBMVVkSlFRTU1Bb0dDQ3NHQVFVRkJ3TUlNQXdHQTFVZEV3RUIvd1FDTUFBd0h3WURWUjBqQkJnd0ZvQVVhVzFSdWRPZ1Z0MGxlcVkwV0tZYnVQcjQ3d0F3Q2dZSUtvWkl6ajBFQXdNRGFBQXdaUUl3YlVIOUh2RDRlakNaSk9XUW5xQWxrcVVSbGx2dTlNOCtWcUxiaVJLK3pTZlpDWndzaWxqUm44TVFRUlNrWEVFNUFqRUFnK1Z4cXRvamZWZnU4RGh6emhDeDlHS0VUYkpIYjE5aVY3Mm1NS1ViREFGbXpaNmJROGI1NFpiOHRpZHk1YVdlIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgInJhd0J5dGVzIjogIk1JSUNFRENDQVpXZ0F3SUJBZ0lVWDhaTzVRWFA3dk40ZE1RNWU5c1UzbnViOE9nd0NnWUlLb1pJemowRUF3TXdPREVWTUJNR0ExVUVDaE1NUjJsMFNIVmlMQ0JKYm1NdU1SOHdIUVlEVlFRREV4WkpiblJsY201aGJDQlRaWEoyYVdObGN5QlNiMjkwTUI0WERUSXpNRFF4TkRBd01EQXdNRm9YRFRJNE1EUXhNakF3TURBd01Gb3dNakVWTUJNR0ExVUVDaE1NUjJsMFNIVmlMQ0JKYm1NdU1Sa3dGd1lEVlFRREV4QlVVMEVnYVc1MFpYSnRaV1JwWVhSbE1IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSURZZ0FFdk1MWS9kVFZidklKWUFOQXVzekV3Sm5RRTFsbGZ0eW55TUtJTWhoNDhIbXFiVnI1eWd5YnpzTFJMVktiQldPZFoyMWFlSnorZ1ppeXRaZXRxY3lGOVdsRVI1TkVNZjZKVjdaTm9qUXB4SHE0UkhHb0dTY2VRdi9xdlRpWnhFREtvMll3WkRBT0JnTlZIUThCQWY4RUJBTUNBUVl3RWdZRFZSMFRBUUgvQkFnd0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVWFXMVJ1ZE9nVnQwbGVxWTBXS1lidVByNDd3QXdId1lEVlIwakJCZ3dGb0FVOU5ZWWxvYm5BRzRjMC9xanh5SC9scS93eitRd0NnWUlLb1pJemowRUF3TURhUUF3WmdJeEFLMUIxODV5Z0NySVlGbElzM0dqc3dqbndTTUc2TFk4d29MVmRha0tEWnhWYThmOGNxTXMxRGhjeEowKzA5dzk1UUl4QU8rdEJ6Wms3dmpVSjlpSmdENFI2WldUeFFXS3FObTc0ak85OW8rbzlzdjRGSS9TWlRaVEZ5TW4wSUpFSGRObXlBPT0iCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAicmF3Qnl0ZXMiOiAiTUlJQjlEQ0NBWHFnQXdJQkFnSVVhL0pBa2RVaks0SlV3c3F0YWlSSkdXaHFMU293Q2dZSUtvWkl6ajBFQXdNd09ERVZNQk1HQTFVRUNoTU1SMmwwU0hWaUxDQkpibU11TVI4d0hRWURWUVFERXhaSmJuUmxjbTVoYkNCVFpYSjJhV05sY3lCU2IyOTBNQjRYRFRJek1EUXhOREF3TURBd01Gb1hEVE16TURReE1UQXdNREF3TUZvd09ERVZNQk1HQTFVRUNoTU1SMmwwU0hWaUxDQkpibU11TVI4d0hRWURWUVFERXhaSmJuUmxjbTVoYkNCVFpYSjJhV05sY3lCU2IyOTBNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRWY5akZBWHh6NGt4NjhBSFJNT2tGQmhmbERjTVR2emFYejR4L0ZDY1hqSi8xcUVLb24vcVBJR25hVVJza0R0eU5iTkRPcGVKVERERnF0NDhpTVBybnpweDZJWndxZW1mVUpONHhCRVpmemErcFl0L2l5b2QrOXRacjIwUlJXU3YvbzBVd1F6QU9CZ05WSFE4QkFmOEVCQU1DQVFZd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFqQWRCZ05WSFE0RUZnUVU5TllZbG9ibkFHNGMwL3FqeHlIL2xxL3d6K1F3Q2dZSUtvWkl6ajBFQXdNRGFBQXdaUUl4QUxaTFo4QmdSWHpLeExNTU45VklsTytlNGhyQm5OQmdGN3R6N0hucm93djJOZXRaRXJJQUNLRnltQmx2V0R2dE1BSXdaTytraTZzc1ExYnNabzk4TzhtRUFmMk5aN2lpQ2dERFUwVndqZWNvNnp5ZWgwekJUczkvN2dWNkFITlE1M3hEIgogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfSwKICAgICAgInZhbGlkRm9yIjogewogICAgICAgICJzdGFydCI6ICIyMDIzLTA0LTE0VDAwOjAwOjAwLjAwMFoiCiAgICAgIH0KICAgIH0KICBdCn0K","registry.npmjs.org%2Fkeys.json":"ewogICAgImtleXMiOiBbCiAgICAgICAgewogICAgICAgICAgICAia2V5SWQiOiAiU0hBMjU2OmpsM2J3c3d1ODBQampva0NnaDBvMnc1YzJVNExoUUFFNTdnajljejFrekEiLAogICAgICAgICAgICAia2V5VXNhZ2UiOiAibnBtOnNpZ25hdHVyZXMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRTFPbGIzek1BRkZ4WEtIaUlrUU81Y0ozWWhsNWk2VVBwK0lodXRlQkpidUhjQTVVb2dLbzBFV3RsV3dXNktTYUtvVE5FWUw3SmxDUWlWbmtoQmt0VWdnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIxOTk5LTAxLTAxVDAwOjAwOjAwLjAwMFoiLAogICAgICAgICAgICAgICAgICAgICJlbmQiOiAiMjAyNS0wMS0yOVQwMDowMDowMC4wMDBaIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJrZXlJZCI6ICJTSEEyNTY6amwzYndzd3U4MFBqam9rQ2doMG8ydzVjMlU0TGhRQUU1N2dqOWN6MWt6QSIsCiAgICAgICAgICAgICJrZXlVc2FnZSI6ICJucG06YXR0ZXN0YXRpb25zIiwKICAgICAgICAgICAgInB1YmxpY0tleSI6IHsKICAgICAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUxT2xiM3pNQUZGeFhLSGlJa1FPNWNKM1lobDVpNlVQcCtJaHV0ZUJKYnVIY0E1VW9nS28wRVd0bFd3VzZLU2FLb1RORVlMN0psQ1FpVm5raEJrdFVnZz09IiwKICAgICAgICAgICAgICAgICJrZXlEZXRhaWxzIjogIlBLSVhfRUNEU0FfUDI1Nl9TSEFfMjU2IiwKICAgICAgICAgICAgICAgICJ2YWxpZEZvciI6IHsKICAgICAgICAgICAgICAgICAgICAic3RhcnQiOiAiMjAyMi0xMi0wMVQwMDowMDowMC4wMDBaIiwKICAgICAgICAgICAgICAgICAgICAiZW5kIjogIjIwMjUtMDEtMjlUMDA6MDA6MDAuMDAwWiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAia2V5SWQiOiAiU0hBMjU2OkRoUTh3UjVBUEJ2RkhMRi8rVGMrQVl2UE9kVHBjSURxT2h4c0JIUndDN1UiLAogICAgICAgICAgICAia2V5VXNhZ2UiOiAibnBtOnNpZ25hdHVyZXMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVk2WWE3VysrN2FVUHp2TVRyZXpINlljeDNjK0hPS1lDY05HeWJKWlNDSnEvZmQ3UWE4dXVBS3RkSWtVUXRRaUVLRVJoQW1FNWxNTUpoUDhPa0RPYTJnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIyMDI1LTAxLTEzVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgImtleUlkIjogIlNIQTI1NjpEaFE4d1I1QVBCdkZITEYvK1RjK0FZdlBPZFRwY0lEcU9oeHNCSFJ3QzdVIiwKICAgICAgICAgICAgImtleVVzYWdlIjogIm5wbTphdHRlc3RhdGlvbnMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVk2WWE3VysrN2FVUHp2TVRyZXpINlljeDNjK0hPS1lDY05HeWJKWlNDSnEvZmQ3UWE4dXVBS3RkSWtVUXRRaUVLRVJoQW1FNWxNTUpoUDhPa0RPYTJnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIyMDI1LTAxLTEzVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICBdCn0K"}}}});var lNe=L(m1=>{"use strict";var aNe=m1&&m1.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(m1,"__esModule",{value:!0});m1.TUFClient=void 0;var Qg=aNe(Ie("fs")),$b=aNe(Ie("path")),U3t=iNe(),H3t=gL(),j3t=sNe(),SJ="targets",vJ=class{constructor(e){let r=new URL(e.mirrorURL),s=encodeURIComponent(r.host+r.pathname.replace(/\/$/,"")),a=$b.default.join(e.cachePath,s);q3t(a),G3t({cachePath:a,mirrorURL:e.mirrorURL,tufRootPath:e.rootPath,forceInit:e.forceInit}),this.updater=W3t({mirrorURL:e.mirrorURL,cachePath:a,forceCache:e.forceCache,retry:e.retry,timeout:e.timeout})}async refresh(){return this.updater.refresh()}getTarget(e){return(0,j3t.readTarget)(this.updater,e)}};m1.TUFClient=vJ;function q3t(t){let e=$b.default.join(t,SJ);Qg.default.existsSync(t)||Qg.default.mkdirSync(t,{recursive:!0}),Qg.default.existsSync(e)||Qg.default.mkdirSync(e)}function G3t({cachePath:t,mirrorURL:e,tufRootPath:r,forceInit:s}){let a=$b.default.join(t,"root.json");if(!Qg.default.existsSync(a)||s)if(r)Qg.default.copyFileSync(r,a);else{let c=oNe()[e];if(!c)throw new H3t.TUFError({code:"TUF_INIT_CACHE_ERROR",message:`No root.json found for mirror: ${e}`});Qg.default.writeFileSync(a,Buffer.from(c["root.json"],"base64")),Object.entries(c.targets).forEach(([f,p])=>{Qg.default.writeFileSync($b.default.join(t,SJ,f),Buffer.from(p,"base64"))})}}function W3t(t){let e={fetchTimeout:t.timeout,fetchRetry:t.retry};return new U3t.Updater({metadataBaseUrl:t.mirrorURL,targetBaseUrl:`${t.mirrorURL}/targets`,metadataDir:t.cachePath,targetDir:$b.default.join(t.cachePath,SJ),forceCache:t.forceCache,config:e})}});var gL=L(mh=>{"use strict";Object.defineProperty(mh,"__esModule",{value:!0});mh.TUFError=mh.DEFAULT_MIRROR_URL=void 0;mh.getTrustedRoot=$3t;mh.initTUF=e8t;var Y3t=bb(),V3t=HRe(),K3t=lNe();mh.DEFAULT_MIRROR_URL="https://tuf-repo-cdn.sigstore.dev";var J3t="sigstore-js",z3t={retries:2},Z3t=5e3,X3t="trusted_root.json";async function $3t(t={}){let r=await cNe(t).getTarget(X3t);return Y3t.TrustedRoot.fromJSON(JSON.parse(r))}async function e8t(t={}){let e=cNe(t);return e.refresh().then(()=>e)}function cNe(t){return new K3t.TUFClient({cachePath:t.cachePath||(0,V3t.appDataPath)(J3t),rootPath:t.rootPath,mirrorURL:t.mirrorURL||mh.DEFAULT_MIRROR_URL,retry:t.retry??z3t,timeout:t.timeout??Z3t,forceCache:t.forceCache??!1,forceInit:t.forceInit??t.force??!1})}var t8t=BJ();Object.defineProperty(mh,"TUFError",{enumerable:!0,get:function(){return t8t.TUFError}})});var uNe=L(dL=>{"use strict";Object.defineProperty(dL,"__esModule",{value:!0});dL.DSSESignatureContent=void 0;var eP=wl(),DJ=class{constructor(e){this.env=e}compareDigest(e){return eP.crypto.bufferEqual(e,eP.crypto.digest("sha256",this.env.payload))}compareSignature(e){return eP.crypto.bufferEqual(e,this.signature)}verifySignature(e){return eP.crypto.verify(this.preAuthEncoding,e,this.signature)}get signature(){return this.env.signatures.length>0?this.env.signatures[0].sig:Buffer.from("")}get preAuthEncoding(){return eP.dsse.preAuthEncoding(this.env.payloadType,this.env.payload)}};dL.DSSESignatureContent=DJ});var fNe=L(mL=>{"use strict";Object.defineProperty(mL,"__esModule",{value:!0});mL.MessageSignatureContent=void 0;var bJ=wl(),PJ=class{constructor(e,r){this.signature=e.signature,this.messageDigest=e.messageDigest.digest,this.artifact=r}compareSignature(e){return bJ.crypto.bufferEqual(e,this.signature)}compareDigest(e){return bJ.crypto.bufferEqual(e,this.messageDigest)}verifySignature(e){return bJ.crypto.verify(this.artifact,e,this.signature)}};mL.MessageSignatureContent=PJ});var pNe=L(yL=>{"use strict";Object.defineProperty(yL,"__esModule",{value:!0});yL.toSignedEntity=i8t;yL.signatureContent=ANe;var xJ=wl(),r8t=uNe(),n8t=fNe();function i8t(t,e){let{tlogEntries:r,timestampVerificationData:s}=t.verificationMaterial,a=[];for(let n of r)a.push({$case:"transparency-log",tlogEntry:n});for(let n of s?.rfc3161Timestamps??[])a.push({$case:"timestamp-authority",timestamp:xJ.RFC3161Timestamp.parse(n.signedTimestamp)});return{signature:ANe(t,e),key:s8t(t),tlogEntries:r,timestamps:a}}function ANe(t,e){switch(t.content.$case){case"dsseEnvelope":return new r8t.DSSESignatureContent(t.content.dsseEnvelope);case"messageSignature":return new n8t.MessageSignatureContent(t.content.messageSignature,e)}}function s8t(t){switch(t.verificationMaterial.content.$case){case"publicKey":return{$case:"public-key",hint:t.verificationMaterial.content.publicKey.hint};case"x509CertificateChain":return{$case:"certificate",certificate:xJ.X509Certificate.parse(t.verificationMaterial.content.x509CertificateChain.certificates[0].rawBytes)};case"certificate":return{$case:"certificate",certificate:xJ.X509Certificate.parse(t.verificationMaterial.content.certificate.rawBytes)}}}});var Co=L(y1=>{"use strict";Object.defineProperty(y1,"__esModule",{value:!0});y1.PolicyError=y1.VerificationError=void 0;var EL=class extends Error{constructor({code:e,message:r,cause:s}){super(r),this.code=e,this.cause=s,this.name=this.constructor.name}},kJ=class extends EL{};y1.VerificationError=kJ;var QJ=class extends EL{};y1.PolicyError=QJ});var hNe=L(IL=>{"use strict";Object.defineProperty(IL,"__esModule",{value:!0});IL.filterCertAuthorities=o8t;IL.filterTLogAuthorities=a8t;function o8t(t,e){return t.filter(r=>r.validFor.start<=e.start&&r.validFor.end>=e.end)}function a8t(t,e){return t.filter(r=>e.logID&&!r.logID.equals(e.logID)?!1:r.validFor.start<=e.targetDate&&e.targetDate<=r.validFor.end)}});var Ay=L(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.filterTLogAuthorities=fy.filterCertAuthorities=void 0;fy.toTrustMaterial=c8t;var TJ=wl(),tP=bb(),l8t=Co(),RJ=new Date(0),FJ=new Date(864e13),mNe=hNe();Object.defineProperty(fy,"filterCertAuthorities",{enumerable:!0,get:function(){return mNe.filterCertAuthorities}});Object.defineProperty(fy,"filterTLogAuthorities",{enumerable:!0,get:function(){return mNe.filterTLogAuthorities}});function c8t(t,e){let r=typeof e=="function"?e:u8t(e);return{certificateAuthorities:t.certificateAuthorities.map(dNe),timestampAuthorities:t.timestampAuthorities.map(dNe),tlogs:t.tlogs.map(gNe),ctlogs:t.ctlogs.map(gNe),publicKey:r}}function gNe(t){let e=t.publicKey.keyDetails,r=e===tP.PublicKeyDetails.PKCS1_RSA_PKCS1V5||e===tP.PublicKeyDetails.PKIX_RSA_PKCS1V5||e===tP.PublicKeyDetails.PKIX_RSA_PKCS1V15_2048_SHA256||e===tP.PublicKeyDetails.PKIX_RSA_PKCS1V15_3072_SHA256||e===tP.PublicKeyDetails.PKIX_RSA_PKCS1V15_4096_SHA256?"pkcs1":"spki";return{logID:t.logId.keyId,publicKey:TJ.crypto.createPublicKey(t.publicKey.rawBytes,r),validFor:{start:t.publicKey.validFor?.start||RJ,end:t.publicKey.validFor?.end||FJ}}}function dNe(t){return{certChain:t.certChain.certificates.map(e=>TJ.X509Certificate.parse(e.rawBytes)),validFor:{start:t.validFor?.start||RJ,end:t.validFor?.end||FJ}}}function u8t(t){return e=>{let r=(t||{})[e];if(!r)throw new l8t.VerificationError({code:"PUBLIC_KEY_ERROR",message:`key not found: ${e}`});return{publicKey:TJ.crypto.createPublicKey(r.rawBytes),validFor:s=>(r.validFor?.start||RJ)<=s&&(r.validFor?.end||FJ)>=s}}}});var NJ=L(rP=>{"use strict";Object.defineProperty(rP,"__esModule",{value:!0});rP.CertificateChainVerifier=void 0;rP.verifyCertificateChain=A8t;var py=Co(),f8t=Ay();function A8t(t,e){let r=(0,f8t.filterCertAuthorities)(e,{start:t.notBefore,end:t.notAfter}),s;for(let a of r)try{return new CL({trustedCerts:a.certChain,untrustedCert:t}).verify()}catch(n){s=n}throw new py.VerificationError({code:"CERTIFICATE_ERROR",message:"Failed to verify certificate chain",cause:s})}var CL=class{constructor(e){this.untrustedCert=e.untrustedCert,this.trustedCerts=e.trustedCerts,this.localCerts=p8t([...e.trustedCerts,e.untrustedCert])}verify(){let e=this.sort();return this.checkPath(e),e}sort(){let e=this.untrustedCert,r=this.buildPaths(e);if(r=r.filter(a=>a.some(n=>this.trustedCerts.includes(n))),r.length===0)throw new py.VerificationError({code:"CERTIFICATE_ERROR",message:"no trusted certificate path found"});let s=r.reduce((a,n)=>a.length<n.length?a:n);return[e,...s].slice(0,-1)}buildPaths(e){let r=[],s=this.findIssuer(e);if(s.length===0)throw new py.VerificationError({code:"CERTIFICATE_ERROR",message:"no valid certificate path found"});for(let a=0;a<s.length;a++){let n=s[a];if(n.equals(e)){r.push([e]);continue}let c=this.buildPaths(n);for(let f=0;f<c.length;f++)r.push([n,...c[f]])}return r}findIssuer(e){let r=[],s;return e.subject.equals(e.issuer)&&e.verify()?[e]:(e.extAuthorityKeyID&&(s=e.extAuthorityKeyID.keyIdentifier),this.localCerts.forEach(a=>{if(s&&a.extSubjectKeyID){a.extSubjectKeyID.keyIdentifier.equals(s)&&r.push(a);return}a.subject.equals(e.issuer)&&r.push(a)}),r=r.filter(a=>{try{return e.verify(a)}catch{return!1}}),r)}checkPath(e){if(e.length<1)throw new py.VerificationError({code:"CERTIFICATE_ERROR",message:"certificate chain must contain at least one certificate"});if(!e.slice(1).every(s=>s.isCA))throw new py.VerificationError({code:"CERTIFICATE_ERROR",message:"intermediate certificate is not a CA"});for(let s=e.length-2;s>=0;s--)if(!e[s].issuer.equals(e[s+1].subject))throw new py.VerificationError({code:"CERTIFICATE_ERROR",message:"incorrect certificate name chaining"});for(let s=0;s<e.length;s++){let a=e[s];if(a.extBasicConstraints?.isCA){let n=a.extBasicConstraints.pathLenConstraint;if(n!==void 0&&n<s-1)throw new py.VerificationError({code:"CERTIFICATE_ERROR",message:"path length constraint exceeded"})}}}};rP.CertificateChainVerifier=CL;function p8t(t){for(let e=0;e<t.length;e++)for(let r=e+1;r<t.length;r++)t[e].equals(t[r])&&(t.splice(r,1),r--);return t}});var yNe=L(OJ=>{"use strict";Object.defineProperty(OJ,"__esModule",{value:!0});OJ.verifySCTs=d8t;var wL=wl(),h8t=Co(),g8t=Ay();function d8t(t,e,r){let s,a=t.clone();for(let p=0;p<a.extensions.length;p++){let h=a.extensions[p];if(h.subs[0].toOID()===wL.EXTENSION_OID_SCT){s=new wL.X509SCTExtension(h),a.extensions.splice(p,1);break}}if(!s)return[];if(s.signedCertificateTimestamps.length===0)return[];let n=new wL.ByteStream,c=wL.crypto.digest("sha256",e.publicKey);n.appendView(c);let f=a.tbsCertificate.toDER();return n.appendUint24(f.length),n.appendView(f),s.signedCertificateTimestamps.map(p=>{if(!(0,g8t.filterTLogAuthorities)(r,{logID:p.logID,targetDate:p.datetime}).some(C=>p.verify(n.buffer,C.publicKey)))throw new h8t.VerificationError({code:"CERTIFICATE_ERROR",message:"SCT verification failed"});return p.logID})}});var INe=L(BL=>{"use strict";Object.defineProperty(BL,"__esModule",{value:!0});BL.verifyPublicKey=w8t;BL.verifyCertificate=B8t;var m8t=wl(),ENe=Co(),y8t=NJ(),E8t=yNe(),I8t="1.3.6.1.4.1.57264.1.1",C8t="1.3.6.1.4.1.57264.1.8";function w8t(t,e,r){let s=r.publicKey(t);return e.forEach(a=>{if(!s.validFor(a))throw new ENe.VerificationError({code:"PUBLIC_KEY_ERROR",message:`Public key is not valid for timestamp: ${a.toISOString()}`})}),{key:s.publicKey}}function B8t(t,e,r){let s=(0,y8t.verifyCertificateChain)(t,r.certificateAuthorities);if(!e.every(n=>s.every(c=>c.validForDate(n))))throw new ENe.VerificationError({code:"CERTIFICATE_ERROR",message:"certificate is not valid or expired at the specified date"});return{scts:(0,E8t.verifySCTs)(s[0],s[1],r.ctlogs),signer:v8t(s[0])}}function v8t(t){let e,r=t.extension(C8t);r?e=r.valueObj.subs?.[0]?.value.toString("ascii"):e=t.extension(I8t)?.value.toString("ascii");let s={extensions:{issuer:e},subjectAlternativeName:t.subjectAltName};return{key:m8t.crypto.createPublicKey(t.publicKey),identity:s}}});var wNe=L(vL=>{"use strict";Object.defineProperty(vL,"__esModule",{value:!0});vL.verifySubjectAlternativeName=S8t;vL.verifyExtensions=D8t;var CNe=Co();function S8t(t,e){if(e===void 0||!e.match(t))throw new CNe.PolicyError({code:"UNTRUSTED_SIGNER_ERROR",message:`certificate identity error - expected ${t}, got ${e}`})}function D8t(t,e={}){let r;for(r in t)if(e[r]!==t[r])throw new CNe.PolicyError({code:"UNTRUSTED_SIGNER_ERROR",message:`invalid certificate extension - expected ${r}=${t[r]}, got ${r}=${e[r]}`})}});var BNe=L(HJ=>{"use strict";Object.defineProperty(HJ,"__esModule",{value:!0});HJ.verifyCheckpoint=x8t;var MJ=wl(),E1=Co(),b8t=Ay(),LJ=` + +`,P8t=/\u2014 (\S+) (\S+)\n/g;function x8t(t,e){let r=(0,b8t.filterTLogAuthorities)(e,{targetDate:new Date(Number(t.integratedTime)*1e3)}),s=t.inclusionProof,a=_J.fromString(s.checkpoint.envelope),n=UJ.fromString(a.note);if(!k8t(a,r))throw new E1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid checkpoint signature"});if(!MJ.crypto.bufferEqual(n.logHash,s.rootHash))throw new E1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"root hash mismatch"})}function k8t(t,e){let r=Buffer.from(t.note,"utf-8");return t.signatures.every(s=>{let a=e.find(n=>MJ.crypto.bufferEqual(n.logID.subarray(0,4),s.keyHint));return a?MJ.crypto.verify(r,a.publicKey,s.signature):!1})}var _J=class t{constructor(e,r){this.note=e,this.signatures=r}static fromString(e){if(!e.includes(LJ))throw new E1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"missing checkpoint separator"});let r=e.indexOf(LJ),s=e.slice(0,r+1),n=e.slice(r+LJ.length).matchAll(P8t),c=Array.from(n,f=>{let[,p,h]=f,E=Buffer.from(h,"base64");if(E.length<5)throw new E1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"malformed checkpoint signature"});return{name:p,keyHint:E.subarray(0,4),signature:E.subarray(4)}});if(c.length===0)throw new E1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"no signatures found in checkpoint"});return new t(s,c)}},UJ=class t{constructor(e,r,s,a){this.origin=e,this.logSize=r,this.logHash=s,this.rest=a}static fromString(e){let r=e.trimEnd().split(` +`);if(r.length<3)throw new E1.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"too few lines in checkpoint header"});let s=r[0],a=BigInt(r[1]),n=Buffer.from(r[2],"base64"),c=r.slice(3);return new t(s,a,n,c)}}});var vNe=L(WJ=>{"use strict";Object.defineProperty(WJ,"__esModule",{value:!0});WJ.verifyMerkleInclusion=R8t;var GJ=wl(),jJ=Co(),Q8t=Buffer.from([0]),T8t=Buffer.from([1]);function R8t(t){let e=t.inclusionProof,r=BigInt(e.logIndex),s=BigInt(e.treeSize);if(r<0n||r>=s)throw new jJ.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:`invalid index: ${r}`});let{inner:a,border:n}=F8t(r,s);if(e.hashes.length!==a+n)throw new jJ.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid hash count"});let c=e.hashes.slice(0,a),f=e.hashes.slice(a),p=U8t(t.canonicalizedBody),h=O8t(N8t(p,c,r),f);if(!GJ.crypto.bufferEqual(h,e.rootHash))throw new jJ.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"calculated root hash does not match inclusion proof"})}function F8t(t,e){let r=L8t(t,e),s=M8t(t>>BigInt(r));return{inner:r,border:s}}function N8t(t,e,r){return e.reduce((s,a,n)=>r>>BigInt(n)&BigInt(1)?qJ(a,s):qJ(s,a),t)}function O8t(t,e){return e.reduce((r,s)=>qJ(s,r),t)}function L8t(t,e){return _8t(t^e-BigInt(1))}function M8t(t){return t.toString(2).split("1").length-1}function _8t(t){return t===0n?0:t.toString(2).length}function qJ(t,e){return GJ.crypto.digest("sha256",T8t,t,e)}function U8t(t){return GJ.crypto.digest("sha256",Q8t,t)}});var DNe=L(YJ=>{"use strict";Object.defineProperty(YJ,"__esModule",{value:!0});YJ.verifyTLogSET=q8t;var SNe=wl(),H8t=Co(),j8t=Ay();function q8t(t,e){if(!(0,j8t.filterTLogAuthorities)(e,{logID:t.logId.keyId,targetDate:new Date(Number(t.integratedTime)*1e3)}).some(a=>{let n=G8t(t),c=Buffer.from(SNe.json.canonicalize(n),"utf8"),f=t.inclusionPromise.signedEntryTimestamp;return SNe.crypto.verify(c,a.publicKey,f)}))throw new H8t.VerificationError({code:"TLOG_INCLUSION_PROMISE_ERROR",message:"inclusion promise could not be verified"})}function G8t(t){let{integratedTime:e,logIndex:r,logId:s,canonicalizedBody:a}=t;return{body:a.toString("base64"),integratedTime:Number(e),logIndex:Number(r),logID:s.keyId.toString("hex")}}});var bNe=L(JJ=>{"use strict";Object.defineProperty(JJ,"__esModule",{value:!0});JJ.verifyRFC3161Timestamp=V8t;var VJ=wl(),KJ=Co(),W8t=NJ(),Y8t=Ay();function V8t(t,e,r){let s=t.signingTime;if(r=(0,Y8t.filterCertAuthorities)(r,{start:s,end:s}),r=J8t(r,{serialNumber:t.signerSerialNumber,issuer:t.signerIssuer}),!r.some(n=>{try{return K8t(t,e,n),!0}catch{return!1}}))throw new KJ.VerificationError({code:"TIMESTAMP_ERROR",message:"timestamp could not be verified"})}function K8t(t,e,r){let[s,...a]=r.certChain,n=VJ.crypto.createPublicKey(s.publicKey),c=t.signingTime;try{new W8t.CertificateChainVerifier({untrustedCert:s,trustedCerts:a}).verify()}catch{throw new KJ.VerificationError({code:"TIMESTAMP_ERROR",message:"invalid certificate chain"})}if(!r.certChain.every(p=>p.validForDate(c)))throw new KJ.VerificationError({code:"TIMESTAMP_ERROR",message:"timestamp was signed with an expired certificate"});t.verify(e,n)}function J8t(t,e){return t.filter(r=>r.certChain.length>0&&VJ.crypto.bufferEqual(r.certChain[0].serialNumber,e.serialNumber)&&VJ.crypto.bufferEqual(r.certChain[0].issuer,e.issuer))}});var PNe=L(SL=>{"use strict";Object.defineProperty(SL,"__esModule",{value:!0});SL.verifyTSATimestamp=tHt;SL.verifyTLogTimestamp=rHt;var z8t=Co(),Z8t=BNe(),X8t=vNe(),$8t=DNe(),eHt=bNe();function tHt(t,e,r){return(0,eHt.verifyRFC3161Timestamp)(t,e,r),{type:"timestamp-authority",logID:t.signerSerialNumber,timestamp:t.signingTime}}function rHt(t,e){let r=!1;if(nHt(t)&&((0,$8t.verifyTLogSET)(t,e),r=!0),iHt(t)&&((0,X8t.verifyMerkleInclusion)(t),(0,Z8t.verifyCheckpoint)(t,e),r=!0),!r)throw new z8t.VerificationError({code:"TLOG_MISSING_INCLUSION_ERROR",message:"inclusion could not be verified"});return{type:"transparency-log",logID:t.logId.keyId,timestamp:new Date(Number(t.integratedTime)*1e3)}}function nHt(t){return t.inclusionPromise!==void 0}function iHt(t){return t.inclusionProof!==void 0}});var xNe=L(zJ=>{"use strict";Object.defineProperty(zJ,"__esModule",{value:!0});zJ.verifyDSSETLogBody=sHt;var DL=Co();function sHt(t,e){switch(t.apiVersion){case"0.0.1":return oHt(t,e);default:throw new DL.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported dsse version: ${t.apiVersion}`})}}function oHt(t,e){if(t.spec.signatures?.length!==1)throw new DL.VerificationError({code:"TLOG_BODY_ERROR",message:"signature count mismatch"});let r=t.spec.signatures[0].signature;if(!e.compareSignature(Buffer.from(r,"base64")))throw new DL.VerificationError({code:"TLOG_BODY_ERROR",message:"tlog entry signature mismatch"});let s=t.spec.payloadHash?.value||"";if(!e.compareDigest(Buffer.from(s,"hex")))throw new DL.VerificationError({code:"TLOG_BODY_ERROR",message:"DSSE payload hash mismatch"})}});var kNe=L(XJ=>{"use strict";Object.defineProperty(XJ,"__esModule",{value:!0});XJ.verifyHashedRekordTLogBody=aHt;var ZJ=Co();function aHt(t,e){switch(t.apiVersion){case"0.0.1":return lHt(t,e);default:throw new ZJ.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported hashedrekord version: ${t.apiVersion}`})}}function lHt(t,e){let r=t.spec.signature.content||"";if(!e.compareSignature(Buffer.from(r,"base64")))throw new ZJ.VerificationError({code:"TLOG_BODY_ERROR",message:"signature mismatch"});let s=t.spec.data.hash?.value||"";if(!e.compareDigest(Buffer.from(s,"hex")))throw new ZJ.VerificationError({code:"TLOG_BODY_ERROR",message:"digest mismatch"})}});var QNe=L($J=>{"use strict";Object.defineProperty($J,"__esModule",{value:!0});$J.verifyIntotoTLogBody=cHt;var bL=Co();function cHt(t,e){switch(t.apiVersion){case"0.0.2":return uHt(t,e);default:throw new bL.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported intoto version: ${t.apiVersion}`})}}function uHt(t,e){if(t.spec.content.envelope.signatures?.length!==1)throw new bL.VerificationError({code:"TLOG_BODY_ERROR",message:"signature count mismatch"});let r=fHt(t.spec.content.envelope.signatures[0].sig);if(!e.compareSignature(Buffer.from(r,"base64")))throw new bL.VerificationError({code:"TLOG_BODY_ERROR",message:"tlog entry signature mismatch"});let s=t.spec.content.payloadHash?.value||"";if(!e.compareDigest(Buffer.from(s,"hex")))throw new bL.VerificationError({code:"TLOG_BODY_ERROR",message:"DSSE payload hash mismatch"})}function fHt(t){return Buffer.from(t,"base64").toString("utf-8")}});var RNe=L(ez=>{"use strict";Object.defineProperty(ez,"__esModule",{value:!0});ez.verifyTLogBody=gHt;var TNe=Co(),AHt=xNe(),pHt=kNe(),hHt=QNe();function gHt(t,e){let{kind:r,version:s}=t.kindVersion,a=JSON.parse(t.canonicalizedBody.toString("utf8"));if(r!==a.kind||s!==a.apiVersion)throw new TNe.VerificationError({code:"TLOG_BODY_ERROR",message:`kind/version mismatch - expected: ${r}/${s}, received: ${a.kind}/${a.apiVersion}`});switch(a.kind){case"dsse":return(0,AHt.verifyDSSETLogBody)(a,e);case"intoto":return(0,hHt.verifyIntotoTLogBody)(a,e);case"hashedrekord":return(0,pHt.verifyHashedRekordTLogBody)(a,e);default:throw new TNe.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported kind: ${r}`})}}});var MNe=L(PL=>{"use strict";Object.defineProperty(PL,"__esModule",{value:!0});PL.Verifier=void 0;var dHt=Ie("util"),I1=Co(),FNe=INe(),NNe=wNe(),ONe=PNe(),mHt=RNe(),tz=class{constructor(e,r={}){this.trustMaterial=e,this.options={ctlogThreshold:r.ctlogThreshold??1,tlogThreshold:r.tlogThreshold??1,tsaThreshold:r.tsaThreshold??0}}verify(e,r){let s=this.verifyTimestamps(e),a=this.verifySigningKey(e,s);return this.verifyTLogs(e),this.verifySignature(e,a),r&&this.verifyPolicy(r,a.identity||{}),a}verifyTimestamps(e){let r=0,s=0,a=e.timestamps.map(n=>{switch(n.$case){case"timestamp-authority":return s++,(0,ONe.verifyTSATimestamp)(n.timestamp,e.signature.signature,this.trustMaterial.timestampAuthorities);case"transparency-log":return r++,(0,ONe.verifyTLogTimestamp)(n.tlogEntry,this.trustMaterial.tlogs)}});if(LNe(a))throw new I1.VerificationError({code:"TIMESTAMP_ERROR",message:"duplicate timestamp"});if(r<this.options.tlogThreshold)throw new I1.VerificationError({code:"TIMESTAMP_ERROR",message:`expected ${this.options.tlogThreshold} tlog timestamps, got ${r}`});if(s<this.options.tsaThreshold)throw new I1.VerificationError({code:"TIMESTAMP_ERROR",message:`expected ${this.options.tsaThreshold} tsa timestamps, got ${s}`});return a.map(n=>n.timestamp)}verifySigningKey({key:e},r){switch(e.$case){case"public-key":return(0,FNe.verifyPublicKey)(e.hint,r,this.trustMaterial);case"certificate":{let s=(0,FNe.verifyCertificate)(e.certificate,r,this.trustMaterial);if(LNe(s.scts))throw new I1.VerificationError({code:"CERTIFICATE_ERROR",message:"duplicate SCT"});if(s.scts.length<this.options.ctlogThreshold)throw new I1.VerificationError({code:"CERTIFICATE_ERROR",message:`expected ${this.options.ctlogThreshold} SCTs, got ${s.scts.length}`});return s.signer}}}verifyTLogs({signature:e,tlogEntries:r}){r.forEach(s=>(0,mHt.verifyTLogBody)(s,e))}verifySignature(e,r){if(!e.signature.verifySignature(r.key))throw new I1.VerificationError({code:"SIGNATURE_ERROR",message:"signature verification failed"})}verifyPolicy(e,r){e.subjectAlternativeName&&(0,NNe.verifySubjectAlternativeName)(e.subjectAlternativeName,r.subjectAlternativeName),e.extensions&&(0,NNe.verifyExtensions)(e.extensions,r.extensions)}};PL.Verifier=tz;function LNe(t){for(let e=0;e<t.length;e++)for(let r=e+1;r<t.length;r++)if((0,dHt.isDeepStrictEqual)(t[e],t[r]))return!0;return!1}});var xL=L(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.Verifier=ou.toTrustMaterial=ou.VerificationError=ou.PolicyError=ou.toSignedEntity=void 0;var yHt=pNe();Object.defineProperty(ou,"toSignedEntity",{enumerable:!0,get:function(){return yHt.toSignedEntity}});var _Ne=Co();Object.defineProperty(ou,"PolicyError",{enumerable:!0,get:function(){return _Ne.PolicyError}});Object.defineProperty(ou,"VerificationError",{enumerable:!0,get:function(){return _Ne.VerificationError}});var EHt=Ay();Object.defineProperty(ou,"toTrustMaterial",{enumerable:!0,get:function(){return EHt.toTrustMaterial}});var IHt=MNe();Object.defineProperty(ou,"Verifier",{enumerable:!0,get:function(){return IHt.Verifier}})});var UNe=L(Na=>{"use strict";Object.defineProperty(Na,"__esModule",{value:!0});Na.DEFAULT_TIMEOUT=Na.DEFAULT_RETRY=void 0;Na.createBundleBuilder=BHt;Na.createKeyFinder=vHt;Na.createVerificationPolicy=SHt;var CHt=wl(),C1=pK(),wHt=xL();Na.DEFAULT_RETRY={retries:2};Na.DEFAULT_TIMEOUT=5e3;function BHt(t,e){let r={signer:DHt(e),witnesses:PHt(e)};switch(t){case"messageSignature":return new C1.MessageSignatureBundleBuilder(r);case"dsseEnvelope":return new C1.DSSEBundleBuilder({...r,certificateChain:e.legacyCompatibility})}}function vHt(t){return e=>{let r=t(e);if(!r)throw new wHt.VerificationError({code:"PUBLIC_KEY_ERROR",message:`key not found: ${e}`});return{publicKey:CHt.crypto.createPublicKey(r),validFor:()=>!0}}}function SHt(t){let e={},r=t.certificateIdentityEmail||t.certificateIdentityURI;return r&&(e.subjectAlternativeName=r),t.certificateIssuer&&(e.extensions={issuer:t.certificateIssuer}),e}function DHt(t){return new C1.FulcioSigner({fulcioBaseURL:t.fulcioURL,identityProvider:t.identityProvider||bHt(t),retry:t.retry??Na.DEFAULT_RETRY,timeout:t.timeout??Na.DEFAULT_TIMEOUT})}function bHt(t){let e=t.identityToken;return e?{getToken:()=>Promise.resolve(e)}:new C1.CIContextProvider("sigstore")}function PHt(t){let e=[];return xHt(t)&&e.push(new C1.RekorWitness({rekorBaseURL:t.rekorURL,entryType:t.legacyCompatibility?"intoto":"dsse",fetchOnConflict:!1,retry:t.retry??Na.DEFAULT_RETRY,timeout:t.timeout??Na.DEFAULT_TIMEOUT})),kHt(t)&&e.push(new C1.TSAWitness({tsaBaseURL:t.tsaServerURL,retry:t.retry??Na.DEFAULT_RETRY,timeout:t.timeout??Na.DEFAULT_TIMEOUT})),e}function xHt(t){return t.tlogUpload!==!1}function kHt(t){return t.tsaServerURL!==void 0}});var qNe=L(au=>{"use strict";var QHt=au&&au.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),THt=au&&au.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),HNe=au&&au.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var s=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(s[s.length]=a);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var s=t(e),a=0;a<s.length;a++)s[a]!=="default"&&QHt(r,e,s[a]);return THt(r,e),r}}();Object.defineProperty(au,"__esModule",{value:!0});au.sign=FHt;au.attest=NHt;au.verify=OHt;au.createVerifier=jNe;var nz=xb(),RHt=HNe(gL()),rz=xL(),w1=HNe(UNe());async function FHt(t,e={}){let s=await w1.createBundleBuilder("messageSignature",e).create({data:t});return(0,nz.bundleToJSON)(s)}async function NHt(t,e,r={}){let a=await w1.createBundleBuilder("dsseEnvelope",r).create({data:t,type:e});return(0,nz.bundleToJSON)(a)}async function OHt(t,e,r){let s;return Buffer.isBuffer(e)?s=e:r=e,jNe(r).then(a=>a.verify(t,s))}async function jNe(t={}){let e=await RHt.getTrustedRoot({mirrorURL:t.tufMirrorURL,rootPath:t.tufRootPath,cachePath:t.tufCachePath,forceCache:t.tufForceCache,retry:t.retry??w1.DEFAULT_RETRY,timeout:t.timeout??w1.DEFAULT_TIMEOUT}),r=t.keySelector?w1.createKeyFinder(t.keySelector):void 0,s=(0,rz.toTrustMaterial)(e,r),a={ctlogThreshold:t.ctLogThreshold,tlogThreshold:t.tlogThreshold},n=new rz.Verifier(s,a),c=w1.createVerificationPolicy(t);return{verify:(f,p)=>{let h=(0,nz.bundleFromJSON)(f),E=(0,rz.toSignedEntity)(h,p);n.verify(E,c)}}}});var WNe=L(Oi=>{"use strict";Object.defineProperty(Oi,"__esModule",{value:!0});Oi.verify=Oi.sign=Oi.createVerifier=Oi.attest=Oi.VerificationError=Oi.PolicyError=Oi.TUFError=Oi.InternalError=Oi.DEFAULT_REKOR_URL=Oi.DEFAULT_FULCIO_URL=Oi.ValidationError=void 0;var LHt=xb();Object.defineProperty(Oi,"ValidationError",{enumerable:!0,get:function(){return LHt.ValidationError}});var iz=pK();Object.defineProperty(Oi,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return iz.DEFAULT_FULCIO_URL}});Object.defineProperty(Oi,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return iz.DEFAULT_REKOR_URL}});Object.defineProperty(Oi,"InternalError",{enumerable:!0,get:function(){return iz.InternalError}});var MHt=gL();Object.defineProperty(Oi,"TUFError",{enumerable:!0,get:function(){return MHt.TUFError}});var GNe=xL();Object.defineProperty(Oi,"PolicyError",{enumerable:!0,get:function(){return GNe.PolicyError}});Object.defineProperty(Oi,"VerificationError",{enumerable:!0,get:function(){return GNe.VerificationError}});var kL=qNe();Object.defineProperty(Oi,"attest",{enumerable:!0,get:function(){return kL.attest}});Object.defineProperty(Oi,"createVerifier",{enumerable:!0,get:function(){return kL.createVerifier}});Object.defineProperty(Oi,"sign",{enumerable:!0,get:function(){return kL.sign}});Object.defineProperty(Oi,"verify",{enumerable:!0,get:function(){return kL.verify}})});var IOe=L((Fvr,EOe)=>{var Kjt=Y4();function Jjt(t){return Kjt(t)?void 0:t}EOe.exports=Jjt});var wOe=L((Nvr,COe)=>{var zjt=QT(),Zjt=w5(),Xjt=D5(),$jt=Im(),e6t=Vd(),t6t=IOe(),r6t=dG(),n6t=C5(),i6t=1,s6t=2,o6t=4,a6t=r6t(function(t,e){var r={};if(t==null)return r;var s=!1;e=zjt(e,function(n){return n=$jt(n,t),s||(s=n.length>1),n}),e6t(t,n6t(t),r),s&&(r=Zjt(r,i6t|s6t|o6t,t6t));for(var a=e.length;a--;)Xjt(r,e[a]);return r});COe.exports=a6t});bt();Ve();bt();var bOe=Ie("child_process"),POe=et(Rd());Wt();var $I=new Map([]);var $v={};Vt($v,{BaseCommand:()=>ut,WorkspaceRequiredError:()=>ar,getCli:()=>XCe,getDynamicLibs:()=>ZCe,getPluginConfiguration:()=>tC,openWorkspace:()=>eC,pluginCommands:()=>$I,runExit:()=>KR});Wt();var ut=class extends ot{constructor(){super(...arguments);this.cwd=ge.String("--cwd",{hidden:!0})}validateAndExecute(){if(typeof this.cwd<"u")throw new nt("The --cwd option is ambiguous when used anywhere else than the very first parameter provided in the command line, before even the command path");return super.validateAndExecute()}};Ve();bt();Wt();var ar=class extends nt{constructor(e,r){let s=K.relative(e,r),a=K.join(e,Ht.fileName);super(`This command can only be run from within a workspace of your project (${s} isn't a workspace of ${a}).`)}};Ve();bt();rA();Bc();wv();Wt();var mwt=et(Ai());Ul();var ZCe=()=>new Map([["@yarnpkg/cli",$v],["@yarnpkg/core",Xv],["@yarnpkg/fslib",U2],["@yarnpkg/libzip",Iv],["@yarnpkg/parsers",K2],["@yarnpkg/shell",Dv],["clipanion",oB],["semver",mwt],["typanion",Ia]]);Ve();async function eC(t,e){let{project:r,workspace:s}=await Tt.find(t,e);if(!s)throw new ar(r.cwd,e);return s}Ve();bt();rA();Bc();wv();Wt();var d6t=et(Ai());Ul();var Y5={};Vt(Y5,{AddCommand:()=>sC,BinCommand:()=>oC,CacheCleanCommand:()=>aC,ClipanionCommand:()=>pC,ConfigCommand:()=>fC,ConfigGetCommand:()=>lC,ConfigSetCommand:()=>cC,ConfigUnsetCommand:()=>uC,DedupeCommand:()=>AC,EntryCommand:()=>gC,ExecCommand:()=>mC,ExplainCommand:()=>IC,ExplainPeerRequirementsCommand:()=>yC,HelpCommand:()=>hC,InfoCommand:()=>CC,LinkCommand:()=>BC,NodeCommand:()=>vC,PluginCheckCommand:()=>SC,PluginImportCommand:()=>PC,PluginImportSourcesCommand:()=>xC,PluginListCommand:()=>DC,PluginRemoveCommand:()=>kC,PluginRuntimeCommand:()=>QC,RebuildCommand:()=>TC,RemoveCommand:()=>RC,RunCommand:()=>NC,RunIndexCommand:()=>FC,SetResolutionCommand:()=>OC,SetVersionCommand:()=>EC,SetVersionSourcesCommand:()=>bC,UnlinkCommand:()=>LC,UpCommand:()=>MC,VersionCommand:()=>dC,WhyCommand:()=>_C,WorkspaceCommand:()=>GC,WorkspacesListCommand:()=>qC,YarnCommand:()=>wC,dedupeUtils:()=>iF,default:()=>ASt,suggestUtils:()=>Xu});var xBe=et(Rd());Ve();Ve();Ve();Wt();var _1e=et(nS());Ul();var Xu={};Vt(Xu,{Modifier:()=>d5,Strategy:()=>tF,Target:()=>iS,WorkspaceModifier:()=>F1e,applyModifier:()=>L1t,extractDescriptorFromPath:()=>m5,extractRangeModifier:()=>N1e,fetchDescriptorFrom:()=>y5,findProjectDescriptors:()=>M1e,getModifier:()=>sS,getSuggestedDescriptors:()=>oS,makeWorkspaceDescriptor:()=>L1e,toWorkspaceModifier:()=>O1e});Ve();Ve();bt();var g5=et(Ai()),N1t="workspace:",iS=(s=>(s.REGULAR="dependencies",s.DEVELOPMENT="devDependencies",s.PEER="peerDependencies",s))(iS||{}),d5=(s=>(s.CARET="^",s.TILDE="~",s.EXACT="",s))(d5||{}),F1e=(s=>(s.CARET="^",s.TILDE="~",s.EXACT="*",s))(F1e||{}),tF=(n=>(n.KEEP="keep",n.REUSE="reuse",n.PROJECT="project",n.LATEST="latest",n.CACHE="cache",n))(tF||{});function sS(t,e){return t.exact?"":t.caret?"^":t.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var O1t=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function N1e(t,{project:e}){let r=t.match(O1t);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function L1t(t,e){let{protocol:r,source:s,params:a,selector:n}=q.parseRange(t.range);return g5.default.valid(n)&&(n=`${e}${t.range}`),q.makeDescriptor(t,q.makeRange({protocol:r,source:s,params:a,selector:n}))}function O1e(t){switch(t){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function L1e(t,e){return q.makeDescriptor(t.anchoredDescriptor,`${N1t}${O1e(e)}`)}async function M1e(t,{project:e,target:r}){let s=new Map,a=n=>{let c=s.get(n.descriptorHash);return c||s.set(n.descriptorHash,c={descriptor:n,locators:[]}),c};for(let n of e.workspaces)if(r==="peerDependencies"){let c=n.manifest.peerDependencies.get(t.identHash);c!==void 0&&a(c).locators.push(n.anchoredLocator)}else{let c=n.manifest.dependencies.get(t.identHash),f=n.manifest.devDependencies.get(t.identHash);r==="devDependencies"?f!==void 0?a(f).locators.push(n.anchoredLocator):c!==void 0&&a(c).locators.push(n.anchoredLocator):c!==void 0?a(c).locators.push(n.anchoredLocator):f!==void 0&&a(f).locators.push(n.anchoredLocator)}return s}async function m5(t,{cwd:e,workspace:r}){return await _1t(async s=>{K.isAbsolute(t)||(t=K.relative(r.cwd,K.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:a}=r,n=await y5(q.makeIdent(null,"archive"),t,{project:r.project,cache:s,workspace:r});if(!n)throw new Error("Assertion failed: The descriptor should have been found");let c=new Yi,f=a.configuration.makeResolver(),p=a.configuration.makeFetcher(),h={checksums:a.storedChecksums,project:a,cache:s,fetcher:p,report:c,resolver:f},E=f.bindDescriptor(n,r.anchoredLocator,h),C=q.convertDescriptorToLocator(E),S=await p.fetch(C,h),P=await Ht.find(S.prefixPath,{baseFs:S.packageFs});if(!P.name)throw new Error("Target path doesn't have a name");return q.makeDescriptor(P.name,t)})}function M1t(t){if(t.range==="unknown")return{type:"resolve",range:"latest"};if(Or.validRange(t.range))return{type:"fixed",range:t.range};if(Up.test(t.range))return{type:"resolve",range:t.range};let e=t.range.match(/^(?:jsr:|npm:)(.*)/);if(!e)return{type:"fixed",range:t.range};let[,r]=e,s=`${q.stringifyIdent(t)}@`;return r.startsWith(s)&&(r=r.slice(s.length)),Or.validRange(r)?{type:"fixed",range:t.range}:Up.test(r)?{type:"resolve",range:t.range}:{type:"fixed",range:t.range}}async function oS(t,{project:e,workspace:r,cache:s,target:a,fixed:n,modifier:c,strategies:f,maxResults:p=1/0}){if(!(p>=0))throw new Error(`Invalid maxResults (${p})`);let h=!n||t.range==="unknown"?M1t(t):{type:"fixed",range:t.range};if(h.type==="fixed")return{suggestions:[{descriptor:t,name:`Use ${q.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let E=typeof r<"u"&&r!==null&&r.manifest[a].get(t.identHash)||null,C=[],S=[],P=async I=>{try{await I()}catch(R){S.push(R)}};for(let I of f){if(C.length>=p)break;switch(I){case"keep":await P(async()=>{E&&C.push({descriptor:E,name:`Keep ${q.prettyDescriptor(e.configuration,E)}`,reason:"(no changes)"})});break;case"reuse":await P(async()=>{for(let{descriptor:R,locators:N}of(await M1e(t,{project:e,target:a})).values()){if(N.length===1&&N[0].locatorHash===r.anchoredLocator.locatorHash&&f.includes("keep"))continue;let U=`(originally used by ${q.prettyLocator(e.configuration,N[0])}`;U+=N.length>1?` and ${N.length-1} other${N.length>2?"s":""})`:")",C.push({descriptor:R,name:`Reuse ${q.prettyDescriptor(e.configuration,R)}`,reason:U})}});break;case"cache":await P(async()=>{for(let R of e.storedDescriptors.values())R.identHash===t.identHash&&C.push({descriptor:R,name:`Reuse ${q.prettyDescriptor(e.configuration,R)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await P(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let R=e.tryWorkspaceByIdent(t);if(R===null)return;let N=L1e(R,c);C.push({descriptor:N,name:`Attach ${q.prettyDescriptor(e.configuration,N)}`,reason:`(local workspace at ${he.pretty(e.configuration,R.relativeCwd,he.Type.PATH)})`})});break;case"latest":{let R=e.configuration.get("enableNetwork"),N=e.configuration.get("enableOfflineMode");await P(async()=>{if(a==="peerDependencies")C.push({descriptor:q.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!R&&!N)C.push({descriptor:null,name:"Resolve from latest",reason:he.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let U=await y5(t,h.range,{project:e,cache:s,workspace:r,modifier:c});U&&C.push({descriptor:U,name:`Use ${q.prettyDescriptor(e.configuration,U)}`,reason:`(resolved from ${N?"the cache":"latest"})`})}})}break}}return{suggestions:C.slice(0,p),rejections:S.slice(0,p)}}async function y5(t,e,{project:r,cache:s,workspace:a,preserveModifier:n=!0,modifier:c}){let f=r.configuration.normalizeDependency(q.makeDescriptor(t,e)),p=new Yi,h=r.configuration.makeFetcher(),E=r.configuration.makeResolver(),C={project:r,fetcher:h,cache:s,checksums:r.storedChecksums,report:p,cacheOptions:{skipIntegrityCheck:!0}},S={...C,resolver:E,fetchOptions:C},P=E.bindDescriptor(f,a.anchoredLocator,S),I=await E.getCandidates(P,{},S);if(I.length===0)return null;let R=I[0],{protocol:N,source:U,params:W,selector:te}=q.parseRange(q.convertToManifestRange(R.reference));if(N===r.configuration.get("defaultProtocol")&&(N=null),g5.default.valid(te)){let ie=te;if(typeof c<"u")te=c+te;else if(n!==!1){let me=typeof n=="string"?n:f.range;te=N1e(me,{project:r})+te}let Ae=q.makeDescriptor(R,q.makeRange({protocol:N,source:U,params:W,selector:te}));(await E.getCandidates(r.configuration.normalizeDependency(Ae),{},S)).length!==1&&(te=ie)}return q.makeDescriptor(R,q.makeRange({protocol:N,source:U,params:W,selector:te}))}async function _1t(t){return await le.mktempPromise(async e=>{let r=ze.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Jr(e,{configuration:r,check:!1,immutable:!1}))})}var sC=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.fixed=ge.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=ge.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=ge.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=ge.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=ge.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=ge.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=ge.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=ge.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=ge.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=ge.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:po(ec)});this.silent=ge.Boolean("--silent",{hidden:!0});this.packages=ge.Rest()}static{this.paths=[["add"]]}static{this.usage=ot.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"<package>\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"],["Add a local package (gzipped tarball format) to the current workspace","$0 add local-package-name@file:../path/to/local-package-name-v0.1.2.tgz"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd),n=await Jr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=this.fixed,f=r.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),p=f||r.get("preferReuse"),h=sS(this,s),E=[p?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(W=>typeof W<"u"),C=f?1/0:1,S=W=>{let te=q.tryParseDescriptor(W.slice(4));return te?te.range==="unknown"?q.makeDescriptor(te,`jsr:${q.stringifyIdent(te)}@latest`):q.makeDescriptor(te,`jsr:${te.range}`):null},P=await Promise.all(this.packages.map(async W=>{let te=W.match(/^\.{0,2}\//)?await m5(W,{cwd:this.context.cwd,workspace:a}):W.startsWith("jsr:")?S(W):q.tryParseDescriptor(W),ie=W.match(/^(https?:|git@github)/);if(ie)throw new nt(`It seems you are trying to add a package using a ${he.pretty(r,`${ie[0]}...`,he.Type.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${he.pretty(r,"yarn add",he.Type.CODE)} ${he.pretty(r,q.makeDescriptor(q.makeIdent(null,"my-package"),`${ie[0]}...`),he.Type.DESCRIPTOR)}`);if(!te)throw new nt(`The ${he.pretty(r,W,he.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let Ae=U1t(a,te,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(Ae.map(async me=>{let pe=await oS(te,{project:s,workspace:a,cache:n,fixed:c,target:me,modifier:h,strategies:E,maxResults:C});return{request:te,suggestedDescriptors:pe,target:me}}))})).then(W=>W.flat()),I=await uA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async W=>{for(let{request:te,suggestedDescriptors:{suggestions:ie,rejections:Ae}}of P)if(ie.filter(me=>me.descriptor!==null).length===0){let[me]=Ae;if(typeof me>"u")throw new Error("Assertion failed: Expected an error to have been set");s.configuration.get("enableNetwork")?W.reportError(27,`${q.prettyDescriptor(r,te)} can't be resolved to a satisfying range`):W.reportError(27,`${q.prettyDescriptor(r,te)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),W.reportSeparator(),W.reportExceptionOnce(me)}});if(I.hasErrors())return I.exitCode();let R=!1,N=[],U=[];for(let{suggestedDescriptors:{suggestions:W},target:te}of P){let ie,Ae=W.filter(Be=>Be.descriptor!==null),ce=Ae[0].descriptor,me=Ae.every(Be=>q.areDescriptorsEqual(Be.descriptor,ce));Ae.length===1||me?ie=ce:(R=!0,{answer:ie}=await(0,_1e.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:W.map(({descriptor:Be,name:Ce,reason:g})=>Be?{name:Ce,hint:g,descriptor:Be}:{name:Ce,hint:g,disabled:!0}),onCancel:()=>process.exit(130),result(Be){return this.find(Be,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let pe=a.manifest[te].get(ie.identHash);(typeof pe>"u"||pe.descriptorHash!==ie.descriptorHash)&&(a.manifest[te].set(ie.identHash,ie),this.optional&&(te==="dependencies"?a.manifest.ensureDependencyMeta({...ie,range:"unknown"}).optional=!0:te==="peerDependencies"&&(a.manifest.ensurePeerDependencyMeta({...ie,range:"unknown"}).optional=!0)),typeof pe>"u"?N.push([a,te,ie,E]):U.push([a,te,pe,ie]))}return await r.triggerMultipleHooks(W=>W.afterWorkspaceDependencyAddition,N),await r.triggerMultipleHooks(W=>W.afterWorkspaceDependencyReplacement,U),R&&this.context.stdout.write(` +`),await s.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:n,mode:this.mode})}};function U1t(t,e,{dev:r,peer:s,preferDev:a,optional:n}){let c=t.manifest.dependencies.has(e.identHash),f=t.manifest.devDependencies.has(e.identHash),p=t.manifest.peerDependencies.has(e.identHash);if((r||s)&&c)throw new nt(`Package "${q.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!s&&p)throw new nt(`Package "${q.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(n&&f)throw new nt(`Package "${q.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(n&&!s&&p)throw new nt(`Package "${q.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&n)throw new nt(`Package "${q.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let h=[];return s&&h.push("peerDependencies"),(r||a)&&h.push("devDependencies"),n&&h.push("dependencies"),h.length>0?h:f?["devDependencies"]:p?["peerDependencies"]:["dependencies"]}Ve();Ve();Wt();var oC=class extends ut{constructor(){super(...arguments);this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=ge.String({required:!1})}static{this.paths=[["bin"]]}static{this.usage=ot.Usage({description:"get the path to a binary script",details:` + When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. + + When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. + `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,locator:a}=await Tt.find(r,this.context.cwd);if(await s.restoreInstallState(),this.name){let f=(await In.getPackageAccessibleBinaries(a,{project:s})).get(this.name);if(!f)throw new nt(`Couldn't find a binary named "${this.name}" for package "${q.prettyLocator(r,a)}"`);let[,p]=f;return this.context.stdout.write(`${p} +`),0}return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async c=>{let f=await In.getPackageAccessibleBinaries(a,{project:s}),h=Array.from(f.keys()).reduce((E,C)=>Math.max(E,C.length),0);for(let[E,[C,S]]of f)c.reportJson({name:E,source:q.stringifyIdent(C),path:S});if(this.verbose)for(let[E,[C]]of f)c.reportInfo(null,`${E.padEnd(h," ")} ${q.prettyLocator(r,C)}`);else for(let E of f.keys())c.reportInfo(null,E)})).exitCode()}};Ve();bt();Wt();var aC=class extends ut{constructor(){super(...arguments);this.mirror=ge.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=ge.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}static{this.paths=[["cache","clean"],["cache","clear"]]}static{this.usage=ot.Usage({description:"remove the shared cache files",details:` + This command will remove all the files from the cache. + `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(!r.get("enableCacheClean"))throw new nt("Cache cleaning is currently disabled. To enable it, set `enableCacheClean: true` in your configuration file. Note: Cache cleaning is typically not required and should be avoided when using Zero-Installs.");let s=await Jr.find(r);return(await Ot.start({configuration:r,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&s.mirrorCwd!==null,c=!this.mirror;n&&(await le.removePromise(s.mirrorCwd),await r.triggerHook(f=>f.cleanGlobalArtifacts,r)),c&&await le.removePromise(s.cwd)})).exitCode()}};Ve();Wt();var H1e=et(aS()),E5=Ie("util"),lC=class extends ut{constructor(){super(...arguments);this.why=ge.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=ge.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=ge.String()}static{this.paths=[["config","get"]]}static{this.usage=ot.Usage({description:"read a configuration settings",details:` + This command will print a configuration setting. + + Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. + `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*/,"");if(typeof r.settings.get(s)>"u")throw new nt(`Couldn't find a configuration settings named "${s}"`);let c=r.getSpecial(s,{hideSecrets:!this.unsafe,getNativePaths:!0}),f=je.convertMapsToIndexableObjects(c),p=a?(0,H1e.default)(f,a):f,h=await Ot.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async E=>{E.reportJson(p)});if(!this.json){if(typeof p=="string")return this.context.stdout.write(`${p} +`),h.exitCode();E5.inspect.styles.name="cyan",this.context.stdout.write(`${(0,E5.inspect)(p,{depth:1/0,colors:r.get("enableColors"),compact:!1})} +`)}return h.exitCode()}};Ve();Wt();var Q2e=et(B5()),T2e=et(aS()),R2e=et(v5()),S5=Ie("util"),cC=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=ge.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ge.String();this.value=ge.String()}static{this.paths=[["config","set"]]}static{this.usage=ot.Usage({description:"change a configuration settings",details:` + This command will set a configuration setting. + + When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). + + When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. + `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=()=>{if(!r.projectCwd)throw new nt("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new nt(`Couldn't find a configuration settings named "${a}"`);if(a==="enableStrictSettings")throw new nt("This setting only affects the file it's in, and thus cannot be set from the CLI");let f=this.json?JSON.parse(this.value):this.value;await(this.home?I=>ze.updateHomeConfiguration(I):I=>ze.updateConfiguration(s(),I))(I=>{if(n){let R=(0,Q2e.default)(I);return(0,R2e.default)(R,this.name,f),R}else return{...I,[a]:f}});let E=(await ze.find(this.context.cwd,this.context.plugins)).getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),C=je.convertMapsToIndexableObjects(E),S=n?(0,T2e.default)(C,n):C;return(await Ot.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async I=>{S5.inspect.styles.name="cyan",I.reportInfo(0,`Successfully set ${this.name} to ${(0,S5.inspect)(S,{depth:1/0,colors:r.get("enableColors"),compact:!1})}`)})).exitCode()}};Ve();Wt();var G2e=et(B5()),W2e=et(L2e()),Y2e=et(b5()),uC=class extends ut{constructor(){super(...arguments);this.home=ge.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ge.String()}static{this.paths=[["config","unset"]]}static{this.usage=ot.Usage({description:"unset a configuration setting",details:` + This command will unset a configuration setting. + `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=()=>{if(!r.projectCwd)throw new nt("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new nt(`Couldn't find a configuration settings named "${a}"`);let f=this.home?h=>ze.updateHomeConfiguration(h):h=>ze.updateConfiguration(s(),h);return(await Ot.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async h=>{let E=!1;await f(C=>{if(!(0,W2e.default)(C,this.name))return h.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),E=!0,C;let S=n?(0,G2e.default)(C):{...C};return(0,Y2e.default)(S,this.name),S}),E||h.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};Ve();bt();Wt();var nF=Ie("util"),fC=class extends ut{constructor(){super(...arguments);this.noDefaults=ge.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.verbose=ge.Boolean("-v,--verbose",{hidden:!0});this.why=ge.Boolean("--why",{hidden:!0});this.names=ge.Rest()}static{this.paths=[["config"]]}static{this.usage=ot.Usage({description:"display the current configuration",details:` + This command prints the current active configuration settings. + `,examples:[["Print the active configuration settings","$0 config"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins,{strict:!1}),s=await vI({configuration:r,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:"The --verbose option is deprecated, the settings' descriptions are now always displayed"},{option:this.why,message:"The --why option is deprecated, the settings' sources are now always displayed"}]);if(s!==null)return s;let a=this.names.length>0?[...new Set(this.names)].sort():[...r.settings.keys()].sort(),n,c=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async f=>{if(r.invalid.size>0&&!this.json){for(let[p,h]of r.invalid)f.reportError(34,`Invalid configuration key "${p}" in ${h}`);f.reportSeparator()}if(this.json)for(let p of a){if(this.noDefaults&&!r.sources.has(p))continue;let h=r.settings.get(p);typeof h>"u"&&f.reportError(34,`No configuration key named "${p}"`);let E=r.getSpecial(p,{hideSecrets:!0,getNativePaths:!0}),C=r.sources.get(p)??"<default>",S=C&&C[0]!=="<"?ue.fromPortablePath(C):C;f.reportJson({key:p,effective:E,source:S,...h})}else{let p={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},h={},E={children:h};for(let C of a){if(this.noDefaults&&!r.sources.has(C))continue;let S=r.settings.get(C),P=r.sources.get(C)??"<default>",I=r.getSpecial(C,{hideSecrets:!0,getNativePaths:!0}),R={Description:{label:"Description",value:he.tuple(he.Type.MARKDOWN,{text:S.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:he.tuple(P[0]==="<"?he.Type.CODE:he.Type.PATH,P)}};h[C]={value:he.tuple(he.Type.CODE,C),children:R};let N=(U,W)=>{for(let[te,ie]of W)if(ie instanceof Map){let Ae={};U[te]={children:Ae},N(Ae,ie)}else U[te]={label:te,value:he.tuple(he.Type.NO_HINT,(0,nF.inspect)(ie,p))}};I instanceof Map?N(R,I):R.Value={label:"Value",value:he.tuple(he.Type.NO_HINT,(0,nF.inspect)(I,p))}}a.length!==1&&(n=void 0),Qs.emitTree(E,{configuration:r,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof n<"u"){let f=a[0],p=(0,nF.inspect)(r.getSpecial(f,{hideSecrets:!0,getNativePaths:!0}),{colors:r.get("enableColors")});this.context.stdout.write(` +`),this.context.stdout.write(`${p} +`)}return c.exitCode()}};Ve();Wt();Ul();var iF={};Vt(iF,{Strategy:()=>lS,acceptedStrategies:()=>wvt,dedupe:()=>P5});Ve();Ve();var V2e=et(Sa()),lS=(e=>(e.HIGHEST="highest",e))(lS||{}),wvt=new Set(Object.values(lS)),Bvt={highest:async(t,e,{resolver:r,fetcher:s,resolveOptions:a,fetchOptions:n})=>{let c=new Map;for(let[p,h]of t.storedResolutions){let E=t.storedDescriptors.get(p);if(typeof E>"u")throw new Error(`Assertion failed: The descriptor (${p}) should have been registered`);je.getSetWithDefault(c,E.identHash).add(h)}let f=new Map(je.mapAndFilter(t.storedDescriptors.values(),p=>q.isVirtualDescriptor(p)?je.mapAndFilter.skip:[p.descriptorHash,je.makeDeferred()]));for(let p of t.storedDescriptors.values()){let h=f.get(p.descriptorHash);if(typeof h>"u")throw new Error(`Assertion failed: The descriptor (${p.descriptorHash}) should have been registered`);let E=t.storedResolutions.get(p.descriptorHash);if(typeof E>"u")throw new Error(`Assertion failed: The resolution (${p.descriptorHash}) should have been registered`);let C=t.originalPackages.get(E);if(typeof C>"u")throw new Error(`Assertion failed: The package (${E}) should have been registered`);Promise.resolve().then(async()=>{let S=r.getResolutionDependencies(p,a),P=Object.fromEntries(await je.allSettledSafe(Object.entries(S).map(async([te,ie])=>{let Ae=f.get(ie.descriptorHash);if(typeof Ae>"u")throw new Error(`Assertion failed: The descriptor (${ie.descriptorHash}) should have been registered`);let ce=await Ae.promise;if(!ce)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[te,ce.updatedPackage]})));if(e.length&&!V2e.default.isMatch(q.stringifyIdent(p),e)||!r.shouldPersistResolution(C,a))return C;let I=c.get(p.identHash);if(typeof I>"u")throw new Error(`Assertion failed: The resolutions (${p.identHash}) should have been registered`);if(I.size===1)return C;let R=[...I].map(te=>{let ie=t.originalPackages.get(te);if(typeof ie>"u")throw new Error(`Assertion failed: The package (${te}) should have been registered`);return ie}),N=await r.getSatisfying(p,P,R,a),U=N.locators?.[0];if(typeof U>"u"||!N.sorted)return C;let W=t.originalPackages.get(U.locatorHash);if(typeof W>"u")throw new Error(`Assertion failed: The package (${U.locatorHash}) should have been registered`);return W}).then(async S=>{let P=await t.preparePackage(S,{resolver:r,resolveOptions:a});h.resolve({descriptor:p,currentPackage:C,updatedPackage:S,resolvedPackage:P})}).catch(S=>{h.reject(S)})}return[...f.values()].map(p=>p.promise)}};async function P5(t,{strategy:e,patterns:r,cache:s,report:a}){let{configuration:n}=t,c=new Yi,f=n.makeResolver(),p=n.makeFetcher(),h={cache:s,checksums:t.storedChecksums,fetcher:p,project:t,report:c,cacheOptions:{skipIntegrityCheck:!0}},E={project:t,resolver:f,report:c,fetchOptions:h};return await a.startTimerPromise("Deduplication step",async()=>{let C=Bvt[e],S=await C(t,r,{resolver:f,resolveOptions:E,fetcher:p,fetchOptions:h}),P=ho.progressViaCounter(S.length);await a.reportProgress(P);let I=0;await Promise.all(S.map(U=>U.then(W=>{if(W===null||W.currentPackage.locatorHash===W.updatedPackage.locatorHash)return;I++;let{descriptor:te,currentPackage:ie,updatedPackage:Ae}=W;a.reportInfo(0,`${q.prettyDescriptor(n,te)} can be deduped from ${q.prettyLocator(n,ie)} to ${q.prettyLocator(n,Ae)}`),a.reportJson({descriptor:q.stringifyDescriptor(te),currentResolution:q.stringifyLocator(ie),updatedResolution:q.stringifyLocator(Ae)}),t.storedResolutions.set(te.descriptorHash,Ae.locatorHash)}).finally(()=>P.tick())));let R;switch(I){case 0:R="No packages";break;case 1:R="One package";break;default:R=`${I} packages`}let N=he.pretty(n,e,he.Type.CODE);return a.reportInfo(0,`${R} can be deduped using the ${N} strategy`),I})}var AC=class extends ut{constructor(){super(...arguments);this.strategy=ge.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:po(lS)});this.check=ge.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:po(ec)});this.patterns=ge.Rest()}static{this.paths=[["dedupe"]]}static{this.usage=ot.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Tt.find(r,this.context.cwd),a=await Jr.find(r);await s.restoreInstallState({restoreResolutions:!1});let n=0,c=await Ot.start({configuration:r,includeFooter:!1,stdout:this.context.stdout,json:this.json},async f=>{n=await P5(s,{strategy:this.strategy,patterns:this.patterns,cache:a,report:f})});return c.hasErrors()?c.exitCode():this.check?n?1:0:await s.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a,mode:this.mode})}};Ve();Wt();var pC=class extends ut{static{this.paths=[["--clipanion=definitions"]]}async execute(){let{plugins:e}=await ze.find(this.context.cwd,this.context.plugins),r=[];for(let c of e){let{commands:f}=c[1];if(f){let h=wa.from(f).definitions();r.push([c[0],h])}}let s=this.cli.definitions(),a=(c,f)=>c.split(" ").slice(1).join()===f.split(" ").slice(1).join(),n=K2e()["@yarnpkg/builder"].bundles.standard;for(let c of r){let f=c[1];for(let p of f)s.find(h=>a(h.path,p.path)).plugin={name:c[0],isDefault:n.includes(c[0])}}this.context.stdout.write(`${JSON.stringify(s,null,2)} +`)}};var hC=class extends ut{static{this.paths=[["help"],["--help"],["-h"]]}async execute(){this.context.stdout.write(this.cli.usage(null))}};Ve();bt();Wt();var gC=class extends ut{constructor(){super(...arguments);this.leadingArgument=ge.String();this.args=ge.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!q.tryParseIdent(this.leadingArgument)){let r=K.resolve(this.context.cwd,ue.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:r})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};Ve();var dC=class extends ut{static{this.paths=[["-v"],["--version"]]}async execute(){this.context.stdout.write(`${un||"<unknown>"} +`)}};Ve();Ve();Wt();var mC=class extends ut{constructor(){super(...arguments);this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[["exec"]]}static{this.usage=ot.Usage({description:"execute a shell script",details:` + This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. + + It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,locator:a}=await Tt.find(r,this.context.cwd);return await s.restoreInstallState(),await In.executePackageShellcode(a,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:s})}};Ve();Wt();Ul();var yC=class extends ut{constructor(){super(...arguments);this.hash=ge.String({required:!1,validator:qx(IE(),[X2(/^p[0-9a-f]{5}$/)])})}static{this.paths=[["explain","peer-requirements"]]}static{this.usage=ot.Usage({description:"explain a set of peer requirements",details:` + A peer requirement represents all peer requests that a subject must satisfy when providing a requested package to requesters. + + When the hash argument is specified, this command prints a detailed explanation of the peer requirement corresponding to the hash and whether it is satisfied or not. + + When used without arguments, this command lists all peer requirements and the corresponding hash that can be used to get detailed information about a given requirement. + + **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). + `,examples:[["Explain the corresponding peer requirement for a hash","$0 explain peer-requirements p1a4ed"],["List all peer requirements","$0 explain peer-requirements"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Tt.find(r,this.context.cwd);return await s.restoreInstallState({restoreResolutions:!1}),await s.applyLightResolution(),typeof this.hash<"u"?await Svt(this.hash,s,{stdout:this.context.stdout}):await Dvt(s,{stdout:this.context.stdout})}};async function Svt(t,e,r){let s=e.peerRequirementNodes.get(t);if(typeof s>"u")throw new Error(`No peerDependency requirements found for hash: "${t}"`);let a=new Set,n=p=>a.has(p.requester.locatorHash)?{value:he.tuple(he.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:p.children.size>0?[{value:he.tuple(he.Type.NO_HINT,"...")}]:[]}:(a.add(p.requester.locatorHash),{value:he.tuple(he.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:Object.fromEntries(Array.from(p.children.values(),h=>[q.stringifyLocator(h.requester),n(h)]))}),c=e.peerWarnings.find(p=>p.hash===t);return(await Ot.start({configuration:e.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async p=>{let h=he.mark(e.configuration),E=c?h.Cross:h.Check;if(p.reportInfo(0,`Package ${he.pretty(e.configuration,s.subject,he.Type.LOCATOR)} is requested to provide ${he.pretty(e.configuration,s.ident,he.Type.IDENT)} by its descendants`),p.reportSeparator(),p.reportInfo(0,he.pretty(e.configuration,s.subject,he.Type.LOCATOR)),Qs.emitTree({children:Object.fromEntries(Array.from(s.requests.values(),C=>[q.stringifyLocator(C.requester),n(C)]))},{configuration:e.configuration,stdout:r.stdout,json:!1}),p.reportSeparator(),s.provided.range==="missing:"){let C=c?"":" , but all peer requests are optional";p.reportInfo(0,`${E} Package ${he.pretty(e.configuration,s.subject,he.Type.LOCATOR)} does not provide ${he.pretty(e.configuration,s.ident,he.Type.IDENT)}${C}.`)}else{let C=e.storedResolutions.get(s.provided.descriptorHash);if(!C)throw new Error("Assertion failed: Expected the descriptor to be registered");let S=e.storedPackages.get(C);if(!S)throw new Error("Assertion failed: Expected the package to be registered");p.reportInfo(0,`${E} Package ${he.pretty(e.configuration,s.subject,he.Type.LOCATOR)} provides ${he.pretty(e.configuration,s.ident,he.Type.IDENT)} with version ${q.prettyReference(e.configuration,S.version??"0.0.0")}, ${c?"which does not satisfy all requests.":"which satisfies all requests"}`),c?.type===3&&(c.range?p.reportInfo(0,` The combined requested range is ${he.pretty(e.configuration,c.range,he.Type.RANGE)}`):p.reportInfo(0," Unfortunately, the requested ranges have no overlap"))}})).exitCode()}async function Dvt(t,e){return(await Ot.start({configuration:t.configuration,stdout:e.stdout,includeFooter:!1,includePrefix:!1},async s=>{let a=he.mark(t.configuration),n=je.sortMap(t.peerRequirementNodes,[([,c])=>q.stringifyLocator(c.subject),([,c])=>q.stringifyIdent(c.ident)]);for(let[,c]of n.values()){if(!c.root)continue;let f=t.peerWarnings.find(E=>E.hash===c.hash),p=[...q.allPeerRequests(c)],h;if(p.length>2?h=` and ${p.length-1} other dependencies`:p.length===2?h=" and 1 other dependency":h="",c.provided.range!=="missing:"){let E=t.storedResolutions.get(c.provided.descriptorHash);if(!E)throw new Error("Assertion failed: Expected the resolution to have been registered");let C=t.storedPackages.get(E);if(!C)throw new Error("Assertion failed: Expected the provided package to have been registered");let S=`${he.pretty(t.configuration,c.hash,he.Type.CODE)} \u2192 ${f?a.Cross:a.Check} ${q.prettyLocator(t.configuration,c.subject)} provides ${q.prettyLocator(t.configuration,C)} to ${q.prettyLocator(t.configuration,p[0].requester)}${h}`;f?s.reportWarning(0,S):s.reportInfo(0,S)}else{let E=`${he.pretty(t.configuration,c.hash,he.Type.CODE)} \u2192 ${f?a.Cross:a.Check} ${q.prettyLocator(t.configuration,c.subject)} doesn't provide ${q.prettyIdent(t.configuration,c.ident)} to ${q.prettyLocator(t.configuration,p[0].requester)}${h}`;f?s.reportWarning(0,E):s.reportInfo(0,E)}}})).exitCode()}Ve();Wt();Ul();Ve();Ve();bt();Wt();var J2e=et(Ai()),EC=class extends ut{constructor(){super(...arguments);this.useYarnPath=ge.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"});this.onlyIfNeeded=ge.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=ge.String()}static{this.paths=[["set","version"]]}static{this.usage=ot.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&r.get("yarnPath")){let f=r.sources.get("yarnPath");if(!f)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let p=r.projectCwd??r.startingCwd;if(K.contains(p,f))return 0}let s=()=>{if(typeof un>"u")throw new nt("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},a,n=(f,p)=>({version:p,url:f.replace(/\{\}/g,p)});if(this.version==="self")a={url:s(),version:un??"self"};else if(this.version==="latest"||this.version==="berry"||this.version==="stable")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await cS(r,"stable"));else if(this.version==="canary")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await cS(r,"canary"));else if(this.version==="classic")a={url:"https://classic.yarnpkg.com/latest.js",version:"classic"};else if(this.version.match(/^https?:/))a={url:this.version,version:"remote"};else if(this.version.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.version))a={url:`file://${K.resolve(ue.toPortablePath(this.version))}`,version:"file"};else if(Or.satisfiesWithPrereleases(this.version,">=2.0.0"))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",this.version);else if(Or.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))a=n("https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js",this.version);else if(Or.validRange(this.version))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await bvt(r,this.version));else throw new nt(`Invalid version descriptor "${this.version}"`);return(await Ot.start({configuration:r,stdout:this.context.stdout,includeLogs:!this.context.quiet},async f=>{let p=async()=>{let h="file://";return a.url.startsWith(h)?(f.reportInfo(0,`Retrieving ${he.pretty(r,a.url,he.Type.PATH)}`),await le.readFilePromise(a.url.slice(h.length))):(f.reportInfo(0,`Downloading ${he.pretty(r,a.url,he.Type.URL)}`),await An.get(a.url,{configuration:r}))};await x5(r,a.version,p,{report:f,useYarnPath:this.useYarnPath})})).exitCode()}};async function bvt(t,e){let s=(await An.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0})).tags.filter(a=>Or.satisfiesWithPrereleases(a,e));if(s.length===0)throw new nt(`No matching release found for range ${he.pretty(t,e,he.Type.RANGE)}.`);return s[0]}async function cS(t,e){let r=await An.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new nt(`Tag ${he.pretty(t,e,he.Type.RANGE)} not found`);return r.latest[e]}async function x5(t,e,r,{report:s,useYarnPath:a}){let n,c=async()=>(typeof n>"u"&&(n=await r()),n);if(e===null){let te=await c();await le.mktempPromise(async ie=>{let Ae=K.join(ie,"yarn.cjs");await le.writeFilePromise(Ae,te);let{stdout:ce}=await Gr.execvp(process.execPath,[ue.fromPortablePath(Ae),"--version"],{cwd:ie,env:{...t.env,YARN_IGNORE_PATH:"1"}});if(e=ce.trim(),!J2e.default.valid(e))throw new Error(`Invalid semver version. ${he.pretty(t,"yarn --version",he.Type.CODE)} returned: +${e}`)})}let f=t.projectCwd??t.startingCwd,p=K.resolve(f,".yarn/releases"),h=K.resolve(p,`yarn-${e}.cjs`),E=K.relative(t.startingCwd,h),C=je.isTaggedYarnVersion(e),S=t.get("yarnPath"),P=!C,I=P||!!S||!!a;if(a===!1){if(P)throw new Yt(0,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");I=!1}else!I&&!process.env.COREPACK_ROOT&&(s.reportWarning(0,`You don't seem to have ${he.applyHyperlink(t,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${he.applyHyperlink(t,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),I=!0);if(I){let te=await c();s.reportInfo(0,`Saving the new release in ${he.pretty(t,E,"magenta")}`),await le.removePromise(K.dirname(h)),await le.mkdirPromise(K.dirname(h),{recursive:!0}),await le.writeFilePromise(h,te,{mode:493}),await ze.updateConfiguration(f,{yarnPath:K.relative(f,h)})}else await le.removePromise(K.dirname(h)),await ze.updateConfiguration(f,{yarnPath:ze.deleteProperty});let R=await Ht.tryFind(f)||new Ht;R.packageManager=`yarn@${C?e:await cS(t,"stable")}`;let N={};R.exportTo(N);let U=K.join(f,Ht.fileName),W=`${JSON.stringify(N,null,R.indent)} +`;return await le.changeFilePromise(U,W,{automaticNewlines:!0}),{bundleVersion:e}}function z2e(t){return Dr[zx(t)]}var Pvt=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function xvt(t){let r=`https://repo.yarnpkg.com/${je.isTaggedYarnVersion(un)?un:await cS(t,"canary")}/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx`,s=await An.get(r,{configuration:t});return new Map(Array.from(s.toString().matchAll(Pvt),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let n=z2e(a.code);if(a.name!==n)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${n}"`);return[a.code,a.details]}))}var IC=class extends ut{constructor(){super(...arguments);this.code=ge.String({required:!1,validator:$2(IE(),[X2(/^YN[0-9]{4}$/)])});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["explain"]]}static{this.usage=ot.Usage({description:"explain an error code",details:` + When the code argument is specified, this command prints its name and its details. + + When used without arguments, this command lists all error codes and their names. + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let s=z2e(this.code),a=he.pretty(r,s,he.Type.CODE),n=this.cli.format().header(`${this.code} - ${a}`),f=(await xvt(r)).get(this.code),p=typeof f<"u"?he.jsonOrPretty(this.json,r,he.tuple(he.Type.MARKDOWN,{text:f,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. + +You can help us by editing this page on GitHub \u{1F642}: +${he.jsonOrPretty(this.json,r,he.tuple(he.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx"))} +`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:s,details:p})} +`):this.context.stdout.write(`${n} + +${p} +`)}else{let s={children:je.mapAndFilter(Object.entries(Dr),([a,n])=>Number.isNaN(Number(a))?je.mapAndFilter.skip:{label:Vf(Number(a)),value:he.tuple(he.Type.CODE,n)})};Qs.emitTree(s,{configuration:r,stdout:this.context.stdout,json:this.json})}}};Ve();bt();Wt();var Z2e=et(Sa()),CC=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=ge.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=ge.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=ge.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=ge.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=ge.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=ge.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=ge.Rest()}static{this.paths=[["info"]]}static{this.usage=ot.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd),n=await Jr.find(r);if(!a&&!this.all)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let c=new Set(this.extra);this.cache&&c.add("cache"),this.dependents&&c.add("dependents"),this.manifest&&c.add("manifest");let f=(ie,{recursive:Ae})=>{let ce=ie.anchoredLocator.locatorHash,me=new Map,pe=[ce];for(;pe.length>0;){let Be=pe.shift();if(me.has(Be))continue;let Ce=s.storedPackages.get(Be);if(typeof Ce>"u")throw new Error("Assertion failed: Expected the package to be registered");if(me.set(Be,Ce),q.isVirtualLocator(Ce)&&pe.push(q.devirtualizeLocator(Ce).locatorHash),!(!Ae&&Be!==ce))for(let g of Ce.dependencies.values()){let we=s.storedResolutions.get(g.descriptorHash);if(typeof we>"u")throw new Error("Assertion failed: Expected the resolution to be registered");pe.push(we)}}return me.values()},p=({recursive:ie})=>{let Ae=new Map;for(let ce of s.workspaces)for(let me of f(ce,{recursive:ie}))Ae.set(me.locatorHash,me);return Ae.values()},h=({all:ie,recursive:Ae})=>ie&&Ae?s.storedPackages.values():ie?p({recursive:Ae}):f(a,{recursive:Ae}),E=({all:ie,recursive:Ae})=>{let ce=h({all:ie,recursive:Ae}),me=this.patterns.map(Ce=>{let g=q.parseLocator(Ce),we=Z2e.default.makeRe(q.stringifyIdent(g)),ye=q.isVirtualLocator(g),fe=ye?q.devirtualizeLocator(g):g;return se=>{let X=q.stringifyIdent(se);if(!we.test(X))return!1;if(g.reference==="unknown")return!0;let De=q.isVirtualLocator(se),Re=De?q.devirtualizeLocator(se):se;return!(ye&&De&&g.reference!==se.reference||fe.reference!==Re.reference)}}),pe=je.sortMap([...ce],Ce=>q.stringifyLocator(Ce));return{selection:pe.filter(Ce=>me.length===0||me.some(g=>g(Ce))),sortedLookup:pe}},{selection:C,sortedLookup:S}=E({all:this.all,recursive:this.recursive});if(C.length===0)throw new nt("No package matched your request");let P=new Map;if(this.dependents)for(let ie of S)for(let Ae of ie.dependencies.values()){let ce=s.storedResolutions.get(Ae.descriptorHash);if(typeof ce>"u")throw new Error("Assertion failed: Expected the resolution to be registered");je.getArrayWithDefault(P,ce).push(ie)}let I=new Map;for(let ie of S){if(!q.isVirtualLocator(ie))continue;let Ae=q.devirtualizeLocator(ie);je.getArrayWithDefault(I,Ae.locatorHash).push(ie)}let R={},N={children:R},U=r.makeFetcher(),W={project:s,fetcher:U,cache:n,checksums:s.storedChecksums,report:new Yi,cacheOptions:{skipIntegrityCheck:!0}},te=[async(ie,Ae,ce)=>{if(!Ae.has("manifest"))return;let me=await U.fetch(ie,W),pe;try{pe=await Ht.find(me.prefixPath,{baseFs:me.packageFs})}finally{me.releaseFs?.()}ce("Manifest",{License:he.tuple(he.Type.NO_HINT,pe.license),Homepage:he.tuple(he.Type.URL,pe.raw.homepage??null)})},async(ie,Ae,ce)=>{if(!Ae.has("cache"))return;let me=s.storedChecksums.get(ie.locatorHash)??null,pe=n.getLocatorPath(ie,me),Be;if(pe!==null)try{Be=await le.statPromise(pe)}catch{}let Ce=typeof Be<"u"?[Be.size,he.Type.SIZE]:void 0;ce("Cache",{Checksum:he.tuple(he.Type.NO_HINT,me),Path:he.tuple(he.Type.PATH,pe),Size:Ce})}];for(let ie of C){let Ae=q.isVirtualLocator(ie);if(!this.virtuals&&Ae)continue;let ce={},me={value:[ie,he.Type.LOCATOR],children:ce};if(R[q.stringifyLocator(ie)]=me,this.nameOnly){delete me.children;continue}let pe=I.get(ie.locatorHash);typeof pe<"u"&&(ce.Instances={label:"Instances",value:he.tuple(he.Type.NUMBER,pe.length)}),ce.Version={label:"Version",value:he.tuple(he.Type.NO_HINT,ie.version)};let Be=(g,we)=>{let ye={};if(ce[g]=ye,Array.isArray(we))ye.children=we.map(fe=>({value:fe}));else{let fe={};ye.children=fe;for(let[se,X]of Object.entries(we))typeof X>"u"||(fe[se]={label:se,value:X})}};if(!Ae){for(let g of te)await g(ie,c,Be);await r.triggerHook(g=>g.fetchPackageInfo,ie,c,Be)}ie.bin.size>0&&!Ae&&Be("Exported Binaries",[...ie.bin.keys()].map(g=>he.tuple(he.Type.PATH,g)));let Ce=P.get(ie.locatorHash);typeof Ce<"u"&&Ce.length>0&&Be("Dependents",Ce.map(g=>he.tuple(he.Type.LOCATOR,g))),ie.dependencies.size>0&&!Ae&&Be("Dependencies",[...ie.dependencies.values()].map(g=>{let we=s.storedResolutions.get(g.descriptorHash),ye=typeof we<"u"?s.storedPackages.get(we)??null:null;return he.tuple(he.Type.RESOLUTION,{descriptor:g,locator:ye})})),ie.peerDependencies.size>0&&Ae&&Be("Peer dependencies",[...ie.peerDependencies.values()].map(g=>{let we=ie.dependencies.get(g.identHash),ye=typeof we<"u"?s.storedResolutions.get(we.descriptorHash)??null:null,fe=ye!==null?s.storedPackages.get(ye)??null:null;return he.tuple(he.Type.RESOLUTION,{descriptor:g,locator:fe})}))}Qs.emitTree(N,{configuration:r,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};Ve();bt();Bc();var sF=et(Rd());Wt();var k5=et(Ai());Ul();var kvt=[{selector:t=>t===-1,name:"nodeLinker",value:"node-modules"},{selector:t=>t!==-1&&t<8,name:"enableGlobalCache",value:!1},{selector:t=>t!==-1&&t<8,name:"compressionLevel",value:"mixed"}],wC=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=ge.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=ge.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.refreshLockfile=ge.Boolean("--refresh-lockfile",{description:"Refresh the package metadata stored in the lockfile"});this.checkCache=ge.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"});this.checkResolutions=ge.Boolean("--check-resolutions",{description:"Validates that the package resolutions are coherent"});this.inlineBuilds=ge.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:po(ec)});this.cacheFolder=ge.String("--cache-folder",{hidden:!0});this.frozenLockfile=ge.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=ge.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=ge.Boolean("--non-interactive",{hidden:!0});this.preferOffline=ge.Boolean("--prefer-offline",{hidden:!0});this.production=ge.Boolean("--production",{hidden:!0});this.registry=ge.String("--registry",{hidden:!0});this.silent=ge.Boolean("--silent",{hidden:!0});this.networkTimeout=ge.String("--network-timeout",{hidden:!0})}static{this.paths=[["install"],ot.Default]}static{this.usage=ot.Usage({description:"install the project dependencies",details:"\n This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the `.pnp.cjs` file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your `.pnp.cjs` file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&r.useWithSource("<cli>",{enableInlineBuilds:this.inlineBuilds},r.startingCwd,{overwrite:!0});let s=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,a=await vI({configuration:r,stdout:this.context.stdout},[{option:this.ignoreEngines,message:"The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",error:!sF.default.VERCEL},{option:this.registry,message:"The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file"},{option:this.preferOffline,message:"The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",error:!sF.default.VERCEL},{option:this.production,message:"The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",error:!0},{option:this.nonInteractive,message:"The --non-interactive option is deprecated",error:!s},{option:this.frozenLockfile,message:"The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",callback:()=>this.immutable=this.frozenLockfile},{option:this.cacheFolder,message:"The cache-folder option has been deprecated; use rc settings instead",error:!sF.default.NETLIFY}]);if(a!==null)return a;let n=this.mode==="update-lockfile";if(n&&(this.immutable||this.immutableCache))throw new nt(`${he.pretty(r,"--immutable",he.Type.CODE)} and ${he.pretty(r,"--immutable-cache",he.Type.CODE)} cannot be used with ${he.pretty(r,"--mode=update-lockfile",he.Type.CODE)}`);let c=(this.immutable??r.get("enableImmutableInstalls"))&&!n,f=this.immutableCache&&!n;if(r.projectCwd!==null){let R=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async N=>{let U=!1;await Rvt(r,c)&&(N.reportInfo(48,"Automatically removed core plugins that are now builtins \u{1F44D}"),U=!0),await Tvt(r,c)&&(N.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),U=!0),U&&N.reportSeparator()});if(R.hasErrors())return R.exitCode()}if(r.projectCwd!==null){let R=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async N=>{if(ze.telemetry?.isNew)ze.telemetry.commitTips(),N.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),N.reportInfo(65,`Run ${he.pretty(r,"yarn config set --home enableTelemetry 0",he.Type.CODE)} to disable`),N.reportSeparator();else if(ze.telemetry?.shouldShowTips){let U=await An.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0}).catch(()=>null);if(U!==null){let W=null;if(un!==null){let ie=k5.default.prerelease(un)?"canary":"stable",Ae=U.latest[ie];k5.default.gt(Ae,un)&&(W=[ie,Ae])}if(W)ze.telemetry.commitTips(),N.reportInfo(88,`${he.applyStyle(r,`A new ${W[0]} version of Yarn is available:`,he.Style.BOLD)} ${q.prettyReference(r,W[1])}!`),N.reportInfo(88,`Upgrade now by running ${he.pretty(r,`yarn set version ${W[1]}`,he.Type.CODE)}`),N.reportSeparator();else{let te=ze.telemetry.selectTip(U.tips);te&&(N.reportInfo(89,he.pretty(r,te.message,he.Type.MARKDOWN_INLINE)),te.url&&N.reportInfo(89,`Learn more at ${te.url}`),N.reportSeparator())}}}});if(R.hasErrors())return R.exitCode()}let{project:p,workspace:h}=await Tt.find(r,this.context.cwd),E=p.lockfileLastVersion;if(E!==null){let R=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async N=>{let U={};for(let W of kvt)W.selector(E)&&typeof r.sources.get(W.name)>"u"&&(r.use("<compat>",{[W.name]:W.value},p.cwd,{overwrite:!0}),U[W.name]=W.value);Object.keys(U).length>0&&(await ze.updateConfiguration(p.cwd,U),N.reportInfo(87,"Migrated your project to the latest Yarn version \u{1F680}"),N.reportSeparator())});if(R.hasErrors())return R.exitCode()}let C=await Jr.find(r,{immutable:f,check:this.checkCache});if(!h)throw new ar(p.cwd,this.context.cwd);await p.restoreInstallState({restoreResolutions:!1});let S=r.get("enableHardenedMode");S&&typeof r.sources.get("enableHardenedMode")>"u"&&await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async R=>{R.reportWarning(0,"Yarn detected that the current workflow is executed from a public pull request. For safety the hardened mode has been enabled."),R.reportWarning(0,`It will prevent malicious lockfile manipulations, in exchange for a slower install time. You can opt-out if necessary; check our ${he.applyHyperlink(r,"documentation","https://yarnpkg.com/features/security#hardened-mode")} for more details.`),R.reportSeparator()}),(this.refreshLockfile??S)&&(p.lockfileNeedsRefresh=!0);let P=this.checkResolutions??S;return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout,forceSectionAlignment:!0,includeLogs:!0,includeVersion:!0},async R=>{await p.install({cache:C,report:R,immutable:c,checkResolutions:P,mode:this.mode})})).exitCode()}},Qvt="<<<<<<<";async function Tvt(t,e){if(!t.projectCwd)return!1;let r=K.join(t.projectCwd,Er.lockfile);if(!await le.existsPromise(r)||!(await le.readFilePromise(r,"utf8")).includes(Qvt))return!1;if(e)throw new Yt(47,"Cannot autofix a lockfile when running an immutable install");let a=await Gr.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:t.projectCwd});if(a.code!==0&&(a=await Gr.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0&&(a=await Gr.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0)throw new Yt(83,"Git returned an error when trying to find the commits pertaining to the conflict");let n=await Promise.all(a.stdout.trim().split(/\n/).map(async f=>{let p=await Gr.execvp("git",["show",`${f}:./${Er.lockfile}`],{cwd:t.projectCwd});if(p.code!==0)throw new Yt(83,`Git returned an error when trying to access the lockfile content in ${f}`);try{return cs(p.stdout)}catch{throw new Yt(46,"A variant of the conflicting lockfile failed to parse")}}));n=n.filter(f=>!!f.__metadata);for(let f of n){if(f.__metadata.version<7)for(let p of Object.keys(f)){if(p==="__metadata")continue;let h=q.parseDescriptor(p,!0),E=t.normalizeDependency(h),C=q.stringifyDescriptor(E);C!==p&&(f[C]=f[p],delete f[p])}for(let p of Object.keys(f)){if(p==="__metadata")continue;let h=f[p].checksum;typeof h>"u"||h.includes("/")||(f[p].checksum=`${f.__metadata.cacheKey}/${h}`)}}let c=Object.assign({},...n);c.__metadata.version=`${Math.min(...n.map(f=>parseInt(f.__metadata.version??0)))}`,c.__metadata.cacheKey="merged";for(let[f,p]of Object.entries(c))typeof p=="string"&&delete c[f];return await le.changeFilePromise(r,il(c),{automaticNewlines:!0}),!0}async function Rvt(t,e){if(!t.projectCwd)return!1;let r=[],s=K.join(t.projectCwd,".yarn/plugins/@yarnpkg");return await ze.updateConfiguration(t.projectCwd,{plugins:n=>{if(!Array.isArray(n))return n;let c=n.filter(f=>{if(!f.path)return!0;let p=K.resolve(t.projectCwd,f.path),h=hv.has(f.spec)&&K.contains(s,p);return h&&r.push(p),!h});return c.length===0?ze.deleteProperty:c.length===n.length?n:c}},{immutable:e})?(await Promise.all(r.map(async n=>{await le.removePromise(n)})),!0):!1}Ve();bt();Wt();var BC=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=ge.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=ge.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=ge.Rest()}static{this.paths=[["link"]]}static{this.usage=ot.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd),n=await Jr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=s.topLevelWorkspace,f=[];for(let p of this.destinations){let h=K.resolve(this.context.cwd,ue.toPortablePath(p)),E=await ze.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:S}=await Tt.find(E,h);if(s.cwd===C.cwd)throw new nt(`Invalid destination '${p}'; Can't link the project to itself`);if(!S)throw new ar(C.cwd,h);if(this.all){let P=!1;for(let I of C.workspaces)I.manifest.name&&(!I.manifest.private||this.private)&&(f.push(I),P=!0);if(!P)throw new nt(`No workspace found to be linked in the target project: ${p}`)}else{if(!S.manifest.name)throw new nt(`The target workspace at '${p}' doesn't have a name and thus cannot be linked`);if(S.manifest.private&&!this.private)throw new nt(`The target workspace at '${p}' is marked private - use the --private flag to link it anyway`);f.push(S)}}for(let p of f){let h=q.stringifyIdent(p.anchoredLocator),E=this.relative?K.relative(s.cwd,p.cwd):p.cwd;c.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${E}`})}return await s.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Wt();var vC=class extends ut{constructor(){super(...arguments);this.args=ge.Proxy()}static{this.paths=[["node"]]}static{this.usage=ot.Usage({description:"run node with the hook already setup",details:` + This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). + + The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. + `,examples:[["Run a Node script","$0 node ./my-script.js"]]})}async execute(){return this.cli.run(["exec","node",...this.args])}};Ve();Wt();var SC=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","check"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:` + Check only the plugins from https. + + If this command detects any plugin differences in the CI environment, it will throw an error. + `,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=await ze.findRcFiles(this.context.cwd);return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{for(let c of s)if(c.data?.plugins)for(let f of c.data.plugins){if(!f.checksum||!f.spec.match(/^https?:/))continue;let p=await An.get(f.spec,{configuration:r}),h=Nn.makeHash(p);if(f.checksum===h)continue;let E=he.pretty(r,f.path,he.Type.PATH),C=he.pretty(r,f.spec,he.Type.URL),S=`${E} is different from the file provided by ${C}`;n.reportJson({...f,newChecksum:h}),n.reportError(0,S)}})).exitCode()}};Ve();Ve();bt();Wt();var rBe=Ie("os");Ve();bt();Wt();var X2e=Ie("os");Ve();Bc();Wt();var Fvt="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function vm(t,e){let r=await An.get(Fvt,{configuration:t}),s=cs(r.toString());return Object.fromEntries(Object.entries(s).filter(([a,n])=>!e||Or.satisfiesWithPrereleases(e,n.range??"<4.0.0-rc.1")))}var DC=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","list"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{let n=await vm(r,un);for(let[c,{experimental:f,...p}]of Object.entries(n)){let h=c;f&&(h+=" [experimental]"),a.reportJson({name:c,experimental:f,...p}),a.reportInfo(null,h)}})).exitCode()}};var Nvt=/^[0-9]+$/,Ovt=process.platform==="win32";function $2e(t){return Nvt.test(t)?`pull/${t}/head`:t}var Lvt=({repository:t,branch:e},r)=>[["git","init",ue.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin","--depth=1",$2e(e)],["git","reset","--hard","FETCH_HEAD"]],Mvt=({branch:t})=>[["git","fetch","origin","--depth=1",$2e(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],_vt=({plugins:t,noMinify:e},r,s)=>[["yarn","build:cli",...new Array().concat(...t.map(a=>["--plugin",K.resolve(s,a)])),...e?["--no-minify"]:[],"|"],[Ovt?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",ue.fromPortablePath(r),"|"]],bC=class extends ut{constructor(){super(...arguments);this.installPath=ge.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ge.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ge.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=ge.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"});this.noMinify=ge.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=ge.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=ge.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}static{this.paths=[["set","version","from","sources"]]}static{this.usage=ot.Usage({description:"build Yarn from master",details:` + This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. + + By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. + `,examples:[["Build Yarn from master","$0 set version from sources"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Tt.find(r,this.context.cwd),a=typeof this.installPath<"u"?K.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):K.resolve(ue.toPortablePath((0,X2e.tmpdir)()),"yarnpkg-sources",Nn.makeHash(this.repository).slice(0,6));return(await Ot.start({configuration:r,stdout:this.context.stdout},async c=>{await Q5(this,{configuration:r,report:c,target:a}),c.reportSeparator(),c.reportInfo(0,"Building a fresh bundle"),c.reportSeparator();let f=await Gr.execvp("git",["rev-parse","--short","HEAD"],{cwd:a,strict:!0}),p=K.join(a,`packages/yarnpkg-cli/bundles/yarn-${f.stdout.trim()}.js`);le.existsSync(p)||(await uS(_vt(this,p,a),{configuration:r,context:this.context,target:a}),c.reportSeparator());let h=await le.readFilePromise(p);if(!this.dryRun){let{bundleVersion:E}=await x5(r,null,async()=>h,{report:c});this.skipPlugins||await Uvt(this,E,{project:s,report:c,target:a})}})).exitCode()}};async function uS(t,{configuration:e,context:r,target:s}){for(let[a,...n]of t){let c=n[n.length-1]==="|";if(c&&n.pop(),c)await Gr.pipevp(a,n,{cwd:s,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${he.pretty(e,` $ ${[a,...n].join(" ")}`,"grey")} +`);try{await Gr.execvp(a,n,{cwd:s,strict:!0})}catch(f){throw r.stdout.write(f.stdout||f.stack),f}}}}async function Q5(t,{configuration:e,report:r,target:s}){let a=!1;if(!t.force&&le.existsSync(K.join(s,".git"))){r.reportInfo(0,"Fetching the latest commits"),r.reportSeparator();try{await uS(Mvt(t),{configuration:e,context:t.context,target:s}),a=!0}catch{r.reportSeparator(),r.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(0,"Cloning the remote repository"),r.reportSeparator(),await le.removePromise(s),await le.mkdirPromise(s,{recursive:!0}),await uS(Lvt(t,s),{configuration:e,context:t.context,target:s}))}async function Uvt(t,e,{project:r,report:s,target:a}){let n=await vm(r.configuration,e),c=new Set(Object.keys(n));for(let f of r.configuration.plugins.keys())c.has(f)&&await T5(f,t,{project:r,report:s,target:a})}Ve();Ve();bt();Wt();var eBe=et(Ai()),tBe=Ie("vm");var PC=class extends ut{constructor(){super(...arguments);this.name=ge.String();this.checksum=ge.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}static{this.paths=[["plugin","import"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"download a plugin",details:` + This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. + + Three types of plugin references are accepted: + + - If the plugin is stored within the Yarn repository, it can be referenced by name. + - Third-party plugins can be referenced directly through their public urls. + - Local plugins can be referenced by their path on the disk. + + If the \`--no-checksum\` option is set, Yarn will no longer care if the plugin is modified. + + Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Ot.start({configuration:r,stdout:this.context.stdout},async a=>{let{project:n}=await Tt.find(r,this.context.cwd),c,f;if(this.name.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.name)){let p=K.resolve(this.context.cwd,ue.toPortablePath(this.name));a.reportInfo(0,`Reading ${he.pretty(r,p,he.Type.PATH)}`),c=K.relative(n.cwd,p),f=await le.readFilePromise(p)}else{let p;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new Yt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}c=this.name,p=this.name}else{let h=q.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(h.reference!=="unknown"&&!eBe.default.valid(h.reference))throw new Yt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let E=q.stringifyIdent(h),C=await vm(r,un);if(!Object.hasOwn(C,E)){let S=`Couldn't find a plugin named ${q.prettyIdent(r,h)} on the remote registry. +`;throw r.plugins.has(E)?S+=`A plugin named ${q.prettyIdent(r,h)} is already installed; possibly attempting to import a built-in plugin.`:S+=`Note that only the plugins referenced on our website (${he.pretty(r,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",he.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${he.pretty(r,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",he.Type.URL)}).`,new Yt(51,S)}c=E,p=C[E].url,h.reference!=="unknown"?p=p.replace(/\/master\//,`/${E}/${h.reference}/`):un!==null&&(p=p.replace(/\/master\//,`/@yarnpkg/cli/${un}/`))}a.reportInfo(0,`Downloading ${he.pretty(r,p,"green")}`),f=await An.get(p,{configuration:r})}await R5(c,f,{checksum:this.checksum,project:n,report:a})})).exitCode()}};async function R5(t,e,{checksum:r=!0,project:s,report:a}){let{configuration:n}=s,c={},f={exports:c};(0,tBe.runInNewContext)(e.toString(),{module:f,exports:c});let h=`.yarn/plugins/${f.exports.name}.cjs`,E=K.resolve(s.cwd,h);a.reportInfo(0,`Saving the new plugin in ${he.pretty(n,h,"magenta")}`),await le.mkdirPromise(K.dirname(E),{recursive:!0}),await le.writeFilePromise(E,e);let C={path:h,spec:t};r&&(C.checksum=Nn.makeHash(e)),await ze.addPlugin(s.cwd,[C])}var Hvt=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],xC=class extends ut{constructor(){super(...arguments);this.installPath=ge.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ge.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ge.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=ge.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=ge.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=ge.String()}static{this.paths=[["plugin","import","from","sources"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. + + The plugins can be referenced by their short name if sourced from the official Yarn repository. + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=typeof this.installPath<"u"?K.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):K.resolve(ue.toPortablePath((0,rBe.tmpdir)()),"yarnpkg-sources",Nn.makeHash(this.repository).slice(0,6));return(await Ot.start({configuration:r,stdout:this.context.stdout},async n=>{let{project:c}=await Tt.find(r,this.context.cwd),f=q.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),p=q.stringifyIdent(f),h=await vm(r,un);if(!Object.hasOwn(h,p))throw new Yt(51,`Couldn't find a plugin named "${p}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let E=p;await Q5(this,{configuration:r,report:n,target:s}),await T5(E,this,{project:c,report:n,target:s})})).exitCode()}};async function T5(t,{context:e,noMinify:r},{project:s,report:a,target:n}){let c=t.replace(/@yarnpkg\//,""),{configuration:f}=s;a.reportSeparator(),a.reportInfo(0,`Building a fresh ${c}`),a.reportSeparator(),await uS(Hvt({pluginName:c,noMinify:r},n),{configuration:f,context:e,target:n}),a.reportSeparator();let p=K.resolve(n,`packages/${c}/bundles/${t}.js`),h=await le.readFilePromise(p);await R5(t,h,{project:s,report:a})}Ve();bt();Wt();var kC=class extends ut{constructor(){super(...arguments);this.name=ge.String()}static{this.paths=[["plugin","remove"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. + + **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. + `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Tt.find(r,this.context.cwd);return(await Ot.start({configuration:r,stdout:this.context.stdout},async n=>{let c=this.name,f=q.parseIdent(c);if(!r.plugins.has(c))throw new nt(`${q.prettyIdent(r,f)} isn't referenced by the current configuration`);let p=`.yarn/plugins/${c}.cjs`,h=K.resolve(s.cwd,p);le.existsSync(h)&&(n.reportInfo(0,`Removing ${he.pretty(r,p,he.Type.PATH)}...`),await le.removePromise(h)),n.reportInfo(0,"Updating the configuration..."),await ze.updateConfiguration(s.cwd,{plugins:E=>{if(!Array.isArray(E))return E;let C=E.filter(S=>S.path!==p);return C.length===0?ze.deleteProperty:C.length===E.length?E:C}})})).exitCode()}};Ve();Wt();var QC=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","runtime"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` + This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. + `,examples:[["List the currently active plugins","$0 plugin runtime"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{for(let n of r.plugins.keys()){let c=this.context.plugins.plugins.has(n),f=n;c&&(f+=" [builtin]"),a.reportJson({name:n,builtin:c}),a.reportInfo(null,`${f}`)}})).exitCode()}};Ve();Ve();Wt();var TC=class extends ut{constructor(){super(...arguments);this.idents=ge.Rest()}static{this.paths=[["rebuild"]]}static{this.usage=ot.Usage({description:"rebuild the project's native packages",details:` + This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. + + Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). + + By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd),n=await Jr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);let c=new Set;for(let f of this.idents)c.add(q.parseIdent(f).identHash);if(await s.restoreInstallState({restoreResolutions:!1}),await s.resolveEverything({cache:n,report:new Yi}),c.size>0)for(let f of s.storedPackages.values())c.has(f.identHash)&&(s.storedBuildState.delete(f.locatorHash),s.skippedBuilds.delete(f.locatorHash));else s.storedBuildState.clear(),s.skippedBuilds.clear();return await s.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ve();Ve();Ve();Wt();var F5=et(Sa());Ul();var RC=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:po(ec)});this.patterns=ge.Rest()}static{this.paths=[["remove"]]}static{this.usage=ot.Usage({description:"remove dependencies from the project",details:` + This command will remove the packages matching the specified patterns from the current workspace. + + If the \`--mode=<mode>\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: + + - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. + + - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. + + This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd),n=await Jr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=this.all?s.workspaces:[a],f=["dependencies","devDependencies","peerDependencies"],p=[],h=!1,E=[];for(let I of this.patterns){let R=!1,N=q.parseIdent(I);for(let U of c){let W=[...U.manifest.peerDependenciesMeta.keys()];for(let te of(0,F5.default)(W,I))U.manifest.peerDependenciesMeta.delete(te),h=!0,R=!0;for(let te of f){let ie=U.manifest.getForScope(te),Ae=[...ie.values()].map(ce=>q.stringifyIdent(ce));for(let ce of(0,F5.default)(Ae,q.stringifyIdent(N))){let{identHash:me}=q.parseIdent(ce),pe=ie.get(me);if(typeof pe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");U.manifest[te].delete(me),E.push([U,te,pe]),h=!0,R=!0}}}R||p.push(I)}let C=p.length>1?"Patterns":"Pattern",S=p.length>1?"don't":"doesn't",P=this.all?"any":"this";if(p.length>0)throw new nt(`${C} ${he.prettyList(r,p,he.Type.CODE)} ${S} match any packages referenced by ${P} workspace`);return h?(await r.triggerMultipleHooks(I=>I.afterWorkspaceDependencyRemoval,E),await s.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})):0}};Ve();Ve();Wt();var nBe=Ie("util"),FC=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["run"]]}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);return(await Ot.start({configuration:r,stdout:this.context.stdout,json:this.json},async c=>{let f=a.manifest.scripts,p=je.sortMap(f.keys(),C=>C),h={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},E=p.reduce((C,S)=>Math.max(C,S.length),0);for(let[C,S]of f.entries())c.reportInfo(null,`${C.padEnd(E," ")} ${(0,nBe.inspect)(S,h)}`),c.reportJson({name:C,script:S})})).exitCode()}};Ve();Ve();Wt();var NC=class extends ut{constructor(){super(...arguments);this.inspect=ge.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=ge.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=ge.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=ge.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=ge.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=ge.Boolean("--silent",{hidden:!0});this.scriptName=ge.String();this.args=ge.Proxy()}static{this.paths=[["run"]]}static{this.usage=ot.Usage({description:"run a script defined in the package.json",details:` + This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: + + - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. + + - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. + + - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. + + Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a,locator:n}=await Tt.find(r,this.context.cwd);await s.restoreInstallState();let c=this.topLevel?s.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await In.hasPackageScript(c,this.scriptName,{project:s}))return await In.executePackageScript(c,this.scriptName,this.args,{project:s,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let f=await In.getPackageAccessibleBinaries(c,{project:s});if(f.get(this.scriptName)){let h=[];return this.inspect&&(typeof this.inspect=="string"?h.push(`--inspect=${this.inspect}`):h.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?h.push(`--inspect-brk=${this.inspectBrk}`):h.push("--inspect-brk")),this.require&&h.push(`--require=${this.require}`),await In.executePackageAccessibleBinary(c,this.scriptName,this.args,{cwd:this.context.cwd,project:s,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:h,packageAccessibleBinaries:f})}if(!this.topLevel&&!this.binariesOnly&&a&&this.scriptName.includes(":")){let E=(await Promise.all(s.workspaces.map(async C=>C.manifest.scripts.has(this.scriptName)?C:null))).filter(C=>C!==null);if(E.length===1)return await In.executeWorkspaceScript(E[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new nt(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${q.prettyLocator(r,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new nt(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${q.prettyLocator(r,n)}).`);{if(this.scriptName==="global")throw new nt("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let h=[this.scriptName].concat(this.args);for(let[E,C]of $I)for(let S of C)if(h.length>=S.length&&JSON.stringify(h.slice(0,S.length))===JSON.stringify(S))throw new nt(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${E} plugin. You can install it with "yarn plugin import ${E}".`);throw new nt(`Couldn't find a script named "${this.scriptName}".`)}}};Ve();Ve();Wt();var OC=class extends ut{constructor(){super(...arguments);this.descriptor=ge.String();this.resolution=ge.String()}static{this.paths=[["set","resolution"]]}static{this.usage=ot.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, edit the `resolutions` field in your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 npm:1.5.0"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd),n=await Jr.find(r);if(await s.restoreInstallState({restoreResolutions:!1}),!a)throw new ar(s.cwd,this.context.cwd);let c=q.parseDescriptor(this.descriptor,!0),f=q.makeDescriptor(c,this.resolution);return s.storedDescriptors.set(c.descriptorHash,c),s.storedDescriptors.set(f.descriptorHash,f),s.resolutionAliases.set(c.descriptorHash,f.descriptorHash),await s.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Ve();bt();Wt();var iBe=et(Sa()),LC=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=ge.Rest()}static{this.paths=[["unlink"]]}static{this.usage=ot.Usage({description:"disconnect the local project from another one",details:` + This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd),n=await Jr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);let c=s.topLevelWorkspace,f=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:p,reference:h}of c.manifest.resolutions)h.startsWith("portal:")&&f.add(p.descriptor.fullName);if(this.leadingArguments.length>0)for(let p of this.leadingArguments){let h=K.resolve(this.context.cwd,ue.toPortablePath(p));if(je.isPathLike(p)){let E=await ze.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:S}=await Tt.find(E,h);if(!S)throw new ar(C.cwd,h);if(this.all){for(let P of C.workspaces)P.manifest.name&&f.add(q.stringifyIdent(P.anchoredLocator));if(f.size===0)throw new nt("No workspace found to be unlinked in the target project")}else{if(!S.manifest.name)throw new nt("The target workspace doesn't have a name and thus cannot be unlinked");f.add(q.stringifyIdent(S.anchoredLocator))}}else{let E=[...c.manifest.resolutions.map(({pattern:C})=>C.descriptor.fullName)];for(let C of(0,iBe.default)(E,p))f.add(C)}}return c.manifest.resolutions=c.manifest.resolutions.filter(({pattern:p})=>!f.has(p.descriptor.fullName)),await s.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ve();Ve();Ve();Wt();var sBe=et(nS()),N5=et(Sa());Ul();var MC=class extends ut{constructor(){super(...arguments);this.interactive=ge.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.fixed=ge.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=ge.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=ge.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=ge.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:po(ec)});this.patterns=ge.Rest()}static{this.paths=[["up"]]}static{this.usage=ot.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]})}static{this.schema=[tB("recursive",Wf.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})]}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd),n=await Jr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=[...s.storedDescriptors.values()],f=c.map(E=>q.stringifyIdent(E)),p=new Set;for(let E of this.patterns){if(q.parseDescriptor(E).range!=="unknown")throw new nt("Ranges aren't allowed when using --recursive");for(let C of(0,N5.default)(f,E)){let S=q.parseIdent(C);p.add(S.identHash)}}let h=c.filter(E=>p.has(E.identHash));for(let E of h)s.storedDescriptors.delete(E.descriptorHash),s.storedResolutions.delete(E.descriptorHash);return await s.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}async executeUpClassic(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd),n=await Jr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=this.fixed,f=r.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),p=sS(this,s),h=f?["keep","reuse","project","latest"]:["project","latest"],E=[],C=[];for(let N of this.patterns){let U=!1,W=q.parseDescriptor(N),te=q.stringifyIdent(W);for(let ie of s.workspaces)for(let Ae of["dependencies","devDependencies"]){let me=[...ie.manifest.getForScope(Ae).values()].map(Be=>q.stringifyIdent(Be)),pe=te==="*"?me:(0,N5.default)(me,te);for(let Be of pe){let Ce=q.parseIdent(Be),g=ie.manifest[Ae].get(Ce.identHash);if(typeof g>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let we=q.makeDescriptor(Ce,W.range);E.push(Promise.resolve().then(async()=>[ie,Ae,g,await oS(we,{project:s,workspace:ie,cache:n,target:Ae,fixed:c,modifier:p,strategies:h})])),U=!0}}U||C.push(N)}if(C.length>1)throw new nt(`Patterns ${he.prettyList(r,C,he.Type.CODE)} don't match any packages referenced by any workspace`);if(C.length>0)throw new nt(`Pattern ${he.prettyList(r,C,he.Type.CODE)} doesn't match any packages referenced by any workspace`);let S=await Promise.all(E),P=await uA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async N=>{for(let[,,U,{suggestions:W,rejections:te}]of S){let ie=W.filter(Ae=>Ae.descriptor!==null);if(ie.length===0){let[Ae]=te;if(typeof Ae>"u")throw new Error("Assertion failed: Expected an error to have been set");let ce=this.cli.error(Ae);s.configuration.get("enableNetwork")?N.reportError(27,`${q.prettyDescriptor(r,U)} can't be resolved to a satisfying range + +${ce}`):N.reportError(27,`${q.prettyDescriptor(r,U)} can't be resolved to a satisfying range (note: network resolution has been disabled) + +${ce}`)}else ie.length>1&&!f&&N.reportError(27,`${q.prettyDescriptor(r,U)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(P.hasErrors())return P.exitCode();let I=!1,R=[];for(let[N,U,,{suggestions:W}]of S){let te,ie=W.filter(pe=>pe.descriptor!==null),Ae=ie[0].descriptor,ce=ie.every(pe=>q.areDescriptorsEqual(pe.descriptor,Ae));ie.length===1||ce?te=Ae:(I=!0,{answer:te}=await(0,sBe.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${q.prettyWorkspace(r,N)} \u276F ${U}?`,choices:W.map(({descriptor:pe,name:Be,reason:Ce})=>pe?{name:Be,hint:Ce,descriptor:pe}:{name:Be,hint:Ce,disabled:!0}),onCancel:()=>process.exit(130),result(pe){return this.find(pe,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let me=N.manifest[U].get(te.identHash);if(typeof me>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(me.descriptorHash!==te.descriptorHash)N.manifest[U].set(te.identHash,te),R.push([N,U,me,te]);else{let pe=r.makeResolver(),Be={project:s,resolver:pe},Ce=r.normalizeDependency(me),g=pe.bindDescriptor(Ce,N.anchoredLocator,Be);s.forgetResolution(g)}}return await r.triggerMultipleHooks(N=>N.afterWorkspaceDependencyReplacement,R),I&&this.context.stdout.write(` +`),await s.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}};Ve();Ve();Ve();Wt();var _C=class extends ut{constructor(){super(...arguments);this.recursive=ge.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=ge.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=ge.String()}static{this.paths=[["why"]]}static{this.usage=ot.Usage({description:"display the reason why a package is needed",details:` + This command prints the exact reasons why a package appears in the dependency tree. + + If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. + `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=q.parseIdent(this.package).identHash,c=this.recursive?qvt(s,n,{configuration:r,peers:this.peers}):jvt(s,n,{configuration:r,peers:this.peers});Qs.emitTree(c,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1})}};function jvt(t,e,{configuration:r,peers:s}){let a=je.sortMap(t.storedPackages.values(),f=>q.stringifyLocator(f)),n={},c={children:n};for(let f of a){let p={};for(let E of f.dependencies.values()){if(!s&&f.peerDependencies.has(E.identHash))continue;let C=t.storedResolutions.get(E.descriptorHash);if(!C)throw new Error("Assertion failed: The resolution should have been registered");let S=t.storedPackages.get(C);if(!S)throw new Error("Assertion failed: The package should have been registered");if(S.identHash!==e)continue;{let I=q.stringifyLocator(f);n[I]={value:[f,he.Type.LOCATOR],children:p}}let P=q.stringifyLocator(S);p[P]={value:[{descriptor:E,locator:S},he.Type.DEPENDENT]}}}return c}function qvt(t,e,{configuration:r,peers:s}){let a=je.sortMap(t.workspaces,S=>q.stringifyLocator(S.anchoredLocator)),n=new Set,c=new Set,f=S=>{if(n.has(S.locatorHash))return c.has(S.locatorHash);if(n.add(S.locatorHash),S.identHash===e)return c.add(S.locatorHash),!0;let P=!1;S.identHash===e&&(P=!0);for(let I of S.dependencies.values()){if(!s&&S.peerDependencies.has(I.identHash))continue;let R=t.storedResolutions.get(I.descriptorHash);if(!R)throw new Error("Assertion failed: The resolution should have been registered");let N=t.storedPackages.get(R);if(!N)throw new Error("Assertion failed: The package should have been registered");f(N)&&(P=!0)}return P&&c.add(S.locatorHash),P};for(let S of a)f(S.anchoredPackage);let p=new Set,h={},E={children:h},C=(S,P,I)=>{if(!c.has(S.locatorHash))return;let R=I!==null?he.tuple(he.Type.DEPENDENT,{locator:S,descriptor:I}):he.tuple(he.Type.LOCATOR,S),N={},U={value:R,children:N},W=q.stringifyLocator(S);if(P[W]=U,!(I!==null&&t.tryWorkspaceByLocator(S))&&!p.has(S.locatorHash)){p.add(S.locatorHash);for(let te of S.dependencies.values()){if(!s&&S.peerDependencies.has(te.identHash))continue;let ie=t.storedResolutions.get(te.descriptorHash);if(!ie)throw new Error("Assertion failed: The resolution should have been registered");let Ae=t.storedPackages.get(ie);if(!Ae)throw new Error("Assertion failed: The package should have been registered");C(Ae,N,te)}}};for(let S of a)C(S.anchoredPackage,h,null);return E}Ve();var W5={};Vt(W5,{GitFetcher:()=>AS,GitResolver:()=>pS,default:()=>uSt,gitUtils:()=>Qa});Ve();bt();var Qa={};Vt(Qa,{TreeishProtocols:()=>fS,clone:()=>G5,fetchBase:()=>bBe,fetchChangedFiles:()=>PBe,fetchChangedWorkspaces:()=>lSt,fetchRoot:()=>DBe,isGitUrl:()=>jC,lsRemote:()=>SBe,normalizeLocator:()=>aSt,normalizeRepoUrl:()=>UC,resolveUrl:()=>q5,splitRepoUrl:()=>G0,validateRepoUrl:()=>j5});Ve();bt();Wt();var wBe=et(EBe()),BBe=et(c6()),HC=et(Ie("querystring")),U5=et(Ai());function _5(t,e,r){let s=t.indexOf(r);return t.lastIndexOf(e,s>-1?s:1/0)}function IBe(t){try{return new URL(t)}catch{return}}function sSt(t){let e=_5(t,"@","#"),r=_5(t,":","#");return r>e&&(t=`${t.slice(0,r)}/${t.slice(r+1)}`),_5(t,":","#")===-1&&t.indexOf("//")===-1&&(t=`ssh://${t}`),t}function CBe(t){return IBe(t)||IBe(sSt(t))}function UC(t,{git:e=!1}={}){if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let r=CBe(t);r&&(t=r.href),t=t.replace(/^git\+([^:]+):/,"$1:")}return t}function vBe(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var oSt=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],fS=(a=>(a.Commit="commit",a.Head="head",a.Tag="tag",a.Semver="semver",a))(fS||{});function jC(t){return t?oSt.some(e=>!!t.match(e)):!1}function G0(t){t=UC(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:"head",request:"HEAD"},extra:{}};let r=t.slice(0,e),s=t.slice(e+1);if(s.match(/^[a-z]+=/)){let a=HC.default.parse(s);for(let[p,h]of Object.entries(a))if(typeof h!="string")throw new Error(`Assertion failed: The ${p} parameter must be a literal string`);let n=Object.values(fS).find(p=>Object.hasOwn(a,p)),[c,f]=typeof n<"u"?[n,a[n]]:["head","HEAD"];for(let p of Object.values(fS))delete a[p];return{repo:r,treeish:{protocol:c,request:f},extra:a}}else{let a=s.indexOf(":"),[n,c]=a===-1?[null,s]:[s.slice(0,a),s.slice(a+1)];return{repo:r,treeish:{protocol:n,request:c},extra:{}}}}function aSt(t){return q.makeLocator(t,UC(t.reference))}function j5(t,{configuration:e}){let r=UC(t,{git:!0});if(!An.getNetworkSettings(`https://${(0,wBe.default)(r).resource}`,{configuration:e}).enableNetwork)throw new Yt(80,`Request to '${r}' has been blocked because of your configuration settings`);return r}async function SBe(t,e){let r=j5(t,{configuration:e}),s=await H5("listing refs",["ls-remote",r],{cwd:e.startingCwd,env:vBe()},{configuration:e,normalizedRepoUrl:r}),a=new Map,n=/^([a-f0-9]{40})\t([^\n]+)/gm,c;for(;(c=n.exec(s.stdout))!==null;)a.set(c[2],c[1]);return a}async function q5(t,e){let{repo:r,treeish:{protocol:s,request:a},extra:n}=G0(t),c=await SBe(r,e),f=(h,E)=>{switch(h){case"commit":{if(!E.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return HC.default.stringify({...n,commit:E})}case"head":{let C=c.get(E==="HEAD"?E:`refs/heads/${E}`);if(typeof C>"u")throw new Error(`Unknown head ("${E}")`);return HC.default.stringify({...n,commit:C})}case"tag":{let C=c.get(`refs/tags/${E}`);if(typeof C>"u")throw new Error(`Unknown tag ("${E}")`);return HC.default.stringify({...n,commit:C})}case"semver":{let C=Or.validRange(E);if(!C)throw new Error(`Invalid range ("${E}")`);let S=new Map([...c.entries()].filter(([I])=>I.startsWith("refs/tags/")).map(([I,R])=>[U5.default.parse(I.slice(10)),R]).filter(I=>I[0]!==null)),P=U5.default.maxSatisfying([...S.keys()],C);if(P===null)throw new Error(`No matching range ("${E}")`);return HC.default.stringify({...n,commit:S.get(P)})}case null:{let C;if((C=p("commit",E))!==null||(C=p("tag",E))!==null||(C=p("head",E))!==null)return C;throw E.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${h}")`)}},p=(h,E)=>{try{return f(h,E)}catch{return null}};return UC(`${r}#${f(s,a)}`)}async function G5(t,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:s,request:a}}=G0(t);if(s!=="commit")throw new Error("Invalid treeish protocol when cloning");let n=j5(r,{configuration:e}),c=await le.mktempPromise(),f={cwd:c,env:vBe()};return await H5("cloning the repository",["clone","-c core.autocrlf=false",n,ue.fromPortablePath(c)],f,{configuration:e,normalizedRepoUrl:n}),await H5("switching branch",["checkout",`${a}`],f,{configuration:e,normalizedRepoUrl:n}),c})}async function DBe(t){let e,r=t;do{if(e=r,await le.existsPromise(K.join(e,".git")))return e;r=K.dirname(e)}while(r!==e);return null}async function bBe(t,{baseRefs:e}){if(e.length===0)throw new nt("Can't run this command with zero base refs specified.");let r=[];for(let f of e){let{code:p}=await Gr.execvp("git",["merge-base",f,"HEAD"],{cwd:t});p===0&&r.push(f)}if(r.length===0)throw new nt(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:s}=await Gr.execvp("git",["merge-base","HEAD",...r],{cwd:t,strict:!0}),a=s.trim(),{stdout:n}=await Gr.execvp("git",["show","--quiet","--pretty=format:%s",a],{cwd:t,strict:!0}),c=n.trim();return{hash:a,title:c}}async function PBe(t,{base:e,project:r}){let s=je.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:a}=await Gr.execvp("git",["diff","--name-only",`${e}`],{cwd:t,strict:!0}),n=a.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>K.resolve(t,ue.toPortablePath(h))),{stdout:c}=await Gr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:t,strict:!0}),f=c.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>K.resolve(t,ue.toPortablePath(h))),p=[...new Set([...n,...f].sort())];return s?p.filter(h=>!K.relative(r.cwd,h).match(s)):p}async function lSt({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new nt("This command can only be run from within a Yarn project");let r=[K.resolve(e.cwd,Er.lockfile),K.resolve(e.cwd,e.configuration.get("cacheFolder")),K.resolve(e.cwd,e.configuration.get("installStatePath")),K.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(c=>c.populateYarnPaths,e,c=>{c!=null&&r.push(c)});let s=await DBe(e.configuration.projectCwd);if(s==null)throw new nt("This command can only be run on Git repositories");let a=await bBe(s,{baseRefs:typeof t=="string"?[t]:e.configuration.get("changesetBaseRefs")}),n=await PBe(s,{base:a.hash,project:e});return new Set(je.mapAndFilter(n,c=>{let f=e.tryWorkspaceByFilePath(c);return f===null?je.mapAndFilter.skip:r.some(p=>c.startsWith(p))?je.mapAndFilter.skip:f}))}async function H5(t,e,r,{configuration:s,normalizedRepoUrl:a}){try{return await Gr.execvp("git",e,{...r,strict:!0})}catch(n){if(!(n instanceof Gr.ExecError))throw n;let c=n.reportExtra,f=n.stderr.toString();throw new Yt(1,`Failed ${t}`,p=>{p.reportError(1,` ${he.prettyField(s,{label:"Repository URL",value:he.tuple(he.Type.URL,a)})}`);for(let h of f.matchAll(/^(.+?): (.*)$/gm)){let[,E,C]=h;E=E.toLowerCase();let S=E==="error"?"Error":`${(0,BBe.default)(E)} Error`;p.reportError(1,` ${he.prettyField(s,{label:S,value:he.tuple(he.Type.NO_HINT,C)})}`)}c?.(p)})}}var AS=class{supports(e,r){return jC(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,a=new Map(r.checksums);a.set(e.locatorHash,s);let n={...r,checksums:a},c=await this.downloadHosted(e,n);if(c!==null)return c;let[f,p,h]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${q.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(e,n),...r.cacheOptions});return{packageFs:f,releaseFs:p,prefixPath:q.getIdentVendorPath(e),checksum:h}}async downloadHosted(e,r){return r.project.configuration.reduceHook(s=>s.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let s=G0(e.reference),a=await G5(e.reference,r.project.configuration),n=K.resolve(a,s.extra.cwd??vt.dot),c=K.join(n,"package.tgz");await In.prepareExternalProject(n,c,{configuration:r.project.configuration,report:r.report,workspace:s.extra.workspace,locator:e});let f=await le.readFilePromise(c);return await je.releaseAfterUseAsync(async()=>await gs.convertToZip(f,{configuration:r.project.configuration,prefixPath:q.getIdentVendorPath(e),stripComponents:1}))}};Ve();Ve();var pS=class{supportsDescriptor(e,r){return jC(e.range)}supportsLocator(e,r){return jC(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=await q5(e.range,s.project.configuration);return[q.makeLocator(e,a)]}async getSatisfying(e,r,s,a){let n=G0(e.range);return{locators:s.filter(f=>{if(f.identHash!==e.identHash)return!1;let p=G0(f.reference);return!(n.repo!==p.repo||n.treeish.protocol==="commit"&&n.treeish.request!==p.treeish.request)}),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ht.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var cSt={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[AS],resolvers:[pS]};var uSt=cSt;Wt();var qC=class extends ut{constructor(){super(...arguments);this.since=ge.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=ge.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["workspaces","list"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Tt.find(r,this.context.cwd);return(await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{let c=this.since?await Qa.fetchChangedWorkspaces({ref:this.since,project:s}):s.workspaces,f=new Set(c);if(this.recursive)for(let p of[...c].map(h=>h.getRecursiveWorkspaceDependents()))for(let h of p)f.add(h);for(let p of f){let{manifest:h}=p;if(h.private&&this.noPrivate)continue;let E;if(this.verbose){let C=new Set,S=new Set;for(let P of Ht.hardDependencies)for(let[I,R]of h.getForScope(P)){let N=s.tryWorkspaceByDescriptor(R);N===null?s.workspacesByIdent.has(I)&&S.add(R):C.add(N)}E={workspaceDependencies:Array.from(C).map(P=>P.relativeCwd),mismatchedWorkspaceDependencies:Array.from(S).map(P=>q.stringifyDescriptor(P))}}n.reportInfo(null,`${p.relativeCwd}`),n.reportJson({location:p.relativeCwd,name:h.name?q.stringifyIdent(h.name):null,...E})}})).exitCode()}};Ve();Ve();Wt();var GC=class extends ut{constructor(){super(...arguments);this.workspaceName=ge.String();this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[["workspace"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` + This command will run a given sub-command on a single workspace. + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=s.workspaces,c=new Map(n.map(p=>[q.stringifyIdent(p.anchoredLocator),p])),f=c.get(this.workspaceName);if(f===void 0){let p=Array.from(c.keys()).sort();throw new nt(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + - ${p.join(` + - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:f.cwd})}};var fSt={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:xBe.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[aC,lC,cC,uC,OC,bC,EC,qC,pC,hC,gC,dC,sC,oC,fC,AC,mC,yC,IC,CC,wC,BC,LC,vC,SC,xC,PC,kC,DC,QC,TC,RC,FC,NC,MC,_C,GC]},ASt=fSt;var Z5={};Vt(Z5,{default:()=>hSt});Ve();var Qt={optional:!0},V5=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Qt,zenObservable:Qt}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Qt,zenObservable:Qt}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{"supports-color":Qt}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":Qt,"postcss-jsx":Qt,"postcss-less":Qt,"postcss-markdown":Qt,"postcss-scss":Qt}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Qt}}],["snowpack@>=3.3.0",{dependencies:{"node-gyp":"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Qt}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Qt,"vue-template-compiler":Qt}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Qt,"utf-8-validate":Qt}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{"babel-polyfill":"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{"cross-spawn":"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{"prop-types":"^15.7.2"}}],["@rebass/forms@*",{dependencies:{"@styled-system/should-forward-prop":"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Qt,"vuetify-loader":Qt}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Qt}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Qt}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Qt}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Qt}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Qt,tinyliquid:Qt,"liquid-node":Qt,jade:Qt,"then-jade":Qt,dust:Qt,"dustjs-helpers":Qt,"dustjs-linkedin":Qt,swig:Qt,"swig-templates":Qt,"razor-tmpl":Qt,atpl:Qt,liquor:Qt,twig:Qt,ejs:Qt,eco:Qt,jazz:Qt,jqtpl:Qt,hamljs:Qt,hamlet:Qt,whiskers:Qt,"haml-coffee":Qt,"hogan.js":Qt,templayed:Qt,handlebars:Qt,underscore:Qt,lodash:Qt,pug:Qt,"then-pug":Qt,qejs:Qt,walrus:Qt,mustache:Qt,just:Qt,ect:Qt,mote:Qt,toffee:Qt,dot:Qt,"bracket-template":Qt,ractive:Qt,nunjucks:Qt,htmling:Qt,"babel-core":Qt,plates:Qt,"react-dom":Qt,react:Qt,"arc-templates":Qt,vash:Qt,slm:Qt,marko:Qt,teacup:Qt,"coffee-script":Qt,squirrelly:Qt,twing:Qt}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Qt}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Qt,vue:Qt}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Qt}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Qt}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(t=>[t,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Qt,"webpack-command":Qt}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Qt}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Qt}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Qt,jimp:Qt}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Qt,"eslint-import-resolver-typescript":Qt,"eslint-import-resolver-webpack":Qt,"@typescript-eslint/parser":Qt}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Qt}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Qt}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Qt}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Qt}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{"vue-template-compiler":"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["parcel@*",{peerDependenciesMeta:{"@parcel/core":Qt}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Qt}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Qt}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Qt}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Qt}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}],["eslint-import-resolver-vite@<2.0.1",{dependencies:{debug:"^4.3.4",resolve:"^1.22.8"}}],["notistack@^3.0.0",{dependencies:{csstype:"^3.0.10"}}],["@fastify/type-provider-typebox@^5.0.0",{peerDependencies:{fastify:"^5.0.0"}}],["@fastify/type-provider-typebox@^4.0.0",{peerDependencies:{fastify:"^4.0.0"}}]];var K5;function kBe(){return typeof K5>"u"&&(K5=Ie("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),K5}var J5;function QBe(){return typeof J5>"u"&&(J5=Ie("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),J5}var z5;function TBe(){return typeof z5>"u"&&(z5=Ie("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),z5}var RBe=new Map([[q.makeIdent(null,"fsevents").identHash,kBe],[q.makeIdent(null,"resolve").identHash,QBe],[q.makeIdent(null,"typescript").identHash,TBe]]),pSt={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,s]of V5)e(q.parseDescriptor(r,!0),s)},getBuiltinPatch:async(t,e)=>{let r="compat/";if(!e.startsWith(r))return;let s=q.parseIdent(e.slice(r.length)),a=RBe.get(s.identHash)?.();return typeof a<"u"?a:null},reduceDependency:async(t,e,r,s)=>typeof RBe.get(t.identHash)>"u"?t:q.makeDescriptor(t,q.makeRange({protocol:"patch:",source:q.stringifyDescriptor(t),selector:`optional!builtin<compat/${q.stringifyIdent(t)}>`,params:null}))}},hSt=pSt;var g9={};Vt(g9,{ConstraintsCheckCommand:()=>XC,ConstraintsQueryCommand:()=>zC,ConstraintsSourceCommand:()=>ZC,default:()=>HSt});Ve();Ve();gS();var YC=class{constructor(e){this.project=e}createEnvironment(){let e=new WC(["cwd","ident"]),r=new WC(["workspace","type","ident"]),s=new WC(["ident"]),a={manifestUpdates:new Map,reportedErrors:new Map},n=new Map,c=new Map;for(let f of this.project.storedPackages.values()){let p=Array.from(f.peerDependencies.values(),h=>[q.stringifyIdent(h),h.range]);n.set(f.locatorHash,{workspace:null,ident:q.stringifyIdent(f),version:f.version,dependencies:new Map,peerDependencies:new Map(p.filter(([h])=>f.peerDependenciesMeta.get(h)?.optional!==!0)),optionalPeerDependencies:new Map(p.filter(([h])=>f.peerDependenciesMeta.get(h)?.optional===!0))})}for(let f of this.project.storedPackages.values()){let p=n.get(f.locatorHash);p.dependencies=new Map(Array.from(f.dependencies.values(),h=>{let E=this.project.storedResolutions.get(h.descriptorHash);if(typeof E>"u")throw new Error("Assertion failed: The resolution should have been registered");let C=n.get(E);if(typeof C>"u")throw new Error("Assertion failed: The package should have been registered");return[q.stringifyIdent(h),C]})),p.dependencies.delete(p.ident)}for(let f of this.project.workspaces){let p=q.stringifyIdent(f.anchoredLocator),h=f.manifest.exportTo({}),E=n.get(f.anchoredLocator.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");let C=(R,N,{caller:U=ps.getCaller()}={})=>{let W=hS(R),te=je.getMapWithDefault(a.manifestUpdates,f.cwd),ie=je.getMapWithDefault(te,W),Ae=je.getSetWithDefault(ie,N);U!==null&&Ae.add(U)},S=R=>C(R,void 0,{caller:ps.getCaller()}),P=R=>{je.getArrayWithDefault(a.reportedErrors,f.cwd).push(R)},I=e.insert({cwd:f.relativeCwd,ident:p,manifest:h,pkg:E,set:C,unset:S,error:P});c.set(f,I);for(let R of Ht.allDependencies)for(let N of f.manifest[R].values()){let U=q.stringifyIdent(N),W=()=>{C([R,U],void 0,{caller:ps.getCaller()})},te=Ae=>{C([R,U],Ae,{caller:ps.getCaller()})},ie=null;if(R!=="peerDependencies"&&(R!=="dependencies"||!f.manifest.devDependencies.has(N.identHash))){let Ae=f.anchoredPackage.dependencies.get(N.identHash);if(Ae){if(typeof Ae>"u")throw new Error("Assertion failed: The dependency should have been registered");let ce=this.project.storedResolutions.get(Ae.descriptorHash);if(typeof ce>"u")throw new Error("Assertion failed: The resolution should have been registered");let me=n.get(ce);if(typeof me>"u")throw new Error("Assertion failed: The package should have been registered");ie=me}}r.insert({workspace:I,ident:U,range:N.range,type:R,resolution:ie,update:te,delete:W,error:P})}}for(let f of this.project.storedPackages.values()){let p=this.project.tryWorkspaceByLocator(f);if(!p)continue;let h=c.get(p);if(typeof h>"u")throw new Error("Assertion failed: The workspace should have been registered");let E=n.get(f.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");E.workspace=h}return{workspaces:e,dependencies:r,packages:s,result:a}}async process(){let e=this.createEnvironment(),r={Yarn:{workspace:a=>e.workspaces.find(a)[0]??null,workspaces:a=>e.workspaces.find(a),dependency:a=>e.dependencies.find(a)[0]??null,dependencies:a=>e.dependencies.find(a),package:a=>e.packages.find(a)[0]??null,packages:a=>e.packages.find(a)}},s=await this.project.loadUserConfig();return s?.constraints?(await s.constraints(r),e.result):null}};Ve();Ve();Wt();var zC=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.query=ge.String()}static{this.paths=[["constraints","query"]]}static{this.usage=ot.Usage({category:"Constraints-related commands",description:"query the constraints fact database",details:` + This command will output all matches to the given prolog query. + `,examples:[["List all dependencies throughout the workspace","yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'"]]})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(ES(),yS)),s=await ze.find(this.context.cwd,this.context.plugins),{project:a}=await Tt.find(s,this.context.cwd),n=await r.find(a),c=this.query;return c.endsWith(".")||(c=`${c}.`),(await Ot.start({configuration:s,json:this.json,stdout:this.context.stdout},async p=>{for await(let h of n.query(c)){let E=Array.from(Object.entries(h)),C=E.length,S=E.reduce((P,[I])=>Math.max(P,I.length),0);for(let P=0;P<C;P++){let[I,R]=E[P];p.reportInfo(null,`${_St(P,C)}${I.padEnd(S," ")} = ${MSt(R)}`)}p.reportJson(h)}})).exitCode()}};function MSt(t){return typeof t!="string"?`${t}`:t.match(/^[a-zA-Z][a-zA-Z0-9_]+$/)?t:`'${t}'`}function _St(t,e){let r=t===0,s=t===e-1;return r&&s?"":r?"\u250C ":s?"\u2514 ":"\u2502 "}Ve();Wt();var ZC=class extends ut{constructor(){super(...arguments);this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Also print the fact database automatically compiled from the workspace manifests"})}static{this.paths=[["constraints","source"]]}static{this.usage=ot.Usage({category:"Constraints-related commands",description:"print the source code for the constraints",details:"\n This command will print the Prolog source code used by the constraints engine. Adding the `-v,--verbose` flag will print the *full* source code, including the fact database automatically compiled from the workspace manifests.\n ",examples:[["Prints the source code","yarn constraints source"],["Print the source code and the fact database","yarn constraints source -v"]]})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(ES(),yS)),s=await ze.find(this.context.cwd,this.context.plugins),{project:a}=await Tt.find(s,this.context.cwd),n=await r.find(a);this.context.stdout.write(this.verbose?n.fullSource:n.source)}};Ve();Ve();Wt();gS();var XC=class extends ut{constructor(){super(...arguments);this.fix=ge.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["constraints"]]}static{this.usage=ot.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:` + This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code. + + If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution. + + For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints. + `,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Tt.find(r,this.context.cwd);await s.restoreInstallState();let a=await s.loadUserConfig(),n;if(a?.constraints)n=new YC(s);else{let{Constraints:h}=await Promise.resolve().then(()=>(ES(),yS));n=await h.find(s)}let c,f=!1,p=!1;for(let h=this.fix?10:1;h>0;--h){let E=await n.process();if(!E)break;let{changedWorkspaces:C,remainingErrors:S}=oF(s,E,{fix:this.fix}),P=[];for(let[I,R]of C){let N=I.manifest.indent;I.manifest=new Ht,I.manifest.indent=N,I.manifest.load(R),P.push(I.persistManifest())}if(await Promise.all(P),!(C.size>0&&h>1)){c=UBe(S,{configuration:r}),f=!1,p=!0;for(let[,I]of S)for(let R of I)R.fixable?f=!0:p=!1}}if(c.children.length===0)return 0;if(f){let h=p?`Those errors can all be fixed by running ${he.pretty(r,"yarn constraints --fix",he.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${he.pretty(r,"yarn constraints --fix",he.Type.CODE)}`;await Ot.start({configuration:r,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async E=>{E.reportInfo(0,h),E.reportSeparator()})}return c.children=je.sortMap(c.children,h=>h.value[1]),Qs.emitTree(c,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1}),1}};gS();var USt={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:"BOOLEAN",default:!1},constraintsPath:{description:"The path of the constraints file.",type:"ABSOLUTE_PATH",default:"./constraints.pro"}},commands:[zC,ZC,XC],hooks:{async validateProjectAfterInstall(t,{reportError:e}){if(!t.configuration.get("enableConstraintsChecks"))return;let r=await t.loadUserConfig(),s;if(r?.constraints)s=new YC(t);else{let{Constraints:c}=await Promise.resolve().then(()=>(ES(),yS));s=await c.find(t)}let a=await s.process();if(!a)return;let{remainingErrors:n}=oF(t,a);if(n.size!==0)if(t.configuration.isCI)for(let[c,f]of n)for(let p of f)e(84,`${he.pretty(t.configuration,c.anchoredLocator,he.Type.IDENT)}: ${p.text}`);else e(84,`Constraint check failed; run ${he.pretty(t.configuration,"yarn constraints",he.Type.CODE)} for more details`)}}},HSt=USt;var d9={};Vt(d9,{CreateCommand:()=>$C,DlxCommand:()=>ew,default:()=>qSt});Ve();Wt();var $C=class extends ut{constructor(){super(...arguments);this.pkg=ge.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=ge.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ge.String();this.args=ge.Proxy()}static{this.paths=[["create"]]}async execute(){let r=[];this.pkg&&r.push("--package",this.pkg),this.quiet&&r.push("--quiet");let s=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),a=q.parseDescriptor(s),n=a.name.match(/^create(-|$)/)?a:a.scope?q.makeIdent(a.scope,`create-${a.name}`):q.makeIdent(null,`create-${a.name}`),c=q.stringifyIdent(n);return a.range!=="unknown"&&(c+=`@${a.range}`),this.cli.run(["dlx",...r,c,...this.args])}};Ve();Ve();bt();Wt();var ew=class extends ut{constructor(){super(...arguments);this.packages=ge.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=ge.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ge.String();this.args=ge.Proxy()}static{this.paths=[["dlx"]]}static{this.usage=ot.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-vite to scaffold a new Vite project","yarn dlx create-vite"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]})}async execute(){return ze.telemetry=null,await le.mktempPromise(async r=>{let s=K.join(r,`dlx-${process.pid}`);await le.mkdirPromise(s),await le.writeFilePromise(K.join(s,"package.json"),`{} +`),await le.writeFilePromise(K.join(s,"yarn.lock"),"");let a=K.join(s,".yarnrc.yml"),n=await ze.findProjectCwd(this.context.cwd),f={enableGlobalCache:!(await ze.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:Vf(68),level:he.LogLevel.Discard}]},p=n!==null?K.join(n,".yarnrc.yml"):null;p!==null&&le.existsSync(p)?(await le.copyFilePromise(p,a),await ze.updateConfiguration(s,N=>{let U=je.toMerged(N,f);return Array.isArray(N.plugins)&&(U.plugins=N.plugins.map(W=>{let te=typeof W=="string"?W:W.path,ie=ue.isAbsolute(te)?te:ue.resolve(ue.fromPortablePath(n),te);return typeof W=="string"?ie:{path:ie,spec:W.spec}})),U})):await le.writeJsonPromise(a,f);let h=this.packages??[this.command],E=q.parseDescriptor(this.command).name,C=await this.cli.run(["add","--fixed","--",...h],{cwd:s,quiet:this.quiet});if(C!==0)return C;this.quiet||this.context.stdout.write(` +`);let S=await ze.find(s,this.context.plugins),{project:P,workspace:I}=await Tt.find(S,s);if(I===null)throw new ar(P.cwd,s);await P.restoreInstallState();let R=await In.getWorkspaceAccessibleBinaries(I);return R.has(E)===!1&&R.size===1&&typeof this.packages>"u"&&(E=Array.from(R)[0][0]),await In.executeWorkspaceAccessibleBinary(I,E,this.args,{packageAccessibleBinaries:R,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};var jSt={commands:[$C,ew]},qSt=jSt;var E9={};Vt(E9,{ExecFetcher:()=>CS,ExecResolver:()=>wS,default:()=>YSt,execUtils:()=>uF});Ve();Ve();bt();var fA="exec:";var uF={};Vt(uF,{loadGeneratorFile:()=>IS,makeLocator:()=>y9,makeSpec:()=>Ave,parseSpec:()=>m9});Ve();bt();function m9(t){let{params:e,selector:r}=q.parseRange(t),s=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?q.parseLocator(e.locator):null,path:s}}function Ave({parentLocator:t,path:e,generatorHash:r,protocol:s}){let a=t!==null?{locator:q.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return q.makeRange({protocol:s,source:e,selector:e,params:{...n,...a}})}function y9(t,{parentLocator:e,path:r,generatorHash:s,protocol:a}){return q.makeLocator(t,Ave({parentLocator:e,path:r,generatorHash:s,protocol:a}))}async function IS(t,e,r){let{parentLocator:s,path:a}=q.parseFileStyleRange(t,{protocol:e}),n=K.isAbsolute(a)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await r.fetcher.fetch(s,r),c=n.localPath?{packageFs:new Sn(vt.root),prefixPath:K.relative(vt.root,n.localPath)}:n;n!==c&&n.releaseFs&&n.releaseFs();let f=c.packageFs,p=K.join(c.prefixPath,a);return await f.readFilePromise(p,"utf8")}var CS=class{supports(e,r){return!!e.reference.startsWith(fA)}getLocalPath(e,r){let{parentLocator:s,path:a}=q.parseFileStyleRange(e.reference,{protocol:fA});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:q.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:c}}async fetchFromDisk(e,r){let s=await IS(e.reference,fA,r);return le.mktempPromise(async a=>{let n=K.join(a,"generator.js");return await le.writeFilePromise(n,s),le.mktempPromise(async c=>{if(await this.generatePackage(c,e,n,r),!le.existsSync(K.join(c,"build")))throw new Error("The script should have generated a build directory");return await gs.makeArchiveFromDirectory(K.join(c,"build"),{prefixPath:q.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(e,r,s,a){return await le.mktempPromise(async n=>{let c=await In.makeScriptEnv({project:a.project,binFolder:n}),f=K.join(e,"runtime.js");return await le.mktempPromise(async p=>{let h=K.join(p,"buildfile.log"),E=K.join(e,"generator"),C=K.join(e,"build");await le.mkdirPromise(E),await le.mkdirPromise(C);let S={tempDir:ue.fromPortablePath(E),buildDir:ue.fromPortablePath(C),locator:q.stringifyLocator(r)};await le.writeFilePromise(f,` + // Expose 'Module' as a global variable + Object.defineProperty(global, 'Module', { + get: () => require('module'), + configurable: true, + enumerable: false, + }); + + // Expose non-hidden built-in modules as global variables + for (const name of Module.builtinModules.filter((name) => name !== 'module' && !name.startsWith('_'))) { + Object.defineProperty(global, name, { + get: () => require(name), + configurable: true, + enumerable: false, + }); + } + + // Expose the 'execEnv' global variable + Object.defineProperty(global, 'execEnv', { + value: { + ...${JSON.stringify(S)}, + }, + enumerable: true, + }); + `);let P=c.NODE_OPTIONS||"",I=/\s*--require\s+\S*\.pnp\.c?js\s*/g;P=P.replace(I," ").trim(),c.NODE_OPTIONS=P;let{stdout:R,stderr:N}=a.project.configuration.getSubprocessStreams(h,{header:`# This file contains the result of Yarn generating a package (${q.stringifyLocator(r)}) +`,prefix:q.prettyLocator(a.project.configuration,r),report:a.report}),{code:U}=await Gr.pipevp(process.execPath,["--require",ue.fromPortablePath(f),ue.fromPortablePath(s),q.stringifyIdent(r)],{cwd:e,env:c,stdin:null,stdout:R,stderr:N});if(U!==0)throw le.detachTemp(p),new Error(`Package generation failed (exit code ${U}, logs can be found here: ${he.pretty(a.project.configuration,h,he.Type.PATH)})`)})})}};Ve();Ve();var GSt=2,wS=class{supportsDescriptor(e,r){return!!e.range.startsWith(fA)}supportsLocator(e,r){return!!e.reference.startsWith(fA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return q.bindDescriptor(e,{locator:q.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=m9(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let c=await IS(q.makeRange({protocol:fA,source:a,selector:a,params:{locator:q.stringifyLocator(n)}}),fA,s.fetchOptions),f=Nn.makeHash(`${GSt}`,c).slice(0,6);return[y9(e,{parentLocator:n,path:a,generatorHash:f,protocol:fA})]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ht.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var WSt={fetchers:[CS],resolvers:[wS]},YSt=WSt;var C9={};Vt(C9,{FileFetcher:()=>DS,FileResolver:()=>bS,TarballFileFetcher:()=>PS,TarballFileResolver:()=>xS,default:()=>JSt,fileUtils:()=>Pm});Ve();bt();var tw=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,BS=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,ts="file:";var Pm={};Vt(Pm,{fetchArchiveFromLocator:()=>SS,makeArchiveFromLocator:()=>fF,makeBufferFromLocator:()=>I9,makeLocator:()=>rw,makeSpec:()=>pve,parseSpec:()=>vS});Ve();bt();function vS(t){let{params:e,selector:r}=q.parseRange(t),s=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?q.parseLocator(e.locator):null,path:s}}function pve({parentLocator:t,path:e,hash:r,protocol:s}){let a=t!==null?{locator:q.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return q.makeRange({protocol:s,source:e,selector:e,params:{...n,...a}})}function rw(t,{parentLocator:e,path:r,hash:s,protocol:a}){return q.makeLocator(t,pve({parentLocator:e,path:r,hash:s,protocol:a}))}async function SS(t,e){let{parentLocator:r,path:s}=q.parseFileStyleRange(t.reference,{protocol:ts}),a=K.isAbsolute(s)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await e.fetcher.fetch(r,e),n=a.localPath?{packageFs:new Sn(vt.root),prefixPath:K.relative(vt.root,a.localPath)}:a;a!==n&&a.releaseFs&&a.releaseFs();let c=n.packageFs,f=K.join(n.prefixPath,s);return await je.releaseAfterUseAsync(async()=>await c.readFilePromise(f),n.releaseFs)}async function fF(t,{protocol:e,fetchOptions:r,inMemory:s=!1}){let{parentLocator:a,path:n}=q.parseFileStyleRange(t.reference,{protocol:e}),c=K.isAbsolute(n)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await r.fetcher.fetch(a,r),f=c.localPath?{packageFs:new Sn(vt.root),prefixPath:K.relative(vt.root,c.localPath)}:c;c!==f&&c.releaseFs&&c.releaseFs();let p=f.packageFs,h=K.join(f.prefixPath,n);return await je.releaseAfterUseAsync(async()=>await gs.makeArchiveFromDirectory(h,{baseFs:p,prefixPath:q.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:s}),f.releaseFs)}async function I9(t,{protocol:e,fetchOptions:r}){return(await fF(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var DS=class{supports(e,r){return!!e.reference.startsWith(ts)}getLocalPath(e,r){let{parentLocator:s,path:a}=q.parseFileStyleRange(e.reference,{protocol:ts});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${q.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:q.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:c}}async fetchFromDisk(e,r){return fF(e,{protocol:ts,fetchOptions:r})}};Ve();Ve();var VSt=2,bS=class{supportsDescriptor(e,r){return e.range.match(tw)?!0:!!e.range.startsWith(ts)}supportsLocator(e,r){return!!e.reference.startsWith(ts)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return tw.test(e.range)&&(e=q.makeDescriptor(e,`${ts}${e.range}`)),q.bindDescriptor(e,{locator:q.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=vS(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let c=await I9(q.makeLocator(e,q.makeRange({protocol:ts,source:a,selector:a,params:{locator:q.stringifyLocator(n)}})),{protocol:ts,fetchOptions:s.fetchOptions}),f=Nn.makeHash(`${VSt}`,c).slice(0,6);return[rw(e,{parentLocator:n,path:a,hash:f,protocol:ts})]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ht.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Ve();var PS=class{supports(e,r){return BS.test(e.reference)?!!e.reference.startsWith(ts):!1}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${q.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:q.getIdentVendorPath(e),checksum:c}}async fetchFromDisk(e,r){let s=await SS(e,r);return await gs.convertToZip(s,{configuration:r.project.configuration,prefixPath:q.getIdentVendorPath(e),stripComponents:1})}};Ve();Ve();Ve();var xS=class{supportsDescriptor(e,r){return BS.test(e.range)?!!(e.range.startsWith(ts)||tw.test(e.range)):!1}supportsLocator(e,r){return BS.test(e.reference)?!!e.reference.startsWith(ts):!1}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return tw.test(e.range)&&(e=q.makeDescriptor(e,`${ts}${e.range}`)),q.bindDescriptor(e,{locator:q.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=vS(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let c=rw(e,{parentLocator:n,path:a,hash:"",protocol:ts}),f=await SS(c,s.fetchOptions),p=Nn.makeHash(f).slice(0,6);return[rw(e,{parentLocator:n,path:a,hash:p,protocol:ts})]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ht.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var KSt={fetchers:[PS,DS],resolvers:[xS,bS]},JSt=KSt;var v9={};Vt(v9,{GithubFetcher:()=>kS,default:()=>ZSt,githubUtils:()=>AF});Ve();bt();var AF={};Vt(AF,{invalidGithubUrlMessage:()=>dve,isGithubUrl:()=>w9,parseGithubUrl:()=>B9});var hve=et(Ie("querystring")),gve=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function w9(t){return t?gve.some(e=>!!t.match(e)):!1}function B9(t){let e;for(let f of gve)if(e=t.match(f),e)break;if(!e)throw new Error(dve(t));let[,r,s,a,n="master"]=e,{commit:c}=hve.default.parse(n);return n=c||n.replace(/[^:]*:/,""),{auth:r,username:s,reponame:a,treeish:n}}function dve(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var kS=class{supports(e,r){return!!w9(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${q.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:q.getIdentVendorPath(e),checksum:c}}async fetchFromNetwork(e,r){let s=await An.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await le.mktempPromise(async a=>{let n=new Sn(a);await gs.extractArchiveTo(s,n,{stripComponents:1});let c=Qa.splitRepoUrl(e.reference),f=K.join(a,"package.tgz");await In.prepareExternalProject(a,f,{configuration:r.project.configuration,report:r.report,workspace:c.extra.workspace,locator:e});let p=await le.readFilePromise(f);return await gs.convertToZip(p,{configuration:r.project.configuration,prefixPath:q.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:s,username:a,reponame:n,treeish:c}=B9(e.reference);return`https://${s?`${s}@`:""}github.com/${a}/${n}/archive/${c}.tar.gz`}};var zSt={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let s=new kS;if(!s.supports(e,r))return null;try{return await s.fetch(e,r)}catch{return null}}}},ZSt=zSt;var S9={};Vt(S9,{TarballHttpFetcher:()=>TS,TarballHttpResolver:()=>RS,default:()=>$St});Ve();function QS(t){let e;try{e=new URL(t)}catch{return!1}return!(e.protocol!=="http:"&&e.protocol!=="https:"||!e.pathname.match(/(\.tar\.gz|\.tgz|\/[^.]+)$/))}var TS=class{supports(e,r){return QS(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${q.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:q.getIdentVendorPath(e),checksum:c}}async fetchFromNetwork(e,r){let s=await An.get(e.reference,{configuration:r.project.configuration});return await gs.convertToZip(s,{configuration:r.project.configuration,prefixPath:q.getIdentVendorPath(e),stripComponents:1})}};Ve();Ve();var RS=class{supportsDescriptor(e,r){return QS(e.range)}supportsLocator(e,r){return QS(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){return[q.convertDescriptorToLocator(e)]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ht.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var XSt={fetchers:[TS],resolvers:[RS]},$St=XSt;var D9={};Vt(D9,{InitCommand:()=>J0,InitInitializerCommand:()=>nw,default:()=>tDt});Wt();Ve();Ve();bt();Wt();var J0=class extends ut{constructor(){super(...arguments);this.private=ge.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=ge.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=ge.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.name=ge.String("-n,--name",{description:"Initialize a package with the given name"});this.usev2=ge.Boolean("-2",!1,{hidden:!0});this.yes=ge.Boolean("-y,--yes",{hidden:!0})}static{this.paths=[["init"]]}static{this.usage=ot.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return s!==null?await this.executeProxy(r,s):await this.executeRegular(r)}async executeProxy(r,s){if(r.projectCwd!==null&&r.projectCwd!==this.context.cwd)throw new nt("Cannot use the --install flag from within a project subdirectory");le.existsSync(this.context.cwd)||await le.mkdirPromise(this.context.cwd,{recursive:!0});let a=K.join(this.context.cwd,Er.lockfile);le.existsSync(a)||await le.writeFilePromise(a,"");let n=await this.cli.run(["set","version",s],{quiet:!0});if(n!==0)return n;let c=[];return this.private&&c.push("-p"),this.workspace&&c.push("-w"),this.name&&c.push(`-n=${this.name}`),this.yes&&c.push("-y"),await le.mktempPromise(async f=>{let{code:p}=await Gr.pipevp("yarn",["init",...c],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await In.makeScriptEnv({binFolder:f})});return p})}async initialize(){}async executeRegular(r){let s=null;try{s=(await Tt.find(r,this.context.cwd)).project}catch{s=null}le.existsSync(this.context.cwd)||await le.mkdirPromise(this.context.cwd,{recursive:!0});let a=await Ht.tryFind(this.context.cwd),n=a??new Ht,c=Object.fromEntries(r.get("initFields").entries());n.load(c),n.name=n.name??q.makeIdent(r.get("initScope"),this.name??K.basename(this.context.cwd)),n.packageManager=un&&je.isTaggedYarnVersion(un)?`yarn@${un}`:null,(!a&&this.workspace||this.private)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await le.mkdirPromise(K.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let f={};n.exportTo(f);let p=K.join(this.context.cwd,Ht.fileName);await le.changeFilePromise(p,`${JSON.stringify(f,null,2)} +`,{automaticNewlines:!0});let h=[p],E=K.join(this.context.cwd,"README.md");if(le.existsSync(E)||(await le.writeFilePromise(E,`# ${q.stringifyIdent(n.name)} +`),h.push(E)),!s||s.cwd===this.context.cwd){let C=K.join(this.context.cwd,Er.lockfile);le.existsSync(C)||(await le.writeFilePromise(C,""),h.push(C));let P=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Whether you use PnP or not, the node_modules folder is often used to store","# build artifacts that should be gitignored","node_modules","","# Swap the comments on the following lines if you wish to use zero-installs","# In that case, don't forget to run `yarn config set enableGlobalCache false`!","# Documentation here: https://yarnpkg.com/features/caching#zero-installs","","#!.yarn/cache",".pnp.*"].map(Ae=>`${Ae} +`).join(""),I=K.join(this.context.cwd,".gitignore");le.existsSync(I)||(await le.writeFilePromise(I,P),h.push(I));let N=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(Ae=>`${Ae} +`).join(""),U=K.join(this.context.cwd,".gitattributes");le.existsSync(U)||(await le.writeFilePromise(U,N),h.push(U));let W={"*":{charset:"utf-8",endOfLine:"lf",indentSize:2,indentStyle:"space",insertFinalNewline:!0}};je.mergeIntoTarget(W,r.get("initEditorConfig"));let te=`root = true +`;for(let[Ae,ce]of Object.entries(W)){te+=` +[${Ae}] +`;for(let[me,pe]of Object.entries(ce)){let Be=me.replace(/[A-Z]/g,Ce=>`_${Ce.toLowerCase()}`);te+=`${Be} = ${pe} +`}}let ie=K.join(this.context.cwd,".editorconfig");le.existsSync(ie)||(await le.writeFilePromise(ie,te),h.push(ie)),await this.cli.run(["install"],{quiet:!0}),await this.initialize(),le.existsSync(K.join(this.context.cwd,".git"))||(await Gr.execvp("git",["init"],{cwd:this.context.cwd}),await Gr.execvp("git",["add","--",...h],{cwd:this.context.cwd}),await Gr.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};var nw=class extends J0{constructor(){super(...arguments);this.initializer=ge.String();this.argv=ge.Proxy()}static{this.paths=[["init"]]}async initialize(){this.context.stdout.write(` +`),await this.cli.run(["dlx",this.initializer,...this.argv],{quiet:!0})}};var eDt={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[J0,nw]},tDt=eDt;var IY={};Vt(IY,{SearchCommand:()=>Iw,UpgradeInteractiveCommand:()=>Cw,default:()=>yQt});Ve();var yve=et(Ie("os"));function iw({stdout:t}){if(yve.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!t.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}Wt();var kSe=et(G9()),W9={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},Xbt=(0,kSe.default)(W9.appId,W9.apiKey).initIndex(W9.indexName),Y9=async(t,e=0)=>await Xbt.search(t,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:e,hitsPerPage:10});var QD=["regular","dev","peer"],Iw=class extends ut{static{this.paths=[["search"]]}static{this.usage=ot.Usage({category:"Interactive commands",description:"open the search interface",details:` + This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry. + `,examples:[["Open the search window","yarn search"]]})}async execute(){iw(this.context);let{Gem:e}=await Promise.resolve().then(()=>(YF(),cY)),{ScrollableItems:r}=await Promise.resolve().then(()=>(zF(),JF)),{useKeypress:s}=await Promise.resolve().then(()=>(PD(),DPe)),{useMinistore:a}=await Promise.resolve().then(()=>(gY(),hY)),{renderForm:n}=await Promise.resolve().then(()=>(eN(),$F)),{default:c}=await Promise.resolve().then(()=>et(OPe())),{Box:f,Text:p}=await Promise.resolve().then(()=>et(Vc())),{default:h,useEffect:E,useState:C}=await Promise.resolve().then(()=>et(hn())),S=await ze.find(this.context.cwd,this.context.plugins),P=()=>h.createElement(f,{flexDirection:"row"},h.createElement(f,{flexDirection:"column",width:48},h.createElement(f,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<up>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<down>")," to move between packages.")),h.createElement(f,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<space>")," to select a package.")),h.createElement(f,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<space>")," again to change the target."))),h.createElement(f,{flexDirection:"column"},h.createElement(f,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<enter>")," to install the selected packages.")),h.createElement(f,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),I=()=>h.createElement(h.Fragment,null,h.createElement(f,{width:15},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Owner")),h.createElement(f,{width:11},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Version")),h.createElement(f,{width:10},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Downloads"))),R=()=>h.createElement(f,{width:17},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Target")),N=({hit:pe,active:Be})=>{let[Ce,g]=a(pe.name,null);s({active:Be},(fe,se)=>{if(se.name!=="space")return;if(!Ce){g(QD[0]);return}let X=QD.indexOf(Ce)+1;X===QD.length?g(null):g(QD[X])},[Ce,g]);let we=q.parseIdent(pe.name),ye=q.prettyIdent(S,we);return h.createElement(f,null,h.createElement(f,{width:45},h.createElement(p,{bold:!0,wrap:"wrap"},ye)),h.createElement(f,{width:14,marginLeft:1},h.createElement(p,{bold:!0,wrap:"truncate"},pe.owner.name)),h.createElement(f,{width:10,marginLeft:1},h.createElement(p,{italic:!0,wrap:"truncate"},pe.version)),h.createElement(f,{width:16,marginLeft:1},h.createElement(p,null,pe.humanDownloadsLast30Days)))},U=({name:pe,active:Be})=>{let[Ce]=a(pe,null),g=q.parseIdent(pe);return h.createElement(f,null,h.createElement(f,{width:47},h.createElement(p,{bold:!0}," - ",q.prettyIdent(S,g))),QD.map(we=>h.createElement(f,{key:we,width:14,marginLeft:1},h.createElement(p,null," ",h.createElement(e,{active:Ce===we})," ",h.createElement(p,{bold:!0},we)))))},W=()=>h.createElement(f,{marginTop:1},h.createElement(p,null,"Powered by Algolia.")),ie=await n(({useSubmit:pe})=>{let Be=a();pe(Be);let Ce=Array.from(Be.keys()).filter(j=>Be.get(j)!==null),[g,we]=C(""),[ye,fe]=C(0),[se,X]=C([]),De=j=>{j.match(/\t| /)||we(j)},Re=async()=>{fe(0);let j=await Y9(g);j.query===g&&X(j.hits)},dt=async()=>{let j=await Y9(g,ye+1);j.query===g&&j.page-1===ye&&(fe(j.page),X([...se,...j.hits]))};return E(()=>{g?Re():X([])},[g]),h.createElement(f,{flexDirection:"column"},h.createElement(P,null),h.createElement(f,{flexDirection:"row",marginTop:1},h.createElement(p,{bold:!0},"Search: "),h.createElement(f,{width:41},h.createElement(c,{value:g,onChange:De,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),h.createElement(I,null)),se.length?h.createElement(r,{radius:2,loop:!1,children:se.map(j=>h.createElement(N,{key:j.name,hit:j,active:!1})),willReachEnd:dt}):h.createElement(p,{color:"gray"},"Start typing..."),h.createElement(f,{flexDirection:"row",marginTop:1},h.createElement(f,{width:49},h.createElement(p,{bold:!0},"Selected:")),h.createElement(R,null)),Ce.length?Ce.map(j=>h.createElement(U,{key:j,name:j,active:!1})):h.createElement(p,{color:"gray"},"No selected packages..."),h.createElement(W,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ie>"u")return 1;let Ae=Array.from(ie.keys()).filter(pe=>ie.get(pe)==="regular"),ce=Array.from(ie.keys()).filter(pe=>ie.get(pe)==="dev"),me=Array.from(ie.keys()).filter(pe=>ie.get(pe)==="peer");return Ae.length&&await this.cli.run(["add",...Ae]),ce.length&&await this.cli.run(["add","--dev",...ce]),me&&await this.cli.run(["add","--peer",...me]),0}};Ve();Wt();fG();var qPe=et(Ai()),jPe=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/;function GPe(t,e){return t.length>0?[t.slice(0,e)].concat(GPe(t.slice(e),e)):[]}var Cw=class extends ut{static{this.paths=[["upgrade-interactive"]]}static{this.usage=ot.Usage({category:"Interactive commands",description:"open the upgrade interface",details:` + This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade. + `,examples:[["Open the upgrade window","yarn upgrade-interactive"]]})}async execute(){iw(this.context);let{ItemOptions:e}=await Promise.resolve().then(()=>(HPe(),UPe)),{Pad:r}=await Promise.resolve().then(()=>(EY(),_Pe)),{ScrollableItems:s}=await Promise.resolve().then(()=>(zF(),JF)),{useMinistore:a}=await Promise.resolve().then(()=>(gY(),hY)),{renderForm:n}=await Promise.resolve().then(()=>(eN(),$F)),{Box:c,Text:f}=await Promise.resolve().then(()=>et(Vc())),{default:p,useEffect:h,useRef:E,useState:C}=await Promise.resolve().then(()=>et(hn())),S=await ze.find(this.context.cwd,this.context.plugins),{project:P,workspace:I}=await Tt.find(S,this.context.cwd),R=await Jr.find(S);if(!I)throw new ar(P.cwd,this.context.cwd);await P.restoreInstallState({restoreResolutions:!1});let N=this.context.stdout.rows-7,U=(we,ye)=>{let fe=cCe(we,ye),se="";for(let X of fe)X.added?se+=he.pretty(S,X.value,"green"):X.removed||(se+=X.value);return se},W=(we,ye)=>{if(we===ye)return ye;let fe=q.parseRange(we),se=q.parseRange(ye),X=fe.selector.match(jPe),De=se.selector.match(jPe);if(!X||!De)return U(we,ye);let Re=["gray","red","yellow","green","magenta"],dt=null,j="";for(let rt=1;rt<Re.length;++rt)dt!==null||X[rt]!==De[rt]?(dt===null&&(dt=Re[rt-1]),j+=he.pretty(S,De[rt],dt)):j+=De[rt];return j},te=async(we,ye,fe)=>{let se=await Xu.fetchDescriptorFrom(we,fe,{project:P,cache:R,preserveModifier:ye,workspace:I});return se!==null?se.range:we.range},ie=async we=>{let ye=qPe.default.valid(we.range)?`^${we.range}`:we.range,[fe,se]=await Promise.all([te(we,we.range,ye).catch(()=>null),te(we,we.range,"latest").catch(()=>null)]),X=[{value:null,label:we.range}];return fe&&fe!==we.range?X.push({value:fe,label:W(we.range,fe)}):X.push({value:null,label:""}),se&&se!==fe&&se!==we.range?X.push({value:se,label:W(we.range,se)}):X.push({value:null,label:""}),X},Ae=()=>p.createElement(c,{flexDirection:"row"},p.createElement(c,{flexDirection:"column",width:49},p.createElement(c,{marginLeft:1},p.createElement(f,null,"Press ",p.createElement(f,{bold:!0,color:"cyanBright"},"<up>"),"/",p.createElement(f,{bold:!0,color:"cyanBright"},"<down>")," to select packages.")),p.createElement(c,{marginLeft:1},p.createElement(f,null,"Press ",p.createElement(f,{bold:!0,color:"cyanBright"},"<left>"),"/",p.createElement(f,{bold:!0,color:"cyanBright"},"<right>")," to select versions."))),p.createElement(c,{flexDirection:"column"},p.createElement(c,{marginLeft:1},p.createElement(f,null,"Press ",p.createElement(f,{bold:!0,color:"cyanBright"},"<enter>")," to install.")),p.createElement(c,{marginLeft:1},p.createElement(f,null,"Press ",p.createElement(f,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),ce=()=>p.createElement(c,{flexDirection:"row",paddingTop:1,paddingBottom:1},p.createElement(c,{width:50},p.createElement(f,{bold:!0},p.createElement(f,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),p.createElement(c,{width:17},p.createElement(f,{bold:!0,underline:!0,color:"gray"},"Current")),p.createElement(c,{width:17},p.createElement(f,{bold:!0,underline:!0,color:"gray"},"Range")),p.createElement(c,{width:17},p.createElement(f,{bold:!0,underline:!0,color:"gray"},"Latest"))),me=({active:we,descriptor:ye,suggestions:fe})=>{let[se,X]=a(ye.descriptorHash,null),De=q.stringifyIdent(ye),Re=Math.max(0,45-De.length);return p.createElement(p.Fragment,null,p.createElement(c,null,p.createElement(c,{width:45},p.createElement(f,{bold:!0},q.prettyIdent(S,ye)),p.createElement(r,{active:we,length:Re})),p.createElement(e,{active:we,options:fe,value:se,skewer:!0,onChange:X,sizes:[17,17,17]})))},pe=({dependencies:we})=>{let[ye,fe]=C(we.map(()=>null)),se=E(!0),X=async De=>{let Re=await ie(De);return Re.filter(dt=>dt.label!=="").length<=1?null:{descriptor:De,suggestions:Re}};return h(()=>()=>{se.current=!1},[]),h(()=>{let De=Math.trunc(N*1.75),Re=we.slice(0,De),dt=we.slice(De),j=GPe(dt,N),rt=Re.map(X).reduce(async(Fe,Ne)=>{await Fe;let Pe=await Ne;Pe!==null&&se.current&&fe(Ye=>{let ke=Ye.findIndex(_e=>_e===null),it=[...Ye];return it[ke]=Pe,it})},Promise.resolve());j.reduce((Fe,Ne)=>Promise.all(Ne.map(Pe=>Promise.resolve().then(()=>X(Pe)))).then(async Pe=>{Pe=Pe.filter(Ye=>Ye!==null),await Fe,se.current&&fe(Ye=>{let ke=Ye.findIndex(it=>it===null);return Ye.slice(0,ke).concat(Pe).concat(Ye.slice(ke+Pe.length))})}),rt).then(()=>{se.current&&fe(Fe=>Fe.filter(Ne=>Ne!==null))})},[]),ye.length?p.createElement(s,{radius:N>>1,children:ye.map((De,Re)=>De!==null?p.createElement(me,{key:Re,active:!1,descriptor:De.descriptor,suggestions:De.suggestions}):p.createElement(f,{key:Re},"Loading..."))}):p.createElement(f,null,"No upgrades found")},Ce=await n(({useSubmit:we})=>{we(a());let ye=new Map;for(let se of P.workspaces)for(let X of["dependencies","devDependencies"])for(let De of se.manifest[X].values())P.tryWorkspaceByDescriptor(De)===null&&(De.range.startsWith("link:")||ye.set(De.descriptorHash,De));let fe=je.sortMap(ye.values(),se=>q.stringifyDescriptor(se));return p.createElement(c,{flexDirection:"column"},p.createElement(Ae,null),p.createElement(ce,null),p.createElement(pe,{dependencies:fe}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof Ce>"u")return 1;let g=!1;for(let we of P.workspaces)for(let ye of["dependencies","devDependencies"]){let fe=we.manifest[ye];for(let se of fe.values()){let X=Ce.get(se.descriptorHash);typeof X<"u"&&X!==null&&(fe.set(se.identHash,q.makeDescriptor(se,X)),g=!0)}}return g?await P.installWithNewReport({quiet:this.context.quiet,stdout:this.context.stdout},{cache:R}):0}};var mQt={commands:[Iw,Cw]},yQt=mQt;var wY={};Vt(wY,{default:()=>wQt});Ve();var RD="jsr:";Ve();Ve();function ww(t){let e=t.range.slice(4);if(Or.validRange(e))return q.makeDescriptor(t,`npm:${q.stringifyIdent(q.wrapIdentIntoScope(t,"jsr"))}@${e}`);let r=q.tryParseDescriptor(e,!0);if(r!==null)return q.makeDescriptor(t,`npm:${q.stringifyIdent(q.wrapIdentIntoScope(r,"jsr"))}@${r.range}`);throw new Error(`Invalid range: ${t.range}`)}function Bw(t){return q.makeLocator(q.wrapIdentIntoScope(t,"jsr"),`npm:${t.reference.slice(4)}`)}function CY(t){return q.makeLocator(q.unwrapIdentFromScope(t,"jsr"),`jsr:${t.reference.slice(4)}`)}var tN=class{supports(e,r){return e.reference.startsWith(RD)}getLocalPath(e,r){let s=Bw(e);return r.fetcher.getLocalPath(s,r)}fetch(e,r){let s=Bw(e);return r.fetcher.fetch(s,r)}};var rN=class{supportsDescriptor(e,r){return!!e.range.startsWith(RD)}supportsLocator(e,r){return!!e.reference.startsWith(RD)}shouldPersistResolution(e,r){let s=Bw(e);return r.resolver.shouldPersistResolution(s,r)}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{inner:ww(e)}}async getCandidates(e,r,s){let a=s.project.configuration.normalizeDependency(ww(e));return(await s.resolver.getCandidates(a,r,s)).map(c=>CY(c))}async getSatisfying(e,r,s,a){let n=a.project.configuration.normalizeDependency(ww(e));return a.resolver.getSatisfying(n,r,s,a)}async resolve(e,r){let s=Bw(e),a=await r.resolver.resolve(s,r);return{...a,...CY(a)}}};var EQt=["dependencies","devDependencies","peerDependencies"];function IQt(t,e){for(let r of EQt)for(let s of t.manifest.getForScope(r).values()){if(!s.range.startsWith("jsr:"))continue;let a=ww(s),n=r==="dependencies"?q.makeDescriptor(s,"unknown"):null,c=n!==null&&t.manifest.ensureDependencyMeta(n).optional?"optionalDependencies":r;e[c][q.stringifyIdent(s)]=a.range}}var CQt={hooks:{beforeWorkspacePacking:IQt},resolvers:[rN],fetchers:[tN]},wQt=CQt;var BY={};Vt(BY,{LinkFetcher:()=>FD,LinkResolver:()=>ND,PortalFetcher:()=>OD,PortalResolver:()=>LD,default:()=>vQt});Ve();bt();var ih="portal:",sh="link:";var FD=class{supports(e,r){return!!e.reference.startsWith(sh)}getLocalPath(e,r){let{parentLocator:s,path:a}=q.parseFileStyleRange(e.reference,{protocol:sh});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let{parentLocator:s,path:a}=q.parseFileStyleRange(e.reference,{protocol:sh}),n=K.isAbsolute(a)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await r.fetcher.fetch(s,r),c=n.localPath?{packageFs:new Sn(vt.root),prefixPath:K.relative(vt.root,n.localPath),localPath:vt.root}:n;n!==c&&n.releaseFs&&n.releaseFs();let f=c.packageFs,p=K.resolve(c.localPath??c.packageFs.getRealPath(),c.prefixPath,a);return n.localPath?{packageFs:new Sn(p,{baseFs:f}),releaseFs:c.releaseFs,prefixPath:vt.dot,discardFromLookup:!0,localPath:p}:{packageFs:new jf(p,{baseFs:f}),releaseFs:c.releaseFs,prefixPath:vt.dot,discardFromLookup:!0}}};Ve();bt();var ND=class{supportsDescriptor(e,r){return!!e.range.startsWith(sh)}supportsLocator(e,r){return!!e.reference.startsWith(sh)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return q.bindDescriptor(e,{locator:q.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=e.range.slice(sh.length);return[q.makeLocator(e,`${sh}${ue.toPortablePath(a)}`)]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){return{...e,version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};Ve();bt();var OD=class{supports(e,r){return!!e.reference.startsWith(ih)}getLocalPath(e,r){let{parentLocator:s,path:a}=q.parseFileStyleRange(e.reference,{protocol:ih});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let{parentLocator:s,path:a}=q.parseFileStyleRange(e.reference,{protocol:ih}),n=K.isAbsolute(a)?{packageFs:new Sn(vt.root),prefixPath:vt.dot,localPath:vt.root}:await r.fetcher.fetch(s,r),c=n.localPath?{packageFs:new Sn(vt.root),prefixPath:K.relative(vt.root,n.localPath),localPath:vt.root}:n;n!==c&&n.releaseFs&&n.releaseFs();let f=c.packageFs,p=K.resolve(c.localPath??c.packageFs.getRealPath(),c.prefixPath,a);return n.localPath?{packageFs:new Sn(p,{baseFs:f}),releaseFs:c.releaseFs,prefixPath:vt.dot,localPath:p}:{packageFs:new jf(p,{baseFs:f}),releaseFs:c.releaseFs,prefixPath:vt.dot}}};Ve();Ve();bt();var LD=class{supportsDescriptor(e,r){return!!e.range.startsWith(ih)}supportsLocator(e,r){return!!e.reference.startsWith(ih)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){return q.bindDescriptor(e,{locator:q.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=e.range.slice(ih.length);return[q.makeLocator(e,`${ih}${ue.toPortablePath(a)}`)]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await je.releaseAfterUseAsync(async()=>await Ht.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var BQt={fetchers:[FD,OD],resolvers:[ND,LD]},vQt=BQt;var oV={};Vt(oV,{NodeModulesLinker:()=>XD,NodeModulesMode:()=>rV,PnpLooseLinker:()=>$D,default:()=>HTt});bt();Ve();bt();bt();var SY=(t,e)=>`${t}@${e}`,WPe=(t,e)=>{let r=e.indexOf("#"),s=r>=0?e.substring(r+1):e;return SY(t,s)};var VPe=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),s=e.check||r>=9,a=e.hoistingLimits||new Map,n={check:s,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},c;n.debugLevel>=0&&(c=Date.now());let f=QQt(t,n),p=!1,h=0;do{let E=DY(f,[f],new Set([f.locator]),new Map,n);p=E.anotherRoundNeeded||E.isGraphChanged,n.fastLookupPossible=!1,h++}while(p);if(n.debugLevel>=0&&console.log(`hoist time: ${Date.now()-c}ms, rounds: ${h}`),n.debugLevel>=1){let E=MD(f);if(DY(f,[f],new Set([f.locator]),new Map,n).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +${E}, next tree: +${MD(f)}`);let S=KPe(f);if(S)throw new Error(`${S}, after hoisting finished: +${MD(f)}`)}return n.debugLevel>=2&&console.log(MD(f)),TQt(f)},SQt=t=>{let e=t[t.length-1],r=new Map,s=new Set,a=n=>{if(!s.has(n)){s.add(n);for(let c of n.hoistedDependencies.values())r.set(c.name,c);for(let c of n.dependencies.values())n.peerNames.has(c.name)||a(c)}};return a(e),r},DQt=t=>{let e=t[t.length-1],r=new Map,s=new Set,a=new Set,n=(c,f)=>{if(s.has(c))return;s.add(c);for(let h of c.hoistedDependencies.values())if(!f.has(h.name)){let E;for(let C of t)E=C.dependencies.get(h.name),E&&r.set(E.name,E)}let p=new Set;for(let h of c.dependencies.values())p.add(h.name);for(let h of c.dependencies.values())c.peerNames.has(h.name)||n(h,p)};return n(e,a),r},YPe=(t,e)=>{if(e.decoupled)return e;let{name:r,references:s,ident:a,locator:n,dependencies:c,originalDependencies:f,hoistedDependencies:p,peerNames:h,reasons:E,isHoistBorder:C,hoistPriority:S,dependencyKind:P,hoistedFrom:I,hoistedTo:R}=e,N={name:r,references:new Set(s),ident:a,locator:n,dependencies:new Map(c),originalDependencies:new Map(f),hoistedDependencies:new Map(p),peerNames:new Set(h),reasons:new Map(E),decoupled:!0,isHoistBorder:C,hoistPriority:S,dependencyKind:P,hoistedFrom:new Map(I),hoistedTo:new Map(R)},U=N.dependencies.get(r);return U&&U.ident==N.ident&&N.dependencies.set(r,N),t.dependencies.set(N.name,N),N},bQt=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let a of t.dependencies.values())t.peerNames.has(a.name)||r.set(a.name,[a.ident]);let s=Array.from(e.keys());s.sort((a,n)=>{let c=e.get(a),f=e.get(n);if(f.hoistPriority!==c.hoistPriority)return f.hoistPriority-c.hoistPriority;{let p=c.dependents.size+c.peerDependents.size;return f.dependents.size+f.peerDependents.size-p}});for(let a of s){let n=a.substring(0,a.indexOf("@",1)),c=a.substring(n.length+1);if(!t.peerNames.has(n)){let f=r.get(n);f||(f=[],r.set(n,f)),f.indexOf(c)<0&&f.push(c)}}return r},vY=t=>{let e=new Set,r=(s,a=new Set)=>{if(!a.has(s)){a.add(s);for(let n of s.peerNames)if(!t.peerNames.has(n)){let c=t.dependencies.get(n);c&&!e.has(c)&&r(c,a)}e.add(s)}};for(let s of t.dependencies.values())t.peerNames.has(s.name)||r(s);return e},DY=(t,e,r,s,a,n=new Set)=>{let c=e[e.length-1];if(n.has(c))return{anotherRoundNeeded:!1,isGraphChanged:!1};n.add(c);let f=RQt(c),p=bQt(c,f),h=t==c?new Map:a.fastLookupPossible?SQt(e):DQt(e),E,C=!1,S=!1,P=new Map(Array.from(p.entries()).map(([R,N])=>[R,N[0]])),I=new Map;do{let R=kQt(t,e,r,h,P,p,s,I,a);R.isGraphChanged&&(S=!0),R.anotherRoundNeeded&&(C=!0),E=!1;for(let[N,U]of p)U.length>1&&!c.dependencies.has(N)&&(P.delete(N),U.shift(),P.set(N,U[0]),E=!0)}while(E);for(let R of c.dependencies.values())if(!c.peerNames.has(R.name)&&!r.has(R.locator)){r.add(R.locator);let N=DY(t,[...e,R],r,I,a);N.isGraphChanged&&(S=!0),N.anotherRoundNeeded&&(C=!0),r.delete(R.locator)}return{anotherRoundNeeded:C,isGraphChanged:S}},PQt=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},xQt=(t,e,r,s,a,n,c,f,{outputReason:p,fastLookupPossible:h})=>{let E,C=null,S=new Set;p&&(E=`${Array.from(e).map(N=>Io(N)).join("\u2192")}`);let P=r[r.length-1],R=!(s.ident===P.ident);if(p&&!R&&(C="- self-reference"),R&&(R=s.dependencyKind!==1,p&&!R&&(C="- workspace")),R&&s.dependencyKind===2&&(R=!PQt(s),p&&!R&&(C="- external soft link with unhoisted dependencies")),R&&(R=!t.peerNames.has(s.name),p&&!R&&(C=`- cannot shadow peer: ${Io(t.originalDependencies.get(s.name).locator)} at ${E}`)),R){let N=!1,U=a.get(s.name);if(N=!U||U.ident===s.ident,p&&!N&&(C=`- filled by: ${Io(U.locator)} at ${E}`),N)for(let W=r.length-1;W>=1;W--){let ie=r[W].dependencies.get(s.name);if(ie&&ie.ident!==s.ident){N=!1;let Ae=f.get(P);Ae||(Ae=new Set,f.set(P,Ae)),Ae.add(s.name),p&&(C=`- filled by ${Io(ie.locator)} at ${r.slice(0,W).map(ce=>Io(ce.locator)).join("\u2192")}`);break}}R=N}if(R&&(R=n.get(s.name)===s.ident,p&&!R&&(C=`- filled by: ${Io(c.get(s.name)[0])} at ${E}`)),R){let N=!0,U=new Set(s.peerNames);for(let W=r.length-1;W>=1;W--){let te=r[W];for(let ie of U){if(te.peerNames.has(ie)&&te.originalDependencies.has(ie))continue;let Ae=te.dependencies.get(ie);Ae&&t.dependencies.get(ie)!==Ae&&(W===r.length-1?S.add(Ae):(S=null,N=!1,p&&(C=`- peer dependency ${Io(Ae.locator)} from parent ${Io(te.locator)} was not hoisted to ${E}`))),U.delete(ie)}if(!N)break}R=N}if(R&&!h)for(let N of s.hoistedDependencies.values()){let U=a.get(N.name)||t.dependencies.get(N.name);if(!U||N.ident!==U.ident){R=!1,p&&(C=`- previously hoisted dependency mismatch, needed: ${Io(N.locator)}, available: ${Io(U?.locator)}`);break}}return S!==null&&S.size>0?{isHoistable:2,dependsOn:S,reason:C}:{isHoistable:R?0:1,reason:C}},nN=t=>`${t.name}@${t.locator}`,kQt=(t,e,r,s,a,n,c,f,p)=>{let h=e[e.length-1],E=new Set,C=!1,S=!1,P=(U,W,te,ie,Ae)=>{if(E.has(ie))return;let ce=[...W,nN(ie)],me=[...te,nN(ie)],pe=new Map,Be=new Map;for(let fe of vY(ie)){let se=xQt(h,r,[h,...U,ie],fe,s,a,n,f,{outputReason:p.debugLevel>=2,fastLookupPossible:p.fastLookupPossible});if(Be.set(fe,se),se.isHoistable===2)for(let X of se.dependsOn){let De=pe.get(X.name)||new Set;De.add(fe.name),pe.set(X.name,De)}}let Ce=new Set,g=(fe,se,X)=>{if(!Ce.has(fe)){Ce.add(fe),Be.set(fe,{isHoistable:1,reason:X});for(let De of pe.get(fe.name)||[])g(ie.dependencies.get(De),se,p.debugLevel>=2?`- peer dependency ${Io(fe.locator)} from parent ${Io(ie.locator)} was not hoisted`:"")}};for(let[fe,se]of Be)se.isHoistable===1&&g(fe,se,se.reason);let we=!1;for(let fe of Be.keys())if(!Ce.has(fe)){S=!0;let se=c.get(ie);se&&se.has(fe.name)&&(C=!0),we=!0,ie.dependencies.delete(fe.name),ie.hoistedDependencies.set(fe.name,fe),ie.reasons.delete(fe.name);let X=h.dependencies.get(fe.name);if(p.debugLevel>=2){let De=Array.from(W).concat([ie.locator]).map(dt=>Io(dt)).join("\u2192"),Re=h.hoistedFrom.get(fe.name);Re||(Re=[],h.hoistedFrom.set(fe.name,Re)),Re.push(De),ie.hoistedTo.set(fe.name,Array.from(e).map(dt=>Io(dt.locator)).join("\u2192"))}if(!X)h.ident!==fe.ident&&(h.dependencies.set(fe.name,fe),Ae.add(fe));else for(let De of fe.references)X.references.add(De)}if(ie.dependencyKind===2&&we&&(C=!0),p.check){let fe=KPe(t);if(fe)throw new Error(`${fe}, after hoisting dependencies of ${[h,...U,ie].map(se=>Io(se.locator)).join("\u2192")}: +${MD(t)}`)}let ye=vY(ie);for(let fe of ye)if(Ce.has(fe)){let se=Be.get(fe);if((a.get(fe.name)===fe.ident||!ie.reasons.has(fe.name))&&se.isHoistable!==0&&ie.reasons.set(fe.name,se.reason),!fe.isHoistBorder&&me.indexOf(nN(fe))<0){E.add(ie);let De=YPe(ie,fe);P([...U,ie],ce,me,De,R),E.delete(ie)}}},I,R=new Set(vY(h)),N=Array.from(e).map(U=>nN(U));do{I=R,R=new Set;for(let U of I){if(U.locator===h.locator||U.isHoistBorder)continue;let W=YPe(h,U);P([],Array.from(r),N,W,R)}}while(R.size>0);return{anotherRoundNeeded:C,isGraphChanged:S}},KPe=t=>{let e=[],r=new Set,s=new Set,a=(n,c,f)=>{if(r.has(n)||(r.add(n),s.has(n)))return;let p=new Map(c);for(let h of n.dependencies.values())n.peerNames.has(h.name)||p.set(h.name,h);for(let h of n.originalDependencies.values()){let E=p.get(h.name),C=()=>`${Array.from(s).concat([n]).map(S=>Io(S.locator)).join("\u2192")}`;if(n.peerNames.has(h.name)){let S=c.get(h.name);(S!==E||!S||S.ident!==h.ident)&&e.push(`${C()} - broken peer promise: expected ${h.ident} but found ${S&&S.ident}`)}else{let S=f.hoistedFrom.get(n.name),P=n.hoistedTo.get(h.name),I=`${S?` hoisted from ${S.join(", ")}`:""}`,R=`${P?` hoisted to ${P}`:""}`,N=`${C()}${I}`;E?E.ident!==h.ident&&e.push(`${N} - broken require promise for ${h.name}${R}: expected ${h.ident}, but found: ${E.ident}`):e.push(`${N} - broken require promise: no required dependency ${h.name}${R} found`)}}s.add(n);for(let h of n.dependencies.values())n.peerNames.has(h.name)||a(h,p,n);s.delete(n)};return a(t,t.dependencies,t),e.join(` +`)},QQt=(t,e)=>{let{identName:r,name:s,reference:a,peerNames:n}=t,c={name:s,references:new Set([a]),locator:SY(r,a),ident:WPe(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(n),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},f=new Map([[t,c]]),p=(h,E)=>{let C=f.get(h),S=!!C;if(!C){let{name:P,identName:I,reference:R,peerNames:N,hoistPriority:U,dependencyKind:W}=h,te=e.hoistingLimits.get(E.locator);C={name:P,references:new Set([R]),locator:SY(I,R),ident:WPe(I,R),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(N),reasons:new Map,decoupled:!0,isHoistBorder:te?te.has(P):!1,hoistPriority:U||0,dependencyKind:W||0,hoistedFrom:new Map,hoistedTo:new Map},f.set(h,C)}if(E.dependencies.set(h.name,C),E.originalDependencies.set(h.name,C),S){let P=new Set,I=R=>{if(!P.has(R)){P.add(R),R.decoupled=!1;for(let N of R.dependencies.values())R.peerNames.has(N.name)||I(N)}};I(C)}else for(let P of h.dependencies)p(P,C)};for(let h of t.dependencies)p(h,c);return c},bY=t=>t.substring(0,t.indexOf("@",1)),TQt=t=>{let e={name:t.name,identName:bY(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),s=(a,n,c)=>{let f=r.has(a),p;if(n===a)p=c;else{let{name:h,references:E,locator:C}=a;p={name:h,identName:bY(C),references:E,dependencies:new Set}}if(c.dependencies.add(p),!f){r.add(a);for(let h of a.dependencies.values())a.peerNames.has(h.name)||s(h,a,p);r.delete(a)}};for(let a of t.dependencies.values())s(a,t,e);return e},RQt=t=>{let e=new Map,r=new Set([t]),s=c=>`${c.name}@${c.ident}`,a=c=>{let f=s(c),p=e.get(f);return p||(p={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(f,p)),p},n=(c,f)=>{let p=!!r.has(f);if(a(f).dependents.add(c.ident),!p){r.add(f);for(let E of f.dependencies.values()){let C=a(E);C.hoistPriority=Math.max(C.hoistPriority,E.hoistPriority),f.peerNames.has(E.name)?C.peerDependents.add(f.ident):n(f,E)}}};for(let c of t.dependencies.values())t.peerNames.has(c.name)||n(t,c);return e},Io=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let s=t.substring(e+1);if(s==="workspace:.")return".";if(s){let a=(s.indexOf("#")>0?s.split("#")[1]:s).replace("npm:","");return s.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`};var MD=t=>{let e=0,r=(a,n,c="")=>{if(e>5e4||n.has(a))return"";e++;let f=Array.from(a.dependencies.values()).sort((h,E)=>h.name===E.name?0:h.name>E.name?1:-1),p="";n.add(a);for(let h=0;h<f.length;h++){let E=f[h];if(!a.peerNames.has(E.name)&&E!==a){let C=a.reasons.get(E.name),S=bY(E.locator);p+=`${c}${h<f.length-1?"\u251C\u2500":"\u2514\u2500"}${(n.has(E)?">":"")+(S!==E.name?`a:${E.name}:`:"")+Io(E.locator)+(C?` ${C}`:"")} +`,p+=r(E,n,`${c}${h<f.length-1?"\u2502 ":" "}`)}}return n.delete(a),p};return r(t,new Set)+(e>5e4?` +Tree is too large, part of the tree has been dunped +`:"")};var _D=(s=>(s.WORKSPACES="workspaces",s.DEPENDENCIES="dependencies",s.NONE="none",s))(_D||{}),JPe="node_modules",tg="$wsroot$";var UD=(t,e)=>{let{packageTree:r,hoistingLimits:s,errors:a,preserveSymlinksRequired:n}=NQt(t,e),c=null;if(a.length===0){let f=VPe(r,{hoistingLimits:s});c=LQt(t,f,e)}return{tree:c,errors:a,preserveSymlinksRequired:n}},gA=t=>`${t.name}@${t.reference}`,xY=t=>{let e=new Map;for(let[r,s]of t.entries())if(!s.dirList){let a=e.get(s.locator);a||(a={target:s.target,linkType:s.linkType,locations:[],aliases:s.aliases},e.set(s.locator,a)),a.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((s,a)=>{let n=s.split(K.delimiter).length,c=a.split(K.delimiter).length;return a===s?0:n!==c?c-n:a>s?1:-1});return e},zPe=(t,e)=>{let r=q.isVirtualLocator(t)?q.devirtualizeLocator(t):t,s=q.isVirtualLocator(e)?q.devirtualizeLocator(e):e;return q.areLocatorsEqual(r,s)},PY=(t,e,r,s)=>{if(t.linkType!=="SOFT")return!1;let a=ue.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return K.contains(s,a)===null},FQt=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let s=ue.toPortablePath(e.packageLocation.slice(0,-1)),a=new Map,n={children:new Map},c=t.getDependencyTreeRoots(),f=new Map,p=new Set,h=(S,P)=>{let I=gA(S);if(p.has(I))return;p.add(I);let R=t.getPackageInformation(S);if(R){let N=P?gA(P):"";if(gA(S)!==N&&R.linkType==="SOFT"&&!S.reference.startsWith("link:")&&!PY(R,S,t,s)){let U=ZPe(R,S,t);(!f.get(U)||S.reference.startsWith("workspace:"))&&f.set(U,S)}for(let[U,W]of R.packageDependencies)W!==null&&(R.packagePeers.has(U)||h(t.getLocator(U,W),S))}};for(let S of c)h(S,null);let E=s.split(K.sep);for(let S of f.values()){let P=t.getPackageInformation(S),R=ue.toPortablePath(P.packageLocation.slice(0,-1)).split(K.sep).slice(E.length),N=n;for(let U of R){let W=N.children.get(U);W||(W={children:new Map},N.children.set(U,W)),N=W}N.workspaceLocator=S}let C=(S,P)=>{if(S.workspaceLocator){let I=gA(P),R=a.get(I);R||(R=new Set,a.set(I,R)),R.add(S.workspaceLocator)}for(let I of S.children.values())C(I,S.workspaceLocator||P)};for(let S of n.children.values())C(S,n.workspaceLocator);return a},NQt=(t,e)=>{let r=[],s=!1,a=new Map,n=FQt(t),c=t.getPackageInformation(t.topLevel);if(c===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let f=t.findPackageLocator(c.packageLocation);if(f===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let p=ue.toPortablePath(c.packageLocation.slice(0,-1)),h={name:f.name,identName:f.name,reference:f.reference,peerNames:c.packagePeers,dependencies:new Set,dependencyKind:1},E=new Map,C=(P,I)=>`${gA(I)}:${P}`,S=(P,I,R,N,U,W,te,ie)=>{let Ae=C(P,R),ce=E.get(Ae),me=!!ce;!me&&R.name===f.name&&R.reference===f.reference&&(ce=h,E.set(Ae,h));let pe=PY(I,R,t,p);if(!ce){let fe=0;pe?fe=2:I.linkType==="SOFT"&&R.name.endsWith(tg)&&(fe=1),ce={name:P,identName:R.name,reference:R.reference,dependencies:new Set,peerNames:fe===1?new Set:I.packagePeers,dependencyKind:fe},E.set(Ae,ce)}let Be;if(pe?Be=2:U.linkType==="SOFT"?Be=1:Be=0,ce.hoistPriority=Math.max(ce.hoistPriority||0,Be),ie&&!pe){let fe=gA({name:N.identName,reference:N.reference}),se=a.get(fe)||new Set;a.set(fe,se),se.add(ce.name)}let Ce=new Map(I.packageDependencies);if(e.project){let fe=e.project.workspacesByCwd.get(ue.toPortablePath(I.packageLocation.slice(0,-1)));if(fe){let se=new Set([...Array.from(fe.manifest.peerDependencies.values(),X=>q.stringifyIdent(X)),...Array.from(fe.manifest.peerDependenciesMeta.keys())]);for(let X of se)Ce.has(X)||(Ce.set(X,W.get(X)||null),ce.peerNames.add(X))}}let g=gA({name:R.name.replace(tg,""),reference:R.reference}),we=n.get(g);if(we)for(let fe of we)Ce.set(`${fe.name}${tg}`,fe.reference);(I!==U||I.linkType!=="SOFT"||!pe&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(te)))&&N.dependencies.add(ce);let ye=R!==f&&I.linkType==="SOFT"&&!R.name.endsWith(tg)&&!pe;if(!me&&!ye){let fe=new Map;for(let[se,X]of Ce)if(X!==null){let De=t.getLocator(se,X),Re=t.getLocator(se.replace(tg,""),X),dt=t.getPackageInformation(Re);if(dt===null)throw new Error("Assertion failed: Expected the package to have been registered");let j=PY(dt,De,t,p);if(e.validateExternalSoftLinks&&e.project&&j){dt.packageDependencies.size>0&&(s=!0);for(let[Ye,ke]of dt.packageDependencies)if(ke!==null){let it=q.parseLocator(Array.isArray(ke)?`${ke[0]}@${ke[1]}`:`${Ye}@${ke}`);if(gA(it)!==gA(De)){let _e=Ce.get(Ye);if(_e){let x=q.parseLocator(Array.isArray(_e)?`${_e[0]}@${_e[1]}`:`${Ye}@${_e}`);zPe(x,it)||r.push({messageName:71,text:`Cannot link ${q.prettyIdent(e.project.configuration,q.parseIdent(De.name))} into ${q.prettyLocator(e.project.configuration,q.parseLocator(`${R.name}@${R.reference}`))} dependency ${q.prettyLocator(e.project.configuration,it)} conflicts with parent dependency ${q.prettyLocator(e.project.configuration,x)}`})}else{let x=fe.get(Ye);if(x){let w=x.target,b=q.parseLocator(Array.isArray(w)?`${w[0]}@${w[1]}`:`${Ye}@${w}`);zPe(b,it)||r.push({messageName:71,text:`Cannot link ${q.prettyIdent(e.project.configuration,q.parseIdent(De.name))} into ${q.prettyLocator(e.project.configuration,q.parseLocator(`${R.name}@${R.reference}`))} dependency ${q.prettyLocator(e.project.configuration,it)} conflicts with dependency ${q.prettyLocator(e.project.configuration,b)} from sibling portal ${q.prettyIdent(e.project.configuration,q.parseIdent(x.portal.name))}`})}else fe.set(Ye,{target:it.reference,portal:De})}}}}let rt=e.hoistingLimitsByCwd?.get(te),Fe=j?te:K.relative(p,ue.toPortablePath(dt.packageLocation))||vt.dot,Ne=e.hoistingLimitsByCwd?.get(Fe);S(se,dt,De,ce,I,Ce,Fe,rt==="dependencies"||Ne==="dependencies"||Ne==="workspaces")}}};return S(f.name,c,f,h,c,c.packageDependencies,vt.dot,!1),{packageTree:h,hoistingLimits:a,errors:r,preserveSymlinksRequired:s}};function ZPe(t,e,r){let s=r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation;return ue.toPortablePath(s||t.packageLocation)}function OQt(t,e,r){let s=e.getLocator(t.name.replace(tg,""),t.reference),a=e.getPackageInformation(s);if(a===null)throw new Error("Assertion failed: Expected the package to be registered");return r.pnpifyFs?{linkType:"SOFT",target:ue.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:ZPe(a,t,e)}}var LQt=(t,e,r)=>{let s=new Map,a=(E,C,S)=>{let{linkType:P,target:I}=OQt(E,t,r);return{locator:gA(E),nodePath:C,target:I,linkType:P,aliases:S}},n=E=>{let[C,S]=E.split("/");return S?{scope:C,name:S}:{scope:null,name:C}},c=new Set,f=(E,C,S)=>{if(c.has(E))return;c.add(E);let P=Array.from(E.references).sort().join("#");for(let I of E.dependencies){let R=Array.from(I.references).sort().join("#");if(I.identName===E.identName.replace(tg,"")&&R===P)continue;let N=Array.from(I.references).sort(),U={name:I.identName,reference:N[0]},{name:W,scope:te}=n(I.name),ie=te?[te,W]:[W],Ae=K.join(C,JPe),ce=K.join(Ae,...ie),me=`${S}/${U.name}`,pe=a(U,S,N.slice(1)),Be=!1;if(pe.linkType==="SOFT"&&r.project){let Ce=r.project.workspacesByCwd.get(pe.target.slice(0,-1));Be=!!(Ce&&!Ce.manifest.name)}if(!I.name.endsWith(tg)&&!Be){let Ce=s.get(ce);if(Ce){if(Ce.dirList)throw new Error(`Assertion failed: ${ce} cannot merge dir node with leaf node`);{let ye=q.parseLocator(Ce.locator),fe=q.parseLocator(pe.locator);if(Ce.linkType!==pe.linkType)throw new Error(`Assertion failed: ${ce} cannot merge nodes with different link types ${Ce.nodePath}/${q.stringifyLocator(ye)} and ${S}/${q.stringifyLocator(fe)}`);if(ye.identHash!==fe.identHash)throw new Error(`Assertion failed: ${ce} cannot merge nodes with different idents ${Ce.nodePath}/${q.stringifyLocator(ye)} and ${S}/s${q.stringifyLocator(fe)}`);pe.aliases=[...pe.aliases,...Ce.aliases,q.parseLocator(Ce.locator).reference]}}s.set(ce,pe);let g=ce.split("/"),we=g.indexOf(JPe);for(let ye=g.length-1;we>=0&&ye>we;ye--){let fe=ue.toPortablePath(g.slice(0,ye).join(K.sep)),se=g[ye],X=s.get(fe);if(!X)s.set(fe,{dirList:new Set([se])});else if(X.dirList){if(X.dirList.has(se))break;X.dirList.add(se)}}}f(I,pe.linkType==="SOFT"?pe.target:ce,me)}},p=a({name:e.name,reference:Array.from(e.references)[0]},"",[]),h=p.target;return s.set(h,p),f(e,h,""),s};Ve();Ve();bt();bt();rA();Bc();var KY={};Vt(KY,{PnpInstaller:()=>jm,PnpLinker:()=>ig,UnplugCommand:()=>Sw,default:()=>pTt,getPnpPath:()=>sg,jsInstallUtils:()=>mA,pnpUtils:()=>ZD,quotePathIfNeeded:()=>Nxe});bt();var Fxe=Ie("url");Ve();Ve();bt();bt();var XPe={DEFAULT:{collapsed:!1,next:{"*":"DEFAULT"}},TOP_LEVEL:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA","*":"DEFAULT"}},FALLBACK_EXCLUSION_LIST:{collapsed:!1,next:{"*":"FALLBACK_EXCLUSION_ENTRIES"}},FALLBACK_EXCLUSION_ENTRIES:{collapsed:!0,next:{"*":"FALLBACK_EXCLUSION_DATA"}},FALLBACK_EXCLUSION_DATA:{collapsed:!0,next:{"*":"DEFAULT"}},PACKAGE_REGISTRY_DATA:{collapsed:!1,next:{"*":"PACKAGE_REGISTRY_ENTRIES"}},PACKAGE_REGISTRY_ENTRIES:{collapsed:!0,next:{"*":"PACKAGE_STORE_DATA"}},PACKAGE_STORE_DATA:{collapsed:!1,next:{"*":"PACKAGE_STORE_ENTRIES"}},PACKAGE_STORE_ENTRIES:{collapsed:!0,next:{"*":"PACKAGE_INFORMATION_DATA"}},PACKAGE_INFORMATION_DATA:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES","*":"DEFAULT"}},PACKAGE_DEPENDENCIES:{collapsed:!1,next:{"*":"PACKAGE_DEPENDENCY"}},PACKAGE_DEPENDENCY:{collapsed:!0,next:{"*":"DEFAULT"}}};function MQt(t,e,r){let s="";s+="[";for(let a=0,n=t.length;a<n;++a)s+=iN(String(a),t[a],e,r).replace(/^ +/g,""),a+1<n&&(s+=", ");return s+="]",s}function _Qt(t,e,r){let s=`${r} `,a="";a+=r,a+=`[ +`;for(let n=0,c=t.length;n<c;++n)a+=s+iN(String(n),t[n],e,s).replace(/^ +/,""),n+1<c&&(a+=","),a+=` +`;return a+=r,a+="]",a}function UQt(t,e,r){let s=Object.keys(t),a="";a+="{";for(let n=0,c=s.length,f=0;n<c;++n){let p=s[n],h=t[p];typeof h>"u"||(f!==0&&(a+=", "),a+=JSON.stringify(p),a+=": ",a+=iN(p,h,e,r).replace(/^ +/g,""),f+=1)}return a+="}",a}function HQt(t,e,r){let s=Object.keys(t),a=`${r} `,n="";n+=r,n+=`{ +`;let c=0;for(let f=0,p=s.length;f<p;++f){let h=s[f],E=t[h];typeof E>"u"||(c!==0&&(n+=",",n+=` +`),n+=a,n+=JSON.stringify(h),n+=": ",n+=iN(h,E,e,a).replace(/^ +/g,""),c+=1)}return c!==0&&(n+=` +`),n+=r,n+="}",n}function iN(t,e,r,s){let{next:a}=XPe[r],n=a[t]||a["*"];return $Pe(e,n,s)}function $Pe(t,e,r){let{collapsed:s}=XPe[e];return Array.isArray(t)?s?MQt(t,e,r):_Qt(t,e,r):typeof t=="object"&&t!==null?s?UQt(t,e,r):HQt(t,e,r):JSON.stringify(t)}function exe(t){return $Pe(t,"TOP_LEVEL","")}function HD(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let s=[];for(let n of e)s.push(r.map(c=>n(c)));let a=r.map((n,c)=>c);return a.sort((n,c)=>{for(let f of s){let p=f[n]<f[c]?-1:f[n]>f[c]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function jQt(t){let e=new Map,r=HD(t.fallbackExclusionList||[],[({name:s,reference:a})=>s,({name:s,reference:a})=>a]);for(let{name:s,reference:a}of r){let n=e.get(s);typeof n>"u"&&e.set(s,n=new Set),n.add(a)}return Array.from(e).map(([s,a])=>[s,Array.from(a)])}function qQt(t){return HD(t.fallbackPool||[],([e])=>e)}function GQt(t){let e=[],r=t.dependencyTreeRoots.find(s=>t.packageRegistry.get(s.name)?.get(s.reference)?.packageLocation==="./");for(let[s,a]of HD(t.packageRegistry,([n])=>n===null?"0":`1${n}`)){if(s===null)continue;let n=[];e.push([s,n]);for(let[c,{packageLocation:f,packageDependencies:p,packagePeers:h,linkType:E,discardFromLookup:C}]of HD(a,([S])=>S===null?"0":`1${S}`)){if(c===null)continue;let S=[];s!==null&&c!==null&&!p.has(s)&&S.push([s,c]);for(let[U,W]of p)S.push([U,W]);let P=HD(S,([U])=>U),I=h&&h.size>0?Array.from(h):void 0,N={packageLocation:f,packageDependencies:P,packagePeers:I,linkType:E,discardFromLookup:C||void 0};n.push([c,N]),r&&s===r.name&&c===r.reference&&e.unshift([null,[[null,N]]])}}return e}function jD(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,pnpZipBackend:t.pnpZipBackend,fallbackExclusionList:jQt(t),fallbackPool:qQt(t),packageRegistryData:GQt(t)}}var nxe=et(rxe());function ixe(t,e){return[t?`${t} +`:"",`/* eslint-disable */ +`,`// @ts-nocheck +`,`"use strict"; +`,` +`,e,` +`,(0,nxe.default)()].join("")}function WQt(t){return JSON.stringify(t,null,2)}function YQt(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ +`)}'`}function VQt(t){return[`const RAW_RUNTIME_STATE = +`,`${YQt(exe(t))}; + +`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { +`,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); +`,`} +`].join("")}function KQt(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) { +`,` const fs = require('fs'); +`,` const path = require('path'); +`,` const pnpDataFilepath = path.resolve(__dirname, ${JSON.stringify(Er.pnpData)}); +`,` return hydrateRuntimeState(JSON.parse(fs.readFileSync(pnpDataFilepath, 'utf8')), {basePath: basePath || __dirname}); +`,`} +`].join("")}function sxe(t){let e=jD(t),r=VQt(e);return ixe(t.shebang,r)}function oxe(t){let e=jD(t),r=KQt(),s=ixe(t.shebang,r);return{dataFile:WQt(e),loaderFile:s}}bt();function QY(t,{basePath:e}){let r=ue.toPortablePath(e),s=K.resolve(r),a=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,n=new Map,c=new Map(t.packageRegistryData.map(([C,S])=>[C,new Map(S.map(([P,I])=>{if(C===null!=(P===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let R=I.discardFromLookup??!1,N={name:C,reference:P},U=n.get(I.packageLocation);U?(U.discardFromLookup=U.discardFromLookup&&R,R||(U.locator=N)):n.set(I.packageLocation,{locator:N,discardFromLookup:R});let W=null;return[P,{packageDependencies:new Map(I.packageDependencies),packagePeers:new Set(I.packagePeers),linkType:I.linkType,discardFromLookup:R,get packageLocation(){return W||(W=K.join(s,I.packageLocation))}}]}))])),f=new Map(t.fallbackExclusionList.map(([C,S])=>[C,new Set(S)])),p=new Map(t.fallbackPool),h=t.dependencyTreeRoots,E=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:h,enableTopLevelFallback:E,fallbackExclusionList:f,pnpZipBackend:t.pnpZipBackend,fallbackPool:p,ignorePattern:a,packageLocatorsByLocations:n,packageRegistry:c}}bt();bt();var ah=Ie("module"),Hm=Ie("url"),HY=Ie("util");var ra=Ie("url");var uxe=et(Ie("assert"));var TY=Array.isArray,qD=JSON.stringify,GD=Object.getOwnPropertyNames,Um=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),RY=(t,e)=>RegExp.prototype.exec.call(t,e),FY=(t,...e)=>RegExp.prototype[Symbol.replace].apply(t,e),rg=(t,...e)=>String.prototype.endsWith.apply(t,e),NY=(t,...e)=>String.prototype.includes.apply(t,e),OY=(t,...e)=>String.prototype.lastIndexOf.apply(t,e),WD=(t,...e)=>String.prototype.indexOf.apply(t,e),axe=(t,...e)=>String.prototype.replace.apply(t,e),ng=(t,...e)=>String.prototype.slice.apply(t,e),dA=(t,...e)=>String.prototype.startsWith.apply(t,e),lxe=Map,cxe=JSON.parse;function YD(t,e,r){return class extends r{constructor(...s){super(e(...s)),this.code=t,this.name=`${r.name} [${t}]`}}}var fxe=YD("ERR_PACKAGE_IMPORT_NOT_DEFINED",(t,e,r)=>`Package import specifier "${t}" is not defined${e?` in package ${e}package.json`:""} imported from ${r}`,TypeError),LY=YD("ERR_INVALID_MODULE_SPECIFIER",(t,e,r=void 0)=>`Invalid module "${t}" ${e}${r?` imported from ${r}`:""}`,TypeError),Axe=YD("ERR_INVALID_PACKAGE_TARGET",(t,e,r,s=!1,a=void 0)=>{let n=typeof r=="string"&&!s&&r.length&&!dA(r,"./");return e==="."?((0,uxe.default)(s===!1),`Invalid "exports" main target ${qD(r)} defined in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`):`Invalid "${s?"imports":"exports"}" target ${qD(r)} defined for '${e}' in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`},Error),VD=YD("ERR_INVALID_PACKAGE_CONFIG",(t,e,r)=>`Invalid package config ${t}${e?` while importing ${e}`:""}${r?`. ${r}`:""}`,Error),pxe=YD("ERR_PACKAGE_PATH_NOT_EXPORTED",(t,e,r=void 0)=>e==="."?`No "exports" main defined in ${t}package.json${r?` imported from ${r}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${t}package.json${r?` imported from ${r}`:""}`,Error);var oN=Ie("url");function hxe(t,e){let r=Object.create(null);for(let s=0;s<e.length;s++){let a=e[s];Um(t,a)&&(r[a]=t[a])}return r}var sN=new lxe;function JQt(t,e,r,s){let a=sN.get(t);if(a!==void 0)return a;let n=s(t);if(n===void 0){let P={pjsonPath:t,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return sN.set(t,P),P}let c;try{c=cxe(n)}catch(P){throw new VD(t,(r?`"${e}" from `:"")+(0,oN.fileURLToPath)(r||e),P.message)}let{imports:f,main:p,name:h,type:E}=hxe(c,["imports","main","name","type"]),C=Um(c,"exports")?c.exports:void 0;(typeof f!="object"||f===null)&&(f=void 0),typeof p!="string"&&(p=void 0),typeof h!="string"&&(h=void 0),E!=="module"&&E!=="commonjs"&&(E="none");let S={pjsonPath:t,exists:!0,main:p,name:h,type:E,exports:C,imports:f};return sN.set(t,S),S}function gxe(t,e){let r=new URL("./package.json",t);for(;;){let n=r.pathname;if(rg(n,"node_modules/package.json"))break;let c=JQt((0,oN.fileURLToPath)(r),t,void 0,e);if(c.exists)return c;let f=r;if(r=new URL("../package.json",r),r.pathname===f.pathname)break}let s=(0,oN.fileURLToPath)(r),a={pjsonPath:s,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return sN.set(s,a),a}function zQt(t,e,r){throw new fxe(t,e&&(0,ra.fileURLToPath)(new URL(".",e)),(0,ra.fileURLToPath)(r))}function ZQt(t,e,r,s){let a=`request is not a valid subpath for the "${r?"imports":"exports"}" resolution of ${(0,ra.fileURLToPath)(e)}`;throw new LY(t,a,s&&(0,ra.fileURLToPath)(s))}function KD(t,e,r,s,a){throw typeof e=="object"&&e!==null?e=qD(e,null,""):e=`${e}`,new Axe((0,ra.fileURLToPath)(new URL(".",r)),t,e,s,a&&(0,ra.fileURLToPath)(a))}var dxe=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,mxe=/\*/g;function XQt(t,e,r,s,a,n,c,f){if(e!==""&&!n&&t[t.length-1]!=="/"&&KD(r,t,s,c,a),!dA(t,"./")){if(c&&!dA(t,"../")&&!dA(t,"/")){let C=!1;try{new URL(t),C=!0}catch{}if(!C)return n?FY(mxe,t,()=>e):t+e}KD(r,t,s,c,a)}RY(dxe,ng(t,2))!==null&&KD(r,t,s,c,a);let p=new URL(t,s),h=p.pathname,E=new URL(".",s).pathname;if(dA(h,E)||KD(r,t,s,c,a),e==="")return p;if(RY(dxe,e)!==null){let C=n?axe(r,"*",()=>e):r+e;ZQt(C,s,c,a)}return n?new URL(FY(mxe,p.href,()=>e)):new URL(e,p)}function $Qt(t){let e=+t;return`${e}`!==t?!1:e>=0&&e<4294967295}function vw(t,e,r,s,a,n,c,f){if(typeof e=="string")return XQt(e,r,s,t,a,n,c,f);if(TY(e)){if(e.length===0)return null;let p;for(let h=0;h<e.length;h++){let E=e[h],C;try{C=vw(t,E,r,s,a,n,c,f)}catch(S){if(p=S,S.code==="ERR_INVALID_PACKAGE_TARGET")continue;throw S}if(C!==void 0){if(C===null){p=null;continue}return C}}if(p==null)return p;throw p}else if(typeof e=="object"&&e!==null){let p=GD(e);for(let h=0;h<p.length;h++){let E=p[h];if($Qt(E))throw new VD((0,ra.fileURLToPath)(t),a,'"exports" cannot contain numeric property keys.')}for(let h=0;h<p.length;h++){let E=p[h];if(E==="default"||f.has(E)){let C=e[E],S=vw(t,C,r,s,a,n,c,f);if(S===void 0)continue;return S}}return}else if(e===null)return null;KD(s,e,t,c,a)}function Exe(t,e){let r=WD(t,"*"),s=WD(e,"*"),a=r===-1?t.length:r+1,n=s===-1?e.length:s+1;return a>n?-1:n>a||r===-1?1:s===-1||t.length>e.length?-1:e.length>t.length?1:0}function eTt(t,e,r){if(typeof t=="string"||TY(t))return!0;if(typeof t!="object"||t===null)return!1;let s=GD(t),a=!1,n=0;for(let c=0;c<s.length;c++){let f=s[c],p=f===""||f[0]!==".";if(n++===0)a=p;else if(a!==p)throw new VD((0,ra.fileURLToPath)(e),r,`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return a}function MY(t,e,r){throw new pxe((0,ra.fileURLToPath)(new URL(".",e)),t,r&&(0,ra.fileURLToPath)(r))}var yxe=new Set;function tTt(t,e,r){let s=(0,ra.fileURLToPath)(e);yxe.has(s+"|"+t)||(yxe.add(s+"|"+t),process.emitWarning(`Use of deprecated trailing slash pattern mapping "${t}" in the "exports" field module resolution of the package at ${s}${r?` imported from ${(0,ra.fileURLToPath)(r)}`:""}. Mapping specifiers ending in "/" is no longer supported.`,"DeprecationWarning","DEP0155"))}function Ixe({packageJSONUrl:t,packageSubpath:e,exports:r,base:s,conditions:a}){if(eTt(r,t,s)&&(r={".":r}),Um(r,e)&&!NY(e,"*")&&!rg(e,"/")){let p=r[e],h=vw(t,p,"",e,s,!1,!1,a);return h==null&&MY(e,t,s),h}let n="",c,f=GD(r);for(let p=0;p<f.length;p++){let h=f[p],E=WD(h,"*");if(E!==-1&&dA(e,ng(h,0,E))){rg(e,"/")&&tTt(e,t,s);let C=ng(h,E+1);e.length>=h.length&&rg(e,C)&&Exe(n,h)===1&&OY(h,"*")===E&&(n=h,c=ng(e,E,e.length-C.length))}}if(n){let p=r[n],h=vw(t,p,c,n,s,!0,!1,a);return h==null&&MY(e,t,s),h}MY(e,t,s)}function Cxe({name:t,base:e,conditions:r,readFileSyncFn:s}){if(t==="#"||dA(t,"#/")||rg(t,"/")){let c="is not a valid internal imports specifier name";throw new LY(t,c,(0,ra.fileURLToPath)(e))}let a,n=gxe(e,s);if(n.exists){a=(0,ra.pathToFileURL)(n.pjsonPath);let c=n.imports;if(c)if(Um(c,t)&&!NY(t,"*")){let f=vw(a,c[t],"",t,e,!1,!0,r);if(f!=null)return f}else{let f="",p,h=GD(c);for(let E=0;E<h.length;E++){let C=h[E],S=WD(C,"*");if(S!==-1&&dA(t,ng(C,0,S))){let P=ng(C,S+1);t.length>=C.length&&rg(t,P)&&Exe(f,C)===1&&OY(C,"*")===S&&(f=C,p=ng(t,S,t.length-P.length))}}if(f){let E=c[f],C=vw(a,E,p,f,e,!0,!0,r);if(C!=null)return C}}}zQt(t,a,e)}bt();var rTt=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ms(t,e,r={},s){s??=rTt.has(t)?"MODULE_NOT_FOUND":t;let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...a,value:s},pnpCode:{...a,value:t},data:{...a,value:r}})}function cf(t){return ue.normalize(ue.fromPortablePath(t))}var Sxe=et(Bxe());function Dxe(t){return nTt(),UY[t]}var UY;function nTt(){UY||(UY={"--conditions":[],...vxe(iTt()),...vxe(process.execArgv)})}function vxe(t){return(0,Sxe.default)({"--conditions":[String],"-C":"--conditions"},{argv:t,permissive:!0})}function iTt(){let t=[],e=sTt(process.env.NODE_OPTIONS||"",t);return t.length,e}function sTt(t,e){let r=[],s=!1,a=!0;for(let n=0;n<t.length;++n){let c=t[n];if(c==="\\"&&s){if(n+1===t.length)return e.push(`invalid value for NODE_OPTIONS (invalid escape) +`),r;c=t[++n]}else if(c===" "&&!s){a=!0;continue}else if(c==='"'){s=!s;continue}a?(r.push(c),a=!1):r[r.length-1]+=c}return s&&e.push(`invalid value for NODE_OPTIONS (unterminated string) +`),r}bt();var[yl,oh]=process.versions.node.split(".").map(t=>parseInt(t,10)),bxe=yl>19||yl===19&&oh>=2||yl===18&&oh>=13,pdr=yl===20&&oh<6||yl===19&&oh>=3,hdr=yl>19||yl===19&&oh>=6,gdr=yl>=21||yl===20&&oh>=10||yl===18&&oh>=19,ddr=yl>=21||yl===20&&oh>=10||yl===18&&oh>=20,mdr=yl>=22;function Pxe(t){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(t=t.map(e=>ue.fromPortablePath(Ao.resolveVirtual(ue.toPortablePath(e)))),bxe)process.send({"watch:require":t});else for(let e of t)process.send({"watch:require":e})}function jY(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,s=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,n=/^(\/|\.{1,2}(\/|$))/,c=/\/$/,f=/^\.{0,2}\//,p={name:null,reference:null},h=[],E=new Set;if(t.enableTopLevelFallback===!0&&h.push(p),e.compatibilityMode!==!1)for(let Fe of["react-scripts","gatsby"]){let Ne=t.packageRegistry.get(Fe);if(Ne)for(let Pe of Ne.keys()){if(Pe===null)throw new Error("Assertion failed: This reference shouldn't be null");h.push({name:Fe,reference:Pe})}}let{ignorePattern:C,packageRegistry:S,packageLocatorsByLocations:P}=t;function I(Fe,Ne){return{fn:Fe,args:Ne,error:null,result:null}}function R(Fe){let Ne=process.stderr?.hasColors?.()??process.stdout.isTTY,Pe=(it,_e)=>`\x1B[${it}m${_e}\x1B[0m`,Ye=Fe.error;console.error(Ye?Pe("31;1",`\u2716 ${Fe.error?.message.replace(/\n.*/s,"")}`):Pe("33;1","\u203C Resolution")),Fe.args.length>0&&console.error();for(let it of Fe.args)console.error(` ${Pe("37;1","In \u2190")} ${(0,HY.inspect)(it,{colors:Ne,compact:!0})}`);Fe.result&&(console.error(),console.error(` ${Pe("37;1","Out \u2192")} ${(0,HY.inspect)(Fe.result,{colors:Ne,compact:!0})}`));let ke=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(ke.length>0){console.error();for(let it of ke)console.error(` ${Pe("38;5;244",it)}`)}console.error()}function N(Fe,Ne){if(e.allowDebug===!1)return Ne;if(Number.isFinite(s)){if(s>=2)return(...Pe)=>{let Ye=I(Fe,Pe);try{return Ye.result=Ne(...Pe)}catch(ke){throw Ye.error=ke}finally{R(Ye)}};if(s>=1)return(...Pe)=>{try{return Ne(...Pe)}catch(Ye){let ke=I(Fe,Pe);throw ke.error=Ye,R(ke),Ye}}}return Ne}function U(Fe){let Ne=g(Fe);if(!Ne)throw ms("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Ne}function W(Fe){if(Fe.name===null)return!0;for(let Ne of t.dependencyTreeRoots)if(Ne.name===Fe.name&&Ne.reference===Fe.reference)return!0;return!1}let te=new Set(["node","require",...Dxe("--conditions")]);function ie(Fe,Ne=te,Pe){let Ye=fe(K.join(Fe,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(Ye===null)throw ms("INTERNAL",`The locator that owns the "${Fe}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:ke}=U(Ye),it=K.join(ke,Er.manifest);if(!e.fakeFs.existsSync(it))return null;let _e=JSON.parse(e.fakeFs.readFileSync(it,"utf8"));if(_e.exports==null)return null;let x=K.contains(ke,Fe);if(x===null)throw ms("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");x!=="."&&!f.test(x)&&(x=`./${x}`);try{let w=Ixe({packageJSONUrl:(0,Hm.pathToFileURL)(ue.fromPortablePath(it)),packageSubpath:x,exports:_e.exports,base:Pe?(0,Hm.pathToFileURL)(ue.fromPortablePath(Pe)):null,conditions:Ne});return ue.toPortablePath((0,Hm.fileURLToPath)(w))}catch(w){throw ms("EXPORTS_RESOLUTION_FAILED",w.message,{unqualifiedPath:cf(Fe),locator:Ye,pkgJson:_e,subpath:cf(x),conditions:Ne},w.code)}}function Ae(Fe,Ne,{extensions:Pe}){let Ye;try{Ne.push(Fe),Ye=e.fakeFs.statSync(Fe)}catch{}if(Ye&&!Ye.isDirectory())return e.fakeFs.realpathSync(Fe);if(Ye&&Ye.isDirectory()){let ke;try{ke=JSON.parse(e.fakeFs.readFileSync(K.join(Fe,Er.manifest),"utf8"))}catch{}let it;if(ke&&ke.main&&(it=K.resolve(Fe,ke.main)),it&&it!==Fe){let _e=Ae(it,Ne,{extensions:Pe});if(_e!==null)return _e}}for(let ke=0,it=Pe.length;ke<it;ke++){let _e=`${Fe}${Pe[ke]}`;if(Ne.push(_e),e.fakeFs.existsSync(_e))return _e}if(Ye&&Ye.isDirectory())for(let ke=0,it=Pe.length;ke<it;ke++){let _e=K.format({dir:Fe,name:"index",ext:Pe[ke]});if(Ne.push(_e),e.fakeFs.existsSync(_e))return _e}return null}function ce(Fe){let Ne=new ah.Module(Fe,null);return Ne.filename=Fe,Ne.paths=ah.Module._nodeModulePaths(Fe),Ne}function me(Fe,Ne){return Ne.endsWith("/")&&(Ne=K.join(Ne,"internal.js")),ah.Module._resolveFilename(ue.fromPortablePath(Fe),ce(ue.fromPortablePath(Ne)),!1,{plugnplay:!1})}function pe(Fe){if(C===null)return!1;let Ne=K.contains(t.basePath,Fe);return Ne===null?!1:!!C.test(Ne.replace(/\/$/,""))}let Be={std:3,resolveVirtual:1,getAllLocators:1},Ce=p;function g({name:Fe,reference:Ne}){let Pe=S.get(Fe);if(!Pe)return null;let Ye=Pe.get(Ne);return Ye||null}function we({name:Fe,reference:Ne}){let Pe=[];for(let[Ye,ke]of S)if(Ye!==null)for(let[it,_e]of ke)it===null||_e.packageDependencies.get(Fe)!==Ne||Ye===Fe&&it===Ne||Pe.push({name:Ye,reference:it});return Pe}function ye(Fe,Ne){let Pe=new Map,Ye=new Set,ke=_e=>{let x=JSON.stringify(_e.name);if(Ye.has(x))return;Ye.add(x);let w=we(_e);for(let b of w)if(U(b).packagePeers.has(Fe))ke(b);else{let F=Pe.get(b.name);typeof F>"u"&&Pe.set(b.name,F=new Set),F.add(b.reference)}};ke(Ne);let it=[];for(let _e of[...Pe.keys()].sort())for(let x of[...Pe.get(_e)].sort())it.push({name:_e,reference:x});return it}function fe(Fe,{resolveIgnored:Ne=!1,includeDiscardFromLookup:Pe=!1}={}){if(pe(Fe)&&!Ne)return null;let Ye=K.relative(t.basePath,Fe);Ye.match(n)||(Ye=`./${Ye}`),Ye.endsWith("/")||(Ye=`${Ye}/`);do{let ke=P.get(Ye);if(typeof ke>"u"||ke.discardFromLookup&&!Pe){Ye=Ye.substring(0,Ye.lastIndexOf("/",Ye.length-2)+1);continue}return ke.locator}while(Ye!=="");return null}function se(Fe){try{return e.fakeFs.readFileSync(ue.toPortablePath(Fe),"utf8")}catch(Ne){if(Ne.code==="ENOENT")return;throw Ne}}function X(Fe,Ne,{considerBuiltins:Pe=!0}={}){if(Fe.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(Fe==="pnpapi")return ue.toPortablePath(e.pnpapiResolution);if(Pe&&(0,ah.isBuiltin)(Fe))return null;let Ye=cf(Fe),ke=Ne&&cf(Ne);if(Ne&&pe(Ne)&&(!K.isAbsolute(Fe)||fe(Fe)===null)){let x=me(Fe,Ne);if(x===!1)throw ms("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) + +Require request: "${Ye}" +Required by: ${ke} +`,{request:Ye,issuer:ke});return ue.toPortablePath(x)}let it,_e=Fe.match(a);if(_e){if(!Ne)throw ms("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:Ye,issuer:ke});let[,x,w]=_e,b=fe(Ne);if(!b){let Te=me(Fe,Ne);if(Te===!1)throw ms("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). + +Require path: "${Ye}" +Required by: ${ke} +`,{request:Ye,issuer:ke});return ue.toPortablePath(Te)}let F=U(b).packageDependencies.get(x),z=null;if(F==null&&b.name!==null){let Te=t.fallbackExclusionList.get(b.name);if(!Te||!Te.has(b.reference)){for(let It=0,qt=h.length;It<qt;++It){let Pt=U(h[It]).packageDependencies.get(x);if(Pt!=null){r?z=Pt:F=Pt;break}}if(t.enableTopLevelFallback&&F==null&&z===null){let It=t.fallbackPool.get(x);It!=null&&(z=It)}}}let Z=null;if(F===null)if(W(b))Z=ms("MISSING_PEER_DEPENDENCY",`Your application tried to access ${x} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. + +Required package: ${x}${x!==Ye?` (via "${Ye}")`:""} +Required by: ${ke} +`,{request:Ye,issuer:ke,dependencyName:x});else{let Te=ye(x,b);Te.every(lt=>W(lt))?Z=ms("MISSING_PEER_DEPENDENCY",`${b.name} tried to access ${x} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. + +Required package: ${x}${x!==Ye?` (via "${Ye}")`:""} +Required by: ${b.name}@${b.reference} (via ${ke}) +${Te.map(lt=>`Ancestor breaking the chain: ${lt.name}@${lt.reference} +`).join("")} +`,{request:Ye,issuer:ke,issuerLocator:Object.assign({},b),dependencyName:x,brokenAncestors:Te}):Z=ms("MISSING_PEER_DEPENDENCY",`${b.name} tried to access ${x} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. + +Required package: ${x}${x!==Ye?` (via "${Ye}")`:""} +Required by: ${b.name}@${b.reference} (via ${ke}) + +${Te.map(lt=>`Ancestor breaking the chain: ${lt.name}@${lt.reference} +`).join("")} +`,{request:Ye,issuer:ke,issuerLocator:Object.assign({},b),dependencyName:x,brokenAncestors:Te})}else F===void 0&&(!Pe&&(0,ah.isBuiltin)(Fe)?W(b)?Z=ms("UNDECLARED_DEPENDENCY",`Your application tried to access ${x}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${x} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. + +Required package: ${x}${x!==Ye?` (via "${Ye}")`:""} +Required by: ${ke} +`,{request:Ye,issuer:ke,dependencyName:x}):Z=ms("UNDECLARED_DEPENDENCY",`${b.name} tried to access ${x}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${x} isn't otherwise declared in ${b.name}'s dependencies, this makes the require call ambiguous and unsound. + +Required package: ${x}${x!==Ye?` (via "${Ye}")`:""} +Required by: ${ke} +`,{request:Ye,issuer:ke,issuerLocator:Object.assign({},b),dependencyName:x}):W(b)?Z=ms("UNDECLARED_DEPENDENCY",`Your application tried to access ${x}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. + +Required package: ${x}${x!==Ye?` (via "${Ye}")`:""} +Required by: ${ke} +`,{request:Ye,issuer:ke,dependencyName:x}):Z=ms("UNDECLARED_DEPENDENCY",`${b.name} tried to access ${x}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. + +Required package: ${x}${x!==Ye?` (via "${Ye}")`:""} +Required by: ${b.name}@${b.reference} (via ${ke}) +`,{request:Ye,issuer:ke,issuerLocator:Object.assign({},b),dependencyName:x}));if(F==null){if(z===null||Z===null)throw Z||new Error("Assertion failed: Expected an error to have been set");F=z;let Te=Z.message.replace(/\n.*/g,"");Z.message=Te,!E.has(Te)&&s!==0&&(E.add(Te),process.emitWarning(Z))}let $=Array.isArray(F)?{name:F[0],reference:F[1]}:{name:x,reference:F},oe=U($);if(!oe.packageLocation)throw ms("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. + +Required package: ${$.name}@${$.reference}${$.name!==Ye?` (via "${Ye}")`:""} +Required by: ${b.name}@${b.reference} (via ${ke}) +`,{request:Ye,issuer:ke,dependencyLocator:Object.assign({},$)});let xe=oe.packageLocation;w?it=K.join(xe,w):it=xe}else if(K.isAbsolute(Fe))it=K.normalize(Fe);else{if(!Ne)throw ms("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:Ye,issuer:ke});let x=K.resolve(Ne);Ne.match(c)?it=K.normalize(K.join(x,Fe)):it=K.normalize(K.join(K.dirname(x),Fe))}return K.normalize(it)}function De(Fe,Ne,Pe=te,Ye){if(n.test(Fe))return Ne;let ke=ie(Ne,Pe,Ye);return ke?K.normalize(ke):Ne}function Re(Fe,{extensions:Ne=Object.keys(ah.Module._extensions)}={}){let Pe=[],Ye=Ae(Fe,Pe,{extensions:Ne});if(Ye)return K.normalize(Ye);{Pxe(Pe.map(_e=>ue.fromPortablePath(_e)));let ke=cf(Fe),it=fe(Fe);if(it){let{packageLocation:_e}=U(it),x=!0;try{e.fakeFs.accessSync(_e)}catch(w){if(w?.code==="ENOENT")x=!1;else{let b=(w?.message??w??"empty exception thrown").replace(/^[A-Z]/,y=>y.toLowerCase());throw ms("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${b}). + +Missing package: ${it.name}@${it.reference} +Expected package location: ${cf(_e)} +`,{unqualifiedPath:ke,extensions:Ne})}}if(!x){let w=_e.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ms("QUALIFIED_PATH_RESOLUTION_FAILED",`${w} + +Missing package: ${it.name}@${it.reference} +Expected package location: ${cf(_e)} +`,{unqualifiedPath:ke,extensions:Ne})}}throw ms("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. + +Source path: ${ke} +${Pe.map(_e=>`Not found: ${cf(_e)} +`).join("")}`,{unqualifiedPath:ke,extensions:Ne})}}function dt(Fe,Ne,Pe){if(!Ne)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let Ye=Cxe({name:Fe,base:(0,Hm.pathToFileURL)(ue.fromPortablePath(Ne)),conditions:Pe.conditions??te,readFileSyncFn:se});if(Ye instanceof URL)return Re(ue.toPortablePath((0,Hm.fileURLToPath)(Ye)),{extensions:Pe.extensions});if(Ye.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return j(Ye,Ne,Pe)}function j(Fe,Ne,Pe={}){try{if(Fe.startsWith("#"))return dt(Fe,Ne,Pe);let{considerBuiltins:Ye,extensions:ke,conditions:it}=Pe,_e=X(Fe,Ne,{considerBuiltins:Ye});if(Fe==="pnpapi")return _e;if(_e===null)return null;let x=()=>Ne!==null?pe(Ne):!1,w=(!Ye||!(0,ah.isBuiltin)(Fe))&&!x()?De(Fe,_e,it,Ne):_e;return Re(w,{extensions:ke})}catch(Ye){throw Object.hasOwn(Ye,"pnpCode")&&Object.assign(Ye.data,{request:cf(Fe),issuer:Ne&&cf(Ne)}),Ye}}function rt(Fe){let Ne=K.normalize(Fe),Pe=Ao.resolveVirtual(Ne);return Pe!==Ne?Pe:null}return{VERSIONS:Be,topLevel:Ce,getLocator:(Fe,Ne)=>Array.isArray(Ne)?{name:Ne[0],reference:Ne[1]}:{name:Fe,reference:Ne},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let Fe=[];for(let[Ne,Pe]of S)for(let Ye of Pe.keys())Ne!==null&&Ye!==null&&Fe.push({name:Ne,reference:Ye});return Fe},getPackageInformation:Fe=>{let Ne=g(Fe);if(Ne===null)return null;let Pe=ue.fromPortablePath(Ne.packageLocation);return{...Ne,packageLocation:Pe}},findPackageLocator:Fe=>fe(ue.toPortablePath(Fe)),resolveToUnqualified:N("resolveToUnqualified",(Fe,Ne,Pe)=>{let Ye=Ne!==null?ue.toPortablePath(Ne):null,ke=X(ue.toPortablePath(Fe),Ye,Pe);return ke===null?null:ue.fromPortablePath(ke)}),resolveUnqualified:N("resolveUnqualified",(Fe,Ne)=>ue.fromPortablePath(Re(ue.toPortablePath(Fe),Ne))),resolveRequest:N("resolveRequest",(Fe,Ne,Pe)=>{let Ye=Ne!==null?ue.toPortablePath(Ne):null,ke=j(ue.toPortablePath(Fe),Ye,Pe);return ke===null?null:ue.fromPortablePath(ke)}),resolveVirtual:N("resolveVirtual",Fe=>{let Ne=rt(ue.toPortablePath(Fe));return Ne!==null?ue.fromPortablePath(Ne):null})}}bt();var xxe=(t,e,r)=>{let s=jD(t),a=QY(s,{basePath:e}),n=ue.join(e,Er.pnpCjs);return jY(a,{fakeFs:r,pnpapiResolution:n})};var GY=et(Qxe());Wt();var mA={};Vt(mA,{checkManifestCompatibility:()=>Txe,extractBuildRequest:()=>aN,getExtractHint:()=>WY,hasBindingGyp:()=>YY});Ve();bt();function Txe(t){return q.isPackageCompatible(t,ps.getArchitectureSet())}function aN(t,e,r,{configuration:s}){let a=[];for(let n of["preinstall","install","postinstall"])e.manifest.scripts.has(n)&&a.push({type:0,script:n});return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&a.push({type:1,script:"node-gyp rebuild"}),a.length===0?null:t.linkType!=="HARD"?{skipped:!0,explain:n=>n.reportWarningOnce(6,`${q.prettyLocator(s,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:n=>n.reportInfoOnce(5,`${q.prettyLocator(s,t)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!s.get("enableScripts")&&!r.built?{skipped:!0,explain:n=>n.reportWarningOnce(4,`${q.prettyLocator(s,t)} lists build scripts, but all build scripts have been disabled.`)}:Txe(t)?{skipped:!1,directives:a}:{skipped:!0,explain:n=>n.reportWarningOnce(76,`${q.prettyLocator(s,t)} The ${ps.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var aTt=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function WY(t){return t.packageFs.getExtractHint({relevantExtensions:aTt})}function YY(t){let e=K.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var ZD={};Vt(ZD,{getUnpluggedPath:()=>zD});Ve();bt();function zD(t,{configuration:e}){return K.resolve(e.get("pnpUnpluggedFolder"),q.slugifyLocator(t))}var lTt=new Set([q.makeIdent(null,"open").identHash,q.makeIdent(null,"opn").identHash]),ig=class{constructor(){this.mode="strict";this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let s=sg(r.project).cjs;if(!le.existsSync(s))throw new nt(`The project in ${he.pretty(r.project.configuration,`${r.project.cwd}/package.json`,he.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=je.getFactoryWithDefault(this.pnpCache,s,()=>je.dynamicRequire(s,{cachingStrategy:je.CachingStrategy.FsTime})),n={name:q.stringifyIdent(e),reference:e.reference},c=a.getPackageInformation(n);if(!c)throw new nt(`Couldn't find ${q.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return ue.toPortablePath(c.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let s=sg(r.project).cjs;if(!le.existsSync(s))return null;let n=je.getFactoryWithDefault(this.pnpCache,s,()=>je.dynamicRequire(s,{cachingStrategy:je.CachingStrategy.FsTime})).findPackageLocator(ue.fromPortablePath(e));return n?q.makeLocator(q.parseIdent(n.name),n.reference):null}makeInstaller(e){return new jm(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},jm=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new je.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}attachCustomData(e){this.customData=e}async installPackage(e,r,s){let a=q.stringifyIdent(e),n=e.reference,c=!!this.opts.project.tryWorkspaceByLocator(e),f=q.isVirtualLocator(e),p=e.peerDependencies.size>0&&!f,h=!p&&!c,E=!p&&e.linkType!=="SOFT",C,S;if(h||E){let te=f?q.devirtualizeLocator(e):e;C=this.customData.store.get(te.locatorHash),typeof C>"u"&&(C=await cTt(r),e.linkType==="HARD"&&this.customData.store.set(te.locatorHash,C)),C.manifest.type==="module"&&(this.isESMLoaderRequired=!0),S=this.opts.project.getDependencyMeta(te,e.version)}let P=h?aN(e,C,S,{configuration:this.opts.project.configuration}):null,I=E?await this.unplugPackageIfNeeded(e,C,r,S,s):r.packageFs;if(K.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let R=K.resolve(I.getRealPath(),r.prefixPath),N=VY(this.opts.project.cwd,R),U=new Map,W=new Set;if(f){for(let te of e.peerDependencies.values())U.set(q.stringifyIdent(te),null),W.add(q.stringifyIdent(te));if(!c){let te=q.devirtualizeLocator(e);this.virtualTemplates.set(te.locatorHash,{location:VY(this.opts.project.cwd,Ao.resolveVirtual(R)),locator:te})}}return je.getMapWithDefault(this.packageRegistry,a).set(n,{packageLocation:N,packageDependencies:U,packagePeers:W,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:R,buildRequest:P}}async attachInternalDependencies(e,r){let s=this.getPackageInformation(e);for(let[a,n]of r){let c=q.areIdentsEqual(a,n)?n.reference:[q.stringifyIdent(n),n.reference];s.packageDependencies.set(q.stringifyIdent(a),c)}}async attachExternalDependents(e,r){for(let s of r)this.getDiskInformation(s).packageDependencies.set(q.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=sg(this.opts.project);if(this.isEsmEnabled()||await le.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await le.removePromise(e.cjs),await le.removePromise(e.data),await le.removePromise(e.esmLoader),await le.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:C,location:S}of this.virtualTemplates.values())je.getMapWithDefault(this.packageRegistry,q.stringifyIdent(C)).set(C.reference,{packageLocation:S,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});let r=this.opts.project.configuration.get("pnpFallbackMode"),s=this.opts.project.workspaces.map(({anchoredLocator:C})=>({name:q.stringifyIdent(C),reference:C.reference})),a=r!=="none",n=[],c=new Map,f=je.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),p=this.packageRegistry,h=this.opts.project.configuration.get("pnpShebang"),E=this.opts.project.configuration.get("pnpZipBackend");if(r==="dependencies-only")for(let C of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(C)&&n.push({name:q.stringifyIdent(C),reference:C.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:s,enableTopLevelFallback:a,fallbackExclusionList:n,fallbackPool:c,ignorePattern:f,pnpZipBackend:E,packageRegistry:p,shebang:h}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let r=sg(this.opts.project),s=await this.locateNodeModules(e.ignorePattern);if(s.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let n of s)await le.removePromise(n)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let n=sxe(e);await le.changeFilePromise(r.cjs,n,{automaticNewlines:!0,mode:493}),await le.removePromise(r.data)}else{let{dataFile:n,loaderFile:c}=oxe(e);await le.changeFilePromise(r.cjs,c,{automaticNewlines:!0,mode:493}),await le.changeFilePromise(r.data,n,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await le.changeFilePromise(r.esmLoader,(0,GY.default)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await le.removePromise(a);else for(let n of await le.readdirPromise(a)){let c=K.resolve(a,n);this.unpluggedPaths.has(c)||await le.removePromise(c)}}async locateNodeModules(e){let r=[],s=e?new RegExp(e):null;for(let a of this.opts.project.workspaces){let n=K.join(a.cwd,"node_modules");if(s&&s.test(K.relative(this.opts.project.cwd,a.cwd))||!le.existsSync(n))continue;let c=await le.readdirPromise(n,{withFileTypes:!0}),f=c.filter(p=>!p.isDirectory()||p.name===".bin"||!p.name.startsWith("."));if(f.length===c.length)r.push(n);else for(let p of f)r.push(K.join(n,p.name))}return r}async unplugPackageIfNeeded(e,r,s,a,n){return this.shouldBeUnplugged(e,r,a)?this.unplugPackage(e,s,n):s.packageFs}shouldBeUnplugged(e,r,s){return typeof s.unplugged<"u"?s.unplugged:lTt.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(aN(e,r,s,{configuration:this.opts.project.configuration})?.skipped===!1||r.misc.extractHint)}async unplugPackage(e,r,s){let a=zD(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new Hf(a,{baseFs:r.packageFs,pathUtils:K}):(this.unpluggedPaths.add(a),s.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let n=K.join(a,r.prefixPath,".ready");await le.existsPromise(n)||(this.opts.project.storedBuildState.delete(e.locatorHash),await le.mkdirPromise(a,{recursive:!0}),await le.copyPromise(a,vt.dot,{baseFs:r.packageFs,overwrite:!1}),await le.writeFilePromise(n,""))})),new Sn(a))}getPackageInformation(e){let r=q.stringifyIdent(e),s=e.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${q.prettyIdent(this.opts.project.configuration,e)})`);let n=a.get(s);if(!n)throw new Error(`Assertion failed: The package information should have been available (for ${q.prettyLocator(this.opts.project.configuration,e)})`);return n}getDiskInformation(e){let r=je.getMapWithDefault(this.packageRegistry,"@@disk"),s=VY(this.opts.project.cwd,e);return je.getFactoryWithDefault(r,s,()=>({packageLocation:s,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function VY(t,e){let r=K.relative(t,e);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function cTt(t){let e=await Ht.tryFind(t.prefixPath,{baseFs:t.packageFs})??new Ht,r=new Set(["preinstall","install","postinstall"]);for(let s of e.scripts.keys())r.has(s)||e.scripts.delete(s);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:WY(t),hasBindingGyp:YY(t)}}}Ve();Ve();Wt();var Rxe=et(Sa());var Sw=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=ge.Rest()}static{this.paths=[["unplug"]]}static{this.usage=ot.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd),n=await Jr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);if(r.get("nodeLinker")!=="pnp")throw new nt("This command can only be used if the `nodeLinker` option is set to `pnp`");await s.restoreInstallState();let c=new Set(this.patterns),f=this.patterns.map(P=>{let I=q.parseDescriptor(P),R=I.range!=="unknown"?I:q.makeDescriptor(I,"*");if(!Or.validRange(R.range))throw new nt(`The range of the descriptor patterns must be a valid semver range (${q.prettyDescriptor(r,R)})`);return N=>{let U=q.stringifyIdent(N);return!Rxe.default.isMatch(U,q.stringifyIdent(R))||N.version&&!Or.satisfiesWithPrereleases(N.version,R.range)?!1:(c.delete(P),!0)}}),p=()=>{let P=[];for(let I of s.storedPackages.values())!s.tryWorkspaceByLocator(I)&&!q.isVirtualLocator(I)&&f.some(R=>R(I))&&P.push(I);return P},h=P=>{let I=new Set,R=[],N=(U,W)=>{if(I.has(U.locatorHash))return;let te=!!s.tryWorkspaceByLocator(U);if(!(W>0&&!this.recursive&&te)&&(I.add(U.locatorHash),!s.tryWorkspaceByLocator(U)&&f.some(ie=>ie(U))&&R.push(U),!(W>0&&!this.recursive)))for(let ie of U.dependencies.values()){let Ae=s.storedResolutions.get(ie.descriptorHash);if(!Ae)throw new Error("Assertion failed: The resolution should have been registered");let ce=s.storedPackages.get(Ae);if(!ce)throw new Error("Assertion failed: The package should have been registered");N(ce,W+1)}};for(let U of P)N(U.anchoredPackage,0);return R},E,C;if(this.all&&this.recursive?(E=p(),C="the project"):this.all?(E=h(s.workspaces),C="any workspace"):(E=h([a]),C="this workspace"),c.size>1)throw new nt(`Patterns ${he.prettyList(r,c,he.Type.CODE)} don't match any packages referenced by ${C}`);if(c.size>0)throw new nt(`Pattern ${he.prettyList(r,c,he.Type.CODE)} doesn't match any packages referenced by ${C}`);E=je.sortMap(E,P=>q.stringifyLocator(P));let S=await Ot.start({configuration:r,stdout:this.context.stdout,json:this.json},async P=>{for(let I of E){let R=I.version??"unknown",N=s.topLevelWorkspace.manifest.ensureDependencyMeta(q.makeDescriptor(I,R));N.unplugged=!0,P.reportInfo(0,`Will unpack ${q.prettyLocator(r,I)} to ${he.pretty(r,zD(I,{configuration:r}),he.Type.PATH)}`),P.reportJson({locator:q.stringifyLocator(I),version:R})}await s.topLevelWorkspace.persistManifest(),this.json||P.reportSeparator()});return S.hasErrors()?S.exitCode():await s.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};var sg=t=>({cjs:K.join(t.cwd,Er.pnpCjs),data:K.join(t.cwd,Er.pnpData),esmLoader:K.join(t.cwd,Er.pnpEsmLoader)}),Nxe=t=>/\s/.test(t)?JSON.stringify(t):t;async function uTt(t,e,r){let s=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/,n=(e.NODE_OPTIONS??"").replace(s," ").replace(a," ").trim();if(t.configuration.get("nodeLinker")!=="pnp"){e.NODE_OPTIONS=n||void 0;return}let c=sg(t),f=`--require ${Nxe(ue.fromPortablePath(c.cjs))}`;le.existsSync(c.esmLoader)&&(f=`${f} --experimental-loader ${(0,Fxe.pathToFileURL)(ue.fromPortablePath(c.esmLoader)).href}`),le.existsSync(c.cjs)&&(e.NODE_OPTIONS=n?`${f} ${n}`:f)}async function fTt(t,e){let r=sg(t);e(r.cjs),e(r.data),e(r.esmLoader),e(t.configuration.get("pnpUnpluggedFolder"))}var ATt={hooks:{populateYarnPaths:fTt,setupScriptEnvironment:uTt},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "pnpm", or "node-modules"',type:"STRING",default:"pnp"},minizip:{description:"Whether Yarn should use minizip to extract archives",type:"BOOLEAN",default:!1},winLinkType:{description:"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.",type:"STRING",values:["junctions","symlinks"],default:"junctions"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpZipBackend:{description:"Whether to use the experimental js implementation for the ZipFS",type:"STRING",values:["libzip","js"],default:"libzip"},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"}},linkers:[ig],commands:[Sw]},pTt=ATt;var qxe=et(Uxe());Wt();var tV=et(Ie("crypto")),Gxe=et(Ie("fs")),Wxe=1,Ri="node_modules",lN=".bin",Yxe=".yarn-state.yml",kTt=1e3,rV=(s=>(s.CLASSIC="classic",s.HARDLINKS_LOCAL="hardlinks-local",s.HARDLINKS_GLOBAL="hardlinks-global",s))(rV||{}),XD=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:"NodeModulesLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let s=r.project.tryWorkspaceByLocator(e);if(s)return s.cwd;let a=await je.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await eV(r.project,{unrollAliases:!0}));if(a===null)throw new nt("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let n=a.locatorMap.get(q.stringifyLocator(e));if(!n){let p=new nt(`Couldn't find ${q.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw p.code="LOCATOR_NOT_INSTALLED",p}let c=n.locations.sort((p,h)=>p.split(K.sep).length-h.split(K.sep).length),f=K.join(r.project.configuration.startingCwd,Ri);return c.find(p=>K.contains(f,p))||n.locations[0]}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let s=await je.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await eV(r.project,{unrollAliases:!0}));if(s===null)return null;let{locationRoot:a,segments:n}=cN(K.resolve(e),{skipPrefix:r.project.cwd}),c=s.locationTree.get(a);if(!c)return null;let f=c.locator;for(let p of n){if(c=c.children.get(p),!c)break;f=c.locator||f}return q.parseLocator(f)}makeInstaller(e){return new $Y(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},$Y=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}attachCustomData(e){this.customData=e}async installPackage(e,r){let s=K.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(e.locatorHash);if(typeof a>"u"&&(a=await QTt(e,r),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,a)),!q.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildRequest:null};let n=new Map,c=new Set;n.has(q.stringifyIdent(e))||n.set(q.stringifyIdent(e),e.reference);let f=e;if(q.isVirtualLocator(e)){f=q.devirtualizeLocator(e);for(let E of e.peerDependencies.values())n.set(q.stringifyIdent(E),null),c.add(q.stringifyIdent(E))}let p={packageLocation:`${ue.fromPortablePath(s)}/`,packageDependencies:n,packagePeers:c,linkType:e.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:p});let h=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(f.locatorHash,h),{packageLocation:s,buildRequest:null}}async attachInternalDependencies(e,r){let s=this.localStore.get(e.locatorHash);if(typeof s>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[a,n]of r){let c=q.areIdentsEqual(a,n)?n.reference:[q.stringifyIdent(n),n.reference];s.pnpNode.packageDependencies.set(q.stringifyIdent(a),c)}}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new Ao({baseFs:new tA({maxOpenFiles:80,readOnlyArchives:!0})}),r=await eV(this.opts.project),s=this.opts.project.configuration.get("nmMode");(r===null||s!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:s,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(S=>{let P=this.opts.project.configuration.get("nmHoistingLimits");try{P=je.validateEnum(_D,S.manifest.installConfig?.hoistingLimits??P)}catch{let I=q.prettyWorkspace(this.opts.project.configuration,S);this.opts.report.reportWarning(57,`${I}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(_D).join(", ")}, using default: "${P}"`)}return[S.relativeCwd,P]})),n=new Map(this.opts.project.workspaces.map(S=>{let P=this.opts.project.configuration.get("nmSelfReferences");return P=S.manifest.installConfig?.selfReferences??P,[S.relativeCwd,P]})),c={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(S,P)=>Array.isArray(P)?{name:P[0],reference:P[1]}:{name:S,reference:P},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(S=>{let P=S.anchoredLocator;return{name:q.stringifyIdent(P),reference:P.reference}}),getPackageInformation:S=>{let P=S.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:q.makeLocator(q.parseIdent(S.name),S.reference),I=this.localStore.get(P.locatorHash);if(typeof I>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return I.pnpNode},findPackageLocator:S=>{let P=this.opts.project.tryWorkspaceByCwd(ue.toPortablePath(S));if(P!==null){let I=P.anchoredLocator;return{name:q.stringifyIdent(I),reference:I.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:S=>ue.fromPortablePath(Ao.resolveVirtual(ue.toPortablePath(S)))},{tree:f,errors:p,preserveSymlinksRequired:h}=UD(c,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:n});if(!f){for(let{messageName:S,text:P}of p)this.opts.report.reportError(S,P);return}let E=xY(f);await MTt(r,E,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async S=>{let P=q.parseLocator(S),I=this.localStore.get(P.locatorHash);if(typeof I>"u")throw new Error("Assertion failed: Expected the slot to exist");return I.customPackageData.manifest}});let C=[];for(let[S,P]of E.entries()){if(Jxe(S))continue;let I=q.parseLocator(S),R=this.localStore.get(I.locatorHash);if(typeof R>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(R.pkg))continue;let N=mA.extractBuildRequest(R.pkg,R.customPackageData,R.dependencyMeta,{configuration:this.opts.project.configuration});N&&C.push({buildLocations:P.locations,locator:I,buildRequest:N})}return h&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${he.pretty(this.opts.project.configuration,"--preserve-symlinks",he.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:C}}};async function QTt(t,e){let r=await Ht.tryFind(e.prefixPath,{baseFs:e.packageFs})??new Ht,s=new Set(["preinstall","install","postinstall"]);for(let a of r.scripts.keys())s.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:mA.hasBindingGyp(e)}}}async function TTt(t,e,r,s,{installChangedByUser:a}){let n="";n+=`# Warning: This file is automatically generated. Removing it is fine, but will +`,n+=`# cause your node_modules installation to become invalidated. +`,n+=` +`,n+=`__metadata: +`,n+=` version: ${Wxe} +`,n+=` nmMode: ${s.value} +`;let c=Array.from(e.keys()).sort(),f=q.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let E of c){let C=e.get(E);n+=` +`,n+=`${JSON.stringify(E)}: +`,n+=` locations: +`;for(let S of C.locations){let P=K.contains(t.cwd,S);if(P===null)throw new Error(`Assertion failed: Expected the path to be within the project (${S})`);n+=` - ${JSON.stringify(P)} +`}if(C.aliases.length>0){n+=` aliases: +`;for(let S of C.aliases)n+=` - ${JSON.stringify(S)} +`}if(E===f&&r.size>0){n+=` bin: +`;for(let[S,P]of r){let I=K.contains(t.cwd,S);if(I===null)throw new Error(`Assertion failed: Expected the path to be within the project (${S})`);n+=` ${JSON.stringify(I)}: +`;for(let[R,N]of P){let U=K.relative(K.join(S,Ri),N);n+=` ${JSON.stringify(R)}: ${JSON.stringify(U)} +`}}}}let p=t.cwd,h=K.join(p,Ri,Yxe);a&&await le.removePromise(h),await le.changeFilePromise(h,n,{automaticNewlines:!0})}async function eV(t,{unrollAliases:e=!1}={}){let r=t.cwd,s=K.join(r,Ri,Yxe),a;try{a=await le.statPromise(s)}catch{}if(!a)return null;let n=cs(await le.readFilePromise(s,"utf8"));if(n.__metadata.version>Wxe)return null;let c=n.__metadata.nmMode||"classic",f=new Map,p=new Map;delete n.__metadata;for(let[h,E]of Object.entries(n)){let C=E.locations.map(P=>K.join(r,P)),S=E.bin;if(S)for(let[P,I]of Object.entries(S)){let R=K.join(r,ue.toPortablePath(P)),N=je.getMapWithDefault(p,R);for(let[U,W]of Object.entries(I))N.set(U,ue.toPortablePath([R,Ri,W].join(K.sep)))}if(f.set(h,{target:vt.dot,linkType:"HARD",locations:C,aliases:E.aliases||[]}),e&&E.aliases)for(let P of E.aliases){let{scope:I,name:R}=q.parseLocator(h),N=q.makeLocator(q.makeIdent(I,R),P),U=q.stringifyLocator(N);f.set(U,{target:vt.dot,linkType:"HARD",locations:C,aliases:[]})}}return{locatorMap:f,binSymlinks:p,locationTree:Vxe(f,{skipPrefix:t.cwd}),nmMode:c,mtimeMs:a.mtimeMs}}var bw=async(t,e)=>{if(t.split(K.sep).indexOf(Ri)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{let r;if(!e.innerLoop&&(r=await le.lstatPromise(t),!r.isDirectory()&&!r.isSymbolicLink()||r.isSymbolicLink()&&!e.isWorkspaceDir)){await le.unlinkPromise(t);return}let s=await le.readdirPromise(t,{withFileTypes:!0});for(let n of s){let c=K.join(t,n.name);n.isDirectory()?(n.name!==Ri||e&&e.innerLoop)&&await bw(c,{innerLoop:!0,contentsOnly:!1}):await le.unlinkPromise(c)}let a=!e.innerLoop&&e.isWorkspaceDir&&r?.isSymbolicLink();!e.contentsOnly&&!a&&await le.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},Hxe=4,cN=(t,{skipPrefix:e})=>{let r=K.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let s=r.split(K.sep).filter(p=>p!==""),a=s.indexOf(Ri),n=s.slice(0,a).join(K.sep),c=K.join(e,n),f=s.slice(a);return{locationRoot:c,segments:f}},Vxe=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let s=()=>({children:new Map,linkType:"HARD"});for(let[a,n]of t.entries()){if(n.linkType==="SOFT"&&K.contains(e,n.target)!==null){let f=je.getFactoryWithDefault(r,n.target,s);f.locator=a,f.linkType=n.linkType}for(let c of n.locations){let{locationRoot:f,segments:p}=cN(c,{skipPrefix:e}),h=je.getFactoryWithDefault(r,f,s);for(let E=0;E<p.length;++E){let C=p[E];if(C!=="."){let S=je.getFactoryWithDefault(h.children,C,s);h.children.set(C,S),h=S}E===p.length-1&&(h.locator=a,h.linkType=n.linkType)}}}return r},nV=async(t,e,r)=>{if(process.platform==="win32"&&r==="junctions"){let s;try{s=await le.lstatPromise(t)}catch{}if(!s||s.isDirectory()){await le.symlinkPromise(t,e,"junction");return}}await le.symlinkPromise(K.relative(K.dirname(e),t),e)};async function Kxe(t,e,r){let s=K.join(t,`${tV.default.randomBytes(16).toString("hex")}.tmp`);try{await le.writeFilePromise(s,r);try{await le.linkPromise(s,e)}catch{}}finally{await le.unlinkPromise(s)}}async function RTt({srcPath:t,dstPath:e,entry:r,globalHardlinksStore:s,baseFs:a,nmMode:n}){if(r.kind==="file"){if(n.value==="hardlinks-global"&&s&&r.digest){let f=K.join(s,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),p;try{let h=await le.statPromise(f);if(h&&(!r.mtimeMs||h.mtimeMs>r.mtimeMs||h.mtimeMs<r.mtimeMs-kTt))if(await Nn.checksumFile(f,{baseFs:le,algorithm:"sha1"})!==r.digest){let C=K.join(s,`${tV.default.randomBytes(16).toString("hex")}.tmp`);await le.renamePromise(f,C);let S=await a.readFilePromise(t);await le.writeFilePromise(C,S);try{await le.linkPromise(C,f),r.mtimeMs=new Date().getTime(),await le.unlinkPromise(C)}catch{}}else r.mtimeMs||(r.mtimeMs=Math.ceil(h.mtimeMs));await le.linkPromise(f,e),p=!0}catch{p=!1}if(!p){let h=await a.readFilePromise(t);await Kxe(s,f,h),r.mtimeMs=new Date().getTime();try{await le.linkPromise(f,e)}catch(E){E&&E.code&&E.code=="EXDEV"&&(n.value="hardlinks-local",await a.copyFilePromise(t,e))}}}else await a.copyFilePromise(t,e);let c=r.mode&511;c!==420&&await le.chmodPromise(e,c)}}var FTt=async(t,e,{baseFs:r,globalHardlinksStore:s,nmMode:a,windowsLinkType:n,packageChecksum:c})=>{await le.mkdirPromise(t,{recursive:!0});let f=async(E=vt.dot)=>{let C=K.join(e,E),S=await r.readdirPromise(C,{withFileTypes:!0}),P=new Map;for(let I of S){let R=K.join(E,I.name),N,U=K.join(C,I.name);if(I.isFile()){if(N={kind:"file",mode:(await r.lstatPromise(U)).mode},a.value==="hardlinks-global"){let W=await Nn.checksumFile(U,{baseFs:r,algorithm:"sha1"});N.digest=W}}else if(I.isDirectory())N={kind:"directory"};else if(I.isSymbolicLink())N={kind:"symlink",symlinkTo:await r.readlinkPromise(U)};else throw new Error(`Unsupported file type (file: ${U}, mode: 0o${await r.statSync(U).mode.toString(8).padStart(6,"0")})`);if(P.set(R,N),I.isDirectory()&&R!==Ri){let W=await f(R);for(let[te,ie]of W)P.set(te,ie)}}return P},p;if(a.value==="hardlinks-global"&&s&&c){let E=K.join(s,c.substring(0,2),`${c.substring(2)}.json`);try{p=new Map(Object.entries(JSON.parse(await le.readFilePromise(E,"utf8"))))}catch{p=await f()}}else p=await f();let h=!1;for(let[E,C]of p){let S=K.join(e,E),P=K.join(t,E);if(C.kind==="directory")await le.mkdirPromise(P,{recursive:!0});else if(C.kind==="file"){let I=C.mtimeMs;await RTt({srcPath:S,dstPath:P,entry:C,nmMode:a,baseFs:r,globalHardlinksStore:s}),C.mtimeMs!==I&&(h=!0)}else C.kind==="symlink"&&await nV(K.resolve(K.dirname(P),C.symlinkTo),P,n)}if(a.value==="hardlinks-global"&&s&&h&&c){let E=K.join(s,c.substring(0,2),`${c.substring(2)}.json`);await le.removePromise(E),await Kxe(s,E,Buffer.from(JSON.stringify(Object.fromEntries(p))))}};function NTt(t,e,r,s){let a=new Map,n=new Map,c=new Map,f=!1,p=(h,E,C,S,P)=>{let I=!0,R=K.join(h,E),N=new Set;if(E===Ri||E.startsWith("@")){let W;try{W=le.statSync(R)}catch{}I=!!W,W?W.mtimeMs>r?(f=!0,N=new Set(le.readdirSync(R))):N=new Set(C.children.get(E).children.keys()):f=!0;let te=e.get(h);if(te){let ie=K.join(h,Ri,lN),Ae;try{Ae=le.statSync(ie)}catch{}if(!Ae)f=!0;else if(Ae.mtimeMs>r){f=!0;let ce=new Set(le.readdirSync(ie)),me=new Map;n.set(h,me);for(let[pe,Be]of te)ce.has(pe)&&me.set(pe,Be)}else n.set(h,te)}}else I=P.has(E);let U=C.children.get(E);if(I){let{linkType:W,locator:te}=U,ie={children:new Map,linkType:W,locator:te};if(S.children.set(E,ie),te){let Ae=je.getSetWithDefault(c,te);Ae.add(R),c.set(te,Ae)}for(let Ae of U.children.keys())p(R,Ae,U,ie,N)}else U.locator&&s.storedBuildState.delete(q.parseLocator(U.locator).locatorHash)};for(let[h,E]of t){let{linkType:C,locator:S}=E,P={children:new Map,linkType:C,locator:S};if(a.set(h,P),S){let I=je.getSetWithDefault(c,E.locator);I.add(h),c.set(E.locator,I)}E.children.has(Ri)&&p(h,Ri,E,P,new Set)}return{locationTree:a,binSymlinks:n,locatorLocations:c,installChangedByUser:f}}function Jxe(t){let e=q.parseDescriptor(t);return q.isVirtualDescriptor(e)&&(e=q.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function OTt(t,e,r,{loadManifest:s}){let a=new Map;for(let[f,{locations:p}]of t){let h=Jxe(f)?null:await s(f,p[0]),E=new Map;if(h)for(let[C,S]of h.bin){let P=K.join(p[0],S);S!==""&&le.existsSync(P)&&E.set(C,S)}a.set(f,E)}let n=new Map,c=(f,p,h)=>{let E=new Map,C=K.contains(r,f);if(h.locator&&C!==null){let S=a.get(h.locator);for(let[P,I]of S){let R=K.join(f,ue.toPortablePath(I));E.set(P,R)}for(let[P,I]of h.children){let R=K.join(f,P),N=c(R,R,I);N.size>0&&n.set(f,new Map([...n.get(f)||new Map,...N]))}}else for(let[S,P]of h.children){let I=c(K.join(f,S),p,P);for(let[R,N]of I)E.set(R,N)}return E};for(let[f,p]of e){let h=c(f,f,p);h.size>0&&n.set(f,new Map([...n.get(f)||new Map,...h]))}return n}var jxe=(t,e)=>{if(!t||!e)return t===e;let r=q.parseLocator(t);q.isVirtualLocator(r)&&(r=q.devirtualizeLocator(r));let s=q.parseLocator(e);return q.isVirtualLocator(s)&&(s=q.devirtualizeLocator(s)),q.areLocatorsEqual(r,s)};function iV(t){return K.join(t.get("globalFolder"),"store")}function LTt(t,e){let r=s=>{let a=s.split(K.sep),n=a.lastIndexOf(Ri);if(n<0||n==a.length-1)throw new Error(`Assertion failed. Path is outside of any node_modules package ${s}`);return a.slice(0,n+(a[n+1].startsWith("@")?3:2)).join(K.sep)};for(let s of t.values())for(let[a,n]of s)e.has(r(n))&&s.delete(a)}async function MTt(t,e,{baseFs:r,project:s,report:a,loadManifest:n,realLocatorChecksums:c}){let f=K.join(s.cwd,Ri),{locationTree:p,binSymlinks:h,locatorLocations:E,installChangedByUser:C}=NTt(t.locationTree,t.binSymlinks,t.mtimeMs,s),S=Vxe(e,{skipPrefix:s.cwd}),P=[],I=async({srcDir:Be,dstDir:Ce,linkType:g,globalHardlinksStore:we,nmMode:ye,windowsLinkType:fe,packageChecksum:se})=>{let X=(async()=>{try{g==="SOFT"?(await le.mkdirPromise(K.dirname(Ce),{recursive:!0}),await nV(K.resolve(Be),Ce,fe)):await FTt(Ce,Be,{baseFs:r,globalHardlinksStore:we,nmMode:ye,windowsLinkType:fe,packageChecksum:se})}catch(De){throw De.message=`While persisting ${Be} -> ${Ce} ${De.message}`,De}finally{ie.tick()}})().then(()=>P.splice(P.indexOf(X),1));P.push(X),P.length>Hxe&&await Promise.race(P)},R=async(Be,Ce,g)=>{let we=(async()=>{let ye=async(fe,se,X)=>{try{X.innerLoop||await le.mkdirPromise(se,{recursive:!0});let De=await le.readdirPromise(fe,{withFileTypes:!0});for(let Re of De){if(!X.innerLoop&&Re.name===lN)continue;let dt=K.join(fe,Re.name),j=K.join(se,Re.name);Re.isDirectory()?(Re.name!==Ri||X&&X.innerLoop)&&(await le.mkdirPromise(j,{recursive:!0}),await ye(dt,j,{...X,innerLoop:!0})):me.value==="hardlinks-local"||me.value==="hardlinks-global"?await le.linkPromise(dt,j):await le.copyFilePromise(dt,j,Gxe.default.constants.COPYFILE_FICLONE)}}catch(De){throw X.innerLoop||(De.message=`While cloning ${fe} -> ${se} ${De.message}`),De}finally{X.innerLoop||ie.tick()}};await ye(Be,Ce,g)})().then(()=>P.splice(P.indexOf(we),1));P.push(we),P.length>Hxe&&await Promise.race(P)},N=async(Be,Ce,g)=>{if(g)for(let[we,ye]of Ce.children){let fe=g.children.get(we);await N(K.join(Be,we),ye,fe)}else{Ce.children.has(Ri)&&await bw(K.join(Be,Ri),{contentsOnly:!1});let we=K.basename(Be)===Ri&&p.has(K.join(K.dirname(Be)));await bw(Be,{contentsOnly:Be===f,isWorkspaceDir:we})}};for(let[Be,Ce]of p){let g=S.get(Be);for(let[we,ye]of Ce.children){if(we===".")continue;let fe=g&&g.children.get(we),se=K.join(Be,we);await N(se,ye,fe)}}let U=async(Be,Ce,g)=>{if(g){jxe(Ce.locator,g.locator)||await bw(Be,{contentsOnly:Ce.linkType==="HARD"});for(let[we,ye]of Ce.children){let fe=g.children.get(we);await U(K.join(Be,we),ye,fe)}}else{Ce.children.has(Ri)&&await bw(K.join(Be,Ri),{contentsOnly:!0});let we=K.basename(Be)===Ri&&S.has(K.join(K.dirname(Be)));await bw(Be,{contentsOnly:Ce.linkType==="HARD",isWorkspaceDir:we})}};for(let[Be,Ce]of S){let g=p.get(Be);for(let[we,ye]of Ce.children){if(we===".")continue;let fe=g&&g.children.get(we);await U(K.join(Be,we),ye,fe)}}let W=new Map,te=[];for(let[Be,Ce]of E)for(let g of Ce){let{locationRoot:we,segments:ye}=cN(g,{skipPrefix:s.cwd}),fe=S.get(we),se=we;if(fe){for(let X of ye)if(se=K.join(se,X),fe=fe.children.get(X),!fe)break;if(fe){let X=jxe(fe.locator,Be),De=e.get(fe.locator),Re=De.target,dt=se,j=De.linkType;if(X)W.has(Re)||W.set(Re,dt);else if(Re!==dt){let rt=q.parseLocator(fe.locator);q.isVirtualLocator(rt)&&(rt=q.devirtualizeLocator(rt)),te.push({srcDir:Re,dstDir:dt,linkType:j,realLocatorHash:rt.locatorHash})}}}}for(let[Be,{locations:Ce}]of e.entries())for(let g of Ce){let{locationRoot:we,segments:ye}=cN(g,{skipPrefix:s.cwd}),fe=p.get(we),se=S.get(we),X=we,De=e.get(Be),Re=q.parseLocator(Be);q.isVirtualLocator(Re)&&(Re=q.devirtualizeLocator(Re));let dt=Re.locatorHash,j=De.target,rt=g;if(j===rt)continue;let Fe=De.linkType;for(let Ne of ye)se=se.children.get(Ne);if(!fe)te.push({srcDir:j,dstDir:rt,linkType:Fe,realLocatorHash:dt});else for(let Ne of ye)if(X=K.join(X,Ne),fe=fe.children.get(Ne),!fe){te.push({srcDir:j,dstDir:rt,linkType:Fe,realLocatorHash:dt});break}}let ie=ho.progressViaCounter(te.length),Ae=a.reportProgress(ie),ce=s.configuration.get("nmMode"),me={value:ce},pe=s.configuration.get("winLinkType");try{let Be=me.value==="hardlinks-global"?`${iV(s.configuration)}/v1`:null;if(Be&&!await le.existsPromise(Be)){await le.mkdirpPromise(Be);for(let g=0;g<256;g++)await le.mkdirPromise(K.join(Be,g.toString(16).padStart(2,"0")))}for(let g of te)(g.linkType==="SOFT"||!W.has(g.srcDir))&&(W.set(g.srcDir,g.dstDir),await I({...g,globalHardlinksStore:Be,nmMode:me,windowsLinkType:pe,packageChecksum:c.get(g.realLocatorHash)||null}));await Promise.all(P),P.length=0;for(let g of te){let we=W.get(g.srcDir);g.linkType!=="SOFT"&&g.dstDir!==we&&await R(we,g.dstDir,{nmMode:me})}await Promise.all(P),await le.mkdirPromise(f,{recursive:!0}),LTt(h,new Set(te.map(g=>g.dstDir)));let Ce=await OTt(e,S,s.cwd,{loadManifest:n});await _Tt(h,Ce,s.cwd,pe),await TTt(s,e,Ce,me,{installChangedByUser:C}),ce=="hardlinks-global"&&me.value=="hardlinks-local"&&a.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{Ae.stop()}}async function _Tt(t,e,r,s){for(let a of t.keys()){if(K.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!e.has(a)){let n=K.join(a,Ri,lN);await le.removePromise(n)}}for(let[a,n]of e){if(K.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let c=K.join(a,Ri,lN),f=t.get(a)||new Map;await le.mkdirPromise(c,{recursive:!0});for(let p of f.keys())n.has(p)||(await le.removePromise(K.join(c,p)),process.platform==="win32"&&await le.removePromise(K.join(c,`${p}.cmd`)));for(let[p,h]of n){let E=f.get(p),C=K.join(c,p);E!==h&&(process.platform==="win32"?await(0,qxe.default)(ue.fromPortablePath(h),ue.fromPortablePath(C),{createPwshFile:!1}):(await le.removePromise(C),await nV(h,C,s),K.contains(r,await le.realpathPromise(h))!==null&&await le.chmodPromise(h,493)))}}}Ve();bt();rA();var $D=class extends ig{constructor(){super(...arguments);this.mode="loose"}makeInstaller(r){return new sV(r)}},sV=class extends jm{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(r){let s=new Ao({baseFs:new tA({maxOpenFiles:80,readOnlyArchives:!0})}),a=xxe(r,this.opts.project.cwd,s),{tree:n,errors:c}=UD(a,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:C,text:S}of c)this.opts.report.reportError(C,S);return}let f=new Map;r.fallbackPool=f;let p=(C,S)=>{let P=q.parseLocator(S.locator),I=q.stringifyIdent(P);I===C?f.set(C,P.reference):f.set(C,[I,P.reference])},h=K.join(this.opts.project.cwd,Er.nodeModules),E=n.get(h);if(!(typeof E>"u")){if("target"in E)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let C of E.dirList){let S=K.join(h,C),P=n.get(S);if(typeof P>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in P)p(C,P);else for(let I of P.dirList){let R=K.join(S,I),N=n.get(R);if(typeof N>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in N)p(`${C}/${I}`,N);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var UTt={hooks:{cleanGlobalArtifacts:async t=>{let e=iV(t);await le.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevents packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:"Defines in which measure Yarn must use hardlinks and symlinks when generated `node_modules` directories.",type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"Defines whether the linker should generate self-referencing symlinks for workspaces.",type:"BOOLEAN",default:!0}},linkers:[XD,$D]},HTt=UTt;var oz={};Vt(oz,{NpmHttpFetcher:()=>rb,NpmRemapResolver:()=>nb,NpmSemverFetcher:()=>lh,NpmSemverResolver:()=>ib,NpmTagResolver:()=>sb,default:()=>ZHt,npmConfigUtils:()=>hi,npmHttpUtils:()=>an,npmPublishUtils:()=>B1});Ve();var nke=et(Ai());var oi="npm:";var an={};Vt(an,{AuthType:()=>eke,customPackageError:()=>qm,del:()=>tRt,get:()=>Gm,getIdentUrl:()=>uN,getPackageMetadata:()=>kw,handleInvalidAuthenticationError:()=>og,post:()=>$Tt,put:()=>eRt});Ve();Ve();bt();var cV=et(nS()),Xxe=et(mG()),$xe=et(Ai());var hi={};Vt(hi,{RegistryType:()=>zxe,getAuditRegistry:()=>jTt,getAuthConfiguration:()=>lV,getDefaultRegistry:()=>eb,getPublishRegistry:()=>qTt,getRegistryConfiguration:()=>Zxe,getScopeConfiguration:()=>aV,getScopeRegistry:()=>Pw,normalizeRegistry:()=>zc});var zxe=(s=>(s.AUDIT_REGISTRY="npmAuditRegistry",s.FETCH_REGISTRY="npmRegistryServer",s.PUBLISH_REGISTRY="npmPublishRegistry",s))(zxe||{});function zc(t){return t.replace(/\/$/,"")}function jTt({configuration:t}){return eb({configuration:t,type:"npmAuditRegistry"})}function qTt(t,{configuration:e}){return t.publishConfig?.registry?zc(t.publishConfig.registry):t.name?Pw(t.name.scope,{configuration:e,type:"npmPublishRegistry"}):eb({configuration:e,type:"npmPublishRegistry"})}function Pw(t,{configuration:e,type:r="npmRegistryServer"}){let s=aV(t,{configuration:e});if(s===null)return eb({configuration:e,type:r});let a=s.get(r);return a===null?eb({configuration:e,type:r}):zc(a)}function eb({configuration:t,type:e="npmRegistryServer"}){let r=t.get(e);return zc(r!==null?r:t.get("npmRegistryServer"))}function Zxe(t,{configuration:e}){let r=e.get("npmRegistries"),s=zc(t),a=r.get(s);if(typeof a<"u")return a;let n=r.get(s.replace(/^[a-z]+:/,""));return typeof n<"u"?n:null}var GTt=new Map([["npmRegistryServer","https://npm.jsr.io/"]]);function aV(t,{configuration:e}){if(t===null)return null;let s=e.get("npmScopes").get(t);return s||(t==="jsr"?GTt:null)}function lV(t,{configuration:e,ident:r}){let s=r&&aV(r.scope,{configuration:e});return s?.get("npmAuthIdent")||s?.get("npmAuthToken")?s:Zxe(t,{configuration:e})||e}var eke=(a=>(a[a.NO_AUTH=0]="NO_AUTH",a[a.BEST_EFFORT=1]="BEST_EFFORT",a[a.CONFIGURATION=2]="CONFIGURATION",a[a.ALWAYS_AUTH=3]="ALWAYS_AUTH",a))(eke||{});async function og(t,{attemptedAs:e,registry:r,headers:s,configuration:a}){if(AN(t))throw new Yt(41,"Invalid OTP token");if(t.originalError?.name==="HTTPError"&&t.originalError?.response.statusCode===401)throw new Yt(41,`Invalid authentication (${typeof e!="string"?`as ${await nRt(r,s,{configuration:a})}`:`attempted as ${e}`})`)}function qm(t,e){let r=t.response?.statusCode;return r?r===404?"Package not found":r>=500&&r<600?`The registry appears to be down (using a ${he.applyHyperlink(e,"local cache","https://yarnpkg.com/advanced/lexicon#local-cache")} might have protected you against such outages)`:null:null}function uN(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}var tke=new Map,WTt=new Map;async function YTt(t){return await je.getFactoryWithDefault(tke,t,async()=>{let e=null;try{e=await le.readJsonPromise(t)}catch{}return e})}async function VTt(t,e,{configuration:r,cached:s,registry:a,headers:n,version:c,...f}){return await je.getFactoryWithDefault(WTt,t,async()=>await Gm(uN(e),{...f,customErrorMessage:qm,configuration:r,registry:a,ident:e,headers:{...n,"If-None-Match":s?.etag,"If-Modified-Since":s?.lastModified},wrapNetworkRequest:async p=>async()=>{let h=await p();if(h.statusCode===304){if(s===null)throw new Error("Assertion failed: cachedMetadata should not be null");return{...h,body:s.metadata}}let E=JTt(JSON.parse(h.body.toString())),C={metadata:E,etag:h.headers.etag,lastModified:h.headers["last-modified"]};return tke.set(t,Promise.resolve(C)),Promise.resolve().then(async()=>{let S=`${t}-${process.pid}.tmp`;await le.mkdirPromise(K.dirname(S),{recursive:!0}),await le.writeJsonPromise(S,C,{compact:!0}),await le.renamePromise(S,t)}).catch(()=>{}),{...h,body:E}}}))}function KTt(t){return t.scope!==null?`@${t.scope}-${t.name}-${t.scope.length}`:t.name}async function kw(t,{cache:e,project:r,registry:s,headers:a,version:n,...c}){let{configuration:f}=r;s=tb(f,{ident:t,registry:s});let p=ZTt(f,s),h=K.join(p,`${KTt(t)}.json`),E=null;if(!r.lockfileNeedsRefresh&&(E=await YTt(h),E)){if(typeof n<"u"&&typeof E.metadata.versions[n]<"u")return E.metadata;if(f.get("enableOfflineMode")){let C=structuredClone(E.metadata),S=new Set;if(e){for(let I of Object.keys(C.versions)){let R=q.makeLocator(t,`npm:${I}`),N=e.getLocatorMirrorPath(R);(!N||!le.existsSync(N))&&(delete C.versions[I],S.add(I))}let P=C["dist-tags"].latest;if(S.has(P)){let I=Object.keys(E.metadata.versions).sort($xe.default.compare),R=I.indexOf(P);for(;S.has(I[R])&&R>=0;)R-=1;R>=0?C["dist-tags"].latest=I[R]:delete C["dist-tags"].latest}}return C}}return await VTt(h,t,{...c,configuration:f,cached:E,registry:s,headers:a,version:n})}var rke=["name","dist.tarball","bin","scripts","os","cpu","libc","dependencies","dependenciesMeta","optionalDependencies","peerDependencies","peerDependenciesMeta","deprecated"];function JTt(t){return{"dist-tags":t["dist-tags"],versions:Object.fromEntries(Object.entries(t.versions).map(([e,r])=>[e,(0,Xxe.default)(r,rke)]))}}var zTt=Nn.makeHash(...rke).slice(0,6);function ZTt(t,e){let r=XTt(t),s=new URL(e);return K.join(r,zTt,s.hostname)}function XTt(t){return K.join(t.get("globalFolder"),"metadata/npm")}async function Gm(t,{configuration:e,headers:r,ident:s,authType:a,registry:n,...c}){n=tb(e,{ident:s,registry:n}),s&&s.scope&&typeof a>"u"&&(a=1);let f=await fN(n,{authType:a,configuration:e,ident:s});f&&(r={...r,authorization:f});try{return await An.get(t.charAt(0)==="/"?`${n}${t}`:t,{configuration:e,headers:r,...c})}catch(p){throw await og(p,{registry:n,configuration:e,headers:r}),p}}async function $Tt(t,e,{attemptedAs:r,configuration:s,headers:a,ident:n,authType:c=3,registry:f,otp:p,...h}){f=tb(s,{ident:n,registry:f});let E=await fN(f,{authType:c,configuration:s,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...xw(p)});try{return await An.post(f+t,e,{configuration:s,headers:a,...h})}catch(C){if(!AN(C)||p)throw await og(C,{attemptedAs:r,registry:f,configuration:s,headers:a}),C;p=await uV(C,{configuration:s});let S={...a,...xw(p)};try{return await An.post(`${f}${t}`,e,{configuration:s,headers:S,...h})}catch(P){throw await og(P,{attemptedAs:r,registry:f,configuration:s,headers:a}),P}}}async function eRt(t,e,{attemptedAs:r,configuration:s,headers:a,ident:n,authType:c=3,registry:f,otp:p,...h}){f=tb(s,{ident:n,registry:f});let E=await fN(f,{authType:c,configuration:s,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...xw(p)});try{return await An.put(f+t,e,{configuration:s,headers:a,...h})}catch(C){if(!AN(C))throw await og(C,{attemptedAs:r,registry:f,configuration:s,headers:a}),C;p=await uV(C,{configuration:s});let S={...a,...xw(p)};try{return await An.put(`${f}${t}`,e,{configuration:s,headers:S,...h})}catch(P){throw await og(P,{attemptedAs:r,registry:f,configuration:s,headers:a}),P}}}async function tRt(t,{attemptedAs:e,configuration:r,headers:s,ident:a,authType:n=3,registry:c,otp:f,...p}){c=tb(r,{ident:a,registry:c});let h=await fN(c,{authType:n,configuration:r,ident:a});h&&(s={...s,authorization:h}),f&&(s={...s,...xw(f)});try{return await An.del(c+t,{configuration:r,headers:s,...p})}catch(E){if(!AN(E)||f)throw await og(E,{attemptedAs:e,registry:c,configuration:r,headers:s}),E;f=await uV(E,{configuration:r});let C={...s,...xw(f)};try{return await An.del(`${c}${t}`,{configuration:r,headers:C,...p})}catch(S){throw await og(S,{attemptedAs:e,registry:c,configuration:r,headers:s}),S}}}function tb(t,{ident:e,registry:r}){if(typeof r>"u"&&e)return Pw(e.scope,{configuration:t});if(typeof r!="string")throw new Error("Assertion failed: The registry should be a string");return zc(r)}async function fN(t,{authType:e=2,configuration:r,ident:s}){let a=lV(t,{configuration:r,ident:s}),n=rRt(a,e);if(!n)return null;let c=await r.reduceHook(f=>f.getNpmAuthenticationHeader,void 0,t,{configuration:r,ident:s});if(c)return c;if(a.get("npmAuthToken"))return`Bearer ${a.get("npmAuthToken")}`;if(a.get("npmAuthIdent")){let f=a.get("npmAuthIdent");return f.includes(":")?`Basic ${Buffer.from(f).toString("base64")}`:`Basic ${f}`}if(n&&e!==1)throw new Yt(33,"No authentication configured for request");return null}function rRt(t,e){switch(e){case 2:return t.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function nRt(t,e,{configuration:r}){if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(await An.get(new URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username??"an unknown user"}catch{return"an unknown user"}}async function uV(t,{configuration:e}){let r=t.originalError?.response.headers["npm-notice"];if(r&&(await Ot.start({configuration:e,stdout:process.stdout,includeFooter:!1},async a=>{if(a.reportInfo(0,r.replace(/(https?:\/\/\S+)/g,he.pretty(e,"$1",he.Type.URL))),!process.env.YARN_IS_TEST_ENV){let n=r.match(/open (https?:\/\/\S+)/i);if(n&&ps.openUrl){let{openNow:c}=await(0,cV.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});c&&(await ps.openUrl(n[1])||(a.reportSeparator(),a.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` +`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:s}=await(0,cV.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` +`),s}function AN(t){if(t.originalError?.name!=="HTTPError")return!1;try{return(t.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function xw(t){return{"npm-otp":t}}var rb=class{supports(e,r){if(!e.reference.startsWith(oi))return!1;let{selector:s,params:a}=q.parseRange(e.reference);return!(!nke.default.valid(s)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${q.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:q.getIdentVendorPath(e),checksum:c}}async fetchFromNetwork(e,r){let{params:s}=q.parseRange(e.reference);if(s===null||typeof s.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await Gm(s.__archiveUrl,{customErrorMessage:qm,configuration:r.project.configuration,ident:e});return await gs.convertToZip(a,{configuration:r.project.configuration,prefixPath:q.getIdentVendorPath(e),stripComponents:1})}};Ve();var nb=class{supportsDescriptor(e,r){return!(!e.range.startsWith(oi)||!q.tryParseDescriptor(e.range.slice(oi.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){let s=r.project.configuration.normalizeDependency(q.parseDescriptor(e.range.slice(oi.length),!0));return r.resolver.getResolutionDependencies(s,r)}async getCandidates(e,r,s){let a=s.project.configuration.normalizeDependency(q.parseDescriptor(e.range.slice(oi.length),!0));return await s.resolver.getCandidates(a,r,s)}async getSatisfying(e,r,s,a){let n=a.project.configuration.normalizeDependency(q.parseDescriptor(e.range.slice(oi.length),!0));return a.resolver.getSatisfying(n,r,s,a)}resolve(e,r){throw new Error("Unreachable")}};Ve();Ve();var ike=et(Ai());var lh=class t{supports(e,r){if(!e.reference.startsWith(oi))return!1;let s=new URL(e.reference);return!(!ike.default.valid(s.pathname)||s.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${q.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:q.getIdentVendorPath(e),checksum:c}}async fetchFromNetwork(e,r){let s;try{s=await Gm(t.getLocatorUrl(e),{customErrorMessage:qm,configuration:r.project.configuration,ident:e})}catch{s=await Gm(t.getLocatorUrl(e).replace(/%2f/g,"/"),{customErrorMessage:qm,configuration:r.project.configuration,ident:e})}return await gs.convertToZip(s,{configuration:r.project.configuration,prefixPath:q.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:s}){let a=Pw(e.scope,{configuration:s}),n=t.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+n||r===a+n.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=Or.clean(e.reference.slice(oi.length));if(r===null)throw new Yt(10,"The npm semver resolver got selected, but the version isn't semver");return`${uN(e)}/-/${e.name}-${r}.tgz`}};Ve();Ve();Ve();var fV=et(Ai());var pN=q.makeIdent(null,"node-gyp"),iRt=/\b(node-gyp|prebuild-install)\b/,ib=class{supportsDescriptor(e,r){return e.range.startsWith(oi)?!!Or.validRange(e.range.slice(oi.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(oi))return!1;let{selector:s}=q.parseRange(e.reference);return!!fV.default.valid(s)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=Or.validRange(e.range.slice(oi.length));if(a===null)throw new Error(`Expected a valid range, got ${e.range.slice(oi.length)}`);let n=await kw(e,{cache:s.fetchOptions?.cache,project:s.project,version:fV.default.valid(a.raw)?a.raw:void 0}),c=je.mapAndFilter(Object.keys(n.versions),h=>{try{let E=new Or.SemVer(h);if(a.test(E))return E}catch{}return je.mapAndFilter.skip}),f=c.filter(h=>!n.versions[h.raw].deprecated),p=f.length>0?f:c;return p.sort((h,E)=>-h.compare(E)),p.map(h=>{let E=q.makeLocator(e,`${oi}${h.raw}`),C=n.versions[h.raw].dist.tarball;return lh.isConventionalTarballUrl(E,C,{configuration:s.project.configuration})?E:q.bindLocator(E,{__archiveUrl:C})})}async getSatisfying(e,r,s,a){let n=Or.validRange(e.range.slice(oi.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(oi.length)}`);return{locators:je.mapAndFilter(s,p=>{if(p.identHash!==e.identHash)return je.mapAndFilter.skip;let h=q.tryParseRange(p.reference,{requireProtocol:oi});if(!h)return je.mapAndFilter.skip;let E=new Or.SemVer(h.selector);return n.test(E)?{locator:p,version:E}:je.mapAndFilter.skip}).sort((p,h)=>-p.version.compare(h.version)).map(({locator:p})=>p),sorted:!0}}async resolve(e,r){let{selector:s}=q.parseRange(e.reference),a=Or.clean(s);if(a===null)throw new Yt(10,"The npm semver resolver got selected, but the version isn't semver");let n=await kw(e,{cache:r.fetchOptions?.cache,project:r.project,version:a});if(!Object.hasOwn(n,"versions"))throw new Yt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.hasOwn(n.versions,a))throw new Yt(16,`Registry failed to return reference "${a}"`);let c=new Ht;if(c.load(n.versions[a]),!c.dependencies.has(pN.identHash)&&!c.peerDependencies.has(pN.identHash)){for(let f of c.scripts.values())if(f.match(iRt)){c.dependencies.set(pN.identHash,q.makeDescriptor(pN,"latest"));break}}return{...e,version:a,languageName:"node",linkType:"HARD",conditions:c.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(c.dependencies),peerDependencies:c.peerDependencies,dependenciesMeta:c.dependenciesMeta,peerDependenciesMeta:c.peerDependenciesMeta,bin:c.bin}}};Ve();Ve();var ske=et(Ai());var sb=class{supportsDescriptor(e,r){return!(!e.range.startsWith(oi)||!Up.test(e.range.slice(oi.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){let a=e.range.slice(oi.length),n=await kw(e,{cache:s.fetchOptions?.cache,project:s.project});if(!Object.hasOwn(n,"dist-tags"))throw new Yt(15,'Registry returned invalid data - missing "dist-tags" field');let c=n["dist-tags"];if(!Object.hasOwn(c,a))throw new Yt(16,`Registry failed to return tag "${a}"`);let f=c[a],p=q.makeLocator(e,`${oi}${f}`),h=n.versions[f].dist.tarball;return lh.isConventionalTarballUrl(p,h,{configuration:s.project.configuration})?[p]:[q.bindLocator(p,{__archiveUrl:h})]}async getSatisfying(e,r,s,a){let n=[];for(let c of s){if(c.identHash!==e.identHash)continue;let f=q.tryParseRange(c.reference,{requireProtocol:oi});if(!(!f||!ske.default.valid(f.selector))){if(f.params?.__archiveUrl){let p=q.makeRange({protocol:oi,selector:f.selector,source:null,params:null}),[h]=await a.resolver.getCandidates(q.makeDescriptor(e,p),r,a);if(c.reference!==h.reference)continue}n.push(c)}}return{locators:n,sorted:!1}}async resolve(e,r){throw new Error("Unreachable")}};var B1={};Vt(B1,{getGitHead:()=>JHt,getPublishAccess:()=>JNe,getReadmeContent:()=>zNe,makePublishBody:()=>KHt});Ve();Ve();bt();var $V={};Vt($V,{PackCommand:()=>Hw,default:()=>LNt,packUtils:()=>IA});Ve();Ve();Ve();bt();Wt();var IA={};Vt(IA,{genPackList:()=>ON,genPackStream:()=>XV,genPackageManifest:()=>OQe,hasPackScripts:()=>zV,prepareForPack:()=>ZV});Ve();bt();var JV=et(Sa()),FQe=et(kQe()),NQe=Ie("zlib"),DNt=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],bNt=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function zV(t){return!!(In.hasWorkspaceScript(t,"prepack")||In.hasWorkspaceScript(t,"postpack"))}async function ZV(t,{report:e},r){await In.maybeExecuteWorkspaceLifecycleScript(t,"prepack",{report:e});try{let s=K.join(t.cwd,Ht.fileName);await le.existsPromise(s)&&await t.manifest.loadFile(s,{baseFs:le}),await r()}finally{await In.maybeExecuteWorkspaceLifecycleScript(t,"postpack",{report:e})}}async function XV(t,e){typeof e>"u"&&(e=await ON(t));let r=new Set;for(let n of t.manifest.publishConfig?.executableFiles??new Set)r.add(K.normalize(n));for(let n of t.manifest.bin.values())r.add(K.normalize(n));let s=FQe.default.pack();process.nextTick(async()=>{for(let n of e){let c=K.normalize(n),f=K.resolve(t.cwd,c),p=K.join("package",c),h=await le.lstatPromise(f),E={name:p,mtime:new Date(fi.SAFE_TIME*1e3)},C=r.has(c)?493:420,S,P,I=new Promise((N,U)=>{S=N,P=U}),R=N=>{N?P(N):S()};if(h.isFile()){let N;c==="package.json"?N=Buffer.from(JSON.stringify(await OQe(t),null,2)):N=await le.readFilePromise(f),s.entry({...E,mode:C,type:"file"},N,R)}else h.isSymbolicLink()?s.entry({...E,mode:C,type:"symlink",linkname:await le.readlinkPromise(f)},R):R(new Error(`Unsupported file type ${h.mode} for ${ue.fromPortablePath(c)}`));await I}s.finalize()});let a=(0,NQe.createGzip)();return s.pipe(a),a}async function OQe(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function ON(t){let e=t.project,r=e.configuration,s={accept:[],reject:[]};for(let C of bNt)s.reject.push(C);for(let C of DNt)s.accept.push(C);s.reject.push(r.get("rcFilename"));let a=C=>{if(C===null||!C.startsWith(`${t.cwd}/`))return;let S=K.relative(t.cwd,C),P=K.resolve(vt.root,S);s.reject.push(P)};a(K.resolve(e.cwd,Er.lockfile)),a(r.get("cacheFolder")),a(r.get("globalFolder")),a(r.get("installStatePath")),a(r.get("virtualFolder")),a(r.get("yarnPath")),await r.triggerHook(C=>C.populateYarnPaths,e,C=>{a(C)});for(let C of e.workspaces){let S=K.relative(t.cwd,C.cwd);S!==""&&!S.match(/^(\.\.)?\//)&&s.reject.push(`/${S}`)}let n={accept:[],reject:[]},c=t.manifest.publishConfig?.main??t.manifest.main,f=t.manifest.publishConfig?.module??t.manifest.module,p=t.manifest.publishConfig?.browser??t.manifest.browser,h=t.manifest.publishConfig?.bin??t.manifest.bin;c!=null&&n.accept.push(K.resolve(vt.root,c)),f!=null&&n.accept.push(K.resolve(vt.root,f)),typeof p=="string"&&n.accept.push(K.resolve(vt.root,p));for(let C of h.values())n.accept.push(K.resolve(vt.root,C));if(p instanceof Map)for(let[C,S]of p.entries())n.accept.push(K.resolve(vt.root,C)),typeof S=="string"&&n.accept.push(K.resolve(vt.root,S));let E=t.manifest.files!==null;if(E){n.reject.push("/*");for(let C of t.manifest.files)LQe(n.accept,C,{cwd:vt.root})}return await PNt(t.cwd,{hasExplicitFileList:E,globalList:s,ignoreList:n})}async function PNt(t,{hasExplicitFileList:e,globalList:r,ignoreList:s}){let a=[],n=new jf(t),c=[[vt.root,[s]]];for(;c.length>0;){let[f,p]=c.pop(),h=await n.lstatPromise(f);if(!TQe(f,{globalList:r,ignoreLists:h.isDirectory()?null:p}))if(h.isDirectory()){let E=await n.readdirPromise(f),C=!1,S=!1;if(!e||f!==vt.root)for(let R of E)C=C||R===".gitignore",S=S||R===".npmignore";let P=S?await QQe(n,f,".npmignore"):C?await QQe(n,f,".gitignore"):null,I=P!==null?[P].concat(p):p;TQe(f,{globalList:r,ignoreLists:p})&&(I=[...p,{accept:[],reject:["**/*"]}]);for(let R of E)c.push([K.resolve(f,R),I])}else(h.isFile()||h.isSymbolicLink())&&a.push(K.relative(vt.root,f))}return a.sort()}async function QQe(t,e,r){let s={accept:[],reject:[]},a=await t.readFilePromise(K.join(e,r),"utf8");for(let n of a.split(/\n/g))LQe(s.reject,n,{cwd:e});return s}function xNt(t,{cwd:e}){let r=t[0]==="!";return r&&(t=t.slice(1)),t.match(/\.{0,1}\//)&&(t=K.resolve(e,t)),r&&(t=`!${t}`),t}function LQe(t,e,{cwd:r}){let s=e.trim();s===""||s[0]==="#"||t.push(xNt(s,{cwd:r}))}function TQe(t,{globalList:e,ignoreLists:r}){let s=NN(t,e.accept);if(s!==0)return s===2;let a=NN(t,e.reject);if(a!==0)return a===1;if(r!==null)for(let n of r){let c=NN(t,n.accept);if(c!==0)return c===2;let f=NN(t,n.reject);if(f!==0)return f===1}return!1}function NN(t,e){let r=e,s=[];for(let a=0;a<e.length;++a)e[a][0]!=="!"?r!==e&&r.push(e[a]):(r===e&&(r=e.slice(0,a)),s.push(e[a].slice(1)));return RQe(t,s)?2:RQe(t,r)?1:0}function RQe(t,e){let r=e,s=[];for(let a=0;a<e.length;++a)e[a].includes("/")?r!==e&&r.push(e[a]):(r===e&&(r=e.slice(0,a)),s.push(e[a]));return!!(JV.default.isMatch(t,r,{dot:!0,nocase:!0})||JV.default.isMatch(t,s,{dot:!0,basename:!0,nocase:!0}))}var Hw=class extends ut{constructor(){super(...arguments);this.installIfNeeded=ge.Boolean("--install-if-needed",!1,{description:"Run a preliminary `yarn install` if the package contains build scripts"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"Print the file paths without actually generating the package archive"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.out=ge.String("-o,--out",{description:"Create the archive at the specified path"});this.filename=ge.String("--filename",{hidden:!0})}static{this.paths=[["pack"]]}static{this.usage=ot.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,--out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);await zV(a)&&(this.installIfNeeded?await s.install({cache:await Jr.find(r),report:new Yi}):await s.restoreInstallState());let n=this.out??this.filename,c=typeof n<"u"?K.resolve(this.context.cwd,kNt(n,{workspace:a})):K.resolve(a.cwd,"package.tgz");return(await Ot.start({configuration:r,stdout:this.context.stdout,json:this.json},async p=>{await ZV(a,{report:p},async()=>{p.reportJson({base:ue.fromPortablePath(a.cwd)});let h=await ON(a);for(let E of h)p.reportInfo(null,ue.fromPortablePath(E)),p.reportJson({location:ue.fromPortablePath(E)});if(!this.dryRun){let E=await XV(a,h);await le.mkdirPromise(K.dirname(c),{recursive:!0});let C=le.createWriteStream(c);E.pipe(C),await new Promise(S=>{C.on("finish",S)})}}),this.dryRun||(p.reportInfo(0,`Package archive generated in ${he.pretty(r,c,he.Type.PATH)}`),p.reportJson({output:ue.fromPortablePath(c)}))})).exitCode()}};function kNt(t,{workspace:e}){let r=t.replace("%s",QNt(e)).replace("%v",TNt(e));return ue.toPortablePath(r)}function QNt(t){return t.manifest.name!==null?q.slugifyIdent(t.manifest.name):"package"}function TNt(t){return t.manifest.version!==null?t.manifest.version:"unknown"}var RNt=["dependencies","devDependencies","peerDependencies"],FNt="workspace:",NNt=(t,e)=>{e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let s of RNt)for(let a of t.manifest.getForScope(s).values()){let n=r.tryWorkspaceByDescriptor(a),c=q.parseRange(a.range);if(c.protocol===FNt)if(n===null){if(r.tryWorkspaceByIdent(a)===null)throw new Yt(21,`${q.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let f;q.areDescriptorsEqual(a,n.anchoredDescriptor)||c.selector==="*"?f=n.manifest.version??"0.0.0":c.selector==="~"||c.selector==="^"?f=`${c.selector}${n.manifest.version??"0.0.0"}`:f=c.selector;let p=s==="dependencies"?q.makeDescriptor(a,"unknown"):null,h=p!==null&&t.manifest.ensureDependencyMeta(p).optional?"optionalDependencies":s;e[h][q.stringifyIdent(a)]=f}}},ONt={hooks:{beforeWorkspacePacking:NNt},commands:[Hw]},LNt=ONt;var KNe=et(YQe());Ve();var YNe=et(WNe()),{env:Bt}=process,_Ht="application/vnd.in-toto+json",UHt="https://in-toto.io/Statement/v0.1",HHt="https://in-toto.io/Statement/v1",jHt="https://slsa.dev/provenance/v0.2",qHt="https://slsa.dev/provenance/v1",GHt="https://github.com/actions/runner",WHt="https://slsa-framework.github.io/github-actions-buildtypes/workflow/v1",YHt="https://github.com/npm/cli/gitlab",VHt="v0alpha1",VNe=async(t,e)=>{let r;if(Bt.GITHUB_ACTIONS){if(!Bt.ACTIONS_ID_TOKEN_REQUEST_URL)throw new Yt(91,'Provenance generation in GitHub Actions requires "write" access to the "id-token" permission');let s=(Bt.GITHUB_WORKFLOW_REF||"").replace(`${Bt.GITHUB_REPOSITORY}/`,""),a=s.indexOf("@"),n=s.slice(0,a),c=s.slice(a+1);r={_type:HHt,subject:t,predicateType:qHt,predicate:{buildDefinition:{buildType:WHt,externalParameters:{workflow:{ref:c,repository:`${Bt.GITHUB_SERVER_URL}/${Bt.GITHUB_REPOSITORY}`,path:n}},internalParameters:{github:{event_name:Bt.GITHUB_EVENT_NAME,repository_id:Bt.GITHUB_REPOSITORY_ID,repository_owner_id:Bt.GITHUB_REPOSITORY_OWNER_ID}},resolvedDependencies:[{uri:`git+${Bt.GITHUB_SERVER_URL}/${Bt.GITHUB_REPOSITORY}@${Bt.GITHUB_REF}`,digest:{gitCommit:Bt.GITHUB_SHA}}]},runDetails:{builder:{id:`${GHt}/${Bt.RUNNER_ENVIRONMENT}`},metadata:{invocationId:`${Bt.GITHUB_SERVER_URL}/${Bt.GITHUB_REPOSITORY}/actions/runs/${Bt.GITHUB_RUN_ID}/attempts/${Bt.GITHUB_RUN_ATTEMPT}`}}}}}else if(Bt.GITLAB_CI){if(!Bt.SIGSTORE_ID_TOKEN)throw new Yt(91,`Provenance generation in GitLab CI requires "SIGSTORE_ID_TOKEN" with "sigstore" audience to be present in "id_tokens". For more info see: +https://docs.gitlab.com/ee/ci/secrets/id_token_authentication.html`);r={_type:UHt,subject:t,predicateType:jHt,predicate:{buildType:`${YHt}/${VHt}`,builder:{id:`${Bt.CI_PROJECT_URL}/-/runners/${Bt.CI_RUNNER_ID}`},invocation:{configSource:{uri:`git+${Bt.CI_PROJECT_URL}`,digest:{sha1:Bt.CI_COMMIT_SHA},entryPoint:Bt.CI_JOB_NAME},parameters:{CI:Bt.CI,CI_API_GRAPHQL_URL:Bt.CI_API_GRAPHQL_URL,CI_API_V4_URL:Bt.CI_API_V4_URL,CI_BUILD_BEFORE_SHA:Bt.CI_BUILD_BEFORE_SHA,CI_BUILD_ID:Bt.CI_BUILD_ID,CI_BUILD_NAME:Bt.CI_BUILD_NAME,CI_BUILD_REF:Bt.CI_BUILD_REF,CI_BUILD_REF_NAME:Bt.CI_BUILD_REF_NAME,CI_BUILD_REF_SLUG:Bt.CI_BUILD_REF_SLUG,CI_BUILD_STAGE:Bt.CI_BUILD_STAGE,CI_COMMIT_BEFORE_SHA:Bt.CI_COMMIT_BEFORE_SHA,CI_COMMIT_BRANCH:Bt.CI_COMMIT_BRANCH,CI_COMMIT_REF_NAME:Bt.CI_COMMIT_REF_NAME,CI_COMMIT_REF_PROTECTED:Bt.CI_COMMIT_REF_PROTECTED,CI_COMMIT_REF_SLUG:Bt.CI_COMMIT_REF_SLUG,CI_COMMIT_SHA:Bt.CI_COMMIT_SHA,CI_COMMIT_SHORT_SHA:Bt.CI_COMMIT_SHORT_SHA,CI_COMMIT_TIMESTAMP:Bt.CI_COMMIT_TIMESTAMP,CI_COMMIT_TITLE:Bt.CI_COMMIT_TITLE,CI_CONFIG_PATH:Bt.CI_CONFIG_PATH,CI_DEFAULT_BRANCH:Bt.CI_DEFAULT_BRANCH,CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX:Bt.CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX:Bt.CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_SERVER:Bt.CI_DEPENDENCY_PROXY_SERVER,CI_DEPENDENCY_PROXY_USER:Bt.CI_DEPENDENCY_PROXY_USER,CI_JOB_ID:Bt.CI_JOB_ID,CI_JOB_NAME:Bt.CI_JOB_NAME,CI_JOB_NAME_SLUG:Bt.CI_JOB_NAME_SLUG,CI_JOB_STAGE:Bt.CI_JOB_STAGE,CI_JOB_STARTED_AT:Bt.CI_JOB_STARTED_AT,CI_JOB_URL:Bt.CI_JOB_URL,CI_NODE_TOTAL:Bt.CI_NODE_TOTAL,CI_PAGES_DOMAIN:Bt.CI_PAGES_DOMAIN,CI_PAGES_URL:Bt.CI_PAGES_URL,CI_PIPELINE_CREATED_AT:Bt.CI_PIPELINE_CREATED_AT,CI_PIPELINE_ID:Bt.CI_PIPELINE_ID,CI_PIPELINE_IID:Bt.CI_PIPELINE_IID,CI_PIPELINE_SOURCE:Bt.CI_PIPELINE_SOURCE,CI_PIPELINE_URL:Bt.CI_PIPELINE_URL,CI_PROJECT_CLASSIFICATION_LABEL:Bt.CI_PROJECT_CLASSIFICATION_LABEL,CI_PROJECT_DESCRIPTION:Bt.CI_PROJECT_DESCRIPTION,CI_PROJECT_ID:Bt.CI_PROJECT_ID,CI_PROJECT_NAME:Bt.CI_PROJECT_NAME,CI_PROJECT_NAMESPACE:Bt.CI_PROJECT_NAMESPACE,CI_PROJECT_NAMESPACE_ID:Bt.CI_PROJECT_NAMESPACE_ID,CI_PROJECT_PATH:Bt.CI_PROJECT_PATH,CI_PROJECT_PATH_SLUG:Bt.CI_PROJECT_PATH_SLUG,CI_PROJECT_REPOSITORY_LANGUAGES:Bt.CI_PROJECT_REPOSITORY_LANGUAGES,CI_PROJECT_ROOT_NAMESPACE:Bt.CI_PROJECT_ROOT_NAMESPACE,CI_PROJECT_TITLE:Bt.CI_PROJECT_TITLE,CI_PROJECT_URL:Bt.CI_PROJECT_URL,CI_PROJECT_VISIBILITY:Bt.CI_PROJECT_VISIBILITY,CI_REGISTRY:Bt.CI_REGISTRY,CI_REGISTRY_IMAGE:Bt.CI_REGISTRY_IMAGE,CI_REGISTRY_USER:Bt.CI_REGISTRY_USER,CI_RUNNER_DESCRIPTION:Bt.CI_RUNNER_DESCRIPTION,CI_RUNNER_ID:Bt.CI_RUNNER_ID,CI_RUNNER_TAGS:Bt.CI_RUNNER_TAGS,CI_SERVER_HOST:Bt.CI_SERVER_HOST,CI_SERVER_NAME:Bt.CI_SERVER_NAME,CI_SERVER_PORT:Bt.CI_SERVER_PORT,CI_SERVER_PROTOCOL:Bt.CI_SERVER_PROTOCOL,CI_SERVER_REVISION:Bt.CI_SERVER_REVISION,CI_SERVER_SHELL_SSH_HOST:Bt.CI_SERVER_SHELL_SSH_HOST,CI_SERVER_SHELL_SSH_PORT:Bt.CI_SERVER_SHELL_SSH_PORT,CI_SERVER_URL:Bt.CI_SERVER_URL,CI_SERVER_VERSION:Bt.CI_SERVER_VERSION,CI_SERVER_VERSION_MAJOR:Bt.CI_SERVER_VERSION_MAJOR,CI_SERVER_VERSION_MINOR:Bt.CI_SERVER_VERSION_MINOR,CI_SERVER_VERSION_PATCH:Bt.CI_SERVER_VERSION_PATCH,CI_TEMPLATE_REGISTRY_HOST:Bt.CI_TEMPLATE_REGISTRY_HOST,GITLAB_CI:Bt.GITLAB_CI,GITLAB_FEATURES:Bt.GITLAB_FEATURES,GITLAB_USER_ID:Bt.GITLAB_USER_ID,GITLAB_USER_LOGIN:Bt.GITLAB_USER_LOGIN,RUNNER_GENERATE_ARTIFACTS_METADATA:Bt.RUNNER_GENERATE_ARTIFACTS_METADATA},environment:{name:Bt.CI_RUNNER_DESCRIPTION,architecture:Bt.CI_RUNNER_EXECUTABLE_ARCH,server:Bt.CI_SERVER_URL,project:Bt.CI_PROJECT_PATH,job:{id:Bt.CI_JOB_ID},pipeline:{id:Bt.CI_PIPELINE_ID,ref:Bt.CI_CONFIG_PATH}}},metadata:{buildInvocationId:`${Bt.CI_JOB_URL}`,completeness:{parameters:!0,environment:!0,materials:!1},reproducible:!1},materials:[{uri:`git+${Bt.CI_PROJECT_URL}`,digest:{sha1:Bt.CI_COMMIT_SHA}}]}}}else throw new Yt(91,"Provenance generation is only supported in GitHub Actions and GitLab CI");return YNe.attest(Buffer.from(JSON.stringify(r)),_Ht,e)};async function KHt(t,e,{access:r,tag:s,registry:a,gitHead:n,provenance:c}){let f=t.manifest.name,p=t.manifest.version,h=q.stringifyIdent(f),E=KNe.default.fromData(e,{algorithms:["sha1","sha512"]}),C=r??JNe(t,f),S=await zNe(t),P=await IA.genPackageManifest(t),I=`${h}-${p}.tgz`,R=new URL(`${zc(a)}/${h}/-/${I}`),N={[I]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}};if(c){let U={name:`pkg:npm/${h.replace(/^@/,"%40")}@${p}`,digest:{sha512:E.sha512[0].hexDigest()}},W=await VNe([U]),te=JSON.stringify(W);N[`${h}-${p}.sigstore`]={content_type:W.mediaType,data:te,length:te.length}}return{_id:h,_attachments:N,name:h,access:C,"dist-tags":{[s]:p},versions:{[p]:{...P,_id:`${h}@${p}`,name:h,version:p,gitHead:n,dist:{shasum:E.sha1[0].hexDigest(),integrity:E.sha512[0].toString(),tarball:R.toString()}}},readme:S}}async function JHt(t){try{let{stdout:e}=await Gr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return}}function JNe(t,e){let r=t.project.configuration;return t.manifest.publishConfig&&typeof t.manifest.publishConfig.access=="string"?t.manifest.publishConfig.access:r.get("npmPublishAccess")!==null?r.get("npmPublishAccess"):e.scope?"restricted":"public"}async function zNe(t){let e=ue.toPortablePath(`${t.cwd}/README.md`),r=t.manifest.name,a=`# ${q.stringifyIdent(r)} +`;try{a=await le.readFilePromise(e,"utf8")}catch(n){if(n.code==="ENOENT")return a;throw n}return a}var sz={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},ZNe={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},zHt={configuration:{...sz,...ZNe,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...sz,...ZNe}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:zc,valueDefinition:{description:"",type:"SHAPE",properties:{...sz}}}},fetchers:[rb,lh],resolvers:[nb,ib,sb]},ZHt=zHt;var gz={};Vt(gz,{NpmAuditCommand:()=>S1,NpmInfoCommand:()=>D1,NpmLoginCommand:()=>b1,NpmLogoutCommand:()=>x1,NpmPublishCommand:()=>k1,NpmTagAddCommand:()=>T1,NpmTagListCommand:()=>Q1,NpmTagRemoveCommand:()=>R1,NpmWhoamiCommand:()=>F1,default:()=>ijt,npmAuditTypes:()=>sP,npmAuditUtils:()=>QL});Ve();Ve();Wt();var fz=et(Sa());Ul();var sP={};Vt(sP,{Environment:()=>nP,Severity:()=>iP});var nP=(s=>(s.All="all",s.Production="production",s.Development="development",s))(nP||{}),iP=(n=>(n.Info="info",n.Low="low",n.Moderate="moderate",n.High="high",n.Critical="critical",n))(iP||{});var QL={};Vt(QL,{allSeverities:()=>v1,getPackages:()=>uz,getReportTree:()=>lz,getSeverityInclusions:()=>az,getTopLevelDependencies:()=>cz});Ve();var XNe=et(Ai());var v1=["info","low","moderate","high","critical"];function az(t){if(typeof t>"u")return new Set(v1);let e=v1.indexOf(t),r=v1.slice(e);return new Set(r)}function lz(t){let e={},r={children:e};for(let[s,a]of je.sortMap(Object.entries(t),n=>n[0]))for(let n of je.sortMap(a,c=>`${c.id}`))e[`${s}/${n.id}`]={value:he.tuple(he.Type.IDENT,q.parseIdent(s)),children:{ID:typeof n.id<"u"&&{label:"ID",value:he.tuple(he.Type.ID,n.id)},Issue:{label:"Issue",value:he.tuple(he.Type.NO_HINT,n.title)},URL:typeof n.url<"u"&&{label:"URL",value:he.tuple(he.Type.URL,n.url)},Severity:{label:"Severity",value:he.tuple(he.Type.NO_HINT,n.severity)},"Vulnerable Versions":{label:"Vulnerable Versions",value:he.tuple(he.Type.RANGE,n.vulnerable_versions)},"Tree Versions":{label:"Tree Versions",children:[...n.versions].sort(XNe.default.compare).map(c=>({value:he.tuple(he.Type.REFERENCE,c)}))},Dependents:{label:"Dependents",children:je.sortMap(n.dependents,c=>q.stringifyLocator(c)).map(c=>({value:he.tuple(he.Type.LOCATOR,c)}))}}};return r}function cz(t,e,{all:r,environment:s}){let a=[],n=r?t.workspaces:[e],c=["all","production"].includes(s),f=["all","development"].includes(s);for(let p of n)for(let h of p.anchoredPackage.dependencies.values())(p.manifest.devDependencies.has(h.identHash)?!f:!c)||a.push({workspace:p,dependency:h});return a}function uz(t,e,{recursive:r}){let s=new Map,a=new Set,n=[],c=(f,p)=>{let h=t.storedResolutions.get(p.descriptorHash);if(typeof h>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(h))a.add(h);else return;let E=t.storedPackages.get(h);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");if(q.ensureDevirtualizedLocator(E).reference.startsWith("npm:")&&E.version!==null){let S=q.stringifyIdent(E),P=je.getMapWithDefault(s,S);je.getArrayWithDefault(P,E.version).push(f)}if(r)for(let S of E.dependencies.values())n.push([E,S])};for(let{workspace:f,dependency:p}of e)n.push([f.anchoredLocator,p]);for(;n.length>0;){let[f,p]=n.shift();c(f,p)}return s}var S1=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=ge.String("--environment","all",{description:"Which environments to cover",validator:po(nP)});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.noDeprecations=ge.Boolean("--no-deprecations",!1,{description:"Don't warn about deprecated packages"});this.severity=ge.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:po(iP)});this.excludes=ge.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=ge.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}static{this.paths=[["npm","audit"]]}static{this.usage=ot.Usage({description:"perform a vulnerability audit against the installed packages",details:` + This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). + + For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. + + Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${v1.map(r=>`\`${r}\``).join(", ")}. + + If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. + + If certain packages produce false positives for a particular environment, the \`--exclude\` flag can be used to exclude any number of packages from the audit. This can also be set in the configuration file with the \`npmAuditExcludePackages\` option. + + If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. + + To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why package\` to get more information as to who depends on them. + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=cz(s,a,{all:this.all,environment:this.environment}),c=uz(s,n,{recursive:this.recursive}),f=Array.from(new Set([...r.get("npmAuditExcludePackages"),...this.excludes])),p=Object.create(null);for(let[N,U]of c)f.some(W=>fz.default.isMatch(N,W))||(p[N]=[...U.keys()]);let h=hi.getAuditRegistry({configuration:r}),E,C=await uA.start({configuration:r,stdout:this.context.stdout},async()=>{let N=an.post("/-/npm/v1/security/advisories/bulk",p,{authType:an.AuthType.BEST_EFFORT,configuration:r,jsonResponse:!0,registry:h}),U=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(p),async([te,ie])=>{let Ae=await an.getPackageMetadata(q.parseIdent(te),{project:s});return je.mapAndFilter(ie,ce=>{let{deprecated:me}=Ae.versions[ce];return me?[te,ce,me]:je.mapAndFilter.skip})})),W=await N;for(let[te,ie,Ae]of U.flat(1))Object.hasOwn(W,te)&&W[te].some(ce=>Or.satisfiesWithPrereleases(ie,ce.vulnerable_versions))||(W[te]??=[],W[te].push({id:`${te} (deprecation)`,title:(typeof Ae=="string"?Ae:"").trim()||"This package has been deprecated.",severity:"moderate",vulnerable_versions:ie}));E=W});if(C.hasErrors())return C.exitCode();let S=az(this.severity),P=Array.from(new Set([...r.get("npmAuditIgnoreAdvisories"),...this.ignores])),I=Object.create(null);for(let[N,U]of Object.entries(E)){let W=U.filter(te=>!fz.default.isMatch(`${te.id}`,P)&&S.has(te.severity));W.length>0&&(I[N]=W.map(te=>{let ie=c.get(N);if(typeof ie>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let Ae=[...ie.keys()].filter(me=>Or.satisfiesWithPrereleases(me,te.vulnerable_versions)),ce=new Map;for(let me of Ae)for(let pe of ie.get(me))ce.set(pe.locatorHash,pe);return{...te,versions:Ae,dependents:[...ce.values()]}}))}let R=Object.keys(I).length>0;return R?(Qs.emitTree(lz(I),{configuration:r,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Ot.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async N=>{N.reportInfo(1,"No audit suggestions")}),R?1:0)}};Ve();Ve();bt();Wt();var Az=et(Ai()),pz=Ie("util"),D1=class extends ut{constructor(){super(...arguments);this.fields=ge.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=ge.Rest()}static{this.paths=[["npm","info"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Tt.find(r,this.context.cwd),a=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],c=!1,f=await Ot.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async p=>{for(let h of this.packages){let E;if(h==="."){let ie=s.topLevelWorkspace;if(!ie.manifest.name)throw new nt(`Missing ${he.pretty(r,"name",he.Type.CODE)} field in ${ue.fromPortablePath(K.join(ie.cwd,Er.manifest))}`);E=q.makeDescriptor(ie.manifest.name,"unknown")}else E=q.parseDescriptor(h);let C=an.getIdentUrl(E),S=hz(await an.get(C,{configuration:r,ident:E,jsonResponse:!0,customErrorMessage:an.customPackageError})),P=Object.keys(S.versions).sort(Az.default.compareLoose),R=S["dist-tags"].latest||P[P.length-1],N=Or.validRange(E.range);if(N){let ie=Az.default.maxSatisfying(P,N);ie!==null?R=ie:(p.reportWarning(0,`Unmet range ${q.prettyRange(r,E.range)}; falling back to the latest version`),c=!0)}else Object.hasOwn(S["dist-tags"],E.range)?R=S["dist-tags"][E.range]:E.range!=="unknown"&&(p.reportWarning(0,`Unknown tag ${q.prettyRange(r,E.range)}; falling back to the latest version`),c=!0);let U=S.versions[R],W={...S,...U,version:R,versions:P},te;if(a!==null){te={};for(let ie of a){let Ae=W[ie];if(typeof Ae<"u")te[ie]=Ae;else{p.reportWarning(1,`The ${he.pretty(r,ie,he.Type.CODE)} field doesn't exist inside ${q.prettyIdent(r,E)}'s information`),c=!0;continue}}}else this.json||(delete W.dist,delete W.readme,delete W.users),te=W;p.reportJson(te),this.json||n.push(te)}});pz.inspect.styles.name="cyan";for(let p of n)(p!==n[0]||c)&&this.context.stdout.write(` +`),this.context.stdout.write(`${(0,pz.inspect)(p,{depth:1/0,colors:!0,compact:!1})} +`);return f.exitCode()}};function hz(t){if(Array.isArray(t)){let e=[];for(let r of t)r=hz(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let s=hz(t[r]);s&&(e[r]=s)}return e}else return t||null}Ve();Ve();Wt();var $Ne=et(nS()),b1=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=ge.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}static{this.paths=[["npm","login"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=await TL({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Ot.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let c=await ejt({configuration:r,registry:s,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),f=await XHt(s,c,r);return await $Ht(s,f,{alwaysAuth:this.alwaysAuth,scope:this.scope}),n.reportInfo(0,"Successfully logged in")})).exitCode()}};async function TL({scope:t,publish:e,configuration:r,cwd:s}){return t&&e?hi.getScopeRegistry(t,{configuration:r,type:hi.RegistryType.PUBLISH_REGISTRY}):t?hi.getScopeRegistry(t,{configuration:r}):e?hi.getPublishRegistry((await eC(r,s)).manifest,{configuration:r}):hi.getDefaultRegistry({configuration:r})}async function XHt(t,e,r){let s=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,a={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},n={attemptedAs:e.name,configuration:r,registry:t,jsonResponse:!0,authType:an.AuthType.NO_AUTH};try{return(await an.put(s,a,n)).token}catch(E){if(!(E.originalError?.name==="HTTPError"&&E.originalError?.response.statusCode===409))throw E}let c={...n,authType:an.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},f=await an.get(s,c);for(let[E,C]of Object.entries(f))(!a[E]||E==="roles")&&(a[E]=C);let p=`${s}/-rev/${a._rev}`;return(await an.put(p,a,c)).token}async function $Ht(t,e,{alwaysAuth:r,scope:s}){let a=c=>f=>{let p=je.isIndexableObject(f)?f:{},h=p[c],E=je.isIndexableObject(h)?h:{};return{...p,[c]:{...E,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:e}}},n=s?{npmScopes:a(s)}:{npmRegistries:a(t)};return await ze.updateHomeConfiguration(n)}async function ejt({configuration:t,registry:e,report:r,stdin:s,stdout:a}){r.reportInfo(0,`Logging in to ${he.pretty(t,e,he.Type.URL)}`);let n=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),r.reportSeparator(),t.env.YARN_IS_TEST_ENV)return{name:t.env.YARN_INJECT_NPM_USER||"",password:t.env.YARN_INJECT_NPM_PASSWORD||""};let c=await(0,$Ne.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:s,stdout:a},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:s,stdout:a}]);return r.reportSeparator(),c}Ve();Ve();Wt();var P1=new Set(["npmAuthIdent","npmAuthToken"]),x1=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=ge.Boolean("-A,--all",!1,{description:"Logout of all registries"})}static{this.paths=[["npm","logout"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s=async()=>{let n=await TL({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),c=await ze.find(this.context.cwd,this.context.plugins),f=q.makeIdent(this.scope??null,"pkg");return!hi.getAuthConfiguration(n,{configuration:c,ident:f}).get("npmAuthToken")};return(await Ot.start({configuration:r,stdout:this.context.stdout},async n=>{if(this.all&&(await rjt(),n.reportInfo(0,"Successfully logged out from everything")),this.scope){await eOe("npmScopes",this.scope),await s()?n.reportInfo(0,`Successfully logged out from ${this.scope}`):n.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let c=await TL({configuration:r,cwd:this.context.cwd,publish:this.publish});await eOe("npmRegistries",c),await s()?n.reportInfo(0,`Successfully logged out from ${c}`):n.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};function tjt(t,e){let r=t[e];if(!je.isIndexableObject(r))return!1;let s=new Set(Object.keys(r));if([...P1].every(n=>!s.has(n)))return!1;for(let n of P1)s.delete(n);if(s.size===0)return t[e]=void 0,!0;let a={...r};for(let n of P1)delete a[n];return t[e]=a,!0}async function rjt(){let t=e=>{let r=!1,s=je.isIndexableObject(e)?{...e}:{};s.npmAuthToken&&(delete s.npmAuthToken,r=!0);for(let a of Object.keys(s))tjt(s,a)&&(r=!0);if(Object.keys(s).length!==0)return r?s:e};return await ze.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function eOe(t,e){return await ze.updateHomeConfiguration({[t]:r=>{let s=je.isIndexableObject(r)?r:{};if(!Object.hasOwn(s,e))return r;let a=s[e],n=je.isIndexableObject(a)?a:{},c=new Set(Object.keys(n));if([...P1].every(p=>!c.has(p)))return r;for(let p of P1)c.delete(p);if(c.size===0)return Object.keys(s).length===1?void 0:{...s,[e]:void 0};let f={};for(let p of P1)f[p]=void 0;return{...s,[e]:{...n,...f}}}})}Ve();Wt();var k1=class extends ut{constructor(){super(...arguments);this.access=ge.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=ge.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=ge.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=ge.String("--otp",{description:"The OTP token to use with the command"});this.provenance=ge.Boolean("--provenance",!1,{description:"Generate provenance for the package. Only available in GitHub Actions and GitLab CI. Can be set globally through the `npmPublishProvenance` setting or the `YARN_NPM_CONFIG_PROVENANCE` environment variable, or per-package through the `publishConfig.provenance` field in package.json."})}static{this.paths=[["npm","publish"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overridden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);if(a.manifest.private)throw new nt("Private workspaces cannot be published");if(a.manifest.name===null||a.manifest.version===null)throw new nt("Workspaces must have valid names and versions to be published on an external registry");await s.restoreInstallState();let n=a.manifest.name,c=a.manifest.version,f=hi.getPublishRegistry(a.manifest,{configuration:r});return(await Ot.start({configuration:r,stdout:this.context.stdout},async h=>{if(this.tolerateRepublish)try{let E=await an.get(an.getIdentUrl(n),{configuration:r,registry:f,ident:n,jsonResponse:!0});if(!Object.hasOwn(E,"versions"))throw new Yt(15,'Registry returned invalid data for - missing "versions" field');if(Object.hasOwn(E.versions,c)){h.reportWarning(0,`Registry already knows about version ${c}; skipping.`);return}}catch(E){if(E.originalError?.response?.statusCode!==404)throw E}await In.maybeExecuteWorkspaceLifecycleScript(a,"prepublish",{report:h}),await IA.prepareForPack(a,{report:h},async()=>{let E=await IA.genPackList(a);for(let N of E)h.reportInfo(null,N);let C=await IA.genPackStream(a,E),S=await je.bufferStream(C),P=await B1.getGitHead(a.cwd),I=!1;a.manifest.publishConfig&&"provenance"in a.manifest.publishConfig?(I=!!a.manifest.publishConfig.provenance,I?h.reportInfo(null,"Generating provenance statement because `publishConfig.provenance` field is set."):h.reportInfo(null,"Skipping provenance statement because `publishConfig.provenance` field is set to false.")):this.provenance?(I=!0,h.reportInfo(null,"Generating provenance statement because `--provenance` flag is set.")):r.get("npmPublishProvenance")&&(I=!0,h.reportInfo(null,"Generating provenance statement because `npmPublishProvenance` setting is set."));let R=await B1.makePublishBody(a,S,{access:this.access,tag:this.tag,registry:f,gitHead:P,provenance:I});await an.put(an.getIdentUrl(n),R,{configuration:r,registry:f,ident:n,otp:this.otp,jsonResponse:!0})}),h.reportInfo(0,"Package archive published")})).exitCode()}};Ve();Wt();var tOe=et(Ai());Ve();bt();Wt();var Q1=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=ge.String({required:!1})}static{this.paths=[["npm","tag","list"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` + This command will list all tags of a package from the npm registry. + + If the package is not specified, Yarn will default to the current workspace. + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd),n;if(typeof this.package<"u")n=q.parseIdent(this.package);else{if(!a)throw new ar(s.cwd,this.context.cwd);if(!a.manifest.name)throw new nt(`Missing 'name' field in ${ue.fromPortablePath(K.join(a.cwd,Er.manifest))}`);n=a.manifest.name}let c=await oP(n,r),p={children:je.sortMap(Object.entries(c),([h])=>h).map(([h,E])=>({value:he.tuple(he.Type.RESOLUTION,{descriptor:q.makeDescriptor(n,h),locator:q.makeLocator(n,E)})}))};return Qs.emitTree(p,{configuration:r,json:this.json,stdout:this.context.stdout})}};async function oP(t,e){let r=`/-/package${an.getIdentUrl(t)}/dist-tags`;return an.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:an.customPackageError})}var T1=class extends ut{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}static{this.paths=[["npm","tag","add"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. + `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=q.parseDescriptor(this.package,!0),c=n.range;if(!tOe.default.valid(c))throw new nt(`The range ${he.pretty(r,n.range,he.Type.RANGE)} must be a valid semver version`);let f=hi.getPublishRegistry(a.manifest,{configuration:r}),p=he.pretty(r,n,he.Type.IDENT),h=he.pretty(r,c,he.Type.RANGE),E=he.pretty(r,this.tag,he.Type.CODE);return(await Ot.start({configuration:r,stdout:this.context.stdout},async S=>{let P=await oP(n,r);Object.hasOwn(P,this.tag)&&P[this.tag]===c&&S.reportWarning(0,`Tag ${E} is already set to version ${h}`);let I=`/-/package${an.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await an.put(I,c,{configuration:r,registry:f,ident:n,jsonRequest:!0,jsonResponse:!0}),S.reportInfo(0,`Tag ${E} added to version ${h} of package ${p}`)})).exitCode()}};Ve();Wt();var R1=class extends ut{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}static{this.paths=[["npm","tag","remove"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` + This command will remove a tag from a package from the npm registry. + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]})}async execute(){if(this.tag==="latest")throw new nt("The 'latest' tag cannot be removed.");let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=q.parseIdent(this.package),c=hi.getPublishRegistry(a.manifest,{configuration:r}),f=he.pretty(r,this.tag,he.Type.CODE),p=he.pretty(r,n,he.Type.IDENT),h=await oP(n,r);if(!Object.hasOwn(h,this.tag))throw new nt(`${f} is not a tag of package ${p}`);return(await Ot.start({configuration:r,stdout:this.context.stdout},async C=>{let S=`/-/package${an.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await an.del(S,{configuration:r,registry:c,ident:n,jsonResponse:!0}),C.reportInfo(0,`Tag ${f} removed from package ${p}`)})).exitCode()}};Ve();Ve();Wt();var F1=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Print username for the publish registry"})}static{this.paths=[["npm","whoami"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),s;return this.scope&&this.publish?s=hi.getScopeRegistry(this.scope,{configuration:r,type:hi.RegistryType.PUBLISH_REGISTRY}):this.scope?s=hi.getScopeRegistry(this.scope,{configuration:r}):this.publish?s=hi.getPublishRegistry((await eC(r,this.context.cwd)).manifest,{configuration:r}):s=hi.getDefaultRegistry({configuration:r}),(await Ot.start({configuration:r,stdout:this.context.stdout},async n=>{let c;try{c=await an.get("/-/whoami",{configuration:r,registry:s,authType:an.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?q.makeIdent(this.scope,""):void 0})}catch(f){if(f.response?.statusCode===401||f.response?.statusCode===403){n.reportError(41,"Authentication failed - your credentials may have expired");return}else throw f}n.reportInfo(0,c.username)})).exitCode()}};var njt={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmPublishProvenance:{description:"Whether to generate provenance for the published packages",type:"BOOLEAN",default:!1},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[S1,D1,b1,x1,k1,T1,Q1,R1,F1]},ijt=njt;var wz={};Vt(wz,{PatchCommand:()=>U1,PatchCommitCommand:()=>_1,PatchFetcher:()=>fP,PatchResolver:()=>AP,default:()=>wjt,patchUtils:()=>hy});Ve();Ve();bt();rA();var hy={};Vt(hy,{applyPatchFile:()=>FL,diffFolders:()=>Iz,ensureUnpatchedDescriptor:()=>dz,ensureUnpatchedLocator:()=>OL,extractPackageToDisk:()=>Ez,extractPatchFlags:()=>lOe,isParentRequired:()=>yz,isPatchDescriptor:()=>NL,isPatchLocator:()=>Tg,loadPatchFiles:()=>uP,makeDescriptor:()=>LL,makeLocator:()=>mz,makePatchHash:()=>Cz,parseDescriptor:()=>lP,parseLocator:()=>cP,parsePatchFile:()=>aP,unpatchDescriptor:()=>Ejt,unpatchLocator:()=>Ijt});Ve();bt();Ve();bt();var sjt=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function N1(t){return K.relative(vt.root,K.resolve(vt.root,ue.toPortablePath(t)))}function ojt(t){let e=t.trim().match(sjt);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var ajt=420,ljt=493;var rOe=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),cjt=t=>({header:ojt(t),parts:[]}),ujt={"@":"header","-":"deletion","+":"insertion"," ":"context","\\":"pragma",undefined:"context"};function fjt(t){let e=[],r=rOe(),s="parsing header",a=null,n=null;function c(){a&&(n&&(a.parts.push(n),n=null),r.hunks.push(a),a=null)}function f(){c(),e.push(r),r=rOe()}for(let p=0;p<t.length;p++){let h=t[p];if(s==="parsing header")if(h.startsWith("@@"))s="parsing hunks",r.hunks=[],p-=1;else if(h.startsWith("diff --git ")){r&&r.diffLineFromPath&&f();let E=h.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/);if(!E)throw new Error(`Bad diff line: ${h}`);r.diffLineFromPath=E[1],r.diffLineToPath=E[2]}else if(h.startsWith("old mode "))r.oldMode=h.slice(9).trim();else if(h.startsWith("new mode "))r.newMode=h.slice(9).trim();else if(h.startsWith("deleted file mode "))r.deletedFileMode=h.slice(18).trim();else if(h.startsWith("new file mode "))r.newFileMode=h.slice(14).trim();else if(h.startsWith("rename from "))r.renameFrom=h.slice(12).trim();else if(h.startsWith("rename to "))r.renameTo=h.slice(10).trim();else if(h.startsWith("index ")){let E=h.match(/(\w+)\.\.(\w+)/);if(!E)continue;r.beforeHash=E[1],r.afterHash=E[2]}else h.startsWith("semver exclusivity ")?r.semverExclusivity=h.slice(19).trim():h.startsWith("--- ")?r.fromPath=h.slice(6).trim():h.startsWith("+++ ")&&(r.toPath=h.slice(6).trim());else{let E=ujt[h[0]]||null;switch(E){case"header":c(),a=cjt(h);break;case null:s="parsing header",f(),p-=1;break;case"pragma":{if(!h.startsWith("\\ No newline at end of file"))throw new Error(`Unrecognized pragma in patch file: ${h}`);if(!n)throw new Error("Bad parser state: No newline at EOF pragma encountered without context");n.noNewlineAtEndOfFile=!0}break;case"context":case"deletion":case"insertion":{if(!a)throw new Error("Bad parser state: Hunk lines encountered before hunk header");n&&n.type!==E&&(a.parts.push(n),n=null),n||(n={type:E,lines:[],noNewlineAtEndOfFile:!1}),n.lines.push(h.slice(1))}break;default:je.assertNever(E);break}}}f();for(let{hunks:p}of e)if(p)for(let h of p)pjt(h);return e}function Ajt(t){let e=[];for(let r of t){let{semverExclusivity:s,diffLineFromPath:a,diffLineToPath:n,oldMode:c,newMode:f,deletedFileMode:p,newFileMode:h,renameFrom:E,renameTo:C,beforeHash:S,afterHash:P,fromPath:I,toPath:R,hunks:N}=r,U=E?"rename":p?"file deletion":h?"file creation":N&&N.length>0?"patch":"mode change",W=null;switch(U){case"rename":{if(!E||!C)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:s,fromPath:N1(E),toPath:N1(C)}),W=C}break;case"file deletion":{let te=a||I;if(!te)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:s,hunk:N&&N[0]||null,path:N1(te),mode:RL(p),hash:S})}break;case"file creation":{let te=n||R;if(!te)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:s,hunk:N&&N[0]||null,path:N1(te),mode:RL(h),hash:P})}break;case"patch":case"mode change":W=R||n;break;default:je.assertNever(U);break}W&&c&&f&&c!==f&&e.push({type:"mode change",semverExclusivity:s,path:N1(W),oldMode:RL(c),newMode:RL(f)}),W&&N&&N.length&&e.push({type:"patch",semverExclusivity:s,path:N1(W),hunks:N,beforeHash:S,afterHash:P})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function RL(t){let e=parseInt(t,8)&511;if(e!==ajt&&e!==ljt)throw new Error(`Unexpected file mode string: ${t}`);return e}function aP(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),Ajt(fjt(e))}function pjt(t){let e=0,r=0;for(let{type:s,lines:a}of t.parts)switch(s){case"context":r+=a.length,e+=a.length;break;case"deletion":e+=a.length;break;case"insertion":r+=a.length;break;default:je.assertNever(s);break}if(e!==t.header.original.length||r!==t.header.patched.length){let s=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${s(t.header.original.length)} ${s(t.header.patched.length)} @@, got @@ ${s(e)} ${s(r)} @@)`)}}Ve();bt();var O1=class extends Error{constructor(r,s){super(`Cannot apply hunk #${r+1}`);this.hunk=s}};async function L1(t,e,r){let s=await t.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await t.lutimesPromise(e,s.atime,s.mtime)}async function FL(t,{baseFs:e=new Yn,dryRun:r=!1,version:s=null}={}){for(let a of t)if(!(a.semverExclusivity!==null&&s!==null&&!Or.satisfiesWithPrereleases(s,a.semverExclusivity)))switch(a.type){case"file deletion":if(r){if(!e.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await L1(e,K.dirname(a.path),async()=>{await e.unlinkPromise(a.path)});break;case"rename":if(r){if(!e.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await L1(e,K.dirname(a.fromPath),async()=>{await L1(e,K.dirname(a.toPath),async()=>{await L1(e,a.fromPath,async()=>(await e.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case"file creation":if(r){if(e.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let n=a.hunk?a.hunk.parts[0].lines.join(` +`)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":` +`):"";await e.mkdirpPromise(K.dirname(a.path),{chmod:493,utimes:[fi.SAFE_TIME,fi.SAFE_TIME]}),await e.writeFilePromise(a.path,n,{mode:a.mode}),await e.utimesPromise(a.path,fi.SAFE_TIME,fi.SAFE_TIME)}break;case"patch":await L1(e,a.path,async()=>{await djt(a,{baseFs:e,dryRun:r})});break;case"mode change":{let c=(await e.statPromise(a.path)).mode;if(nOe(a.newMode)!==nOe(c))continue;await L1(e,a.path,async()=>{await e.chmodPromise(a.path,a.newMode)})}break;default:je.assertNever(a);break}}function nOe(t){return(t&64)>0}function iOe(t){return t.replace(/\s+$/,"")}function gjt(t,e){return iOe(t)===iOe(e)}async function djt({hunks:t,path:e},{baseFs:r,dryRun:s=!1}){let a=await r.statSync(e).mode,c=(await r.readFileSync(e,"utf8")).split(/\n/),f=[],p=0,h=0;for(let C of t){let S=Math.max(h,C.header.patched.start+p),P=Math.max(0,S-h),I=Math.max(0,c.length-S-C.header.original.length),R=Math.max(P,I),N=0,U=0,W=null;for(;N<=R;){if(N<=P&&(U=S-N,W=sOe(C,c,U),W!==null)){N=-N;break}if(N<=I&&(U=S+N,W=sOe(C,c,U),W!==null))break;N+=1}if(W===null)throw new O1(t.indexOf(C),C);f.push(W),p+=N,h=U+C.header.original.length}if(s)return;let E=0;for(let C of f)for(let S of C)switch(S.type){case"splice":{let P=S.index+E;c.splice(P,S.numToDelete,...S.linesToInsert),E+=S.linesToInsert.length-S.numToDelete}break;case"pop":c.pop();break;case"push":c.push(S.line);break;default:je.assertNever(S);break}await r.writeFilePromise(e,c.join(` +`),{mode:a})}function sOe(t,e,r){let s=[];for(let a of t.parts)switch(a.type){case"context":case"deletion":{for(let n of a.lines){let c=e[r];if(c==null||!gjt(c,n))return null;r+=1}a.type==="deletion"&&(s.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&s.push({type:"push",line:""}))}break;case"insertion":s.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&s.push({type:"pop"});break;default:je.assertNever(a.type);break}return s}var yjt=/^builtin<([^>]+)>$/;function M1(t,e){let{protocol:r,source:s,selector:a,params:n}=q.parseRange(t);if(r!=="patch:")throw new Error("Invalid patch range");if(s===null)throw new Error("Patch locators must explicitly define their source");let c=a?a.split(/&/).map(E=>ue.toPortablePath(E)):[],f=n&&typeof n.locator=="string"?q.parseLocator(n.locator):null,p=n&&typeof n.version=="string"?n.version:null,h=e(s);return{parentLocator:f,sourceItem:h,patchPaths:c,sourceVersion:p}}function NL(t){return t.range.startsWith("patch:")}function Tg(t){return t.reference.startsWith("patch:")}function lP(t){let{sourceItem:e,...r}=M1(t.range,q.parseDescriptor);return{...r,sourceDescriptor:e}}function cP(t){let{sourceItem:e,...r}=M1(t.reference,q.parseLocator);return{...r,sourceLocator:e}}function Ejt(t){let{sourceItem:e}=M1(t.range,q.parseDescriptor);return e}function Ijt(t){let{sourceItem:e}=M1(t.reference,q.parseLocator);return e}function dz(t){if(!NL(t))return t;let{sourceItem:e}=M1(t.range,q.parseDescriptor);return e}function OL(t){if(!Tg(t))return t;let{sourceItem:e}=M1(t.reference,q.parseLocator);return e}function oOe({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:s,patchHash:a},n){let c=t!==null?{locator:q.stringifyLocator(t)}:{},f=typeof s<"u"?{version:s}:{},p=typeof a<"u"?{hash:a}:{};return q.makeRange({protocol:"patch:",source:n(e),selector:r.join("&"),params:{...f,...p,...c}})}function LL(t,{parentLocator:e,sourceDescriptor:r,patchPaths:s}){return q.makeDescriptor(t,oOe({parentLocator:e,sourceItem:r,patchPaths:s},q.stringifyDescriptor))}function mz(t,{parentLocator:e,sourcePackage:r,patchPaths:s,patchHash:a}){return q.makeLocator(t,oOe({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:s,patchHash:a},q.stringifyLocator))}function aOe({onAbsolute:t,onRelative:e,onProject:r,onBuiltin:s},a){let n=a.lastIndexOf("!");n!==-1&&(a=a.slice(n+1));let c=a.match(yjt);return c!==null?s(c[1]):a.startsWith("~/")?r(a.slice(2)):K.isAbsolute(a)?t(a):e(a)}function lOe(t){let e=t.lastIndexOf("!");return{optional:(e!==-1?new Set(t.slice(0,e).split(/!/)):new Set).has("optional")}}function yz(t){return aOe({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},t)}async function uP(t,e,r){let s=t!==null?await r.fetcher.fetch(t,r):null,a=s&&s.localPath?{packageFs:new Sn(vt.root),prefixPath:K.relative(vt.root,s.localPath)}:s;s&&s!==a&&s.releaseFs&&s.releaseFs();let n=await je.releaseAfterUseAsync(async()=>await Promise.all(e.map(async c=>{let f=lOe(c),p=await aOe({onAbsolute:async h=>await le.readFilePromise(h,"utf8"),onRelative:async h=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(K.join(a.prefixPath,h),"utf8")},onProject:async h=>await le.readFilePromise(K.join(r.project.cwd,h),"utf8"),onBuiltin:async h=>await r.project.configuration.firstHook(E=>E.getBuiltinPatch,r.project,h)},c);return{...f,source:p}})));for(let c of n)typeof c.source=="string"&&(c.source=c.source.replace(/\r\n?/g,` +`));return n}async function Ez(t,{cache:e,project:r}){let s=r.storedPackages.get(t.locatorHash);if(typeof s>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=OL(t),n=r.storedChecksums,c=new Yi,f=await le.mktempPromise(),p=K.join(f,"source"),h=K.join(f,"user"),E=K.join(f,".yarn-patch.json"),C=r.configuration.makeFetcher(),S=[];try{let P,I;if(t.locatorHash===a.locatorHash){let R=await C.fetch(t,{cache:e,project:r,fetcher:C,checksums:n,report:c});S.push(()=>R.releaseFs?.()),P=R,I=R}else P=await C.fetch(t,{cache:e,project:r,fetcher:C,checksums:n,report:c}),S.push(()=>P.releaseFs?.()),I=await C.fetch(t,{cache:e,project:r,fetcher:C,checksums:n,report:c}),S.push(()=>I.releaseFs?.());await Promise.all([le.copyPromise(p,P.prefixPath,{baseFs:P.packageFs}),le.copyPromise(h,I.prefixPath,{baseFs:I.packageFs}),le.writeJsonPromise(E,{locator:q.stringifyLocator(t),version:s.version})])}finally{for(let P of S)P()}return le.detachTemp(f),h}async function Iz(t,e){let r=ue.fromPortablePath(t).replace(/\\/g,"/"),s=ue.fromPortablePath(e).replace(/\\/g,"/"),{stdout:a,stderr:n}=await Gr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,s],{cwd:ue.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(n.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. +The following error was reported by 'git': +${n}`);let c=r.startsWith("/")?f=>f.slice(1):f=>f;return a.replace(new RegExp(`(a|b)(${je.escapeRegExp(`/${c(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${je.escapeRegExp(`/${c(s)}/`)}`,"g"),"$1/").replace(new RegExp(je.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(je.escapeRegExp(`${s}/`),"g"),"")}function Cz(t,e){let r=[];for(let{source:s}of t){if(s===null)continue;let a=aP(s);for(let n of a){let{semverExclusivity:c,...f}=n;c!==null&&e!==null&&!Or.satisfiesWithPrereleases(e,c)||r.push(JSON.stringify(f))}}return Nn.makeHash(`${3}`,...r).slice(0,6)}Ve();function cOe(t,{configuration:e,report:r}){for(let s of t.parts)for(let a of s.lines)switch(s.type){case"context":r.reportInfo(null,` ${he.pretty(e,a,"grey")}`);break;case"deletion":r.reportError(28,`- ${he.pretty(e,a,he.Type.REMOVED)}`);break;case"insertion":r.reportError(28,`+ ${he.pretty(e,a,he.Type.ADDED)}`);break;default:je.assertNever(s.type)}}var fP=class{supports(e,r){return!!Tg(e)}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,c]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${q.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:q.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:c}}async patchPackage(e,r){let{parentLocator:s,sourceLocator:a,sourceVersion:n,patchPaths:c}=cP(e),f=await uP(s,c,r),p=await le.mktempPromise(),h=K.join(p,"current.zip"),E=await r.fetcher.fetch(a,r),C=q.getIdentVendorPath(e),S=new hs(h,{create:!0,level:r.project.configuration.get("compressionLevel")});await je.releaseAfterUseAsync(async()=>{await S.copyPromise(C,E.prefixPath,{baseFs:E.packageFs,stableSort:!0})},E.releaseFs),S.saveAndClose();for(let{source:P,optional:I}of f){if(P===null)continue;let R=new hs(h,{level:r.project.configuration.get("compressionLevel")}),N=new Sn(K.resolve(vt.root,C),{baseFs:R});try{await FL(aP(P),{baseFs:N,version:n})}catch(U){if(!(U instanceof O1))throw U;let W=r.project.configuration.get("enableInlineHunks"),te=!W&&!I?" (set enableInlineHunks for details)":"",ie=`${q.prettyLocator(r.project.configuration,e)}: ${U.message}${te}`,Ae=ce=>{W&&cOe(U.hunk,{configuration:r.project.configuration,report:ce})};if(R.discardAndClose(),I){r.report.reportWarningOnce(66,ie,{reportExtra:Ae});continue}else throw new Yt(66,ie,Ae)}R.saveAndClose()}return new hs(h,{level:r.project.configuration.get("compressionLevel")})}};Ve();var AP=class{supportsDescriptor(e,r){return!!NL(e)}supportsLocator(e,r){return!!Tg(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){let{patchPaths:a}=lP(e);return a.every(n=>!yz(n))?e:q.bindDescriptor(e,{locator:q.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:s}=lP(e);return{sourceDescriptor:r.project.configuration.normalizeDependency(s)}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:n}=lP(e),c=await uP(a,n,s.fetchOptions),f=r.sourceDescriptor;if(typeof f>"u")throw new Error("Assertion failed: The dependency should have been resolved");let p=Cz(c,f.version);return[mz(e,{parentLocator:a,sourcePackage:f,patchPaths:n,patchHash:p})]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(c=>c.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let{sourceLocator:s}=cP(e);return{...await r.resolver.resolve(s,r),...e}}};Ve();bt();Wt();var _1=class extends ut{constructor(){super(...arguments);this.save=ge.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=ge.String()}static{this.paths=[["patch-commit"]]}static{this.usage=ot.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=K.resolve(this.context.cwd,ue.toPortablePath(this.patchFolder)),c=K.join(n,"../source"),f=K.join(n,"../.yarn-patch.json");if(!le.existsSync(c))throw new nt("The argument folder didn't get created by 'yarn patch'");let p=await Iz(c,n),h=await le.readJsonPromise(f),E=q.parseLocator(h.locator,!0);if(!s.storedPackages.has(E.locatorHash))throw new nt("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(p);return}let C=r.get("patchFolder"),S=K.join(C,`${q.slugifyLocator(E)}.patch`);await le.mkdirPromise(C,{recursive:!0}),await le.writeFilePromise(S,p);let P=[],I=new Map;for(let R of s.storedPackages.values()){if(q.isVirtualLocator(R))continue;let N=R.dependencies.get(E.identHash);if(!N)continue;let U=q.ensureDevirtualizedDescriptor(N),W=dz(U),te=s.storedResolutions.get(W.descriptorHash);if(!te)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!s.storedPackages.get(te))throw new Error("Assertion failed: Expected the package to have been registered");let Ae=s.tryWorkspaceByLocator(R);if(Ae)P.push(Ae);else{let ce=s.originalPackages.get(R.locatorHash);if(!ce)throw new Error("Assertion failed: Expected the original package to have been registered");let me=ce.dependencies.get(N.identHash);if(!me)throw new Error("Assertion failed: Expected the original dependency to have been registered");I.set(me.descriptorHash,me)}}for(let R of P)for(let N of Ht.hardDependencies){let U=R.manifest[N].get(E.identHash);if(!U)continue;let W=LL(U,{parentLocator:null,sourceDescriptor:q.convertLocatorToDescriptor(E),patchPaths:[K.join(Er.home,K.relative(s.cwd,S))]});R.manifest[N].set(U.identHash,W)}for(let R of I.values()){let N=LL(R,{parentLocator:null,sourceDescriptor:q.convertLocatorToDescriptor(E),patchPaths:[K.join(Er.home,K.relative(s.cwd,S))]});s.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:q.stringifyIdent(N),description:R.range}},reference:N.range})}await s.persist()}};Ve();bt();Wt();var U1=class extends ut{constructor(){super(...arguments);this.update=ge.Boolean("-u,--update",!1,{description:"Reapply local patches that already apply to this packages"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=ge.String()}static{this.paths=[["patch"]]}static{this.usage=ot.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n\n Once you're done with your changes, run `yarn patch-commit -s path` (with `path` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n\n Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd),n=await Jr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let c=q.parseLocator(this.package);if(c.reference==="unknown"){let f=je.mapAndFilter([...s.storedPackages.values()],p=>p.identHash!==c.identHash?je.mapAndFilter.skip:q.isVirtualLocator(p)?je.mapAndFilter.skip:Tg(p)!==this.update?je.mapAndFilter.skip:p);if(f.length===0)throw new nt("No package found in the project for the given locator");if(f.length>1)throw new nt(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why <package>\` to get more information as to who depends on them): +${f.map(p=>` +- ${q.prettyLocator(r,p)}`).join("")}`);c=f[0]}if(!s.storedPackages.has(c.locatorHash))throw new nt("No package found in the project for the given locator");await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async f=>{let p=OL(c),h=await Ez(c,{cache:n,project:s});f.reportJson({locator:q.stringifyLocator(p),path:ue.fromPortablePath(h)});let E=this.update?" along with its current modifications":"";f.reportInfo(0,`Package ${q.prettyLocator(r,p)} got extracted with success${E}!`),f.reportInfo(0,`You can now edit the following folder: ${he.pretty(r,ue.fromPortablePath(h),"magenta")}`),f.reportInfo(0,`Once you are done run ${he.pretty(r,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${ue.fromPortablePath(h)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};var Cjt={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[_1,U1],fetchers:[fP],resolvers:[AP]},wjt=Cjt;var Sz={};Vt(Sz,{PnpmLinker:()=>pP,default:()=>Pjt});Ve();bt();Wt();var pP=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let s=this.getCustomDataKey(),a=r.project.linkersCustomData.get(s);if(!a)throw new nt(`The project in ${he.pretty(r.project.configuration,`${r.project.cwd}/package.json`,he.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=a.pathsByLocator.get(e.locatorHash);if(typeof n>"u")throw new nt(`Couldn't find ${q.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return n.packageLocation}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let s=this.getCustomDataKey(),a=r.project.linkersCustomData.get(s);if(!a)throw new nt(`The project in ${he.pretty(r.project.configuration,`${r.project.cwd}/package.json`,he.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(n){let p=a.locatorByPath.get(n[1]);if(p)return p}let c=e,f=e;do{f=c,c=K.dirname(f);let p=a.locatorByPath.get(f);if(p)return p}while(c!==f);return null}makeInstaller(e){return new Bz(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},Bz=class{constructor(e){this.opts=e;this.asyncActions=new je.AsyncActions(10);this.customData={pathsByLocator:new Map,locatorByPath:new Map};this.indexFolderPromise=ax(le,{indexPath:K.join(e.project.configuration.get("globalFolder"),"index")})}attachCustomData(e){}async installPackage(e,r,s){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,r,s);case"HARD":return this.installPackageHard(e,r,s)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,s){let a=K.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.opts.project.tryWorkspaceByLocator(e)?K.join(a,Er.nodeModules):null;return this.customData.pathsByLocator.set(e.locatorHash,{packageLocation:a,dependenciesLocation:n}),{packageLocation:a,buildRequest:null}}async installPackageHard(e,r,s){let a=vjt(e,{project:this.opts.project}),n=a.packageLocation;this.customData.locatorByPath.set(n,q.stringifyLocator(e)),this.customData.pathsByLocator.set(e.locatorHash,a),s.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await le.mkdirPromise(n,{recursive:!0}),await le.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let f=q.isVirtualLocator(e)?q.devirtualizeLocator(e):e,p={manifest:await Ht.tryFind(r.prefixPath,{baseFs:r.packageFs})??new Ht,misc:{hasBindingGyp:mA.hasBindingGyp(r)}},h=this.opts.project.getDependencyMeta(f,e.version),E=mA.extractBuildRequest(e,p,h,{configuration:this.opts.project.configuration});return{packageLocation:n,buildRequest:E}}async attachInternalDependencies(e,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!uOe(e,{project:this.opts.project}))return;let s=this.customData.pathsByLocator.get(e.locatorHash);if(typeof s>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${q.stringifyLocator(e)})`);let{dependenciesLocation:a}=s;a&&this.asyncActions.reduce(e.locatorHash,async n=>{await le.mkdirPromise(a,{recursive:!0});let c=await Sjt(a),f=new Map(c),p=[n],h=(C,S)=>{let P=S;uOe(S,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),P=q.devirtualizeLocator(S));let I=this.customData.pathsByLocator.get(P.locatorHash);if(typeof I>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${q.stringifyLocator(S)})`);let R=q.stringifyIdent(C),N=K.join(a,R),U=K.relative(K.dirname(N),I.packageLocation),W=f.get(R);f.delete(R),p.push(Promise.resolve().then(async()=>{if(W){if(W.isSymbolicLink()&&await le.readlinkPromise(N)===U)return;await le.removePromise(N)}await le.mkdirpPromise(K.dirname(N)),process.platform=="win32"&&this.opts.project.configuration.get("winLinkType")==="junctions"?await le.symlinkPromise(I.packageLocation,N,"junction"):await le.symlinkPromise(U,N)}))},E=!1;for(let[C,S]of r)C.identHash===e.identHash&&(E=!0),h(C,S);!E&&!this.opts.project.tryWorkspaceByLocator(e)&&h(q.convertLocatorToDescriptor(e),e),p.push(Djt(a,f)),await Promise.all(p)})}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=fOe(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await le.removePromise(e);else{let r;try{r=new Set(await le.readdirPromise(e))}catch{r=new Set}for(let{dependenciesLocation:s}of this.customData.pathsByLocator.values()){if(!s)continue;let a=K.contains(e,s);if(a===null)continue;let[n]=a.split(K.sep);r.delete(n)}await Promise.all([...r].map(async s=>{await le.removePromise(K.join(e,s))}))}return await this.asyncActions.wait(),await vz(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await vz(Bjt(this.opts.project)),{customData:this.customData}}};function Bjt(t){return K.join(t.cwd,Er.nodeModules)}function fOe(t){return t.configuration.get("pnpmStoreFolder")}function vjt(t,{project:e}){let r=q.slugifyLocator(t),s=fOe(e),a=K.join(s,r,"package"),n=K.join(s,r,Er.nodeModules);return{packageLocation:a,dependenciesLocation:n}}function uOe(t,{project:e}){return!q.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function Sjt(t){let e=new Map,r=[];try{r=await le.readdirPromise(t,{withFileTypes:!0})}catch(s){if(s.code!=="ENOENT")throw s}try{for(let s of r)if(!s.name.startsWith("."))if(s.name.startsWith("@")){let a=await le.readdirPromise(K.join(t,s.name),{withFileTypes:!0});if(a.length===0)e.set(s.name,s);else for(let n of a)e.set(`${s.name}/${n.name}`,n)}else e.set(s.name,s)}catch(s){if(s.code!=="ENOENT")throw s}return e}async function Djt(t,e){let r=[],s=new Set;for(let a of e.keys()){r.push(le.removePromise(K.join(t,a)));let n=q.tryParseIdent(a)?.scope;n&&s.add(`@${n}`)}return Promise.all(r).then(()=>Promise.all([...s].map(a=>vz(K.join(t,a)))))}async function vz(t){try{await le.rmdirPromise(t)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var bjt={configuration:{pnpmStoreFolder:{description:"By default, the store is stored in the 'node_modules/.store' of the project. Sometimes in CI scenario's it is convenient to store this in a different location so it can be cached and reused.",type:"ABSOLUTE_PATH",default:"./node_modules/.store"}},linkers:[pP]},Pjt=bjt;var Tz={};Vt(Tz,{StageCommand:()=>H1,default:()=>_jt,stageUtils:()=>_L});Ve();bt();Wt();Ve();bt();var _L={};Vt(_L,{ActionType:()=>Dz,checkConsensus:()=>ML,expandDirectory:()=>xz,findConsensus:()=>kz,findVcsRoot:()=>bz,genCommitMessage:()=>Qz,getCommitPrefix:()=>AOe,isYarnFile:()=>Pz});bt();var Dz=(n=>(n[n.CREATE=0]="CREATE",n[n.DELETE=1]="DELETE",n[n.ADD=2]="ADD",n[n.REMOVE=3]="REMOVE",n[n.MODIFY=4]="MODIFY",n))(Dz||{});async function bz(t,{marker:e}){do if(!le.existsSync(K.join(t,e)))t=K.dirname(t);else return t;while(t!=="/");return null}function Pz(t,{roots:e,names:r}){if(r.has(K.basename(t)))return!0;do if(!e.has(t))t=K.dirname(t);else return!0;while(t!=="/");return!1}function xz(t){let e=[],r=[t];for(;r.length>0;){let s=r.pop(),a=le.readdirSync(s);for(let n of a){let c=K.resolve(s,n);le.lstatSync(c).isDirectory()?r.push(c):e.push(c)}}return e}function ML(t,e){let r=0,s=0;for(let a of t)a!=="wip"&&(e.test(a)?r+=1:s+=1);return r>=s}function kz(t){let e=ML(t,/^(\w\(\w+\):\s*)?\w+s/),r=ML(t,/^(\w\(\w+\):\s*)?[A-Z]/),s=ML(t,/^\w\(\w+\):/);return{useThirdPerson:e,useUpperCase:r,useComponent:s}}function AOe(t){return t.useComponent?"chore(yarn): ":""}var xjt=new Map([[0,"create"],[1,"delete"],[2,"add"],[3,"remove"],[4,"update"]]);function Qz(t,e){let r=AOe(t),s=[],a=e.slice().sort((n,c)=>n[0]-c[0]);for(;a.length>0;){let[n,c]=a.shift(),f=xjt.get(n);t.useUpperCase&&s.length===0&&(f=`${f[0].toUpperCase()}${f.slice(1)}`),t.useThirdPerson&&(f+="s");let p=[c];for(;a.length>0&&a[0][0]===n;){let[,E]=a.shift();p.push(E)}p.sort();let h=p.shift();p.length===1?h+=" (and one other)":p.length>1&&(h+=` (and ${p.length} others)`),s.push(`${f} ${h}`)}return`${r}${s.join(", ")}`}var kjt="Commit generated via `yarn stage`",Qjt=11;async function pOe(t){let{code:e,stdout:r}=await Gr.execvp("git",["log","-1","--pretty=format:%H"],{cwd:t});return e===0?r.trim():null}async function Tjt(t,e){let r=[],s=e.filter(h=>K.basename(h.path)==="package.json");for(let{action:h,path:E}of s){let C=K.relative(t,E);if(h===4){let S=await pOe(t),{stdout:P}=await Gr.execvp("git",["show",`${S}:${C}`],{cwd:t,strict:!0}),I=await Ht.fromText(P),R=await Ht.fromFile(E),N=new Map([...R.dependencies,...R.devDependencies]),U=new Map([...I.dependencies,...I.devDependencies]);for(let[W,te]of U){let ie=q.stringifyIdent(te),Ae=N.get(W);Ae?Ae.range!==te.range&&r.push([4,`${ie} to ${Ae.range}`]):r.push([3,ie])}for(let[W,te]of N)U.has(W)||r.push([2,q.stringifyIdent(te)])}else if(h===0){let S=await Ht.fromFile(E);S.name?r.push([0,q.stringifyIdent(S.name)]):r.push([0,"a package"])}else if(h===1){let S=await pOe(t),{stdout:P}=await Gr.execvp("git",["show",`${S}:${C}`],{cwd:t,strict:!0}),I=await Ht.fromText(P);I.name?r.push([1,q.stringifyIdent(I.name)]):r.push([1,"a package"])}else throw new Error("Assertion failed: Unsupported action type")}let{code:a,stdout:n}=await Gr.execvp("git",["log",`-${Qjt}`,"--pretty=format:%s"],{cwd:t}),c=a===0?n.split(/\n/g).filter(h=>h!==""):[],f=kz(c);return Qz(f,r)}var Rjt={0:[" A ","?? "],4:[" M "],1:[" D "]},Fjt={0:["A "],4:["M "],1:["D "]},hOe={async findRoot(t){return await bz(t,{marker:".git"})},async filterChanges(t,e,r,s){let{stdout:a}=await Gr.execvp("git",["status","-s"],{cwd:t,strict:!0}),n=a.toString().split(/\n/g),c=s?.staged?Fjt:Rjt;return[].concat(...n.map(p=>{if(p==="")return[];let h=p.slice(0,3),E=K.resolve(t,p.slice(3));if(!s?.staged&&h==="?? "&&p.endsWith("/"))return xz(E).map(C=>({action:0,path:C}));{let S=[0,4,1].find(P=>c[P].includes(h));return S!==void 0?[{action:S,path:E}]:[]}})).filter(p=>Pz(p.path,{roots:e,names:r}))},async genCommitMessage(t,e){return await Tjt(t,e)},async makeStage(t,e){let r=e.map(s=>ue.fromPortablePath(s.path));await Gr.execvp("git",["add","--",...r],{cwd:t,strict:!0})},async makeCommit(t,e,r){let s=e.map(a=>ue.fromPortablePath(a.path));await Gr.execvp("git",["add","-N","--",...s],{cwd:t,strict:!0}),await Gr.execvp("git",["commit","-m",`${r} + +${kjt} +`,"--",...s],{cwd:t,strict:!0})},async makeReset(t,e){let r=e.map(s=>ue.fromPortablePath(s.path));await Gr.execvp("git",["reset","HEAD","--",...r],{cwd:t,strict:!0})}};var Njt=[hOe],H1=class extends ut{constructor(){super(...arguments);this.commit=ge.Boolean("-c,--commit",!1,{description:"Commit the staged files"});this.reset=ge.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"});this.update=ge.Boolean("-u,--update",!1,{hidden:!0})}static{this.paths=[["stage"]]}static{this.usage=ot.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s}=await Tt.find(r,this.context.cwd),{driver:a,root:n}=await Ojt(s.cwd),c=[r.get("cacheFolder"),r.get("globalFolder"),r.get("virtualFolder"),r.get("yarnPath")];await r.triggerHook(C=>C.populateYarnPaths,s,C=>{c.push(C)});let f=new Set;for(let C of c)for(let S of Ljt(n,C))f.add(S);let p=new Set([r.get("rcFilename"),Er.lockfile,Er.manifest]),h=await a.filterChanges(n,f,p),E=await a.genCommitMessage(n,h);if(this.dryRun)if(this.commit)this.context.stdout.write(`${E} +`);else for(let C of h)this.context.stdout.write(`${ue.fromPortablePath(C.path)} +`);else if(this.reset){let C=await a.filterChanges(n,f,p,{staged:!0});C.length===0?this.context.stdout.write("No staged changes found!"):await a.makeReset(n,C)}else h.length===0?this.context.stdout.write("No changes found!"):this.commit?await a.makeCommit(n,h,E):(await a.makeStage(n,h),this.context.stdout.write(E))}};async function Ojt(t){let e=null,r=null;for(let s of Njt)if((r=await s.findRoot(t))!==null){e=s;break}if(e===null||r===null)throw new nt("No stage driver has been found for your current project");return{driver:e,root:r}}function Ljt(t,e){let r=[];if(e===null)return r;for(;;){(e===t||e.startsWith(`${t}/`))&&r.push(e);let s;try{s=le.statSync(e)}catch{break}if(s.isSymbolicLink())e=K.resolve(K.dirname(e),le.readlinkSync(e));else break}return r}var Mjt={commands:[H1]},_jt=Mjt;var Rz={};Vt(Rz,{default:()=>Vjt});Ve();Ve();bt();var mOe=et(Ai());Ve();var gOe=et(G9()),Ujt="e8e1bd300d860104bb8c58453ffa1eb4",Hjt="OFCNCOG2CU",dOe=async(t,e)=>{let r=q.stringifyIdent(t),a=jjt(e).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}},jjt=t=>(0,gOe.default)(Hjt,Ujt,{requester:{async send(r){try{let s=await An.request(r.url,r.data||null,{configuration:t,headers:r.headers});return{content:s.body,isTimedOut:!1,status:s.statusCode}}catch(s){return{content:s.response.body,isTimedOut:!1,status:s.response.statusCode}}}}});var yOe=t=>t.scope?`${t.scope}__${t.name}`:`${t.name}`,qjt=async(t,e,r,s)=>{if(r.scope==="types")return;let{project:a}=t,{configuration:n}=a;if(!(n.get("tsEnableAutoTypes")??(le.existsSync(K.join(t.cwd,"tsconfig.json"))||le.existsSync(K.join(a.cwd,"tsconfig.json")))))return;let f=n.makeResolver(),p={project:a,resolver:f,report:new Yi};if(!await dOe(r,n))return;let E=yOe(r),C=q.parseRange(r.range).selector;if(!Or.validRange(C)){let N=n.normalizeDependency(r),U=await f.getCandidates(N,{},p);C=q.parseRange(U[0].reference).selector}let S=mOe.default.coerce(C);if(S===null)return;let P=`${Xu.Modifier.CARET}${S.major}`,I=q.makeDescriptor(q.makeIdent("types",E),P),R=je.mapAndFind(a.workspaces,N=>{let U=N.manifest.dependencies.get(r.identHash)?.descriptorHash,W=N.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(U!==r.descriptorHash&&W!==r.descriptorHash)return je.mapAndFind.skip;let te=[];for(let ie of Ht.allDependencies){let Ae=N.manifest[ie].get(I.identHash);typeof Ae>"u"||te.push([ie,Ae])}return te.length===0?je.mapAndFind.skip:te});if(typeof R<"u")for(let[N,U]of R)t.manifest[N].set(U.identHash,U);else{try{let N=n.normalizeDependency(I);if((await f.getCandidates(N,{},p)).length===0)return}catch{return}t.manifest[Xu.Target.DEVELOPMENT].set(I.identHash,I)}},Gjt=async(t,e,r)=>{if(r.scope==="types")return;let{project:s}=t,{configuration:a}=s;if(!(a.get("tsEnableAutoTypes")??(le.existsSync(K.join(t.cwd,"tsconfig.json"))||le.existsSync(K.join(s.cwd,"tsconfig.json")))))return;let c=yOe(r),f=q.makeIdent("types",c);for(let p of Ht.allDependencies)typeof t.manifest[p].get(f.identHash)>"u"||t.manifest[p].delete(f.identHash)},Wjt=(t,e)=>{e.publishConfig&&e.publishConfig.typings&&(e.typings=e.publishConfig.typings),e.publishConfig&&e.publishConfig.types&&(e.types=e.publishConfig.types)},Yjt={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:"BOOLEAN",isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:qjt,afterWorkspaceDependencyRemoval:Gjt,beforeWorkspacePacking:Wjt}},Vjt=Yjt;var Mz={};Vt(Mz,{VersionApplyCommand:()=>Y1,VersionCheckCommand:()=>V1,VersionCommand:()=>K1,default:()=>A6t,versionUtils:()=>W1});Ve();Ve();Wt();var W1={};Vt(W1,{Decision:()=>q1,applyPrerelease:()=>vOe,applyReleases:()=>Lz,applyStrategy:()=>HL,clearVersionFiles:()=>Fz,getUndecidedDependentWorkspaces:()=>gP,getUndecidedWorkspaces:()=>UL,openVersionFile:()=>G1,requireMoreDecisions:()=>c6t,resolveVersionFiles:()=>hP,suggestStrategy:()=>Oz,updateVersionFiles:()=>Nz,validateReleaseDecision:()=>j1});Ve();bt();Bc();Wt();var BOe=et(wOe()),TA=et(Ai()),l6t=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,q1=(c=>(c.UNDECIDED="undecided",c.DECLINE="decline",c.MAJOR="major",c.MINOR="minor",c.PATCH="patch",c.PRERELEASE="prerelease",c))(q1||{});function j1(t){let e=TA.default.valid(t);return e||je.validateEnum((0,BOe.default)(q1,"UNDECIDED"),t)}async function hP(t,{prerelease:e=null}={}){let r=new Map,s=t.configuration.get("deferredVersionFolder");if(!le.existsSync(s))return r;let a=await le.readdirPromise(s);for(let n of a){if(!n.endsWith(".yml"))continue;let c=K.join(s,n),f=await le.readFilePromise(c,"utf8"),p=cs(f);for(let[h,E]of Object.entries(p.releases||{})){if(E==="decline")continue;let C=q.parseIdent(h),S=t.tryWorkspaceByIdent(C);if(S===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${K.basename(c)} references ${h})`);if(S.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${q.prettyLocator(t.configuration,S.anchoredLocator)})`);let P=S.manifest.raw.stableVersion??S.manifest.version,I=r.get(S),R=HL(P,j1(E));if(R===null)throw new Error(`Assertion failed: Expected ${P} to support being bumped via strategy ${E}`);let N=typeof I<"u"?TA.default.gt(R,I)?R:I:R;r.set(S,N)}}return e&&(r=new Map([...r].map(([n,c])=>[n,vOe(c,{current:n.manifest.version,prerelease:e})]))),r}async function Fz(t){let e=t.configuration.get("deferredVersionFolder");le.existsSync(e)&&await le.removePromise(e)}async function Nz(t,e){let r=new Set(e),s=t.configuration.get("deferredVersionFolder");if(!le.existsSync(s))return;let a=await le.readdirPromise(s);for(let n of a){if(!n.endsWith(".yml"))continue;let c=K.join(s,n),f=await le.readFilePromise(c,"utf8"),p=cs(f),h=p?.releases;if(h){for(let E of Object.keys(h)){let C=q.parseIdent(E),S=t.tryWorkspaceByIdent(C);(S===null||r.has(S))&&delete p.releases[E]}Object.keys(p.releases).length>0?await le.changeFilePromise(c,il(new il.PreserveOrdering(p))):await le.unlinkPromise(c)}}}async function G1(t,{allowEmpty:e=!1}={}){let r=t.configuration;if(r.projectCwd===null)throw new nt("This command can only be run from within a Yarn project");let s=await Qa.fetchRoot(r.projectCwd),a=s!==null?await Qa.fetchBase(s,{baseRefs:r.get("changesetBaseRefs")}):null,n=s!==null?await Qa.fetchChangedFiles(s,{base:a.hash,project:t}):[],c=r.get("deferredVersionFolder"),f=n.filter(P=>K.contains(c,P)!==null);if(f.length>1)throw new nt(`Your current branch contains multiple versioning files; this isn't supported: +- ${f.map(P=>ue.fromPortablePath(P)).join(` +- `)}`);let p=new Set(je.mapAndFilter(n,P=>{let I=t.tryWorkspaceByFilePath(P);return I===null?je.mapAndFilter.skip:I}));if(f.length===0&&p.size===0&&!e)return null;let h=f.length===1?f[0]:K.join(c,`${Nn.makeHash(Math.random().toString()).slice(0,8)}.yml`),E=le.existsSync(h)?await le.readFilePromise(h,"utf8"):"{}",C=cs(E),S=new Map;for(let P of C.declined||[]){let I=q.parseIdent(P),R=t.getWorkspaceByIdent(I);S.set(R,"decline")}for(let[P,I]of Object.entries(C.releases||{})){let R=q.parseIdent(P),N=t.getWorkspaceByIdent(R);S.set(N,j1(I))}return{project:t,root:s,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(n),changedWorkspaces:p,releaseRoots:new Set([...p].filter(P=>P.manifest.version!==null)),releases:S,async saveAll(){let P={},I=[],R=[];for(let N of t.workspaces){if(N.manifest.version===null)continue;let U=q.stringifyIdent(N.anchoredLocator),W=S.get(N);W==="decline"?I.push(U):typeof W<"u"?P[U]=j1(W):p.has(N)&&R.push(U)}await le.mkdirPromise(K.dirname(h),{recursive:!0}),await le.changeFilePromise(h,il(new il.PreserveOrdering({releases:Object.keys(P).length>0?P:void 0,declined:I.length>0?I:void 0,undecided:R.length>0?R:void 0})))}}}function c6t(t){return UL(t).size>0||gP(t).length>0}function UL(t){let e=new Set;for(let r of t.changedWorkspaces)r.manifest.version!==null&&(t.releases.has(r)||e.add(r));return e}function gP(t,{include:e=new Set}={}){let r=[],s=new Map(je.mapAndFilter([...t.releases],([n,c])=>c==="decline"?je.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n])),a=new Map(je.mapAndFilter([...t.releases],([n,c])=>c!=="decline"?je.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n]));for(let n of t.project.workspaces)if(!(!e.has(n)&&(a.has(n.anchoredLocator.locatorHash)||s.has(n.anchoredLocator.locatorHash)))&&n.manifest.version!==null)for(let c of Ht.hardDependencies)for(let f of n.manifest.getForScope(c).values()){let p=t.project.tryWorkspaceByDescriptor(f);p!==null&&s.has(p.anchoredLocator.locatorHash)&&r.push([n,p])}return r}function Oz(t,e){let r=TA.default.clean(e);for(let s of Object.values(q1))if(s!=="undecided"&&s!=="decline"&&TA.default.inc(t,s)===r)return s;return null}function HL(t,e){if(TA.default.valid(e))return e;if(t===null)throw new nt(`Cannot apply the release strategy "${e}" unless the workspace already has a valid version`);if(!TA.default.valid(t))throw new nt(`Cannot apply the release strategy "${e}" on a non-semver version (${t})`);let r=TA.default.inc(t,e);if(r===null)throw new nt(`Cannot apply the release strategy "${e}" on the specified version (${t})`);return r}function Lz(t,e,{report:r,exact:s}){let a=new Map;for(let n of t.workspaces)for(let c of Ht.allDependencies)for(let f of n.manifest[c].values()){let p=t.tryWorkspaceByDescriptor(f);if(p===null||!e.has(p))continue;je.getArrayWithDefault(a,p).push([n,c,f.identHash])}for(let[n,c]of e){let f=n.manifest.version;n.manifest.version=c,TA.default.prerelease(c)===null?delete n.manifest.raw.stableVersion:n.manifest.raw.stableVersion||(n.manifest.raw.stableVersion=f);let p=n.manifest.name!==null?q.stringifyIdent(n.manifest.name):null;r.reportInfo(0,`${q.prettyLocator(t.configuration,n.anchoredLocator)}: Bumped to ${c}`),r.reportJson({cwd:ue.fromPortablePath(n.cwd),ident:p,oldVersion:f,newVersion:c});let h=a.get(n);if(!(typeof h>"u"))for(let[E,C,S]of h){let P=E.manifest[C].get(S);if(typeof P>"u")throw new Error("Assertion failed: The dependency should have existed");let I=P.range,R=!1;if(I.startsWith(Ei.protocol)&&(I=I.slice(Ei.protocol.length),R=!0,I===n.relativeCwd))continue;let N=I.match(l6t);if(!N){r.reportWarning(0,`Couldn't auto-upgrade range ${I} (in ${q.prettyLocator(t.configuration,E.anchoredLocator)})`);continue}let U=s?`${c}`:`${N[1]}${c}`;R&&(U=`${Ei.protocol}${U}`);let W=q.makeDescriptor(P,U);E.manifest[C].set(S,W)}}}var u6t=new Map([["%n",{extract:t=>t.length>=1?[t[0],t.slice(1)]:null,generate:(t=0)=>`${t+1}`}]]);function vOe(t,{current:e,prerelease:r}){let s=new TA.default.SemVer(e),a=s.prerelease.slice(),n=[];s.prerelease=[],s.format()!==t&&(a.length=0);let c=!0,f=r.split(/\./g);for(let p of f){let h=u6t.get(p);if(typeof h>"u")n.push(p),a[0]===p?a.shift():c=!1;else{let E=c?h.extract(a):null;E!==null&&typeof E[0]=="number"?(n.push(h.generate(E[0])),a=E[1]):(n.push(h.generate()),c=!1)}}return s.prerelease&&(s.prerelease=[]),`${t}-${n.join(".")}`}var Y1=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"});this.dryRun=ge.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"});this.prerelease=ge.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0});this.exact=ge.Boolean("--exact",!1,{description:"Use the exact version of each package, removes any range. Useful for nightly releases where the range might match another version."});this.recursive=ge.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["version","apply"]]}static{this.usage=ot.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` + This command will apply the deferred version changes and remove their definitions from the repository. + + Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%n\`) will be used on all new versions and the version definitions will be kept as-is. + + By default only the current workspace will be bumped, but you can configure this behavior by using one of: + + - \`--recursive\` to also apply the version bump on its dependencies + - \`--all\` to apply the version bump on all packages in the repository + + Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump. + `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd),n=await Jr.find(r);if(!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let c=await Ot.start({configuration:r,json:this.json,stdout:this.context.stdout},async f=>{let p=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,h=await hP(s,{prerelease:p}),E=new Map;if(this.all)E=h;else{let C=this.recursive?a.getRecursiveWorkspaceDependencies():[a];for(let S of C){let P=h.get(S);typeof P<"u"&&E.set(S,P)}}if(E.size===0){let C=h.size>0?" Did you want to add --all?":"";f.reportWarning(0,`The current workspace doesn't seem to require a version bump.${C}`);return}Lz(s,E,{report:f,exact:this.exact}),this.dryRun||(p||(this.all?await Fz(s):await Nz(s,[...E.keys()])),f.reportSeparator())});return this.dryRun||c.hasErrors()?c.exitCode():await s.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};Ve();bt();Wt();var jL=et(Ai());var V1=class extends ut{constructor(){super(...arguments);this.interactive=ge.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}static{this.paths=[["version","check"]]}static{this.usage=ot.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){iw(this.context);let{Gem:r}=await Promise.resolve().then(()=>(YF(),cY)),{ScrollableItems:s}=await Promise.resolve().then(()=>(zF(),JF)),{FocusRequest:a}=await Promise.resolve().then(()=>(fY(),PPe)),{useListInput:n}=await Promise.resolve().then(()=>(KF(),xPe)),{renderForm:c}=await Promise.resolve().then(()=>(eN(),$F)),{Box:f,Text:p}=await Promise.resolve().then(()=>et(Vc())),{default:h,useCallback:E,useState:C}=await Promise.resolve().then(()=>et(hn())),S=await ze.find(this.context.cwd,this.context.plugins),{project:P,workspace:I}=await Tt.find(S,this.context.cwd);if(!I)throw new ar(P.cwd,this.context.cwd);await P.restoreInstallState();let R=await G1(P);if(R===null||R.releaseRoots.size===0)return 0;if(R.root===null)throw new nt("This command can only be run on Git repositories");let N=()=>h.createElement(f,{flexDirection:"row",paddingBottom:1},h.createElement(f,{flexDirection:"column",width:60},h.createElement(f,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<up>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<down>")," to select workspaces.")),h.createElement(f,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<left>"),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"<right>")," to select release strategies."))),h.createElement(f,{flexDirection:"column"},h.createElement(f,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<enter>")," to save.")),h.createElement(f,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),U=({workspace:me,active:pe,decision:Be,setDecision:Ce})=>{let g=me.manifest.raw.stableVersion??me.manifest.version;if(g===null)throw new Error(`Assertion failed: The version should have been set (${q.prettyLocator(S,me.anchoredLocator)})`);if(jL.default.prerelease(g)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${g})`);let we=["undecided","decline","patch","minor","major"];n(Be,we,{active:pe,minus:"left",plus:"right",set:Ce});let ye=Be==="undecided"?h.createElement(p,{color:"yellow"},g):Be==="decline"?h.createElement(p,{color:"green"},g):h.createElement(p,null,h.createElement(p,{color:"magenta"},g)," \u2192 ",h.createElement(p,{color:"green"},jL.default.valid(Be)?Be:jL.default.inc(g,Be)));return h.createElement(f,{flexDirection:"column"},h.createElement(f,null,h.createElement(p,null,q.prettyLocator(S,me.anchoredLocator)," - ",ye)),h.createElement(f,null,we.map(fe=>h.createElement(f,{key:fe,paddingLeft:2},h.createElement(p,null,h.createElement(r,{active:fe===Be})," ",fe)))))},W=me=>{let pe=new Set(R.releaseRoots),Be=new Map([...me].filter(([Ce])=>pe.has(Ce)));for(;;){let Ce=gP({project:R.project,releases:Be}),g=!1;if(Ce.length>0){for(let[we]of Ce)if(!pe.has(we)){pe.add(we),g=!0;let ye=me.get(we);typeof ye<"u"&&Be.set(we,ye)}}if(!g)break}return{relevantWorkspaces:pe,relevantReleases:Be}},te=()=>{let[me,pe]=C(()=>new Map(R.releases)),Be=E((Ce,g)=>{let we=new Map(me);g!=="undecided"?we.set(Ce,g):we.delete(Ce);let{relevantReleases:ye}=W(we);pe(ye)},[me,pe]);return[me,Be]},ie=({workspaces:me,releases:pe})=>{let Be=[];Be.push(`${me.size} total`);let Ce=0,g=0;for(let we of me){let ye=pe.get(we);typeof ye>"u"?g+=1:ye!=="decline"&&(Ce+=1)}return Be.push(`${Ce} release${Ce===1?"":"s"}`),Be.push(`${g} remaining`),h.createElement(p,{color:"yellow"},Be.join(", "))},ce=await c(({useSubmit:me})=>{let[pe,Be]=te();me(pe);let{relevantWorkspaces:Ce}=W(pe),g=new Set([...Ce].filter(se=>!R.releaseRoots.has(se))),[we,ye]=C(0),fe=E(se=>{switch(se){case a.BEFORE:ye(we-1);break;case a.AFTER:ye(we+1);break}},[we,ye]);return h.createElement(f,{flexDirection:"column"},h.createElement(N,null),h.createElement(f,null,h.createElement(p,{wrap:"wrap"},"The following files have been modified in your local checkout.")),h.createElement(f,{flexDirection:"column",marginTop:1,paddingLeft:2},[...R.changedFiles].map(se=>h.createElement(f,{key:se},h.createElement(p,null,h.createElement(p,{color:"grey"},ue.fromPortablePath(R.root)),ue.sep,ue.relative(ue.fromPortablePath(R.root),ue.fromPortablePath(se)))))),R.releaseRoots.size>0&&h.createElement(h.Fragment,null,h.createElement(f,{marginTop:1},h.createElement(p,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),g.size>3?h.createElement(f,{marginTop:1},h.createElement(ie,{workspaces:R.releaseRoots,releases:pe})):null,h.createElement(f,{marginTop:1,flexDirection:"column"},h.createElement(s,{active:we%2===0,radius:1,size:2,onFocusRequest:fe},[...R.releaseRoots].map(se=>h.createElement(U,{key:se.cwd,workspace:se,decision:pe.get(se)||"undecided",setDecision:X=>Be(se,X)}))))),g.size>0?h.createElement(h.Fragment,null,h.createElement(f,{marginTop:1},h.createElement(p,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),h.createElement(f,null,h.createElement(p,null,"(Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"<tab>")," to move the focus between the workspace groups.)")),g.size>5?h.createElement(f,{marginTop:1},h.createElement(ie,{workspaces:g,releases:pe})):null,h.createElement(f,{marginTop:1,flexDirection:"column"},h.createElement(s,{active:we%2===1,radius:2,size:2,onFocusRequest:fe},[...g].map(se=>h.createElement(U,{key:se.cwd,workspace:se,decision:pe.get(se)||"undecided",setDecision:X=>Be(se,X)}))))):null)},{versionFile:R},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ce>"u")return 1;R.releases.clear();for(let[me,pe]of ce)R.releases.set(me,pe);await R.saveAll()}async executeStandard(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);return await s.restoreInstallState(),(await Ot.start({configuration:r,stdout:this.context.stdout},async c=>{let f=await G1(s);if(f===null||f.releaseRoots.size===0)return;if(f.root===null)throw new nt("This command can only be run on Git repositories");if(c.reportInfo(0,`Your PR was started right after ${he.pretty(r,f.baseHash.slice(0,7),"yellow")} ${he.pretty(r,f.baseTitle,"magenta")}`),f.changedFiles.size>0){c.reportInfo(0,"You have changed the following files since then:"),c.reportSeparator();for(let S of f.changedFiles)c.reportInfo(null,`${he.pretty(r,ue.fromPortablePath(f.root),"gray")}${ue.sep}${ue.relative(ue.fromPortablePath(f.root),ue.fromPortablePath(S))}`)}let p=!1,h=!1,E=UL(f);if(E.size>0){p||c.reportSeparator();for(let S of E)c.reportError(0,`${q.prettyLocator(r,S.anchoredLocator)} has been modified but doesn't have a release strategy attached`);p=!0}let C=gP(f);for(let[S,P]of C)h||c.reportSeparator(),c.reportError(0,`${q.prettyLocator(r,S.anchoredLocator)} doesn't have a release strategy attached, but depends on ${q.prettyWorkspace(r,P)} which is planned for release.`),h=!0;(p||h)&&(c.reportSeparator(),c.reportInfo(0,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),c.reportInfo(0,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};Ve();Wt();var qL=et(Ai());var K1=class extends ut{constructor(){super(...arguments);this.deferred=ge.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"});this.immediate=ge.Boolean("-i,--immediate",{description:"Bump the version immediately"});this.strategy=ge.String()}static{this.paths=[["version"]]}static{this.usage=ot.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd);if(!a)throw new ar(s.cwd,this.context.cwd);let n=r.get("preferDeferredVersions");this.deferred&&(n=!0),this.immediate&&(n=!1);let c=qL.default.valid(this.strategy),f=this.strategy==="decline",p;if(c)if(a.manifest.version!==null){let E=Oz(a.manifest.version,this.strategy);E!==null?p=E:p=this.strategy}else p=this.strategy;else{let E=a.manifest.version;if(!f){if(E===null)throw new nt("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof E!="string"||!qL.default.valid(E))throw new nt(`Can't bump the version (${E}) if it's not valid semver`)}p=j1(this.strategy)}if(!n){let C=(await hP(s)).get(a);if(typeof C<"u"&&p!=="decline"){let S=HL(a.manifest.version,p);if(qL.default.lt(S,C))throw new nt(`Can't bump the version to one that would be lower than the current deferred one (${C})`)}}let h=await G1(s,{allowEmpty:!0});return h.releases.set(a,p),await h.saveAll(),n?0:await this.cli.run(["version","apply"])}};var f6t={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:"ABSOLUTE_PATH",default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:"BOOLEAN",default:!1}},commands:[Y1,V1,K1]},A6t=f6t;var _z={};Vt(_z,{WorkspacesFocusCommand:()=>J1,WorkspacesForeachCommand:()=>Z1,default:()=>g6t});Ve();Ve();Wt();var J1=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=ge.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=ge.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=ge.Rest()}static{this.paths=[["workspaces","focus"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd),n=await Jr.find(r);await s.restoreInstallState({restoreResolutions:!1});let c;if(this.all)c=new Set(s.workspaces);else if(this.workspaces.length===0){if(!a)throw new ar(s.cwd,this.context.cwd);c=new Set([a])}else c=new Set(this.workspaces.map(f=>s.getWorkspaceByIdent(q.parseIdent(f))));for(let f of c)for(let p of this.production?["dependencies"]:Ht.hardDependencies)for(let h of f.manifest.getForScope(p).values()){let E=s.tryWorkspaceByDescriptor(h);E!==null&&c.add(E)}for(let f of s.workspaces)c.has(f)?this.production&&f.manifest.devDependencies.clear():(f.manifest.installConfig=f.manifest.installConfig||{},f.manifest.installConfig.selfReferences=!1,f.manifest.dependencies.clear(),f.manifest.devDependencies.clear(),f.manifest.peerDependencies.clear(),f.manifest.scripts.clear());return await s.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n,persistProject:!1})}};Ve();Ve();Ve();Wt();var z1=et(Sa()),DOe=et(Od());Ul();var Z1=class extends ut{constructor(){super(...arguments);this.from=ge.Array("--from",{description:"An array of glob pattern idents or paths from which to base any recursion"});this.all=ge.Boolean("-A,--all",{description:"Run the command on all workspaces of a project"});this.recursive=ge.Boolean("-R,--recursive",{description:"Run the command on the current workspace and all of its recursive dependencies"});this.worktree=ge.Boolean("-W,--worktree",{description:"Run the command on all workspaces of the current worktree"});this.verbose=ge.Counter("-v,--verbose",{description:"Increase level of logging verbosity up to 2 times"});this.parallel=ge.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=ge.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=ge.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:mU([po(["unlimited"]),$2(dU(),[EU(),yU(1)])])});this.topological=ge.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=ge.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=ge.Array("--include",[],{description:"An array of glob pattern idents or paths; only matching workspaces will be traversed"});this.exclude=ge.Array("--exclude",[],{description:"An array of glob pattern idents or paths; matching workspaces won't be traversed"});this.publicOnly=ge.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=ge.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.dryRun=ge.Boolean("-n,--dry-run",{description:"Print the commands that would be run, without actually running them"});this.commandName=ge.String();this.args=ge.Proxy()}static{this.paths=[["workspaces","foreach"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `-W,--worktree` is set, Yarn will find workspaces to run the command on by looking at the current worktree.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `--dry-run` is set, Yarn will explain what it would do without actually doing anything.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. You can also use the `--no-private` flag to avoid running the command in private workspaces.\n\n The `-v,--verbose` flag can be passed up to twice: once to prefix output lines with the originating workspace's name, and again to include start/finish/timing log lines. Maximum verbosity is enabled by default in terminal environments.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish all packages","yarn workspaces foreach -A --no-private npm publish --tolerate-republish"],["Run the build script on all descendant packages","yarn workspaces foreach -A run build"],["Run the build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -Apt run build"],["Run the build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build"]]})}static{this.schema=[tB("all",Wf.Forbids,["from","recursive","since","worktree"],{missingIf:"undefined"}),IU(["all","recursive","since","worktree"],{missingIf:"undefined"})]}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Tt.find(r,this.context.cwd);if(!this.all&&!a)throw new ar(s.cwd,this.context.cwd);await s.restoreInstallState();let n=this.cli.process([this.commandName,...this.args]),c=n.path.length===1&&n.path[0]==="run"&&typeof n.scriptName<"u"?n.scriptName:null;if(n.path.length===0)throw new nt("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let f=Ce=>{this.dryRun&&this.context.stdout.write(`${Ce} +`)},p=()=>{let Ce=this.from.map(g=>z1.default.matcher(g));return s.workspaces.filter(g=>{let we=q.stringifyIdent(g.anchoredLocator),ye=g.relativeCwd;return Ce.some(fe=>fe(we)||fe(ye))})},h=[];if(this.since?(f("Option --since is set; selecting the changed workspaces as root for workspace selection"),h=Array.from(await Qa.fetchChangedWorkspaces({ref:this.since,project:s}))):this.from?(f("Option --from is set; selecting the specified workspaces"),h=[...p()]):this.worktree?(f("Option --worktree is set; selecting the current workspace"),h=[a]):this.recursive?(f("Option --recursive is set; selecting the current workspace"),h=[a]):this.all&&(f("Option --all is set; selecting all workspaces"),h=[...s.workspaces]),this.dryRun&&!this.all){for(let Ce of h)f(` +- ${Ce.relativeCwd} + ${q.prettyLocator(r,Ce.anchoredLocator)}`);h.length>0&&f("")}let E;if(this.recursive?this.since?(f("Option --recursive --since is set; recursively selecting all dependent workspaces"),E=new Set(h.map(Ce=>[...Ce.getRecursiveWorkspaceDependents()]).flat())):(f("Option --recursive is set; recursively selecting all transitive dependencies"),E=new Set(h.map(Ce=>[...Ce.getRecursiveWorkspaceDependencies()]).flat())):this.worktree?(f("Option --worktree is set; recursively selecting all nested workspaces"),E=new Set(h.map(Ce=>[...Ce.getRecursiveWorkspaceChildren()]).flat())):E=null,E!==null&&(h=[...new Set([...h,...E])],this.dryRun))for(let Ce of E)f(` +- ${Ce.relativeCwd} + ${q.prettyLocator(r,Ce.anchoredLocator)}`);let C=[],S=!1;if(c?.includes(":")){for(let Ce of s.workspaces)if(Ce.manifest.scripts.has(c)&&(S=!S,S===!1))break}for(let Ce of h){if(c&&!Ce.manifest.scripts.has(c)&&!S&&!(await In.getWorkspaceAccessibleBinaries(Ce)).has(c)){f(`Excluding ${Ce.relativeCwd} because it doesn't have a "${c}" script`);continue}if(!(c===r.env.npm_lifecycle_event&&Ce.cwd===a.cwd)){if(this.include.length>0&&!z1.default.isMatch(q.stringifyIdent(Ce.anchoredLocator),this.include)&&!z1.default.isMatch(Ce.relativeCwd,this.include)){f(`Excluding ${Ce.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&(z1.default.isMatch(q.stringifyIdent(Ce.anchoredLocator),this.exclude)||z1.default.isMatch(Ce.relativeCwd,this.exclude))){f(`Excluding ${Ce.relativeCwd} because it matches the --exclude filter`);continue}if(this.publicOnly&&Ce.manifest.private===!0){f(`Excluding ${Ce.relativeCwd} because it's a private workspace and --no-private was set`);continue}C.push(Ce)}}if(this.dryRun)return 0;let P=this.verbose??(this.context.stdout.isTTY?1/0:0),I=P>0,R=P>1,N=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(ps.availableParallelism()/2):1,U=N===1?!1:this.parallel,W=U?this.interlaced:!0,te=(0,DOe.default)(N),ie=new Map,Ae=new Set,ce=0,me=null,pe=!1,Be=await Ot.start({configuration:r,stdout:this.context.stdout,includePrefix:!1},async Ce=>{let g=async(we,{commandIndex:ye})=>{if(pe)return-1;!U&&R&&ye>1&&Ce.reportSeparator();let fe=p6t(we,{configuration:r,label:I,commandIndex:ye}),[se,X]=SOe(Ce,{prefix:fe,interlaced:W}),[De,Re]=SOe(Ce,{prefix:fe,interlaced:W});try{R&&Ce.reportInfo(null,`${fe?`${fe} `:""}Process started`);let dt=Date.now(),j=await this.cli.run([this.commandName,...this.args],{cwd:we.cwd,stdout:se,stderr:De})||0;se.end(),De.end(),await X,await Re;let rt=Date.now();if(R){let Fe=r.get("enableTimers")?`, completed in ${he.pretty(r,rt-dt,he.Type.DURATION)}`:"";Ce.reportInfo(null,`${fe?`${fe} `:""}Process exited (exit code ${j})${Fe}`)}return j===130&&(pe=!0,me=j),j}catch(dt){throw se.end(),De.end(),await X,await Re,dt}};for(let we of C)ie.set(we.anchoredLocator.locatorHash,we);for(;ie.size>0&&!Ce.hasErrors();){let we=[];for(let[X,De]of ie){if(Ae.has(De.anchoredDescriptor.descriptorHash))continue;let Re=!0;if(this.topological||this.topologicalDev){let dt=this.topologicalDev?new Map([...De.manifest.dependencies,...De.manifest.devDependencies]):De.manifest.dependencies;for(let j of dt.values()){let rt=s.tryWorkspaceByDescriptor(j);if(Re=rt===null||!ie.has(rt.anchoredLocator.locatorHash),!Re)break}}if(Re&&(Ae.add(De.anchoredDescriptor.descriptorHash),we.push(te(async()=>{let dt=await g(De,{commandIndex:++ce});return ie.delete(X),Ae.delete(De.anchoredDescriptor.descriptorHash),{workspace:De,exitCode:dt}})),!U))break}if(we.length===0){let X=Array.from(ie.values()).map(De=>q.prettyLocator(r,De.anchoredLocator)).join(", ");Ce.reportError(3,`Dependency cycle detected (${X})`);return}let ye=await Promise.all(we);ye.forEach(({workspace:X,exitCode:De})=>{De!==0&&Ce.reportError(0,`The command failed in workspace ${q.prettyLocator(r,X.anchoredLocator)} with exit code ${De}`)});let se=ye.map(X=>X.exitCode).find(X=>X!==0);(this.topological||this.topologicalDev)&&typeof se<"u"&&Ce.reportError(0,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return me!==null?me:Be.exitCode()}};function SOe(t,{prefix:e,interlaced:r}){let s=t.createStreamReporter(e),a=new je.DefaultStream;a.pipe(s,{end:!1}),a.on("finish",()=>{s.end()});let n=new Promise(f=>{s.on("finish",()=>{f(a.active)})});if(r)return[a,n];let c=new je.BufferStream;return c.pipe(a,{end:!1}),c.on("finish",()=>{a.end()}),[c,n]}function p6t(t,{configuration:e,commandIndex:r,label:s}){if(!s)return null;let n=`[${q.stringifyIdent(t.anchoredLocator)}]:`,c=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],f=c[r%c.length];return he.pretty(e,n,f)}var h6t={commands:[J1,Z1]},g6t=h6t;var tC=()=>({modules:new Map([["@yarnpkg/cli",$v],["@yarnpkg/core",Xv],["@yarnpkg/fslib",U2],["@yarnpkg/libzip",Iv],["@yarnpkg/parsers",K2],["@yarnpkg/shell",Dv],["clipanion",oB],["semver",d6t],["typanion",Ia],["@yarnpkg/plugin-essentials",Y5],["@yarnpkg/plugin-compat",Z5],["@yarnpkg/plugin-constraints",g9],["@yarnpkg/plugin-dlx",d9],["@yarnpkg/plugin-exec",E9],["@yarnpkg/plugin-file",C9],["@yarnpkg/plugin-git",W5],["@yarnpkg/plugin-github",v9],["@yarnpkg/plugin-http",S9],["@yarnpkg/plugin-init",D9],["@yarnpkg/plugin-interactive-tools",IY],["@yarnpkg/plugin-jsr",wY],["@yarnpkg/plugin-link",BY],["@yarnpkg/plugin-nm",oV],["@yarnpkg/plugin-npm",oz],["@yarnpkg/plugin-npm-cli",gz],["@yarnpkg/plugin-pack",$V],["@yarnpkg/plugin-patch",wz],["@yarnpkg/plugin-pnp",KY],["@yarnpkg/plugin-pnpm",Sz],["@yarnpkg/plugin-stage",Tz],["@yarnpkg/plugin-typescript",Rz],["@yarnpkg/plugin-version",Mz],["@yarnpkg/plugin-workspace-tools",_z]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"])});function xOe({cwd:t,pluginConfiguration:e}){let r=new wa({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:un??"<unknown>"});return Object.assign(r,{defaultContext:{...wa.defaultContext,cwd:t,plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr}})}function m6t(t){if(je.parseOptionalBoolean(process.env.YARN_IGNORE_NODE))return!0;let r=process.versions.node,s=">=18.12.0";if(Or.satisfiesWithPrereleases(r,s))return!0;let a=new nt(`This tool requires a Node version compatible with ${s} (got ${r}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);return wa.defaultContext.stdout.write(t.error(a)),!1}async function kOe({selfPath:t,pluginConfiguration:e}){return await ze.find(ue.toPortablePath(process.cwd()),e,{strict:!1,usePathCheck:t})}function y6t(t,e,{yarnPath:r}){if(!le.existsSync(r))return t.error(new Error(`The "yarn-path" option has been set, but the specified location doesn't exist (${r}).`)),1;process.on("SIGINT",()=>{});let s={stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1"}};try{(0,bOe.execFileSync)(process.execPath,[ue.fromPortablePath(r),...e],s)}catch(a){return a.status??1}return 0}function E6t(t,e){let r=null,s=e;return e.length>=2&&e[0]==="--cwd"?(r=ue.toPortablePath(e[1]),s=e.slice(2)):e.length>=1&&e[0].startsWith("--cwd=")?(r=ue.toPortablePath(e[0].slice(6)),s=e.slice(1)):e[0]==="add"&&e[e.length-2]==="--cwd"&&(r=ue.toPortablePath(e[e.length-1]),s=e.slice(0,e.length-2)),t.defaultContext.cwd=r!==null?K.resolve(r):K.cwd(),s}function I6t(t,{configuration:e}){if(!e.get("enableTelemetry")||POe.isCI||!process.stdout.isTTY)return;ze.telemetry=new XI(e,"puba9cdc10ec5790a2cf4969dd413a47270");let s=/^@yarnpkg\/plugin-(.*)$/;for(let a of e.plugins.keys())$I.has(a.match(s)?.[1]??"")&&ze.telemetry?.reportPluginName(a);t.binaryVersion&&ze.telemetry.reportVersion(t.binaryVersion)}function QOe(t,{configuration:e}){for(let r of e.plugins.values())for(let s of r.commands||[])t.register(s)}async function C6t(t,e,{selfPath:r,pluginConfiguration:s}){if(!m6t(t))return 1;let a=await kOe({selfPath:r,pluginConfiguration:s}),n=a.get("yarnPath"),c=a.get("ignorePath");if(n&&!c)return y6t(t,e,{yarnPath:n});delete process.env.YARN_IGNORE_PATH;let f=E6t(t,e);I6t(t,{configuration:a}),QOe(t,{configuration:a});let p=t.process(f,t.defaultContext);return p.help||ze.telemetry?.reportCommandName(p.path.join(" ")),await t.run(p,t.defaultContext)}async function XCe({cwd:t=K.cwd(),pluginConfiguration:e=tC()}={}){let r=xOe({cwd:t,pluginConfiguration:e}),s=await kOe({pluginConfiguration:e,selfPath:null});return QOe(r,{configuration:s}),r}async function KR(t,{cwd:e=K.cwd(),selfPath:r,pluginConfiguration:s}){let a=xOe({cwd:e,pluginConfiguration:s});function n(){wa.defaultContext.stdout.write(`ERROR: Yarn is terminating due to an unexpected empty event loop. +Please report this issue at https://github.com/yarnpkg/berry/issues.`)}process.once("beforeExit",n);try{process.exitCode=42,process.exitCode=await C6t(a,t,{selfPath:r,pluginConfiguration:s})}catch(c){wa.defaultContext.stdout.write(a.error(c)),process.exitCode=1}finally{process.off("beforeExit",n),await le.rmtempPromise()}}KR(process.argv.slice(2),{cwd:K.cwd(),selfPath:ue.toPortablePath(ue.resolve(process.argv[1])),pluginConfiguration:tC()});})(); +/** + @license + Copyright (c) 2015, Rebecca Turner + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + */ +/** + @license + Copyright Node.js contributors. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. +*/ +/** + @license + The MIT License (MIT) + + Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ +/** + @license + Copyright Joyent, Inc. and other Node contributors. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +/*! Bundled license information: + +is-number/index.js: + (*! + * is-number <https://github.com/jonschlinkert/is-number> + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + *) + +to-regex-range/index.js: + (*! + * to-regex-range <https://github.com/micromatch/to-regex-range> + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + *) + +fill-range/index.js: + (*! + * fill-range <https://github.com/jonschlinkert/fill-range> + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + *) + +is-extglob/index.js: + (*! + * is-extglob <https://github.com/jonschlinkert/is-extglob> + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + *) + +is-glob/index.js: + (*! + * is-glob <https://github.com/jonschlinkert/is-glob> + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + *) + +queue-microtask/index.js: + (*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *) + +run-parallel/index.js: + (*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *) + +git-url-parse/lib/index.js: + (*! + * buildToken + * Builds OAuth token prefix (helper function) + * + * @name buildToken + * @function + * @param {GitUrl} obj The parsed Git url object. + * @return {String} token prefix + *) + +object-assign/index.js: + (* + object-assign + (c) Sindre Sorhus + @license MIT + *) + +react/cjs/react.production.min.js: + (** @license React v17.0.2 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +scheduler/cjs/scheduler.production.min.js: + (** @license React v0.20.2 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +react-reconciler/cjs/react-reconciler.production.min.js: + (** @license React v0.26.2 + * react-reconciler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +is-windows/index.js: + (*! + * is-windows <https://github.com/jonschlinkert/is-windows> + * + * Copyright © 2015-2018, Jon Schlinkert. + * Released under the MIT License. + *) +*/ From e3a18c2b2e47e51181f2f43c770924f3e0813d82 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Thu, 24 Jul 2025 09:41:50 -0400 Subject: [PATCH 47/74] feat: add result endpoints to MCP tools (#469) * feat: add result endpoints to MCP tools * fix: yarn build * fix: revert feature tools changes --- src/api/results.ts | 40 +++++++ src/mcp/server.ts | 6 + src/mcp/tools/commonSchemas.ts | 69 ++++++++++++ src/mcp/tools/resultsTools.ts | 194 +++++++++++++++++++++++++++++++++ src/mcp/types.ts | 25 +++++ 5 files changed, 334 insertions(+) create mode 100644 src/api/results.ts create mode 100644 src/mcp/tools/resultsTools.ts diff --git a/src/api/results.ts b/src/api/results.ts new file mode 100644 index 000000000..e539fabcd --- /dev/null +++ b/src/api/results.ts @@ -0,0 +1,40 @@ +import apiClient from './apiClient' +import { buildHeaders } from './common' +import { + FeatureTotalEvaluationsQuerySchema, + ProjectTotalEvaluationsQuerySchema, +} from '../mcp/types' +import { z } from 'zod' + +export const fetchFeatureTotalEvaluations = async ( + token: string, + project_id: string, + feature_key: string, + queries: z.infer<typeof FeatureTotalEvaluationsQuerySchema> = {}, +) => { + return apiClient.get( + '/v1/projects/:project/features/:feature/results/total-evaluations', + { + headers: buildHeaders(token), + params: { + project: project_id, + feature: feature_key, + }, + queries, + }, + ) +} + +export const fetchProjectTotalEvaluations = async ( + token: string, + project_id: string, + queries: z.infer<typeof ProjectTotalEvaluationsQuerySchema> = {}, +) => { + return apiClient.get('/v1/projects/:project/results/total-evaluations', { + headers: buildHeaders(token), + params: { + project: project_id, + }, + queries, + }) +} diff --git a/src/mcp/server.ts b/src/mcp/server.ts index d18062f77..15a8982fe 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -27,6 +27,10 @@ import { selfTargetingToolDefinitions, selfTargetingToolHandlers, } from './tools/selfTargetingTools' +import { + resultsToolDefinitions, + resultsToolHandlers, +} from './tools/resultsTools' // Environment variable to control output schema inclusion const ENABLE_OUTPUT_SCHEMAS = process.env.ENABLE_OUTPUT_SCHEMAS === 'true' @@ -62,6 +66,7 @@ const allToolDefinitions: Tool[] = processToolDefinitions([ ...projectToolDefinitions, ...variableToolDefinitions, ...selfTargetingToolDefinitions, + ...resultsToolDefinitions, ]) // Combine all tool handlers @@ -71,6 +76,7 @@ const allToolHandlers: Record<string, ToolHandler> = { ...projectToolHandlers, ...variableToolHandlers, ...selfTargetingToolHandlers, + ...resultsToolHandlers, } export class DevCycleMCPServer { diff --git a/src/mcp/tools/commonSchemas.ts b/src/mcp/tools/commonSchemas.ts index 59d5c1ac7..af52ac923 100644 --- a/src/mcp/tools/commonSchemas.ts +++ b/src/mcp/tools/commonSchemas.ts @@ -346,3 +346,72 @@ export const TARGET_AUDIENCE_PROPERTY = { }, required: ['filters'] as const, } + +// ============================================================================= +// RESULTS AND ANALYTICS PROPERTIES +// ============================================================================= + +export const EVALUATION_QUERY_PROPERTIES = { + startDate: { + type: 'number' as const, + description: 'Start date as Unix timestamp (milliseconds since epoch)', + }, + endDate: { + type: 'number' as const, + description: 'End date as Unix timestamp (milliseconds since epoch)', + }, + platform: { + type: 'string' as const, + description: 'Platform filter for evaluation results', + }, + variable: { + type: 'string' as const, + description: 'Variable key filter for evaluation results', + }, + environment: { + type: 'string' as const, + description: 'Environment key to filter results', + }, + period: { + type: 'string' as const, + enum: ['day', 'hour', 'month'] as const, + description: 'Time aggregation period for results', + }, + sdkType: { + type: 'string' as const, + enum: ['client', 'server', 'mobile', 'api'] as const, + description: 'Filter by SDK type', + }, +} + +export const EVALUATION_DATA_POINT_SCHEMA = { + type: 'object' as const, + properties: { + date: { + type: 'string' as const, + format: 'date-time' as const, + description: 'ISO timestamp for this data point', + }, + values: { + type: 'object' as const, + description: 'Evaluation values for this time period', + }, + }, + required: ['date', 'values'] as const, +} + +export const PROJECT_DATA_POINT_SCHEMA = { + type: 'object' as const, + properties: { + date: { + type: 'string' as const, + format: 'date-time' as const, + description: 'ISO timestamp for this data point', + }, + value: { + type: 'number' as const, + description: 'Total evaluations in this time period', + }, + }, + required: ['date', 'value'] as const, +} diff --git a/src/mcp/tools/resultsTools.ts b/src/mcp/tools/resultsTools.ts new file mode 100644 index 000000000..e0c44c861 --- /dev/null +++ b/src/mcp/tools/resultsTools.ts @@ -0,0 +1,194 @@ +import { Tool } from '@modelcontextprotocol/sdk/types.js' +import { DevCycleApiClient, handleZodiosValidationErrors } from '../utils/api' +import { + fetchFeatureTotalEvaluations, + fetchProjectTotalEvaluations, +} from '../../api/results' +import { + GetFeatureTotalEvaluationsArgsSchema, + GetProjectTotalEvaluationsArgsSchema, + FeatureTotalEvaluationsQuerySchema, + ProjectTotalEvaluationsQuerySchema, +} from '../types' +import { ToolHandler } from '../server' +import { + DASHBOARD_LINK_PROPERTY, + FEATURE_KEY_PROPERTY, + EVALUATION_QUERY_PROPERTIES, + EVALUATION_DATA_POINT_SCHEMA, + PROJECT_DATA_POINT_SCHEMA, +} from './commonSchemas' + +// Helper functions to generate dashboard links +const generateFeatureAnalyticsDashboardLink = ( + orgId: string, + projectKey: string, + featureKey: string, +): string => { + return `https://app.devcycle.com/o/${orgId}/p/${projectKey}/features/${featureKey}/analytics` +} + +const generateProjectAnalyticsDashboardLink = ( + orgId: string, + projectKey: string, +): string => { + return `https://app.devcycle.com/o/${orgId}/p/${projectKey}/analytics` +} + +// ============================================================================= +// INPUT SCHEMAS +// ============================================================================= + +const FEATURE_EVALUATION_QUERY_PROPERTIES = { + featureKey: FEATURE_KEY_PROPERTY, + ...EVALUATION_QUERY_PROPERTIES, +} + +const PROJECT_EVALUATION_QUERY_PROPERTIES = EVALUATION_QUERY_PROPERTIES + +// ============================================================================= +// OUTPUT SCHEMAS +// ============================================================================= + +const FEATURE_EVALUATIONS_OUTPUT_SCHEMA = { + type: 'object' as const, + properties: { + result: { + type: 'object' as const, + description: 'Feature evaluation data aggregated by time period', + properties: { + evaluations: { + type: 'array' as const, + description: 'Array of evaluation data points', + items: EVALUATION_DATA_POINT_SCHEMA, + }, + cached: { + type: 'boolean' as const, + description: 'Whether this result came from cache', + }, + updatedAt: { + type: 'string' as const, + format: 'date-time' as const, + description: 'When the data was last updated', + }, + }, + required: ['evaluations', 'cached', 'updatedAt'], + }, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], +} + +const PROJECT_EVALUATIONS_OUTPUT_SCHEMA = { + type: 'object' as const, + properties: { + result: { + type: 'object' as const, + description: 'Project evaluation data aggregated by time period', + properties: { + evaluations: { + type: 'array' as const, + description: 'Array of evaluation data points', + items: PROJECT_DATA_POINT_SCHEMA, + }, + cached: { + type: 'boolean' as const, + description: 'Whether this result came from cache', + }, + updatedAt: { + type: 'string' as const, + format: 'date-time' as const, + description: 'When the data was last updated', + }, + }, + required: ['evaluations', 'cached', 'updatedAt'], + }, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], +} + +// ============================================================================= +// TOOL DEFINITIONS +// ============================================================================= + +export const resultsToolDefinitions: Tool[] = [ + { + name: 'get_feature_total_evaluations', + description: + 'Get total variable evaluations per time period for a specific feature. Include dashboard link in the response.', + inputSchema: { + type: 'object', + properties: FEATURE_EVALUATION_QUERY_PROPERTIES, + required: ['featureKey'], + }, + outputSchema: FEATURE_EVALUATIONS_OUTPUT_SCHEMA, + }, + { + name: 'get_project_total_evaluations', + description: + 'Get total variable evaluations per time period for the entire project. Include dashboard link in the response.', + inputSchema: { + type: 'object', + properties: PROJECT_EVALUATION_QUERY_PROPERTIES, + }, + outputSchema: PROJECT_EVALUATIONS_OUTPUT_SCHEMA, + }, +] + +export const resultsToolHandlers: Record<string, ToolHandler> = { + get_feature_total_evaluations: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = GetFeatureTotalEvaluationsArgsSchema.parse(args) + + return await apiClient.executeWithDashboardLink( + 'getFeatureTotalEvaluations', + validatedArgs, + async (authToken, projectKey) => { + const { featureKey, ...apiQueries } = validatedArgs + + return await handleZodiosValidationErrors( + () => + fetchFeatureTotalEvaluations( + authToken, + projectKey, + featureKey, + apiQueries, + ), + 'fetchFeatureTotalEvaluations', + ) + }, + (orgId, projectKey) => + generateFeatureAnalyticsDashboardLink( + orgId, + projectKey, + validatedArgs.featureKey, + ), + ) + }, + get_project_total_evaluations: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = GetProjectTotalEvaluationsArgsSchema.parse(args) + + return await apiClient.executeWithDashboardLink( + 'getProjectTotalEvaluations', + validatedArgs, + async (authToken, projectKey) => { + return await handleZodiosValidationErrors( + () => + fetchProjectTotalEvaluations( + authToken, + projectKey, + validatedArgs, + ), + 'fetchProjectTotalEvaluations', + ) + }, + generateProjectAnalyticsDashboardLink, + ) + }, +} diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 696beb876..646dc7a05 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -187,3 +187,28 @@ export const GetFeatureAuditLogHistoryArgsSchema = z.object({ feature_key: z.string(), days_back: z.number().min(1).max(365).default(30).optional(), }) + +// Base evaluation query schema (matches API camelCase naming) +const BaseEvaluationQuerySchema = z.object({ + startDate: z.number().optional(), + endDate: z.number().optional(), + environment: z.string().optional(), + period: z.enum(['day', 'hour', 'month']).optional(), + sdkType: z.enum(['client', 'server', 'mobile', 'api']).optional(), +}) + +// MCP argument schemas (using camelCase to match API) +export const GetFeatureTotalEvaluationsArgsSchema = + BaseEvaluationQuerySchema.extend({ + featureKey: z.string(), + platform: z.string().optional(), + variable: z.string().optional(), + }) + +export const GetProjectTotalEvaluationsArgsSchema = BaseEvaluationQuerySchema + +// API query schemas (same as MCP args since we use camelCase throughout) +export const FeatureTotalEvaluationsQuerySchema = + GetFeatureTotalEvaluationsArgsSchema.omit({ featureKey: true }) +export const ProjectTotalEvaluationsQuerySchema = + GetProjectTotalEvaluationsArgsSchema From 72ed1ecc13e767a61450944a82efdcb4f4af51c6 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Thu, 24 Jul 2025 15:41:53 -0400 Subject: [PATCH 48/74] feat: add custom properties tools (#470) * feat: add custom properties tools * fix: add missing custom properties type schemas --- src/api/customProperties.ts | 52 ++++ src/mcp/tools/commonSchemas.ts | 6 + src/mcp/tools/customPropertiesTools.ts | 381 +++++++++++++++++++++++++ src/mcp/types.ts | 33 +++ 4 files changed, 472 insertions(+) create mode 100644 src/mcp/tools/customPropertiesTools.ts diff --git a/src/api/customProperties.ts b/src/api/customProperties.ts index 9d7c17653..cf3c22332 100644 --- a/src/api/customProperties.ts +++ b/src/api/customProperties.ts @@ -14,3 +14,55 @@ export const fetchCustomProperties = async ( }, }) } + +export const createCustomProperty = async ( + token: string, + project_id: string, + data: { + name: string + key: string + type: 'String' | 'Boolean' | 'Number' + propertyKey: string + }, +) => { + return apiClient.post(`${BASE_URL}`, data, { + headers: buildHeaders(token), + params: { + project: project_id, + }, + }) +} + +export const updateCustomProperty = async ( + token: string, + project_id: string, + key: string, + data: { + name?: string + key?: string + propertyKey?: string + type?: 'String' | 'Boolean' | 'Number' + }, +) => { + return apiClient.patch(`${BASE_URL}/:key`, data, { + headers: buildHeaders(token), + params: { + project: project_id, + key, + }, + }) +} + +export const deleteCustomProperty = async ( + token: string, + project_id: string, + key: string, +) => { + return apiClient.delete(`${BASE_URL}/:key`, undefined, { + headers: buildHeaders(token), + params: { + project: project_id, + key, + }, + }) +} diff --git a/src/mcp/tools/commonSchemas.ts b/src/mcp/tools/commonSchemas.ts index af52ac923..9f86d7622 100644 --- a/src/mcp/tools/commonSchemas.ts +++ b/src/mcp/tools/commonSchemas.ts @@ -56,6 +56,12 @@ export const PROJECT_KEY_PROPERTY = { 'The project key (unique, immutable, max 100 characters, pattern: ^[a-z0-9-_.]+$)', } +export const CUSTOM_PROPERTY_KEY_PROPERTY = { + type: 'string' as const, + description: + 'The custom property key (unique, immutable, max 100 characters, pattern: ^[a-z0-9-_.]+$)', +} + // Filter type definitions based on DevCycle API swagger schemas export const ALL_FILTER_SCHEMA = { diff --git a/src/mcp/tools/customPropertiesTools.ts b/src/mcp/tools/customPropertiesTools.ts new file mode 100644 index 000000000..c90786d7d --- /dev/null +++ b/src/mcp/tools/customPropertiesTools.ts @@ -0,0 +1,381 @@ +import { Tool } from '@modelcontextprotocol/sdk/types.js' +import { DevCycleApiClient, handleZodiosValidationErrors } from '../utils/api' +import { + fetchCustomProperties, + createCustomProperty, + updateCustomProperty, + deleteCustomProperty, +} from '../../api/customProperties' +import { + ListCustomPropertiesArgsSchema, + UpsertCustomPropertyArgsSchema, + UpdateCustomPropertyArgsSchema, + DeleteCustomPropertyArgsSchema, +} from '../types' +import { ToolHandler } from '../server' +import { + DASHBOARD_LINK_PROPERTY, + MESSAGE_RESPONSE_SCHEMA, + CUSTOM_PROPERTY_KEY_PROPERTY, +} from './commonSchemas' + +// Helper function to generate custom properties dashboard links +const generateCustomPropertiesDashboardLink = ( + orgId: string, + projectKey: string, +): string => { + return `https://app.devcycle.com/o/${orgId}/p/${projectKey}/custom-properties` +} + +// ============================================================================= +// INPUT SCHEMAS +// ============================================================================= + +const CUSTOM_PROPERTY_PAGINATION_PROPERTIES = { + page: { + type: 'number' as const, + description: 'Page number', + minimum: 1, + default: 1, + }, + perPage: { + type: 'number' as const, + description: 'Items per page', + minimum: 1, + maximum: 1000, + default: 100, + }, + sortBy: { + type: 'string' as const, + description: 'Sort field', + enum: [ + 'createdAt', + 'updatedAt', + 'name', + 'key', + 'createdBy', + 'propertyKey', + ], + default: 'createdAt', + }, + sortOrder: { + type: 'string' as const, + description: 'Sort order', + enum: ['asc', 'desc'], + default: 'desc', + }, + search: { + type: 'string' as const, + description: 'Search query to filter custom properties', + minLength: 3, + }, + createdBy: { + type: 'string' as const, + description: 'Filter by creator', + }, +} + +const CUSTOM_PROPERTY_TYPE_PROPERTY = { + type: 'string' as const, + enum: ['String', 'Boolean', 'Number'] as const, + description: 'Custom property type', +} + +const CUSTOM_PROPERTY_SCHEMA_PROPERTY = { + type: 'object' as const, + description: 'Schema definition for the custom property', + properties: { + schemaType: { + type: 'string' as const, + enum: ['enum'], + description: 'Schema type', + }, + required: { + type: 'boolean' as const, + description: 'Whether the property is required', + }, + enumSchema: { + type: 'object' as const, + description: 'Enum schema configuration', + properties: { + allowedValues: { + type: 'array' as const, + description: 'Array of allowed values', + items: { + type: 'object' as const, + properties: { + label: { + type: 'string' as const, + description: 'Display label for the value', + }, + value: { + description: + 'The actual value (string or number)', + }, + }, + required: ['label', 'value'], + }, + }, + allowAdditionalValues: { + type: 'boolean' as const, + description: + 'Whether additional values are allowed beyond the enum', + }, + }, + }, + }, +} + +const CUSTOM_PROPERTY_COMMON_PROPERTIES = { + key: CUSTOM_PROPERTY_KEY_PROPERTY, + name: { + type: 'string' as const, + description: 'Custom property name (max 100 characters)', + maxLength: 100, + }, + type: CUSTOM_PROPERTY_TYPE_PROPERTY, + propertyKey: { + type: 'string' as const, + description: + 'Property key used to identify the custom property in user data', + }, + schema: CUSTOM_PROPERTY_SCHEMA_PROPERTY, +} + +// ============================================================================= +// OUTPUT SCHEMAS +// ============================================================================= + +const CUSTOM_PROPERTY_OBJECT_SCHEMA = { + type: 'object' as const, + description: 'A DevCycle custom property configuration', + properties: { + _id: { + type: 'string' as const, + description: 'Unique identifier for the custom property', + }, + key: CUSTOM_PROPERTY_KEY_PROPERTY, + name: { + type: 'string' as const, + description: 'Display name of the custom property', + }, + type: { + type: 'string' as const, + description: 'Custom property type (String, Boolean, Number)', + }, + propertyKey: { + type: 'string' as const, + description: 'Property key used in user data', + }, + schema: CUSTOM_PROPERTY_SCHEMA_PROPERTY, + _project: { + type: 'string' as const, + description: 'Associated project ID', + }, + _createdBy: { + type: 'string' as const, + description: 'User who created the custom property', + }, + createdAt: { + type: 'string' as const, + description: 'ISO timestamp when the custom property was created', + }, + updatedAt: { + type: 'string' as const, + description: + 'ISO timestamp when the custom property was last updated', + }, + }, + required: [ + '_id', + 'key', + 'name', + 'type', + 'propertyKey', + '_project', + '_createdBy', + 'createdAt', + 'updatedAt', + ], +} + +// ============================================================================= +// TOOL DEFINITIONS +// ============================================================================= + +export const customPropertiesToolDefinitions: Tool[] = [ + { + name: 'list_custom_properties', + description: + 'List custom properties in the current project. Include dashboard link in the response.', + inputSchema: { + type: 'object', + properties: CUSTOM_PROPERTY_PAGINATION_PROPERTIES, + }, + outputSchema: { + type: 'object' as const, + properties: { + result: { + type: 'array' as const, + description: + 'Array of custom property objects in the project', + items: CUSTOM_PROPERTY_OBJECT_SCHEMA, + }, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, + }, + { + name: 'create_custom_property', + description: + 'Create a new custom property. Include dashboard link in the response.', + inputSchema: { + type: 'object', + properties: CUSTOM_PROPERTY_COMMON_PROPERTIES, + required: ['key', 'name', 'type', 'propertyKey'], + }, + outputSchema: { + type: 'object' as const, + properties: { + result: CUSTOM_PROPERTY_OBJECT_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, + }, + { + name: 'update_custom_property', + description: + 'Update an existing custom property. ⚠️ IMPORTANT: Custom property changes can affect feature flags in production environments. Always confirm with the user before updating custom properties for features that are active in production. Include dashboard link in the response.', + inputSchema: { + type: 'object', + properties: CUSTOM_PROPERTY_COMMON_PROPERTIES, + required: ['key'], + }, + outputSchema: { + type: 'object' as const, + properties: { + result: CUSTOM_PROPERTY_OBJECT_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, + }, + { + name: 'delete_custom_property', + description: + 'Delete a custom property. ⚠️ CRITICAL: Deleting a custom property will remove it from ALL environments including production. ALWAYS confirm with the user before deleting any custom property. Include dashboard link in the response.', + inputSchema: { + type: 'object', + properties: { + key: CUSTOM_PROPERTY_KEY_PROPERTY, + }, + required: ['key'], + }, + outputSchema: { + type: 'object' as const, + properties: { + result: MESSAGE_RESPONSE_SCHEMA, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, + }, +] + +export const customPropertiesToolHandlers: Record<string, ToolHandler> = { + list_custom_properties: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = ListCustomPropertiesArgsSchema.parse(args) + + return await apiClient.executeWithDashboardLink( + 'listCustomProperties', + validatedArgs, + async (authToken, projectKey) => { + return await handleZodiosValidationErrors( + () => fetchCustomProperties(authToken, projectKey), + 'fetchCustomProperties', + ) + }, + generateCustomPropertiesDashboardLink, + ) + }, + create_custom_property: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = UpsertCustomPropertyArgsSchema.parse(args) + + return await apiClient.executeWithDashboardLink( + 'createCustomProperty', + validatedArgs, + async (authToken, projectKey) => { + return await handleZodiosValidationErrors( + () => + createCustomProperty( + authToken, + projectKey, + validatedArgs, + ), + 'createCustomProperty', + ) + }, + generateCustomPropertiesDashboardLink, + ) + }, + update_custom_property: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = UpdateCustomPropertyArgsSchema.parse(args) + + return await apiClient.executeWithDashboardLink( + 'updateCustomProperty', + validatedArgs, + async (authToken, projectKey) => { + const { key, ...updateData } = validatedArgs + + return await handleZodiosValidationErrors( + () => + updateCustomProperty( + authToken, + projectKey, + key, + updateData, + ), + 'updateCustomProperty', + ) + }, + generateCustomPropertiesDashboardLink, + ) + }, + delete_custom_property: async ( + args: unknown, + apiClient: DevCycleApiClient, + ) => { + const validatedArgs = DeleteCustomPropertyArgsSchema.parse(args) + + return await apiClient.executeWithDashboardLink( + 'deleteCustomProperty', + validatedArgs, + async (authToken, projectKey) => { + await handleZodiosValidationErrors( + () => + deleteCustomProperty( + authToken, + projectKey, + validatedArgs.key, + ), + 'deleteCustomProperty', + ) + return { + message: `Custom property '${validatedArgs.key}' deleted successfully`, + } + }, + generateCustomPropertiesDashboardLink, + ) + }, +} diff --git a/src/mcp/types.ts b/src/mcp/types.ts index 646dc7a05..45db84e4a 100644 --- a/src/mcp/types.ts +++ b/src/mcp/types.ts @@ -212,3 +212,36 @@ export const FeatureTotalEvaluationsQuerySchema = GetFeatureTotalEvaluationsArgsSchema.omit({ featureKey: true }) export const ProjectTotalEvaluationsQuerySchema = GetProjectTotalEvaluationsArgsSchema + +export const ListCustomPropertiesArgsSchema = z.object({ + page: z.number().min(1).default(1).optional(), + perPage: z.number().min(1).max(1000).default(100).optional(), + sortBy: z + .enum([ + 'createdAt', + 'updatedAt', + 'name', + 'key', + 'createdBy', + 'propertyKey', + ]) + .default('createdAt') + .optional(), + sortOrder: z.enum(['asc', 'desc']).default('desc').optional(), + search: z.string().min(3).optional(), + createdBy: z.string().optional(), +}) + +export const UpsertCustomPropertyArgsSchema = schemas.CreateCustomPropertyDto + +export const UpdateCustomPropertyArgsSchema = + schemas.UpdateCustomPropertyDto.extend({ + key: z + .string() + .max(100) + .regex(/^[a-z0-9-_.]+$/), // Make key required for identifying the custom property + }) + +export const DeleteCustomPropertyArgsSchema = z.object({ + key: z.string(), +}) From e82240630bee44a4409a29005b198ea589d99517 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Fri, 25 Jul 2025 10:50:11 -0400 Subject: [PATCH 49/74] feat: add destructive hints, titles, and readonly hints to mcp tools (#471) * feat: add destructive hints, titles, and readonly hints to mcp tools * fix: update tool descriptions --- src/mcp/tools/customPropertiesTools.ts | 15 ++++++++ src/mcp/tools/environmentTools.ts | 14 +++++++ src/mcp/tools/featureTools.ts | 52 +++++++++++++++++++++++++- src/mcp/tools/projectTools.ts | 14 +++++++ src/mcp/tools/resultsTools.ts | 8 ++++ src/mcp/tools/selfTargetingTools.ts | 21 +++++++++++ src/mcp/tools/variableTools.ts | 15 ++++++++ 7 files changed, 138 insertions(+), 1 deletion(-) diff --git a/src/mcp/tools/customPropertiesTools.ts b/src/mcp/tools/customPropertiesTools.ts index c90786d7d..84dea71ff 100644 --- a/src/mcp/tools/customPropertiesTools.ts +++ b/src/mcp/tools/customPropertiesTools.ts @@ -208,6 +208,10 @@ export const customPropertiesToolDefinitions: Tool[] = [ name: 'list_custom_properties', description: 'List custom properties in the current project. Include dashboard link in the response.', + annotations: { + title: 'List Custom Properties', + readOnlyHint: true, + }, inputSchema: { type: 'object', properties: CUSTOM_PROPERTY_PAGINATION_PROPERTIES, @@ -230,6 +234,9 @@ export const customPropertiesToolDefinitions: Tool[] = [ name: 'create_custom_property', description: 'Create a new custom property. Include dashboard link in the response.', + annotations: { + title: 'Create Custom Property', + }, inputSchema: { type: 'object', properties: CUSTOM_PROPERTY_COMMON_PROPERTIES, @@ -248,6 +255,10 @@ export const customPropertiesToolDefinitions: Tool[] = [ name: 'update_custom_property', description: 'Update an existing custom property. ⚠️ IMPORTANT: Custom property changes can affect feature flags in production environments. Always confirm with the user before updating custom properties for features that are active in production. Include dashboard link in the response.', + annotations: { + title: 'Update Custom Property', + destructiveHint: true, + }, inputSchema: { type: 'object', properties: CUSTOM_PROPERTY_COMMON_PROPERTIES, @@ -266,6 +277,10 @@ export const customPropertiesToolDefinitions: Tool[] = [ name: 'delete_custom_property', description: 'Delete a custom property. ⚠️ CRITICAL: Deleting a custom property will remove it from ALL environments including production. ALWAYS confirm with the user before deleting any custom property. Include dashboard link in the response.', + annotations: { + title: 'Delete Custom Property', + destructiveHint: true, + }, inputSchema: { type: 'object', properties: { diff --git a/src/mcp/tools/environmentTools.ts b/src/mcp/tools/environmentTools.ts index d588af994..57f360e7f 100644 --- a/src/mcp/tools/environmentTools.ts +++ b/src/mcp/tools/environmentTools.ts @@ -182,6 +182,10 @@ export const environmentToolDefinitions: Tool[] = [ name: 'list_environments', description: 'List environments in the current project. Include dashboard link in the response.', + annotations: { + title: 'List Environments', + readOnlyHint: true, + }, inputSchema: { type: 'object', properties: ENVIRONMENT_PAGINATION_PROPERTIES, @@ -205,6 +209,10 @@ export const environmentToolDefinitions: Tool[] = [ name: 'get_sdk_keys', description: 'Get SDK keys for an environment. Include dashboard link in the response.', + annotations: { + title: 'Get SDK Keys', + readOnlyHint: true, + }, inputSchema: { type: 'object', properties: { @@ -236,6 +244,9 @@ export const environmentToolDefinitions: Tool[] = [ name: 'create_environment', description: 'Create a new environment. Include dashboard link in the response.', + annotations: { + title: 'Create Environment', + }, inputSchema: { type: 'object', properties: ENVIRONMENT_COMMON_PROPERTIES, @@ -247,6 +258,9 @@ export const environmentToolDefinitions: Tool[] = [ name: 'update_environment', description: 'Update an existing environment. Include dashboard link in the response.', + annotations: { + title: 'Update Environment', + }, inputSchema: { type: 'object', properties: ENVIRONMENT_COMMON_PROPERTIES, diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index 1ca469dbc..2647ccc1d 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -290,6 +290,10 @@ export const featureToolDefinitions: Tool[] = [ name: 'list_features', description: 'List features in the current project. Include dashboard link in the response.', + annotations: { + title: 'List Feature Flags', + readOnlyHint: true, + }, inputSchema: { type: 'object', properties: FEATURE_PAGINATION_PROPERTIES, @@ -311,6 +315,9 @@ export const featureToolDefinitions: Tool[] = [ name: 'create_feature', description: 'Create a new feature flag. Include dashboard link in the response.', + annotations: { + title: 'Create Feature Flag', + }, inputSchema: { type: 'object', properties: { @@ -368,6 +375,10 @@ export const featureToolDefinitions: Tool[] = [ name: 'update_feature', description: 'Update an existing feature flag. ⚠️ IMPORTANT: Changes to feature flags may affect production environments. Always confirm with the user before making changes to features that are active in production. Include dashboard link in the response.', + annotations: { + title: 'Update Feature Flag', + destructiveHint: true, + }, inputSchema: { type: 'object', properties: { @@ -411,6 +422,10 @@ export const featureToolDefinitions: Tool[] = [ name: 'update_feature_status', description: 'Update the status of an existing feature flag. ⚠️ IMPORTANT: Changes to feature status may affect production environments. Always confirm with the user before making changes to features that are active in production. Include dashboard link in the response.', + annotations: { + title: 'Update Feature Flag Status', + destructiveHint: true, + }, inputSchema: { type: 'object', properties: { @@ -437,6 +452,10 @@ export const featureToolDefinitions: Tool[] = [ name: 'delete_feature', description: 'Delete an existing feature flag. ⚠️ CRITICAL: Deleting a feature flag will remove it from ALL environments including production. ALWAYS confirm with the user before deleting any feature flag. Include dashboard link in the response.', + annotations: { + title: 'Delete Feature Flag', + destructiveHint: true, + }, inputSchema: { type: 'object', properties: { @@ -460,6 +479,10 @@ export const featureToolDefinitions: Tool[] = [ name: 'fetch_feature_variations', description: 'Get a list of variations for a feature. Include dashboard link in the response.', + annotations: { + title: 'Get Feature Variations', + readOnlyHint: true, + }, inputSchema: { type: 'object', properties: { @@ -484,6 +507,9 @@ export const featureToolDefinitions: Tool[] = [ name: 'create_feature_variation', description: 'Create a new variation within a feature. Include dashboard link in the response.', + annotations: { + title: 'Create Feature Variation', + }, inputSchema: { type: 'object', properties: { @@ -511,7 +537,11 @@ export const featureToolDefinitions: Tool[] = [ { name: 'update_feature_variation', description: - 'Update an existing variation by key. Include dashboard link in the response.', + 'Update an existing variation by key. ⚠️ WARNING: Updating a feature variation may affect production environments. Include dashboard link in the response.', + annotations: { + title: 'Update Feature Variation', + destructiveHint: true, + }, inputSchema: { type: 'object', properties: { @@ -540,6 +570,10 @@ export const featureToolDefinitions: Tool[] = [ name: 'enable_feature_targeting', description: 'Enable targeting for a feature in an environment. ⚠️ IMPORTANT: Always confirm with the user before making changes to production environments (environments where type = "production"). Include dashboard link in the response.', + annotations: { + title: 'Enable Feature Targeting', + destructiveHint: true, + }, inputSchema: { type: 'object', properties: { @@ -561,6 +595,10 @@ export const featureToolDefinitions: Tool[] = [ name: 'disable_feature_targeting', description: 'Disable targeting for a feature in an environment. ⚠️ IMPORTANT: Always confirm with the user before making changes to production environments (environments where type = "production"). Include dashboard link in the response.', + annotations: { + title: 'Disable Feature Targeting', + destructiveHint: true, + }, inputSchema: { type: 'object', properties: { @@ -582,6 +620,10 @@ export const featureToolDefinitions: Tool[] = [ name: 'list_feature_targeting', description: 'List feature configurations (targeting rules) for a feature. Include dashboard link in the response.', + annotations: { + title: 'List Feature Targeting Rules', + readOnlyHint: true, + }, inputSchema: { type: 'object', properties: { @@ -606,6 +648,10 @@ export const featureToolDefinitions: Tool[] = [ name: 'update_feature_targeting', description: 'Update feature configuration (targeting rules) for a feature in an environment. ⚠️ IMPORTANT: Always confirm with the user before making changes to production environments (environments where type = "production"). Include dashboard link in the response.', + annotations: { + title: 'Update Feature Targeting Rules', + destructiveHint: true, + }, inputSchema: { type: 'object', properties: { @@ -740,6 +786,10 @@ export const featureToolDefinitions: Tool[] = [ name: 'get_feature_audit_log_history', description: 'Get timeline of feature flag changes from DevCycle audit log. Include dashboard link in the response.', + annotations: { + title: 'Get Feature Audit Log History', + readOnlyHint: true, + }, inputSchema: { type: 'object', properties: { diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts index 40fb1e178..db444c564 100644 --- a/src/mcp/tools/projectTools.ts +++ b/src/mcp/tools/projectTools.ts @@ -149,6 +149,10 @@ export const projectToolDefinitions: Tool[] = [ name: 'list_projects', description: 'List all projects in the current organization. Include dashboard link in the response.', + annotations: { + title: 'List Projects', + readOnlyHint: true, + }, inputSchema: { type: 'object', properties: PROJECT_PAGINATION_PROPERTIES, @@ -170,6 +174,10 @@ export const projectToolDefinitions: Tool[] = [ name: 'get_current_project', description: 'Get the currently selected project. Include dashboard link in the response.', + annotations: { + title: 'Get Current Project', + readOnlyHint: true, + }, inputSchema: { type: 'object', properties: {}, @@ -180,6 +188,9 @@ export const projectToolDefinitions: Tool[] = [ name: 'create_project', description: 'Create a new project. Include dashboard link in the response.', + annotations: { + title: 'Create Project', + }, inputSchema: { type: 'object', properties: PROJECT_COMMON_PROPERTIES, @@ -191,6 +202,9 @@ export const projectToolDefinitions: Tool[] = [ name: 'update_project', description: 'Update an existing project. Include dashboard link in the response.', + annotations: { + title: 'Update Project', + }, inputSchema: { type: 'object', properties: PROJECT_COMMON_PROPERTIES, diff --git a/src/mcp/tools/resultsTools.ts b/src/mcp/tools/resultsTools.ts index e0c44c861..6e5235cf6 100644 --- a/src/mcp/tools/resultsTools.ts +++ b/src/mcp/tools/resultsTools.ts @@ -117,6 +117,10 @@ export const resultsToolDefinitions: Tool[] = [ name: 'get_feature_total_evaluations', description: 'Get total variable evaluations per time period for a specific feature. Include dashboard link in the response.', + annotations: { + title: 'Get Feature Total Evaluations', + readOnlyHint: true, + }, inputSchema: { type: 'object', properties: FEATURE_EVALUATION_QUERY_PROPERTIES, @@ -128,6 +132,10 @@ export const resultsToolDefinitions: Tool[] = [ name: 'get_project_total_evaluations', description: 'Get total variable evaluations per time period for the entire project. Include dashboard link in the response.', + annotations: { + title: 'Get Project Total Evaluations', + readOnlyHint: true, + }, inputSchema: { type: 'object', properties: PROJECT_EVALUATION_QUERY_PROPERTIES, diff --git a/src/mcp/tools/selfTargetingTools.ts b/src/mcp/tools/selfTargetingTools.ts index e67056d74..e4ae44ec0 100644 --- a/src/mcp/tools/selfTargetingTools.ts +++ b/src/mcp/tools/selfTargetingTools.ts @@ -96,6 +96,10 @@ export const selfTargetingToolDefinitions: Tool[] = [ name: 'get_self_targeting_identity', description: 'Get current DevCycle identity for self-targeting. Include dashboard link in the response.', + annotations: { + title: 'Get Self-Targeting Identity', + readOnlyHint: true, + }, inputSchema: { type: 'object', properties: {}, @@ -106,6 +110,9 @@ export const selfTargetingToolDefinitions: Tool[] = [ name: 'update_self_targeting_identity', description: 'Update DevCycle identity for self-targeting and overrides. Include dashboard link in the response.', + annotations: { + title: 'Update Self-Targeting Identity', + }, inputSchema: { type: 'object', properties: { @@ -119,6 +126,10 @@ export const selfTargetingToolDefinitions: Tool[] = [ name: 'list_self_targeting_overrides', description: 'List all self-targeting overrides for the current project. Include dashboard link in the response.', + annotations: { + title: 'List Self-Targeting Overrides', + readOnlyHint: true, + }, inputSchema: { type: 'object', properties: {}, @@ -140,6 +151,9 @@ export const selfTargetingToolDefinitions: Tool[] = [ name: 'set_self_targeting_override', description: 'Set a self-targeting override for a feature variation. ⚠️ IMPORTANT: Always confirm with the user before setting overrides for production environments (environments where type = "production"). Include dashboard link in the response.', + annotations: { + title: 'Set Self-Targeting Override For Feature/Environment', + }, inputSchema: { type: 'object', properties: OVERRIDE_COMMON_PROPERTIES, @@ -158,6 +172,9 @@ export const selfTargetingToolDefinitions: Tool[] = [ name: 'clear_feature_self_targeting_overrides', description: 'Clear self-targeting overrides for a specific feature/environment. ⚠️ IMPORTANT: Always confirm with the user before clearing overrides for production environments (environments where type = "production"). Include dashboard link in the response.', + annotations: { + title: 'Clear Self-Targeting Override For Feature/Environment', + }, inputSchema: { type: 'object', properties: { @@ -179,6 +196,10 @@ export const selfTargetingToolDefinitions: Tool[] = [ name: 'clear_all_self_targeting_overrides', description: 'Clear all self-targeting overrides for the current project. ⚠️ IMPORTANT: Always confirm with the user before clearing all overrides as it can clear production environments (environments where type = "production"). Include dashboard link in the response.', + annotations: { + title: 'Clear All Self-Targeting Overrides', + destructiveHint: true, + }, inputSchema: { type: 'object', properties: {}, diff --git a/src/mcp/tools/variableTools.ts b/src/mcp/tools/variableTools.ts index 97cdaad58..0a736cbd8 100644 --- a/src/mcp/tools/variableTools.ts +++ b/src/mcp/tools/variableTools.ts @@ -213,6 +213,10 @@ export const variableToolDefinitions: Tool[] = [ name: 'list_variables', description: 'List variables in the current project. Include dashboard link in the response.', + annotations: { + title: 'List Variables', + readOnlyHint: true, + }, inputSchema: { type: 'object', properties: VARIABLE_PAGINATION_PROPERTIES, @@ -234,6 +238,9 @@ export const variableToolDefinitions: Tool[] = [ name: 'create_variable', description: 'Create a new variable. Include dashboard link in the response.', + annotations: { + title: 'Create Variable', + }, inputSchema: { type: 'object', properties: VARIABLE_COMMON_PROPERTIES, @@ -252,6 +259,10 @@ export const variableToolDefinitions: Tool[] = [ name: 'update_variable', description: 'Update an existing variable. ⚠️ IMPORTANT: Variable changes can affect feature flags in production environments. Always confirm with the user before updating variables for features that are active in production. Include dashboard link in the response.', + annotations: { + title: 'Update Variable', + destructiveHint: true, + }, inputSchema: { type: 'object', properties: UPDATE_VARIABLE_PROPERTIES, @@ -270,6 +281,10 @@ export const variableToolDefinitions: Tool[] = [ name: 'delete_variable', description: 'Delete a variable. ⚠️ CRITICAL: Deleting a variable will remove it from ALL environments including production. ALWAYS confirm with the user before deleting any variable. Include dashboard link in the response.', + annotations: { + title: 'Delete Variable', + destructiveHint: true, + }, inputSchema: { type: 'object', properties: { From c8983cd77b2e88c7f2a4b949cc55508d19f9655b Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Fri, 25 Jul 2025 13:23:32 -0400 Subject: [PATCH 50/74] test: mcp server core tests (#472) * test: add comprehensive core server tests for mcp * test: address pr comments on mcp server test structure - Remove redundant setRequestHandlerStub variable - Fix test isolation by removing prototype stubs from beforeEach - Improve dependency injection using Object.defineProperty - Add proper formatting for multi-line statements --- src/mcp/server.test.ts | 387 +++++++++++++++++++++++++++++++++++++++++ src/mcp/server.ts | 8 +- 2 files changed, 391 insertions(+), 4 deletions(-) create mode 100644 src/mcp/server.test.ts diff --git a/src/mcp/server.test.ts b/src/mcp/server.test.ts new file mode 100644 index 000000000..58e81bff2 --- /dev/null +++ b/src/mcp/server.test.ts @@ -0,0 +1,387 @@ +import { expect } from '@oclif/test' +import sinon from 'sinon' +import * as assert from 'assert' +import { Server } from '@modelcontextprotocol/sdk/server/index.js' +import { + CallToolRequestSchema, + ListToolsRequestSchema, +} from '@modelcontextprotocol/sdk/types.js' +import { DevCycleMCPServer } from './server' +import { DevCycleAuth } from './utils/auth' +import { DevCycleApiClient } from './utils/api' + +describe('DevCycleMCPServer', () => { + let server: Server + let mcpServer: DevCycleMCPServer + let authStub: sinon.SinonStubbedInstance<DevCycleAuth> + let apiClientStub: sinon.SinonStubbedInstance<DevCycleApiClient> + + beforeEach(() => { + // Mock the MCP Server + server = { + setRequestHandler: sinon.stub(), + onerror: undefined, + } as any + + // Create stubs for dependencies + authStub = sinon.createStubInstance(DevCycleAuth) + apiClientStub = sinon.createStubInstance(DevCycleApiClient) + + mcpServer = new DevCycleMCPServer(server) + + // Inject stubs into the private properties for testing + // Note: This is a test-only workaround for dependency injection + Object.defineProperty(mcpServer, 'auth', { + value: authStub, + writable: true, + }) + Object.defineProperty(mcpServer, 'apiClient', { + value: apiClientStub, + writable: true, + }) + }) + + afterEach(() => { + sinon.restore() + }) + + describe('Initialization Tests', () => { + it('should initialize successfully with valid auth', async () => { + authStub.initialize.resolves() + + await mcpServer.initialize() + + sinon.assert.calledOnce(authStub.initialize) + sinon.assert.calledTwice( + server.setRequestHandler as sinon.SinonStub, + ) // ListTools and CallTool + }) + + it('should fail gracefully with missing auth credentials', async () => { + const authError = new Error( + 'No authentication found. Please either:\n' + + ' 1. Run "dvc login sso" in the CLI to authenticate with SSO\n' + + ' 2. Or set environment variables:\n' + + ' - DEVCYCLE_CLIENT_ID="your-client-id"\n' + + ' - DEVCYCLE_CLIENT_SECRET="your-client-secret"', + ) + authStub.initialize.rejects(authError) + + try { + await mcpServer.initialize() + assert.fail('Expected initialize to throw') + } catch (error) { + expect((error as Error).message).to.contain(authError.message) + } + }) + + it('should fail gracefully with missing project configuration', async () => { + const projectError = new Error( + 'No project configured. Please either:\n' + + ' 1. Run "dvc projects select" in the CLI to choose a project\n' + + ' 2. Or set environment variable: DEVCYCLE_PROJECT_KEY="your-project-key"\n' + + ' 3. Or add project to .devcycle/config.yml in your repository', + ) + authStub.initialize.rejects(projectError) + + try { + await mcpServer.initialize() + assert.fail('Expected initialize to throw') + } catch (error) { + expect((error as Error).message).to.contain( + projectError.message, + ) + } + }) + + it('should set up error handler for server', async () => { + authStub.initialize.resolves() + + await mcpServer.initialize() + + expect(server.onerror).to.be.a('function') + }) + }) + + describe('Tool Registration Tests', () => { + beforeEach(async () => { + authStub.initialize.resolves() + await mcpServer.initialize() + }) + + it('should register ListTools handler', () => { + sinon.assert.calledWith( + server.setRequestHandler as sinon.SinonStub, + ListToolsRequestSchema, + sinon.match.func, + ) + }) + + it('should register CallTool handler', () => { + sinon.assert.calledWith( + server.setRequestHandler as sinon.SinonStub, + CallToolRequestSchema, + sinon.match.func, + ) + }) + + it('should return all tool definitions when listing tools', async () => { + const setRequestHandlerStub = + server.setRequestHandler as sinon.SinonStub + const listToolsHandler = setRequestHandlerStub + .getCalls() + .find((call) => call.args[0] === ListToolsRequestSchema) + ?.args[1] + + expect(listToolsHandler).to.be.a('function') + + const result = await listToolsHandler() + + expect(result).to.have.property('tools') + expect(result.tools).to.be.an('array') + expect(result.tools.length).to.be.greaterThan(0) + + // Check that we have tools from all categories + const toolNames = result.tools.map((tool: any) => tool.name) + expect(toolNames).to.include('list_features') + expect(toolNames).to.include('list_variables') + expect(toolNames).to.include('list_environments') + expect(toolNames).to.include('list_projects') + }) + + it('should handle unknown tool requests', async () => { + const setRequestHandlerStub = + server.setRequestHandler as sinon.SinonStub + const callToolHandler = setRequestHandlerStub + .getCalls() + .find((call) => call.args[0] === CallToolRequestSchema)?.args[1] + + expect(callToolHandler).to.be.a('function') + + const request = { + params: { + name: 'unknown_tool', + arguments: {}, + }, + } + + const result = await callToolHandler(request) + + expect(result.content[0].text).to.contain( + 'Unknown tool: unknown_tool', + ) + }) + }) + + describe('Error Handling Tests', () => { + beforeEach(async () => { + authStub.initialize.resolves() + await mcpServer.initialize() + }) + + it('should categorize authentication errors correctly', () => { + const categorizeError = (mcpServer as any).categorizeError.bind( + mcpServer, + ) + + expect(categorizeError('401 Unauthorized')).to.equal( + 'AUTHENTICATION_ERROR', + ) + expect(categorizeError('unauthorized access')).to.equal( + 'AUTHENTICATION_ERROR', + ) + }) + + it('should categorize permission errors correctly', () => { + const categorizeError = (mcpServer as any).categorizeError.bind( + mcpServer, + ) + + expect(categorizeError('403 Forbidden')).to.equal( + 'PERMISSION_ERROR', + ) + expect(categorizeError('forbidden access')).to.equal( + 'PERMISSION_ERROR', + ) + }) + + it('should categorize resource not found errors correctly', () => { + const categorizeError = (mcpServer as any).categorizeError.bind( + mcpServer, + ) + + expect(categorizeError('404 Not Found')).to.equal( + 'RESOURCE_NOT_FOUND', + ) + expect(categorizeError('resource not found')).to.equal( + 'RESOURCE_NOT_FOUND', + ) + }) + + it('should categorize validation errors correctly', () => { + const categorizeError = (mcpServer as any).categorizeError.bind( + mcpServer, + ) + + expect(categorizeError('400 Bad Request')).to.equal( + 'VALIDATION_ERROR', + ) + expect(categorizeError('bad request format')).to.equal( + 'VALIDATION_ERROR', + ) + }) + + it('should categorize schema validation errors correctly', () => { + const categorizeError = (mcpServer as any).categorizeError.bind( + mcpServer, + ) + + expect(categorizeError('Zodios: invalid response')).to.equal( + 'SCHEMA_VALIDATION_ERROR', + ) + expect(categorizeError('invalid_type received')).to.equal( + 'SCHEMA_VALIDATION_ERROR', + ) + expect( + categorizeError('expected object, received string'), + ).to.equal('SCHEMA_VALIDATION_ERROR') + }) + + it('should categorize network errors correctly', () => { + const categorizeError = (mcpServer as any).categorizeError.bind( + mcpServer, + ) + + expect(categorizeError('ENOTFOUND api.devcycle.com')).to.equal( + 'NETWORK_ERROR', + ) + expect(categorizeError('network timeout')).to.equal('NETWORK_ERROR') + }) + + it('should categorize project errors correctly', () => { + const categorizeError = (mcpServer as any).categorizeError.bind( + mcpServer, + ) + + expect( + categorizeError('The project test-key was not found'), + ).to.equal('PROJECT_ERROR') + expect(categorizeError('project not found')).to.equal( + 'PROJECT_ERROR', + ) + }) + + it('should provide helpful suggestions for authentication errors', () => { + const getErrorSuggestions = ( + mcpServer as any + ).getErrorSuggestions.bind(mcpServer) + + const suggestions = getErrorSuggestions('AUTHENTICATION_ERROR') + + expect(suggestions).to.include( + 'Run "dvc login sso" to re-authenticate the devcycle cli', + ) + expect(suggestions).to.include( + 'Verify your API credentials are correct', + ) + expect(suggestions).to.include('Check if your token has expired') + }) + + it('should provide helpful suggestions for project errors', () => { + const getErrorSuggestions = ( + mcpServer as any + ).getErrorSuggestions.bind(mcpServer) + + const suggestions = getErrorSuggestions('PROJECT_ERROR') + + expect(suggestions).to.include( + 'Run "dvc projects select" to choose a valid project', + ) + expect(suggestions).to.include('Verify the project key is correct') + expect(suggestions).to.include( + 'Check if you have access to this project', + ) + }) + + it('should format tool errors with helpful information', async () => { + const handleToolError = (mcpServer as any).handleToolError.bind( + mcpServer, + ) + + const result = handleToolError( + new Error('401 Unauthorized'), + 'test_tool', + ) + const errorResponse = JSON.parse(result.content[0].text) + + expect(errorResponse.error).to.be.true + expect(errorResponse.type).to.equal('AUTHENTICATION_ERROR') + expect(errorResponse.message).to.equal('401 Unauthorized') + expect(errorResponse.tool).to.equal('test_tool') + expect(errorResponse.suggestions).to.be.an('array') + expect(errorResponse.timestamp).to.be.a('string') + }) + + it('should handle string errors', async () => { + const handleToolError = (mcpServer as any).handleToolError.bind( + mcpServer, + ) + + const result = handleToolError('String error message', 'test_tool') + const errorResponse = JSON.parse(result.content[0].text) + + expect(errorResponse.error).to.be.true + expect(errorResponse.message).to.equal('String error message') + expect(errorResponse.tool).to.equal('test_tool') + }) + + it('should handle object errors', async () => { + const handleToolError = (mcpServer as any).handleToolError.bind( + mcpServer, + ) + + const errorObject = { + code: 'ERR001', + details: 'Something went wrong', + } + const result = handleToolError(errorObject, 'test_tool') + const errorResponse = JSON.parse(result.content[0].text) + + expect(errorResponse.error).to.be.true + expect(errorResponse.message).to.equal(JSON.stringify(errorObject)) + expect(errorResponse.tool).to.equal('test_tool') + }) + }) + + describe('Tool Execution Tests', () => { + beforeEach(async () => { + authStub.initialize.resolves() + await mcpServer.initialize() + }) + + it('should execute valid tool requests successfully', async () => { + const setRequestHandlerStub = + server.setRequestHandler as sinon.SinonStub + const callToolHandler = setRequestHandlerStub + .getCalls() + .find((call) => call.args[0] === CallToolRequestSchema)?.args[1] + + expect(callToolHandler).to.be.a('function') + + // Test that the handler function exists and can be called + // For now, we'll just verify that unknown tools are handled correctly + const request = { + params: { + name: 'unknown_tool', + arguments: {}, + }, + } + + const result = await callToolHandler(request) + expect(result.content[0].type).to.equal('text') + expect(result.content[0].text).to.contain( + 'Unknown tool: unknown_tool', + ) + }) + }) +}) diff --git a/src/mcp/server.ts b/src/mcp/server.ts index 15a8982fe..433bc0ea0 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -164,6 +164,10 @@ export class DevCycleMCPServer { lowerMessage.includes('forbidden'): return 'PERMISSION_ERROR' + case lowerMessage.includes('project') && + lowerMessage.includes('not found'): + return 'PROJECT_ERROR' + case lowerMessage.includes('404') || lowerMessage.includes('not found'): return 'RESOURCE_NOT_FOUND' @@ -180,10 +184,6 @@ export class DevCycleMCPServer { lowerMessage.includes('network'): return 'NETWORK_ERROR' - case lowerMessage.includes('project') && - lowerMessage.includes('not found'): - return 'PROJECT_ERROR' - default: return 'UNKNOWN_ERROR' } From 5b96f701161b4a128e568b0e1ce9bc4b0f4045e5 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Fri, 25 Jul 2025 13:38:55 -0400 Subject: [PATCH 51/74] test: mcp auth tests (#473) * test: add comprehensive core server tests for mcp * test: address pr comments on mcp server test structure - Remove redundant setRequestHandlerStub variable - Fix test isolation by removing prototype stubs from beforeEach - Improve dependency injection using Object.defineProperty - Add proper formatting for multi-line statements * test: add minimal authentication tests for MCP server * test: improve mcp auth tests with dependency injection and proper stubbing --- src/mcp/utils/auth.test.ts | 202 +++++++++++++++++++++++++++++++++++++ src/mcp/utils/auth.ts | 7 +- 2 files changed, 206 insertions(+), 3 deletions(-) create mode 100644 src/mcp/utils/auth.test.ts diff --git a/src/mcp/utils/auth.test.ts b/src/mcp/utils/auth.test.ts new file mode 100644 index 000000000..6df1beaea --- /dev/null +++ b/src/mcp/utils/auth.test.ts @@ -0,0 +1,202 @@ +import { expect } from '@oclif/test' +import sinon from 'sinon' +import * as assert from 'assert' +import { DevCycleAuth } from './auth' +import { ApiAuth } from '../../auth/ApiAuth' +import Writer from '../../ui/writer' + +describe('DevCycleAuth', () => { + let devCycleAuth: DevCycleAuth + let apiAuthStub: sinon.SinonStubbedInstance<ApiAuth> + let originalEnv: NodeJS.ProcessEnv + let loadConfigStub: sinon.SinonStub + + beforeEach(() => { + // Save and clear environment + originalEnv = { ...process.env } + delete process.env.DEVCYCLE_CLIENT_ID + delete process.env.DEVCYCLE_CLIENT_SECRET + delete process.env.DEVCYCLE_PROJECT_KEY + delete process.env.DVC_CLIENT_ID + delete process.env.DVC_CLIENT_SECRET + delete process.env.DVC_PROJECT_KEY + + // Create stubbed ApiAuth instance + apiAuthStub = sinon.createStubInstance(ApiAuth) + apiAuthStub.getToken.resolves('mock-auth-token') + + // Create DevCycleAuth with injected mock + devCycleAuth = new DevCycleAuth(apiAuthStub) + + // Stub the protected loadConfig method to simulate loading from environment + loadConfigStub = sinon + .stub(devCycleAuth as any, 'loadConfig') + .callsFake(async function (this: DevCycleAuth) { + // Simulate the environment variable loading logic + const projectKey = + process.env.DEVCYCLE_PROJECT_KEY || + process.env.DVC_PROJECT_KEY || + '' + ;(this as any)._projectKey = projectKey + ;(this as any)._orgId = '' // Default empty org ID for tests + }) + }) + + afterEach(() => { + // Restore original environment + process.env = originalEnv + // Sinon automatically restores all stubs + sinon.restore() + }) + + describe('Token Management', () => { + it('should load auth from environment variables', async () => { + // Setup environment variables + process.env.DEVCYCLE_CLIENT_ID = 'env-client-id' + process.env.DEVCYCLE_CLIENT_SECRET = 'env-client-secret' + process.env.DEVCYCLE_PROJECT_KEY = 'env-project-key' + + apiAuthStub.getToken.resolves('mock-token') + + await devCycleAuth.initialize() + + expect(devCycleAuth.getAuthToken()).to.equal('mock-token') + expect(devCycleAuth.getProjectKey()).to.equal('env-project-key') + + sinon.assert.calledWith( + apiAuthStub.getToken, + sinon.match({ + 'client-id': 'env-client-id', + 'client-secret': 'env-client-secret', + }), + sinon.match.string, + ) + }) + + it('should handle missing authentication gracefully', async () => { + apiAuthStub.getToken.resolves('') + + try { + await devCycleAuth.initialize() + assert.fail('Expected initialize to throw') + } catch (error) { + expect((error as Error).message).to.contain( + 'No authentication found', + ) + expect((error as Error).message).to.contain('dvc login sso') + expect((error as Error).message).to.contain( + 'DEVCYCLE_CLIENT_ID', + ) + expect((error as Error).message).to.contain( + 'DEVCYCLE_CLIENT_SECRET', + ) + } + }) + + it('should handle missing project configuration gracefully', async () => { + process.env.DEVCYCLE_CLIENT_ID = 'valid-client-id' + process.env.DEVCYCLE_CLIENT_SECRET = 'valid-client-secret' + // Explicitly ensure no project key is set + delete process.env.DEVCYCLE_PROJECT_KEY + delete process.env.DVC_PROJECT_KEY + + apiAuthStub.getToken.resolves('valid-token') + + // Override the loadConfig stub for this test to not set any project configuration + loadConfigStub.callsFake(async function (this: DevCycleAuth) { + // Don't set any project key or org ID to simulate missing project config + ;(this as any)._projectKey = '' + ;(this as any)._orgId = '' + }) + + try { + await devCycleAuth.initialize() + assert.fail('Expected initialize to throw') + } catch (error) { + expect((error as Error).message).to.contain( + 'No project configured', + ) + expect((error as Error).message).to.contain( + 'dvc projects select', + ) + expect((error as Error).message).to.contain( + 'DEVCYCLE_PROJECT_KEY', + ) + expect((error as Error).message).to.contain( + '.devcycle/config.yml', + ) + } + }) + }) + + describe('Priority Tests', () => { + it('should prioritize environment variables over config files', async () => { + // Setup environment variables + process.env.DEVCYCLE_PROJECT_KEY = 'env-project-key' + process.env.DEVCYCLE_CLIENT_ID = 'env-client-id' + process.env.DEVCYCLE_CLIENT_SECRET = 'env-client-secret' + + apiAuthStub.getToken.resolves('mock-token') + + await devCycleAuth.initialize() + + // Environment variable should take priority + expect(devCycleAuth.getProjectKey()).to.equal('env-project-key') + }) + }) + + describe('State Management', () => { + it('should track authentication state correctly', async () => { + process.env.DEVCYCLE_CLIENT_ID = 'test-client-id' + process.env.DEVCYCLE_CLIENT_SECRET = 'test-client-secret' + process.env.DEVCYCLE_PROJECT_KEY = 'test-project-key' + + apiAuthStub.getToken.resolves('test-token') + + expect(devCycleAuth.hasToken()).to.be.false + + await devCycleAuth.initialize() + + expect(devCycleAuth.hasToken()).to.be.true + expect(devCycleAuth.getAuthToken()).to.equal('test-token') + expect(devCycleAuth.getProjectKey()).to.equal('test-project-key') + }) + + it('should enforce authentication requirements', () => { + // Before initialization + expect(() => devCycleAuth.requireAuth()) + .to.throw() + .with.property('message') + .that.contains('Authentication required') + }) + + it('should enforce project requirements', () => { + // Before initialization + expect(() => devCycleAuth.requireProject()) + .to.throw() + .with.property('message') + .that.contains('Project configuration required') + }) + }) + + describe('Error Wrapping', () => { + it('should wrap generic errors with helpful context', async () => { + apiAuthStub.getToken.rejects(new Error('Generic API error')) + + try { + await devCycleAuth.initialize() + assert.fail('Expected initialize to throw') + } catch (error) { + expect((error as Error).message).to.contain( + 'Failed to initialize DevCycle authentication', + ) + expect((error as Error).message).to.contain('Generic API error') + expect((error as Error).message).to.contain('dvc status') + expect((error as Error).message).to.contain('dvc login sso') + expect((error as Error).message).to.contain( + 'dvc projects select', + ) + } + }) + }) +}) diff --git a/src/mcp/utils/auth.ts b/src/mcp/utils/auth.ts index bc0a50875..0ac7e026c 100644 --- a/src/mcp/utils/auth.ts +++ b/src/mcp/utils/auth.ts @@ -13,7 +13,7 @@ export class DevCycleAuth { private _projectKey = '' private _orgId = '' - constructor() { + constructor(apiAuth?: ApiAuth) { this.authPath = path.join( os.homedir(), '.config', @@ -23,7 +23,8 @@ export class DevCycleAuth { this.cacheDir = path.join(os.homedir(), '.config', 'devcycle', 'cache') this.writer = new Writer() this.writer.headless = true - this.apiAuth = new ApiAuth(this.authPath, this.cacheDir, this.writer) + this.apiAuth = + apiAuth || new ApiAuth(this.authPath, this.cacheDir, this.writer) } async initialize(): Promise<void> { @@ -111,7 +112,7 @@ export class DevCycleAuth { } } - private async loadConfig(): Promise<void> { + protected async loadConfig(): Promise<void> { // Try to load project from environment variables first this._projectKey = process.env.DEVCYCLE_PROJECT_KEY || From 0011a5afa230f6c8f14b78f381aebe9cb0ae2aa3 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Fri, 25 Jul 2025 14:21:22 -0400 Subject: [PATCH 52/74] test: Add Minimal MCP API Client Tests (#474) * test: add minimal mcp api client tests * fix: address pr feedback for type safety improvements * test: improve test assertion formatting for readability --- src/mcp/utils/api.test.ts | 185 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 src/mcp/utils/api.test.ts diff --git a/src/mcp/utils/api.test.ts b/src/mcp/utils/api.test.ts new file mode 100644 index 000000000..1b3431801 --- /dev/null +++ b/src/mcp/utils/api.test.ts @@ -0,0 +1,185 @@ +import { expect } from '@oclif/test' +import sinon from 'sinon' +import * as assert from 'assert' +import { DevCycleApiClient, handleZodiosValidationErrors } from './api' +import { DevCycleAuth } from './auth' +import { setMCPToolCommand } from './headers' +import * as apiClientModule from '../../api/apiClient' + +describe('DevCycleApiClient', () => { + let apiClient: DevCycleApiClient + let authStub: sinon.SinonStubbedInstance<DevCycleAuth> + let setDVCReferrerStub: sinon.SinonStub + + beforeEach(() => { + // Create stubbed auth instance + authStub = sinon.createStubInstance(DevCycleAuth) + authStub.getAuthToken.returns('mock-auth-token') + authStub.getProjectKey.returns('test-project') + authStub.getOrgId.returns('test-org-id') + + apiClient = new DevCycleApiClient(authStub) + + // Stub the setDVCReferrer function from apiClient module + setDVCReferrerStub = sinon.stub(apiClientModule, 'setDVCReferrer') + }) + + afterEach(() => { + sinon.restore() + }) + + describe('Zodios Error Handling', () => { + it('should extract data from Zodios validation errors with 200 OK response', async () => { + const mockResponseData = { id: '123', name: 'Test Feature' } + + // Create a proper mock Zodios error with data property + class ZodiosValidationError extends Error { + constructor( + message: string, + public data: any, + ) { + super(message) + this.name = 'ZodiosValidationError' + } + } + + const zodiosError = new ZodiosValidationError( + 'Zodios: Invalid response - status: 200 OK', + mockResponseData, + ) + + const apiCall = sinon.stub().rejects(zodiosError) + + const result = await handleZodiosValidationErrors( + apiCall, + 'testOperation', + ) + + expect(result).to.deep.equal(mockResponseData) + }) + + it('should re-throw non-Zodios errors unchanged', async () => { + const networkError = new Error('Network timeout') + const apiCall = sinon.stub().rejects(networkError) + + try { + await handleZodiosValidationErrors(apiCall, 'testOperation') + assert.fail('Expected function to throw') + } catch (error) { + expect(error).to.equal(networkError) + } + }) + }) + + describe('executeWithLogging', () => { + it('should execute operation successfully with valid auth and project', async () => { + const mockResult = { id: '123', name: 'Test Feature' } + const mockOperation = sinon.stub().resolves(mockResult) + + authStub.requireAuth.returns() + authStub.requireProject.returns() + + const result = await apiClient.executeWithLogging( + 'testOperation', + { key: 'test-key' }, + mockOperation, + ) + + expect(result).to.deep.equal(mockResult) + sinon.assert.calledOnce(authStub.requireAuth) + sinon.assert.calledOnce(authStub.requireProject) + sinon.assert.calledWith( + mockOperation, + 'mock-auth-token', + 'test-project', + ) + sinon.assert.calledWith( + setDVCReferrerStub, + 'testOperation', + sinon.match.string, + 'mcp', + ) + }) + + it('should handle authentication errors gracefully', async () => { + const authError = new Error('Authentication failed') + authStub.requireAuth.throws(authError) + + const mockOperation = sinon.stub().resolves({}) + + try { + await apiClient.executeWithLogging( + 'testOperation', + null, + mockOperation, + ) + assert.fail('Expected function to throw') + } catch (error) { + expect((error as Error).message).to.equal( + 'Authentication failed', + ) + sinon.assert.notCalled(mockOperation) + } + }) + }) + + describe('executeWithDashboardLink', () => { + it('should generate dashboard links correctly', async () => { + const mockResult = { key: 'test-feature', name: 'Test Feature' } + const mockOperation = sinon.stub().resolves(mockResult) + const dashboardLinkGenerator = sinon + .stub() + .returns( + 'https://app.devcycle.com/o/test-org-id/p/test-project/features', + ) + + authStub.requireAuth.returns() + authStub.requireProject.returns() + + const result = await apiClient.executeWithDashboardLink( + 'createFeature', + { key: 'test-feature' }, + mockOperation, + dashboardLinkGenerator, + ) + + expect(result).to.deep.equal({ + result: mockResult, + dashboardLink: + 'https://app.devcycle.com/o/test-org-id/p/test-project/features', + }) + + sinon.assert.calledWith( + dashboardLinkGenerator, + 'test-org-id', + 'test-project', + mockResult, + ) + }) + }) +}) + +describe('Header Management', () => { + let setDVCReferrerStub: sinon.SinonStub + + beforeEach(() => { + setDVCReferrerStub = sinon.stub(apiClientModule, 'setDVCReferrer') + }) + + afterEach(() => { + sinon.restore() + }) + + describe('setMCPToolCommand', () => { + it('should set MCP headers correctly for tool commands', () => { + setMCPToolCommand('list_features') + + sinon.assert.calledWith( + setDVCReferrerStub, + 'list_features', + sinon.match.string, // version + 'mcp', + ) + }) + }) +}) From baf38b2efb9799a056c238bb1a43ca91eb108eb1 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 28 Jul 2025 10:04:09 -0400 Subject: [PATCH 53/74] docs: update mcp.md doc --- docs/mcp.md | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 1 deletion(-) diff --git a/docs/mcp.md b/docs/mcp.md index 6e55d7f07..1bda29388 100644 --- a/docs/mcp.md +++ b/docs/mcp.md @@ -13,7 +13,9 @@ The DevCycle MCP (Model Context Protocol) Server enables AI coding assistants li - [Variable Management](#variable-management) - [Environment Management](#environment-management) - [Project Management](#project-management) + - [Custom Properties Management](#custom-properties-management) - [Self-Targeting & Overrides](#self-targeting--overrides) + - [Results & Analytics](#results--analytics) - [Error Handling](#error-handling) - [Usage Examples](#usage-examples) - [Best Practices](#best-practices) @@ -151,11 +153,12 @@ Create a new variation within a feature. - `variables` (optional): Variable values for this variation #### `update_feature_variation` -Update an existing variation. +Update an existing variation by key. ⚠️ WARNING: Updating a feature variation may affect production environments. **Parameters:** - `feature_key`: Feature key - `variation_key`: Variation to update +- `_id` (optional): MongoDB ID for the variation - `key` (optional): New variation key - `name` (optional): New variation name - `variables` (optional): Updated variable values @@ -297,6 +300,45 @@ Create a new project. - `name`: Project name - `description` (optional): Project description +### Custom Properties Management + +#### `list_custom_properties` +List custom properties in the current project. + +**Parameters:** +- `search` (optional): Search query to filter custom properties (min 3 chars) +- `page` (optional): Page number (default: 1) +- `perPage` (optional): Items per page (default: 100, max: 1000) +- `sortBy` (optional): Sort field (`createdAt`, `updatedAt`, `name`, `key`, `createdBy`, `propertyKey`) +- `sortOrder` (optional): Sort order (`asc`, `desc`) +- `createdBy` (optional): Filter by creator + +#### `create_custom_property` +Create a new custom property. + +**Parameters:** +- `key`: Unique property key (pattern: `^[a-z0-9-_.]+$`) +- `name`: Property name (max 100 chars) +- `type`: Property type (`String`, `Boolean`, `Number`) +- `propertyKey`: Property key used to identify the custom property in user data +- `schema` (optional): Schema definition with validation rules + +#### `update_custom_property` ⚠️ +Update an existing custom property. + +**Parameters:** +- `key`: Property key to update +- `name` (optional): New name +- `type` (optional): New type +- `propertyKey` (optional): New property key +- `schema` (optional): New schema definition + +#### `delete_custom_property` ⚠️⚠️ +Delete a custom property from ALL environments. + +**Parameters:** +- `key`: Property key to delete + ### Self-Targeting & Overrides #### `get_self_targeting_identity` @@ -335,6 +377,33 @@ Clear all overrides for the current project. **Parameters:** None +### Results & Analytics + +#### `get_feature_total_evaluations` +Get total variable evaluations per time period for a specific feature. + +**Parameters:** +- `featureKey`: Feature key +- `startDate` (optional): Start date as Unix timestamp (milliseconds since epoch) +- `endDate` (optional): End date as Unix timestamp (milliseconds since epoch) +- `platform` (optional): Platform filter for evaluation results +- `variable` (optional): Variable key filter for evaluation results +- `environment` (optional): Environment key to filter results +- `period` (optional): Time aggregation period (`day`, `hour`, `month`) +- `sdkType` (optional): Filter by SDK type (`client`, `server`, `mobile`, `api`) + +#### `get_project_total_evaluations` +Get total variable evaluations per time period for the entire project. + +**Parameters:** +- `startDate` (optional): Start date as Unix timestamp (milliseconds since epoch) +- `endDate` (optional): End date as Unix timestamp (milliseconds since epoch) +- `platform` (optional): Platform filter for evaluation results +- `variable` (optional): Variable key filter for evaluation results +- `environment` (optional): Environment key to filter results +- `period` (optional): Time aggregation period (`day`, `hour`, `month`) +- `sdkType` (optional): Filter by SDK type (`client`, `server`, `mobile`, `api`) + ## Error Handling The MCP server returns structured error responses: @@ -367,6 +436,26 @@ The AI assistant will use: 2. `create_feature_variation` to add variations 3. `enable_feature_targeting` to activate in development +### Managing Custom Properties + +``` +Create a custom property for user subscription tier with allowed values +``` + +The AI assistant will use: +1. `create_custom_property` with enum schema for allowed values +2. Configure the property with appropriate validation + +### Viewing Analytics + +``` +Show me the evaluation metrics for the checkout_flow feature over the last week +``` + +The AI assistant will use: +1. `get_feature_total_evaluations` with appropriate date range +2. Display the evaluation data grouped by time period + ### Managing Overrides for Testing ``` From 035242735fb36d70b98e574cd7404d2706a5e6f4 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 28 Jul 2025 11:09:15 -0400 Subject: [PATCH 54/74] docs: update MCP_ABSTRACTIONS_SUMMARY.md --- docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md | 226 ++++++++++++--------------- 1 file changed, 96 insertions(+), 130 deletions(-) diff --git a/docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md b/docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md index 9574a32d3..f566e7497 100644 --- a/docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md +++ b/docs/mcp/MCP_ABSTRACTIONS_SUMMARY.md @@ -1,170 +1,136 @@ # DevCycle MCP Abstractions Summary -This document provides a quick reference of all recommended MCP abstractions for the DevCycle MCP server based on the CLI codebase analysis. +This document provides a quick reference of all MCP abstractions for the DevCycle MCP server - both implemented and planned features. -## MCP Tools +## Currently Implemented MCP Tools ### 1. Feature Management - - `list_features` - List all features with search/pagination -- `get_feature` - Get detailed feature information - `create_feature` - Create new feature flag - `update_feature` - Update existing feature -- `delete_feature` - Delete a feature +- `update_feature_status` - Update feature status (active/complete/archived) +- `delete_feature` - Delete a feature ⚠️ +- `fetch_feature_variations` - Get variations for a feature +- `create_feature_variation` - Create new variation +- `update_feature_variation` - Update variation properties ⚠️ +- `get_feature_audit_log_history` - Get timeline of feature changes ### 2. Variable Management - - `list_variables` - List all variables -- `get_variable` - Get variable details - `create_variable` - Create new variable -- `update_variable` - Update variable properties -- `delete_variable` - Delete a variable - -### 3. Variation Management - -- `list_variations` - List variations for a feature -- `create_variation` - Create new variation -- `update_variation` - Update variation properties -- `get_variation` - Get specific variation details - -### 4. Targeting Management - -- `get_targeting_rules` - Get targeting for feature/environment -- `enable_targeting` - Enable targeting for environment -- `disable_targeting` - Disable targeting for environment -- `create_targeting_rule` - Create new targeting rule -- `update_targeting` - Update targeting rules -- `get_audiences` - List reusable audience definitions -- `validate_targeting_rule` - Validate targeting before applying - -### 5. Code Analysis - -- `analyze_variable_usage` - Comprehensive usage scanning with language detection -- `generate_usage_report` - Format usage analysis for documentation -- `cleanup_variable` - Replace variable with static value -- `analyze_pr_changes` - Analyze feature flag changes in PR -- `get_feature_history` - Git history of feature flag usage -- `find_unknown_variables` - Identify undefined variables in code - -### 6. Environment Management +- `update_variable` - Update variable properties ⚠️ +- `delete_variable` - Delete a variable ⚠️ +### 3. Environment Management - `list_environments` - List project environments -- `get_environment` - Get environment details +- `get_sdk_keys` - Retrieve SDK keys for environment - `create_environment` - Create new environment - `update_environment` - Update environment settings -- `clone_environment` - Clone environment configuration -- `get_sdk_keys` - Retrieve SDK keys for environment - -### 7. Project & Organization - -- `list_projects` - List available projects -- `get_current_project` - Get current project -- `select_project` - Switch projects -- `list_organizations` - List available organizations -- `select_organization` - Switch organizations - -### 8. Override Management - -- `list_overrides` - List current overrides -- `set_override` - Set self-targeting override -- `clear_overrides` - Clear overrides -- `get_override` - Get specific override details - -### 9. Identity Management - -- `get_identity` - Get current DevCycle identity -- `update_identity` - Update identity for testing - -### 10. Type Generation - -- `generate_typescript_types` - Generate TypeScript definitions - -### 11. Analytics - -- `get_feature_usage_metrics` - Usage statistics -- `get_variation_distribution` - Variation serve distribution - -## MCP Resources - -### 1. Configuration +### 4. Project & Organization +- `list_projects` - List all projects in organization +- `get_current_project` - Get currently selected project +- `create_project` - Create new project +- `update_project` - Update project settings + +### 5. Custom Properties Management +- `list_custom_properties` - List custom properties +- `create_custom_property` - Create new custom property +- `update_custom_property` - Update custom property ⚠️ +- `delete_custom_property` - Delete custom property ⚠️ + +### 6. Targeting Management +- `enable_feature_targeting` - Enable targeting for environment ⚠️ +- `disable_feature_targeting` - Disable targeting for environment ⚠️ +- `list_feature_targeting` - Get targeting rules for feature +- `update_feature_targeting` - Update targeting rules ⚠️ + +### 7. Self-Targeting & Override Management +- `get_self_targeting_identity` - Get current DevCycle identity +- `update_self_targeting_identity` - Update identity for testing +- `list_self_targeting_overrides` - List current overrides +- `set_self_targeting_override` - Set override for testing ⚠️ +- `clear_feature_self_targeting_overrides` - Clear specific overrides ⚠️ +- `clear_all_self_targeting_overrides` - Clear all overrides + +### 8. Results & Analytics +- `get_feature_total_evaluations` - Get feature evaluation metrics +- `get_project_total_evaluations` - Get project-wide evaluation metrics + +⚠️ = Requires confirmation for production environments + +## Planned Features (Not Yet Implemented) + +### MCP Resources (Read-only data access) - `devcycle://config/repo` - Repository configuration - `devcycle://config/auth` - Auth status - -### 2. Project Data - - `devcycle://project/features` - All features - `devcycle://project/variables` - All variables - `devcycle://project/environments` - All environments - -### 3. Analysis - - `devcycle://analysis/usages` - Latest usage scan - `devcycle://analysis/types` - Generated types - `devcycle://analysis/unknown-variables` - Undefined variables -- `devcycle://analysis/parser-patterns` - Active regex patterns -- `devcycle://analysis/variable-aliases` - Variable mappings - -### 4. Targeting - - `devcycle://targeting/rules/{feature}` - Feature targeting rules -- `devcycle://targeting/active-rules` - All active rules - -### 5. Overrides - - `devcycle://overrides/current` - Active overrides -- `devcycle://overrides/available` - Available features - -### 6. Environment - - `devcycle://environments/sdk-keys` - All SDK keys -- `devcycle://environments/comparison` - Environment diff - -### 7. Git Integration - -- `devcycle://git/feature-changes` - Recent changes -- `devcycle://git/pr-analysis` - PR flag analysis - -## MCP Prompts - -### 1. Feature Management +### MCP Prompts (Guided workflows) - `create_feature_flag` - Guided feature creation - `setup_targeting` - Configure targeting rules -- `plan_progressive_rollout` - Phased rollout strategy -- `create_killswitch` - Emergency rollback setup - -### 2. Code Integration - - `implement_feature_flag` - Generate implementation code -- `cleanup_removed_flags` - Safe flag removal -- `refactor_flag_usage` - Best practices refactoring - -### 3. Analysis & Review - - `analyze_feature_usage` - Comprehensive usage analysis -- `review_pr_flags` - PR review checklist -- `find_stale_flags` - Identify removable flags - -### 4. Testing - - `setup_testing_overrides` - QA testing configuration -- `create_test_matrix` - Test case generation -### 5. Documentation +### Code Analysis Tools +- `analyze_variable_usage` - Comprehensive usage scanning +- `cleanup_variable` - Replace variable with static value +- `find_unknown_variables` - Identify undefined variables +- `get_feature_history` - Git history of feature flag usage + +### Type Generation +- `generate_typescript_types` - Generate TypeScript definitions -- `document_feature_flags` - Auto-generate docs -- `create_flag_runbook` - Operational procedures +### Advanced Targeting +- `get_audiences` - List reusable audience definitions +- `validate_targeting_rule` - Validate targeting before applying +- `create_targeting_rule` - Create new targeting rule (beyond basic enable/disable) -### 6. Migration +### Environment Management (Advanced) +- `clone_environment` - Clone environment configuration -- `migrate_feature_flags` - Project/environment migration +### Advanced Analytics +- `get_variation_distribution` - Variation serve distribution +- `get_feature_usage_metrics` - Detailed usage statistics -## Priority Implementation Order +### Git Integration +- `analyze_pr_changes` - Analyze feature flag changes in PR +- `devcycle://git/feature-changes` - Recent changes +- `devcycle://git/pr-analysis` - PR flag analysis -1. **Core CRUD Tools** - Direct CLI command mappings -2. **Code Analysis Tools** - Leverage existing parsers -3. **Targeting & Overrides** - Essential for testing -4. **Resources** - Read-only data access -5. **Prompts** - AI-guided workflows -6. **Advanced Analytics** - Usage metrics and insights +## Implementation Status + +### ✅ Implemented +- Core CRUD operations for features, variables, environments, projects +- Basic targeting enable/disable +- Self-targeting and override management +- Basic analytics (evaluation counts) +- Custom properties management + +### 🚧 In Progress +- None currently + +### 📋 Planned +- MCP Resources for read-only data access +- MCP Prompts for guided workflows +- Code analysis and usage scanning +- Type generation +- Advanced targeting with audience management +- Git integration and PR analysis +- Advanced analytics and metrics + +## Notes + +1. The current implementation focuses on direct API operations that modify DevCycle configuration +2. Code analysis features from the CLI (usages, cleanup, diff) are not yet exposed via MCP +3. MCP Resources and Prompts are part of the MCP specification but not yet implemented +4. All destructive operations include warnings and require user confirmation From cecc67b498ef819bb18b0c3abbd7181e38490239 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Fri, 25 Jul 2025 15:10:42 -0400 Subject: [PATCH 55/74] docs: add cloudflare worker implementation plan for mcp sse --- src/mcp/cloudflare-worker-plan.md | 576 ++++++++++++++++++++++++++++++ 1 file changed, 576 insertions(+) create mode 100644 src/mcp/cloudflare-worker-plan.md diff --git a/src/mcp/cloudflare-worker-plan.md b/src/mcp/cloudflare-worker-plan.md new file mode 100644 index 000000000..4a6b3c922 --- /dev/null +++ b/src/mcp/cloudflare-worker-plan.md @@ -0,0 +1,576 @@ +# DevCycle MCP Cloudflare Worker Implementation Plan + +## Overview + +This document outlines the plan to create a Cloudflare Worker-based MCP server that hosts the DevCycle CLI's MCP tools, following the architecture of the `mcp.devcycle.com` example. The server will support both local installation and remote access via SSE (Server-Sent Events). + +## Architecture Overview + +### Key Components + +1. **Cloudflare Worker MCP Server** - Remote server hosting all MCP tools +2. **OAuth Provider Integration** - Using `@cloudflare/workers-oauth-provider` for authentication +3. **SSE Transport** - Server-Sent Events for MCP communication +4. **Durable Objects** - For maintaining MCP session state +5. **Dual Access Mode** - Tools accessible both locally and remotely + +### Architecture Diagram + +``` +┌─────────────────────────────────────────────────────────────────────┐ +│ Claude Desktop / AI Client │ +├─────────────────────────────────────────────────────────────────────┤ +│ mcp-remote proxy │ +└───────────────────────┬─────────────────────────┬───────────────────┘ + │ │ + │ SSE Connection │ Local Installation + │ │ +┌───────────────────────▼────────────┐ ┌───────▼───────────────────┐ +│ Cloudflare Worker MCP Server │ │ Local MCP Server (stdio) │ +│ │ │ │ +│ ┌─────────────────────────────┐ │ │ ┌────────────────────┐ │ +│ │ OAuth Authentication │ │ │ │ Local Auth │ │ +│ │ (Auth0/DevCycle SSO) │ │ │ │ (CLI Config) │ │ +│ └─────────────────────────────┘ │ │ └────────────────────┘ │ +│ │ │ │ +│ ┌─────────────────────────────┐ │ │ ┌────────────────────┐ │ +│ │ MCP Tool Registry │ │ │ │ MCP Tool Registry │ │ +│ │ (Features, Variables, etc) │ │ │ │ (Same Tools) │ │ +│ └─────────────────────────────┘ │ │ └────────────────────┘ │ +│ │ │ │ +│ ┌─────────────────────────────┐ │ │ ┌────────────────────┐ │ +│ │ DevCycle API Client │ │ │ │ DevCycle API Client│ │ +│ │ (HTTP with Auth Token) │ │ │ │ (HTTP with Keys) │ │ +│ └─────────────────────────────┘ │ │ └────────────────────┘ │ +└────────────────────────────────────┘ └───────────────────────────┘ + │ │ + └─────────────┬───────────┘ + │ + ┌────────────▼────────────┐ + │ DevCycle API │ + │ (api.devcycle.com) │ + └─────────────────────────┘ +``` + +## Implementation Structure + +### Directory Structure + +``` +cli/ +├── src/ +│ └── mcp/ +│ ├── index.ts # Existing local MCP server (stdio) +│ ├── server.ts # Existing MCP server class +│ ├── tools/ # Existing tool implementations +│ └── worker/ # NEW: Cloudflare Worker implementation +│ ├── index.ts # Worker entry point +│ ├── auth.ts # OAuth authentication +│ ├── mcp-server.ts # Worker MCP server class +│ ├── api-client.ts # Worker-specific API client +│ └── types.ts # Worker-specific types +├── mcp-worker/ # NEW: Separate package for CF Worker +│ ├── package.json +│ ├── wrangler.toml +│ ├── tsconfig.json +│ └── src/ +│ └── index.ts # Re-exports from main package +└── docs/ + └── mcp/ + └── cloudflare-deployment.md # Deployment instructions +``` + +## Phase 1: Refactor for Dual-Mode Support + +### 1.1 Extract Core Tool Logic + +Currently, the MCP tools are tightly coupled to the local server implementation in `src/mcp/server.ts`, making it impossible to reuse them in a Cloudflare Worker environment. By extracting the core tool logic into a registry pattern, we can share the same tool implementations between both the stdio-based local server and the SSE-based Worker server, ensuring consistency and reducing code duplication. + +Create a tool registry that can be used by both local and remote implementations: + +```typescript +// src/mcp/tools/registry.ts +export interface MCPToolDefinition { + name: string; + description: string; + inputSchema: any; + handler: (args: unknown, client: DevCycleApiClient) => Promise<any>; +} + +export class MCPToolRegistry { + private tools = new Map<string, MCPToolDefinition>(); + + register(tool: MCPToolDefinition): void { + this.tools.set(tool.name, tool); + } + + getAll(): MCPToolDefinition[] { + return Array.from(this.tools.values()); + } + + execute(name: string, args: unknown, client: DevCycleApiClient): Promise<any> { + const tool = this.tools.get(name); + if (!tool) throw new Error(`Unknown tool: ${name}`); + return tool.handler(args, client); + } +} +``` + +### 1.2 Create Abstracted API Client Interface + +The current `DevCycleApiClient` in `src/mcp/utils/api.ts` depends on the local `DevCycleAuth` class which uses file system operations and environment variables that aren't available in Cloudflare Workers. By creating an interface abstraction, we can implement different authentication strategies: the local client will continue using API keys and config files, while the Worker client will use OAuth tokens from the JWT claims passed through the authentication flow. + +```typescript +// src/mcp/api/interface.ts +export interface IDevCycleApiClient { + executeWithLogging<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T> + ): Promise<T>; + + executeWithDashboardLink<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T>, + dashboardLink: (orgId: string, projectKey: string, result: T) => string + ): Promise<{ result: T; dashboardLink: string }>; +} +``` + +### 1.3 Refactor Existing Tools + +Currently, each tool file exports separate handler functions and tool definitions that are directly imported and registered in `server.ts`. This tight coupling prevents the tools from being used in different contexts. By refactoring to use a registration function pattern, tools become portable modules that can be registered with any MCP server implementation, whether it's running locally or in a Cloudflare Worker. + +Update all tool files to use the registry pattern: + +```typescript +// src/mcp/tools/featureTools.ts +export function registerFeatureTools(registry: MCPToolRegistry) { + registry.register({ + name: 'list_features', + description: 'List features in the current project', + inputSchema: { /* ... */ }, + handler: async (args, apiClient) => { + // Existing implementation + } + }); + // ... register other feature tools +} +``` + +## Phase 2: Cloudflare Worker Implementation + +### 2.1 Worker Entry Point + +The Worker entry point needs to integrate multiple systems: the MCP SDK's `McpAgent` for handling the protocol, Cloudflare's OAuth provider for authentication, and Hono for HTTP routing. Unlike the local implementation which uses stdio transport, the Worker uses SSE (Server-Sent Events) to communicate with clients through the `mcp-remote` proxy. The `DevCycleMCP` class extends `McpAgent` with Durable Objects support to maintain session state across requests, which is essential for the stateless Worker environment. + +```typescript +// src/mcp/worker/index.ts +import OAuthProvider, { type OAuthHelpers } from "@cloudflare/workers-oauth-provider"; +import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; +import { McpAgent } from "agents/mcp"; +import { Hono } from "hono"; +import { authorize, callback, confirmConsent, tokenExchangeCallback } from "./auth"; +import { MCPToolRegistry } from "../tools/registry"; +import { WorkerApiClient } from "./api-client"; +import { registerAllTools } from "../tools"; + +export class DevCycleMCP extends McpAgent<Env, Record<string, never>, UserProps> { + server = new McpServer({ + name: "DevCycle CLI MCP Server", + version: "1.0.0", + }); + + private registry = new MCPToolRegistry(); + private apiClient: WorkerApiClient; + + async init() { + // Initialize the Worker-specific API client with OAuth tokens + this.apiClient = new WorkerApiClient(this.props, this.env); + + // Register all tools from the shared registry - same tools as local implementation + registerAllTools(this.registry); + + // Dynamically create MCP protocol handlers for each registered tool + for (const tool of this.registry.getAll()) { + this.server.tool( + tool.name, + tool.description, + tool.inputSchema, + async (args) => { + try { + // Execute tool with Worker-specific API client that uses OAuth tokens + const result = await this.registry.execute( + tool.name, + args, + this.apiClient + ); + // Format response according to MCP protocol expectations + return { + content: [{ + type: "text", + text: JSON.stringify(result, null, 2) + }] + }; + } catch (error) { + // Standardized error handling across all tools + return { + content: [{ + type: "text", + text: `Error: ${error.message}` + }] + }; + } + } + ); + } + } +} + +// Initialize Hono app with OAuth routes for handling the authentication flow +const app = new Hono<{ Bindings: Env & { OAUTH_PROVIDER: OAuthHelpers } }>(); +app.get("/authorize", authorize); // Initiates OAuth flow with DevCycle +app.post("/authorize/consent", confirmConsent); // Handles user consent +app.get("/callback", callback); // Receives OAuth callback with tokens +app.get("/health", (c) => c.json({ status: "ok" })); // Health check endpoint + +// Configure the OAuth provider with MCP SSE endpoint +export default new OAuthProvider({ + apiHandler: DevCycleMCP.mount("/sse"), // MCP protocol over Server-Sent Events + apiRoute: "/sse", + authorizeEndpoint: "/authorize", + clientRegistrationEndpoint: "/signup", + defaultHandler: app, + tokenEndpoint: "/token", + tokenExchangeCallback, // Converts OAuth tokens to UserProps +}); +``` + +### 2.2 Worker-Specific API Client + +The Worker API client differs significantly from the local implementation because it receives authentication through OAuth tokens in the JWT claims rather than API keys. The project context, which locally comes from config files or environment variables, must be extracted from either the JWT claims (where it can be embedded during the OAuth flow) or fallback to Worker environment variables. This client implements the same `IDevCycleApiClient` interface but with Worker-specific authentication and configuration strategies, ensuring tool compatibility while adapting to the serverless environment constraints. + +```typescript +// src/mcp/worker/api-client.ts +import type { UserProps } from "./types"; +import { IDevCycleApiClient } from "../api/interface"; + +export class WorkerApiClient implements IDevCycleApiClient { + constructor( + private props: UserProps, + private env: Env + ) {} + + async executeWithLogging<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T> + ): Promise<T> { + // Extract project from JWT claims or environment + const projectKey = this.getProjectKey(); + const authToken = this.props.tokenSet.accessToken; + + console.log(`Worker MCP ${operationName}:`, args); + + try { + return await operation(authToken, projectKey); + } catch (error) { + console.error(`Worker MCP ${operationName} error:`, error); + throw error; + } + } + + private getProjectKey(): string { + // Try from JWT claims first - this allows user-specific project context + if (this.props.claims?.project_key) { + return this.props.claims.project_key as string; + } + // Fall back to environment variable for single-project deployments + if (this.env.DEFAULT_PROJECT_KEY) { + return this.env.DEFAULT_PROJECT_KEY; + } + throw new Error("No project key found in claims or environment"); + } + + private getOrgId(): string { + // Extract from JWT claims + if (this.props.claims?.org_id) { + return this.props.claims.org_id as string; + } + throw new Error("No organization ID found in claims"); + } + + async executeWithDashboardLink<T>(/* ... */) { + // Similar implementation with dashboard link generation + } +} +``` + +### 2.3 Authentication Implementation + +The authentication implementation handles the OAuth token exchange callback, which is triggered after users authenticate with DevCycle's Auth0 provider. This function extracts user information from the ID token's JWT claims and packages it into the `UserProps` structure that gets passed to the MCP agent. The TTL (time-to-live) setting ensures that sessions are refreshed periodically, maintaining security while providing a smooth user experience. This approach allows the Worker to operate with the same DevCycle API permissions as the authenticated user, respecting organizational boundaries and access controls. + +```typescript +// src/mcp/worker/auth.ts +import type { TokenExchangeCallbackOptions, TokenExchangeCallbackResult } from "@cloudflare/workers-oauth-provider"; +import * as oauth from "oauth4webapi"; +import type { UserProps } from "./types"; + +export async function tokenExchangeCallback( + options: TokenExchangeCallbackOptions<Env> +): Promise<TokenExchangeCallbackResult<UserProps>> { + const { tokenSet, userInfo } = options; + + // Extract user information from ID token - includes org_id, project_key, permissions + const claims = parseJWT(tokenSet.id_token); + + return { + props: { + claims, // JWT claims contain user context and permissions + tokenSet: { + accessToken: tokenSet.access_token, // Used for DevCycle API calls + idToken: tokenSet.id_token, // Contains user identity + refreshToken: tokenSet.refresh_token || "", // For token renewal + }, + }, + ttl: 3600, // 1 hour - balances security with user experience + }; +} +``` + +## Phase 3: Deployment Configuration + +### 3.1 Wrangler Configuration + +```toml +# mcp-worker/wrangler.toml +name = "devcycle-mcp-server" +main = "src/index.ts" +compatibility_date = "2025-03-10" +compatibility_flags = ["nodejs_compat"] + +[migrations] +new_sqlite_classes = ["DevCycleMCP"] +tag = "v1" + +[durable_objects] +bindings = [ + { class_name = "DevCycleMCP", name = "MCP_OBJECT" } +] + +[kv_namespaces] +binding = "OAUTH_KV" +id = "YOUR_KV_NAMESPACE_ID" + +[vars] +NODE_ENV = "production" +API_BASE_URL = "https://api.devcycle.com" +AUTH0_DOMAIN = "auth.devcycle.com" +AUTH0_AUDIENCE = "https://api.devcycle.com/" +AUTH0_SCOPE = "openid profile email offline_access" +# AUTH0_CLIENT_ID and AUTH0_CLIENT_SECRET should be set as secrets + +[ai] +binding = "AI" + +[observability] +enabled = true +``` + +### 3.2 Package Configuration + +```json +// mcp-worker/package.json +{ + "name": "@devcycle/mcp-worker", + "version": "1.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "wrangler dev", + "deploy": "wrangler deploy", + "build": "tsc" + }, + "dependencies": { + "@cloudflare/workers-oauth-provider": "^0.0.5", + "@devcycle/cli": "file:../", + "@modelcontextprotocol/sdk": "^1.13.1", + "agents": "^0.0.100", + "hono": "^4.8.4", + "oauth4webapi": "^3.5.5" + } +} +``` + +## Phase 4: Build System Updates + +### 4.1 Shared Code Compilation + +Update the main CLI build to create a separate bundle for shared MCP code: + +```json +// package.json +{ + "scripts": { + "build:mcp-shared": "tsc --project tsconfig.mcp.json", + "build:worker": "cd mcp-worker && npm run build", + "deploy:worker": "cd mcp-worker && npm run deploy" + } +} +``` + +### 4.2 TypeScript Configuration + +```json +// tsconfig.mcp.json +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./dist/mcp-shared", + "declaration": true, + "declarationMap": true + }, + "include": [ + "src/mcp/tools/**/*", + "src/mcp/api/interface.ts", + "src/api/**/*" + ] +} +``` + +## Phase 5: Testing Strategy + +### 5.1 Unit Tests + +- Test tool handlers in isolation +- Mock API client for both local and worker implementations +- Test authentication flows + +### 5.2 Integration Tests + +```typescript +// test/mcp-worker/integration.test.ts +describe('MCP Worker Integration', () => { + let worker: UnstableDevWorker; + + beforeAll(async () => { + worker = await unstable_dev("mcp-worker/src/index.ts", { + experimental: { disableExperimentalWarning: true }, + }); + }); + + afterAll(async () => { + await worker.stop(); + }); + + it('should list features via SSE', async () => { + // Test SSE connection and tool execution + }); +}); +``` + +### 5.3 E2E Tests + +- Deploy to preview environment +- Test with actual Claude Desktop/AI Playground +- Verify OAuth flow + +## Phase 6: Documentation + +### 6.1 Deployment Guide + +```markdown +# Deploying DevCycle MCP Server to Cloudflare + +## Prerequisites +- Cloudflare account +- Wrangler CLI installed +- DevCycle OAuth application credentials + +## Deployment Steps + +1. Clone the repository +2. Install dependencies: `yarn install` +3. Create KV namespace: `wrangler kv:namespace create OAUTH_KV` +4. Set secrets: + ```bash + wrangler secret put AUTH0_CLIENT_ID + wrangler secret put AUTH0_CLIENT_SECRET + ``` +5. Deploy: `yarn deploy:worker` + +## Connecting Clients + +### Claude Desktop +```json +{ + "mcpServers": { + "devcycle": { + "command": "npx", + "args": [ + "mcp-remote", + "https://devcycle-mcp.your-account.workers.dev/sse" + ] + } + } +} +``` + +### Local Development +```bash +# Use local MCP server +dvc mcp + +# Or connect to remote +npx mcp-remote http://localhost:8787/sse +``` +``` + +## Phase 7: Monitoring and Operations + +### 7.1 Logging and Metrics + +- Implement structured logging +- Track tool usage metrics +- Monitor OAuth success rates +- Alert on errors + +### 7.2 Security Considerations + +- Validate all input parameters +- Implement rate limiting +- Secure token storage +- CORS configuration for web clients + +## Phase 8: Future Enhancements + +### 8.1 Advanced Features + +- WebSocket support for real-time updates +- Batch operations for multiple tools +- Caching layer for frequently accessed data +- Multi-tenant support + +### 8.2 Performance Optimizations + +- Edge caching for read operations +- Connection pooling for API calls +- Lazy loading of tool implementations + +## Timeline + +- **Week 1-2**: Phase 1 - Refactor for dual-mode support +- **Week 3-4**: Phase 2 - Cloudflare Worker implementation +- **Week 5**: Phase 3-4 - Deployment and build system +- **Week 6**: Phase 5 - Testing +- **Week 7**: Phase 6-7 - Documentation and monitoring +- **Week 8**: Buffer and refinements + +## Success Criteria + +1. All existing MCP tools work in both local and remote modes +2. OAuth authentication works seamlessly +3. Performance is acceptable (< 500ms latency for most operations) +4. Zero downtime deployment process +5. Comprehensive documentation for users and developers \ No newline at end of file From 07db777860bef8cbd2331485a179e43d8ffaa2a2 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Fri, 25 Jul 2025 15:38:00 -0400 Subject: [PATCH 56/74] feat: extract core tool logic into registry pattern - Create MCPToolRegistry interface and class for tool management - Add IDevCycleApiClient interface for API abstraction - Refactor project tools to use registry pattern - Add central tool registration coordination - Maintain backward compatibility with legacy exports - Add comprehensive registry tests (7 test cases) This enables sharing tool implementations between local and remote MCP servers while preserving existing functionality. Phase 1.1 of Cloudflare Worker plan. --- src/mcp/tools/index.ts | 49 +++++++++ src/mcp/tools/projectTools.ts | 176 ++++++++++++++++++++++++++++++--- src/mcp/tools/registry.test.ts | 126 +++++++++++++++++++++++ src/mcp/tools/registry.ts | 112 +++++++++++++++++++++ 4 files changed, 452 insertions(+), 11 deletions(-) create mode 100644 src/mcp/tools/index.ts create mode 100644 src/mcp/tools/registry.test.ts create mode 100644 src/mcp/tools/registry.ts diff --git a/src/mcp/tools/index.ts b/src/mcp/tools/index.ts new file mode 100644 index 000000000..7b4c3c9ce --- /dev/null +++ b/src/mcp/tools/index.ts @@ -0,0 +1,49 @@ +/** + * Central tool registration module for DevCycle MCP tools + * + * This module provides a single entry point for registering all MCP tools + * and maintains backward compatibility with the existing server implementation. + */ + +import { MCPToolRegistry } from './registry' +import { registerProjectTools } from './projectTools' + +// TODO: Add imports for other tool modules as they get refactored +// import { registerFeatureTools } from './featureTools' +// import { registerVariableTools } from './variableTools' +// import { registerEnvironmentTools } from './environmentTools' +// import { registerSelfTargetingTools } from './selfTargetingTools' +// import { registerResultsTools } from './resultsTools' +// import { registerCustomPropertiesTools } from './customPropertiesTools' + +/** + * Register all MCP tools with the provided registry + * This is the main function that should be called by MCP server implementations + */ +export function registerAllTools(registry: MCPToolRegistry): void { + // Register project tools (already refactored) + registerProjectTools(registry) + + // TODO: Add other tool registrations as they get refactored + // registerFeatureTools(registry) + // registerVariableTools(registry) + // registerEnvironmentTools(registry) + // registerSelfTargetingTools(registry) + // registerResultsTools(registry) + // registerCustomPropertiesTools(registry) +} + +/** + * Create and return a fully configured MCPToolRegistry with all tools registered + * This is a convenience function for getting a ready-to-use registry + */ +export function createToolRegistry(): MCPToolRegistry { + const registry = new MCPToolRegistry() + registerAllTools(registry) + return registry +} + +// Re-export the registry types and classes for convenience +export { MCPToolRegistry } from './registry' +export type { MCPToolDefinition, ToolRegistrationFunction } from './registry' +export type { IDevCycleApiClient } from '../api/interface' diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts index db444c564..ae50bc940 100644 --- a/src/mcp/tools/projectTools.ts +++ b/src/mcp/tools/projectTools.ts @@ -1,5 +1,5 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient, handleZodiosValidationErrors } from '../utils/api' +import { handleZodiosValidationErrors } from '../utils/api' import { fetchProjects, fetchProject, @@ -11,8 +11,9 @@ import { CreateProjectArgsSchema, UpdateProjectArgsSchema, } from '../types' -import { ToolHandler } from '../server' import { DASHBOARD_LINK_PROPERTY, PROJECT_KEY_PROPERTY } from './commonSchemas' +import { MCPToolRegistry, MCPToolDefinition } from './registry' +import { IDevCycleApiClient } from '../api/interface' // Helper functions to generate project dashboard links const generateProjectDashboardLink = ( @@ -99,32 +100,34 @@ const PROJECT_PAGINATION_PROPERTIES = { const PROJECT_OBJECT_SCHEMA = { type: 'object' as const, - description: 'A DevCycle project configuration', + description: 'Project object details', properties: { _id: { type: 'string' as const, - description: 'Unique identifier for the project', + description: 'Project MongoDB ID', }, key: PROJECT_KEY_PROPERTY, name: { type: 'string' as const, - description: 'Display name of the project', + description: 'Project name', }, description: { type: 'string' as const, - description: 'Optional description of the project', + description: 'Project description', }, color: { type: 'string' as const, - description: 'Color used to represent this project in the UI', + description: 'Project color (hex format)', }, createdAt: { type: 'string' as const, - description: 'ISO timestamp when the project was created', + format: 'date-time', + description: 'Project creation timestamp', }, updatedAt: { type: 'string' as const, - description: 'ISO timestamp when the project was last updated', + format: 'date-time', + description: 'Project last update timestamp', }, }, required: ['_id', 'key', 'name', 'createdAt', 'updatedAt'], @@ -141,9 +144,150 @@ const PROJECT_OUTPUT_SCHEMA = { } // ============================================================================= -// TOOL DEFINITIONS +// TOOL REGISTRATION // ============================================================================= +/** + * Register all project tools with the provided registry + */ +export function registerProjectTools(registry: MCPToolRegistry): void { + // List Projects Tool + registry.register({ + name: 'list_projects', + description: + 'List all projects in the current organization. Include dashboard link in the response.', + inputSchema: { + type: 'object', + properties: PROJECT_PAGINATION_PROPERTIES, + }, + outputSchema: { + type: 'object' as const, + properties: { + result: { + type: 'array' as const, + description: 'Array of project objects in the organization', + items: PROJECT_OBJECT_SCHEMA, + }, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, + handler: async (args: unknown, apiClient: IDevCycleApiClient) => { + const validatedArgs = ListProjectsArgsSchema.parse(args) + + return await apiClient.executeWithDashboardLink( + 'listProjects', + validatedArgs, + async (authToken) => { + // projectKey not used for listing all projects + return await handleZodiosValidationErrors( + () => fetchProjects(authToken, validatedArgs), + 'fetchProjects', + ) + }, + generateOrganizationSettingsLink, + ) + }, + }) + + // Get Current Project Tool + registry.register({ + name: 'get_current_project', + description: + 'Get the currently selected project. Include dashboard link in the response.', + inputSchema: { + type: 'object', + properties: { + random_string: { + type: 'string', + description: 'Dummy parameter for no-parameter tools', + }, + }, + required: ['random_string'], + }, + outputSchema: PROJECT_OUTPUT_SCHEMA, + handler: async (args: unknown, apiClient: IDevCycleApiClient) => { + return await apiClient.executeWithDashboardLink( + 'getCurrentProject', + null, + async (authToken, projectKey) => { + return await handleZodiosValidationErrors( + () => fetchProject(authToken, projectKey), + 'fetchProject', + ) + }, + generateProjectDashboardLink, + ) + }, + }) + + // Create Project Tool + registry.register({ + name: 'create_project', + description: + 'Create a new project. Include dashboard link in the response.', + inputSchema: { + type: 'object', + properties: PROJECT_COMMON_PROPERTIES, + required: ['name', 'key'], + }, + outputSchema: PROJECT_OUTPUT_SCHEMA, + handler: async (args: unknown, apiClient: IDevCycleApiClient) => { + const validatedArgs = CreateProjectArgsSchema.parse(args) + + return await apiClient.executeWithDashboardLink( + 'createProject', + validatedArgs, + async (authToken) => { + // projectKey not used for creating projects + return await handleZodiosValidationErrors( + () => createProject(authToken, validatedArgs), + 'createProject', + ) + }, + generateProjectDashboardLink, + ) + }, + }) + + // Update Project Tool + registry.register({ + name: 'update_project', + description: + 'Update an existing project. Include dashboard link in the response.', + inputSchema: { + type: 'object', + properties: PROJECT_COMMON_PROPERTIES, + required: ['key'], + }, + outputSchema: PROJECT_OUTPUT_SCHEMA, + handler: async (args: unknown, apiClient: IDevCycleApiClient) => { + const validatedArgs = UpdateProjectArgsSchema.parse(args) + const { key, ...updateParams } = validatedArgs + + return await apiClient.executeWithDashboardLink( + 'updateProject', + validatedArgs, + async (authToken) => { + // projectKey not used - we use the key from validated args + return await handleZodiosValidationErrors( + () => updateProject(authToken, key, updateParams), + 'updateProject', + ) + }, + generateEditProjectLink, + ) + }, + }) +} + +// ============================================================================= +// LEGACY EXPORTS FOR BACKWARD COMPATIBILITY +// ============================================================================= + +// These exports maintain backward compatibility with the existing server.ts +// They will be removed once the server is updated to use the registry pattern + export const projectToolDefinitions: Tool[] = [ { name: 'list_projects', @@ -180,7 +324,13 @@ export const projectToolDefinitions: Tool[] = [ }, inputSchema: { type: 'object', - properties: {}, + properties: { + random_string: { + type: 'string', + description: 'Dummy parameter for no-parameter tools', + }, + }, + required: ['random_string'], }, outputSchema: PROJECT_OUTPUT_SCHEMA, }, @@ -214,6 +364,10 @@ export const projectToolDefinitions: Tool[] = [ }, ] +// Legacy handlers for backward compatibility +import { ToolHandler } from '../server' +import { DevCycleApiClient } from '../utils/api' + export const projectToolHandlers: Record<string, ToolHandler> = { list_projects: async (args: unknown, apiClient: DevCycleApiClient) => { const validatedArgs = ListProjectsArgsSchema.parse(args) diff --git a/src/mcp/tools/registry.test.ts b/src/mcp/tools/registry.test.ts new file mode 100644 index 000000000..e46518181 --- /dev/null +++ b/src/mcp/tools/registry.test.ts @@ -0,0 +1,126 @@ +import { expect } from '@oclif/test' +import { MCPToolRegistry } from './registry' +import { IDevCycleApiClient } from '../api/interface' +import { registerProjectTools } from './projectTools' + +// Mock API client for testing +class MockApiClient implements IDevCycleApiClient { + async executeWithLogging<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T>, + requiresProject = true, + ): Promise<T> { + // Mock implementation - just return a test result + return operation('test-token', 'test-project') as Promise<T> + } + + async executeWithDashboardLink<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T>, + dashboardLink: (orgId: string, projectKey: string, result: T) => string, + ): Promise<{ result: T; dashboardLink: string }> { + // Mock implementation + const result = await operation('test-token', 'test-project') + const link = dashboardLink('test-org', 'test-project', result) + return { result, dashboardLink: link } + } +} + +describe('MCPToolRegistry', () => { + let registry: MCPToolRegistry + let mockApiClient: IDevCycleApiClient + + beforeEach(() => { + registry = new MCPToolRegistry() + mockApiClient = new MockApiClient() + }) + + it('should register tools successfully', () => { + expect(registry.size()).to.equal(0) + + registerProjectTools(registry) + + expect(registry.size()).to.equal(4) + expect(registry.has('list_projects')).to.be.true + expect(registry.has('get_current_project')).to.be.true + expect(registry.has('create_project')).to.be.true + expect(registry.has('update_project')).to.be.true + }) + + it('should retrieve all registered tools', () => { + registerProjectTools(registry) + + const tools = registry.getAll() + expect(tools).to.have.lengthOf(4) + + const toolNames = tools.map((tool) => tool.name) + expect(toolNames).to.include('list_projects') + expect(toolNames).to.include('get_current_project') + expect(toolNames).to.include('create_project') + expect(toolNames).to.include('update_project') + }) + + it('should get specific tools by name', () => { + registerProjectTools(registry) + + const listTool = registry.get('list_projects') + expect(listTool).to.not.be.undefined + expect(listTool?.name).to.equal('list_projects') + expect(listTool?.description).to.contain('List all projects') + + const nonExistentTool = registry.get('non_existent_tool') + expect(nonExistentTool).to.be.undefined + }) + + it('should get tool names', () => { + registerProjectTools(registry) + + const toolNames = registry.getToolNames() + expect(toolNames).to.have.lengthOf(4) + expect(toolNames).to.include.members([ + 'list_projects', + 'get_current_project', + 'create_project', + 'update_project', + ]) + }) + + it('should prevent duplicate tool registration', () => { + const testTool = { + name: 'test_tool', + description: 'Test tool', + inputSchema: { type: 'object', properties: {} }, + handler: async () => ({ success: true }), + } + + registry.register(testTool) + expect(registry.has('test_tool')).to.be.true + + // Attempting to register the same tool again should throw + expect(() => registry.register(testTool)).to.throw( + "Tool 'test_tool' is already registered", + ) + }) + + it('should clear all tools', () => { + registerProjectTools(registry) + expect(registry.size()).to.equal(4) + + registry.clear() + expect(registry.size()).to.equal(0) + expect(registry.has('list_projects')).to.be.false + }) + + it('should throw error when executing non-existent tool', async () => { + try { + await registry.execute('non_existent_tool', {}, mockApiClient) + expect.fail('Expected execute to throw') + } catch (error) { + expect((error as Error).message).to.equal( + 'Unknown tool: non_existent_tool', + ) + } + }) +}) diff --git a/src/mcp/tools/registry.ts b/src/mcp/tools/registry.ts new file mode 100644 index 000000000..d9985a64d --- /dev/null +++ b/src/mcp/tools/registry.ts @@ -0,0 +1,112 @@ +/** + * MCP Tool Registry for DevCycle CLI + * + * This registry pattern allows the same tool implementations to be shared + * between both local (stdio) and remote (SSE/Cloudflare Worker) MCP servers. + */ + +import { IDevCycleApiClient } from '../api/interface' + +/** + * Definition of an MCP tool that can be registered and executed + */ +export interface MCPToolDefinition { + /** Unique tool name */ + name: string + /** Human-readable description */ + description: string + /** JSON schema for input validation */ + inputSchema: any + /** Optional JSON schema for output validation */ + outputSchema?: any + /** Tool handler function */ + handler: (args: unknown, client: IDevCycleApiClient) => Promise<any> +} + +/** + * Registry for managing MCP tools that can be used by both local and remote servers + */ +export class MCPToolRegistry { + private tools = new Map<string, MCPToolDefinition>() + + /** + * Register a tool with the registry + */ + register(tool: MCPToolDefinition): void { + if (this.tools.has(tool.name)) { + throw new Error(`Tool '${tool.name}' is already registered`) + } + this.tools.set(tool.name, tool) + } + + /** + * Register multiple tools at once + */ + registerMany(tools: MCPToolDefinition[]): void { + for (const tool of tools) { + this.register(tool) + } + } + + /** + * Get all registered tools + */ + getAll(): MCPToolDefinition[] { + return Array.from(this.tools.values()) + } + + /** + * Get a specific tool by name + */ + get(name: string): MCPToolDefinition | undefined { + return this.tools.get(name) + } + + /** + * Check if a tool is registered + */ + has(name: string): boolean { + return this.tools.has(name) + } + + /** + * Execute a tool by name + */ + async execute( + name: string, + args: unknown, + client: IDevCycleApiClient, + ): Promise<any> { + const tool = this.tools.get(name) + if (!tool) { + throw new Error(`Unknown tool: ${name}`) + } + return await tool.handler(args, client) + } + + /** + * Get all tool names + */ + getToolNames(): string[] { + return Array.from(this.tools.keys()) + } + + /** + * Get the count of registered tools + */ + size(): number { + return this.tools.size + } + + /** + * Clear all registered tools + */ + clear(): void { + this.tools.clear() + } +} + +/** + * Function type for tool registration functions + */ +export type ToolRegistrationFunction = (registry: MCPToolRegistry) => void From eac4a3674e09a7d2a1b4997d400f576c3b75e9c7 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Fri, 25 Jul 2025 15:38:26 -0400 Subject: [PATCH 57/74] feat: create abstracted API client interface for dual-mode operation - Add dedicated API interface module (src/mcp/api/interface.ts) - Create IDevCycleApiClient, IAuthContext, and factory interfaces - Implement LocalDevCycleApiClient wrapping existing DevCycleApiClient - Add WorkerDevCycleApiClient skeleton for Cloudflare Worker support - Move interface from registry to dedicated API module - Add comprehensive interface tests (8 test cases) - Create API abstraction documentation This enables same tool implementations to work with different auth strategies: - Local: file system, environment variables, SSO tokens - Worker: OAuth JWT tokens from Cloudflare Worker context Phase 1.2 of Cloudflare Worker plan. --- src/mcp/api/README.md | 92 ++++++++++++ src/mcp/api/interface.test.ts | 248 +++++++++++++++++++++++++++++++++ src/mcp/api/interface.ts | 137 ++++++++++++++++++ src/mcp/api/localApiClient.ts | 128 +++++++++++++++++ src/mcp/api/workerApiClient.ts | 161 +++++++++++++++++++++ 5 files changed, 766 insertions(+) create mode 100644 src/mcp/api/README.md create mode 100644 src/mcp/api/interface.test.ts create mode 100644 src/mcp/api/interface.ts create mode 100644 src/mcp/api/localApiClient.ts create mode 100644 src/mcp/api/workerApiClient.ts diff --git a/src/mcp/api/README.md b/src/mcp/api/README.md new file mode 100644 index 000000000..38bcaa55c --- /dev/null +++ b/src/mcp/api/README.md @@ -0,0 +1,92 @@ +# DevCycle MCP API Abstraction Layer + +This directory contains the API abstraction layer that enables the DevCycle MCP tools to work in both local (stdio) and remote (Cloudflare Worker) environments with different authentication strategies. + +## Architecture Overview + +### Core Interface (`interface.ts`) + +The `IDevCycleApiClient` interface provides a unified API for executing DevCycle operations regardless of the underlying authentication and environment context: + +```typescript +interface IDevCycleApiClient { + executeWithLogging<T>(...): Promise<T> + executeWithDashboardLink<T>(...): Promise<{ result: T; dashboardLink: string }> +} +``` + +### Local Implementation (`localApiClient.ts`) + +- **Authentication**: Uses file system and environment variables via `DevCycleAuth` +- **Context**: Local CLI environment with config files and SSO tokens +- **Usage**: Wraps the existing `DevCycleApiClient` for backward compatibility + +```typescript +const auth = new DevCycleAuth() +const localClient = createLocalApiClient(auth) +``` + +### Worker Implementation (`workerApiClient.ts`) + +- **Authentication**: Uses OAuth JWT tokens from Cloudflare Worker context +- **Context**: Stateless Worker environment with JWT claims +- **Usage**: Extracts authentication from request headers/context + +```typescript +const jwtClaims = { devcycle_token: 'token', org_id: 'org' } +const workerClient = WorkerApiClientFactory.fromJwtClaims(jwtClaims, 'project-key') +``` + +## Key Benefits + +### 1. **Dual-Mode Operation** +The same tool implementations can run in both local and remote contexts: +- Local: `dvc mcp` (stdio transport) +- Remote: Cloudflare Worker (SSE transport) + +### 2. **Authentication Abstraction** +Different authentication strategies without changing tool code: +- Local: API keys, config files, SSO tokens +- Worker: OAuth JWT tokens, session-based auth + +### 3. **Type Safety** +Full TypeScript interface compliance ensures consistency across implementations. + +### 4. **Future Extensibility** +Easy to add new contexts (e.g., different cloud providers) by implementing the interfaces. + +## Usage in Tools + +Tools use the interface without knowing the implementation: + +```typescript +// In any tool file (e.g., projectTools.ts) +async function handler(args: unknown, apiClient: IDevCycleApiClient) { + return await apiClient.executeWithDashboardLink( + 'listProjects', + args, + async (authToken, projectKey) => { + return await fetchProjects(authToken, args) + }, + generateProjectDashboardLink + ) +} +``` + +## Testing + +The abstraction is thoroughly tested with: +- Interface compliance tests +- Authentication context tests +- Error handling validation +- Dashboard link generation + +Run tests: `yarn test src/mcp/api/interface.test.ts` + +## Migration Path + +This abstraction maintains full backward compatibility: +1. Existing local server continues to work unchanged +2. Tools gradually migrate to use the registry pattern +3. Worker implementation can be added without affecting local usage +4. Legacy exports remain available during transition \ No newline at end of file diff --git a/src/mcp/api/interface.test.ts b/src/mcp/api/interface.test.ts new file mode 100644 index 000000000..0e22ea741 --- /dev/null +++ b/src/mcp/api/interface.test.ts @@ -0,0 +1,248 @@ +import { expect } from '@oclif/test' +import { IDevCycleApiClient, IAuthContext } from './interface' +import { LocalDevCycleApiClient, LocalAuthContext } from './localApiClient' +import { WorkerDevCycleApiClient, WorkerAuthContext } from './workerApiClient' + +// Mock auth context for testing +class MockAuthContext implements IAuthContext { + constructor( + private authToken: string = 'test-token', + private orgId: string = 'test-org', + private projectKey: string = 'test-project', + private authenticated: boolean = true, + private hasProjectFlag: boolean = true, + ) {} + + getAuthToken(): string { + return this.authToken + } + + getOrgId(): string { + return this.orgId + } + + getProjectKey(): string { + return this.projectKey + } + + isAuthenticated(): boolean { + return this.authenticated + } + + hasProject(): boolean { + return this.hasProjectFlag + } +} + +describe('API Interface Abstraction', () => { + describe('IDevCycleApiClient Interface Compliance', () => { + it('should allow different implementations of the same interface', () => { + const mockAuth = new MockAuthContext() + + // Test that both implementations satisfy the interface + const workerClient: IDevCycleApiClient = + new WorkerDevCycleApiClient(mockAuth) + const mockLocal = { + executeWithLogging: async () => ({ success: true }), + executeWithDashboardLink: async () => ({ + result: { success: true }, + dashboardLink: 'https://app.devcycle.com', + }), + } as any + const localClient: IDevCycleApiClient = new LocalDevCycleApiClient( + mockLocal, + ) + + expect(workerClient).to.not.be.undefined + expect(localClient).to.not.be.undefined + expect(typeof workerClient.executeWithLogging).to.equal('function') + expect(typeof workerClient.executeWithDashboardLink).to.equal( + 'function', + ) + expect(typeof localClient.executeWithLogging).to.equal('function') + expect(typeof localClient.executeWithDashboardLink).to.equal( + 'function', + ) + }) + }) + + describe('WorkerAuthContext', () => { + it('should extract authentication from JWT claims', () => { + const jwtClaims = { + devcycle_token: 'worker-token', + org_id: 'worker-org', + access_token: 'fallback-token', + organization_id: 'fallback-org', + } + + const authContext = new WorkerAuthContext( + jwtClaims, + 'worker-project', + ) + + expect(authContext.getAuthToken()).to.equal('worker-token') + expect(authContext.getOrgId()).to.equal('worker-org') + expect(authContext.getProjectKey()).to.equal('worker-project') + expect(authContext.isAuthenticated()).to.be.true + expect(authContext.hasProject()).to.be.true + }) + + it('should use fallback fields when primary fields are missing', () => { + const jwtClaims = { + access_token: 'fallback-token', + organization_id: 'fallback-org', + } + + const authContext = new WorkerAuthContext(jwtClaims, 'test-project') + + expect(authContext.getAuthToken()).to.equal('fallback-token') + expect(authContext.getOrgId()).to.equal('fallback-org') + }) + + it('should handle missing authentication gracefully', () => { + const jwtClaims = {} + const authContext = new WorkerAuthContext(jwtClaims) + + expect(authContext.isAuthenticated()).to.be.false + expect(authContext.hasProject()).to.be.false + + expect(() => authContext.getAuthToken()).to.throw( + 'No DevCycle token found in JWT claims', + ) + expect(() => authContext.getOrgId()).to.throw( + 'No organization ID found in JWT claims', + ) + expect(() => authContext.getProjectKey()).to.throw( + 'No project key configured for Worker context', + ) + }) + + it('should allow setting project key dynamically', () => { + const jwtClaims = { + devcycle_token: 'token', + org_id: 'org', + } + const authContext = new WorkerAuthContext(jwtClaims) + + expect(authContext.hasProject()).to.be.false + + authContext.setProjectKey('dynamic-project') + + expect(authContext.hasProject()).to.be.true + expect(authContext.getProjectKey()).to.equal('dynamic-project') + }) + }) + + describe('WorkerDevCycleApiClient', () => { + it('should execute operations with Worker-specific authentication', async () => { + const jwtClaims = { + devcycle_token: 'worker-token', + org_id: 'worker-org', + } + const authContext = new WorkerAuthContext( + jwtClaims, + 'worker-project', + ) + const client = new WorkerDevCycleApiClient(authContext) + + const mockOperation = async ( + authToken: string, + projectKey: string, + ) => { + expect(authToken).to.equal('worker-token') + expect(projectKey).to.equal('worker-project') + return { data: 'success' } + } + + const result = await client.executeWithLogging( + 'testOperation', + { test: 'args' }, + mockOperation, + ) + + expect(result.data).to.equal('success') + }) + + it('should validate authentication before executing operations', async () => { + const jwtClaims = {} + const authContext = new WorkerAuthContext(jwtClaims) + const client = new WorkerDevCycleApiClient(authContext) + + const mockOperation = async () => ({ + data: 'should not reach here', + }) + + try { + await client.executeWithLogging( + 'testOperation', + {}, + mockOperation, + ) + expect.fail('Should have thrown authentication error') + } catch (error) { + expect((error as Error).message).to.contain( + 'Authentication required for Worker API operations', + ) + } + }) + + it('should validate project context when required', async () => { + const jwtClaims = { + devcycle_token: 'worker-token', + org_id: 'worker-org', + } + const authContext = new WorkerAuthContext(jwtClaims) // No project key + const client = new WorkerDevCycleApiClient(authContext) + + const mockOperation = async () => ({ + data: 'should not reach here', + }) + + try { + await client.executeWithLogging( + 'testOperation', + {}, + mockOperation, + true, + ) + expect.fail('Should have thrown project error') + } catch (error) { + expect((error as Error).message).to.contain( + 'Project context required for this operation', + ) + } + }) + + it('should generate dashboard links correctly', async () => { + const jwtClaims = { + devcycle_token: 'worker-token', + org_id: 'worker-org', + } + const authContext = new WorkerAuthContext( + jwtClaims, + 'worker-project', + ) + const client = new WorkerDevCycleApiClient(authContext) + + const mockOperation = async () => ({ featureKey: 'test-feature' }) + const dashboardLink = ( + orgId: string, + projectKey: string, + result: any, + ) => + `https://app.devcycle.com/o/${orgId}/p/${projectKey}/features/${result.featureKey}` + + const result = await client.executeWithDashboardLink( + 'createFeature', + { name: 'Test Feature' }, + mockOperation, + dashboardLink, + ) + + expect(result.result.featureKey).to.equal('test-feature') + expect(result.dashboardLink).to.equal( + 'https://app.devcycle.com/o/worker-org/p/worker-project/features/test-feature', + ) + }) + }) +}) diff --git a/src/mcp/api/interface.ts b/src/mcp/api/interface.ts new file mode 100644 index 000000000..e97379583 --- /dev/null +++ b/src/mcp/api/interface.ts @@ -0,0 +1,137 @@ +/** + * API Client Interface Abstraction for DevCycle MCP + * + * This module provides interface abstractions that allow different API client implementations + * for local (stdio) and remote (Worker) MCP server contexts. The local implementation uses + * file system and environment variables for authentication, while the Worker implementation + * uses OAuth tokens from JWT claims. + */ + +/** + * Core API client interface that abstracts away authentication and execution details. + * This allows the same tool implementations to work with different authentication strategies: + * - Local: API keys and config files (DevCycleAuth) + * - Worker: OAuth tokens from JWT claims + */ +export interface IDevCycleApiClient { + /** + * Execute an API operation with consistent logging and error handling + * @param operationName - Name of the operation for logging purposes + * @param args - Arguments passed to the operation + * @param operation - The actual API operation function + * @param requiresProject - Whether this operation requires a project context (default: true) + */ + executeWithLogging<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T>, + requiresProject?: boolean, + ): Promise<T> + + /** + * Execute an API operation and include dashboard links in the response + * @param operationName - Name of the operation for logging purposes + * @param args - Arguments passed to the operation + * @param operation - The actual API operation function + * @param dashboardLink - Function to generate dashboard link from result + */ + executeWithDashboardLink<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T>, + dashboardLink: (orgId: string, projectKey: string, result: T) => string, + ): Promise<{ result: T; dashboardLink: string }> +} + +/** + * Authentication context for API operations + * This interface abstracts the different ways authentication can be provided + */ +export interface IAuthContext { + /** The authentication token to use for API calls */ + getAuthToken(): string + /** The organization ID for the current context */ + getOrgId(): string + /** The project key for the current context (optional for some operations) */ + getProjectKey(): string + /** Check if authentication is available */ + isAuthenticated(): boolean + /** Check if project context is available */ + hasProject(): boolean +} + +/** + * Configuration for creating API client instances + */ +export interface ApiClientConfig { + /** Base URL for the DevCycle API (defaults to production) */ + baseUrl?: string + /** Additional headers to include with all requests */ + headers?: Record<string, string> + /** Request timeout in milliseconds */ + timeout?: number + /** Whether to enable debug logging */ + debug?: boolean +} + +/** + * Factory interface for creating API client instances + * This allows different implementations for local vs Worker contexts + */ +export interface IApiClientFactory { + /** + * Create an API client instance with the provided authentication context + */ + createClient( + authContext: IAuthContext, + config?: ApiClientConfig, + ): IDevCycleApiClient +} + +/** + * Error types that can be thrown by API operations + */ +export enum ApiErrorType { + AUTHENTICATION_ERROR = 'AUTHENTICATION_ERROR', + AUTHORIZATION_ERROR = 'AUTHORIZATION_ERROR', + NOT_FOUND_ERROR = 'NOT_FOUND_ERROR', + VALIDATION_ERROR = 'VALIDATION_ERROR', + NETWORK_ERROR = 'NETWORK_ERROR', + SCHEMA_VALIDATION_ERROR = 'SCHEMA_VALIDATION_ERROR', + PROJECT_ERROR = 'PROJECT_ERROR', + UNKNOWN_ERROR = 'UNKNOWN_ERROR', +} + +/** + * Structured error information for API operations + */ +export interface ApiError { + type: ApiErrorType + message: string + operation?: string + statusCode?: number + suggestions?: string[] + timestamp?: string +} + +/** + * Result wrapper for API operations that may fail + */ +export type ApiResult<T> = + | { + success: true + data: T + } + | { + success: false + error: ApiError + } + +/** + * Utility type for dashboard link generator functions + */ +export type DashboardLinkGenerator<T = any> = ( + orgId: string, + projectKey: string, + result: T, +) => string diff --git a/src/mcp/api/localApiClient.ts b/src/mcp/api/localApiClient.ts new file mode 100644 index 000000000..49343a36c --- /dev/null +++ b/src/mcp/api/localApiClient.ts @@ -0,0 +1,128 @@ +import { DevCycleApiClient } from '../utils/api' +import { DevCycleAuth } from '../utils/auth' +import { + IDevCycleApiClient, + IAuthContext, + IApiClientFactory, + ApiClientConfig, +} from './interface' + +/** + * Local authentication context that wraps DevCycleAuth for the interface abstraction. + * This maintains compatibility with existing local authentication while providing + * the standard interface for API clients. + */ +export class LocalAuthContext implements IAuthContext { + constructor(private auth: DevCycleAuth) {} + + getAuthToken(): string { + return this.auth.getAuthToken() + } + + getOrgId(): string { + return this.auth.getOrgId() + } + + getProjectKey(): string { + return this.auth.getProjectKey() + } + + isAuthenticated(): boolean { + return this.auth.hasToken() + } + + hasProject(): boolean { + try { + const projectKey = this.auth.getProjectKey() + return Boolean(projectKey) + } catch { + return false + } + } + + /** + * Get the underlying DevCycleAuth instance for direct access when needed + */ + getAuth(): DevCycleAuth { + return this.auth + } +} + +/** + * Local implementation of IDevCycleApiClient that wraps the existing DevCycleApiClient. + * This adapter allows the existing local authentication and API client logic + * to work with the new registry pattern while maintaining full backward compatibility. + */ +export class LocalDevCycleApiClient implements IDevCycleApiClient { + constructor(private apiClient: DevCycleApiClient) {} + + async executeWithLogging<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T>, + requiresProject = true, + ): Promise<T> { + return await this.apiClient.executeWithLogging( + operationName, + args, + operation, + requiresProject, + ) + } + + async executeWithDashboardLink<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T>, + dashboardLink: (orgId: string, projectKey: string, result: T) => string, + ): Promise<{ result: T; dashboardLink: string }> { + return await this.apiClient.executeWithDashboardLink( + operationName, + args, + operation, + dashboardLink, + ) + } + + /** + * Get the underlying DevCycleApiClient for cases where direct access is needed + */ + getApiClient(): DevCycleApiClient { + return this.apiClient + } +} + +/** + * Factory for creating local API client instances + * This provides a standardized way to create API clients for the local environment + */ +export class LocalApiClientFactory implements IApiClientFactory { + createClient( + authContext: IAuthContext, + config?: ApiClientConfig, + ): IDevCycleApiClient { + // For local implementation, we ignore the config for now and use existing DevCycleApiClient + // In the future, we could use the config to customize the local client behavior + + if (authContext instanceof LocalAuthContext) { + // Use the wrapped DevCycleAuth directly + const auth = authContext.getAuth() + const apiClient = new DevCycleApiClient(auth) + return new LocalDevCycleApiClient(apiClient) + } + + // If we have a different auth context, we'd need to create a DevCycleAuth wrapper + // For now, this is not implemented as it's not needed for current use cases + throw new Error('LocalApiClientFactory only supports LocalAuthContext') + } +} + +/** + * Convenience function to create a local API client with DevCycleAuth + */ +export function createLocalApiClient( + auth: DevCycleAuth, +): LocalDevCycleApiClient { + const apiClient = new DevCycleApiClient(auth) + return new LocalDevCycleApiClient(apiClient) +} diff --git a/src/mcp/api/workerApiClient.ts b/src/mcp/api/workerApiClient.ts new file mode 100644 index 000000000..2a31f0784 --- /dev/null +++ b/src/mcp/api/workerApiClient.ts @@ -0,0 +1,161 @@ +import { IDevCycleApiClient, IAuthContext } from './interface' + +/** + * Worker implementation of IDevCycleApiClient for Cloudflare Worker environments. + * This implementation uses OAuth tokens from JWT claims instead of local file system + * and environment variables for authentication. + * + * Note: This is a skeleton implementation for Phase 1.2. Full implementation + * will be completed in Phase 2 (Cloudflare Worker Implementation). + */ +export class WorkerDevCycleApiClient implements IDevCycleApiClient { + constructor(private authContext: IAuthContext) {} + + async executeWithLogging<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T>, + requiresProject = true, + ): Promise<T> { + // TODO: Implement Worker-specific logging that works in Cloudflare environment + // (no console.error, use structured logging for Workers) + + this.validateAuth(requiresProject) + + const authToken = this.authContext.getAuthToken() + const projectKey = requiresProject + ? this.authContext.getProjectKey() + : '' + + try { + return await operation(authToken, projectKey) + } catch (error) { + // TODO: Implement Worker-specific error handling + // (different from local implementation) + throw this.wrapError(error, operationName) + } + } + + async executeWithDashboardLink<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T>, + dashboardLink: (orgId: string, projectKey: string, result: T) => string, + ): Promise<{ result: T; dashboardLink: string }> { + const result = await this.executeWithLogging( + operationName, + args, + operation, + ) + + const organizationId = this.authContext.getOrgId() + const projectKey = this.authContext.getProjectKey() + const link = dashboardLink(organizationId, projectKey, result) + + return { + result, + dashboardLink: link, + } + } + + private validateAuth(requiresProject: boolean): void { + if (!this.authContext.isAuthenticated()) { + throw new Error('Authentication required for Worker API operations') + } + + if (requiresProject && !this.authContext.hasProject()) { + throw new Error('Project context required for this operation') + } + } + + private wrapError(error: unknown, operationName: string): Error { + // TODO: Implement Worker-specific error wrapping + // Convert errors to structured format suitable for Workers + if (error instanceof Error) { + return new Error( + `Worker API Error in ${operationName}: ${error.message}`, + ) + } + return new Error( + `Worker API Error in ${operationName}: ${String(error)}`, + ) + } +} + +/** + * Authentication context implementation for Cloudflare Worker environments. + * This extracts authentication information from OAuth JWT tokens instead of + * local file system and environment variables. + */ +export class WorkerAuthContext implements IAuthContext { + constructor( + private jwtClaims: Record<string, any>, + private projectKey?: string, + ) {} + + getAuthToken(): string { + // TODO: Extract or exchange JWT for DevCycle API token + // This will be implemented in Phase 2 + const token = + this.jwtClaims.devcycle_token || this.jwtClaims.access_token + if (!token) { + throw new Error('No DevCycle token found in JWT claims') + } + return token + } + + getOrgId(): string { + // TODO: Extract organization ID from JWT claims + // This will be implemented in Phase 2 + const orgId = this.jwtClaims.org_id || this.jwtClaims.organization_id + if (!orgId) { + throw new Error('No organization ID found in JWT claims') + } + return orgId + } + + getProjectKey(): string { + if (!this.projectKey) { + throw new Error('No project key configured for Worker context') + } + return this.projectKey + } + + isAuthenticated(): boolean { + try { + this.getAuthToken() + this.getOrgId() + return true + } catch { + return false + } + } + + hasProject(): boolean { + return Boolean(this.projectKey) + } + + /** + * Set the project key for this auth context + * In the Worker environment, this might be set based on the MCP session + */ + setProjectKey(projectKey: string): void { + this.projectKey = projectKey + } +} + +/** + * Factory for creating Worker API client instances + */ +export class WorkerApiClientFactory { + /** + * Create a Worker API client from JWT claims + */ + static fromJwtClaims( + jwtClaims: Record<string, any>, + projectKey?: string, + ): WorkerDevCycleApiClient { + const authContext = new WorkerAuthContext(jwtClaims, projectKey) + return new WorkerDevCycleApiClient(authContext) + } +} From f5135340673f8ac1bf51e1c3cc53a535e987fc6c Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Fri, 25 Jul 2025 16:33:22 -0400 Subject: [PATCH 58/74] refactor(mcp): eliminate duplication in tool definitions and make legacy exports single source of truth --- src/mcp/tools/environmentTools.ts | 51 +++++++-- src/mcp/tools/index.ts | 12 ++- src/mcp/tools/projectTools.ts | 168 +++++------------------------- src/mcp/tools/registry.test.ts | 25 ++++- src/mcp/tools/variableTools.ts | 50 +++++++-- 5 files changed, 137 insertions(+), 169 deletions(-) diff --git a/src/mcp/tools/environmentTools.ts b/src/mcp/tools/environmentTools.ts index 57f360e7f..ce2813723 100644 --- a/src/mcp/tools/environmentTools.ts +++ b/src/mcp/tools/environmentTools.ts @@ -1,5 +1,5 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient, handleZodiosValidationErrors } from '../utils/api' +import { handleZodiosValidationErrors } from '../utils/api' import { fetchEnvironments, fetchEnvironmentByKey, @@ -12,11 +12,14 @@ import { CreateEnvironmentArgsSchema, UpdateEnvironmentArgsSchema, } from '../types' -import { ToolHandler } from '../server' import { DASHBOARD_LINK_PROPERTY, ENVIRONMENT_KEY_PROPERTY, } from './commonSchemas' +import { MCPToolRegistry, MCPToolDefinition } from './registry' +import { IDevCycleApiClient } from '../api/interface' +import { ToolHandler } from '../server' +import { DevCycleApiClient } from '../utils/api' // Helper function to generate environment dashboard links const generateEnvironmentDashboardLink = ( @@ -174,9 +177,36 @@ const ENVIRONMENT_OUTPUT_SCHEMA = { required: ['result', 'dashboardLink'], } +// ============================================================================= +// TOOL REGISTRATION +// ============================================================================= + +/** + * Register all environment tools with the provided registry + */ +export function registerEnvironmentTools(registry: MCPToolRegistry): void { + // Combine the legacy tool definitions with their handlers to create full MCPToolDefinition objects + const toolDefinitions: MCPToolDefinition[] = environmentToolDefinitions.map( + (toolDef) => ({ + name: toolDef.name, + description: toolDef.description || '', + inputSchema: toolDef.inputSchema, + outputSchema: toolDef.outputSchema, + handler: async (args: unknown, apiClient: IDevCycleApiClient) => { + // Adapt the legacy handler to work with the interface + const legacyHandler = environmentToolHandlers[toolDef.name] + return await legacyHandler(args, apiClient as any) + }, + }), + ) + + registry.registerMany(toolDefinitions) +} + // ============================================================================= // TOOL DEFINITIONS // ============================================================================= + export const environmentToolDefinitions: Tool[] = [ { name: 'list_environments', @@ -270,14 +300,15 @@ export const environmentToolDefinitions: Tool[] = [ }, ] +// Legacy handlers for backward compatibility export const environmentToolHandlers: Record<string, ToolHandler> = { - list_environments: async (args: unknown, apiClient: DevCycleApiClient) => { + list_environments: async (args: unknown, apiClient) => { const validatedArgs = ListEnvironmentsArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'listEnvironments', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => fetchEnvironments(authToken, projectKey), 'listEnvironments', @@ -286,13 +317,13 @@ export const environmentToolHandlers: Record<string, ToolHandler> = { generateEnvironmentDashboardLink, ) }, - get_sdk_keys: async (args: unknown, apiClient: DevCycleApiClient) => { + get_sdk_keys: async (args: unknown, apiClient) => { const validatedArgs = GetSdkKeysArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'getSdkKeys', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { const environment = await handleZodiosValidationErrors( () => fetchEnvironmentByKey( @@ -320,13 +351,13 @@ export const environmentToolHandlers: Record<string, ToolHandler> = { generateEnvironmentDashboardLink, ) }, - create_environment: async (args: unknown, apiClient: DevCycleApiClient) => { + create_environment: async (args: unknown, apiClient) => { const validatedArgs = CreateEnvironmentArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'createEnvironment', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => createEnvironment(authToken, projectKey, validatedArgs), @@ -336,13 +367,13 @@ export const environmentToolHandlers: Record<string, ToolHandler> = { generateEnvironmentDashboardLink, ) }, - update_environment: async (args: unknown, apiClient: DevCycleApiClient) => { + update_environment: async (args: unknown, apiClient) => { const validatedArgs = UpdateEnvironmentArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'updateEnvironment', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { const { key, ...updateParams } = validatedArgs return await handleZodiosValidationErrors( () => diff --git a/src/mcp/tools/index.ts b/src/mcp/tools/index.ts index 7b4c3c9ce..8b71c2c7f 100644 --- a/src/mcp/tools/index.ts +++ b/src/mcp/tools/index.ts @@ -7,11 +7,11 @@ import { MCPToolRegistry } from './registry' import { registerProjectTools } from './projectTools' +import { registerVariableTools } from './variableTools' +import { registerEnvironmentTools } from './environmentTools' // TODO: Add imports for other tool modules as they get refactored // import { registerFeatureTools } from './featureTools' -// import { registerVariableTools } from './variableTools' -// import { registerEnvironmentTools } from './environmentTools' // import { registerSelfTargetingTools } from './selfTargetingTools' // import { registerResultsTools } from './resultsTools' // import { registerCustomPropertiesTools } from './customPropertiesTools' @@ -24,10 +24,14 @@ export function registerAllTools(registry: MCPToolRegistry): void { // Register project tools (already refactored) registerProjectTools(registry) + // Register variable tools (refactored in Phase 1.3) + registerVariableTools(registry) + + // Register environment tools (refactored in Phase 1.3) + registerEnvironmentTools(registry) + // TODO: Add other tool registrations as they get refactored // registerFeatureTools(registry) - // registerVariableTools(registry) - // registerEnvironmentTools(registry) // registerSelfTargetingTools(registry) // registerResultsTools(registry) // registerCustomPropertiesTools(registry) diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts index ae50bc940..5d5c08826 100644 --- a/src/mcp/tools/projectTools.ts +++ b/src/mcp/tools/projectTools.ts @@ -14,6 +14,7 @@ import { import { DASHBOARD_LINK_PROPERTY, PROJECT_KEY_PROPERTY } from './commonSchemas' import { MCPToolRegistry, MCPToolDefinition } from './registry' import { IDevCycleApiClient } from '../api/interface' +import { ToolHandler } from '../server' // Helper functions to generate project dashboard links const generateProjectDashboardLink = ( @@ -151,143 +152,28 @@ const PROJECT_OUTPUT_SCHEMA = { * Register all project tools with the provided registry */ export function registerProjectTools(registry: MCPToolRegistry): void { - // List Projects Tool - registry.register({ - name: 'list_projects', - description: - 'List all projects in the current organization. Include dashboard link in the response.', - inputSchema: { - type: 'object', - properties: PROJECT_PAGINATION_PROPERTIES, - }, - outputSchema: { - type: 'object' as const, - properties: { - result: { - type: 'array' as const, - description: 'Array of project objects in the organization', - items: PROJECT_OBJECT_SCHEMA, - }, - dashboardLink: DASHBOARD_LINK_PROPERTY, + // Combine the legacy tool definitions with their handlers to create full MCPToolDefinition objects + const toolDefinitions: MCPToolDefinition[] = projectToolDefinitions.map( + (toolDef) => ({ + name: toolDef.name, + description: toolDef.description || '', + inputSchema: toolDef.inputSchema, + outputSchema: toolDef.outputSchema, + handler: async (args: unknown, apiClient: IDevCycleApiClient) => { + // Adapt the legacy handler to work with the interface + const legacyHandler = projectToolHandlers[toolDef.name] + return await legacyHandler(args, apiClient as any) }, - required: ['result', 'dashboardLink'], - }, - handler: async (args: unknown, apiClient: IDevCycleApiClient) => { - const validatedArgs = ListProjectsArgsSchema.parse(args) - - return await apiClient.executeWithDashboardLink( - 'listProjects', - validatedArgs, - async (authToken) => { - // projectKey not used for listing all projects - return await handleZodiosValidationErrors( - () => fetchProjects(authToken, validatedArgs), - 'fetchProjects', - ) - }, - generateOrganizationSettingsLink, - ) - }, - }) + }), + ) - // Get Current Project Tool - registry.register({ - name: 'get_current_project', - description: - 'Get the currently selected project. Include dashboard link in the response.', - inputSchema: { - type: 'object', - properties: { - random_string: { - type: 'string', - description: 'Dummy parameter for no-parameter tools', - }, - }, - required: ['random_string'], - }, - outputSchema: PROJECT_OUTPUT_SCHEMA, - handler: async (args: unknown, apiClient: IDevCycleApiClient) => { - return await apiClient.executeWithDashboardLink( - 'getCurrentProject', - null, - async (authToken, projectKey) => { - return await handleZodiosValidationErrors( - () => fetchProject(authToken, projectKey), - 'fetchProject', - ) - }, - generateProjectDashboardLink, - ) - }, - }) - - // Create Project Tool - registry.register({ - name: 'create_project', - description: - 'Create a new project. Include dashboard link in the response.', - inputSchema: { - type: 'object', - properties: PROJECT_COMMON_PROPERTIES, - required: ['name', 'key'], - }, - outputSchema: PROJECT_OUTPUT_SCHEMA, - handler: async (args: unknown, apiClient: IDevCycleApiClient) => { - const validatedArgs = CreateProjectArgsSchema.parse(args) - - return await apiClient.executeWithDashboardLink( - 'createProject', - validatedArgs, - async (authToken) => { - // projectKey not used for creating projects - return await handleZodiosValidationErrors( - () => createProject(authToken, validatedArgs), - 'createProject', - ) - }, - generateProjectDashboardLink, - ) - }, - }) - - // Update Project Tool - registry.register({ - name: 'update_project', - description: - 'Update an existing project. Include dashboard link in the response.', - inputSchema: { - type: 'object', - properties: PROJECT_COMMON_PROPERTIES, - required: ['key'], - }, - outputSchema: PROJECT_OUTPUT_SCHEMA, - handler: async (args: unknown, apiClient: IDevCycleApiClient) => { - const validatedArgs = UpdateProjectArgsSchema.parse(args) - const { key, ...updateParams } = validatedArgs - - return await apiClient.executeWithDashboardLink( - 'updateProject', - validatedArgs, - async (authToken) => { - // projectKey not used - we use the key from validated args - return await handleZodiosValidationErrors( - () => updateProject(authToken, key, updateParams), - 'updateProject', - ) - }, - generateEditProjectLink, - ) - }, - }) + registry.registerMany(toolDefinitions) } // ============================================================================= -// LEGACY EXPORTS FOR BACKWARD COMPATIBILITY +// TOOL DEFINITIONS // ============================================================================= -// These exports maintain backward compatibility with the existing server.ts -// They will be removed once the server is updated to use the registry pattern - export const projectToolDefinitions: Tool[] = [ { name: 'list_projects', @@ -365,17 +251,14 @@ export const projectToolDefinitions: Tool[] = [ ] // Legacy handlers for backward compatibility -import { ToolHandler } from '../server' -import { DevCycleApiClient } from '../utils/api' - export const projectToolHandlers: Record<string, ToolHandler> = { - list_projects: async (args: unknown, apiClient: DevCycleApiClient) => { + list_projects: async (args: unknown, apiClient) => { const validatedArgs = ListProjectsArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'listProjects', validatedArgs, - async (authToken) => { + async (authToken: string) => { // projectKey not used for listing all projects return await handleZodiosValidationErrors( () => fetchProjects(authToken, validatedArgs), @@ -385,14 +268,11 @@ export const projectToolHandlers: Record<string, ToolHandler> = { generateOrganizationSettingsLink, ) }, - get_current_project: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + get_current_project: async (args: unknown, apiClient) => { return await apiClient.executeWithDashboardLink( 'getCurrentProject', null, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => fetchProject(authToken, projectKey), 'fetchProject', @@ -401,13 +281,13 @@ export const projectToolHandlers: Record<string, ToolHandler> = { generateProjectDashboardLink, ) }, - create_project: async (args: unknown, apiClient: DevCycleApiClient) => { + create_project: async (args: unknown, apiClient) => { const validatedArgs = CreateProjectArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'createProject', validatedArgs, - async (authToken) => { + async (authToken: string) => { // projectKey not used for creating projects return await handleZodiosValidationErrors( () => createProject(authToken, validatedArgs), @@ -417,14 +297,14 @@ export const projectToolHandlers: Record<string, ToolHandler> = { generateProjectDashboardLink, ) }, - update_project: async (args: unknown, apiClient: DevCycleApiClient) => { + update_project: async (args: unknown, apiClient) => { const validatedArgs = UpdateProjectArgsSchema.parse(args) const { key, ...updateParams } = validatedArgs return await apiClient.executeWithDashboardLink( 'updateProject', validatedArgs, - async (authToken) => { + async (authToken: string) => { // projectKey not used - we use the key from validated args return await handleZodiosValidationErrors( () => updateProject(authToken, key, updateParams), diff --git a/src/mcp/tools/registry.test.ts b/src/mcp/tools/registry.test.ts index e46518181..b736c9fd1 100644 --- a/src/mcp/tools/registry.test.ts +++ b/src/mcp/tools/registry.test.ts @@ -2,6 +2,8 @@ import { expect } from '@oclif/test' import { MCPToolRegistry } from './registry' import { IDevCycleApiClient } from '../api/interface' import { registerProjectTools } from './projectTools' +import { registerVariableTools } from './variableTools' +import { registerEnvironmentTools } from './environmentTools' // Mock API client for testing class MockApiClient implements IDevCycleApiClient { @@ -41,12 +43,33 @@ describe('MCPToolRegistry', () => { expect(registry.size()).to.equal(0) registerProjectTools(registry) - expect(registry.size()).to.equal(4) expect(registry.has('list_projects')).to.be.true expect(registry.has('get_current_project')).to.be.true expect(registry.has('create_project')).to.be.true expect(registry.has('update_project')).to.be.true + + // Test variable tools registration (Phase 1.3) + registry.clear() + expect(registry.size()).to.equal(0) + + registerVariableTools(registry) + expect(registry.size()).to.equal(4) + expect(registry.has('list_variables')).to.be.true + expect(registry.has('create_variable')).to.be.true + expect(registry.has('update_variable')).to.be.true + expect(registry.has('delete_variable')).to.be.true + + // Test environment tools registration (Phase 1.3) + registry.clear() + expect(registry.size()).to.equal(0) + + registerEnvironmentTools(registry) + expect(registry.size()).to.equal(4) + expect(registry.has('list_environments')).to.be.true + expect(registry.has('get_sdk_keys')).to.be.true + expect(registry.has('create_environment')).to.be.true + expect(registry.has('update_environment')).to.be.true }) it('should retrieve all registered tools', () => { diff --git a/src/mcp/tools/variableTools.ts b/src/mcp/tools/variableTools.ts index 0a736cbd8..16bcefdd0 100644 --- a/src/mcp/tools/variableTools.ts +++ b/src/mcp/tools/variableTools.ts @@ -1,5 +1,5 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient, handleZodiosValidationErrors } from '../utils/api' +import { handleZodiosValidationErrors } from '../utils/api' import { fetchVariables, createVariable, @@ -12,12 +12,15 @@ import { UpdateVariableArgsSchema, DeleteVariableArgsSchema, } from '../types' -import { ToolHandler } from '../server' import { DASHBOARD_LINK_PROPERTY, MESSAGE_RESPONSE_SCHEMA, VARIABLE_KEY_PROPERTY, } from './commonSchemas' +import { MCPToolRegistry, MCPToolDefinition } from './registry' +import { IDevCycleApiClient } from '../api/interface' +import { ToolHandler } from '../server' +import { DevCycleApiClient } from '../utils/api' // Helper function to generate variable dashboard links const generateVariablesDashboardLink = ( @@ -204,6 +207,32 @@ const VARIABLE_OBJECT_SCHEMA = { required: ['_id', 'key', 'name', 'type', 'createdAt', 'updatedAt'], } +// ============================================================================= +// TOOL REGISTRATION +// ============================================================================= + +/** + * Register all variable tools with the provided registry + */ +export function registerVariableTools(registry: MCPToolRegistry): void { + // Combine the legacy tool definitions with their handlers to create full MCPToolDefinition objects + const toolDefinitions: MCPToolDefinition[] = variableToolDefinitions.map( + (toolDef) => ({ + name: toolDef.name, + description: toolDef.description || '', + inputSchema: toolDef.inputSchema, + outputSchema: toolDef.outputSchema, + handler: async (args: unknown, apiClient: IDevCycleApiClient) => { + // Adapt the legacy handler to work with the interface + const legacyHandler = variableToolHandlers[toolDef.name] + return await legacyHandler(args, apiClient as any) + }, + }), + ) + + registry.registerMany(toolDefinitions) +} + // ============================================================================= // TOOL DEFINITIONS // ============================================================================= @@ -303,14 +332,15 @@ export const variableToolDefinitions: Tool[] = [ }, ] +// Legacy handlers for backward compatibility export const variableToolHandlers: Record<string, ToolHandler> = { - list_variables: async (args: unknown, apiClient: DevCycleApiClient) => { + list_variables: async (args: unknown, apiClient) => { const validatedArgs = ListVariablesArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'listVariables', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => fetchVariables(authToken, projectKey, validatedArgs), 'fetchVariables', @@ -319,13 +349,13 @@ export const variableToolHandlers: Record<string, ToolHandler> = { generateVariablesDashboardLink, ) }, - create_variable: async (args: unknown, apiClient: DevCycleApiClient) => { + create_variable: async (args: unknown, apiClient) => { const validatedArgs = CreateVariableArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'createVariable', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => createVariable(authToken, projectKey, validatedArgs), 'createVariable', @@ -334,13 +364,13 @@ export const variableToolHandlers: Record<string, ToolHandler> = { generateVariablesDashboardLink, ) }, - update_variable: async (args: unknown, apiClient: DevCycleApiClient) => { + update_variable: async (args: unknown, apiClient) => { const validatedArgs = UpdateVariableArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'updateVariable', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { const { key, ...updateData } = validatedArgs return await handleZodiosValidationErrors( @@ -352,13 +382,13 @@ export const variableToolHandlers: Record<string, ToolHandler> = { generateVariablesDashboardLink, ) }, - delete_variable: async (args: unknown, apiClient: DevCycleApiClient) => { + delete_variable: async (args: unknown, apiClient) => { const validatedArgs = DeleteVariableArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'deleteVariable', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { await handleZodiosValidationErrors( () => deleteVariable( From 78362c6253dbdd8005b8c03c566e79e1d1d58e0a Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Fri, 25 Jul 2025 17:06:44 -0400 Subject: [PATCH 59/74] refactor: consolidate tool registration into centralized registry pattern --- src/mcp/tools/customPropertiesTools.ts | 33 +++----- src/mcp/tools/environmentTools.ts | 29 +------ src/mcp/tools/featureTools.ts | 102 +++++++++-------------- src/mcp/tools/index.ts | 111 ++++++++++++++++++++----- src/mcp/tools/projectTools.ts | 28 ------- src/mcp/tools/resultsTools.ts | 19 ++--- src/mcp/tools/selfTargetingTools.ts | 43 ++++------ src/mcp/tools/variableTools.ts | 28 ------- src/mcp/utils/api.ts | 3 +- 9 files changed, 160 insertions(+), 236 deletions(-) diff --git a/src/mcp/tools/customPropertiesTools.ts b/src/mcp/tools/customPropertiesTools.ts index 84dea71ff..43f0ab418 100644 --- a/src/mcp/tools/customPropertiesTools.ts +++ b/src/mcp/tools/customPropertiesTools.ts @@ -1,5 +1,5 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient, handleZodiosValidationErrors } from '../utils/api' +import { handleZodiosValidationErrors } from '../utils/api' import { fetchCustomProperties, createCustomProperty, @@ -12,13 +12,14 @@ import { UpdateCustomPropertyArgsSchema, DeleteCustomPropertyArgsSchema, } from '../types' -import { ToolHandler } from '../server' import { DASHBOARD_LINK_PROPERTY, MESSAGE_RESPONSE_SCHEMA, CUSTOM_PROPERTY_KEY_PROPERTY, } from './commonSchemas' +import { ToolHandler } from '../server' + // Helper function to generate custom properties dashboard links const generateCustomPropertiesDashboardLink = ( orgId: string, @@ -300,16 +301,13 @@ export const customPropertiesToolDefinitions: Tool[] = [ ] export const customPropertiesToolHandlers: Record<string, ToolHandler> = { - list_custom_properties: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + list_custom_properties: async (args: unknown, apiClient) => { const validatedArgs = ListCustomPropertiesArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'listCustomProperties', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => fetchCustomProperties(authToken, projectKey), 'fetchCustomProperties', @@ -318,16 +316,13 @@ export const customPropertiesToolHandlers: Record<string, ToolHandler> = { generateCustomPropertiesDashboardLink, ) }, - create_custom_property: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + create_custom_property: async (args: unknown, apiClient) => { const validatedArgs = UpsertCustomPropertyArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'createCustomProperty', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => createCustomProperty( @@ -341,16 +336,13 @@ export const customPropertiesToolHandlers: Record<string, ToolHandler> = { generateCustomPropertiesDashboardLink, ) }, - update_custom_property: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + update_custom_property: async (args: unknown, apiClient) => { const validatedArgs = UpdateCustomPropertyArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'updateCustomProperty', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { const { key, ...updateData } = validatedArgs return await handleZodiosValidationErrors( @@ -367,16 +359,13 @@ export const customPropertiesToolHandlers: Record<string, ToolHandler> = { generateCustomPropertiesDashboardLink, ) }, - delete_custom_property: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + delete_custom_property: async (args: unknown, apiClient) => { const validatedArgs = DeleteCustomPropertyArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'deleteCustomProperty', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { await handleZodiosValidationErrors( () => deleteCustomProperty( diff --git a/src/mcp/tools/environmentTools.ts b/src/mcp/tools/environmentTools.ts index ce2813723..3c0cfb6b5 100644 --- a/src/mcp/tools/environmentTools.ts +++ b/src/mcp/tools/environmentTools.ts @@ -16,8 +16,7 @@ import { DASHBOARD_LINK_PROPERTY, ENVIRONMENT_KEY_PROPERTY, } from './commonSchemas' -import { MCPToolRegistry, MCPToolDefinition } from './registry' -import { IDevCycleApiClient } from '../api/interface' + import { ToolHandler } from '../server' import { DevCycleApiClient } from '../utils/api' @@ -177,32 +176,6 @@ const ENVIRONMENT_OUTPUT_SCHEMA = { required: ['result', 'dashboardLink'], } -// ============================================================================= -// TOOL REGISTRATION -// ============================================================================= - -/** - * Register all environment tools with the provided registry - */ -export function registerEnvironmentTools(registry: MCPToolRegistry): void { - // Combine the legacy tool definitions with their handlers to create full MCPToolDefinition objects - const toolDefinitions: MCPToolDefinition[] = environmentToolDefinitions.map( - (toolDef) => ({ - name: toolDef.name, - description: toolDef.description || '', - inputSchema: toolDef.inputSchema, - outputSchema: toolDef.outputSchema, - handler: async (args: unknown, apiClient: IDevCycleApiClient) => { - // Adapt the legacy handler to work with the interface - const legacyHandler = environmentToolHandlers[toolDef.name] - return await legacyHandler(args, apiClient as any) - }, - }), - ) - - registry.registerMany(toolDefinitions) -} - // ============================================================================= // TOOL DEFINITIONS // ============================================================================= diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index 2647ccc1d..2305abb51 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -1,5 +1,4 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient } from '../utils/api' import { fetchFeatures, createFeature, @@ -822,13 +821,13 @@ export const featureToolDefinitions: Tool[] = [ ] export const featureToolHandlers: Record<string, ToolHandler> = { - list_features: async (args: unknown, apiClient: DevCycleApiClient) => { + list_features: async (args: unknown, apiClient) => { const validatedArgs = ListFeaturesArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'listFeatures', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => fetchFeatures(authToken, projectKey, validatedArgs), 'listFeatures', @@ -837,13 +836,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { generateFeaturesDashboardLink, ) }, - create_feature: async (args: unknown, apiClient: DevCycleApiClient) => { + create_feature: async (args: unknown, apiClient) => { const validatedArgs = CreateFeatureArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'createFeature', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { if (validatedArgs.interactive) { throw new Error( 'Interactive mode not yet supported in MCP. Please provide explicit parameters: key, name, description, type', @@ -865,7 +864,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'createFeature', ) }, - (orgId, projectKey, result) => + (orgId: string, projectKey: string, result: any) => generateFeatureDashboardLink( orgId, projectKey, @@ -874,13 +873,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ), ) }, - update_feature: async (args: unknown, apiClient: DevCycleApiClient) => { + update_feature: async (args: unknown, apiClient) => { const validatedArgs = UpdateFeatureArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'updateFeature', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { const { key, ...updateData } = validatedArgs return await handleZodiosValidationErrors( @@ -888,7 +887,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'updateFeature', ) }, - (orgId, projectKey, result) => + (orgId: string, projectKey: string, result: any) => generateFeatureDashboardLink( orgId, projectKey, @@ -897,16 +896,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ), ) }, - update_feature_status: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + update_feature_status: async (args: unknown, apiClient) => { const validatedArgs = UpdateFeatureStatusArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'updateFeatureStatus', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { const { key, ...statusData } = validatedArgs return await handleZodiosValidationErrors( @@ -920,7 +916,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'updateFeatureStatus', ) }, - (orgId, projectKey, result) => + (orgId: string, projectKey: string, result: any) => generateFeatureDashboardLink( orgId, projectKey, @@ -929,13 +925,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ), ) }, - delete_feature: async (args: unknown, apiClient: DevCycleApiClient) => { + delete_feature: async (args: unknown, apiClient) => { const validatedArgs = DeleteFeatureArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'deleteFeature', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { await handleZodiosValidationErrors( () => deleteFeature(authToken, projectKey, validatedArgs.key), @@ -948,16 +944,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { generateFeaturesDashboardLink, ) }, - fetch_feature_variations: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + fetch_feature_variations: async (args: unknown, apiClient) => { const validatedArgs = ListVariationsArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'fetchFeatureVariations', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => fetchVariations( @@ -968,7 +961,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'fetchVariations', ) }, - (orgId, projectKey) => + (orgId: string, projectKey: string) => generateFeatureDashboardLink( orgId, projectKey, @@ -977,16 +970,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ), ) }, - create_feature_variation: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + create_feature_variation: async (args: unknown, apiClient) => { const validatedArgs = CreateVariationArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'createFeatureVariation', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { const { feature_key, ...variationData } = validatedArgs return await handleZodiosValidationErrors( @@ -1000,7 +990,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'createVariation', ) }, - (orgId, projectKey, result) => + (orgId: string, projectKey: string, result: any) => generateFeatureDashboardLink( orgId, projectKey, @@ -1009,16 +999,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ), ) }, - update_feature_variation: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + update_feature_variation: async (args: unknown, apiClient) => { const validatedArgs = UpdateVariationArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'updateFeatureVariation', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { const { feature_key, variation_key, ...variationData } = validatedArgs @@ -1034,7 +1021,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'updateVariation', ) }, - (orgId, projectKey, result) => + (orgId: string, projectKey: string, result: any) => generateFeatureDashboardLink( orgId, projectKey, @@ -1043,16 +1030,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ), ) }, - enable_feature_targeting: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + enable_feature_targeting: async (args: unknown, apiClient) => { const validatedArgs = EnableTargetingArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'enableTargeting', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { await handleZodiosValidationErrors( () => enableTargeting( @@ -1067,7 +1051,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { message: `Targeting enabled for feature '${validatedArgs.feature_key}' in environment '${validatedArgs.environment_key}'`, } }, - (orgId, projectKey) => + (orgId: string, projectKey: string) => generateFeatureDashboardLink( orgId, projectKey, @@ -1076,16 +1060,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ), ) }, - disable_feature_targeting: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + disable_feature_targeting: async (args: unknown, apiClient) => { const validatedArgs = DisableTargetingArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'disableTargeting', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { await handleZodiosValidationErrors( () => disableTargeting( @@ -1100,7 +1081,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { message: `Targeting disabled for feature '${validatedArgs.feature_key}' in environment '${validatedArgs.environment_key}'`, } }, - (orgId, projectKey) => + (orgId: string, projectKey: string) => generateFeatureDashboardLink( orgId, projectKey, @@ -1109,16 +1090,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ), ) }, - list_feature_targeting: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + list_feature_targeting: async (args: unknown, apiClient) => { const validatedArgs = ListFeatureTargetingArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'listFeatureTargeting', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => fetchTargetingForFeature( @@ -1130,7 +1108,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'fetchTargetingForFeature', ) }, - (orgId, projectKey) => + (orgId: string, projectKey: string) => generateFeatureDashboardLink( orgId, projectKey, @@ -1139,16 +1117,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ), ) }, - update_feature_targeting: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + update_feature_targeting: async (args: unknown, apiClient) => { const validatedArgs = UpdateFeatureTargetingArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'updateFeatureTargeting', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { const { feature_key, environment_key, ...configData } = validatedArgs @@ -1164,7 +1139,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'updateFeatureConfigForEnvironment', ) }, - (orgId, projectKey) => + (orgId: string, projectKey: string) => generateFeatureDashboardLink( orgId, projectKey, @@ -1173,16 +1148,13 @@ export const featureToolHandlers: Record<string, ToolHandler> = { ), ) }, - get_feature_audit_log_history: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + get_feature_audit_log_history: async (args: unknown, apiClient) => { const validatedArgs = GetFeatureAuditLogHistoryArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'getFeatureAuditLogHistory', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => getFeatureAuditLogHistory( @@ -1194,7 +1166,7 @@ export const featureToolHandlers: Record<string, ToolHandler> = { 'getFeatureAuditLogHistory', ) }, - (orgId, projectKey) => + (orgId: string, projectKey: string) => generateFeatureDashboardLink( orgId, projectKey, diff --git a/src/mcp/tools/index.ts b/src/mcp/tools/index.ts index 8b71c2c7f..336fb22e6 100644 --- a/src/mcp/tools/index.ts +++ b/src/mcp/tools/index.ts @@ -5,36 +5,101 @@ * and maintains backward compatibility with the existing server implementation. */ -import { MCPToolRegistry } from './registry' -import { registerProjectTools } from './projectTools' -import { registerVariableTools } from './variableTools' -import { registerEnvironmentTools } from './environmentTools' +import { Tool } from '@modelcontextprotocol/sdk/types.js' +import { MCPToolRegistry, MCPToolDefinition } from './registry' +import { ToolHandler } from '../server' +import { IDevCycleApiClient } from '../api/interface' +import { DevCycleApiClient } from '../utils/api' -// TODO: Add imports for other tool modules as they get refactored -// import { registerFeatureTools } from './featureTools' -// import { registerSelfTargetingTools } from './selfTargetingTools' -// import { registerResultsTools } from './resultsTools' -// import { registerCustomPropertiesTools } from './customPropertiesTools' +// Import all tool definitions and handlers +import { projectToolDefinitions, projectToolHandlers } from './projectTools' +import { variableToolDefinitions, variableToolHandlers } from './variableTools' +import { + environmentToolDefinitions, + environmentToolHandlers, +} from './environmentTools' +import { featureToolDefinitions, featureToolHandlers } from './featureTools' +import { + selfTargetingToolDefinitions, + selfTargetingToolHandlers, +} from './selfTargetingTools' +import { resultsToolDefinitions, resultsToolHandlers } from './resultsTools' +import { + customPropertiesToolDefinitions, + customPropertiesToolHandlers, +} from './customPropertiesTools' /** - * Register all MCP tools with the provided registry - * This is the main function that should be called by MCP server implementations + * Type guard to ensure the API client is a DevCycleApiClient instance */ -export function registerAllTools(registry: MCPToolRegistry): void { - // Register project tools (already refactored) - registerProjectTools(registry) +function isDevCycleApiClient( + apiClient: IDevCycleApiClient, +): apiClient is DevCycleApiClient { + return apiClient instanceof DevCycleApiClient +} - // Register variable tools (refactored in Phase 1.3) - registerVariableTools(registry) +/** + * Generic helper to convert legacy tool definitions and handlers to MCPToolDefinitions + */ +function createToolDefinitions( + toolDefinitions: Tool[], + toolHandlers: Record<string, ToolHandler>, +): MCPToolDefinition[] { + return toolDefinitions.map((toolDef) => ({ + name: toolDef.name, + description: toolDef.description || '', + inputSchema: toolDef.inputSchema, + outputSchema: toolDef.outputSchema, + handler: async (args: unknown, apiClient: IDevCycleApiClient) => { + // Ensure the API client is the expected concrete type + if (!isDevCycleApiClient(apiClient)) { + throw new Error( + `Expected DevCycleApiClient instance for tool ${toolDef.name}`, + ) + } - // Register environment tools (refactored in Phase 1.3) - registerEnvironmentTools(registry) + const legacyHandler = toolHandlers[toolDef.name] + return await legacyHandler(args, apiClient) + }, + })) +} - // TODO: Add other tool registrations as they get refactored - // registerFeatureTools(registry) - // registerSelfTargetingTools(registry) - // registerResultsTools(registry) - // registerCustomPropertiesTools(registry) +/** + * Register all MCP tools with the provided registry + * This is the main function that should be called by MCP server implementations + */ +export function registerAllTools(registry: MCPToolRegistry): void { + // Register all tools using the generic helper + registry.registerMany( + createToolDefinitions(projectToolDefinitions, projectToolHandlers), + ) + registry.registerMany( + createToolDefinitions(variableToolDefinitions, variableToolHandlers), + ) + registry.registerMany( + createToolDefinitions( + environmentToolDefinitions, + environmentToolHandlers, + ), + ) + registry.registerMany( + createToolDefinitions(featureToolDefinitions, featureToolHandlers), + ) + registry.registerMany( + createToolDefinitions( + selfTargetingToolDefinitions, + selfTargetingToolHandlers, + ), + ) + registry.registerMany( + createToolDefinitions(resultsToolDefinitions, resultsToolHandlers), + ) + registry.registerMany( + createToolDefinitions( + customPropertiesToolDefinitions, + customPropertiesToolHandlers, + ), + ) } /** diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts index 5d5c08826..0ae0ed9df 100644 --- a/src/mcp/tools/projectTools.ts +++ b/src/mcp/tools/projectTools.ts @@ -12,8 +12,6 @@ import { UpdateProjectArgsSchema, } from '../types' import { DASHBOARD_LINK_PROPERTY, PROJECT_KEY_PROPERTY } from './commonSchemas' -import { MCPToolRegistry, MCPToolDefinition } from './registry' -import { IDevCycleApiClient } from '../api/interface' import { ToolHandler } from '../server' // Helper functions to generate project dashboard links @@ -144,32 +142,6 @@ const PROJECT_OUTPUT_SCHEMA = { required: ['result', 'dashboardLink'], } -// ============================================================================= -// TOOL REGISTRATION -// ============================================================================= - -/** - * Register all project tools with the provided registry - */ -export function registerProjectTools(registry: MCPToolRegistry): void { - // Combine the legacy tool definitions with their handlers to create full MCPToolDefinition objects - const toolDefinitions: MCPToolDefinition[] = projectToolDefinitions.map( - (toolDef) => ({ - name: toolDef.name, - description: toolDef.description || '', - inputSchema: toolDef.inputSchema, - outputSchema: toolDef.outputSchema, - handler: async (args: unknown, apiClient: IDevCycleApiClient) => { - // Adapt the legacy handler to work with the interface - const legacyHandler = projectToolHandlers[toolDef.name] - return await legacyHandler(args, apiClient as any) - }, - }), - ) - - registry.registerMany(toolDefinitions) -} - // ============================================================================= // TOOL DEFINITIONS // ============================================================================= diff --git a/src/mcp/tools/resultsTools.ts b/src/mcp/tools/resultsTools.ts index 6e5235cf6..3c95c5fc3 100644 --- a/src/mcp/tools/resultsTools.ts +++ b/src/mcp/tools/resultsTools.ts @@ -1,5 +1,5 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient, handleZodiosValidationErrors } from '../utils/api' +import { handleZodiosValidationErrors } from '../utils/api' import { fetchFeatureTotalEvaluations, fetchProjectTotalEvaluations, @@ -10,7 +10,6 @@ import { FeatureTotalEvaluationsQuerySchema, ProjectTotalEvaluationsQuerySchema, } from '../types' -import { ToolHandler } from '../server' import { DASHBOARD_LINK_PROPERTY, FEATURE_KEY_PROPERTY, @@ -19,6 +18,8 @@ import { PROJECT_DATA_POINT_SCHEMA, } from './commonSchemas' +import { ToolHandler } from '../server' + // Helper functions to generate dashboard links const generateFeatureAnalyticsDashboardLink = ( orgId: string, @@ -145,16 +146,13 @@ export const resultsToolDefinitions: Tool[] = [ ] export const resultsToolHandlers: Record<string, ToolHandler> = { - get_feature_total_evaluations: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + get_feature_total_evaluations: async (args: unknown, apiClient) => { const validatedArgs = GetFeatureTotalEvaluationsArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'getFeatureTotalEvaluations', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { const { featureKey, ...apiQueries } = validatedArgs return await handleZodiosValidationErrors( @@ -176,16 +174,13 @@ export const resultsToolHandlers: Record<string, ToolHandler> = { ), ) }, - get_project_total_evaluations: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + get_project_total_evaluations: async (args: unknown, apiClient) => { const validatedArgs = GetProjectTotalEvaluationsArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'getProjectTotalEvaluations', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => fetchProjectTotalEvaluations( diff --git a/src/mcp/tools/selfTargetingTools.ts b/src/mcp/tools/selfTargetingTools.ts index e4ae44ec0..9d315f0b7 100644 --- a/src/mcp/tools/selfTargetingTools.ts +++ b/src/mcp/tools/selfTargetingTools.ts @@ -1,5 +1,5 @@ import { Tool } from '@modelcontextprotocol/sdk/types.js' -import { DevCycleApiClient, handleZodiosValidationErrors } from '../utils/api' +import { handleZodiosValidationErrors } from '../utils/api' import { fetchUserProfile, updateUserProfile } from '../../api/userProfile' import { fetchProjectOverridesForUser, @@ -12,7 +12,6 @@ import { SetSelfTargetingOverrideArgsSchema, ClearSelfTargetingOverridesArgsSchema, } from '../types' -import { ToolHandler } from '../server' import { DASHBOARD_LINK_PROPERTY, MESSAGE_RESPONSE_SCHEMA, @@ -20,6 +19,7 @@ import { ENVIRONMENT_KEY_PROPERTY, VARIATION_KEY_PROPERTY, } from './commonSchemas' +import { ToolHandler } from '../server' // Helper functions to generate dashboard links const generateSelfTargetingDashboardLink = (orgId: string): string => { @@ -216,14 +216,11 @@ export const selfTargetingToolDefinitions: Tool[] = [ ] export const selfTargetingToolHandlers: Record<string, ToolHandler> = { - get_self_targeting_identity: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + get_self_targeting_identity: async (args: unknown, apiClient) => { return await apiClient.executeWithDashboardLink( 'getSelfTargetingIdentity', null, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => fetchUserProfile(authToken, projectKey), 'fetchUserProfile', @@ -232,16 +229,13 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { generateSelfTargetingDashboardLink, ) }, - update_self_targeting_identity: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + update_self_targeting_identity: async (args: unknown, apiClient) => { const validatedArgs = UpdateSelfTargetingIdentityArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'updateSelfTargetingIdentity', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => updateUserProfile(authToken, projectKey, { @@ -253,14 +247,11 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { generateSelfTargetingDashboardLink, ) }, - list_self_targeting_overrides: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + list_self_targeting_overrides: async (args: unknown, apiClient) => { return await apiClient.executeWithDashboardLink( 'listSelfTargetingOverrides', null, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => fetchProjectOverridesForUser(authToken, projectKey), 'fetchProjectOverridesForUser', @@ -269,16 +260,13 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { generateSelfTargetingDashboardLink, ) }, - set_self_targeting_override: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + set_self_targeting_override: async (args: unknown, apiClient) => { const validatedArgs = SetSelfTargetingOverrideArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'setSelfTargetingOverride', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { return await handleZodiosValidationErrors( () => updateOverride( @@ -298,14 +286,14 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { }, clear_feature_self_targeting_overrides: async ( args: unknown, - apiClient: DevCycleApiClient, + apiClient, ) => { const validatedArgs = ClearSelfTargetingOverridesArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( 'clearFeatureSelfTargetingOverrides', validatedArgs, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { await handleZodiosValidationErrors( () => deleteFeatureOverrides( @@ -324,14 +312,11 @@ export const selfTargetingToolHandlers: Record<string, ToolHandler> = { generateSelfTargetingDashboardLink, ) }, - clear_all_self_targeting_overrides: async ( - args: unknown, - apiClient: DevCycleApiClient, - ) => { + clear_all_self_targeting_overrides: async (args: unknown, apiClient) => { return await apiClient.executeWithDashboardLink( 'clearAllSelfTargetingOverrides', null, - async (authToken, projectKey) => { + async (authToken: string, projectKey: string) => { await handleZodiosValidationErrors( () => deleteAllProjectOverrides(authToken, projectKey), 'deleteAllProjectOverrides', diff --git a/src/mcp/tools/variableTools.ts b/src/mcp/tools/variableTools.ts index 16bcefdd0..5fde30132 100644 --- a/src/mcp/tools/variableTools.ts +++ b/src/mcp/tools/variableTools.ts @@ -17,8 +17,6 @@ import { MESSAGE_RESPONSE_SCHEMA, VARIABLE_KEY_PROPERTY, } from './commonSchemas' -import { MCPToolRegistry, MCPToolDefinition } from './registry' -import { IDevCycleApiClient } from '../api/interface' import { ToolHandler } from '../server' import { DevCycleApiClient } from '../utils/api' @@ -207,32 +205,6 @@ const VARIABLE_OBJECT_SCHEMA = { required: ['_id', 'key', 'name', 'type', 'createdAt', 'updatedAt'], } -// ============================================================================= -// TOOL REGISTRATION -// ============================================================================= - -/** - * Register all variable tools with the provided registry - */ -export function registerVariableTools(registry: MCPToolRegistry): void { - // Combine the legacy tool definitions with their handlers to create full MCPToolDefinition objects - const toolDefinitions: MCPToolDefinition[] = variableToolDefinitions.map( - (toolDef) => ({ - name: toolDef.name, - description: toolDef.description || '', - inputSchema: toolDef.inputSchema, - outputSchema: toolDef.outputSchema, - handler: async (args: unknown, apiClient: IDevCycleApiClient) => { - // Adapt the legacy handler to work with the interface - const legacyHandler = variableToolHandlers[toolDef.name] - return await legacyHandler(args, apiClient as any) - }, - }), - ) - - registry.registerMany(toolDefinitions) -} - // ============================================================================= // TOOL DEFINITIONS // ============================================================================= diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index 75d5888f7..eab0568bd 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -1,5 +1,6 @@ import { DevCycleAuth } from './auth' import { setMCPToolCommand } from './headers' +import { IDevCycleApiClient } from '../api/interface' /** * Utility function to handle Zodios validation errors by extracting response data @@ -79,7 +80,7 @@ function ensureError(error: unknown): Error { return new Error(String(error)) } -export class DevCycleApiClient { +export class DevCycleApiClient implements IDevCycleApiClient { constructor(private auth: DevCycleAuth) {} /** From 8bbef6cfc6e4f87c0ced9b19a78dc459c2308b37 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 28 Jul 2025 10:00:55 -0400 Subject: [PATCH 60/74] feat: starting CF Worker MCP setup --- .gitignore | 4 + mcp-worker/.gitignore | 30 + mcp-worker/.yarn/install-state.gz | Bin 0 -> 235015 bytes mcp-worker/README.md | 221 +++ mcp-worker/package.json | 27 + mcp-worker/src/index.ts | 19 + mcp-worker/tsconfig.json | 30 + mcp-worker/wrangler.toml | 45 + mcp-worker/yarn.lock | 2848 +++++++++++++++++++++++++++++ package.json | 4 + src/index.ts | 23 +- src/mcp/worker/apiClient.ts | 171 ++ src/mcp/worker/auth.ts | 233 +++ src/mcp/worker/index.ts | 244 +++ src/mcp/worker/types.ts | 65 + tsconfig.json | 2 +- tsconfig.mcp.json | 20 + 17 files changed, 3984 insertions(+), 2 deletions(-) create mode 100644 mcp-worker/.gitignore create mode 100644 mcp-worker/.yarn/install-state.gz create mode 100644 mcp-worker/README.md create mode 100644 mcp-worker/package.json create mode 100644 mcp-worker/src/index.ts create mode 100644 mcp-worker/tsconfig.json create mode 100644 mcp-worker/wrangler.toml create mode 100644 mcp-worker/yarn.lock create mode 100644 src/mcp/worker/apiClient.ts create mode 100644 src/mcp/worker/auth.ts create mode 100644 src/mcp/worker/index.ts create mode 100644 src/mcp/worker/types.ts create mode 100644 tsconfig.mcp.json diff --git a/.gitignore b/.gitignore index 274ba2729..ef8526c56 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,7 @@ tmp .yarn/cache .yarn/install-state.gz tsconfig.tsbuildinfo + +# MCP Worker build outputs +mcp-worker/dist/ +mcp-worker/.wrangler/ diff --git a/mcp-worker/.gitignore b/mcp-worker/.gitignore new file mode 100644 index 000000000..6494d7c5d --- /dev/null +++ b/mcp-worker/.gitignore @@ -0,0 +1,30 @@ +# Build outputs +dist/ +.wrangler/ + +# Dependencies +node_modules/ + +# Environment files +.env +.env.local +.env.production +.env.development + +# Logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# IDE +.vscode/ +.idea/ + +# OS +.DS_Store +Thumbs.db + +# Temporary files +*.tmp +*.temp \ No newline at end of file diff --git a/mcp-worker/.yarn/install-state.gz b/mcp-worker/.yarn/install-state.gz new file mode 100644 index 0000000000000000000000000000000000000000..1ec1600ca702c0555c70eb389df743c7a03b85d8 GIT binary patch literal 235015 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 DVE<?_ literal 0 HcmV?d00001 diff --git a/mcp-worker/README.md b/mcp-worker/README.md new file mode 100644 index 000000000..e30feef59 --- /dev/null +++ b/mcp-worker/README.md @@ -0,0 +1,221 @@ +# DevCycle MCP Cloudflare Worker + +This package contains the Cloudflare Worker implementation of the DevCycle MCP (Model Context Protocol) server. It provides the same DevCycle feature flag management tools as the local CLI but runs as a remote service accessible via SSE (Server-Sent Events). + +## Architecture + +- **Authentication**: OAuth integration with DevCycle/Auth0 +- **Transport**: Server-Sent Events (SSE) via MCP protocol +- **Tools**: All DevCycle CLI MCP tools (features, variables, environments, etc.) +- **State**: Durable Objects for session management + +## Prerequisites + +1. **Cloudflare Account**: You need a Cloudflare account with Workers enabled +2. **Wrangler CLI**: Install the Cloudflare Workers CLI tool + ```bash + npm install -g wrangler + ``` +3. **DevCycle Auth0 App**: Configure OAuth application credentials + +## Setup + +### 1. Install Dependencies + +```bash +yarn install +``` + +### 2. Configure Environment + +Create a KV namespace for OAuth session storage: + +```bash +wrangler kv:namespace create OAUTH_KV +``` + +Update `wrangler.toml` with the returned namespace ID. + +### 3. Set Secrets + +Configure your Auth0 credentials as Worker secrets: + +```bash +wrangler secret put AUTH0_CLIENT_ID +wrangler secret put AUTH0_CLIENT_SECRET +``` + +### 4. Update Configuration + +Edit `wrangler.toml` to set: +- `AUTH0_DOMAIN`: Your Auth0 domain +- `DEFAULT_PROJECT_KEY`: (Optional) Default DevCycle project +- Other environment variables as needed + +## Development + +### Local Development + +Start the development server: + +```bash +yarn dev +``` + +This will start the Worker at `http://localhost:8787` with: +- `/sse` - MCP Server-Sent Events endpoint +- `/authorize` - OAuth authorization endpoint +- `/callback` - OAuth callback endpoint +- `/health` - Health check endpoint + +### Testing with MCP Clients + +#### Claude Desktop + +Add to your Claude Desktop configuration: + +```json +{ + "mcpServers": { + "devcycle": { + "command": "npx", + "args": [ + "mcp-remote", + "http://localhost:8787/sse" + ] + } + } +} +``` + +#### AI Playground + +Use the remote MCP connection with your Worker URL. + +## Deployment + +### Production Deployment + +Deploy to Cloudflare Workers: + +```bash +yarn deploy +``` + +### Environment-Specific Deployments + +For different environments, you can override the worker name: + +```bash +wrangler deploy --name devcycle-mcp-server-staging +``` + +## Usage + +### Authentication Flow + +1. User connects to the MCP server via supported client +2. Client is redirected to OAuth authorization endpoint +3. User authenticates with DevCycle/Auth0 +4. JWT claims contain user context (org_id, project_key, etc.) +5. MCP tools use OAuth tokens for DevCycle API calls + +### Available Tools + +All DevCycle CLI MCP tools are available: + +- **Features**: List, create, update, delete feature flags +- **Variables**: Manage feature variables +- **Environments**: List and manage environments +- **Targeting**: Configure feature targeting rules +- **Overrides**: Manage self-targeting overrides +- **Projects**: List and select projects +- **Results**: View feature analytics + +### Debug Tools + +- `whoami` - Get current user context and authentication status + +## Configuration + +### Environment Variables + +Set in `wrangler.toml` under `[vars]`: + +- `NODE_ENV`: Environment (production/development) +- `API_BASE_URL`: DevCycle API base URL +- `AUTH0_DOMAIN`: Auth0 domain +- `AUTH0_AUDIENCE`: Auth0 API audience +- `AUTH0_SCOPE`: OAuth scopes +- `DEFAULT_PROJECT_KEY`: Default project for single-project deployments + +### Secrets + +Set via `wrangler secret put`: + +- `AUTH0_CLIENT_ID`: Auth0 application client ID +- `AUTH0_CLIENT_SECRET`: Auth0 application client secret + +## Monitoring + +### Observability + +The Worker has observability enabled in `wrangler.toml` for monitoring via Cloudflare Analytics. + +### Logs + +View logs during development: + +```bash +wrangler tail +``` + +### Health Check + +Monitor service health: + +```bash +curl https://your-worker.your-subdomain.workers.dev/health +``` + +## Troubleshooting + +### Common Issues + +1. **Authentication Errors**: Verify Auth0 configuration and secrets +2. **Project Access**: Ensure JWT claims contain `org_id` and `project_key` +3. **Tool Failures**: Check DevCycle API credentials and permissions + +### Debug Information + +Use the `whoami` tool to inspect: +- User authentication status +- JWT claims content +- Project context +- Token validity + +## Development Scripts + +```bash +# Start local development +yarn dev + +# Build TypeScript +yarn build + +# Deploy to Cloudflare +yarn deploy + +# Type checking +yarn type-check + +# Generate Cloudflare types +yarn cf-typegen +``` + +## Architecture Notes + +- **Shared Code**: Worker imports tools from main CLI package +- **Authentication**: OAuth-based vs API key-based for local CLI +- **Transport**: SSE vs stdio for communication +- **State**: Durable Objects vs local file system \ No newline at end of file diff --git a/mcp-worker/package.json b/mcp-worker/package.json new file mode 100644 index 000000000..9e41999e9 --- /dev/null +++ b/mcp-worker/package.json @@ -0,0 +1,27 @@ +{ + "name": "@devcycle/mcp-worker", + "version": "1.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "wrangler dev", + "deploy": "wrangler deploy", + "build": "tsc", + "type-check": "tsc --noEmit", + "cf-typegen": "wrangler types" + }, + "dependencies": { + "@cloudflare/workers-oauth-provider": "^0.0.5", + "@modelcontextprotocol/sdk": "^1.15.0", + "agents": "^0.0.100", + "hono": "^4.8.4", + "jose": "^6.0.11", + "oauth4webapi": "^3.5.5", + "zod": "^3.24.2" + }, + "devDependencies": { + "@types/node": "^24.0.10", + "typescript": "^5.8.3", + "wrangler": "^4.22.0" + } +} diff --git a/mcp-worker/src/index.ts b/mcp-worker/src/index.ts new file mode 100644 index 000000000..3b57d899d --- /dev/null +++ b/mcp-worker/src/index.ts @@ -0,0 +1,19 @@ +/** + * DevCycle MCP Cloudflare Worker Entry Point + * + * This file re-exports the worker implementation from the main CLI package + * to maintain a clean separation between the worker package and the main package + * while allowing shared code and tooling. + */ + +// Re-export the configured Cloudflare Worker from the main package +export { default } from '@devcycle/cli/dist/mcp/worker/index.js' + +// Export types that might be useful for external consumers +export type { + UserProps, + Env, + DevCycleJWTClaims, +} from '@devcycle/cli/dist/mcp/worker/types.js' + +export { DevCycleMCP } from '@devcycle/cli/dist/mcp/worker/index.js' diff --git a/mcp-worker/tsconfig.json b/mcp-worker/tsconfig.json new file mode 100644 index 000000000..f5ee835dd --- /dev/null +++ b/mcp-worker/tsconfig.json @@ -0,0 +1,30 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "./dist", + "rootDir": "./src", + "types": [ + "@cloudflare/workers-types", + "node" + ], + "lib": ["ES2022"], + "module": "ESNext", + "target": "ES2022", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "skipLibCheck": true, + "strict": true, + "declaration": false, + "declarationMap": false, + "sourceMap": true + }, + "include": [ + "src/**/*", + "../src/mcp/worker/**/*" + ], + "exclude": [ + "node_modules", + "dist" + ] +} \ No newline at end of file diff --git a/mcp-worker/wrangler.toml b/mcp-worker/wrangler.toml new file mode 100644 index 000000000..97f58d359 --- /dev/null +++ b/mcp-worker/wrangler.toml @@ -0,0 +1,45 @@ +# Cloudflare Worker configuration for DevCycle MCP Server +name = "devcycle-mcp-server" +main = "src/index.ts" +compatibility_date = "2025-03-10" +compatibility_flags = ["nodejs_compat"] + +# Durable Objects configuration +[[migrations]] +new_sqlite_classes = ["DevCycleMCP"] +tag = "v1" + +[[durable_objects.bindings]] +class_name = "DevCycleMCP" +name = "MCP_OBJECT" + +# KV namespace for OAuth session storage +[[kv_namespaces]] +binding = "OAUTH_KV" +id = "YOUR_KV_NAMESPACE_ID" # Replace with actual KV namespace ID + +# Environment variables +[vars] +NODE_ENV = "production" +API_BASE_URL = "https://api.devcycle.com" +AUTH0_DOMAIN = "auth.devcycle.com" +AUTH0_AUDIENCE = "https://api.devcycle.com/" +AUTH0_SCOPE = "openid profile email offline_access" +# DEFAULT_PROJECT_KEY = "" # Optional: Set a default project for single-project deployments + +# Secrets (set via: wrangler secret put <SECRET_NAME>) +# AUTH0_CLIENT_ID +# AUTH0_CLIENT_SECRET + +# AI binding for future features +[ai] +binding = "AI" + +# Observability +[observability] +enabled = true + +# Development configuration +[dev] +port = 8787 +local_protocol = "http" diff --git a/mcp-worker/yarn.lock b/mcp-worker/yarn.lock new file mode 100644 index 000000000..b580e9df2 --- /dev/null +++ b/mcp-worker/yarn.lock @@ -0,0 +1,2848 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"@ai-sdk/provider-utils@npm:2.2.8": + version: 2.2.8 + resolution: "@ai-sdk/provider-utils@npm:2.2.8" + dependencies: + "@ai-sdk/provider": "npm:1.1.3" + nanoid: "npm:^3.3.8" + secure-json-parse: "npm:^2.7.0" + peerDependencies: + zod: ^3.23.8 + checksum: 10c0/34c72bf5f23f2d3e7aef496da7099422ba3b3ff243c35511853e16c3f1528717500262eea32b19e3e09bc4452152a5f31e650512f53f08a5f5645d907bff429e + languageName: node + linkType: hard + +"@ai-sdk/provider@npm:1.1.3": + version: 1.1.3 + resolution: "@ai-sdk/provider@npm:1.1.3" + dependencies: + json-schema: "npm:^0.4.0" + checksum: 10c0/40e080e223328e7c89829865e9c48f4ce8442a6a59f7ed5dfbdb4f63e8d859a76641e2d31e91970dd389bddb910f32ec7c3dbb0ce583c119e5a1e614ea7b8bc4 + languageName: node + linkType: hard + +"@ai-sdk/react@npm:1.2.12": + version: 1.2.12 + resolution: "@ai-sdk/react@npm:1.2.12" + dependencies: + "@ai-sdk/provider-utils": "npm:2.2.8" + "@ai-sdk/ui-utils": "npm:1.2.11" + swr: "npm:^2.2.5" + throttleit: "npm:2.1.0" + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + zod: ^3.23.8 + peerDependenciesMeta: + zod: + optional: true + checksum: 10c0/5422feb4ffeebd3287441cf658733e9ad7f9081fc279e85f57700d7fe9f4ed8a0504789c1be695790df44b28730e525cf12acf0f52bfa5adecc561ffd00cb2a5 + languageName: node + linkType: hard + +"@ai-sdk/ui-utils@npm:1.2.11": + version: 1.2.11 + resolution: "@ai-sdk/ui-utils@npm:1.2.11" + dependencies: + "@ai-sdk/provider": "npm:1.1.3" + "@ai-sdk/provider-utils": "npm:2.2.8" + zod-to-json-schema: "npm:^3.24.1" + peerDependencies: + zod: ^3.23.8 + checksum: 10c0/de0a10f9e16010126a21a1690aaf56d545b9c0f8d8b2cc33ffd22c2bb2e914949acb9b3f86e0e39a0e4b0d4f24db12e2b094045e34b311de0c8f84bfab48cc92 + languageName: node + linkType: hard + +"@cloudflare/kv-asset-handler@npm:0.4.0": + version: 0.4.0 + resolution: "@cloudflare/kv-asset-handler@npm:0.4.0" + dependencies: + mime: "npm:^3.0.0" + checksum: 10c0/54273c796d9815294599d7958a1a4e342f5519a03cc24c9501cf24d8721de9dbb8c53262941acb0e058bd9e952f807e3e1caa3ae242a0eabc26b1d2caa9a26f6 + languageName: node + linkType: hard + +"@cloudflare/unenv-preset@npm:2.4.1": + version: 2.4.1 + resolution: "@cloudflare/unenv-preset@npm:2.4.1" + peerDependencies: + unenv: 2.0.0-rc.17 + workerd: ^1.20250521.0 + peerDependenciesMeta: + workerd: + optional: true + checksum: 10c0/29e2db8949b56c634044a50e812c1089ba59a72fe736d80d5b3e6caffc64f45a5636e1f69f8f7af329321334b101a01aa9cb935f556fb6ea69375ad4e76833b8 + languageName: node + linkType: hard + +"@cloudflare/workerd-darwin-64@npm:1.20250712.0": + version: 1.20250712.0 + resolution: "@cloudflare/workerd-darwin-64@npm:1.20250712.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@cloudflare/workerd-darwin-arm64@npm:1.20250712.0": + version: 1.20250712.0 + resolution: "@cloudflare/workerd-darwin-arm64@npm:1.20250712.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@cloudflare/workerd-linux-64@npm:1.20250712.0": + version: 1.20250712.0 + resolution: "@cloudflare/workerd-linux-64@npm:1.20250712.0" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@cloudflare/workerd-linux-arm64@npm:1.20250712.0": + version: 1.20250712.0 + resolution: "@cloudflare/workerd-linux-arm64@npm:1.20250712.0" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@cloudflare/workerd-windows-64@npm:1.20250712.0": + version: 1.20250712.0 + resolution: "@cloudflare/workerd-windows-64@npm:1.20250712.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@cloudflare/workers-oauth-provider@npm:^0.0.5": + version: 0.0.5 + resolution: "@cloudflare/workers-oauth-provider@npm:0.0.5" + dependencies: + "@cloudflare/workers-types": "npm:^4.20250311.0" + checksum: 10c0/d1d9e57c4570952235e892baeef60318dea57bfa2109acc9ecea94cdc5aef0a65ef58382173cae10811e2eca8b3a8fdd906001f3b89a393059f61c6a30226915 + languageName: node + linkType: hard + +"@cloudflare/workers-types@npm:^4.20250311.0": + version: 4.20250726.0 + resolution: "@cloudflare/workers-types@npm:4.20250726.0" + checksum: 10c0/91c708039cf51bbf6d46b1052508c3c308c425b624281fbd26152e967bcff6d92b9946621fea1fcf0538188d96c0280754b5bb1ca1f003675adb8a4f4b7e44de + languageName: node + linkType: hard + +"@cspotcode/source-map-support@npm:0.8.1": + version: 0.8.1 + resolution: "@cspotcode/source-map-support@npm:0.8.1" + dependencies: + "@jridgewell/trace-mapping": "npm:0.3.9" + checksum: 10c0/05c5368c13b662ee4c122c7bfbe5dc0b613416672a829f3e78bc49a357a197e0218d6e74e7c66cfcd04e15a179acab080bd3c69658c9fbefd0e1ccd950a07fc6 + languageName: node + linkType: hard + +"@devcycle/mcp-worker@workspace:.": + version: 0.0.0-use.local + resolution: "@devcycle/mcp-worker@workspace:." + dependencies: + "@cloudflare/workers-oauth-provider": "npm:^0.0.5" + "@modelcontextprotocol/sdk": "npm:^1.15.0" + "@types/node": "npm:^24.0.10" + agents: "npm:^0.0.100" + hono: "npm:^4.8.4" + jose: "npm:^6.0.11" + oauth4webapi: "npm:^3.5.5" + typescript: "npm:^5.8.3" + wrangler: "npm:^4.22.0" + zod: "npm:^3.24.2" + languageName: unknown + linkType: soft + +"@emnapi/runtime@npm:^1.2.0": + version: 1.4.5 + resolution: "@emnapi/runtime@npm:1.4.5" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/37a0278be5ac81e918efe36f1449875cbafba947039c53c65a1f8fc238001b866446fc66041513b286baaff5d6f9bec667f5164b3ca481373a8d9cb65bfc984b + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/aix-ppc64@npm:0.25.4" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/android-arm64@npm:0.25.4" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/android-arm@npm:0.25.4" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/android-x64@npm:0.25.4" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/darwin-arm64@npm:0.25.4" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/darwin-x64@npm:0.25.4" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/freebsd-arm64@npm:0.25.4" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/freebsd-x64@npm:0.25.4" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/linux-arm64@npm:0.25.4" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/linux-arm@npm:0.25.4" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/linux-ia32@npm:0.25.4" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/linux-loong64@npm:0.25.4" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/linux-mips64el@npm:0.25.4" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/linux-ppc64@npm:0.25.4" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/linux-riscv64@npm:0.25.4" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/linux-s390x@npm:0.25.4" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/linux-x64@npm:0.25.4" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-arm64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/netbsd-arm64@npm:0.25.4" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/netbsd-x64@npm:0.25.4" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/openbsd-arm64@npm:0.25.4" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/openbsd-x64@npm:0.25.4" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/sunos-x64@npm:0.25.4" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/win32-arm64@npm:0.25.4" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/win32-ia32@npm:0.25.4" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.25.4": + version: 0.25.4 + resolution: "@esbuild/win32-x64@npm:0.25.4" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@img/sharp-darwin-arm64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-darwin-arm64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-darwin-arm64": "npm:1.0.4" + dependenciesMeta: + "@img/sharp-libvips-darwin-arm64": + optional: true + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@img/sharp-darwin-x64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-darwin-x64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-darwin-x64": "npm:1.0.4" + dependenciesMeta: + "@img/sharp-libvips-darwin-x64": + optional: true + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@img/sharp-libvips-darwin-arm64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-darwin-arm64@npm:1.0.4" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@img/sharp-libvips-darwin-x64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-darwin-x64@npm:1.0.4" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-arm64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linux-arm64@npm:1.0.4" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-arm@npm:1.0.5": + version: 1.0.5 + resolution: "@img/sharp-libvips-linux-arm@npm:1.0.5" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-s390x@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linux-s390x@npm:1.0.4" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-x64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linux-x64@npm:1.0.4" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linuxmusl-arm64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linuxmusl-arm64@npm:1.0.4" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-libvips-linuxmusl-x64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linuxmusl-x64@npm:1.0.4" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-linux-arm64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linux-arm64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linux-arm64": "npm:1.0.4" + dependenciesMeta: + "@img/sharp-libvips-linux-arm64": + optional: true + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-arm@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linux-arm@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linux-arm": "npm:1.0.5" + dependenciesMeta: + "@img/sharp-libvips-linux-arm": + optional: true + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-s390x@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linux-s390x@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linux-s390x": "npm:1.0.4" + dependenciesMeta: + "@img/sharp-libvips-linux-s390x": + optional: true + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-x64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linux-x64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linux-x64": "npm:1.0.4" + dependenciesMeta: + "@img/sharp-libvips-linux-x64": + optional: true + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linuxmusl-arm64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linuxmusl-arm64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linuxmusl-arm64": "npm:1.0.4" + dependenciesMeta: + "@img/sharp-libvips-linuxmusl-arm64": + optional: true + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-linuxmusl-x64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linuxmusl-x64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linuxmusl-x64": "npm:1.0.4" + dependenciesMeta: + "@img/sharp-libvips-linuxmusl-x64": + optional: true + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-wasm32@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-wasm32@npm:0.33.5" + dependencies: + "@emnapi/runtime": "npm:^1.2.0" + conditions: cpu=wasm32 + languageName: node + linkType: hard + +"@img/sharp-win32-ia32@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-win32-ia32@npm:0.33.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@img/sharp-win32-x64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-win32-x64@npm:0.33.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: "npm:^5.1.2" + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: "npm:^7.0.1" + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: "npm:^8.1.0" + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e + languageName: node + linkType: hard + +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: "npm:^7.0.4" + checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2 + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.0.3": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.10": + version: 1.5.4 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.4" + checksum: 10c0/c5aab3e6362a8dd94ad80ab90845730c825fc4c8d9cf07ebca7a2eb8a832d155d62558800fc41d42785f989ddbb21db6df004d1786e8ecb65e428ab8dff71309 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:0.3.9": + version: 0.3.9 + resolution: "@jridgewell/trace-mapping@npm:0.3.9" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.0.3" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + checksum: 10c0/fa425b606d7c7ee5bfa6a31a7b050dd5814b4082f318e0e4190f991902181b4330f43f4805db1dd4f2433fd0ed9cc7a7b9c2683f1deeab1df1b0a98b1e24055b + languageName: node + linkType: hard + +"@modelcontextprotocol/sdk@npm:^1.13.1, @modelcontextprotocol/sdk@npm:^1.15.0": + version: 1.17.0 + resolution: "@modelcontextprotocol/sdk@npm:1.17.0" + dependencies: + ajv: "npm:^6.12.6" + content-type: "npm:^1.0.5" + cors: "npm:^2.8.5" + cross-spawn: "npm:^7.0.5" + eventsource: "npm:^3.0.2" + eventsource-parser: "npm:^3.0.0" + express: "npm:^5.0.1" + express-rate-limit: "npm:^7.5.0" + pkce-challenge: "npm:^5.0.0" + raw-body: "npm:^3.0.0" + zod: "npm:^3.23.8" + zod-to-json-schema: "npm:^3.24.1" + checksum: 10c0/ac497edeb05a434bf8092475e4354ec602644b0197735d3bcd809ee1922f2078ab71e7d8d9dbe1c42765978fa3f2f807df01a2a3ad421c986f0b2207c3a40a68 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^3.0.0": + version: 3.0.0 + resolution: "@npmcli/agent@npm:3.0.0" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^10.0.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 10c0/efe37b982f30740ee77696a80c196912c274ecd2cb243bc6ae7053a50c733ce0f6c09fda085145f33ecf453be19654acca74b69e81eaad4c90f00ccffe2f9271 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/fs@npm:4.0.0" + dependencies: + semver: "npm:^7.3.5" + checksum: 10c0/c90935d5ce670c87b6b14fab04a965a3b8137e585f8b2a6257263bd7f97756dd736cb165bb470e5156a9e718ecd99413dccc54b1138c1a46d6ec7cf325982fe5 + languageName: node + linkType: hard + +"@opentelemetry/api@npm:1.9.0": + version: 1.9.0 + resolution: "@opentelemetry/api@npm:1.9.0" + checksum: 10c0/9aae2fe6e8a3a3eeb6c1fdef78e1939cf05a0f37f8a4fae4d6bf2e09eb1e06f966ece85805626e01ba5fab48072b94f19b835449e58b6d26720ee19a58298add + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd + languageName: node + linkType: hard + +"@poppinss/colors@npm:^4.1.5": + version: 4.1.5 + resolution: "@poppinss/colors@npm:4.1.5" + dependencies: + kleur: "npm:^4.1.5" + checksum: 10c0/e9d5c9e9a8c1eb7cd37e9b431bda7b7573476be7395123b26815d758f38ca93db0ba62bb2831281f4f04a6e1620b4d4f9377268d32c61c2c9f6599a02c2112b7 + languageName: node + linkType: hard + +"@poppinss/dumper@npm:^0.6.4": + version: 0.6.4 + resolution: "@poppinss/dumper@npm:0.6.4" + dependencies: + "@poppinss/colors": "npm:^4.1.5" + "@sindresorhus/is": "npm:^7.0.2" + supports-color: "npm:^10.0.0" + checksum: 10c0/1eb1716af39fae7cc294f8fd60d10527c26bd82cd9e6438ffc71face9d6a198a3af713e7f73ef4800b1a19b99003467023ec2c5d308c38d3ba958a12d0a91989 + languageName: node + linkType: hard + +"@poppinss/exception@npm:^1.2.2": + version: 1.2.2 + resolution: "@poppinss/exception@npm:1.2.2" + checksum: 10c0/b14d1e3d532230f58238231fce6ba3bf51dab50d4ec015f3192f04320be1d692eadd831a8d437e2fc345787c96350104149fd9920264362bca143d04ec03bc4e + languageName: node + linkType: hard + +"@sindresorhus/is@npm:^7.0.2": + version: 7.0.2 + resolution: "@sindresorhus/is@npm:7.0.2" + checksum: 10c0/50881c9b651e189972087de9104e0d259a2a0dc93c604e863b3be1847e31c3dce685e76a41c0ae92198ae02b36d30d07b723a2d72015ce3cf910afc6dc337ff5 + languageName: node + linkType: hard + +"@speed-highlight/core@npm:^1.2.7": + version: 1.2.7 + resolution: "@speed-highlight/core@npm:1.2.7" + checksum: 10c0/33905da58b7e0f0857f3ec7c60a4d2e7bd7e25573dd8676de2dab555057e9873084fd2bb1d97c4629131a990f7e230cb7068045370a15c77c4412527776791d4 + languageName: node + linkType: hard + +"@types/diff-match-patch@npm:^1.0.36": + version: 1.0.36 + resolution: "@types/diff-match-patch@npm:1.0.36" + checksum: 10c0/0bad011ab138baa8bde94e7815064bb881f010452463272644ddbbb0590659cb93f7aa2776ff442c6721d70f202839e1053f8aa62d801cc4166f7a3ea9130055 + languageName: node + linkType: hard + +"@types/node@npm:^24.0.10": + version: 24.1.0 + resolution: "@types/node@npm:24.1.0" + dependencies: + undici-types: "npm:~7.8.0" + checksum: 10c0/6c4686bc144f6ce7bffd4cadc3e1196e2217c1da4c639c637213719c8a3ee58b6c596b994befcbffeacd9d9eb0c3bff6529d2bc27da5d1cb9d58b1da0056f9f4 + languageName: node + linkType: hard + +"abbrev@npm:^3.0.0": + version: 3.0.1 + resolution: "abbrev@npm:3.0.1" + checksum: 10c0/21ba8f574ea57a3106d6d35623f2c4a9111d9ee3e9a5be47baed46ec2457d2eac46e07a5c4a60186f88cb98abbe3e24f2d4cca70bc2b12f1692523e2209a9ccf + languageName: node + linkType: hard + +"accepts@npm:^2.0.0": + version: 2.0.0 + resolution: "accepts@npm:2.0.0" + dependencies: + mime-types: "npm:^3.0.0" + negotiator: "npm:^1.0.0" + checksum: 10c0/98374742097e140891546076215f90c32644feacf652db48412329de4c2a529178a81aa500fbb13dd3e6cbf6e68d829037b123ac037fc9a08bcec4b87b358eef + languageName: node + linkType: hard + +"acorn-walk@npm:8.3.2": + version: 8.3.2 + resolution: "acorn-walk@npm:8.3.2" + checksum: 10c0/7e2a8dad5480df7f872569b9dccff2f3da7e65f5353686b1d6032ab9f4ddf6e3a2cb83a9b52cf50b1497fd522154dda92f0abf7153290cc79cd14721ff121e52 + languageName: node + linkType: hard + +"acorn@npm:8.14.0": + version: 8.14.0 + resolution: "acorn@npm:8.14.0" + bin: + acorn: bin/acorn + checksum: 10c0/6d4ee461a7734b2f48836ee0fbb752903606e576cc100eb49340295129ca0b452f3ba91ddd4424a1d4406a98adfb2ebb6bd0ff4c49d7a0930c10e462719bbfd7 + languageName: node + linkType: hard + +"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": + version: 7.1.4 + resolution: "agent-base@npm:7.1.4" + checksum: 10c0/c2c9ab7599692d594b6a161559ada307b7a624fa4c7b03e3afdb5a5e31cd0e53269115b620fcab024c5ac6a6f37fa5eb2e004f076ad30f5f7e6b8b671f7b35fe + languageName: node + linkType: hard + +"agents@npm:^0.0.100": + version: 0.0.100 + resolution: "agents@npm:0.0.100" + dependencies: + "@modelcontextprotocol/sdk": "npm:^1.13.1" + ai: "npm:^4.3.16" + cron-schedule: "npm:^5.0.4" + nanoid: "npm:^5.1.5" + partyserver: "npm:^0.0.72" + partysocket: "npm:1.1.4" + zod: "npm:^3.25.67" + peerDependencies: + react: "*" + checksum: 10c0/8b8238fade413b1ad10a2543bdac9558ef9df565503c9e6b1050942527e2b696f66c165cfe81b857add5b57fd13793689771df06a8d2cb9e7195f82d07d0457d + languageName: node + linkType: hard + +"ai@npm:^4.3.16": + version: 4.3.19 + resolution: "ai@npm:4.3.19" + dependencies: + "@ai-sdk/provider": "npm:1.1.3" + "@ai-sdk/provider-utils": "npm:2.2.8" + "@ai-sdk/react": "npm:1.2.12" + "@ai-sdk/ui-utils": "npm:1.2.11" + "@opentelemetry/api": "npm:1.9.0" + jsondiffpatch: "npm:0.6.0" + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + zod: ^3.23.8 + peerDependenciesMeta: + react: + optional: true + checksum: 10c0/738ac453b3e61b2f2282941fe8af946c42696fbdcffa5ac213823377bcddf475f26923cf2ca5656d5655e5c351e355e1af62dcb04a6df6139b67bac650b01af2 + languageName: node + linkType: hard + +"ajv@npm:^6.12.6": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + dependencies: + fast-deep-equal: "npm:^3.1.1" + fast-json-stable-stringify: "npm:^2.0.0" + json-schema-traverse: "npm:^0.4.1" + uri-js: "npm:^4.2.2" + checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.1.0 + resolution: "ansi-regex@npm:6.1.0" + checksum: 10c0/a91daeddd54746338478eef88af3439a7edf30f8e23196e2d6ed182da9add559c601266dbef01c2efa46a958ad6f1f8b176799657616c702b5b02e799e7fd8dc + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: "npm:^2.0.1" + checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee + languageName: node + linkType: hard + +"blake3-wasm@npm:2.1.5": + version: 2.1.5 + resolution: "blake3-wasm@npm:2.1.5" + checksum: 10c0/5dc729d8e3a9d1d7ab016b36cdda264a327ada0239716df48435163e11d2bf6df25d6e421655a1f52649098ae49555268a654729b7d02768f77c571ab37ef814 + languageName: node + linkType: hard + +"body-parser@npm:^2.2.0": + version: 2.2.0 + resolution: "body-parser@npm:2.2.0" + dependencies: + bytes: "npm:^3.1.2" + content-type: "npm:^1.0.5" + debug: "npm:^4.4.0" + http-errors: "npm:^2.0.0" + iconv-lite: "npm:^0.6.3" + on-finished: "npm:^2.4.1" + qs: "npm:^6.14.0" + raw-body: "npm:^3.0.0" + type-is: "npm:^2.0.0" + checksum: 10c0/a9ded39e71ac9668e2211afa72e82ff86cc5ef94de1250b7d1ba9cc299e4150408aaa5f1e8b03dd4578472a3ce6d1caa2a23b27a6c18e526e48b4595174c116c + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.2 + resolution: "brace-expansion@npm:2.0.2" + dependencies: + balanced-match: "npm:^1.0.0" + checksum: 10c0/6d117a4c793488af86b83172deb6af143e94c17bc53b0b3cec259733923b4ca84679d506ac261f4ba3c7ed37c46018e2ff442f9ce453af8643ecd64f4a54e6cf + languageName: node + linkType: hard + +"bytes@npm:3.1.2, bytes@npm:^3.1.2": + version: 3.1.2 + resolution: "bytes@npm:3.1.2" + checksum: 10c0/76d1c43cbd602794ad8ad2ae94095cddeb1de78c5dddaa7005c51af10b0176c69971a6d88e805a90c2b6550d76636e43c40d8427a808b8645ede885de4a0358e + languageName: node + linkType: hard + +"cacache@npm:^19.0.1": + version: 19.0.1 + resolution: "cacache@npm:19.0.1" + dependencies: + "@npmcli/fs": "npm:^4.0.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^7.0.2" + ssri: "npm:^12.0.0" + tar: "npm:^7.4.3" + unique-filename: "npm:^4.0.0" + checksum: 10c0/01f2134e1bd7d3ab68be851df96c8d63b492b1853b67f2eecb2c37bb682d37cb70bb858a16f2f0554d3c0071be6dfe21456a1ff6fa4b7eed996570d6a25ffe9c + languageName: node + linkType: hard + +"call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind-apply-helpers@npm:1.0.2" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + checksum: 10c0/47bd9901d57b857590431243fea704ff18078b16890a6b3e021e12d279bbf211d039155e27d7566b374d49ee1f8189344bac9833dec7a20cdec370506361c938 + languageName: node + linkType: hard + +"call-bound@npm:^1.0.2": + version: 1.0.4 + resolution: "call-bound@npm:1.0.4" + dependencies: + call-bind-apply-helpers: "npm:^1.0.2" + get-intrinsic: "npm:^1.3.0" + checksum: 10c0/f4796a6a0941e71c766aea672f63b72bc61234c4f4964dc6d7606e3664c307e7d77845328a8f3359ce39ddb377fed67318f9ee203dea1d47e46165dcf2917644 + languageName: node + linkType: hard + +"chalk@npm:^5.3.0": + version: 5.4.1 + resolution: "chalk@npm:5.4.1" + checksum: 10c0/b23e88132c702f4855ca6d25cb5538b1114343e41472d5263ee8a37cccfccd9c4216d111e1097c6a27830407a1dc81fecdf2a56f2c63033d4dbbd88c10b0dcef + languageName: node + linkType: hard + +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: "npm:~1.1.4" + checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 + languageName: node + linkType: hard + +"color-name@npm:^1.0.0, color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 + languageName: node + linkType: hard + +"color-string@npm:^1.9.0": + version: 1.9.1 + resolution: "color-string@npm:1.9.1" + dependencies: + color-name: "npm:^1.0.0" + simple-swizzle: "npm:^0.2.2" + checksum: 10c0/b0bfd74c03b1f837f543898b512f5ea353f71630ccdd0d66f83028d1f0924a7d4272deb278b9aef376cacf1289b522ac3fb175e99895283645a2dc3a33af2404 + languageName: node + linkType: hard + +"color@npm:^4.2.3": + version: 4.2.3 + resolution: "color@npm:4.2.3" + dependencies: + color-convert: "npm:^2.0.1" + color-string: "npm:^1.9.0" + checksum: 10c0/7fbe7cfb811054c808349de19fb380252e5e34e61d7d168ec3353e9e9aacb1802674bddc657682e4e9730c2786592a4de6f8283e7e0d3870b829bb0b7b2f6118 + languageName: node + linkType: hard + +"content-disposition@npm:^1.0.0": + version: 1.0.0 + resolution: "content-disposition@npm:1.0.0" + dependencies: + safe-buffer: "npm:5.2.1" + checksum: 10c0/c7b1ba0cea2829da0352ebc1b7f14787c73884bc707c8bc2271d9e3bf447b372270d09f5d3980dc5037c749ceef56b9a13fccd0b0001c87c3f12579967e4dd27 + languageName: node + linkType: hard + +"content-type@npm:^1.0.5": + version: 1.0.5 + resolution: "content-type@npm:1.0.5" + checksum: 10c0/b76ebed15c000aee4678c3707e0860cb6abd4e680a598c0a26e17f0bfae723ec9cc2802f0ff1bc6e4d80603719010431d2231018373d4dde10f9ccff9dadf5af + languageName: node + linkType: hard + +"cookie-signature@npm:^1.2.1": + version: 1.2.2 + resolution: "cookie-signature@npm:1.2.2" + checksum: 10c0/54e05df1a293b3ce81589b27dddc445f462f6fa6812147c033350cd3561a42bc14481674e05ed14c7bd0ce1e8bb3dc0e40851bad75415733711294ddce0b7bc6 + languageName: node + linkType: hard + +"cookie@npm:^0.7.1": + version: 0.7.2 + resolution: "cookie@npm:0.7.2" + checksum: 10c0/9596e8ccdbf1a3a88ae02cf5ee80c1c50959423e1022e4e60b91dd87c622af1da309253d8abdb258fb5e3eacb4f08e579dc58b4897b8087574eee0fd35dfa5d2 + languageName: node + linkType: hard + +"cookie@npm:^1.0.2": + version: 1.0.2 + resolution: "cookie@npm:1.0.2" + checksum: 10c0/fd25fe79e8fbcfcaf6aa61cd081c55d144eeeba755206c058682257cb38c4bd6795c6620de3f064c740695bb65b7949ebb1db7a95e4636efb8357a335ad3f54b + languageName: node + linkType: hard + +"cors@npm:^2.8.5": + version: 2.8.5 + resolution: "cors@npm:2.8.5" + dependencies: + object-assign: "npm:^4" + vary: "npm:^1" + checksum: 10c0/373702b7999409922da80de4a61938aabba6929aea5b6fd9096fefb9e8342f626c0ebd7507b0e8b0b311380744cc985f27edebc0a26e0ddb784b54e1085de761 + languageName: node + linkType: hard + +"cron-schedule@npm:^5.0.4": + version: 5.0.4 + resolution: "cron-schedule@npm:5.0.4" + checksum: 10c0/8b89b4a4b90dff66e277855012d6b4b4ee18f2d3d16f74aa40e9555a0c08b2d4bc4ba8c7526cf6213490f32099f8a3a0db86942b7dbfbb1d2580cccf0ba344ae + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.5, cross-spawn@npm:^7.0.6": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.4.0": + version: 4.4.1 + resolution: "debug@npm:4.4.1" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/d2b44bc1afd912b49bb7ebb0d50a860dc93a4dd7d946e8de94abc957bb63726b7dd5aa48c18c2386c379ec024c46692e15ed3ed97d481729f929201e671fcd55 + languageName: node + linkType: hard + +"defu@npm:^6.1.4": + version: 6.1.4 + resolution: "defu@npm:6.1.4" + checksum: 10c0/2d6cc366262dc0cb8096e429368e44052fdf43ed48e53ad84cc7c9407f890301aa5fcb80d0995abaaf842b3949f154d060be4160f7a46cb2bc2f7726c81526f5 + languageName: node + linkType: hard + +"depd@npm:2.0.0, depd@npm:^2.0.0": + version: 2.0.0 + resolution: "depd@npm:2.0.0" + checksum: 10c0/58bd06ec20e19529b06f7ad07ddab60e504d9e0faca4bd23079fac2d279c3594334d736508dc350e06e510aba5e22e4594483b3a6562ce7c17dd797f4cc4ad2c + languageName: node + linkType: hard + +"dequal@npm:^2.0.3": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 + languageName: node + linkType: hard + +"detect-libc@npm:^2.0.3": + version: 2.0.4 + resolution: "detect-libc@npm:2.0.4" + checksum: 10c0/c15541f836eba4b1f521e4eecc28eefefdbc10a94d3b8cb4c507689f332cc111babb95deda66f2de050b22122113189986d5190be97d51b5a2b23b938415e67c + languageName: node + linkType: hard + +"diff-match-patch@npm:^1.0.5": + version: 1.0.5 + resolution: "diff-match-patch@npm:1.0.5" + checksum: 10c0/142b6fad627b9ef309d11bd935e82b84c814165a02500f046e2773f4ea894d10ed3017ac20454900d79d4a0322079f5b713cf0986aaf15fce0ec4a2479980c86 + languageName: node + linkType: hard + +"dunder-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" + dependencies: + call-bind-apply-helpers: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.2.0" + checksum: 10c0/199f2a0c1c16593ca0a145dbf76a962f8033ce3129f01284d48c45ed4e14fea9bbacd7b3610b6cdc33486cef20385ac054948fefc6272fcce645c09468f93031 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 + languageName: node + linkType: hard + +"ee-first@npm:1.1.1": + version: 1.1.1 + resolution: "ee-first@npm:1.1.1" + checksum: 10c0/b5bb125ee93161bc16bfe6e56c6b04de5ad2aa44234d8f644813cc95d861a6910903132b05093706de2b706599367c4130eb6d170f6b46895686b95f87d017b7 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 + languageName: node + linkType: hard + +"encodeurl@npm:^2.0.0": + version: 2.0.0 + resolution: "encodeurl@npm:2.0.0" + checksum: 10c0/5d317306acb13e6590e28e27924c754163946a2480de11865c991a3a7eed4315cd3fba378b543ca145829569eefe9b899f3d84bb09870f675ae60bc924b01ceb + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: "npm:^0.6.2" + checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 + languageName: node + linkType: hard + +"error-stack-parser-es@npm:^1.0.5": + version: 1.0.5 + resolution: "error-stack-parser-es@npm:1.0.5" + checksum: 10c0/040665eb87a42fe068c0da501bc258f3d15d3a03963c0723d7a2741e251d400c9776a52d2803afdc5709def99554cdb5a5d99c203c7eaf4885d3fbc217e2e8f7 + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 10c0/3f54eb49c16c18707949ff25a1456728c883e81259f045003499efba399c08bad00deebf65cccde8c0e07908c1a225c9d472b7107e558f2a48e28d530e34527c + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 + languageName: node + linkType: hard + +"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": + version: 1.1.1 + resolution: "es-object-atoms@npm:1.1.1" + dependencies: + es-errors: "npm:^1.3.0" + checksum: 10c0/65364812ca4daf48eb76e2a3b7a89b3f6a2e62a1c420766ce9f692665a29d94fe41fe88b65f24106f449859549711e4b40d9fb8002d862dfd7eb1c512d10be0c + languageName: node + linkType: hard + +"esbuild@npm:0.25.4": + version: 0.25.4 + resolution: "esbuild@npm:0.25.4" + dependencies: + "@esbuild/aix-ppc64": "npm:0.25.4" + "@esbuild/android-arm": "npm:0.25.4" + "@esbuild/android-arm64": "npm:0.25.4" + "@esbuild/android-x64": "npm:0.25.4" + "@esbuild/darwin-arm64": "npm:0.25.4" + "@esbuild/darwin-x64": "npm:0.25.4" + "@esbuild/freebsd-arm64": "npm:0.25.4" + "@esbuild/freebsd-x64": "npm:0.25.4" + "@esbuild/linux-arm": "npm:0.25.4" + "@esbuild/linux-arm64": "npm:0.25.4" + "@esbuild/linux-ia32": "npm:0.25.4" + "@esbuild/linux-loong64": "npm:0.25.4" + "@esbuild/linux-mips64el": "npm:0.25.4" + "@esbuild/linux-ppc64": "npm:0.25.4" + "@esbuild/linux-riscv64": "npm:0.25.4" + "@esbuild/linux-s390x": "npm:0.25.4" + "@esbuild/linux-x64": "npm:0.25.4" + "@esbuild/netbsd-arm64": "npm:0.25.4" + "@esbuild/netbsd-x64": "npm:0.25.4" + "@esbuild/openbsd-arm64": "npm:0.25.4" + "@esbuild/openbsd-x64": "npm:0.25.4" + "@esbuild/sunos-x64": "npm:0.25.4" + "@esbuild/win32-arm64": "npm:0.25.4" + "@esbuild/win32-ia32": "npm:0.25.4" + "@esbuild/win32-x64": "npm:0.25.4" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/db9f51248f0560bc46ab219461d338047617f6caf373c95f643b204760bdfa10c95b48cfde948949f7e509599ae4ab61c3f112092a3534936c6abfb800c565b0 + languageName: node + linkType: hard + +"escape-html@npm:^1.0.3": + version: 1.0.3 + resolution: "escape-html@npm:1.0.3" + checksum: 10c0/524c739d776b36c3d29fa08a22e03e8824e3b2fd57500e5e44ecf3cc4707c34c60f9ca0781c0e33d191f2991161504c295e98f68c78fe7baa6e57081ec6ac0a3 + languageName: node + linkType: hard + +"etag@npm:^1.8.1": + version: 1.8.1 + resolution: "etag@npm:1.8.1" + checksum: 10c0/12be11ef62fb9817314d790089a0a49fae4e1b50594135dcb8076312b7d7e470884b5100d249b28c18581b7fd52f8b485689ffae22a11ed9ec17377a33a08f84 + languageName: node + linkType: hard + +"event-target-polyfill@npm:^0.0.4": + version: 0.0.4 + resolution: "event-target-polyfill@npm:0.0.4" + checksum: 10c0/7052b838df6509e8290f110daf94604dd05828834db4ad6fe4a12abc693da1a3274100cfd4ff3e47a941d5aa3fb7cdb8164d85402b93d85340bb3adc596d8732 + languageName: node + linkType: hard + +"eventsource-parser@npm:^3.0.0, eventsource-parser@npm:^3.0.1": + version: 3.0.3 + resolution: "eventsource-parser@npm:3.0.3" + checksum: 10c0/2594011630efba56cafafc8ed6bd9a50db8f6d5dd62089b0950346e7961828c16efe07a588bdea3ba79e568fd9246c8163824a2ffaade767e1fdb2270c1fae0b + languageName: node + linkType: hard + +"eventsource@npm:^3.0.2": + version: 3.0.7 + resolution: "eventsource@npm:3.0.7" + dependencies: + eventsource-parser: "npm:^3.0.1" + checksum: 10c0/c48a73c38f300e33e9f11375d4ee969f25cbb0519608a12378a38068055ae8b55b6e0e8a49c3f91c784068434efe1d9f01eb49b6315b04b0da9157879ce2f67d + languageName: node + linkType: hard + +"exit-hook@npm:2.2.1": + version: 2.2.1 + resolution: "exit-hook@npm:2.2.1" + checksum: 10c0/0803726d1b60aade6afd10c73e5a7e1bf256ac9bee78362a88e91a4f735e8c67899f2853ddc613072c05af07bbb067a9978a740e614db1aeef167d50c6dc5c09 + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.2 + resolution: "exponential-backoff@npm:3.1.2" + checksum: 10c0/d9d3e1eafa21b78464297df91f1776f7fbaa3d5e3f7f0995648ca5b89c069d17055033817348d9f4a43d1c20b0eab84f75af6991751e839df53e4dfd6f22e844 + languageName: node + linkType: hard + +"express-rate-limit@npm:^7.5.0": + version: 7.5.1 + resolution: "express-rate-limit@npm:7.5.1" + peerDependencies: + express: ">= 4.11" + checksum: 10c0/b07de84d700a2c07c4bf2f040e7558ed5a1f660f03ed5f30bf8ff7b51e98ba7a85215640e70fc48cbbb9151066ea51239d9a1b41febc9b84d98c7915b0186161 + languageName: node + linkType: hard + +"express@npm:^5.0.1": + version: 5.1.0 + resolution: "express@npm:5.1.0" + dependencies: + accepts: "npm:^2.0.0" + body-parser: "npm:^2.2.0" + content-disposition: "npm:^1.0.0" + content-type: "npm:^1.0.5" + cookie: "npm:^0.7.1" + cookie-signature: "npm:^1.2.1" + debug: "npm:^4.4.0" + encodeurl: "npm:^2.0.0" + escape-html: "npm:^1.0.3" + etag: "npm:^1.8.1" + finalhandler: "npm:^2.1.0" + fresh: "npm:^2.0.0" + http-errors: "npm:^2.0.0" + merge-descriptors: "npm:^2.0.0" + mime-types: "npm:^3.0.0" + on-finished: "npm:^2.4.1" + once: "npm:^1.4.0" + parseurl: "npm:^1.3.3" + proxy-addr: "npm:^2.0.7" + qs: "npm:^6.14.0" + range-parser: "npm:^1.2.1" + router: "npm:^2.2.0" + send: "npm:^1.1.0" + serve-static: "npm:^2.2.0" + statuses: "npm:^2.0.1" + type-is: "npm:^2.0.1" + vary: "npm:^1.1.2" + checksum: 10c0/80ce7c53c5f56887d759b94c3f2283e2e51066c98d4b72a4cc1338e832b77f1e54f30d0239cc10815a0f849bdb753e6a284d2fa48d4ab56faf9c501f55d751d6 + languageName: node + linkType: hard + +"exsolve@npm:^1.0.4": + version: 1.0.7 + resolution: "exsolve@npm:1.0.7" + checksum: 10c0/4479369d0bd84bb7e0b4f5d9bc18d26a89b6dbbbccd73f9d383d14892ef78ddbe159e01781055342f83dc00ebe90044036daf17ddf55cc21e2cac6609aa15631 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b + languageName: node + linkType: hard + +"fdir@npm:^6.4.4": + version: 6.4.6 + resolution: "fdir@npm:6.4.6" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 10c0/45b559cff889934ebb8bc498351e5acba40750ada7e7d6bde197768d2fa67c149be8ae7f8ff34d03f4e1eb20f2764116e56440aaa2f6689e9a4aa7ef06acafe9 + languageName: node + linkType: hard + +"finalhandler@npm:^2.1.0": + version: 2.1.0 + resolution: "finalhandler@npm:2.1.0" + dependencies: + debug: "npm:^4.4.0" + encodeurl: "npm:^2.0.0" + escape-html: "npm:^1.0.3" + on-finished: "npm:^2.4.1" + parseurl: "npm:^1.3.3" + statuses: "npm:^2.0.1" + checksum: 10c0/da0bbca6d03873472ee890564eb2183f4ed377f25f3628a0fc9d16dac40bed7b150a0d82ebb77356e4c6d97d2796ad2dba22948b951dddee2c8768b0d1b9fb1f + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.3.1 + resolution: "foreground-child@npm:3.3.1" + dependencies: + cross-spawn: "npm:^7.0.6" + signal-exit: "npm:^4.0.1" + checksum: 10c0/8986e4af2430896e65bc2788d6679067294d6aee9545daefc84923a0a4b399ad9c7a3ea7bd8c0b2b80fdf4a92de4c69df3f628233ff3224260e9c1541a9e9ed3 + languageName: node + linkType: hard + +"forwarded@npm:0.2.0": + version: 0.2.0 + resolution: "forwarded@npm:0.2.0" + checksum: 10c0/9b67c3fac86acdbc9ae47ba1ddd5f2f81526fa4c8226863ede5600a3f7c7416ef451f6f1e240a3cc32d0fd79fcfe6beb08fd0da454f360032bde70bf80afbb33 + languageName: node + linkType: hard + +"fresh@npm:^2.0.0": + version: 2.0.0 + resolution: "fresh@npm:2.0.0" + checksum: 10c0/0557548194cb9a809a435bf92bcfbc20c89e8b5eb38861b73ced36750437251e39a111fc3a18b98531be9dd91fe1411e4969f229dc579ec0251ce6c5d4900bbc + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 + languageName: node + linkType: hard + +"fsevents@npm:~2.3.2": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin<compat/fsevents>": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin<compat/fsevents>::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.3.0": + version: 1.3.0 + resolution: "get-intrinsic@npm:1.3.0" + dependencies: + call-bind-apply-helpers: "npm:^1.0.2" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.1.1" + function-bind: "npm:^1.1.2" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + math-intrinsics: "npm:^1.1.0" + checksum: 10c0/52c81808af9a8130f581e6a6a83e1ba4a9f703359e7a438d1369a5267a25412322f03dcbd7c549edaef0b6214a0630a28511d7df0130c93cfd380f4fa0b5b66a + languageName: node + linkType: hard + +"get-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "get-proto@npm:1.0.1" + dependencies: + dunder-proto: "npm:^1.0.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10c0/9224acb44603c5526955e83510b9da41baf6ae73f7398875fba50edc5e944223a89c4a72b070fcd78beb5f7bdda58ecb6294adc28f7acfc0da05f76a2399643c + languageName: node + linkType: hard + +"glob-to-regexp@npm:0.4.1": + version: 0.4.1 + resolution: "glob-to-regexp@npm:0.4.1" + checksum: 10c0/0486925072d7a916f052842772b61c3e86247f0a80cc0deb9b5a3e8a1a9faad5b04fb6f58986a09f34d3e96cd2a22a24b7e9882fb1cf904c31e9a310de96c429 + languageName: node + linkType: hard + +"glob@npm:^10.2.2": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e + languageName: node + linkType: hard + +"gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: 10c0/50fff1e04ba2b7737c097358534eacadad1e68d24cccee3272e04e007bed008e68d2614f3987788428fd192a5ae3889d08fb2331417e4fc4a9ab366b2043cead + languageName: node + linkType: hard + +"graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 + languageName: node + linkType: hard + +"has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: 10c0/dde0a734b17ae51e84b10986e651c664379018d10b91b6b0e9b293eddb32f0f069688c841fb40f19e9611546130153e0a2a48fd7f512891fb000ddfa36f5a20e + languageName: node + linkType: hard + +"hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 + languageName: node + linkType: hard + +"hono@npm:^4.8.4": + version: 4.8.9 + resolution: "hono@npm:4.8.9" + checksum: 10c0/385539d1787fdc747bc869ef0e5ccc9f39cbe40289b94f23eecfc82c6ca440f059704647cd6381a5066d2cf7baa43ab25184c78d44af4c5c98a5c5b07670059e + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.2.0 + resolution: "http-cache-semantics@npm:4.2.0" + checksum: 10c0/45b66a945cf13ec2d1f29432277201313babf4a01d9e52f44b31ca923434083afeca03f18417f599c9ab3d0e7b618ceb21257542338b57c54b710463b4a53e37 + languageName: node + linkType: hard + +"http-errors@npm:2.0.0, http-errors@npm:^2.0.0": + version: 2.0.0 + resolution: "http-errors@npm:2.0.0" + dependencies: + depd: "npm:2.0.0" + inherits: "npm:2.0.4" + setprototypeof: "npm:1.2.0" + statuses: "npm:2.0.1" + toidentifier: "npm:1.0.1" + checksum: 10c0/fc6f2715fe188d091274b5ffc8b3657bd85c63e969daa68ccb77afb05b071a4b62841acb7a21e417b5539014dff2ebf9550f0b14a9ff126f2734a7c1387f8e19 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1": + version: 7.0.6 + resolution: "https-proxy-agent@npm:7.0.6" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:4" + checksum: 10c0/f729219bc735edb621fa30e6e84e60ee5d00802b8247aac0d7b79b0bd6d4b3294737a337b93b86a0bd9e68099d031858a39260c976dc14cdbba238ba1f8779ac + languageName: node + linkType: hard + +"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 + languageName: node + linkType: hard + +"inherits@npm:2.0.4": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 + languageName: node + linkType: hard + +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: "npm:1.1.0" + sprintf-js: "npm:^1.1.3" + checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc + languageName: node + linkType: hard + +"ipaddr.js@npm:1.9.1": + version: 1.9.1 + resolution: "ipaddr.js@npm:1.9.1" + checksum: 10c0/0486e775047971d3fdb5fb4f063829bac45af299ae0b82dcf3afa2145338e08290563a2a70f34b732d795ecc8311902e541a8530eeb30d75860a78ff4e94ce2a + languageName: node + linkType: hard + +"is-arrayish@npm:^0.3.1": + version: 0.3.2 + resolution: "is-arrayish@npm:0.3.2" + checksum: 10c0/f59b43dc1d129edb6f0e282595e56477f98c40278a2acdc8b0a5c57097c9eff8fe55470493df5775478cf32a4dc8eaf6d3a749f07ceee5bc263a78b2434f6a54 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc + languageName: node + linkType: hard + +"is-promise@npm:^4.0.0": + version: 4.0.0 + resolution: "is-promise@npm:4.0.0" + checksum: 10c0/ebd5c672d73db781ab33ccb155fb9969d6028e37414d609b115cc534654c91ccd061821d5b987eefaa97cf4c62f0b909bb2f04db88306de26e91bfe8ddc01503 + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 + languageName: node + linkType: hard + +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 + languageName: node + linkType: hard + +"jose@npm:^6.0.11": + version: 6.0.12 + resolution: "jose@npm:6.0.12" + checksum: 10c0/e5ca51b078b2443f6ca671e14d72e0ffd21b760dac0d77cabd7af649a127376ec90665c8b25f34dd88bb31094915ee662daf76e0b33a025d28dbc2bc17413dec + languageName: node + linkType: hard + +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 + languageName: node + linkType: hard + +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce + languageName: node + linkType: hard + +"json-schema@npm:^0.4.0": + version: 0.4.0 + resolution: "json-schema@npm:0.4.0" + checksum: 10c0/d4a637ec1d83544857c1c163232f3da46912e971d5bf054ba44fdb88f07d8d359a462b4aec46f2745efbc57053365608d88bc1d7b1729f7b4fc3369765639ed3 + languageName: node + linkType: hard + +"jsondiffpatch@npm:0.6.0": + version: 0.6.0 + resolution: "jsondiffpatch@npm:0.6.0" + dependencies: + "@types/diff-match-patch": "npm:^1.0.36" + chalk: "npm:^5.3.0" + diff-match-patch: "npm:^1.0.5" + bin: + jsondiffpatch: bin/jsondiffpatch.js + checksum: 10c0/f7822e48a8ef8b9f7c6024cc59b7d3707a9fe6d84fd776d169de5a1803ad551ffe7cfdc7587f3900f224bc70897355884ed43eb1c8ccd02e7f7b43a7ebcfed4f + languageName: node + linkType: hard + +"kleur@npm:^4.1.5": + version: 4.1.5 + resolution: "kleur@npm:4.1.5" + checksum: 10c0/e9de6cb49657b6fa70ba2d1448fd3d691a5c4370d8f7bbf1c2f64c24d461270f2117e1b0afe8cb3114f13bbd8e51de158c2a224953960331904e636a5e4c0f2a + languageName: node + linkType: hard + +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb + languageName: node + linkType: hard + +"make-fetch-happen@npm:^14.0.3": + version: 14.0.3 + resolution: "make-fetch-happen@npm:14.0.3" + dependencies: + "@npmcli/agent": "npm:^3.0.0" + cacache: "npm:^19.0.1" + http-cache-semantics: "npm:^4.1.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^4.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^1.0.0" + proc-log: "npm:^5.0.0" + promise-retry: "npm:^2.0.1" + ssri: "npm:^12.0.0" + checksum: 10c0/c40efb5e5296e7feb8e37155bde8eb70bc57d731b1f7d90e35a092fde403d7697c56fb49334d92d330d6f1ca29a98142036d6480a12681133a0a1453164cb2f0 + languageName: node + linkType: hard + +"math-intrinsics@npm:^1.1.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 10c0/7579ff94e899e2f76ab64491d76cf606274c874d8f2af4a442c016bd85688927fcfca157ba6bf74b08e9439dc010b248ce05b96cc7c126a354c3bae7fcb48b7f + languageName: node + linkType: hard + +"media-typer@npm:^1.1.0": + version: 1.1.0 + resolution: "media-typer@npm:1.1.0" + checksum: 10c0/7b4baa40b25964bb90e2121ee489ec38642127e48d0cc2b6baa442688d3fde6262bfdca86d6bbf6ba708784afcac168c06840c71facac70e390f5f759ac121b9 + languageName: node + linkType: hard + +"merge-descriptors@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-descriptors@npm:2.0.0" + checksum: 10c0/95389b7ced3f9b36fbdcf32eb946dc3dd1774c2fdf164609e55b18d03aa499b12bd3aae3a76c1c7185b96279e9803525550d3eb292b5224866060a288f335cb3 + languageName: node + linkType: hard + +"mime-db@npm:^1.54.0": + version: 1.54.0 + resolution: "mime-db@npm:1.54.0" + checksum: 10c0/8d907917bc2a90fa2df842cdf5dfeaf509adc15fe0531e07bb2f6ab15992416479015828d6a74200041c492e42cce3ebf78e5ce714388a0a538ea9c53eece284 + languageName: node + linkType: hard + +"mime-types@npm:^3.0.0, mime-types@npm:^3.0.1": + version: 3.0.1 + resolution: "mime-types@npm:3.0.1" + dependencies: + mime-db: "npm:^1.54.0" + checksum: 10c0/bd8c20d3694548089cf229016124f8f40e6a60bbb600161ae13e45f793a2d5bb40f96bbc61f275836696179c77c1d6bf4967b2a75e0a8ad40fe31f4ed5be4da5 + languageName: node + linkType: hard + +"mime@npm:^3.0.0": + version: 3.0.0 + resolution: "mime@npm:3.0.0" + bin: + mime: cli.js + checksum: 10c0/402e792a8df1b2cc41cb77f0dcc46472b7944b7ec29cb5bbcd398624b6b97096728f1239766d3fdeb20551dd8d94738344c195a6ea10c4f906eb0356323b0531 + languageName: node + linkType: hard + +"miniflare@npm:4.20250712.2": + version: 4.20250712.2 + resolution: "miniflare@npm:4.20250712.2" + dependencies: + "@cspotcode/source-map-support": "npm:0.8.1" + acorn: "npm:8.14.0" + acorn-walk: "npm:8.3.2" + exit-hook: "npm:2.2.1" + glob-to-regexp: "npm:0.4.1" + sharp: "npm:^0.33.5" + stoppable: "npm:1.1.0" + undici: "npm:^7.10.0" + workerd: "npm:1.20250712.0" + ws: "npm:8.18.0" + youch: "npm:4.1.0-beta.10" + zod: "npm:3.22.3" + bin: + miniflare: bootstrap.js + checksum: 10c0/0cc64db60d82523e5a565163a9c147f0435300e5946a5e82197a55e56872b3d47adeb2dfd37fbbdf4ca8d251fc290b3765462a5fea17b8858dd22679359d56f8 + languageName: node + linkType: hard + +"minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e + languageName: node + linkType: hard + +"minipass-fetch@npm:^4.0.0": + version: 4.0.1 + resolution: "minipass-fetch@npm:4.0.1" + dependencies: + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^3.0.1" + dependenciesMeta: + encoding: + optional: true + checksum: 10c0/a3147b2efe8e078c9bf9d024a0059339c5a09c5b1dded6900a219c218cc8b1b78510b62dae556b507304af226b18c3f1aeb1d48660283602d5b6586c399eed5c + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 + languageName: node + linkType: hard + +"minizlib@npm:^3.0.1": + version: 3.0.2 + resolution: "minizlib@npm:3.0.2" + dependencies: + minipass: "npm:^7.1.2" + checksum: 10c0/9f3bd35e41d40d02469cb30470c55ccc21cae0db40e08d1d0b1dff01cc8cc89a6f78e9c5d2b7c844e485ec0a8abc2238111213fdc5b2038e6d1012eacf316f78 + languageName: node + linkType: hard + +"mkdirp@npm:^3.0.1": + version: 3.0.1 + resolution: "mkdirp@npm:3.0.1" + bin: + mkdirp: dist/cjs/src/bin.js + checksum: 10c0/9f2b975e9246351f5e3a40dcfac99fcd0baa31fbfab615fe059fb11e51f10e4803c63de1f384c54d656e4db31d000e4767e9ef076a22e12a641357602e31d57d + languageName: node + linkType: hard + +"ms@npm:^2.1.3": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 + languageName: node + linkType: hard + +"nanoid@npm:^3.3.8": + version: 3.3.11 + resolution: "nanoid@npm:3.3.11" + bin: + nanoid: bin/nanoid.cjs + checksum: 10c0/40e7f70b3d15f725ca072dfc4f74e81fcf1fbb02e491cf58ac0c79093adc9b0a73b152bcde57df4b79cd097e13023d7504acb38404a4da7bc1cd8e887b82fe0b + languageName: node + linkType: hard + +"nanoid@npm:^5.1.5": + version: 5.1.5 + resolution: "nanoid@npm:5.1.5" + bin: + nanoid: bin/nanoid.js + checksum: 10c0/e6004f1ad6c7123eeb037062c4441d44982037dc043aabb162457ef6986e99964ba98c63c975f96c547403beb0bf95bc537bd7bf9a09baf381656acdc2975c3c + languageName: node + linkType: hard + +"negotiator@npm:^1.0.0": + version: 1.0.0 + resolution: "negotiator@npm:1.0.0" + checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 11.2.0 + resolution: "node-gyp@npm:11.2.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^14.0.3" + nopt: "npm:^8.0.0" + proc-log: "npm:^5.0.0" + semver: "npm:^7.3.5" + tar: "npm:^7.4.3" + tinyglobby: "npm:^0.2.12" + which: "npm:^5.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10c0/bd8d8c76b06be761239b0c8680f655f6a6e90b48e44d43415b11c16f7e8c15be346fba0cbf71588c7cdfb52c419d928a7d3db353afc1d952d19756237d8f10b9 + languageName: node + linkType: hard + +"nopt@npm:^8.0.0": + version: 8.1.0 + resolution: "nopt@npm:8.1.0" + dependencies: + abbrev: "npm:^3.0.0" + bin: + nopt: bin/nopt.js + checksum: 10c0/62e9ea70c7a3eb91d162d2c706b6606c041e4e7b547cbbb48f8b3695af457dd6479904d7ace600856bf923dd8d1ed0696f06195c8c20f02ac87c1da0e1d315ef + languageName: node + linkType: hard + +"oauth4webapi@npm:^3.5.5": + version: 3.6.0 + resolution: "oauth4webapi@npm:3.6.0" + checksum: 10c0/5bfad39628db80faa563b3da4cae342a99827399e7b8730469ece452ecab84e32951b17c09f5904125f0ba6f2f869c01c354421d29470bc90940d8c6c226eef2 + languageName: node + linkType: hard + +"object-assign@npm:^4": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 + languageName: node + linkType: hard + +"object-inspect@npm:^1.13.3": + version: 1.13.4 + resolution: "object-inspect@npm:1.13.4" + checksum: 10c0/d7f8711e803b96ea3191c745d6f8056ce1f2496e530e6a19a0e92d89b0fa3c76d910c31f0aa270432db6bd3b2f85500a376a83aaba849a8d518c8845b3211692 + languageName: node + linkType: hard + +"ohash@npm:^2.0.11": + version: 2.0.11 + resolution: "ohash@npm:2.0.11" + checksum: 10c0/d07c8d79cc26da082c1a7c8d5b56c399dd4ed3b2bd069fcae6bae78c99a9bcc3ad813b1e1f49ca2f335292846d689c6141a762cf078727d2302a33d414e69c79 + languageName: node + linkType: hard + +"on-finished@npm:^2.4.1": + version: 2.4.1 + resolution: "on-finished@npm:2.4.1" + dependencies: + ee-first: "npm:1.1.1" + checksum: 10c0/46fb11b9063782f2d9968863d9cbba33d77aa13c17f895f56129c274318b86500b22af3a160fe9995aa41317efcd22941b6eba747f718ced08d9a73afdb087b4 + languageName: node + linkType: hard + +"once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: "npm:1" + checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 + languageName: node + linkType: hard + +"p-map@npm:^7.0.2": + version: 7.0.3 + resolution: "p-map@npm:7.0.3" + checksum: 10c0/46091610da2b38ce47bcd1d8b4835a6fa4e832848a6682cf1652bc93915770f4617afc844c10a77d1b3e56d2472bb2d5622353fa3ead01a7f42b04fc8e744a5c + languageName: node + linkType: hard + +"package-json-from-dist@npm:^1.0.0": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b + languageName: node + linkType: hard + +"parseurl@npm:^1.3.3": + version: 1.3.3 + resolution: "parseurl@npm:1.3.3" + checksum: 10c0/90dd4760d6f6174adb9f20cf0965ae12e23879b5f5464f38e92fce8073354341e4b3b76fa3d878351efe7d01e617121955284cfd002ab087fba1a0726ec0b4f5 + languageName: node + linkType: hard + +"partyserver@npm:^0.0.72": + version: 0.0.72 + resolution: "partyserver@npm:0.0.72" + dependencies: + nanoid: "npm:^5.1.5" + peerDependencies: + "@cloudflare/workers-types": ^4.20240729.0 + checksum: 10c0/94075ecb2f11a1517f32916fbc662b542735ade7e092042f9f9888d61ebb1d3cfd76ccaf406ff8e7c672c6812123fb075888c6b4196c7d38df10dbdc8f0d928a + languageName: node + linkType: hard + +"partysocket@npm:1.1.4": + version: 1.1.4 + resolution: "partysocket@npm:1.1.4" + dependencies: + event-target-polyfill: "npm:^0.0.4" + checksum: 10c0/d859bcaef5f5e8be0f383140a896a41e78c95fc2166002d2a60f09168c720d78864e8f8e3251ed5146d46bf9487102dd9c81d34893c811bfc8ea64f7236f2fed + languageName: node + linkType: hard + +"path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c + languageName: node + linkType: hard + +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: "npm:^10.2.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d + languageName: node + linkType: hard + +"path-to-regexp@npm:6.3.0": + version: 6.3.0 + resolution: "path-to-regexp@npm:6.3.0" + checksum: 10c0/73b67f4638b41cde56254e6354e46ae3a2ebc08279583f6af3d96fe4664fc75788f74ed0d18ca44fa4a98491b69434f9eee73b97bb5314bd1b5adb700f5c18d6 + languageName: node + linkType: hard + +"path-to-regexp@npm:^8.0.0": + version: 8.2.0 + resolution: "path-to-regexp@npm:8.2.0" + checksum: 10c0/ef7d0a887b603c0a142fad16ccebdcdc42910f0b14830517c724466ad676107476bba2fe9fffd28fd4c141391ccd42ea426f32bb44c2c82ecaefe10c37b90f5a + languageName: node + linkType: hard + +"pathe@npm:^2.0.3": + version: 2.0.3 + resolution: "pathe@npm:2.0.3" + checksum: 10c0/c118dc5a8b5c4166011b2b70608762e260085180bb9e33e80a50dcdb1e78c010b1624f4280c492c92b05fc276715a4c357d1f9edc570f8f1b3d90b6839ebaca1 + languageName: node + linkType: hard + +"picomatch@npm:^4.0.2": + version: 4.0.3 + resolution: "picomatch@npm:4.0.3" + checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2 + languageName: node + linkType: hard + +"pkce-challenge@npm:^5.0.0": + version: 5.0.0 + resolution: "pkce-challenge@npm:5.0.0" + checksum: 10c0/c6706d627fdbb6f22bf8cc5d60d96d6b6a7bb481399b336a3d3f4e9bfba3e167a2c32f8ec0b5e74be686a0ba3bcc9894865d4c2dd1b91cea4c05dba1f28602c3 + languageName: node + linkType: hard + +"proc-log@npm:^5.0.0": + version: 5.0.0 + resolution: "proc-log@npm:5.0.0" + checksum: 10c0/bbe5edb944b0ad63387a1d5b1911ae93e05ce8d0f60de1035b218cdcceedfe39dbd2c697853355b70f1a090f8f58fe90da487c85216bf9671f9499d1a897e9e3 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: "npm:^2.0.2" + retry: "npm:^0.12.0" + checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 + languageName: node + linkType: hard + +"proxy-addr@npm:^2.0.7": + version: 2.0.7 + resolution: "proxy-addr@npm:2.0.7" + dependencies: + forwarded: "npm:0.2.0" + ipaddr.js: "npm:1.9.1" + checksum: 10c0/c3eed999781a35f7fd935f398b6d8920b6fb00bbc14287bc6de78128ccc1a02c89b95b56742bf7cf0362cc333c61d138532049c7dedc7a328ef13343eff81210 + languageName: node + linkType: hard + +"punycode@npm:^2.1.0": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 + languageName: node + linkType: hard + +"qs@npm:^6.14.0": + version: 6.14.0 + resolution: "qs@npm:6.14.0" + dependencies: + side-channel: "npm:^1.1.0" + checksum: 10c0/8ea5d91bf34f440598ee389d4a7d95820e3b837d3fd9f433871f7924801becaa0cd3b3b4628d49a7784d06a8aea9bc4554d2b6d8d584e2d221dc06238a42909c + languageName: node + linkType: hard + +"range-parser@npm:^1.2.1": + version: 1.2.1 + resolution: "range-parser@npm:1.2.1" + checksum: 10c0/96c032ac2475c8027b7a4e9fe22dc0dfe0f6d90b85e496e0f016fbdb99d6d066de0112e680805075bd989905e2123b3b3d002765149294dce0c1f7f01fcc2ea0 + languageName: node + linkType: hard + +"raw-body@npm:^3.0.0": + version: 3.0.0 + resolution: "raw-body@npm:3.0.0" + dependencies: + bytes: "npm:3.1.2" + http-errors: "npm:2.0.0" + iconv-lite: "npm:0.6.3" + unpipe: "npm:1.0.0" + checksum: 10c0/f8daf4b724064a4811d118745a781ca0fb4676298b8adadfd6591155549cfea0a067523cf7dd3baeb1265fecc9ce5dfb2fc788c12c66b85202a336593ece0f87 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe + languageName: node + linkType: hard + +"router@npm:^2.2.0": + version: 2.2.0 + resolution: "router@npm:2.2.0" + dependencies: + debug: "npm:^4.4.0" + depd: "npm:^2.0.0" + is-promise: "npm:^4.0.0" + parseurl: "npm:^1.3.3" + path-to-regexp: "npm:^8.0.0" + checksum: 10c0/3279de7450c8eae2f6e095e9edacbdeec0abb5cb7249c6e719faa0db2dba43574b4fff5892d9220631c9abaff52dd3cad648cfea2aaace845e1a071915ac8867 + languageName: node + linkType: hard + +"safe-buffer@npm:5.2.1": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 + languageName: node + linkType: hard + +"secure-json-parse@npm:^2.7.0": + version: 2.7.0 + resolution: "secure-json-parse@npm:2.7.0" + checksum: 10c0/f57eb6a44a38a3eeaf3548228585d769d788f59007454214fab9ed7f01fbf2e0f1929111da6db28cf0bcc1a2e89db5219a59e83eeaec3a54e413a0197ce879e4 + languageName: node + linkType: hard + +"semver@npm:^7.3.5, semver@npm:^7.6.3": + version: 7.7.2 + resolution: "semver@npm:7.7.2" + bin: + semver: bin/semver.js + checksum: 10c0/aca305edfbf2383c22571cb7714f48cadc7ac95371b4b52362fb8eeffdfbc0de0669368b82b2b15978f8848f01d7114da65697e56cd8c37b0dab8c58e543f9ea + languageName: node + linkType: hard + +"send@npm:^1.1.0, send@npm:^1.2.0": + version: 1.2.0 + resolution: "send@npm:1.2.0" + dependencies: + debug: "npm:^4.3.5" + encodeurl: "npm:^2.0.0" + escape-html: "npm:^1.0.3" + etag: "npm:^1.8.1" + fresh: "npm:^2.0.0" + http-errors: "npm:^2.0.0" + mime-types: "npm:^3.0.1" + ms: "npm:^2.1.3" + on-finished: "npm:^2.4.1" + range-parser: "npm:^1.2.1" + statuses: "npm:^2.0.1" + checksum: 10c0/531bcfb5616948d3468d95a1fd0adaeb0c20818ba4a500f439b800ca2117971489e02074ce32796fd64a6772ea3e7235fe0583d8241dbd37a053dc3378eff9a5 + languageName: node + linkType: hard + +"serve-static@npm:^2.2.0": + version: 2.2.0 + resolution: "serve-static@npm:2.2.0" + dependencies: + encodeurl: "npm:^2.0.0" + escape-html: "npm:^1.0.3" + parseurl: "npm:^1.3.3" + send: "npm:^1.2.0" + checksum: 10c0/30e2ed1dbff1984836cfd0c65abf5d3f3f83bcd696c99d2d3c97edbd4e2a3ff4d3f87108a7d713640d290a7b6fe6c15ddcbc61165ab2eaad48ea8d3b52c7f913 + languageName: node + linkType: hard + +"setprototypeof@npm:1.2.0": + version: 1.2.0 + resolution: "setprototypeof@npm:1.2.0" + checksum: 10c0/68733173026766fa0d9ecaeb07f0483f4c2dc70ca376b3b7c40b7cda909f94b0918f6c5ad5ce27a9160bdfb475efaa9d5e705a11d8eaae18f9835d20976028bc + languageName: node + linkType: hard + +"sharp@npm:^0.33.5": + version: 0.33.5 + resolution: "sharp@npm:0.33.5" + dependencies: + "@img/sharp-darwin-arm64": "npm:0.33.5" + "@img/sharp-darwin-x64": "npm:0.33.5" + "@img/sharp-libvips-darwin-arm64": "npm:1.0.4" + "@img/sharp-libvips-darwin-x64": "npm:1.0.4" + "@img/sharp-libvips-linux-arm": "npm:1.0.5" + "@img/sharp-libvips-linux-arm64": "npm:1.0.4" + "@img/sharp-libvips-linux-s390x": "npm:1.0.4" + "@img/sharp-libvips-linux-x64": "npm:1.0.4" + "@img/sharp-libvips-linuxmusl-arm64": "npm:1.0.4" + "@img/sharp-libvips-linuxmusl-x64": "npm:1.0.4" + "@img/sharp-linux-arm": "npm:0.33.5" + "@img/sharp-linux-arm64": "npm:0.33.5" + "@img/sharp-linux-s390x": "npm:0.33.5" + "@img/sharp-linux-x64": "npm:0.33.5" + "@img/sharp-linuxmusl-arm64": "npm:0.33.5" + "@img/sharp-linuxmusl-x64": "npm:0.33.5" + "@img/sharp-wasm32": "npm:0.33.5" + "@img/sharp-win32-ia32": "npm:0.33.5" + "@img/sharp-win32-x64": "npm:0.33.5" + color: "npm:^4.2.3" + detect-libc: "npm:^2.0.3" + semver: "npm:^7.6.3" + dependenciesMeta: + "@img/sharp-darwin-arm64": + optional: true + "@img/sharp-darwin-x64": + optional: true + "@img/sharp-libvips-darwin-arm64": + optional: true + "@img/sharp-libvips-darwin-x64": + optional: true + "@img/sharp-libvips-linux-arm": + optional: true + "@img/sharp-libvips-linux-arm64": + optional: true + "@img/sharp-libvips-linux-s390x": + optional: true + "@img/sharp-libvips-linux-x64": + optional: true + "@img/sharp-libvips-linuxmusl-arm64": + optional: true + "@img/sharp-libvips-linuxmusl-x64": + optional: true + "@img/sharp-linux-arm": + optional: true + "@img/sharp-linux-arm64": + optional: true + "@img/sharp-linux-s390x": + optional: true + "@img/sharp-linux-x64": + optional: true + "@img/sharp-linuxmusl-arm64": + optional: true + "@img/sharp-linuxmusl-x64": + optional: true + "@img/sharp-wasm32": + optional: true + "@img/sharp-win32-ia32": + optional: true + "@img/sharp-win32-x64": + optional: true + checksum: 10c0/6b81421ddfe6ee524d8d77e325c5e147fef22884e1c7b1656dfd89a88d7025894115da02d5f984261bf2e6daa16f98cadd1721c4ba408b4212b1d2a60f233484 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: "npm:^3.0.0" + checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 + languageName: node + linkType: hard + +"side-channel-list@npm:^1.0.0": + version: 1.0.0 + resolution: "side-channel-list@npm:1.0.0" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + checksum: 10c0/644f4ac893456c9490ff388bf78aea9d333d5e5bfc64cfb84be8f04bf31ddc111a8d4b83b85d7e7e8a7b845bc185a9ad02c052d20e086983cf59f0be517d9b3d + languageName: node + linkType: hard + +"side-channel-map@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-map@npm:1.0.1" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + checksum: 10c0/010584e6444dd8a20b85bc926d934424bd809e1a3af941cace229f7fdcb751aada0fb7164f60c2e22292b7fa3c0ff0bce237081fd4cdbc80de1dc68e95430672 + languageName: node + linkType: hard + +"side-channel-weakmap@npm:^1.0.2": + version: 1.0.2 + resolution: "side-channel-weakmap@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + side-channel-map: "npm:^1.0.1" + checksum: 10c0/71362709ac233e08807ccd980101c3e2d7efe849edc51455030327b059f6c4d292c237f94dc0685031dd11c07dd17a68afde235d6cf2102d949567f98ab58185 + languageName: node + linkType: hard + +"side-channel@npm:^1.1.0": + version: 1.1.0 + resolution: "side-channel@npm:1.1.0" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + side-channel-list: "npm:^1.0.0" + side-channel-map: "npm:^1.0.1" + side-channel-weakmap: "npm:^1.0.2" + checksum: 10c0/cb20dad41eb032e6c24c0982e1e5a24963a28aa6122b4f05b3f3d6bf8ae7fd5474ef382c8f54a6a3ab86e0cac4d41a23bd64ede3970e5bfb50326ba02a7996e6 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 + languageName: node + linkType: hard + +"simple-swizzle@npm:^0.2.2": + version: 0.2.2 + resolution: "simple-swizzle@npm:0.2.2" + dependencies: + is-arrayish: "npm:^0.3.1" + checksum: 10c0/df5e4662a8c750bdba69af4e8263c5d96fe4cd0f9fe4bdfa3cbdeb45d2e869dff640beaaeb1ef0e99db4d8d2ec92f85508c269f50c972174851bc1ae5bd64308 + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.5 + resolution: "socks-proxy-agent@npm:8.0.5" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 10c0/5d2c6cecba6821389aabf18728325730504bf9bb1d9e342e7987a5d13badd7a98838cc9a55b8ed3cb866ad37cc23e1086f09c4d72d93105ce9dfe76330e9d2a6 + languageName: node + linkType: hard + +"socks@npm:^2.8.3": + version: 2.8.6 + resolution: "socks@npm:2.8.6" + dependencies: + ip-address: "npm:^9.0.5" + smart-buffer: "npm:^4.2.0" + checksum: 10c0/15b95db4caa359c80bfa880ff3e58f3191b9ffa4313570e501a60ee7575f51e4be664a296f4ee5c2c40544da179db6140be53433ce41ec745f9d51f342557514 + languageName: node + linkType: hard + +"sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec + languageName: node + linkType: hard + +"ssri@npm:^12.0.0": + version: 12.0.0 + resolution: "ssri@npm:12.0.0" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/caddd5f544b2006e88fa6b0124d8d7b28208b83c72d7672d5ade44d794525d23b540f3396108c4eb9280dcb7c01f0bef50682f5b4b2c34291f7c5e211fd1417d + languageName: node + linkType: hard + +"statuses@npm:2.0.1": + version: 2.0.1 + resolution: "statuses@npm:2.0.1" + checksum: 10c0/34378b207a1620a24804ce8b5d230fea0c279f00b18a7209646d5d47e419d1cc23e7cbf33a25a1e51ac38973dc2ac2e1e9c647a8e481ef365f77668d72becfd0 + languageName: node + linkType: hard + +"statuses@npm:^2.0.1": + version: 2.0.2 + resolution: "statuses@npm:2.0.2" + checksum: 10c0/a9947d98ad60d01f6b26727570f3bcceb6c8fa789da64fe6889908fe2e294d57503b14bf2b5af7605c2d36647259e856635cd4c49eab41667658ec9d0080ec3f + languageName: node + linkType: hard + +"stoppable@npm:1.1.0": + version: 1.1.0 + resolution: "stoppable@npm:1.1.0" + checksum: 10c0/ba91b65e6442bf6f01ce837a727ece597a977ed92a05cb9aea6bf446c5e0dcbccc28f31b793afa8aedd8f34baaf3335398d35f903938d5493f7fbe386a1e090e + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: "npm:^6.0.1" + checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 + languageName: node + linkType: hard + +"supports-color@npm:^10.0.0": + version: 10.0.0 + resolution: "supports-color@npm:10.0.0" + checksum: 10c0/0e7884dfd02a07b3c6e0b235346f58c19f0201f1e44f7807583581761b354688c8577378785b5a4e3b03110809786c4c808e0e086cd91911f7b8bc59132703a8 + languageName: node + linkType: hard + +"swr@npm:^2.2.5": + version: 2.3.4 + resolution: "swr@npm:2.3.4" + dependencies: + dequal: "npm:^2.0.3" + use-sync-external-store: "npm:^1.4.0" + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10c0/c5cf536c2652fc6b64d64d3ce232f8bbe25dcaffc688f852fb81cf06e28b59280ebebde752429d9801c3af8e7a956ee7242376a6386a599cedc0000b862a712d + languageName: node + linkType: hard + +"tar@npm:^7.4.3": + version: 7.4.3 + resolution: "tar@npm:7.4.3" + dependencies: + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.0.1" + mkdirp: "npm:^3.0.1" + yallist: "npm:^5.0.0" + checksum: 10c0/d4679609bb2a9b48eeaf84632b6d844128d2412b95b6de07d53d8ee8baf4ca0857c9331dfa510390a0727b550fd543d4d1a10995ad86cdf078423fbb8d99831d + languageName: node + linkType: hard + +"throttleit@npm:2.1.0": + version: 2.1.0 + resolution: "throttleit@npm:2.1.0" + checksum: 10c0/1696ae849522cea6ba4f4f3beac1f6655d335e51b42d99215e196a718adced0069e48deaaf77f7e89f526ab31de5b5c91016027da182438e6f9280be2f3d5265 + languageName: node + linkType: hard + +"tinyglobby@npm:^0.2.12": + version: 0.2.14 + resolution: "tinyglobby@npm:0.2.14" + dependencies: + fdir: "npm:^6.4.4" + picomatch: "npm:^4.0.2" + checksum: 10c0/f789ed6c924287a9b7d3612056ed0cda67306cd2c80c249fd280cf1504742b12583a2089b61f4abbd24605f390809017240e250241f09938054c9b363e51c0a6 + languageName: node + linkType: hard + +"toidentifier@npm:1.0.1": + version: 1.0.1 + resolution: "toidentifier@npm:1.0.1" + checksum: 10c0/93937279934bd66cc3270016dd8d0afec14fb7c94a05c72dc57321f8bd1fa97e5bea6d1f7c89e728d077ca31ea125b78320a616a6c6cd0e6b9cb94cb864381c1 + languageName: node + linkType: hard + +"tslib@npm:^2.4.0": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 + languageName: node + linkType: hard + +"type-is@npm:^2.0.0, type-is@npm:^2.0.1": + version: 2.0.1 + resolution: "type-is@npm:2.0.1" + dependencies: + content-type: "npm:^1.0.5" + media-typer: "npm:^1.1.0" + mime-types: "npm:^3.0.0" + checksum: 10c0/7f7ec0a060b16880bdad36824ab37c26019454b67d73e8a465ed5a3587440fbe158bc765f0da68344498235c877e7dbbb1600beccc94628ed05599d667951b99 + languageName: node + linkType: hard + +"typescript@npm:^5.8.3": + version: 5.8.3 + resolution: "typescript@npm:5.8.3" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/5f8bb01196e542e64d44db3d16ee0e4063ce4f3e3966df6005f2588e86d91c03e1fb131c2581baf0fb65ee79669eea6e161cd448178986587e9f6844446dbb48 + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A^5.8.3#optional!builtin<compat/typescript>": + version: 5.8.3 + resolution: "typescript@patch:typescript@npm%3A5.8.3#optional!builtin<compat/typescript>::version=5.8.3&hash=5786d5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/39117e346ff8ebd87ae1510b3a77d5d92dae5a89bde588c747d25da5c146603a99c8ee588c7ef80faaf123d89ed46f6dbd918d534d641083177d5fac38b8a1cb + languageName: node + linkType: hard + +"ufo@npm:^1.6.1": + version: 1.6.1 + resolution: "ufo@npm:1.6.1" + checksum: 10c0/5a9f041e5945fba7c189d5410508cbcbefef80b253ed29aa2e1f8a2b86f4bd51af44ee18d4485e6d3468c92be9bf4a42e3a2b72dcaf27ce39ce947ec994f1e6b + languageName: node + linkType: hard + +"undici-types@npm:~7.8.0": + version: 7.8.0 + resolution: "undici-types@npm:7.8.0" + checksum: 10c0/9d9d246d1dc32f318d46116efe3cfca5a72d4f16828febc1918d94e58f6ffcf39c158aa28bf5b4fc52f410446bc7858f35151367bd7a49f21746cab6497b709b + languageName: node + linkType: hard + +"undici@npm:^7.10.0": + version: 7.12.0 + resolution: "undici@npm:7.12.0" + checksum: 10c0/27aada7bd8d2588f146a2ba554f2f6b7593f9c2d14bf3797bbc7b74825d9bee38eb3ab61e2d0ee01bb827a9ac8017eb2991cb4f06d9ed9971c8a142d8306fbab + languageName: node + linkType: hard + +"unenv@npm:2.0.0-rc.17": + version: 2.0.0-rc.17 + resolution: "unenv@npm:2.0.0-rc.17" + dependencies: + defu: "npm:^6.1.4" + exsolve: "npm:^1.0.4" + ohash: "npm:^2.0.11" + pathe: "npm:^2.0.3" + ufo: "npm:^1.6.1" + checksum: 10c0/029ae051cf2f79d3946976b32010a6aaaa87c8783a01dc088046247e34cb40962e19d96b465df5728e6ed262da89df342c1db1d05c2c28851825a74b93b90039 + languageName: node + linkType: hard + +"unique-filename@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-filename@npm:4.0.0" + dependencies: + unique-slug: "npm:^5.0.0" + checksum: 10c0/38ae681cceb1408ea0587b6b01e29b00eee3c84baee1e41fd5c16b9ed443b80fba90c40e0ba69627e30855570a34ba8b06702d4a35035d4b5e198bf5a64c9ddc + languageName: node + linkType: hard + +"unique-slug@npm:^5.0.0": + version: 5.0.0 + resolution: "unique-slug@npm:5.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10c0/d324c5a44887bd7e105ce800fcf7533d43f29c48757ac410afd42975de82cc38ea2035c0483f4de82d186691bf3208ef35c644f73aa2b1b20b8e651be5afd293 + languageName: node + linkType: hard + +"unpipe@npm:1.0.0": + version: 1.0.0 + resolution: "unpipe@npm:1.0.0" + checksum: 10c0/193400255bd48968e5c5383730344fbb4fa114cdedfab26e329e50dd2d81b134244bb8a72c6ac1b10ab0281a58b363d06405632c9d49ca9dfd5e90cbd7d0f32c + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: "npm:^2.1.0" + checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c + languageName: node + linkType: hard + +"use-sync-external-store@npm:^1.4.0": + version: 1.5.0 + resolution: "use-sync-external-store@npm:1.5.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10c0/1b8663515c0be34fa653feb724fdcce3984037c78dd4a18f68b2c8be55cc1a1084c578d5b75f158d41b5ddffc2bf5600766d1af3c19c8e329bb20af2ec6f52f4 + languageName: node + linkType: hard + +"vary@npm:^1, vary@npm:^1.1.2": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: 10c0/f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f + languageName: node + linkType: hard + +"which@npm:^5.0.0": + version: 5.0.0 + resolution: "which@npm:5.0.0" + dependencies: + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: 10c0/e556e4cd8b7dbf5df52408c9a9dd5ac6518c8c5267c8953f5b0564073c66ed5bf9503b14d876d0e9c7844d4db9725fb0dcf45d6e911e17e26ab363dc3965ae7b + languageName: node + linkType: hard + +"workerd@npm:1.20250712.0": + version: 1.20250712.0 + resolution: "workerd@npm:1.20250712.0" + dependencies: + "@cloudflare/workerd-darwin-64": "npm:1.20250712.0" + "@cloudflare/workerd-darwin-arm64": "npm:1.20250712.0" + "@cloudflare/workerd-linux-64": "npm:1.20250712.0" + "@cloudflare/workerd-linux-arm64": "npm:1.20250712.0" + "@cloudflare/workerd-windows-64": "npm:1.20250712.0" + dependenciesMeta: + "@cloudflare/workerd-darwin-64": + optional: true + "@cloudflare/workerd-darwin-arm64": + optional: true + "@cloudflare/workerd-linux-64": + optional: true + "@cloudflare/workerd-linux-arm64": + optional: true + "@cloudflare/workerd-windows-64": + optional: true + bin: + workerd: bin/workerd + checksum: 10c0/fea7f9aa509b6f2ab2ccaa50a157fdc3c9d7f66a8a479db12d214725a935e2e73d93f75a69540731fd2c0cfe3087215e208ace1734a45953dc777f81aa681456 + languageName: node + linkType: hard + +"wrangler@npm:^4.22.0": + version: 4.26.0 + resolution: "wrangler@npm:4.26.0" + dependencies: + "@cloudflare/kv-asset-handler": "npm:0.4.0" + "@cloudflare/unenv-preset": "npm:2.4.1" + blake3-wasm: "npm:2.1.5" + esbuild: "npm:0.25.4" + fsevents: "npm:~2.3.2" + miniflare: "npm:4.20250712.2" + path-to-regexp: "npm:6.3.0" + unenv: "npm:2.0.0-rc.17" + workerd: "npm:1.20250712.0" + peerDependencies: + "@cloudflare/workers-types": ^4.20250712.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@cloudflare/workers-types": + optional: true + bin: + wrangler: bin/wrangler.js + wrangler2: bin/wrangler.js + checksum: 10c0/82c08638e4a8acc25eb6c3fb76bdd2144f34e44f9e31290b2490bb024b9f3f42136cc361bf7838a0392a58e02afda1ef1dc7dff735631bd66e88bdd89210bc10 + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 + languageName: node + linkType: hard + +"ws@npm:8.18.0": + version: 8.18.0 + resolution: "ws@npm:8.18.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/25eb33aff17edcb90721ed6b0eb250976328533ad3cd1a28a274bd263682e7296a6591ff1436d6cbc50fa67463158b062f9d1122013b361cec99a05f84680e06 + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a + languageName: node + linkType: hard + +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416 + languageName: node + linkType: hard + +"youch-core@npm:^0.3.3": + version: 0.3.3 + resolution: "youch-core@npm:0.3.3" + dependencies: + "@poppinss/exception": "npm:^1.2.2" + error-stack-parser-es: "npm:^1.0.5" + checksum: 10c0/fe101a037a6cfaaa4e80e3d062ff33d4b087b65e3407e65220b453c9b2a66c87ea348a7da0239b61623d929d8fa0a9e139486eaa690ef5605bb49947a2fa82f6 + languageName: node + linkType: hard + +"youch@npm:4.1.0-beta.10": + version: 4.1.0-beta.10 + resolution: "youch@npm:4.1.0-beta.10" + dependencies: + "@poppinss/colors": "npm:^4.1.5" + "@poppinss/dumper": "npm:^0.6.4" + "@speed-highlight/core": "npm:^1.2.7" + cookie: "npm:^1.0.2" + youch-core: "npm:^0.3.3" + checksum: 10c0/588d65aa5837a46c8473cf57a9129115383f57aad5899915d37005950decfefc66bec85b8a1262dbefd623a122c279095074655889317311a554f9c2e290a5b3 + languageName: node + linkType: hard + +"zod-to-json-schema@npm:^3.24.1": + version: 3.24.6 + resolution: "zod-to-json-schema@npm:3.24.6" + peerDependencies: + zod: ^3.24.1 + checksum: 10c0/b907ab6d057100bd25a37e5545bf5f0efa5902cd84d3c3ec05c2e51541431a47bd9bf1e5e151a244273409b45f5986d55b26e5d207f98abc5200702f733eb368 + languageName: node + linkType: hard + +"zod@npm:3.22.3": + version: 3.22.3 + resolution: "zod@npm:3.22.3" + checksum: 10c0/cb4b24aed7dec98552eb9042e88cbd645455bf2830e5704174d2da96f554dabad4630e3b4f6623e1b6562b9eaa43535a37b7f2011f29b8d8e9eabe1ddf3b656b + languageName: node + linkType: hard + +"zod@npm:^3.23.8, zod@npm:^3.24.2, zod@npm:^3.25.67": + version: 3.25.76 + resolution: "zod@npm:3.25.76" + checksum: 10c0/5718ec35e3c40b600316c5b4c5e4976f7fee68151bc8f8d90ec18a469be9571f072e1bbaace10f1e85cf8892ea12d90821b200e980ab46916a6166a4260a983c + languageName: node + linkType: hard diff --git a/package.json b/package.json index ddb32044c..74028c8e2 100644 --- a/package.json +++ b/package.json @@ -129,7 +129,11 @@ }, "scripts": { "build": "shx rm -rf dist && tsc -b && oclif manifest && oclif readme --multi", + "build:mcp-shared": "tsc --project tsconfig.mcp.json", "build:tar": "oclif pack tarballs", + "build:worker": "cd mcp-worker && yarn build", + "deploy:worker": "cd mcp-worker && yarn deploy", + "dev:worker": "cd mcp-worker && yarn dev", "format": "prettier --write \"src/**/*.{ts,js,json}\" \"test/**/*.{ts,js,json}\" \"test-utils/**/*.{ts,js,json}\" \"*.{ts,js,json,md}\"", "format:check": "prettier --check \"src/**/*.{ts,js,json}\" \"test/**/*.{ts,js,json}\" \"test-utils/**/*.{ts,js,json}\" \"*.{ts,js,json,md}\"", "lint": "eslint . --config eslint.config.mjs", diff --git a/src/index.ts b/src/index.ts index 0237950aa..a4371daa7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1 +1,22 @@ -export { run } from '@oclif/core' +/** + * DevCycle MCP Cloudflare Worker Entry Point + * + * For now, this is a placeholder that demonstrates the package structure. + * In Phase 3, this will import the worker implementation from the main CLI package + * to maintain a clean separation between packages while sharing code. + */ + +export default { + fetch(request: Request, env: any, ctx: any): Response { + return new Response( + JSON.stringify({ + message: 'DevCycle MCP Server - Coming Soon', + timestamp: new Date().toISOString(), + path: new URL(request.url).pathname, + }), + { + headers: { 'Content-Type': 'application/json' }, + }, + ) + }, +} diff --git a/src/mcp/worker/apiClient.ts b/src/mcp/worker/apiClient.ts new file mode 100644 index 000000000..6af6d3c28 --- /dev/null +++ b/src/mcp/worker/apiClient.ts @@ -0,0 +1,171 @@ +import type { UserProps, Env, DevCycleJWTClaims } from './types' +import { IDevCycleApiClient } from '../api/interface' + +/** + * Worker-specific API client implementation that uses OAuth tokens from JWT claims + * instead of API keys from local configuration files. + */ +export class WorkerApiClient implements IDevCycleApiClient { + constructor( + private props: UserProps, + private env: Env, + ) {} + + /** + * Execute an API operation with OAuth token authentication and consistent logging + */ + async executeWithLogging<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T>, + requiresProject: boolean = true, + ): Promise<T> { + const authToken = this.getAuthToken() + const projectKey = requiresProject ? this.getProjectKey() : '' + + console.log(`Worker MCP ${operationName}:`, { + args, + userId: this.getUserId(), + orgId: this.getOrgId(), + projectKey: requiresProject ? projectKey : 'N/A', + }) + + try { + const result = await operation(authToken, projectKey) + console.log(`Worker MCP ${operationName} completed successfully`) + return result + } catch (error) { + console.error(`Worker MCP ${operationName} error:`, { + error: error instanceof Error ? error.message : String(error), + args, + userId: this.getUserId(), + orgId: this.getOrgId(), + }) + throw error + } + } + + /** + * Execute an API operation and include dashboard links in the response + */ + async executeWithDashboardLink<T>( + operationName: string, + args: any, + operation: (authToken: string, projectKey: string) => Promise<T>, + dashboardLink: (orgId: string, projectKey: string, result: T) => string, + ): Promise<{ result: T; dashboardLink: string }> { + const authToken = this.getAuthToken() + const projectKey = this.getProjectKey() + const orgId = this.getOrgId() + + console.log(`Worker MCP ${operationName} (with dashboard link):`, { + args, + userId: this.getUserId(), + orgId, + projectKey, + }) + + try { + const result = await operation(authToken, projectKey) + const link = dashboardLink(orgId, projectKey, result) + + console.log( + `Worker MCP ${operationName} completed successfully with dashboard link`, + ) + + return { + result, + dashboardLink: link, + } + } catch (error) { + console.error(`Worker MCP ${operationName} error:`, { + error: error instanceof Error ? error.message : String(error), + args, + userId: this.getUserId(), + orgId, + }) + throw error + } + } + + /** + * Get the OAuth access token for API authentication + */ + private getAuthToken(): string { + if (!this.props.tokenSet?.accessToken) { + throw new Error('No access token available in user props') + } + return this.props.tokenSet.accessToken + } + + /** + * Get the project key from JWT claims or environment variables + */ + private getProjectKey(): string { + const claims = this.props.claims as DevCycleJWTClaims + + // Try from JWT claims first - this allows user-specific project context + if (claims?.project_key) { + return claims.project_key + } + + // Fall back to environment variable for single-project deployments + if (this.env.DEFAULT_PROJECT_KEY) { + return this.env.DEFAULT_PROJECT_KEY + } + + throw new Error( + 'No project key found in JWT claims or environment variables. ' + + 'Either set DEFAULT_PROJECT_KEY in worker environment or include project_key in JWT claims.', + ) + } + + /** + * Get the organization ID from JWT claims + */ + private getOrgId(): string { + const claims = this.props.claims as DevCycleJWTClaims + + if (claims?.org_id) { + return claims.org_id + } + + throw new Error('No organization ID found in JWT claims') + } + + /** + * Get the user ID from JWT claims (for logging purposes) + */ + private getUserId(): string { + const claims = this.props.claims as DevCycleJWTClaims + return claims?.sub || claims?.email || 'unknown' + } + + /** + * Check if the user has access to the required project + */ + public hasProjectAccess(projectKey?: string): boolean { + try { + const userProjectKey = this.getProjectKey() + return !projectKey || userProjectKey === projectKey + } catch { + return false + } + } + + /** + * Get user context information for debugging + */ + public getUserContext() { + const claims = this.props.claims as DevCycleJWTClaims + return { + userId: this.getUserId(), + orgId: this.getOrgId(), + projectKey: this.getProjectKey(), + email: claims?.email, + name: claims?.name, + hasAccessToken: !!this.props.tokenSet?.accessToken, + hasRefreshToken: !!this.props.tokenSet?.refreshToken, + } + } +} diff --git a/src/mcp/worker/auth.ts b/src/mcp/worker/auth.ts new file mode 100644 index 000000000..0439068c9 --- /dev/null +++ b/src/mcp/worker/auth.ts @@ -0,0 +1,233 @@ +import type { + TokenExchangeCallbackOptions, + TokenExchangeCallbackResult, + AuthorizeParams, + CallbackParams, + ConsentParams, +} from '@cloudflare/workers-oauth-provider' +import * as oauth from 'oauth4webapi' +import { Hono } from 'hono' +import type { UserProps, Env, DevCycleJWTClaims } from './types' + +/** + * Get OIDC configuration for Auth0 + */ +async function getOidcConfig(options: { + client_id: string + client_secret: string + issuer: string +}) { + const as = await oauth + .discoveryRequest(new URL(options.issuer)) + .then((response) => + oauth.processDiscoveryResponse(new URL(options.issuer), response), + ) + + const client: oauth.Client = { + client_id: options.client_id, + token_endpoint_auth_method: 'client_secret_basic', + } + + const clientAuth = oauth.ClientSecretBasic(options.client_secret) + + return { as, client, clientAuth } +} + +/** + * Parse JWT token to extract claims + */ +function parseJWT(token: string): DevCycleJWTClaims { + try { + const parts = token.split('.') + if (parts.length !== 3) { + throw new Error('Invalid JWT format') + } + + const payload = parts[1] + const decoded = JSON.parse( + atob(payload.replace(/-/g, '+').replace(/_/g, '/')), + ) + return decoded as DevCycleJWTClaims + } catch (error) { + throw new Error(`Failed to parse JWT: ${error}`) + } +} + +/** + * Token Exchange Callback + * + * Handles the token exchange process for OAuth authentication with DevCycle/Auth0. + * This function processes both authorization code and refresh token flows. + */ +export async function tokenExchangeCallback( + options: TokenExchangeCallbackOptions<Env>, +): Promise<TokenExchangeCallbackResult<UserProps> | void> { + const { grantType, env } = options + + // During the Authorization Code Exchange, preserve token TTL from Auth0 + if (grantType === 'authorization_code') { + const idToken = options.props.tokenSet.idToken + if (!idToken) { + throw new Error('No ID token received from Auth0') + } + + // Extract claims from the ID token + const claims = parseJWT(idToken) + + // Validate that we have the necessary DevCycle context + if (!claims.org_id) { + throw new Error( + 'DevCycle organization ID not found in token claims', + ) + } + + return { + accessTokenTTL: options.props.tokenSet.accessTokenTTL, + newProps: { + claims, + tokenSet: { + accessToken: options.props.tokenSet.accessToken, + idToken: options.props.tokenSet.idToken, + refreshToken: options.props.tokenSet.refreshToken || '', + }, + } as UserProps, + } + } + + // Handle refresh token flow + if (grantType === 'refresh_token') { + const auth0RefreshToken = options.props.tokenSet.refreshToken + if (!auth0RefreshToken) { + throw new Error('No Auth0 refresh token found') + } + + const { as, client, clientAuth } = await getOidcConfig({ + client_id: env.AUTH0_CLIENT_ID, + client_secret: env.AUTH0_CLIENT_SECRET, + issuer: `https://${env.AUTH0_DOMAIN}/`, + }) + + // Perform the refresh token exchange with Auth0 + const response = await oauth.refreshTokenGrantRequest( + as, + client, + clientAuth, + auth0RefreshToken, + ) + const refreshTokenResponse = await oauth.processRefreshTokenResponse( + as, + client, + response, + ) + + // Extract claims from the new ID token + let claims: DevCycleJWTClaims + if (refreshTokenResponse.id_token) { + claims = parseJWT(refreshTokenResponse.id_token) + } else { + // Fall back to existing claims if no new ID token + claims = options.props.claims as DevCycleJWTClaims + } + + // Return updated token set and claims + return { + accessTokenTTL: refreshTokenResponse.expires_in, + newProps: { + claims, + tokenSet: { + accessToken: refreshTokenResponse.access_token, + idToken: + refreshTokenResponse.id_token || + options.props.tokenSet.idToken, + refreshToken: + refreshTokenResponse.refresh_token || auth0RefreshToken, + }, + } as UserProps, + } + } + + // For other grant types, no special handling needed + return undefined +} + +/** + * Authorization endpoint handler + * Initiates the OAuth flow with DevCycle/Auth0 + */ +export async function authorize(c: any): Promise<Response> { + const params = c.req.query() as AuthorizeParams + + // Add DevCycle-specific scopes if not already present + const defaultScopes = ['openid', 'profile', 'email', 'offline_access'] + const requestedScopes = params.scope?.split(' ') || [] + const allScopes = [...new Set([...defaultScopes, ...requestedScopes])] + + // Forward to the OAuth provider with enhanced scopes + return c.env.OAUTH_PROVIDER.authorize({ + ...params, + scope: allScopes.join(' '), + }) +} + +/** + * OAuth callback handler + * Processes the callback from Auth0 after user authentication + */ +export async function callback(c: any): Promise<Response> { + const params = c.req.query() as CallbackParams + return c.env.OAUTH_PROVIDER.callback(params) +} + +/** + * Consent confirmation handler + * Handles user consent for the OAuth flow + */ +export async function confirmConsent(c: any): Promise<Response> { + const formData = await c.req.formData() + const params = Object.fromEntries(formData.entries()) as ConsentParams + return c.env.OAUTH_PROVIDER.confirmConsent(params) +} + +/** + * Health check endpoint + */ +export function healthCheck() { + return new Response( + JSON.stringify({ + status: 'ok', + service: 'DevCycle MCP Server', + timestamp: new Date().toISOString(), + }), + { + headers: { 'Content-Type': 'application/json' }, + }, + ) +} + +/** + * Create the Hono app with OAuth routes + */ +export function createAuthApp(): Hono<{ Bindings: Env }> { + const app = new Hono<{ Bindings: Env }>() + + // OAuth flow endpoints + app.get('/authorize', authorize) + app.post('/authorize/consent', confirmConsent) + app.get('/callback', callback) + + // Health check + app.get('/health', () => healthCheck()) + + // Info endpoint for debugging + app.get('/info', (c) => { + return c.json({ + service: 'DevCycle MCP Server', + version: '1.0.0', + auth0Domain: c.env.AUTH0_DOMAIN, + apiBaseUrl: c.env.API_BASE_URL || 'https://api.devcycle.com', + hasDefaultProject: !!c.env.DEFAULT_PROJECT_KEY, + }) + }) + + return app +} diff --git a/src/mcp/worker/index.ts b/src/mcp/worker/index.ts new file mode 100644 index 000000000..162997237 --- /dev/null +++ b/src/mcp/worker/index.ts @@ -0,0 +1,244 @@ +import OAuthProvider, { + type OAuthHelpers, +} from '@cloudflare/workers-oauth-provider' +import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js' +import { McpAgent } from 'agents/mcp' +import { Hono } from 'hono' +import { createAuthApp, tokenExchangeCallback } from './auth' +import { WorkerApiClient } from './apiClient' +import { MCPToolRegistry, registerAllTools } from '../tools' +import type { UserProps, Env } from './types' + +/** + * DevCycle MCP Server for Cloudflare Workers + * + * This class extends McpAgent to provide DevCycle feature flag management + * through the Model Context Protocol over Server-Sent Events (SSE). + * It integrates OAuth authentication, tool registry, and Worker-specific API client. + */ +export class DevCycleMCP extends McpAgent< + Env, + Record<string, never>, + UserProps +> { + // The MCP server instance that handles protocol communication + // @ts-ignore - Type compatibility issue with MCP SDK versions + server = new McpServer({ + name: 'DevCycle CLI MCP Server', + version: '1.0.0', + }) + + // Tool registry containing all DevCycle MCP tools + private registry = new MCPToolRegistry() + + // Worker-specific API client that uses OAuth tokens + private apiClient: WorkerApiClient + + /** + * Initialize the MCP server with tools and handlers + */ + async init() { + console.log('Initializing DevCycle MCP Worker', { + userId: this.getUserId(), + orgId: this.getOrgId(), + hasProject: this.hasProjectKey(), + }) + + // Initialize the Worker-specific API client with OAuth tokens + this.apiClient = new WorkerApiClient(this.props, this.env) + + // Register all tools from the shared registry + registerAllTools(this.registry) + + console.log( + `Registered ${this.registry.size()} MCP tools:`, + this.registry.getToolNames(), + ) + + // Add a debug tool to inspect user context + this.server.tool( + 'whoami', + 'Get the current DevCycle user details and context', + {}, + async () => { + try { + const userContext = this.apiClient.getUserContext() + return { + content: [ + { + type: 'text', + text: JSON.stringify( + { + message: + 'DevCycle MCP Server - User Context', + context: userContext, + serverInfo: { + name: 'DevCycle CLI MCP Server', + version: '1.0.0', + environment: + this.env.NODE_ENV || + 'production', + apiBaseUrl: + this.env.API_BASE_URL || + 'https://api.devcycle.com', + }, + }, + null, + 2, + ), + }, + ], + } + } catch (error) { + return { + content: [ + { + type: 'text', + text: `Error retrieving user context: ${error instanceof Error ? error.message : String(error)}`, + }, + ], + } + } + }, + ) + + // Dynamically create MCP protocol handlers for each registered tool + for (const tool of this.registry.getAll()) { + this.server.tool( + tool.name, + tool.description, + tool.inputSchema, + async (args) => { + try { + console.log(`Executing tool: ${tool.name}`, { + args, + userId: this.getUserId(), + }) + + // Execute tool with Worker-specific API client that uses OAuth tokens + const result = await this.registry.execute( + tool.name, + args, + this.apiClient, + ) + + // Format response according to MCP protocol expectations + // Check if result has dashboardLink (from executeWithDashboardLink) + let responseText: string + if ( + result && + typeof result === 'object' && + 'result' in result && + 'dashboardLink' in result + ) { + responseText = JSON.stringify( + { + data: result.result, + dashboardLink: result.dashboardLink, + }, + null, + 2, + ) + } else { + responseText = JSON.stringify(result, null, 2) + } + + return { + content: [ + { + type: 'text', + text: responseText, + }, + ], + } + } catch (error) { + console.error(`Tool execution error: ${tool.name}`, { + error: + error instanceof Error + ? error.message + : String(error), + args, + userId: this.getUserId(), + }) + + // Standardized error handling across all tools + const errorMessage = + error instanceof Error + ? error.message + : String(error) + return { + content: [ + { + type: 'text', + text: `Error executing ${tool.name}: ${errorMessage}`, + }, + ], + } + } + }, + ) + } + + console.log('DevCycle MCP Worker initialization completed') + } + + /** + * Get user ID from claims for logging + */ + private getUserId(): string { + return this.props.claims?.sub || this.props.claims?.email || 'unknown' + } + + /** + * Get organization ID from claims + */ + private getOrgId(): string { + return (this.props.claims as any)?.org_id || 'unknown' + } + + /** + * Check if user has project key available + */ + private hasProjectKey(): boolean { + try { + this.apiClient.getUserContext() + return true + } catch { + return false + } + } +} + +/** + * Create and configure the main Cloudflare Worker export + * + * This sets up the OAuth Provider with the MCP server mounted on the /sse endpoint + * and includes all the necessary authentication and routing handlers. + */ +function createWorker() { + // Initialize the Hono app with OAuth routes + const authApp = createAuthApp() + + // Create the OAuth Provider with MCP server integration + return new OAuthProvider({ + // Mount the MCP server on the /sse endpoint for Server-Sent Events communication + // @ts-expect-error - Type compatibility with OAuth provider and MCP agent + apiHandler: DevCycleMCP.mount('/sse'), + apiRoute: '/sse', + + // OAuth endpoint configuration + authorizeEndpoint: '/authorize', + clientRegistrationEndpoint: '/signup', + tokenEndpoint: '/token', + + // Auth app handles all OAuth-related routes + // @ts-expect-error - Type compatibility with OAuth provider + defaultHandler: authApp, + + // Token exchange callback for handling OAuth token flows + tokenExchangeCallback, + }) +} + +// Export the configured Worker +export default createWorker() diff --git a/src/mcp/worker/types.ts b/src/mcp/worker/types.ts new file mode 100644 index 000000000..812733c1c --- /dev/null +++ b/src/mcp/worker/types.ts @@ -0,0 +1,65 @@ +import type { JWTPayload } from 'jose' + +/** + * User properties for Cloudflare Worker MCP implementation + * Contains OAuth token information and JWT claims from DevCycle/Auth0 + */ +export type UserProps = { + /** JWT claims containing user identity and DevCycle context */ + claims: JWTPayload + /** OAuth token set for API authentication */ + tokenSet: { + accessToken: string + idToken: string + refreshToken: string + } +} + +/** + * Cloudflare Worker environment bindings + */ +export interface Env { + // OAuth Provider KV namespace for storing session data + OAUTH_KV: KVNamespace + + // DevCycle API configuration + API_BASE_URL?: string + DEFAULT_PROJECT_KEY?: string + + // Auth0 configuration + AUTH0_DOMAIN: string + AUTH0_CLIENT_ID: string + AUTH0_CLIENT_SECRET: string + AUTH0_AUDIENCE?: string + AUTH0_SCOPE?: string + + // Worker configuration + NODE_ENV?: string + + // AI binding (if needed for future features) + AI?: any +} + +/** + * Extended JWT claims that may contain DevCycle-specific information + */ +export interface DevCycleJWTClaims extends JWTPayload { + /** DevCycle organization ID */ + org_id?: string + /** DevCycle project key (if user has a default project) */ + project_key?: string + /** User's email */ + email?: string + /** User's name */ + name?: string + /** Auth0 subject identifier */ + sub?: string + /** Audience */ + aud?: string | string[] + /** Issuer */ + iss?: string + /** Expiration time */ + exp?: number + /** Issued at time */ + iat?: number +} diff --git a/tsconfig.json b/tsconfig.json index f9bc06b72..ff852e68c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -24,5 +24,5 @@ "tsBuildInfoFile": "./dist/.tsbuildinfo" }, "include": ["src/**/*"], - "exclude": ["src/**/*.test.ts", "dist", "node_modules", "bin"] + "exclude": ["src/**/*.test.ts", "src/mcp/worker/**/*", "dist", "node_modules", "bin"] } diff --git a/tsconfig.mcp.json b/tsconfig.mcp.json new file mode 100644 index 000000000..c30f7f492 --- /dev/null +++ b/tsconfig.mcp.json @@ -0,0 +1,20 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./dist/mcp-shared", + "declaration": true, + "declarationMap": true, + "sourceMap": true + }, + "include": [ + "src/mcp/tools/**/*", + "src/mcp/api/interface.ts", + "src/mcp/worker/**/*", + "src/api/**/*" + ], + "exclude": [ + "src/mcp/worker/**/*", + "**/*.test.ts", + "test/**/*" + ] +} \ No newline at end of file From 38b5ddc29156bdfbdde64f8c003124c2448e2ebe Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 28 Jul 2025 11:37:42 -0400 Subject: [PATCH 61/74] feat: move MCP Worker logic to /mcp-worker --- {src => docs}/mcp/cloudflare-worker-plan.md | 9 +- mcp-worker/.yarn/install-state.gz | Bin 235015 -> 235343 bytes mcp-worker/README.md | 2 - mcp-worker/package.json | 5 +- .../worker => mcp-worker/src}/apiClient.ts | 11 +- {src/mcp/worker => mcp-worker/src}/auth.ts | 41 ++- mcp-worker/src/index.ts | 248 +++++++++++++++++- {src/mcp/worker => mcp-worker/src}/types.ts | 1 - mcp-worker/tsconfig.json | 3 +- mcp-worker/wrangler.toml | 8 +- mcp-worker/yarn.lock | 29 +- src/mcp/worker/index.ts | 244 ----------------- tsconfig.json | 2 +- tsconfig.mcp.json | 2 +- 14 files changed, 286 insertions(+), 319 deletions(-) rename {src => docs}/mcp/cloudflare-worker-plan.md (98%) rename {src/mcp/worker => mcp-worker/src}/apiClient.ts (92%) rename {src/mcp/worker => mcp-worker/src}/auth.ts (85%) rename {src/mcp/worker => mcp-worker/src}/types.ts (97%) delete mode 100644 src/mcp/worker/index.ts diff --git a/src/mcp/cloudflare-worker-plan.md b/docs/mcp/cloudflare-worker-plan.md similarity index 98% rename from src/mcp/cloudflare-worker-plan.md rename to docs/mcp/cloudflare-worker-plan.md index 4a6b3c922..6476fc87e 100644 --- a/src/mcp/cloudflare-worker-plan.md +++ b/docs/mcp/cloudflare-worker-plan.md @@ -285,12 +285,9 @@ export class WorkerApiClient implements IDevCycleApiClient { // Try from JWT claims first - this allows user-specific project context if (this.props.claims?.project_key) { return this.props.claims.project_key as string; - } - // Fall back to environment variable for single-project deployments - if (this.env.DEFAULT_PROJECT_KEY) { - return this.env.DEFAULT_PROJECT_KEY; - } - throw new Error("No project key found in claims or environment"); + } + + throw new Error("No project key found in claims"); } private getOrgId(): string { diff --git a/mcp-worker/.yarn/install-state.gz b/mcp-worker/.yarn/install-state.gz index 1ec1600ca702c0555c70eb389df743c7a03b85d8..095e39f5ace364435f9aaa7d5242d7fd891039b0 100644 GIT binary patch delta 202803 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�NhpXg)4}z!b`(nBhqJu%66=VBQag20& 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⪙+|Y5x9Bil`Jg>D_D~f?{ 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%0A<B>^!zC<8Nu4~|I? zuwX5eh7)(!C5C5?r<A%pB*h$%Uv2=enS0HHrRv!I$Ma5AUbDv${t(^&-G83m{I<uB z;+EWcSMT3l`p9?xb$atVF4oYGeDJ?dKYySA?tT8puHSj}^71MHOlV8J^i*9l`~*~c z#u}xFUR0qHG>m!&2E%Q3ST83ni!>K2epjNx9cCtA!%54sl#RPgHVPcuYUna8TQ?EX z9vfSedH=L{XiM>v`O9k`3L8H}m;2lA-U6h|ujnieeHEWx8y?!4f6-pM3^Oe+34dn# zbxZ3LOY1Y*YXVxPuZn1zs#f41in+K=qi}XAB`?^YtuM@;YEG_(jW;UVv5*uh+(EvL z3^A!nh-t4G@#v*&@gy9xOi#6ChSYhm&b&&VUVQf(C!3FGED9SVX<3ZCxiq9jUqOh< zYgRiTg>_J(R2x*uBfIs02|SNpMt?I=!X61I16b?}0eZk<H_st!1#m8X&Skmx<i%2S zT><zDm)&ok9K+4>TPMeGv;6kSbM8Lhbgt=MyRV#l&{5dd!QJnkd_Zn|@|oW|`RHu_ z&R0Kv^Y!}==Di=dd*8qRhkV{Ud;IBbdb*~G2e^JEh68TU72r!|H?^pJ^nWH4YYRhx zs5F6Fo>)XtDtk`N;34Uyw-kv6O!SffVZ|)8XE!XS+Vku>feZBBkY~5t*>8U9*}c2( zyyNTp9^bvc&c5rrzv1TVTL<v`jURlZk9<RH0PewoM$D)&!#kvSWg+xS>-P1)Rv{*- zNCef<+C+K}Dma4R9?^OTB!8{FY*}?RuelJ`$8)9Oa|O}DC<q%+MMH}NF?VaEmI#}n zd(_OF9EESGHfWV80Dg?6Y`&0kwhfEjns51~8DXCrq9IaCj&OJv&#IGCU4sRf5NRMi zy23Clr6=Xy-LdI}qD5;;m8@=y2-3R)EO{i0vPCq~CPBGK&UKP3rhhr9M#+6<5SA2! zuf$fEvnTW<V!}rVov@EFqZ&g3;XpZN4)4yG#-Qul(6F2{Mx)ebQ}Cdwn2sSmQbKN~ z%-X!B%q3OGu3BE2aQ*<#y4BSp*ExHRQegCn1|TrDEJ4)>8KqFe89W7IVOP(Na|ezU z_*S64B<eA`t4Ak6Gk=)7`qJ7*vMhjO6ahmLf1b3_^1vN;tJ}8cHUlO1NC-;@A%e1j zv}!)#>wpZ+Wr4m!UFzV-*1BgxC$>=}WK=;8f|bg$+rU-GDp{x2Ixqu5)Dw#%oH(@} z>XXn-CI!#Td9wkTrBzxhg{&>k2sm1?U2&Cw#I&Lynro2JpdgIXh*A+AjTe3&=ogaf Vq>wi6yz-;p@;`)Zb&MrZ3jlQX&N~1A delta 202703 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 ZexZaqr3`=brJw$R{{iUwc#WV-3jkHn`JVs) diff --git a/mcp-worker/README.md b/mcp-worker/README.md index e30feef59..859fda672 100644 --- a/mcp-worker/README.md +++ b/mcp-worker/README.md @@ -49,7 +49,6 @@ wrangler secret put AUTH0_CLIENT_SECRET Edit `wrangler.toml` to set: - `AUTH0_DOMAIN`: Your Auth0 domain -- `DEFAULT_PROJECT_KEY`: (Optional) Default DevCycle project - Other environment variables as needed ## Development @@ -147,7 +146,6 @@ Set in `wrangler.toml` under `[vars]`: - `AUTH0_DOMAIN`: Auth0 domain - `AUTH0_AUDIENCE`: Auth0 API audience - `AUTH0_SCOPE`: OAuth scopes -- `DEFAULT_PROJECT_KEY`: Default project for single-project deployments ### Secrets diff --git a/mcp-worker/package.json b/mcp-worker/package.json index 9e41999e9..d95b8c1bb 100644 --- a/mcp-worker/package.json +++ b/mcp-worker/package.json @@ -20,8 +20,9 @@ "zod": "^3.24.2" }, "devDependencies": { - "@types/node": "^24.0.10", - "typescript": "^5.8.3", + "@cloudflare/workers-types": "^4.20250726.0", + "@types/node": "^18.19.68", + "typescript": "^5.7.2", "wrangler": "^4.22.0" } } diff --git a/src/mcp/worker/apiClient.ts b/mcp-worker/src/apiClient.ts similarity index 92% rename from src/mcp/worker/apiClient.ts rename to mcp-worker/src/apiClient.ts index 6af6d3c28..005dab59c 100644 --- a/src/mcp/worker/apiClient.ts +++ b/mcp-worker/src/apiClient.ts @@ -1,5 +1,5 @@ import type { UserProps, Env, DevCycleJWTClaims } from './types' -import { IDevCycleApiClient } from '../api/interface' +import { IDevCycleApiClient } from '../../dist/mcp/api/interface' /** * Worker-specific API client implementation that uses OAuth tokens from JWT claims @@ -109,14 +109,9 @@ export class WorkerApiClient implements IDevCycleApiClient { return claims.project_key } - // Fall back to environment variable for single-project deployments - if (this.env.DEFAULT_PROJECT_KEY) { - return this.env.DEFAULT_PROJECT_KEY - } - throw new Error( - 'No project key found in JWT claims or environment variables. ' + - 'Either set DEFAULT_PROJECT_KEY in worker environment or include project_key in JWT claims.', + 'No project key found in JWT claims. ' + + 'Include project_key in JWT claims.', ) } diff --git a/src/mcp/worker/auth.ts b/mcp-worker/src/auth.ts similarity index 85% rename from src/mcp/worker/auth.ts rename to mcp-worker/src/auth.ts index 0439068c9..e910e9939 100644 --- a/src/mcp/worker/auth.ts +++ b/mcp-worker/src/auth.ts @@ -1,14 +1,15 @@ -import type { - TokenExchangeCallbackOptions, - TokenExchangeCallbackResult, - AuthorizeParams, - CallbackParams, - ConsentParams, -} from '@cloudflare/workers-oauth-provider' import * as oauth from 'oauth4webapi' import { Hono } from 'hono' import type { UserProps, Env, DevCycleJWTClaims } from './types' +// Define OAuth parameter types locally since they're not exported correctly +type AuthorizeParams = Record<string, any> +type CallbackParams = Record<string, any> +type ConsentParams = Record<string, any> + +// OAuth callback function type +type TokenExchangeCallbackFunction = (options: any) => Promise<any> + /** * Get OIDC configuration for Auth0 */ @@ -59,14 +60,14 @@ function parseJWT(token: string): DevCycleJWTClaims { * Handles the token exchange process for OAuth authentication with DevCycle/Auth0. * This function processes both authorization code and refresh token flows. */ -export async function tokenExchangeCallback( - options: TokenExchangeCallbackOptions<Env>, -): Promise<TokenExchangeCallbackResult<UserProps> | void> { - const { grantType, env } = options +export const tokenExchangeCallback: TokenExchangeCallbackFunction = async ( + options: any, +) => { + const { grantType, env, props } = options // During the Authorization Code Exchange, preserve token TTL from Auth0 if (grantType === 'authorization_code') { - const idToken = options.props.tokenSet.idToken + const idToken = props?.tokenSet?.idToken if (!idToken) { throw new Error('No ID token received from Auth0') } @@ -82,13 +83,13 @@ export async function tokenExchangeCallback( } return { - accessTokenTTL: options.props.tokenSet.accessTokenTTL, + accessTokenTTL: props.tokenSet.accessTokenTTL, newProps: { claims, tokenSet: { - accessToken: options.props.tokenSet.accessToken, - idToken: options.props.tokenSet.idToken, - refreshToken: options.props.tokenSet.refreshToken || '', + accessToken: props.tokenSet.accessToken, + idToken: props.tokenSet.idToken, + refreshToken: props.tokenSet.refreshToken || '', }, } as UserProps, } @@ -96,7 +97,7 @@ export async function tokenExchangeCallback( // Handle refresh token flow if (grantType === 'refresh_token') { - const auth0RefreshToken = options.props.tokenSet.refreshToken + const auth0RefreshToken = props?.tokenSet?.refreshToken if (!auth0RefreshToken) { throw new Error('No Auth0 refresh token found') } @@ -126,7 +127,7 @@ export async function tokenExchangeCallback( claims = parseJWT(refreshTokenResponse.id_token) } else { // Fall back to existing claims if no new ID token - claims = options.props.claims as DevCycleJWTClaims + claims = props.claims as DevCycleJWTClaims } // Return updated token set and claims @@ -137,8 +138,7 @@ export async function tokenExchangeCallback( tokenSet: { accessToken: refreshTokenResponse.access_token, idToken: - refreshTokenResponse.id_token || - options.props.tokenSet.idToken, + refreshTokenResponse.id_token || props.tokenSet.idToken, refreshToken: refreshTokenResponse.refresh_token || auth0RefreshToken, }, @@ -225,7 +225,6 @@ export function createAuthApp(): Hono<{ Bindings: Env }> { version: '1.0.0', auth0Domain: c.env.AUTH0_DOMAIN, apiBaseUrl: c.env.API_BASE_URL || 'https://api.devcycle.com', - hasDefaultProject: !!c.env.DEFAULT_PROJECT_KEY, }) }) diff --git a/mcp-worker/src/index.ts b/mcp-worker/src/index.ts index 3b57d899d..1898a3f8c 100644 --- a/mcp-worker/src/index.ts +++ b/mcp-worker/src/index.ts @@ -1,19 +1,241 @@ +import OAuthProvider from '@cloudflare/workers-oauth-provider' +import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js' +import { McpAgent } from 'agents/mcp' +import { createAuthApp, tokenExchangeCallback } from './auth' +import { WorkerApiClient } from './apiClient' +import { MCPToolRegistry, registerAllTools } from '../../dist/mcp/tools' +import type { UserProps, Env } from './types' + /** - * DevCycle MCP Cloudflare Worker Entry Point + * DevCycle MCP Server for Cloudflare Workers * - * This file re-exports the worker implementation from the main CLI package - * to maintain a clean separation between the worker package and the main package - * while allowing shared code and tooling. + * This class extends McpAgent to provide DevCycle feature flag management + * through the Model Context Protocol over Server-Sent Events (SSE). + * It integrates OAuth authentication, tool registry, and Worker-specific API client. */ +export class DevCycleMCP extends McpAgent< + Env, + Record<string, never>, + UserProps +> { + // The MCP server instance that handles protocol communication + server = new McpServer({ + name: 'DevCycle CLI MCP Server', + version: '1.0.0', + }) -// Re-export the configured Cloudflare Worker from the main package -export { default } from '@devcycle/cli/dist/mcp/worker/index.js' + // Tool registry containing all DevCycle MCP tools + private registry = new MCPToolRegistry() -// Export types that might be useful for external consumers -export type { - UserProps, - Env, - DevCycleJWTClaims, -} from '@devcycle/cli/dist/mcp/worker/types.js' + // Worker-specific API client that uses OAuth tokens + private apiClient: WorkerApiClient + + /** + * Initialize the MCP server with tools and handlers + */ + async init() { + console.log('Initializing DevCycle MCP Worker', { + userId: this.getUserId(), + orgId: this.getOrgId(), + hasProject: this.hasProjectKey(), + }) + + // Initialize the Worker-specific API client with OAuth tokens + this.apiClient = new WorkerApiClient(this.props, this.env) + + // Register all tools from the shared registry + registerAllTools(this.registry) + + console.log( + `Registered ${this.registry.size()} MCP tools:`, + this.registry.getToolNames(), + ) + + // Add a debug tool to inspect user context + this.server.tool( + 'whoami', + 'Get the current DevCycle user details and context', + {}, + async () => { + try { + const userContext = this.apiClient.getUserContext() + return { + content: [ + { + type: 'text', + text: JSON.stringify( + { + message: + 'DevCycle MCP Server - User Context', + context: userContext, + serverInfo: { + name: 'DevCycle CLI MCP Server', + version: '1.0.0', + environment: + this.env.NODE_ENV || + 'production', + apiBaseUrl: + this.env.API_BASE_URL || + 'https://api.devcycle.com', + }, + }, + null, + 2, + ), + }, + ], + } + } catch (error) { + return { + content: [ + { + type: 'text', + text: `Error retrieving user context: ${error instanceof Error ? error.message : String(error)}`, + }, + ], + } + } + }, + ) + + // Dynamically create MCP protocol handlers for each registered tool + for (const tool of this.registry.getAll()) { + // @ts-expect-error - MCP SDK type compatibility issues with tool registration + this.server.tool( + tool.name, + tool.description, + tool.inputSchema, + async (args: any) => { + try { + console.log(`Executing tool: ${tool.name}`, { + args, + userId: this.getUserId(), + }) + + // Execute tool with Worker-specific API client that uses OAuth tokens + const result = await this.registry.execute( + tool.name, + args, + this.apiClient, + ) + + // Format response according to MCP protocol expectations + // Check if result has dashboardLink (from executeWithDashboardLink) + let responseText: string + if ( + result && + typeof result === 'object' && + 'result' in result && + 'dashboardLink' in result + ) { + responseText = JSON.stringify( + { + data: result.result, + dashboardLink: result.dashboardLink, + }, + null, + 2, + ) + } else { + responseText = JSON.stringify(result, null, 2) + } + + return { + content: [ + { + type: 'text', + text: responseText, + }, + ], + } + } catch (error) { + console.error(`Tool execution error: ${tool.name}`, { + error: + error instanceof Error + ? error.message + : String(error), + args, + userId: this.getUserId(), + }) + + // Standardized error handling across all tools + const errorMessage = + error instanceof Error + ? error.message + : String(error) + return { + content: [ + { + type: 'text', + text: `Error executing ${tool.name}: ${errorMessage}`, + }, + ], + } + } + }, + ) + } + + console.log('DevCycle MCP Worker initialization completed') + } + + /** + * Get user ID from claims for logging + */ + private getUserId(): string { + const claims = this.props.claims as any + return claims?.sub || claims?.email || 'unknown' + } + + /** + * Get organization ID from claims + */ + private getOrgId(): string { + return (this.props.claims as any)?.org_id || 'unknown' + } + + /** + * Check if user has project key available + */ + private hasProjectKey(): boolean { + try { + this.apiClient.getUserContext() + return true + } catch { + return false + } + } +} + +/** + * Create and configure the main Cloudflare Worker export + * + * This sets up the OAuth Provider with the MCP server mounted on the /sse endpoint + * and includes all the necessary authentication and routing handlers. + */ +function createWorker() { + // Initialize the Hono app with OAuth routes + const authApp = createAuthApp() + + // Create the OAuth Provider with MCP server integration + return new OAuthProvider({ + // Mount the MCP server on the /sse endpoint for Server-Sent Events communication + apiHandler: DevCycleMCP.mount('/sse') as any, + apiRoute: '/sse', + + // OAuth endpoint configuration + authorizeEndpoint: '/authorize', + clientRegistrationEndpoint: '/signup', + tokenEndpoint: '/token', + + // Auth app handles all OAuth-related routes + // @ts-expect-error - Type compatibility with OAuth provider + defaultHandler: authApp, + + // Token exchange callback for handling OAuth token flows + tokenExchangeCallback, + }) +} -export { DevCycleMCP } from '@devcycle/cli/dist/mcp/worker/index.js' +// Export the configured Worker +export default createWorker() diff --git a/src/mcp/worker/types.ts b/mcp-worker/src/types.ts similarity index 97% rename from src/mcp/worker/types.ts rename to mcp-worker/src/types.ts index 812733c1c..bbd9850fe 100644 --- a/src/mcp/worker/types.ts +++ b/mcp-worker/src/types.ts @@ -24,7 +24,6 @@ export interface Env { // DevCycle API configuration API_BASE_URL?: string - DEFAULT_PROJECT_KEY?: string // Auth0 configuration AUTH0_DOMAIN: string diff --git a/mcp-worker/tsconfig.json b/mcp-worker/tsconfig.json index f5ee835dd..5d885f968 100644 --- a/mcp-worker/tsconfig.json +++ b/mcp-worker/tsconfig.json @@ -20,8 +20,7 @@ "sourceMap": true }, "include": [ - "src/**/*", - "../src/mcp/worker/**/*" + "src/**/*" ], "exclude": [ "node_modules", diff --git a/mcp-worker/wrangler.toml b/mcp-worker/wrangler.toml index 97f58d359..be310d6cb 100644 --- a/mcp-worker/wrangler.toml +++ b/mcp-worker/wrangler.toml @@ -25,15 +25,15 @@ API_BASE_URL = "https://api.devcycle.com" AUTH0_DOMAIN = "auth.devcycle.com" AUTH0_AUDIENCE = "https://api.devcycle.com/" AUTH0_SCOPE = "openid profile email offline_access" -# DEFAULT_PROJECT_KEY = "" # Optional: Set a default project for single-project deployments + # Secrets (set via: wrangler secret put <SECRET_NAME>) # AUTH0_CLIENT_ID # AUTH0_CLIENT_SECRET -# AI binding for future features -[ai] -binding = "AI" +# AI binding for future features (not currently used) +# [ai] +# binding = "AI" # Observability [observability] diff --git a/mcp-worker/yarn.lock b/mcp-worker/yarn.lock index b580e9df2..4a727c6f5 100644 --- a/mcp-worker/yarn.lock +++ b/mcp-worker/yarn.lock @@ -124,7 +124,7 @@ __metadata: languageName: node linkType: hard -"@cloudflare/workers-types@npm:^4.20250311.0": +"@cloudflare/workers-types@npm:^4.20250311.0, @cloudflare/workers-types@npm:^4.20250726.0": version: 4.20250726.0 resolution: "@cloudflare/workers-types@npm:4.20250726.0" checksum: 10c0/91c708039cf51bbf6d46b1052508c3c308c425b624281fbd26152e967bcff6d92b9946621fea1fcf0538188d96c0280754b5bb1ca1f003675adb8a4f4b7e44de @@ -145,13 +145,14 @@ __metadata: resolution: "@devcycle/mcp-worker@workspace:." dependencies: "@cloudflare/workers-oauth-provider": "npm:^0.0.5" + "@cloudflare/workers-types": "npm:^4.20250726.0" "@modelcontextprotocol/sdk": "npm:^1.15.0" - "@types/node": "npm:^24.0.10" + "@types/node": "npm:^18.19.68" agents: "npm:^0.0.100" hono: "npm:^4.8.4" jose: "npm:^6.0.11" oauth4webapi: "npm:^3.5.5" - typescript: "npm:^5.8.3" + typescript: "npm:^5.7.2" wrangler: "npm:^4.22.0" zod: "npm:^3.24.2" languageName: unknown @@ -667,12 +668,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^24.0.10": - version: 24.1.0 - resolution: "@types/node@npm:24.1.0" +"@types/node@npm:^18.19.68": + version: 18.19.120 + resolution: "@types/node@npm:18.19.120" dependencies: - undici-types: "npm:~7.8.0" - checksum: 10c0/6c4686bc144f6ce7bffd4cadc3e1196e2217c1da4c639c637213719c8a3ee58b6c596b994befcbffeacd9d9eb0c3bff6529d2bc27da5d1cb9d58b1da0056f9f4 + undici-types: "npm:~5.26.4" + checksum: 10c0/fc436b93a3c9367b69d11a1c5d70cc923df6ea60141dd508ce2a248160c3bf8a04c658548a59df8ab9148b68bd58954fb603917baab3e2bc9da567f655534e5a languageName: node linkType: hard @@ -2563,7 +2564,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.8.3": +"typescript@npm:^5.7.2": version: 5.8.3 resolution: "typescript@npm:5.8.3" bin: @@ -2573,7 +2574,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.8.3#optional!builtin<compat/typescript>": +"typescript@patch:typescript@npm%3A^5.7.2#optional!builtin<compat/typescript>": version: 5.8.3 resolution: "typescript@patch:typescript@npm%3A5.8.3#optional!builtin<compat/typescript>::version=5.8.3&hash=5786d5" bin: @@ -2590,10 +2591,10 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~7.8.0": - version: 7.8.0 - resolution: "undici-types@npm:7.8.0" - checksum: 10c0/9d9d246d1dc32f318d46116efe3cfca5a72d4f16828febc1918d94e58f6ffcf39c158aa28bf5b4fc52f410446bc7858f35151367bd7a49f21746cab6497b709b +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: 10c0/bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501 languageName: node linkType: hard diff --git a/src/mcp/worker/index.ts b/src/mcp/worker/index.ts deleted file mode 100644 index 162997237..000000000 --- a/src/mcp/worker/index.ts +++ /dev/null @@ -1,244 +0,0 @@ -import OAuthProvider, { - type OAuthHelpers, -} from '@cloudflare/workers-oauth-provider' -import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js' -import { McpAgent } from 'agents/mcp' -import { Hono } from 'hono' -import { createAuthApp, tokenExchangeCallback } from './auth' -import { WorkerApiClient } from './apiClient' -import { MCPToolRegistry, registerAllTools } from '../tools' -import type { UserProps, Env } from './types' - -/** - * DevCycle MCP Server for Cloudflare Workers - * - * This class extends McpAgent to provide DevCycle feature flag management - * through the Model Context Protocol over Server-Sent Events (SSE). - * It integrates OAuth authentication, tool registry, and Worker-specific API client. - */ -export class DevCycleMCP extends McpAgent< - Env, - Record<string, never>, - UserProps -> { - // The MCP server instance that handles protocol communication - // @ts-ignore - Type compatibility issue with MCP SDK versions - server = new McpServer({ - name: 'DevCycle CLI MCP Server', - version: '1.0.0', - }) - - // Tool registry containing all DevCycle MCP tools - private registry = new MCPToolRegistry() - - // Worker-specific API client that uses OAuth tokens - private apiClient: WorkerApiClient - - /** - * Initialize the MCP server with tools and handlers - */ - async init() { - console.log('Initializing DevCycle MCP Worker', { - userId: this.getUserId(), - orgId: this.getOrgId(), - hasProject: this.hasProjectKey(), - }) - - // Initialize the Worker-specific API client with OAuth tokens - this.apiClient = new WorkerApiClient(this.props, this.env) - - // Register all tools from the shared registry - registerAllTools(this.registry) - - console.log( - `Registered ${this.registry.size()} MCP tools:`, - this.registry.getToolNames(), - ) - - // Add a debug tool to inspect user context - this.server.tool( - 'whoami', - 'Get the current DevCycle user details and context', - {}, - async () => { - try { - const userContext = this.apiClient.getUserContext() - return { - content: [ - { - type: 'text', - text: JSON.stringify( - { - message: - 'DevCycle MCP Server - User Context', - context: userContext, - serverInfo: { - name: 'DevCycle CLI MCP Server', - version: '1.0.0', - environment: - this.env.NODE_ENV || - 'production', - apiBaseUrl: - this.env.API_BASE_URL || - 'https://api.devcycle.com', - }, - }, - null, - 2, - ), - }, - ], - } - } catch (error) { - return { - content: [ - { - type: 'text', - text: `Error retrieving user context: ${error instanceof Error ? error.message : String(error)}`, - }, - ], - } - } - }, - ) - - // Dynamically create MCP protocol handlers for each registered tool - for (const tool of this.registry.getAll()) { - this.server.tool( - tool.name, - tool.description, - tool.inputSchema, - async (args) => { - try { - console.log(`Executing tool: ${tool.name}`, { - args, - userId: this.getUserId(), - }) - - // Execute tool with Worker-specific API client that uses OAuth tokens - const result = await this.registry.execute( - tool.name, - args, - this.apiClient, - ) - - // Format response according to MCP protocol expectations - // Check if result has dashboardLink (from executeWithDashboardLink) - let responseText: string - if ( - result && - typeof result === 'object' && - 'result' in result && - 'dashboardLink' in result - ) { - responseText = JSON.stringify( - { - data: result.result, - dashboardLink: result.dashboardLink, - }, - null, - 2, - ) - } else { - responseText = JSON.stringify(result, null, 2) - } - - return { - content: [ - { - type: 'text', - text: responseText, - }, - ], - } - } catch (error) { - console.error(`Tool execution error: ${tool.name}`, { - error: - error instanceof Error - ? error.message - : String(error), - args, - userId: this.getUserId(), - }) - - // Standardized error handling across all tools - const errorMessage = - error instanceof Error - ? error.message - : String(error) - return { - content: [ - { - type: 'text', - text: `Error executing ${tool.name}: ${errorMessage}`, - }, - ], - } - } - }, - ) - } - - console.log('DevCycle MCP Worker initialization completed') - } - - /** - * Get user ID from claims for logging - */ - private getUserId(): string { - return this.props.claims?.sub || this.props.claims?.email || 'unknown' - } - - /** - * Get organization ID from claims - */ - private getOrgId(): string { - return (this.props.claims as any)?.org_id || 'unknown' - } - - /** - * Check if user has project key available - */ - private hasProjectKey(): boolean { - try { - this.apiClient.getUserContext() - return true - } catch { - return false - } - } -} - -/** - * Create and configure the main Cloudflare Worker export - * - * This sets up the OAuth Provider with the MCP server mounted on the /sse endpoint - * and includes all the necessary authentication and routing handlers. - */ -function createWorker() { - // Initialize the Hono app with OAuth routes - const authApp = createAuthApp() - - // Create the OAuth Provider with MCP server integration - return new OAuthProvider({ - // Mount the MCP server on the /sse endpoint for Server-Sent Events communication - // @ts-expect-error - Type compatibility with OAuth provider and MCP agent - apiHandler: DevCycleMCP.mount('/sse'), - apiRoute: '/sse', - - // OAuth endpoint configuration - authorizeEndpoint: '/authorize', - clientRegistrationEndpoint: '/signup', - tokenEndpoint: '/token', - - // Auth app handles all OAuth-related routes - // @ts-expect-error - Type compatibility with OAuth provider - defaultHandler: authApp, - - // Token exchange callback for handling OAuth token flows - tokenExchangeCallback, - }) -} - -// Export the configured Worker -export default createWorker() diff --git a/tsconfig.json b/tsconfig.json index ff852e68c..f9bc06b72 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -24,5 +24,5 @@ "tsBuildInfoFile": "./dist/.tsbuildinfo" }, "include": ["src/**/*"], - "exclude": ["src/**/*.test.ts", "src/mcp/worker/**/*", "dist", "node_modules", "bin"] + "exclude": ["src/**/*.test.ts", "dist", "node_modules", "bin"] } diff --git a/tsconfig.mcp.json b/tsconfig.mcp.json index c30f7f492..9f678b627 100644 --- a/tsconfig.mcp.json +++ b/tsconfig.mcp.json @@ -2,6 +2,7 @@ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./dist/mcp-shared", + "rootDir": "./src", "declaration": true, "declarationMap": true, "sourceMap": true @@ -9,7 +10,6 @@ "include": [ "src/mcp/tools/**/*", "src/mcp/api/interface.ts", - "src/mcp/worker/**/*", "src/api/**/*" ], "exclude": [ From 2b28f8e5af66602e28426bb63a5ff186cfd390b7 Mon Sep 17 00:00:00 2001 From: Jonathan Norris <jonathan@taplytics.com> Date: Mon, 28 Jul 2025 13:26:44 -0400 Subject: [PATCH 62/74] feat: MCP Worker auth mostly working --- mcp-worker/.gitignore | 1 + mcp-worker/.yarn/install-state.gz | Bin 235343 -> 235210 bytes mcp-worker/src/auth.ts | 492 +- mcp-worker/src/consentScreen.ts | 200 + mcp-worker/src/index.ts | 55 +- mcp-worker/tsconfig.json | 5 +- mcp-worker/worker-configuration.d.ts | 7370 ++++++++++++++++++++++++++ mcp-worker/wrangler.toml | 4 +- 8 files changed, 7943 insertions(+), 184 deletions(-) create mode 100644 mcp-worker/src/consentScreen.ts create mode 100644 mcp-worker/worker-configuration.d.ts diff --git a/mcp-worker/.gitignore b/mcp-worker/.gitignore index 6494d7c5d..6fe79c1a2 100644 --- a/mcp-worker/.gitignore +++ b/mcp-worker/.gitignore @@ -10,6 +10,7 @@ node_modules/ .env.local .env.production .env.development +.dev.vars # Logs *.log diff --git a/mcp-worker/.yarn/install-state.gz b/mcp-worker/.yarn/install-state.gz index 095e39f5ace364435f9aaa7d5242d7fd891039b0..68cd52708b95b18e4e50eaa8e60716501e7b2e02 100644 GIT binary patch delta 176081 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℞?@X7hEsi~=sVTYW-;x~zv<?d{`dIv zhxhN|-RC#<_Gy{_@%=e>HC2zjh~H|aS~xqv9(9afg_XmF&lrEJBOl3REgYDF=|)>Y z54Z|AA=x{620Ty$tXuOlJORSdg)_Pu!!Q={)aLVKxSsl%4#ODeMaiCSE62o;q>th? z%4Cb$FJgC7So`C$Oc2>oPd1Aj*PO=*O7rJrj;#791^Z`IhWFlaWSm)&N;Im!E~iwY zF}O9OPAd6mGYJ_`Y`fjg{KNMj&EtG|`*iL;u@Am@ugh)Em+>tDpbp_f+&esd^d-DW zo7JCLm!B>Hm4E-?-fHR5SM8Ti>iBs(qZVVzu(2AAgh=fO2q5tkJqf+rR>%iX>>x`F ztY&nd@Q==^+jBt&Ef$(D)@`_V3%-7oSQ31|HnjB;olP`dfmsSexpn3(YbSuqS}NN? z<%_Z<kH&dt1LZkdN&A`cOj6I!&Xwl@^HlV;0&hy2>3=wQhy$i&)QWnUv*np;n}a$s zyTPn%f-3}dW_l%|s(Cel`1szR-oF3--qiQOSMFQR-8M_xM~F{%tA_S$8@cBrF;+4_ zd(9V?87f%0uQnEc`6WB=n!s7lc@$n<LtxuTGm0KMEJ{5^gZTN1Db#=zcNRW4PW*@6 zcHC^PIDeo?s;}mI)!A%lbnmB~;ej<<DjPSVWeovxz4qui#!gt^mzOainW$>mA>cxI zARpLj7)a7Zcj(mdcj|}QinNVXbG-VX{`OP+_^11>u?JtbTiN-`p{YgP7zSZ7!CONj zPL<c$Qg`cmYNN`NC&$mF^<t?H?}Y+0g1c&`w13%8hYz?K;Ec_mXF*r5ws?_9rViv| zwH<uA#IEm64ZmF=DO+sJ!VEyOpw(NQDG}#1ys$*C9ByRoz0PY{G*-3(_#!$tO+7jL zo8;qciVr98{c)1vb6u?>%0_(=4j8d|D0$k6v-viy@;9ID-pzdUMZ3M3_3OveG1!%k z8-JjdvTe>*R!I(Oj{?9LLl2+u=BcgL&w-23PJ(R9C{C^);^BZlQE!iy78)Q9Nqk5; z=};1p(m1xvI|g!@9KB2c9IwnLec=k{T(n78?dc#t-zOG-%hgZKEc=+m`8gxiq{oL@ zN}ed2x_K%d#pQU@<CaPnq2SiJ;^pG~LVv#KSURzy+Ew?~WuxA{Zh!yz&AY!4R$2GB zE04Z*x3Pww4OEQ8g>EtxuoWiPd0(cJMTC*w&=O8=yKV@P<NA#kwP9;Z#RZFcFP+N} z<O?f1y<akMl)BC;M(tqsW8IWorHPl>Oe>+CzfuU+qc7XHKA_m&lM#-|ZA2}+q<_>P zP`4xuKsvy*nZ{sNE_~V-oER3L9q(=O)z`TM?zXj!Sz}*E(<#U99AV)W;62I`hLfkc zIpuAT9$$sY_OiNt`H?jE#MC`2gP_`!$}o}L-efF0It>$IhB7HV*X{wUk1y;_rQvt1 zrJjLRr11LPG!e$ECs(C@Mkshp_J6%)@J|i=F|Sn_AMTy7J^HGB1LEL~@Q!v;by?4r zt}RMJ{VS#KIz;p0aJH_<GHS-!JR8gN5``G_u>dLInTMwY;e%#HXCz0ar8AA%8N_+b zLXoR*NZlsCPP?s$CqkOGIPr$q?9vW_qE!i+Uw+{X+e*?(XIk2|FR`7q)PGdd8so@v z^rfRq={fH(Tbq)n(moLqB9qsaMF{3c_VfjJraH2Q+cWUry?OUTe0=ly-fZE~SMJpf zeKutvq*~i|fuASg-9~c(npJJ(Mf*HUWl_2Jhz3qt(;P`S$e6**t2CH<$JExPDWoDA zoJ;O#M!*s2agjDvvI5vW)qjfZO2zQ@d~LAWoJUc{)_&S9sv%I!^a_>d(??1<_i=$@ z0nxy2S08297~}|;@~*mB3v2Bn1!NhFxSpKq?<{BRoI}p$_$6a$O{+$>oo)jv|NJRF zfB5+R^Lxr|@9)h4AAS99f@Ci<-jR03t`WhEpG9>7JbA{Nr)e2=N`ET_=`ik<8E2dr z&03MNMzGKqX-e;)N>$r=G4049*6PJe$T~4#p&0QxE^|<CXL1r+CB3S~3~Wt$O^b3a z(tLWZ%;!sQPLfh3<>C1pbX0@b@<AicHoYb#L|8d)Y0-S^=o=sy<dQR_O`l@?JgS|s z`lKYLi)+ts0#3{AbAS5jvwi;Z=`IoJ(O2%(bNZE6)^+xjb<UGDb68hA@QU!8u4p;3 zoI&7y*H%`Q+2GXY(oX7;+Kl6osedrChAzE!D=C~)T<<-h9)y)1+q3md94v}y!yv!< z?O>sX;w92#Lr*hp#ZLt5jwvbv8AW}GYRV1Mcc+{<v?lKbfq#9&X@hsqX&1DF7&lxx zkgMf+L4VLef}4!~WDrw#t%b_l+<MEm`p3`juRq<J^XBem^wC%E6>#ON_d2!Aq0?E* zqs%&!q*C)zhxX=iR6-ym44q;gd<PoB80I!K`)DpSsk=F2^VzmEqQt^c^;l|J&N`Q+ zHm#!}Bhi#qJ%5p~c)eQbt~zr$swN%X1pVvjIp-~MW|7^Wos^sEN=#^?XW?f=NIwN1 zMOoczV)caavboIAs=SzCW;I@Xc3N5-T%(++0gN^2?)I|M{m<Y3;p3bAef$(}-@afv zJ~Owc!1m$IyL;24M_<XC#C`d0J`WpERdtS+l_6r$7=QFM;4)GM6x&KU2NBlTWfs?x z*Y;^PeDP9HH!p~|p{liLRrck&Yz64hDmW-T_>_ze3dT@dgfc}>cOrw#z54~?o3o-u zwheknrsy0{@rRcwH5M5qtJ18Jv+Oc=iN&#ZnydD?I%e$3N+UM&o7rmLRy#gN?kw0> znS;55Zhzf#d1|k*4*Of&*GFHsZ;6ZcNeLh1^m)$olAV&mDr<P5FCWlIb2sVMM(zXt zYSmFBDlVYpK4*d;7pX-bmoDDU_A;<T`8uLGlAs(#Pw0Epxn)raZLQkvTeuv9%4e%Y z<ch&`2>2Xdx!2LyfYvyESOOIsQ}De;%QClBY=4Q?b6VBQrXd_2WzWdLadmD(=8}nf zoFKcC<DHo8k&pP?b-fw}{%>DC#nY$1yz{5{^XK^Z&fY$K`uzUmy|~$<FXU~d_@&D> zk1E_;E2d{#qP$UklbeXFUWxqdvgI0-v%{;y*O-0f(H0@iS<>kyxkJ+1mQHPfL&Pa% zTYsB@e-c^2SbMM|p<i|+r016WRi%Q)VQ3&}1ZBOi$?p<V<}Hzk19)CU0eTy2%3^A( zVdM_t0y);ysMIjpVf86wt9R$an-C=HH6nMaF|(F9C7s%9>-4(i6&BRi`WSz@_x^qG zb^8`3DW)g5c1I_NLW52Evc)%=b-w_U(toC@0SlkAqvukN=Xa8Fg)C_!oSq@E$`#eK z*=ij~)>pow8U?;VRKXJ^E48tj&4B%1UoD&dN-#-}zHHx0Hz2mxphbJ~&MQ}4t;`-p zSGFU~Sm4=Cz=HcB-dMJd=&Mf7G^-uWGV54ky+{%;{WSv`q2W0=4{PibV|2h@Ie#|m z_trAUXw_~<gDa<lw$b6TX-#3exoxv_XU^BUBA_{kUAyg3`Ic?K<au?IsteLJE5}K? zg*th5G6(BuUnTF>>JqKz9JU&;=dT$LiIZyMWflCNzx(i>h0&)M{K{|r{oDI&&_`du z+k`{<dMe{n%f!@{Z5-{WeoT4wrGKHN7MnVg#YU{%wJO#+4Il-5OxD|djqWXN68}3# zQymv^)92h}&1RfY^iu%+gms`dgpuuJ2qXP=B^)cIJoW|WyBfB@!N3Nwuj^N(%RBka ze(*!&q#gIWN-gGkA<L_%^j6hNCCF6zsmu?7xr{uGuBL!&m$BlkJvE&{2!D-9T>0jW z-CutEaCe9E=nHs@A8cReOLgw0WJtl$=ja>;nd7xY2F$?)d8g@V>l|fPj66s`ggUQJ zh!-ns9+FdC^GcYoCtPfq=Wd|Y$~JmC8l@I(J2yEL98QgBuj&=3gm<d_?0i<77}w!& zNqw)e<Roy$+iG0b$&SS+`G2x2dy;WAOZT{D=tPl(iCs(E$UERDR;(|JG88lB-1CAu z%BtodUaK#W(Et3GPah)o(+_XH|KaVM?|=CGG7a|o%cVzO#oOgl{;ogoZva~8Iqh0= z5ZF1S#7|ANV0xzSpluK8xT7n>5|=sc65Ex1I&SaOuZFMt*_t<#5r1|byg{6L(Aqml zFEoxDGirw{r%bclZpTbs%8<0FkzBuKntCU(gp_tB<8!1-w(GtGLR^jl$ryg-_4RBP z5|P%_-cDFuR$wP<BsqGW7i8_Lj=&=5CHNZ%q3H^K_xAJpTYvxlk8keX&qrUk*F>G? zqqhY%(<XQm0>uZ{;eTSu-xIxn>)jx0)gFpe0?K?xzF>V-cKjnOM;CGyyPceej@e+y zRj{afa%*X5KZi5v9yqbOC%*rsd+6<XYL}jcsKyw)b@9QqOXIZ>|JmvtL)7k4OBE8n zD>ZLB=c-3IY*Z8mwyy)|R)z<$GYwo(z2yV5$R>5Ay;{SD?SII_m-no-_S-c6@2`s6 z(>I>cM_;?!H*op7XPu`)h)B3*OPaaMf)pi2{T`^qn8liE@`d+hTu**ZGDeyTtEqBT z>zufsm&~n>(yVQTo`^d>2kEcbQV~C0@w;c6z9{*Y+cz*`(sFh>L(lRG4{|h8k&C{} zSnLBx>jq%HW`DFzK&8~?q_r2-&C37ZSxa^640gN-sZHpF$MS*NZJk3}mhgMG3w|L> zy5!qu^l#68bMJfl=&N?Cs;^(ar)lic^K{yMQr9dex5z#U7hx)>5@WQZwQ8z;Cq5CA z7JkU8)^m@<(R1#z61P4R+w*}lW+|ORw%9$x?(!)Rcz*}$KkI6d(z=Z!$*8Hz@r<)P z0YmV*uxl1e%}H(|y>3xy%v9(%I{P9T4MV*hvq7{d25u~4R~M4bZdN*FMxO}LSDcfn z*0%~a!QmyHKI%Spo5%m~#^3+=4UE~NFWv3h_vNMADLC)CfS|%9SnDh;&`|R^QOnA! zq>JB|Vt++l-jTtwB*`+`-YNDFU&%B6wCJ|6jOwTqN1BzZ9Bnoc9NCbLd;q$fS!*e$ z+f7aC-r`7>*h{y1H)qTgy9jX}GZCdLh&B9pPk4DcWzRv6EOUCkDaAY5H?dPV``CNb zTv!>ELj$EcQG-0a?~|rRLRuQTNAzz`f&bxSe1CfX_D}Kj<>NgFz@x9@>lwuJ3s_cS z$+-eD-=;wgMOS=YWu$E>B^w>E>X4Zw*-X7hq*2P5Oy7D;trHYnIZ^gy9l%x~J6)rn zRhCtWGS~K_J67#0%=Jvp#9tA(&%q6p*O0Kdm?)#{KGO6$th1*rUQ~9<$@0vZvb>KG z1%LQ)NhG~Su5D7|rJb5gj%cZqYR)eGbUD%5MB&q56j5Aq4%~B-p9yAn?(e@mbLzm< z(Ngt$$E^>(mbcK*`cfnBsR%qULYW*}B~4yBMNk2!psnL<udyIikaA`AnX|<8@WfhK z%&Tp$pi0M)ak%&vr`A<FlbDn17B5oJ&41@q{RqQQKXa~ER9GuRc4d?__#E-~OSxA9 z0vt4^BYCvrZtLtVOa`qBY3+0=3D(d&5u&Y<FJ%Rm7a$PP(4Svh9+t#x{U+T~!h}n@ zm0oI-pIL-|7oXObH*fdL``O<7`RT(4zwg3+@Fo1k^DEzF{rbt}w70dTo=Mw)J%1c6 zM&9M3@SDmNSPVUUT2M923Nw6q@H;If`DT*P5AV|`kVEF!IjI!P9NZ6+68)T=cOJF( z+;fIP1L8n#GcP?+^3*lFYVIq=oB}pC3HI~RydWy1gfenA)|6|WoI)E0<y8<V7u$N8 z>Rh^KbcTIn@V-3xkXR~<5wcHYtbc7M+{Do$N6kN1;BIg2KiRwe@%@|qO(XK7FXOjv z?<pe=t${2nWt#RQ=k5J+^+LyW)_54@t6(pieukvZQRZ>um^5cU3G;AsL@{P%TRl7e zU+UhhS+^WV&x??yZuOwavcgmNM)%o40w4(f91ug-u__1W$x?Ou*E`;IGJi|zZ|`05 z-HyJkA@dyaTWgWPi|0907x``^VbQ6Am=9oHoLu{)4uqH9IPF!^UFKfn-WH+ZJ}4fM zod@&nuwgyG!FHfn5iKdz_KWhW9tli09J=FimW%<8#94#upbAwa3O}5zGW5f1j!M}p zFk9M@A8ha6{CC^?UW5IU7k}}i&4upyiudDq;d&BNyA`#W6V4SjYr7_>PJuYCAgFL~ zGN*g5$rx6IKxT+hsm}<maS+Pc`%<~vMfPDK>!ZMjV{vW4#j^6vINZrWwg6j~=W=q# z(JU+9Ey$#84HN~?bcVzj-hed*Z~-Wl+rXLn<{jg<0NqS$hpjrt_J0I1mMagAF%zFN z@}Z^}l{_RgukQcR=KjO`F7r=b#E&)?rny8nfdwOmo*KyvUTW(;4-01R7{JuypEuOA zXF%d(WPYv+-)FLm7MjOvqrQLumREBPRT|mo2h*feHeH4})3_W9Mvph>78O{xOfd|4 zfJ(mrJL4YPhDOYQAb)zdBYZ;WiTi`|<EtPZt6@;vFQ^X_L%|l9@ekc=PUgD@K;AWG zB0cd~sg}F0iO$=!`e1YaHvQ*6e)-|U_wr}2;)kEzg<cY{3I(@z-8zP*WB`2G;3~@6 zKvD#}EEANeag%TiqySJii7%{lr+DV#wFKliooEyb9-Zm*=zqs=NitG+TIVL%*^B0D zG7-fIzah{jav7W!r+NqPQSgMr>o!MgdLT64PI)1uY9I`4+(x1rJ%c7Qpm89|xXivz z&|#-jwDX?2%Z~FJ=78tyjsPi8KiJ*B{&jcXe{w&24L^J>BgLx8bAv()cGzL|Na4NF zgTjczgmw$Uihp@(IG<TcQa7BDz(!f;_6UT-2)P_XgJuW<SjPZ3$pBd}FmR&CKC@Vw z-bYgTri#HMq%9V4)keD-_jY;aj}1RvS*!yV0qME<AOo~8P43-YBZqD7xFVN%PBlMu zp5Qe~8%e-M?jxZE2Vxf(bg@x*=v!-j^v(S@{d3j*`hW3}>a&;e;}>(N&Jm41VRy7| z%;P7FkkZ-x{KOli$O4_?svR&(GDhyyYBBsa$DLOM^Iqqm`$TydnIG2>J-}7rFrZUy zRwSA<02-^j+D|AzJi&Mc?5GIh`ZZbT2aIA;Vj*-3t|7gsgxOZ8H#aRKeCH}M6sTo- zkghN*<bUpyXzRrmrDSQ)HzHTz5OblEnV43~eLuPk{mpON`~I{0*^Bt$vpe<7seA7% zBA?M@z{!MzX>o`!{w}_NcD*R^eEW0mWsmE30mG*UJ_7TOGcRjlaDE|~=8`}xyKr<* zkU=rs1h+-QLwSr|Tea<A%){2G>2%zNZ68dh0)O#opzt^_|L7RK!Ul3)%%Rza___;# zfoY9c0}WtTBON2Ab}?ZoIwp!8L%}wmd}ZtC4vvtR+#kJ{|K|5!e)z*beEj5o@*;lt z<bsjGo0a?cWAKG8de1!#+M@()0bs>(gT(ph!A;y}r!gR^9=Z~G61)q=*v{GopgqKy zv42+w-2*)%_{x}FD29n!!UB^=uXo*Ru)RCLa<KaFLDd3djrf-n#=3oTV(8%pgyp>0 z1MWnoH5f8tgBBa0$VG(N!V@_NddDOlWSIAVI`4tM-9;FpP@Qz$D|viW#`x3bzW3aI z@)CZuwOVrKedteT6aiHc4k&FD&%4vl@PE1I5)AADip~JEqFb{(5u(H_Cl2NUYZ|7f zAjCYj;bw<L8iH?CHW;;(L)Lsu7IU3ueghf^6d~+jEOll-06;%-;Ro)kBX-<%9G%Uz zq3<G$_f}6MKQ{^Oyb6Tb`l>PQrx8&r#qdkPY`dl4ZYfT~wy1&C+qQI=#s2U-^?z+^ zzc|x-L(QMOh97@$Azr~exS_qcZA_-b6Vf|YQYwp`nHYSVW}a7!7Oetx=-y@&T+$Y% zQBI%0Sc9H&qW$!ml?AVnjhi|u5|94uCMt6l`evwEZv#upybf<dQ{>#b1Ep1+Yk}=J z42KpGKlDfuSFW9K%gu!X6fIi{C4bH_Z|pZiy;=%-NbjSV{+9@AFn)cFw1Nn!damFP z&r{#__V+*j_`~0S@X7t$W&H5bMGc-&))8Mv13#b3cPUJx7arpp**<sGSQzt`okT&t z42eS=2RAe1@(FyHmD?0FxVv&<Ivj(%s|NL@dyZki3LY&4qt~U^tI)yZ@PC+f$LZN9 z`#9JDFkp~51BEk*9(=Y+V0Ia9Vao#`__)lnqk#bJb#%@wMz}r)3`JdOo+ArN+a>CY zg*HEUbp(@%#Xs2IfBS8FzyI>nSCx7%R{q)R_+bf>=0rD5LXiy=S_3BF(HjQ6X*X$i ziv<j#5V9?aN+p}TYgS#<^MB85fog`K{p}%TSGW7tpjL;D4?$~#Qww~A3tcrT_dQ>m zx?l<}zm2NYUKw}MLjKdWLaY$~6oE4Yv`Wb5vK}3J7x4ChDQD0-F2;$$Vu}SVX3|6P zNkMNIi3krwY?7Y;&pDBM6z`=UeRY35Qhn4u`0PdeXmgDasjn#*7=PkR0T;``2Wd5J zq@2fDtOoC7Cl3Yb;lT(kx6*ZCZ7x6xW3u}^_|vajo^zDUETID-sfGeGTe4!NW=|0D zxL?1!^PCEx`3Kx=Hd!m5Tq+8#t?0E2;99bTG#=zb1APg-wChF`pD_?l1NYbw@Kwz~ zcJ7f-sStvPuv<@rS%3P-IR^ta`x)P`KmTt2`ODY%ukUW}XD{PN+j}uC-+?hh36w6k z6t5G9OaOI7tAhq@%>PQPo&8WWQ1jVi4sawXut4JwW+N#JBP<X;b(bRn{Dig+6tZ)B z&;;CL;P{GA_?zxM{^z&@h(p;5+L2wtuumj<KLc@H>@p^0&woVlPZ4uqL$upT;Yr*S z;H+Vi>K@#6VnD+X3ou3T<96(klUvr>8(TZ>0CnWgKf7P~jQ1?dpS_45ZLS1(;v3io zoqHfNwkKdwUFFc=+G3d8*SM9Dd)vJm<b0@T)b7o4R&*o1?z|@F?uqO6@QHiER*VWi z{N}(QX<SV3Z-3BY$839jG4I6wIDFVa4L#M|0C~$(P)E1rGV1iTrKi}vI2U316cBOJ zxV>hc#9?I)hQVyflwgH46+J?{57CJbTaJL;x4X>J6MK$afBri3ei`Glm+-@HZh@!? z_9;{Vca?;nf*T0-Q~W?^0!x>!5*g4OuL*peD(dYEwSOP$6T63&=c;UmDF)ztjJ^Uq z#&N*lA8QcbBSL70fylA=4R_5ZIdF#A?S5-YnH&%gXE_VHnLJ~lL^HSZXxtk(A?5;j zyNQq%o$zdc@_&nD>4xb5@9_5Ovl88h<qdg|#-c$ScJL_oM_c>1Kh!UOt^)bltN79G z=0+iiHh(m=t1#QgnMd=qkUyMMM4K+GvtH9FTF{nwRMcnU#}<M1oM5?-pe2f_jt+*8 zjzs)&41-^u2mZ$^=#Hg`k<n>;v%AS1+j|^f9m+Qi<N^_*!I3ytD*zv<7->5gIM?iR zM`6AOHf{pw3D}t-s7OCfKLnAl624)C@$#pOcz+9t9`$0ed!C72|EM+e*T3%W`%ms? zui=MZT;q;FeFoDR%(-N)ske6%qF79P8D|rdNB}(6MoUgLR4}ZMS~oTT|268P7iBiu z^D)CHMnj|Y!tZ3yxfir(WUxm-16Z$L+~t_%9|-eS6;>XMkfk~>9TP|R+_ejIyrp5X zpMOHmSnwL)U|GQ5PuurWZ&Jj}k>o!9aAc9D30J}pWKV~^YOuM0cZMd+xE~#;e*CF^ z_;Zi$XD{PN+v_uKLESzbKnH5@tIysv4#tY1*1Rg6Y1tVo_CY+t0@H5K57XvmLBX`h zkqI)7dnTrq$5|>SpuHGy-F+TwqTr1P4u9$PJKl@}_3@1Y!(ix<(E`K;Z;QyRLh^iW zDcy>xl7Z?Zh~pxIX4Ki$HL+V8fk=G6F3!cLYxqnUBr&QvmLG>S7hhXID`mvJ0<ms? zbfEfed*6R{KYI~B+T0S4Cq&DY`+5KrcfAyoWs-p_7m)euh#XR%+PV`2)&#e8nt#r@ zq1zf~V*Q}3>Ete-E0^@vHWxwlbq{V>k2QgQ6v!=$UpE(hEyxNyA>iWyG>f4$4<+c} zA;&jvjA(k+2(WsOAjp70Mq^Lly$!#QL$z=dUV9}-->?8|8Uq=0q<}XMN%R#3qt<N) zn$C~%7=QKk4?q0)^@FYb>?QoL27f8CnBC=Q&^`+R+omf(vd?--?_)jCo|}mtGV(96 zF@AnA?l8emMldL{7`Y{8!~7Ytdngr*%_xe~$qVP2E|<k;ou?AZ>vd~kOouc4n=pLW zPQQb<j3Gk-aaC?f16U{yg5UK`bRatLj9k4FL8XO@NGzT+@=i8w*mS^`9e>5R`412> zyQVaF<i-z@^o)=0xqtJ=FF!DS9LD(MMf_-UafYO8av9WZ%<FT5;tO-co)Nl`4onS) zQX!E9J#>_+Q%Xs%@8QTcWHNxyd(R1Xq9(c?T>GRIp1yJH7Vl7UOcR`G;gepYHsA;! zOk4@-v$=OAw3vtld*kS-dw*i4g8Kpk>kD)!Ont#=LNIN*818|<&<voOt`bQzY)Mc* zOj^Kdstu@65V*{cmCKrR?~f{wfBkK9KWH9&_8NZpP6n_WP{Zjk(N7M<=uaX|+eUCo zor5W4D`q|p25W<=oB$R&Kq`k;#E=H2{~B!uJ_fj$xf5t}RFY7N0e`h>A2ql(5T^mI z?REYjj^fQ0^jM}bGC&XUH^I*YDs2xST8gey#_S1#1eyzVy(!_6MARFT^~V{0qV!P( zQrxO}H$pczCv0QO{EpEQRPgU!v;AR=>aV`-?FaAVPhP^0wst9Ivl*O-VFG~bMiHJ- z)HIv7Dv%$X1;W~mvwyijgQ<}SRpY`UhT&nR4b4K}_O%A|v&pEIC2;RP57(XNs#?JH zv<~Iy+V=X`;sbgbP3cLF(0IVG5;y}@gOKQC&0ahSY>*{nXL*SvrsS?XYOw<JxO2f1 z>puM2^q~cq`*Lte@%a|dJQE2WQ0BLayZpEK<6nIF>K<SJlz+qc`rY?me)#f}e|=v^ z__=HNc5LWZ6eAM0TW+8~ezOyU9M#@;$XvH_Jp6hqL&b!GYZ~TmO7-3cLxIe->D6_F z&~CZpBuJPrfGUlT4yLan8*2NDER;0mNcCK=S6s0LsXf@=W8_8P@jj$XodV8m^WK6a zdP0&u^*Cmx*MH4PdQMTxxR_>5e6jBoGr?NTwGg}Mi5Pbs*|iaLnqbL7zVonZmabR( z>tDq0e*EJP?@r2p^16M5Dj{$*sQfvX`<a&K`Zl_|GFR0eWBH!Aa0HFR2t#8s62Fpr z(Cwg!IKMgE$&5iIvy?(B83X@-JngQwd3Gg6d^Y0r7k?M>ccK@Gc;=!|LB9UrJ@Zr( zmW&3S4J?|0S&DR-NP}uL2z@t?gFLQKTU8j~m4tVzg1W8*8@81MehB~z;oFuSM__4R zg7V)Ky>HO*f947O?3H_^Q_tT9`{H&j=qPtlqW@%Gz@30Uca$BPiGyL6+hh|(yDqKR z6srtpGJoOG3Ocm3;a_aBAaPpSj!K`$w;cH$Kujnw9uJfSkd95S<lE8(jVkOVxX=Z< z=w}U>)#-E|sC1^)c*NF_a@fAy&|ACbFr>EKF+f10J?F&S46p*(05ge>G=uQ<PQ?Yo z*YxXj_Z$e(DZRI&|L^a=-1m-3pS*H!pV4ppnSaD|)LDrnr8EYP*PaM9oWVgJ;nm<S z;lN%ipzSQZFlT5X8O=MFIU8e=D&|@6h1<Hwa8?}ed-IyJ*cbzL5!Bs}#z9=z>Gc_v zsXznGUO_`1sQTT#aqihgbMJNcFgCq03={6p*O3ad*02h#Gm{~qqbSE;D|pPuQ`flb zoPSQTgI>%<HL(eg>fo#QX^Fl;Q~$;H|0Tb?t5E;!b^CBX6)fw=$Yb*)ikNp#l)BCY zwfjmTEodp}J%W7?O2@zh<h9$P`jkQJi65(lC>>fPc>`krrw;h|sQ73>vPuP-1EN7b zAQ61c&CGg4seZ;$qJ8uTjzZpeH7>V{BY#bAI)l`3d$AqYbpshcWA1p&yvXsQoxX{k zGTV{1P)uBL^gIcdGSJr>Z|gpjZLLzuSKQZM{-gi?_g}ug>tFfgh5HCLo?sy(Q)U~H z?1`u#LxXouo(oIY1Z(s-c={54r%n}BS5okw;hpv+s+fAf((%}M)#J@VvP>lw#(#@V zn7?6qH-^7~7a@~3v(#szK&Es@>bZU!vlJJ4L229LoNJNi!DVic<wvq&a%<W$1d)zo zWM)|k$uL2&)=Q4Hq&76$;7KiX!OoKq97_<eSeTL9{?^g_Uw&VIc<)T~*~|737K*oB z;C|0s6z4Mjls>3>0+{9y&&(0m=6?~MPzgoBrv?c)!QVb$DvzgI);be;6CO|nK?XG> zmYyzfJ`u2<GZdq8mQUd}BHz4k(^fCub_nOeD`;86^@vf~gA*|RDS9Sm{%=}uPq2jH zza__|bXs8hHn0L1hX<7f!+S`clALk3qdO;H^~m6;Aqo-ENC>Dt!b1I3{eMH$PrrQm z@jdg^XRqN~b`bq~e{r@vc{`U%FP3pm8VCv?Kp3hV4IbwVd=z#LG!m9A+iQ{(>6Gi3 zIeZwytHFkxH&6q?3DZZ6TU7_Z?^ArJcNs9XjL!0#(~%I{!npvk?3ED*6m?ptp3UG# zC_gq{T*EOhy?00{3}>jVPJf@v6>)zhKjzOZZ<ZUZ8ADw!{$hSaG56-~-^QiyTw)@} zU*Em|seb<X$DhCZ`isYZ`R*tG`D^|B-MhT%&tAs2D4|~;U4kum2xC-PPv%r1_IyU0 zcmc_D3ihAeAi&Tp0*<R;yHN%?a0DZ`v$@I-lvV9V1~T$hi8tjaRDVHJVUU531nBop z^PzNJyL3VX?lTH-qdO5jo_p=h)S2m(LuJ+pz-CZ!(>(}JGD0NF=b1x7$CQWaJm=0h zC^w=Qya_yOwk@&_JUc9yq1lX7nTG^0=f6F=fBW^z4+)ON&%gV_Z;$W4`10Pye)a;s z-fDismB2HCu9guqGk-mS$lV?8ZMwx=b_1S<%q;j-wFhIU=*bQ~XLCS5fZdfv7eN&` zrB9#xG{UOB(f;Y|5g^blwW2s+5G+LdU(ZYj?5yHG2oua3I0V56ri>3%HFc^&^7csj zkmB8#k(VNj1OOmE5E_(#U`$Xd=W(qe^<5VSqz8M<F%M|LGJoatVFo~r#@??yp?~}J z4?q3%<Ilf*{qA8fe&A{O%=LRgSd2fNo#3I$eV5-*DFw!ZR<DbTldK6E=$$!-Q|mSd z6;TB*3}(Wx1P&?~dIJL{Y|r8R_!iRJjK^5FhVs15dG#@z&UQU_DbDov%D&}$pq06L z3ouj<tKAdSAb&uDz?Nws(#XN$1I&Z5_f3wt!dBFTV(~hyiL&bieuiv=p$RGa4)FXU zK`b{gE>w6I3#ISNab62bf9Zj5?0Zk@XD{4aTJ^7o;k&B=2SD-6QWgf?aLYYLVFQ3H zTTXE24r!)~LDBn^-zr=j5#6=s#vyd0EH;rXD;;$dB!8Wl`0vX=8WB_34!A~d{1e3K zjk*p2Ox<C(c??5r5MI=~oEA>56AUS|VH24k^i|EbQ(}N)4n>=4%FJCI_*3kd2kpz| zC|jCIOcWT<Jpo2oDN!A>g>*4yN?u*C_s9IlUq7wy9f?1A@jkLQ3&=H(&ynqdD0|L1 z&!rvW8-JF<TLW0Q@`=7j7g(-m^tr1x`@nP*)U0$5PJ0Mq1#BqLyYB|2j_NcV2#`fl zU`(S6-4uBzD?a3+POvVbm~$(`|KLzwpB7%1H_#8DdTG*%vFI##6ENdZ5J>C`>PKR5 z)%LIvbjzT=)`>S*8O<2WJ7_knQ&eZ~DGJ?k?SEGQ*nf;4fB2<-_~pC&^7W@5zkd1P zO#Io4`1a8Bt3DLrH$?u1h&A{CkX_R;T(?m|Rs^+Sv<3{P7NKl6)xi8r2;ecp39?ZH z3Cf~PfQKvb*fBOCKDch)$AgZ^!za}9aAV*fd_zmMsA`6Sb8z06ve{K0eiBNF;5@WH zbbtN<oU`GzHA~T{KGE>iggPEn$9POFbqp*I<uEulFv5zNirg|$Furq*buq|>Hu`w= z1^oMOJk9UEe);<!{FgtxOJV%%6?}W!`BrJ#J8c|?dX<vSgU!vnBbJkPkK=|+_5sO? z*I7@G8l;G;huH$aCBe~crFi6+^Qm7mNq<wzhGLpdqNfpS68O!!Kw_tvGS+#$?fkPL zrGEChy;3#zulp%20tN)!?+AjyYwiLp0KmwoMk@65pgP<gGo3i;+TMnlAefYK7SnYI zQtS+5xpAmdLkdvRIP?+@Ba9*c{ZP~f;WJ6++G}Nk5V2cOHLrQl*R}?MT;;G!VSm(R z3?RM~^iUjc7tOO<_Bet8nK~wDPVy8%Gg5I*S_^@qE&Fh$0F*^dH+v!Mm}tFWR`K@q zS5oS~%DR7e&(reR%l2Am`px@rV{`Zb&~6uyC$KDBr3Dqj69LK%OUQzK<P7eCB_m7@ z;oskb<_f>~L`-;$hA+Ti_Ce~p=YJw&nYEYpE%=!CnFohcAA!N|*Jf&OF*M0g<387+ zpA7pJ%>sLL;A)OxIb>zKrv}1ERh(mb7C19Y(W|-)v})`$CLE>~SXw%##ngg=p5e&2 zkOj;w`mL{i`*l12s(t{F?+-t}H&pl8OZU;~cd#L^I7$mI@IGgav+P7f(|@?>yX|Qs z&>=Zs7twZUs^yr5@d2zLU;#lo=;E3&%(XU5?;F0Hv@L6ZfRAFRF%j-qwl0O(YXJfm z7`%NPm?x%UodLz<WbDR;Dc*n|hjs-M!5R2u=DiDi9p&r2#{nx#8@IZ}TTZwfa6OD* zL|e21waI(f_c4Kf3x_4^qJKB1-})N<Q+@ZlU%r2DQ$Kt0-X4&C75?Ij?ZZaqks?aK zb4)fQkYHzlXLAex6oBALji8$9yuo336(U*=V<*NX77dK;-l;Vax|N1(_l^MQYO0}8 z0x`Aeb*XLk27fD2-D5gqNHCkIY_2-s=7cdWa0B0%9wRW&>HvOin16c3(7H@0L)nJ< zv_`lGOvc%_>(PoLti<?RQU?;HNk<<M{hEWuy!v|j{g?HNzxUSt>{WZ+P5Z6=hUT!j zQF(x^avQnXwJtllJ?G{W$X{@$N28$}XferN%@EwOjmD)LDnPb**XB?hQ_L=7ih{cR zVdpjN(m6&!1{5-*bAPWl?Kc~%YR!4h;Dyx3xt=Ehw8PmJ{6k?IrMb3~Pd08kI_BbL zuI0;N!G^1TLIfKdgCBFjUB5c5V~>e^=7|t6hnA!fWYA!Hy^-4WmmmE1zw;mR_aEI* zKXvt9U%c}-=g#QOn1V)-uevXh0<QwsG%=6|Msz0z^sW=3JAXFETEW3Oz`w_M*j5@b zo8dCwX@<9?-$0fF6i`E~3;A3SUM~CH0hZ^babGVnHBxsBAyvp=(ZE0g=%DL~TFZsA zWi@7x7Nj&FCI(v~#|IVU(oU3x?=-I^qkx5$Osx@3d(sH60J;vbMaJMpyNHYk_UJdx zo&LGLzK5s&?0;qZ@H^TwWQmzZ0JA~T;{h1lb))Ja8xTItp8;G;sQxf4x=6v_`6h{} z84f^t;u@_y(L!ACdf{tM2+ixpjdE=ixJrEQfuZtx<8S7<EVT;nCJ4aLZ^Q68`v@7; zesC1gq`J5=oVggiZM<l8+p$Kj{|=f*9%kDG#@Qk5;D5{bk+_nJY(Y;mWFbzh$7Ak! zKxKLTj{feKUw-=TY1X_~8vN|V`*2eu;x@*$$}z;R*5D(NoHJ)(aA0l1Yymzxd}aqP zM#uM#b20NibRdoi=Chlh<F)ZlKm?&`Y^@@r@c<!EKbP%2M{P#DBkpUh_s)$TF=?#> z614<fs(&ERLMQ-V0%kf=wh5cs=wNpIYfwjea`^5r?#NZ2EPMBkgr^<PJqza<8+8D@ zzY0O6(-bJn?WvWoe%Sx;ef|9R_1%Bl&3Cu<lb7(rs;{fe2g{+87%oe5tF<S5KMZ}- zWg=&c{Dz+>w5L)Q;+fe3rZdA)(9s4imKLk2%YT6UGeCVVfOLGK8Qz{azOaMZt2Vh_ zGrzWhonk_M4uLvU6%fZaD0CBO(#XbS((P%Yga{>%Ge&MCrqN&>s{xH@yqLB2ripoU z;3Z%NhOtOgmq4{V*@u7*wL4r9pm=q7eE;S9`VKnh_xAL&*Y2ZiC=_mrzq3?1af|~t zJAbSnlSf{R%{SvTM?Ehl16*KXMI|;*kE1mY+S!Y9tP{C-MxggOObkPqFtRO2!fUAT z1U)W{E|ig>^m<TQ^U%Z?Xl$<MNo^b^XdzU1SvL7v1MJtGVTCahf8NO;e%wa#Kp-)L zNmV#f%L2fSTc!jY4BlRzh>pzaBZMT=nSTNP0EN8f&i>}dAHM4^KYaQ6yUO=!4xhYu zuMevHrgT=!i>~2!FUEx6WprxSwsln9AT)tx0`WamVQI2KoEHZ<qVovXE{5&Ujz;t# zcuDM_izwqIfxKignoou4G!(^3p`01fMX%7N26qg0Ps0aitHpuz+I`>cYiz)L4u59h z>VQEw5OF@UZA3$cmCI~g5K(O=&RHPj?SMTnM{W@K`9`flbs26+ghy=`QnYoB?AN=@ zk3YnF1;Ni=wU5l9)h3BEvjw6as5E25%pF;(9*5&;P=k%6W19@vV;W~L%6kmial}#! zYKfW$*)B&2rvcv(-yA%v*U6ZbSbs~L9L{A%5O2%tBWetDsNhmL%6VV-3pQqNrI62N zO#OoCd(}#8%?^VIp#x!OL#ck$!91uMOjQ#_2oo4jcps~6hpjQ7ztHt)r4|lcF)vZP zQN#Z0r_c6&0qL_>?sZ3h6DM^bHqiF~?6uFxUaMf68XUS&)fRYd#8CY*kAH*VpY6{j z(Sx7F=AaxDz!XA1gtKS{MNR|wu`rAWD@G$OH(_e!XDl-SfOs8fR0!MJL7*z|?(PC> zd#wk3G7nTx5VvgLw=ht0?{<T~WG(_gd{GUWI8EG3Qqv!eJp(fbbGab6grj8X(PtQa z*bV``HU{QVUO%Ki{ruxU{D0$jp82kD{gc=3?cr$udH|$ATfdn}h(^UQ^0-DYh+rZ+ zE&M<rqa)Q8tbm14mOY@d0VwiG{l}5QNFW@mHwVBQ&o3#onFjh=19yqUdEg?FDSRe@ z1U&|2=qv2Mq}@98DiEWl4qN6v@KS@b>lVJ&wuEH<Ho&H_T=tdfp<J`u(Z+wG<8^l= zpmR0|A$U;paEbykWGIFo@o`%-3bSf!63WA`@7#a!|Ga;P`P?=8r-2pyyZPHImuMz- z-d4$;caMcE&p?W?jxX2AhJ4-A)CJMaYIE#~3eKHyn)4VZ=2Zpe740iw9Vk`;L^k2H z=iU`~xkRx@N{h43*5hviE0})*Z;YeX*~(iQ1OOMmc#Dy6Hr=)Fx~!`L!BC1x(DZ>} zWgGW?=(7xh^WJ%K<vmZOAMfo(Ngyzb4JzH(sNgj$Su*L??$`N>zkOEi<AB3wuil59 z((Gvu>4#9W0u<^S1#r!yyw!P9Y}=<2Kedfl+h*Q+4-n)FeOhV21J8fsw?<*>D!O5b zsyl!M5OiW(h&6jOJgo;kPa61d-h4>UggMA(84Xx7`G8QlPtt;AMT$@LVT5t=j5}9V zU%UI-K)LA2t4vSKt<~g}_>bJHZdS~iq-9X3&Px~7I&`jOSJ`6Ke7(Q?#m_(f;g@&! z^Rw6Oqrl3cF3e!wyorCxhXxIZ3uB-z3I8w`rU204+n~)8$i)_W52LY?>ge7j6Oalu znUnYw>YQgIo3RgHQ-@sYSm_wOd|lLX!@;O{O(9_zk7XmagWmEsfOdkK(hhJCa^NOA zTV~$`CSmL{v|MP+YB}O_LxEj0**H)=B-{>3sWqd~pVW;TI=X+O3t8xv{S00B)YpU2 zzx-N1ymx8&>{WYxI)5wfPQ=$9fajigb0qbsOEeJA0g7*E>oc|v8xy9K?~`#_N|D~7 z`1i{|J*yQ{^>_h}No!(;2U0*Z`KBVi4EUA%6PRhBgO-oi59reKoa<`$&BDR4u{gMk zgU~UG{RH4NjD&xJPmo!pmA^$F!lq8gcLq0?G3whjcKDS=efanU)TH->wVQc@iw5Sa zPDrSBybf6W?brJGzZO#4zkGR5U-sFn_t7&7W@D_08>{3h25fpxS_B^mU<2QDmbrL? zgpZ#6K(OigM?1a&i*czghhoeo-gW8VL?y2GIC<=Crj36>4nUE6rY<DwL~xdWt?^o0 z?ZvkaXnsQj&*Va}Wy5TYp2Q>z>K>V4E5>Oa^K9HvP!t*p7*A;74{d0UqRX+6_SF+- zcy<AdV|Sk+F6-W_l2SkrzLo?3HTLrlU*D}5efG+|J?Q@0T1&*830angdlc_Am3*32 zSr|sf0ttV(%*Y+$U%t+X5n3EGP3mbPcvpw=#SBtO-*iI`XfIb(xlrCF>3S5b10OK3 z$d>BsTX*BvetlFNi!L00zWo7}s&K)};|kJ_Bppz7MvD&~kM)bkd9Es_6~L2q@^~^I zR$%8;NY~Bm0}0MJ7^4qdHbACxjbr0YO8YNS0Q`UM-PrwSFWg5P3gQFu&K+QDr|QLZ zfR5HCvF*X`V1&uR(1{=y@<jh>!G%XBo{4lMK|rLp;=^l8p$Ibr89q$dC7ul3DLhm% zSIn_M%I`O-?HvQvluRI0@>>fWw5ffxk<T)Xp5yMlF(`$4!)CejOe7LkVZOhHOoIVb z&j5dpHFY@d|8olzLV`I9*E@w$q4I>*mk>FqvtJ+4fB9ei=YM>U`25MM_VzRSZHNMp zTKJpSfoVW7H8$rN*ZcM@=qKS7!gTN5>n5%f73vH4Y+bOR!QR>Hn{Bl)_HkDWn_)H| zuy_=6M*0O+IhyA~xypq>h(5152FMalZ>WDSK(q(bO$Gdg%WKyvk&_^x9pj|I^W+J= z89d-bO^-TqMvkYZgki>Ub~b#h3NZ)jr0@bYL#$I{rDQCGUkbH>KaGa}=fC*jr|;wU zUw&(q`rp?N?@gb6_Ue6za4-ON!RN$f&4#V1n;xx`@KH|#vu6tOmaLmWPV1?3Ayj`o z_$etIi1-%m2V#Vq`%%Cy9@dyRa<eA86a&C0%rFk%1$ye9Z(1)>VN!V0B(1C&W@tT< z#6i=Amm=*KZ3yginS#H65%&v2<FRARah7|^-E~ics~WUf(VIR~_kn<-ktz$pfG9rI zV>u1F`}IQlm*L^@yZ4H^pS^G|GckYXPj6lGO1zzJ#^hDav!M&YsJ*1yp0;xn(*4V{ z$BN+!xsw;D<^%5>2s(~Wlsd>|U<e==^tfYD_rbVcA=f2QNYJp}Tks2z*?Fx2;#M#x zjwx9LeC8Z@JE9;Si}sY`j3Np{AhNajC`30f6WNAy9o%|rjA{qQ`jTuan8JU+t1|dk z1Zk8c0|zm1*=dt{%qs9(yzJ=z@-)AnP5tg`eeXZ~@+IE;rhfJ+z8x?A^_zMC4H|-o z-Q8g&RElFWD_R@k(<s4qlo<Gc2b7ex8_irp3Jc>X7PS^3N3|L*WJ0B*Es+POXCe!< zkrm)F*orxQ!6YsB?Fee<X1afjs%a8_?X|?`;%~XK$K|%w40rcvUwzhwzj_1aEz5zO zK>)ue%B6jI9GD`PMl){^2_d1Ijb2CrGKmp=zgDKA8LwB<fBPG9<-4x;jq0DhejlNc z3aD~>h9z^IF$m>o%@{EdnTm-qyGw*(7U0x!*VLRf7v?1`k+l`DC1!uxgbUG-W<3FJ zekaPE1mO<mJ@~=3N|kBMW#&TkN&!GOGz}r<P(QE{0Qxlj0AWU>&uT}JX$P^*mPeZn zS<ETDTh5kbL9YT34Pe$g<^cB%$_j?Tnji!{rE?`01L%RtbE{<32tMA|-~ZwLDAFgd z-$ygW^IMFkY0~6z61;zYM^f*skZ@d)H;gT{<|a5TkJoBcYiRGzWl>N=pM}XQFtMF5 zAL3&{m#QN%)pd0T)H2UiV<VT$W8<(g-YAUr^)WQ}A&f*5`EhwL-K;x-9#RYzEK|CV z-$@y}eqpZ#BnzGm#q98aD6W|*=S8rP3sY-|@paCtlVrmEwS9jy%Uu>(UiWom{6G9@ zUw``YQ~mzS5AS_xKYIz^R(*f7Q=L1y?`B*KkXzp^rGh}0;c8@rdKJ3(RL~lFGBNp% z#tx`lBkME(wS63r;R?W*MP?RjBbbS&F3%w-Xx)8Fx$#4I($@p=KO_3pXRq9cbK;MZ z3yA*}zIv+(;4^=TcE*+?_-v`ty`v!%g>4C8Y3Jo_$j4^LSOsYmCWdre8f)J>06VJ6 z3;T#3y>Z2SLBxs?@0rdPT(2=u-*Q&cCh*l0`7CCP`(uLoIOr$KI_@U34Q2ueExbD8 z0Hi6p7dNVg^GqYd&40^uka~dBFOsK*x1q<CtjRnFrEGt&@K<hmtw8+s5B2vy{_@3t zd4ERylh^K}`9$qggx`eEZVpWFy2C&5e2}63&a}Niy$r<-5o2``n*j2IWt{zx81f#N z2|HlYMy$2->BcV~kOUmrmj~yXpimpMZa(lTdi}8OYyM!3Z06V~q|OOiXa!*dIUU&g zBw7W0Ccb}0qh@m|59O<4`W(=C!OeRf>e9J5Y{fCYyY_vYduN8;wTebxd}*!ou-lsh z)4%!Y=O4fS^0mJExqf-S8u7`?_fc)B=h<{O^bH~t^H++Lc*o^ou-s-7PYj+kND{Ie z)7L`Nb}xt}=~52UoKx@~$-3NA;eKAp_7JHrq*{M4$aYMw5ad+RPXg!ZjgEJ<GA4oI znh&(F%%K#rv`Y&`wRsAVc_1>Dp+hy*m?dk}0R$~VB*u+BC&*XFEuJG6-TMqQ)E*@Z z5K<dwK3a)%geH)gf77D*`tz6fG7g`-YA=`8|CRvVtYcB$O*KJ^K4?Zxmb+cjK@4%{ z0@8mwA(e1|NEPt+3K0Ek4mU(sC)Clkh#a>O*sx9>%ueEa?}9(P*KQm|7Sfu6zxkc7 zwcme6-_p-sxwqfaUtQ>8Gt3<&v;wCIvmEB=iSWJ_0|@}kb{<_jQ;ZS!d2Fc!nChOh zk)g5{d<53ofwARX$|ri$bVR065WTf_+!}v*mKct6AdkOB1(ytr&0hi86tME^G!&r6 zh=@gPtOtN7S(kPg0SjrR8sO51({!XfPF}QKWyzee&V?(r{X!ZMGBBaB7vo)w!Xgk6 zGyEA-ea(M<^{(&kAG+UdjDPmx{kExpg-u<5$~g>~MYtgEVTD+;%$+TbHJl2Ln~s0r z$NaGgJlYz(7Dfg!ymcBst9=Bx;g-VnIH%DL3;-pBsR*G1n{cWq<#4a1vi1RGd9T+! zl}i}a<X9ax7AZmlc$(-igKW_>$Ix>Gr0v4YL?GJ9j0DIWupDICNrd5%E@X`@C_i#e zwYpFSg3~?;n`+x(v+*?6sd-;ZOaFi3`*)*ApS)&oN1nb#1y_a05S3v$(`~36H>5!f zws_ch@>=`D8c(2SZ>;pXzX}5`{0s$~!v*-ID-($*CQV-o1s|%c>kMGra?`{FU*lOw z%<jJSPfx?nj`qwv#lX;E5Uo!6#T#gi86(IG=*;lC_yVp6fi9Ca%QTKaUzC5u2qj;m zE!USW*b+5$EA&Nk&FleF*VrP6$}h-Z-i#&w<&(M3_du_oy>Ktz(7#*1Wy=_<VDL*0 zhHDEiELi~Y-?=#5$HI62@P-|fm^Oxcw7Vvn^$4>)rfzEdAWzJJKgz5Pk9*G)2yD-u z=vDd^ut=cI$$cAH*715D)hmCymcmgOJ^X@h0eD#mL5keZi+DgEyr^%V<0uaqvMjX% zpg~<6gWG)fExmlOkXC9J)N0!S;wqRApj%1wnEBYn@7A+la}NKy>bw5(^Sfx!&tAEI z^17XWs`d85QL!0~XZ6xa1I#d~Nf@&!64ztm*A!Egq-J}d{1ufeYRi8?03Oc-7e8V; zM_;1gLcM~&3-+PI8>enA>$Wq;fafY@zp3OyU^q~6f%_ZnGSgcKTv?4x40ABfky-?} z@;Oi3xvp_mGoOaw3lHqdwLF$k9tGJXNfe$mTw7yl1LkMBU}5C}1$p(>@mdr7i$DJC zKmGLHo#nIF?YHgxSI>WTew&6__5gXBO%ZJkCY&uXp@AwiFF`jR=d!&7y4pK2e>FWu z(Q*hF7DODR7ezKf7c;gYR{@);Il<~e&`hQkG9pm?4k#$`(Rn@J@;M5}@7&3w?;zD} zJ&Nqk*<zi%>trNiyfX}=V)LBKIN)4b81l9$ejbkY77&Jrrd)p*4$=6A9h|HUfu?LB z1NLGsq8On4zR4hc$@(sS=Rf@Lt_1nBSMQ@_nabw$Tf7X(ipK`%-1y;Odj6Rs!`s8? z;hP|8qw3S4FznPIwFcom&&+VXds?i=FFEsGWNBnK+SjyjfWbi@THBs_z}$Lmp8A1o zM2=r@59s7zS!jPk6~3LeY+`0#Jc<ay!W|P{tkD}l?H!Dm0b4GR5#~kiOKaW^K@;_9 zD31l)+03)s$8nm_zl{eOIqPLt|Ehod`H%i{zB}Rc*-Q6NUb*8>sj`WYM%#8}-Bvr} z;`a~twyB$9*j{29z7e%yQa*WgHwqT&HwU1pHx%|P1P*^z#f&}}2@KzLj0t1gda@5r zu7V)d$vhzgQOMW!+5ih@LJWX%3!=C)#B8-k66ZKZ1?sKNIAZgj#N@BxI;ap|O{nZ< zjWKKvOW@pSFWML362y@RR6exc%144rPi#8CXpdlhv!h>r!tli3{on5$bU%CPUOuAd z*N-S&!;gR62J?tRi6VvoT?x)W!zXz0<Jt;|Y(iTaO*bGk+&f7%>JDQWD-)I@ZjH05 zivW!P0dsM-VQzA?+n5f^=gnPeGWegfqvDfS?xV=c8ZgEp2(?vZAl*Kzw1Mq9)8X2t zyEl3BdPZ8SisB&@oYN41(gS*@z3^wU1~&p{J5_&2zCgGx&K;P(+ek08=u|MVoA2e< z(%(O$9sTT;ds{2|b{Cx^Fi8c~j)o7p@x<(u2T}#pgAEh#U>Ys~AxI_bEDG8)FgEba zQu&l=ARD_TDwb<P@o~&ovB74v1lE95zikF#gUkWh`kPtdZ%9?<JC!hPKn*+UjwDwZ z6Z(I|S`#$%3#CtI-8~{!F1*ZwB3dD($8Q2x%)E?JE`*C~;(7o&z}{;(qJi+yZ%o@b zICPn>H<!QpzVeGd1K{t~iavYsJ~|xn*cX8Pjp#lbP!=@U$C)>P)?9n!d|nu1)27yS zie_z_^O*|J#;YD9*)=zs_GS$^Y4onsDwcm3<c2lca2_~*^Pw`qNe2M(>#Xoudrnm6 z&cu|%G&GHAN39#Yt_f6i&qwM!^9Teb)PPIJ7COZb55r5skoMv`_8N*DnQcFzdZL{< z&?)hgS4z4-QwNdr(LcOgM}PkLI}pm=yN-VH%DwHmd~1)&?nyNeKiwCU2cBf};Xi+o zGUJRrYONE7@cZf14AKSOg<L(y7HVo)tm_;GOA7%CV1+z%9-HtqP-A>xlFz49?MrA~ z!#LNQ=~9^(hPVjVgH;4-3~inb?mM7vi6jZmF?JE)-pJ1_sbzSUWnz#N-REhSuE3AB zgao&CXc?<vWW@RSy5ccE=K}r!W-fmtjQ=`a`ma7}p?&tU{nLWc_`CVrVK-rAInuh( zi|k1Js{~O=UcdH%&%|WVZY0{|fc=57@|q3wZ^)^h2RMF&67M7=w`3(Kag&&UN!Y2g z9*`V+)zpO3$uP+G+8X_5GUoKztM)dI@~d2rCvelTcyBtj=h1$?<?>j0_JDr~u&w<; zg_O*LF1+v9xlg7hIz0Ct4qbCS|G#5s=*5M4wx~c=y$jfcB^Pk$>W67M4kjU9uP%!N z0oNH7LpBfEwGSlY6k7t%o+;kP4wK6?xs9dCr6GMrt%<Ss32?765doigiB)mKS+_ej z4b8YR2PD*jncr-!qi4<aTX=urKmSi(zW@7Qcl3Y$`aA#mr|;5#{^OS)KJ?js_By_Z zF`0i&l5JZ!XsS4xvdV^%i*CcI%n`!cA=*<Gi2q#fu~;fs%36`5tREYi<z7u-q*B^V zV44cY@d@U!P@jmM%O_phN?v#I<%s)wNW$cR(K21tH+9`o)vmQKZ}fkt5r^#TTRTys zw?T#cB*_*Ujtt<TfFRb)mSoTvn=amV4$Z@cc=WVv#d(;}u+u9H)950u$?xp%zyBxu z`@Z({vsdw>-OZ6h86|O?JXHaGKH69fIx?2sPF)bq<{qIFL^ZgeN#f?X2RHX2@=P-* zC~!^-!II|;?+*;Dw`_mKoE<x4yEo2N%gIXnP4Rvqfij(Q2}Y{pA|2@n?<xTX+6(1D zJD!I$tAL4uG3!?6wX@VFVK#;^7mSJAC5o<wt>K{#$mVcucntIA#IUjFInZ(;SbE>t z-T&j;?*9JE{jXns`uab5ia&cjU#bzmb;Y%_Ff5O3;s9ZKHb8$Z7{SJ*LkK_1SH0F@ zy@2O_v+Po?k$87d<4^6ah7u(Y%*pEHINKIU-Nq0t^|+hq1p9sTuesm?e*<$EhS@_d z9ky#>vdz%bpJNI`9FW~>Uc}fh0}{A>;a(9CRRE05i{t2oZ8jlp8=w^4q*&~8&zJ`R z7*-|&>~E;83(tQ~+}U?8dS{#ew|BSs{fGIpSM!5SCUH)?^8gD%=Rl&2N{E4ih;bz} z;K3oHT_rxt*-6g@p~9*MIOP|b?1XA74o(btR9t4G^$5$f<?NkKSE6S?LO8Ow%NlPY zX9(azZ#HWJiqE$_fvB=8weLWKbX);13b{M9;G%BYz^s2v5S^^mw)C3Ivv53p0jIh) zJtg#~1qyNxq@^lcTpN@_A7{(*_0A^$@Beg@fB)r&Km5aokMd_P=LfrdPQ@J3YhkpK z1?rs%`Qec4;I^#|C_;o9#@0u~!L)C~b>uWcPVi3Z;}m-^JZc~p9g-D8O1#D)y^!jJ zuUmU-d*^?h2!ht@8yf|jRTXkEp3Ouih%)TD6Q8UYkxV%)AF%a)o{99nkpcMEvl<}q zB&Qxw0?C-T`N2aVIzj+Q*n`53$MUiZ!jNZjC2YU5%m3>KyZjzI;FA~g%^rXIDu)!r z3mLd|2dd_+F-9L9Ov&xUFy8AO4F}I12yV31^^|{pChug_gsk*J?dgHo9a=B2G^HX< zL?;$fo?(5V^Rf|{fgyy`ujzf~y+(E{joStznlo-5(x^GjGuPAqmhzK`-l<Iqp&dF( zP}>--g8EIbM?*gk;<YxRMk`82AKUBJVoY#AS_)qnbeWhg9{vCKN&d=b{KI=k>rY<J z51xNyyr+8XefMsMO0TEhLw0XQsUCD;SiLtNz1Is=VFBY20ugXss~dv_cb%PeW%YoN z1DZm+1n3~c*wDU6=A9@aUd*oE!i3SA8At^#&YjMoyd2wZ9JTRGkKHC>T2G^9+_M%4 zDzheU(2-ZOVdo$jI=<{KJ9j1n6k9rv2r7SGixTAlt+CXsu7M!Q6va5l|EW3qKYWtk z|0aL-Vt%m47;LA$=S)&^g-n`z18QC9bT7Qz3XP^hZJoIbe84zi^qi3Dc;m%c1vkS+ z;d>lA;~^h`TLE7o@4*25E#y1^tm=m8a7Mhotx@>*4WU=>vD0vIsw-`luG2TILz{nc z-s<IBfbpCd0}isR=!2o07QERQP@BH1FK~8V`}90=F2&3cqy~$%>t68lNa;a|=sSD- zf4#HE-~Zw3??1jMfAW%ku+!zb9rXI%)eSuaerF2Q*JMdwtz$_Ax18yfmdMaK+2itH zoP!*JSn8XT;bZeP+4X^gf))7yR55?W0LRO~i}dWfAk_lB;Wea)zomeX!HlsBppUt8 z=A3<bSNcJB0bkU;5|oTRAY)Rbr5I!XQo|+q9NeGrcEs#muZw2VIhCDpxt9rVnAL=q zU@khzH1B!ui2Z+lwA1fD(VxAbADzF@Qo(#E1_!{SZJiXpiF4y}ZXne{*A#ze03(F- z<TzsER2odF=xKSt(KjRw5(~0bex@~ub*-wo8^KsyCUm1Ec4{qY8Bwp*XjBnq_l}7? zH35%jY6_h4d{}7!$PVw3yG6$^)v*%cwKdURVy{`8kP!Gh#}Hy@0+r5s%*$Z~10P{n zPv<REC=%N;hwUlveVhNoZ~K4z=T6t3y^J3fL@0J7Dk`hyVH*q~_}B;JPouJO;28Zm z53VxC)g+Fo-aDHJ;X3PwvU$tyQOp{LOD^{@CZb5}6EWL#oHf%#Cxmc|XOYEvy(wSA zEW?Gu5eAfdVJ^CY$5#{K;B$KVW30S-Y{AIo8v>lh;rXZnp|cAB=6Qc250Re42u)p_ zP}VqeP#v}cb{j*P4F3~Gzmng3jQ`!s_P%#@`s79YXmblhx0w?NAtM?G?9^F$8~sTg zKJL~6TrLkZ4-Y$oEKLaJr`m!FJ8Tq#_q-T1Rc(y^b3U+Ym<A#)V$n+)tpY(=#vmc6 z^;!nG7eu)l#RgC-C7XZpHg`kOQ9N^2=M;TZ%0lBrBpEuo1ULx8k%2Dv{KlHqJu;sN zFXjsdP%zvB*C)HNM4^m&oSl0QUHsnN>7P8iADyQ^dl^64-gz~IM_s_ZR`)Yvpg7Rz zLAn0=V1>mDJpu#tpa!mRd)P`J7#Wgv7do_E)JQfVv5;%fXy1QF4(^|GJ;S~*{VgfG zEej%nxUVTHuv@uPd<w+^bySy)SO9CB6I>86U<Cme2HbQrV~Di58;z%1W8~RjX0aUT zzcwOr6I`zfw2la&*E7V*{U$s^8?Y;U1p80^g%6+I_dmOzy@(%eF6i)9F@0acF|H2= zfug2q09Yb=aJ_$aOn}{mppQ%Y**NrJ#Nj@~dmg}x*&W|bb~8avg6*YlVrP1ga^)Ot zVqNZQPNp;Z^|ln2^B!?KJ6-mmHV2LaOp!V~H<H~zap1VDi_dWrnG0N!Ks*^dJ1vn| z6Bt{D?-B`$B0=mPEeBCvYhy47_F^BC1EY*UN98-4`=5XQyUqQxC+N>!%8$1A8gjs< z2SD+QkJCE%c_H98Shakf8w^}(H$+l`EE1TaX&676h$=ESO$-+{2SmiFbobfhY_f6i zovD4%pBDmk*F7ZtUa8l#GHk>N-I}Vx&E<?%KMFz@;*Guhn3d19ow;L&5DFW^7RYlm z9;Scna!h}Hz}U4pr>`dsAeSk#F>^DAAtkQBJmI!N!yV_;_qO;yzHagR&+un2<cHs1 zIky2pzOu(|4tAYAqKZ7_Y>qqltUybCfb5KAxer7G@*c<)shQWw-uGbqe69l-IL-Y) zEJr+i7x*pKJZpv>hE%>7aiTZWCqSTQZ!NO~bD4i~0K(kR$bgE|IA#Lue-~+Ds@5@{ zvG-G-0>y*#sdlM>AUaH*=nJ53m**4$9gXqwM@hkLsj*Q6qU8Q=h5B#5ZSWuc>-S9W zeR@B61wY!^#rT(9N}0<Zq+Q*es0fkA8GNo!Q@g0Ao`ff2*-XqQnSeS!`4YAF1+jZH zRE&QG2vvjgBR>85&9iZQ_u&v=Vt5@ldFVjao40e{1t5DgltmX_>cVMc>y7A1&3ggz zGjRr%Gkme3ll)*0w&7~Q+t73}v{D(E%vg=WzE}c<x)+iF+mQ}F?(iY4jsLxh(4XlN z|MANYOy7O+cX#)*SMkrBn?W5DvBUwUBV&IIgQW%Rm9q^&>fD8>|J7ZcV=D8G#d>lq z!(8xe$EhBq7NY@D=RwEIE7kVQ=ZHgzjxK=uu_)Kwrd{+#;p#w@Eez-Qh2cDf-7?o0 zcC{fC!IdA7^gWpg%1@9EN(O$;FqiqdbLPgMia}I7Q!pIgt-XMFE_eX8kYL~n-PeDm z<($5U(|c8{fA`<-?g#aZPhP~2HWwMS|Bt%2S+X-Z&NOY>MD~!9C`#5n+KshMuag$; z;o%W6D_u#O`Cn9lL;)BiN+e}%a}zUjzhmzQpvXEWQ@uQmg=ku!fXw**BHUkp9>*!M zRimjexD2l)dkly26wDq;ZQ+8H+Zlf+=j?6aoQX}s*%}>VI@%_D!o-)h5wmb4ZNfIu zLx{nvlam-e?cO{L;$yDcLs7z*M-W^vu<5EiM<4xw99k3Zk%2)uPms`ji^6fRYGM+3 zZ5#z_$)MQCdL+Ku1pyd1Sw=fO9Am1q+YXq0lMXRv{6uwEqq}%rynp*5c;tW4%XUlj z;xD0Q{FSF2<^e})ZQvnBJF{e~gLO4XV>*abDm)vCzlITq*)}b)3A2=^a}<cBR(P5U z+tEExAeC;AgiSaX7-lDw)mAe*C(!-8^L}n05Du>+q(i{7Yrws)cJ>No9z*+*k})h7 z)U7xXHXl2&s0!H9sY7V1fw_O(3v8{Cr!gMa>_;3A2CR#$05^h>W*~oq)^i(b&iYjG z2}Q`4sMC*Ly!#03=Zjh$nZDL#=IoQ(I2*4cM`q1kGPW-!EXG2P6h<hiX)&=MNo0U1 z2u)fh#y4T{8r>~f<BWq!-^z{vQafI54K?rs!tfX!5z)JeFR!y1BXNJOkuLixsLz;3 z&x&dQ1B>F=fR4jN&hB_G)P9mmI6M%D*15-kfrH1X^p$*KV$2GGL(#&oE0xH+&_L`C z_>y&}%=zVW{qV0ZhSVRuZnu*M`qM)SQL59}(Cq0s>`-!JQVMCOu~BZ_LV^kO48dga zuteZ6cOS8I0xCBkk+^?)S&C7r11=zl0xbrL!dkR05y4JAi@P?ALqLOZ`_4rODIBBB z@X>F{EeTDVj)SC2Ebw0!c(vR5$!krK0+$)J@r&~yM3D5bNWYZ4C}RXc+iMWK9+uIY z@yf1{LTsd@a%zd)$yNR)>%&VC*hjD0YaYSHbd|6mrs=zjoLPTsGzc&pn$jq(RWK5@ z-4hid$L7=y9Vq+;eC?i@K<*<gd?j<Si7#L6bbJd~+$aP7+13&^pVjuc;&64#G>8*$ zWN+jvK)+fPJrM?!1Fxeiw>p|F!=YH5J^|dDWF(!3+k}M7VJdMz9tz?VxK;PIxmq~7 zCY%>g2nS=DYKebgNche4QuF<s-}UDC=?m`ZrEB`&wR;VWIS_+~Ve|+C57`h0*uC~{ zV~F7Ea4_IqYltCCZ^&%o*oO@U)C#9n$VP;GgY2!4&Tg%%-WP1yaAd9;aeAPTFRN&( z%<SikJ1TtGOteU5GIn_bkZ=sQP0=d7ip7)I&A8&?BsG6%Z!eId;9nk{xY1n9LE9l9 zqb}jF4MDuPpgV%~7ShnRj{BiVc<y3!9=EeWzxiOFzJL1k{^?_VSAY8O;!)<Y>-Y2P zy8c3Z8n_cW=4>Vfq^LLvuB|R7L>N^zgf>#}7U_6<oT+*FF?uLYNsbW-<dHUFsY+_} z`8^jXlr(>d-a-X1qt>wRYl$-&Dlj^4-@G^u_$c7=!ZC5zp}1O|f%9N(QGnsE28JGX z^om%9vMk>`J@@blav9Hl(Ga|M?*OF5?$O#d#D{^junjX`C^cgs`kf}X*mwShdKd5W z&AXS>=#O5xyLpn|(HEo)vX!;er5%TOvF8zIbRd7`1<qJaSN1XZ5S(z@LHbtOZ4JFb zD1A&!$_*es_tA6UfSyBQ1dA_k*5N7|I`HY@fjOupz=EXP?Im@AY;0Y%@I8R$CJbsa zcn27jCj7!}MFh+mib;-*nVeMU!dIQKvQ5zu?$;>BAs0-Y_drt!nr+e5Knu=Ydr~n* zn$>@BM(uY3hrcjvpWpo3i!<?$UcY;U;^*sX(vYKV-ZA8I&~;v=*0z|b7@v!lVuC4v zUN~nN0-=3R1aS*launhSsV-FLT6fgmfj`Vuj1kMeoRH*1eGfQ(p@FX>2px6XitQ7D zL|9jqavF}P<+c*-t*yJtWUOctTSQC(?UH{u1GxgDYLJu_d^EaH=^e5M?G8_7^~1|g zExgp1VL;QXfxrhYr6AZEcqiU|RxjlLliQ1*)km-0?Z)@(bf#$#@<W)(C=mX7%Y8+& zTZdm=Y(uhy@uShB!UUzdcGMKa7dah(=RpkbAu2OfZF>#xgMmOieK8b|M`v3*fEIs< z>^NX6=r6Y|I_faZk%=iGQF=1LYQk%7L5fU5O;7h7Ij5<ue(f?rKD)+-(C5;fNs!$3 zx(Gm01>q{Xdj-<7Gy1zVX5YS`Lc!Ysg<zpuF7a<KO8ggH<SRypN3Y=hF!h&BFr?y^ z9VjJaL+yYUiIEmj1m=;R^?*tXz%73aTnv+($<h5xCtdiO5k>Ds$e4g)6}yEqXc91* z<c<keOaQNgZpx{gCx%Enw>3gff}>$KU`MdqKuspcqDdw^ENh`Ch=6Wyd8lv1`XE2| zu^a>eKWe6Wxo&j~JDoBxcG4GH8)YsonS|Q<6^oi1VP$jN1Gk&tf5er2{vUr_+D9+p z{iXc^|A*YCVaAh~;ASuH-6pd9?Hs-=e|flY#si%j6`7OX%QO^--4#YK42W5Psul<} zpeL0F0!zX1(PLn~ZtFF*1ob)ch5MM??uAPP@5sHdK~R?!sI<j&AJLJ}jgcskHq?Dd zbIvB#MrX%q)-UBbVYtt%mW_YCOz?UHJSq;Z?S*PeDxT+Rdiuq7Gqa_g?Y5-!tG6G2 ze0ojS@#v+yp|-W3u4$Vw`w|?qh-oGc7@Tcxd@E>`B1PL8?L3eW%n7QBgCWRV((y6( z9s?V<QT?3iqjjg|*t<@s3mA+o1alC)I&h@m(6JdKU3Wv(4w}P^n5%zR6T=s=4z*l! zOBWp^27y8m_PN%liiJ(n8f{N(I?0yxwK4cO1qNo|3Kx3<i90$RV=>L)!|7#<^IY}w zc^cQ;w-u#-e10E)_#Zv4k6yz2BhHuNk`q2tm=>z3K#74t<=l-iz8#ZC48Jx4X$Rsr zWWY!PakWk<c?L1r321-4(dthQ0Fasku>;y&E5Y`2@yy*$Hm6uUWQgb;0RhzQoa`4g zny+D2Aucuuq-5A~lE{PcW`^K+*qY&{vqyCbnqfGBQr73sFn*8BV}VfF#k39(zcEgY z+SLT&<ZSBTMkwd)H}*gN+1|c=^CFM$(F^ygq+_fxz>_+LS{#2PaiV_l8O;va76f>C zL5S!Z2Cl3jQ@mrgh+?mWd@rF$&<TT)+{^t0T1^aljq<)=WFrCh4kV{j4XLaVcb-=` zhRlQNfRo=kqY-U;IZFJLmTeEn!g@+}g6KikYEiRcG8J>n#WA5+XU6=;GF{|rj&QYO zqU7nw%jne$O`m__jDkPxlPS0S(_i?XKfNd%eDt#2f`q;r%~r-ZeTz0DoQPZ3-WhHE zaD1e5)HqB)s$(9^Iu}ix=jqh$#a1nHtu1v<AEDqcfLj@f163QUy$)9&3Nok+9{5W7 z3U@*s=C-s%k?_hGL{^a}*6M<T{2`3_wCRwao(4MyO`U($89(rdnW&0(fd}%lS_Ks* z?{QJKqzhuabx`4x*1(;lExruogg6?D2+GF0a$&rG_peWH-+X$pT=?L%`}s9(KNa+W z>g?2y6A<#q$q`N43B$Kc{PN83y2#iWu#t{+5anD&TSltsu+mhFoI`JNOj`=bIKkPX zWkO(&@*RIb_rSd}1P1V*bnHRDS&8JM7w)y1K57}ca_<o<tmir2M7yfiKzrF_0;AAu z`Z>(x$;C5z!=MxigW9bSA;KFBPT88#Kp7a3(mjAnM60^b0<Inrxr+|G0<Rgq4YUYD zM1im<qE|d@4-<ljoS=$IhMJ>PQdKd;Ks>!wF13Hd5*RN(5+G}$W&>R#L&3T+>@q{3 zLhxC81OY43u?;>uk!BnCn||^){2#xpAKuxAuiC-?`0>YgpWgiN(u4Zw^?MCh0*)9B zG||slI&6h(Of3aM*9ei5TLmx2XR00DIA<?%bPK@_v8|083$GoWK^n8e-MLFYFk-CE zI>3MKLHy*hj$lq{0V~qC(=D#Va`#DGi3A8MC{Ek)ZmcU#*mH&^(q!pZ5eY1o-Ai+J zjO45+gOUv8;7wdLJuPNlIq+a=VWk1mZHHLCC(~@$9``-Fw>$XEuj=`!K7M@v@kQV3 zgO~31lJ>9K^lQY>W1$f3iwrSE%yX@I;G%!QyRH#m!}kuuRBvXj!xc4*W0z(1;f+q1 zjJ;<+vvmRzTA`pC>{BU*?YU#E>%?_N!wloz>kcV?01nkm4Lj1uN&(4M+E$^_>}(RB z7}MCKI$5;s>C)J|cp$}4z8mas(R81Qwg97!yrH3++j4I0I1sT+JkH(GjHeY))RlkT zIyrvx-hYq8!<%={A1Yqj_C9+3Zpq@*zkF1)A5XC@ARF!@2FC{p;4YK<>~>`7Xd7wF zYe+xf(lUYx6DiA~%VnxhUDISCCzXtSY8weL@pS0}pDr96qOanPcWTddmI>XKl<>h= z9eEFz0nPwn-yx||gnezRGjW8#SOb4DTbI2Ku>uUh9wahB^&O37)M=p$|D>p*VSch8 zlSF87()0-Y$qK|5^6<vg@+}qhAOD(O{PfC^=Fv;|njUF#CGct3ptron<1gS11U`|? z2w@S-^fJ{LQvt7PibM%kZzGf3xq7!V1FH|TB(D<NE6^7`?Vz?Yo34ZH1BZX1F5PBy zIa_W6Edq`ZxPqW*Rw!Rz8$qmRz~j|rTk$qoYWo@yr<h8sSnc>m&u#B{a9SPWb3wV- z4|*Re7pzZ3r=a7bYfLp6r+U|d7p%p(ZNvTcXP5Q|d#S<t=oP%bvY!h})+Xj@xtAeC zuIS&PjL{EcNJ3z2BsxqmQrUl|nYGgzIvxr8mPAPxC>7-#TBbfvWreS;^MHnkMMNK2 zmD`*UWXho-D8lDmVQK7?;a~`1P-(Wltz(}V1OVUZol90V#LkEY7kZDFaL6?XgDlHB zBWWmn&e-FGw3wcb#x`lloEi?>GaBz}o3ctzlz&1`#cdt<KmF{={;_}T4=-QcN3Y`j z)#Wd}R=6}7wXL0XhAdyM9qjgI8;B-O7Dy=E6$)@4un>b}Ik=yR$u!K6(juNA=wh%n z;BAhbNFQez7?O;Jni|D8kc&ZgiZahF4a_e@1YocY$kRC&&Lh57X<xccoWQIe!9ni$ zNUd7Ma=-x-6FClvFN1$!U}%rAAR~4x6*iEJ*3$sA@G98=v^2chE|I;<S~pks@2{}v z6ArNT@uk=CqnGbBtr=}ZPZRKRkk&CJisn9T6qA>P&_=ev@WD@rb)hN7L87xb%B;hB zOi*n)Q<IK4Ll%~VRGevO2ZWEYn{DCgr31)()I5##uEM`G@%Mji_>Y)n^#!yhKyO{Q zh30`{ifZ~WAQ>8Zczx5Fb3#;vH~5g=`V3D?1m<N8ZrHSJklgmHV4BsU(>#OL>2W3% zMp}Yyl@EXS`LaHL`uK7(;?b*j`>^h>8)KH^1|kRM9tNi*OgGU`aYcF&=fb2?2z0rj zM+k+COfWq+EC+w#-N~uZYR8zjFQmSJQ0L4>S9c^NVah<;3*IhF<2Iy1?_>KsvJK2H z51ieXtrJ0|0@^%sK+&3{U4p3rcOdfF^T-7D5`&}rQd&hPxY!9VvX)~U^nL^?_7q95 z<=GRB_c>E|EkHNnUA?`kzsT|*U%H%+UbfpZ@J}-~Z6tqapBL>f3evSe+GfI34^}Hc z_cN+6APz0q5!nP^;sASj9j|@>rAvI9X2FoSvrR}$&q~Ey3`^evvJwD_I>nJ$SKe6H z+lLgc1nGQG;@dh3cRO0+X8?;sn<LMjll@?nkr(oMZMO!E+qkfPZ5;7#r!~TccQQp_ zSB;Z}c%*-%s17__*TkXht9KXZ%<o%u(yuRd5(-VPAjluOcK1;E&oAB!MA6!?UA-zW z<cSf(DBSOuJah(@q0e5B-9$pnMimFUxX#+~emrw2Ie0zQwy87nxz?gCFdim#S>|bD zrUACFDC+>WcjlcY^joS0KYH!%Yr&uQNSlN&hgyGhUfZkLxe(m|o<~;{UzW|wlyX{U zNxK{ypqZeuB5-WBMv&OAWJjtiaRvt$6ihsVbW9NNMT>I}U}v*<wm6Pv)wlZEeekl~ zzjoz|Ln*+?NnVMf`We8gG&H4Ai);p2-gNHBg$)`lwvMy=VsNb>fH@A-Hs<r^DZge! zQPO{d>+~9X$AR4TwSPTQ3-J%gjdlxUJHP1|+N0O*K8E%MDW3>qZXC{qceLxpe{_2X z&)jn5m>ti&kgq;z?k%9pD55lwV0KzSdv^pHeYFPm8)qROv<95I$M7Dan6|Moz;Oc8 zx0BHwyd9GIRvytuFWb)yXP=+Wj3W6wT2FtxafA&ZHmCy%YVJ)v1S{7T@gBz30w7Wp z+s9t(_{eUw2j+O?<ZclJHceWLiL6L!97y=8L)IFkqoL)CIR($#dVaZH*1f(ecdkvy zbN3AJPWqhC44ux3z~m0rjR^dOxdlZFxD-8uKs7>X-KUiy2G0USm$Zz&I8hYD;T?ac z+Z8zCK}inO=J{#x_?PcK{19)y_G$jZd9j}V;H7&l?!awea6#c%V#IUOLxUPfRTyW1 ziNa3<5my5`dFe2aumz?>=2*a}>)Z!@qBx_HhOS%yQveRTdBEO?@{R>B?Nq+NDm}a9 z_PhKFQU?g)Usn{tT4@`K&tk9wr?P)q81PBe1`ee_hZ`?!Zoz0zT2|<2pb`NOwn_1s zn8v|tjCXamz)iDUB#vW9?u_9+TA1I~82<J=KmB|5qz5nFYxbmtZjY=p;poAxzpV45 zlip}rUEU1i(6;$-3tAZY#rew<yEmP*eGNczf$etOKh#hiF+#ORbOEr@6moxBMJHuq z03uj{A@y^+DI$Z|Xk_qoP|f;66RNT(4v%$VoX>&d6;sq0PPkOJ;rL^049nvoSwrB+ z=sb_NrGw5S4lsPmO83Qyt+lT!vULVbJ7A>VmIeRjySMLOlD<BA)$Zbh{Iw2feYZ_$ zFkA73QA{_Wo?@;*uy}&&Ogev3T1($0I25V$S-u$~ytvt<?I@nih5EIwfdT$zmlz6$ zxLjb}Pzg}#Yzq^Bs8-$<i~xnlbj3^&J^O%<f1v-8)1%1j0G`u!*M(klu_y}nI8`3x zo^x`Wu}>!-D*zsZMk=m?Oy{9zBTDV=JP^mMiDbRu00=tjomld>Kh1w!#QV2zU+%g+ zdIeuA1rEqVlp&4cAm+1Xr=g<->4Hv|nq0821xUB0qa`qi7MDywxpAhq#6Xao;a+eC zIzDowP@aaYVo<;n`bJ)YjY2=IT6S4?oF$TGj0qUV922hUMk}-qdzXM%eD=PRzz!ax z_QVOkuer6jBSYO{9YTL((5RV+1w56B^If-;zCmqTi9;Ts3vm)V)oHUglDZpw`^AS> z+A)t_w)^b%=LZ!@M2tXICH90%nsp2JOSw8jFJG==&WA|Xa@UK#*lN_!tkd>xk*WnT z4vhhkDId0`du<A_aiks0C?%hoJ;nmFafxpn#BTRTbfy*1v0;Dfl1GBjan{D1({2dG z0(-wR*O<bvei0Mq0VUSpQ*9WSMtdO~LVjTm0nkFuf7>9arHHJ}cHu!pjXA9u0u_7d z?Z@;Veth@l|N0Sz=C}2^TYjG+eDDIkwo8gWiq_1;7X}&2VdCKJbr^&b>WtcRT7{~p z@HO5%jxR23;WmFnIlGQ~%Ys`q3iAOSSvaOPuW0m&KK5>FcN^$@U<_U~!9KXH1_B!e zXxSi!46Ahvs__T~0(dXa$v}7@pJ%#h?7}Ow;f3VD#Vr>dKsWQMad4Jnk-T&P!0!mu zSF^l>ODUc8aG}grZiO_;Z8h*0SAhFP&CX+&?e?|1zGQzL_T;n3wzmUT0Y;N2?gFl! zLtAm{1ConA*2oJ10_7Ap+-O@5(R2V7tfAf&5C*~VvpEA}9%EGN(zKss1dpZ1nqDoj zW$U`{46taQAT30OktJ9<_UuML0Uu=y0M?px+PPxV!qOqCu2tfrt?Im1)o7Z_p`tmR zF|ge`X7GPE6dscd$NzyuQ;D=@To~phox|j|A^wX`&u`znv_X3GvfW-z`D!7=&T0}O zT(M!stFCa81`CEbmJRs3Ihk!!tIUp@(K-%WD+-)XPWL3~*uh}r8DnLFaavr7tvLm+ zkO|WsKJ2`7p50*;F~4oSoU3MujuRFN+jVM1iS~c;M2^U?J;3|Xj>QE2nk60f`6iku zJp?0o4{t-mE#O^*uh9jO9ZSYY9ehyI_c0XP57_Du4EK3%zoNhX+)#Vvjr-`e``I=9 zzhRdA!s~}tTvN_Y4kF(i4U%L#zOwH@O(7^H!)N>y^p1uYu?;#y>-br)w=hsnVV%_G z(mj8Zk$q26gJfX9cbX;L&%xOc2FP<t%I|V!-_kXG^xD0aLkc@o)wPD(HO~&oMX%Kk zs0l!wtaWBJR~p!sPb6j5h^7tMQ#Xn;x-F?a4!&#$+$sWAZIP_V<TW693Z!Xxt+621 zJ+eVtr`uzxr(J{btzgLRmn@qWW=8tKtjvE20wbdz%AOnhRC2+Q<N%NW8mHK%8mR)e z<Q6!Cs5XfH*a&xF-{KwclqO_3&g``hqzz7X3%~l!^P3+&ysf9_Kfd|5e|!7Vb$#^u z-S%L<o=;g3Cm*PIU=?I0H=F_2_Jo=VgJhU@wY-jZjFMfUVl1s>vbI7p=3J)poO^#` zLQ=bpbs#{{rW=08O})pphbLbJWZy!rrtEgxJDbj<?6t+Y2Rfu}R~?|svw^s%fQKG6 zmvV^fI?r8>y*<kH2^9OD*=1skA#5w9DE`BVh<3lWQ$ceIDFmyAnG|O9WY1`KMf<R~ zZ=d}Ak1v`gAH8<3W{;4hh0vYzOr3vmwr9+a(Oyh8TTU1VFz(R_^L|Xk4&yPMXfkvX zr*E2TYPYi|ut6OeKTM?|q@ff0hSP%A@#xy9wT4unEb4K4GIbGZ;N-7mC+1!m8rtTW z3))XG-WVmKF242*9lp`oKpjz+`wB(&C~_CcgzgzpcGq>nT2^1fFCH{7pXGlO8rOp0 zWUavQ$8P7^{{Fi{$QK!v=Ql60%^tmc_lf+kaLEl)vY<mimWQYTs(i7w4$A_R$YjYl z;IB#^wT7?z1yc2uTM52vTml0TCZJC?u01mFV4=j?$FQ>4n4~OIVNCa572CWmCHXb2 z*(wHsILJ#?fHMb^V=P7|T)Kby)*Wj?7TZZF7^q#+)eCmYGDG-T$WF%UOM!Am%6BG+ zp`iX6>Qx2smg0a)XRa|$^t*EJmlNvq+ZQ`Bk6yf=U)1r_chwclQYyuvr_X4Jp+Z?O zC$b^Ra0XQ_U(tr9VGMh9@4nk84V$xPx=;LD?%B3CM#p2+U~;FqF$;f>T1oXpsui<6 z!=QOUH|e%%3ZF^v3>?od`*LDX7XzZc{anAWLT+?M_dyL@LGKI9TZWPDLYnu8(iuQv zECwV6?DL}-n%c$Vf}H``x<fQubi^EnPmb+(@835co-FfYy;#D3^xFOWn(m*hWD_Zv zYKM1WgNCVP2S7PzEvSE<=4mdY;aCkUEg~c}b}mf_JP#I$4*bUfoQ%O@j!bgGKAb3- z_n94DsOn0f{?pn9ko|J&+-{GkXkp_3khEKL_Q0GznoZ2Y-p6TTGP7iA!{Bw|haJtx zs?$PL-<x36#9A6^Fnu3Ka36TzbAsWjkYNoNiM8N`MagF%u;hQ6Z?Ea!J^x@IKRx-6 z=e&p_eDvzw^FqH2L^UkmMD3%MvhJ9OZDC>uDELE3YeTjHm;wxjTQN~@i?E{yY0b%w zMkgHnm6$u+Eb9P=ndJ+W**(Q92SG%EZ=cD&<am4D?v%D)0gYoYx}3oaDn3jtTIyWO z_Vi%J3}>x?64ZZ)nr_Vo?KND@N{M##Y0;`-EP<J_?Y_t5Lo(W2Q5AzLTI;7Hn6C); zK{<E(`hD~KWFJ4;pWi%x|Dx{ov5R-R{q0|h_&I7pG~3oV9i3yJ**h@abHPE;=g^Tm zPaLPUt_@isGy+7IWHj5eRFIN^rjomsdJra3FqX+v2i1R>BGN|JzV_q>oto*AHrws7 z#xVFYk>*$}C&GOPK-DuaqU{UTfJ@#a&<T17%16BLU4(xCBa0ACNy0NAd`6>=$+pxs zC?`Bshyv}6pkC>oh&JGzXx4QE-;PB6_PqaC-+jdP_bI-A^Y%sE`h!>Set7 ~Dyu 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 uBRiG{Vi$2`4vCL-OFS^ej6i`j5gJlvFns$bSo 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�IM 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�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 R@aKQve*lL&7lb8I3jku9xzPXs delta 176237 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ð)FZ~u<U*AL^~KyRLb_?>pDSa+Uih~x8P z&K!*j=|T!{---djEr`6j(^#oA!vx9PW`SBO0=PY)@Mw#-=aQpR2o39}0{f-coX9{W z;>XpSJIkPd{v`d)f2Z`Yk6I*m9?f6LJpE(0^YryleEoqneR!Ti=JJ6X7KU0%a@6Kh zIA9fqqK=U_m$O^jQ0Ab-pj^5<2VNJbx_d-`lhA=RfEIvHT}c(T18UJVgt}nGYjqG~ z@d&(gZ>jt*2&}nPTt5!1x$j8+N@nSMFFyY5YXE+Qi|LXme-`gogRGOaGiKYJ>a;#Y z>&$^iS1UTPA^fBSpe7BI0E3%#Qp44wdF4><+jQo}m2b%$cx~=p+7}x&D6Kk6n>6zv z2>W)&zq60x=TFf;`h=kW(XsQ+gZV3&rN4PIOMf*>sVi_Ox)gFs6tSe#8`HGTvIO@9 znyuA=XTBQhe`Cf50qcQ&XvJaZ>09txv|t%n1xc{!c0lwTTFb0xxL-=*9?)W;w%pvx zZ|~dpcG~>>dHUXC$H?t8z4uuD$`;d~KL3#WuW&J?R861U+pu+VP(!n4(?+zgkjui; zo)jLZ@77FXpRQ*uslKDlu}=YspipVqv<;}!I0HpLf9%q^1X_KX5dd+zcdORA08w`G z*2H;lrTndG@JdDeGx?~EeeYp=LN)lNVuIgI#RQ_%PE^$BicGUwIoPF_jJf4N!ar## zsqdBz@j5Hd>H8qw1Zk;^(s7^J3K?yKq))HGtl*6D@}sr2+qN-ggdRaZ1X*C3om6i# zzwa!~f4-S+f4KbPSI<u7N6+%F|HL0rbniWSPtH2NnRV}AHIjNlxsHH4hIZ6leCDVj zh>ollxc>?R5)^Z~NHAJxrwA^J#a`n`APaqt?%seGMv3m|R_NV9aN9e)A#y#uw~Vbp zcA%v{=k~;SZz=xGtow_uS@#<B|H}6V`RwCYe=nbZ_`~P*c-g!2Kt7p0OmCFK+q)=E z6dMarti^m7=&fkyFk=ltI0K)AvEO@}Lx?Ob(+$w;B|xPGT2X5=z$Qbkw*1)^#Y~Ip zb)`^tuLgBB;WJo<<W(pW`mjd`@q4>4ZYJPweko+)*{he1PxDbH=H5g2Wd3V=gCH*N z2;z>LyKl&n+LzI$0vdn4ucEAMdk$lqXhf7O1F#;Q6bHpIsJVazgp7zc&177AX{@nZ z58$S6*S<TO5N~(fkAIZgKm6gdc=6*O`-hKc9rqr+C;NYN)Bk%be2yU->f`0I167H! zryh{`^XwKlT=ZJI%PcM0teubu(3<wCp~yIzi#t4kT0^%DAR>QH>=Sd1*9V@p#wh&O z?JRBxlMfK7sCd}JzxcIK#Oa)}UI;FrMYfiQcO=M2pGIT&qTP08>x0AcN_HybBO$tP z3>!SJk9FE<h3L}?1AFeuAwb@MYD-9?+T1+)vQ2Q2sVw*gZYkn-w!YqWynp(m=kZ8i zaqlsEa>n<Y8UKHk1-jRUQUJDgo-@kl>{2LQ5f}}zqmME70?pb+=fl&e<p`;P@<xO9 z?>H*Zmb}$vZW%@^DT7D^6iP<^#3__UU`-t?IO1VT%}ROrm)_=#|E=$02%f$ENdL(D ze-eO<FJAc!RWSEdVIr`FI%vqVcRAWOIf`*w*hV#aAPs*I2KsT?3tA!@IM(4>P=f2M zv9C*M)1lrdN80i}7!~;GeJnxvVCQ28G*3{7{E-6W-j1}}=VAZsRX*ZJ-h0fRymR%N zJJ&lXSnqkdGm`OUD^yrA2=U4zm!I5pP6r>I07E}R7E@noxyRa8jr!=|F?T`2S$5!p zPf7#fer12h7F@O~2I@Z6nQ5Lp#Nb}F1y#gtBk9gwyPLW8olide==tNY>w6E{lR`?m z5mLT`_p2oVEO!@Ni)DKBnz^z;^#U18D6%W2H18p$IwuH|5y(DmW{{J1-YAMd#1O59 zEU8hBOrbC+ekM+*(;eG#$(lxI?BS9TdV9aRcS3)~)9#30|I8in?2}i|KX|mz-Fpn5 z*!cVV^No!kUw`$D|K8q}Z<v+lF`xVHZkkW|++R3pF4p=eWANokJi!$r=u}`=C|Oh! zHU)<0LqZUOf-*;HfqmXM7D5U-lej?*A_aQAiPUa`u&AE7D?uzNLPW=KT!Idw9Hy!b zYU6+5Uw)knvvelp>?_mzG=zA#R_t>?Hkpv~GuND_!9*v{BrtZMcmXgNV=SlU?v5pz zMkqyYfm|`Dx^G1GkQw6R=NuC?GrBZ@i*r2uD^K%n-hq&YZ!;sl4Xpe&R^ZFA0$)#H zrCDoHW3_T5J9|uD+odf5vuUYq#R7e3Hxz#pI9bKbq=Ajpa7|i;h^N>Kh=85QajJ<! z3({{=gdv4jKhSXCNWBY9FFPZkv%h`L@0<?xb2hk7o<DsKy7%ZkGMKdY`<n)nPha@v zC#iiSkIhd+(cJsw{N?k|bxOWAiF+R`zdh%EJ?GqeC&hpBg6kiDv|ATRN8e)hqPc(h z>>P8?gUQuXe9a}Cv!=|RlxR`ez^=th&DT0wr>aebs1cnV!wPR&2wc>w`wk}1nPSp5 ztb@8DbMMkU&*vZQAH+xdMS%6U2lsCe?%y8V|9^XMpFWeC)wqJP0-%X`3Z&M61e`jO z^&;S<9x<c3hVQL7L5?;o1sI;qj7)#6+B`!&C@M+8z*~DcqF#rT_CbXs5baPvT$x}! zyj92DIm+~wVTC3AJg@r5Up?+y-h1qx(1++7rSsQczXgsXT4ao{MO&EeK1)Wc-MDJ+ zHd+~bW|`5RV<BHjI_t^8vg>iKNKxdWE|~9-lrlY9J13`h4;*8gkj(C46^VZ~6nZ0D z@wc)c{?!X7yBw9awrugh$!-|%id@6@j@D__T5}-~l3lRy4vI#Kpkd;wX~iK9*LM$z zvraN<UMdg?s8Ou7dYitHfUSJow2#4NXg5bZ{A+j@M39zQg!h;k+GvfFhlM<N*&1M; z$nuzi6^h(Wt!gb*$=L{cp96mg#j?ZOM$szswaGva7{#;>lxdK0z@Munz9&*<$BGvE z@UOp3nDp%o|4lS;-+1W@>U^Mq#fD95pkKPX&&-ntkYr5Yfv)v(698r|v-~gz0R2F6 zvwJ!nQ6C1t|C~x2XXYk*;xU}72^4pv*9FX0j3mI`&PIcF-`?>>^R#~r-zbgpIfRkQ z)rBD(u#oPntLVnJgrNzM=@amV$$k)ti?ZfnUzba!6RV$q4u<_un<|7AU$Nvv8KJ#6 zBlXCdEaLlSsra=YKmYLgYm31x80XI8_Q*&eUpNN7)Ybjo8!vzLMS}z7;-uY3n>#nu zq?<`sZe)c(qa1UtBi(-pbsAimS_-aPV?kzhF}ZzglYUOKb`UuS=0C>8WE`M(MPilu z4ozJNFCOtsIRI@ylE3osZ(Qtmq%SG7%TT;7pFSko293W&f$Kk$x23Sf8ZiOxUo^%R zKslG#irSO5@Kj0bJzbDv7fY~^<1<1QUOGfqh>2|T<nD-JZkE9h|0dpl#ohoRdBVAT z!C}egH0zhuu#d{kv-<2~^+NxaNlWLP#n)VE1p};{?PtI<dqB7`fJIKZUXmu4j)K0@ z?CbdHz1T0O&2~Qg@Nd0_zixy(LHD1?u-k;Y=2r6AaTsMAM<a*~g(%~F8ki8qy%UVK z1_gL--Bz3NG_*i<fcKDprBkhj2iq~V=(1oQtO>1}lTDpT5C8VX;|6_ME*T`YY&@45 zA~YPZ3>$<Nb}T~?Wt_Uibd4N3V*r`cM@{R2uxog2sI^`s%t3qEDX>!E53<n}=e@kN z8jzI+R@7b(|IYP^j8L0f)^21F^3CkUG(cbOxsd4P0jrMmd5$=L07070r(x4s{S1Y6 zq;=~7KfTkC4b?OpLj}Lc@{zF^cNK1XLoH7@ASk9CKm5C|Q|xuG)B}9Ns7brGEEH!{ z&%mw}34i-3kU)?+5qpend+RyT5y3*ah7&{UK?=P9LCH59(I~K2&BZo5(kUXXIc?v` zeFSFLnh*cp6<EiA8UvehdhkJ4UbY-ni;zCN<>>voIk(v%h=p;mKoW~glVR;FnUH^T z4AQE(p#s}OA!_L1HIy$=0IofQ2G~8-X7$*uV%5XH|K2+gruGfVc6*|*aPN4xPwy&^ zOlsHl6U^&<q=sOTIl8xb!&Gkr%e(GqgXR#N2^$W*bLNJB?`RkqN|h>ev*pUHHGMfl zkn7+pZwTMI?U8*HU^howc?W*%*l2()dp`Wx-^8iSx9f}^Y^d!n)yZqJTB@8rYC=34 zIr30$0&+V{swV51_(T>2hy82=xTVoD0S2@Qz!axDez-M9aPR@yaG;jI8Lsh$8wWr9 z2k*TDci)G9|M0yZ{PDMUcKp(j=X?9bi&r1Ndg&j1ab8qCt;NRkk7OVgB_)I~4O0=9 zKAKg6LQ>LJ-_^@?w3%KT;Z!-id@llpEqv<iwMIundIf5;Jy-6cyzU9ROKgbc!eyuL z!MDEtdnYhFl4HGm{_IabY6abU(4OET%MBO#EqD%pa4POid@_gv<%4RJtezeOZ;v%L zM8s&t0;h$v<pI1BNb*{BWX=%NjT@3X42(hOiS+c-XI+0=9#GJ&)_Xx3zj1;gHw*4G z9{!`RLH*qU-uLW=y3s+~WHj(gu3pXIHEJZ!)9A`^knA*oHZI4aTFqjwwg8!vH9Ap` z*o78<U*7_<;yR!)+15TygqLp*_m;TRz<qpsMY?z9z|EBZ?(=x@;ZL4@@ch+d72=%- z?#WUL-;`3`1}%52uw8cYz>>)U7K8dFThC_dTR`NPh1nalpjn4HIlWbj)mFc3^SsAK zj6jZx1HYv4vOY=*Fn$y8=&BKWuEUMcPM86IpL{(0$6v#=*WM(Q!2|23HyHI>w=s?j zy3p=@>roi)keaf1z`M_lZFhp%dM|<=IpH*2qd+7}Y@9BE53D&*@djvB8<W?LsmKL) z1Q3j@TZCy9d#t9~jGID=8Y_Ik$6UE|8yY4OxLVuP&9WfQBFCv<fRk?o-c_M+6iNtx zWuQ79Tyb#c*=_E#jv8ai<FM7*Ni^WkCHsE5?f3g%rpK#C>;0XF?&;Qlzis`$je@|v zd+p!0{=d%F|GgzQ-!KKx<InZ(BA`z{*DncxUVpHb6J)Z4XKsaT>0+p(uC^EWfEP0= z0VE*ZbO4no^t73D6fc0;j@5?$)vR=XkP>Tbw>skjX=oD_T9|qyxGXPESZ4xu^ZoFj zTvsP5Ml8dGhYO($LnFZ#N2ZJnZv7NcNJU<{tJZ3Gp1bt}GtF9U`2}8?h@k*Q&<$0y z)vX4dV>FRom}}SSOxvU#N)iD%No_s+*{6exu%#nR1(Alsdp1s@-6^ebPv*`{TV%wE zkTb;k@`Ndv_DHPDE`lN%^-j1`B!KNSQN|rtN)X(tx=V^}%kWS%Q3#eG^q8=c$ZaIY zz2DB0t@2MdzsIv4og&z9F-1e$m!Y!)6@N^R4*U}?L3_%oSt#hc8vC)RPO~={`+<cf z;O9{b!NIh1$K$@PhE!L}n`ZgFbq3$c9^RJhVY4sdm{yu5M-YLul-Hny|5;~&=mW=a z3kLof)dAh;+;c|{u?@6uxi84_o7+L|bO#h#t3&j^$Ary)3y47dp#B#7sP{8VZ+{!x z_kKIK#>1cYJg!|e=*sYEyn5=Q-On%ynsj1T7g<Wk>ye(ZkC<di7qX!PIE1y+H3p@C zzm9<9#;02w3;h2x_nxR;b(=<V`jXPM4IHp&{qthtAAe}``@j3U-+yT9)Bl4F?Agos zR@3t5k*4Jj{8E~hzu=LW<+r}~sejDnn$9<W_wyw%-+A-)y47R}no6Chym@3l9LsU| zcUgJ*=0yww$pW=@^641(-OBcwjWFXIj)b(&bW7?}CgL~enKAd7=!M0ML`NnOX3~*& zW^H&p5;w|p>oN^(83NA{(!`VJ49UGaFiMG%O}AVNd?s(0e0^Jwt*b>t&3_S$&y#(F z<jgX$5bT_-(eW6q#9~!W<+CTS7PF(ajx*vdkE}k<pX7(H9#<;wJZxXSx&C#RRN)7o zz16?w!;gOaSMp!m-{<%FulVeP|I7C$&p&we{KLOGUi|nYfAuFn`^SIk2S51quKU~9 zfAA*|0rA_XXjgl~3dp~F0e|SXe(iIl?h_SIQ9g*kA#`79(AJp!_@eR@9jC43gJbrE z;zdt}T-ExKxFVJy6h#FXuq^7+oR!5~QqaI)87tP94Z47ZG7v7Jb86(Vv2C`8zwv7* z1*IV{lF107+(R~(O)wspHo~c~Z}Yh>^YXOvK3fYNgVFgl3$&NV7JuG;3Z<_FEFFUa z&IXvSt<8-O{;P`UszD9$yW&bH@!lSw?i@~a^DzCvFH3}Pxi5DfxhH8ubVD0@2aVXk zylg@b0ZI=5@Dk|Gz;P-Jj3_S@wqwsSC&kSNXnB;#;Lta?+ZkZS<6}{HPMzCkMMIDK zv{ijb@<H_JoHe7N{(mfES&U=1Wu<#R)wj#{MdbM5&pvttUAgnHJuW<==0IOAJidP6 zs}~+SI7%jwj#w2L94LIDnY1@hv81E%D0Gz3_C6(ye5x_6V)x~!G|*^gRCPZ46h}Kg zj><TU`tK~!YG<wpFCm`{Bgjl>2yDm0e|iZAd9(nOX8Uk*YkxFGgs-EME<AH%h(FpK z)O^#9YDQ<C7G<R?8w&gp5Iv5?1MO~U)pGBl1NcO#5jnbqOPrQ=ny@bRVS%6Y@Sk0} zm&QdlIV5?Z;B8mXunxMUXDA4^(_=usz*I4MpOuOOXZ1C@+QfBi!9Sxp!cfkv#cfck z6-*Mv0*U56_<u($O(~!V@tDWk!+(BNb1<81wywoH*NJ9KD6e)Dvj(a|XYcYv#?#z_ z!^1%A*b-(PZJ%a_+pA-0dK+61rG(nqgo3ZH)#2xufXb1w91;*G7#SCP>BE0<sc)Qi zC6?UDxse#LSDOi$tpK<&dn>qV5LQCEXk|4;_KGKiIDe%eB}NLL-2>4pyW5E&UKWk| zL;?%}aLp0Bo#^dg{=3NRwMRVsmzS&+F<0LB1SH8c)>@JZ6_d`eHI>_WozpkAR@CVN znU0O>X?rI+8oF8q=%EEx*%aACb3oG8MAt+=8}Yw=pwA?UtF+>t36Igke|72P*3Md8 z5>I!WEq_aWj<m4Snvv8;BT;vOMo+D^DYZFg&v{xRAv$=jriQyvdO_88_B_1+7(<1! zT}((j2H3HcwE<Zff>@`whyVIgsJVlZH`^G@SLj-9L(2;ik^$-NxWu^GhncKvPR`w( z`P53oj~dZ%%f|oK$<9=*vqV6{ymn3P!@&{Tn}0jc+?GR(Yi;46hyUiiON4Gaa$UM7 zrF5}YTTuYZ?c#e|NpE)57!Ohlq5i3u?yUuq<9c{BzF2-0Ix4)e5dltS8=~lGsi69h z^~sfs!x>>eWBU|+_;25P2hd#)|J{2(_|3N`7WrZ$`oo`tqJH?ZFUdvbT266vBpRb` zV1MdCBB)rgSDt}6Xj5?|E-UVc4k>iOpnnqEqTnQ$FN$_@p<A(Io#rU_DeLBprARd> z)6GC+9Y!!Qb+PmK<al2?-K`VhGiu<={9*piBPYV0$L<MY)SD0=em5aLd(3HsE=a>p z6}~08yyF&XzL0p)EK+;x+1$4qA~RHS9)H<Rnbwd$ipBx5TKZx%>yc!gbEHd5A8F+6 zVAO*kayim{A}mYjmKb$!KHP1Q@cGC2JCCFq_a3uf4WIJu&$U`JTCFTK9F0WLUn1+$ zb!`B=x)gf4L8B28;zahzG!(-nlX4j9LL#XC35%#0Y`%S$n|FZf(HiVzJ__H&JAW^# z5#oV+$8DSF&ghz3IoyZ-;fv>wV5s*Vv`4oTexKhYBYgV8yEENBAIe|9_Sx&t@5krc zEIcS{lXL2xNrx9t1on-{zK7Zg6a%BXR<GG}pjWsF&}MBdqsOvY*0)1mGGiCxTjFA5 zkR5lRgj)5c!Crfy$6mo=?Gn%5mVeIg%`Uo`hQIM~#wRcHwUzrLe*y}9@9}$L`Lmnl z&)&)9PY3K%xT%ztjgX#VqZhZG3=(B@hcs>*4oTU`so<f617m&~`qLNW^_9Fg@8%(G z=W;)uXN2KmQ3IBmX|Wcg4UCXXkewfaaqnzte6q9pN8q}9_G8qtpFQa~y?^&0KA{$) z_gUXii(N0gbJMRES0WVGks^2oWLjo=;*cH+VK~0d$u(m)Kd9fHwqxy6LS;jv2?C~4 z*>)-f;<YK7Q-?KhXd3#uY$t^}qImn91rO>$Ywfljd~Yx7?MW|w<RAQ*N21(2kJ+Q8 zZro_m$GgeDM`^=P<Jk};Pk$@8kKvlB)cY85+VFACKpyj~R*Yf_ghq(KB7w0*&S6~` zjo!zB{)64U;O&BBapW4NF`aX>%{BYjVhvTpxo!nP_jWAb%(XxFB6sKEdy+^yZiuww z-J5n-1&LVt%#41ZITg5xWx^q7TiZsE{X`8fMl4qDNN52vr@U<>J%8HXfK1~YBP(aY z05G78%!5RV4sUcBX(P&s8YgO~QF?aW=4v6;;wUtwjCxW+)-%fl$s9si4!NM}>A8=0 zAeA_gOhwFyADow=4O*oo5v#_|wHh>h&VU-Jx^@@1+IC35k#IR{qgh*6OK)3mKYI1* zqi6Z@<%^e(TG{s=xqn|-<igo5Cw3IIxv4KXOVH2|9q4t!|7=QgdyVA~2zNyB;l5=7 z<B+2ad>W&8B*Id2tXYg|>mh~>N~+6X@(zdfT<9_I#CJ{cV-NrR#Vdt@*f*?q2=5Kj zf~R#0tc%P&xFc_fAQV{Mj@Twg9*;C>8&CC)ZN8@wTki)E7=LF~pcbM6zkaNo*ZGa$ zd75Z1Knp#>Q;i?~2fT}k0`#g8NJX{M!(%{KVF(Y((q1-O>)qy+T?o87LbFFqND^_F zV)TZ#9F)h07!f1;Xf7Mpf)3g=HBawJbs%f)kcvZ~)%~=5_#g2uc-9298(omznKV{( zK@*BiV`TWC)_-U8Dmo|T2wKI6iWxek4S0nG;#Gz1b4)vAmax3kBwdgW;<pj6xowfS zjJ>xCeg#a?hyUqv0O#;?aQ&U5)Q56ZCas-tcoN9sBQ}lEx(;3&SxG=Hv@qUPkUxik zh7vv(XjzDt4KlFtcl3=K>6ox^!&ttuQI{ja*iY6O=YQdUe(wk0ecS6HByc$R?iz8r zQQyI!4AinjNVKj=+ey-)ojbl`<8|mza&KD`+Ed?S;ASvur%qPf+GGGgqX)TqXW;UH z<2~Rr271^vd-6Pr9=J1!;MR=g@#5u&&wl#Ex$oWs_h>ns@ADh^1Fye+=QiLIqNPo` z^rNG7OMen7tt#{YBnJg;f%g=u5oXqcxp_j{cVIErQdLf{1z{yZtqmE=Ih3+mV|<Ig zQ<N`iMgtY#_`ov<xWujG^v=+U+dIZJ;U3MkJCE6;8|{3*y&-$~&ZjTDJG1Sxk^D8( z_pU#F2IwJ%7c)=5kXC)|0jndDaYF`YPP9=GoquNYczVroPDHF2Na>Y9n@%j<3ys^b zs*U}J`IvNcld<{u)T%2PWh3RPFdw=C=<z5>{m!_NTR>0#&huB#e)QtSqxJ6I<Mw0> zLA!||cn9yfaTE%N0xH4Nyi+6v4j&T_F9XKYXz4<xtRP~%$)cUq1CHTHLH|?=dj2gP zYJcH6jdvW~OtepEZvdm9syoStLAyEuLFLYm*1LOyWp3u%umA9a7aLg6t7H2}e|7J{ z`=*8qc8(K{R??{iI$#TA(S@)t9z2j9-gM+?gASN0aL1t#2C1_YFEDZ^qz}nXU<l@} zOM*YAOxZGbo!RGTyrKFmB~-k6Q@9`dBY%g^oe4g-i`>VrUVQWs5>+1+^X@!uPgGUf zP0r6dnWO4`w2Er!>}Ri8TZ>tFXU)0W;C*1H<J2|L0zGL^<*-gZ;ad~VB|o!hg-;@d zp+|jLZ9{jI=WK|8^6b_6xx{OUXnBEXPi~Rc_hvOc4wX93<N57myZ4|yI@Q_x?SD;i z>8CHebJK0$488+tZ$2`cBW!**m4?W6LkSI9oY*+YqCnR7oZXT3eR|Hen@CPh)mC#h z2zx<>fL$bLZ6G|(<wPfIGsSr~ra2u}q%Qn8H~PNxrkm;Z`+oYUc6aXqd+Gu)Z!Zw@ zYnp18ffmbfYi%Xg-y>dvAh;&s(SKvIoG58-3M3}$6=581Y`X+!X0BDc56|95o|LnA z5>$z&b_6JAw3@9zU2V!>M)iEOCCfC|?S6RgxASCQ^}G9%s(cCO{S&@8;zZ>F7LmQM zxl!vU+*&Vzz4@#@=N`%4J9hhpTIW8&dk!hm2H|cAfh5LZh>;uuy&&3jF@H`$W<C(a z>x53Kgp(-Pf}CtMZj7r_f=mXAtllc;Ip&IPi)H6VOQr-j<v9$tfW5d3NYd?!&d73G zR5W#-m7CnnbY6p2fc=lTqahyvVejyUkF68`{>nD+s@o6r-f!p05A@eRc~#Hmv!D0} z&yT;#Cn*^dp42{j4-%hbD1S462kjH#%%kwj)X9b`D13}kj#&xgd^9TVqqzYoq__)Y z&xMxQLK<@e9daX803LJXG-KAH<h*3S6nk!c<s%938TikIFqrddRv93vIXkvMkoTYu zRXRLd?wN`LI?u)iF#?f<Wv(-+BQ+e3AL5d&6HZ;Sn1YN^%GAELXMgQ}eeas%mX2}n zw{u&I{DseFiw%|ZQXOYj@6MpUriYmYH4+gwA3KK((=}>&FmF&zYF-@|*I@}j#%ZuQ zA_trS>X`5)9}uN*zwcuX^W!`RSSsFSb%0Pl`zXKjAn()rub~)4n6p=|s*LGZnHE>G zIO#kxSAjPL$8+mzz<)?Uizd~kl1m4Vf4D**TY>|8jv8mE!yb*_EFcKVnpCmat_Q3# znsQq<*>A<l_kKIKSKmM9<EgzhkyWr+BK|bjVuE<4UYA**<v*|&*~#HUv+^>?9MQSA z`xvt+%=1&Ix&o@)z_VM7JAYdTiKD{10|D;?F8dfcT841nrGKA$k^j_h4}?4a(q7~* zP1zgU@y#!P^S8h8sVVvA{^x(}(|_=bzRM5(zzub7wX*bP+YoJYR`3!SWwq_W%`dB0 z+vi9`AFA_M-^+b1_Px7qoRFxXqVwr#3H!yIT{}zxkl%4BtOqpPIDHNHU9fp0@&1v4 z`CW9wKf=x3cYnm5kd^lSW!~I(K7HYxyPqr@!f~za2%VutWMjkQxDN<su?*~@wvMQ( z4=&Og@N=O6k<jOME|3}*y5GeT-5As*bU0yD0;`2B`X({T&Qs83Sm(4MLvP)dccw_* zx-CEY<ino@KBU{E+dB{26D4MT|JL6A4p#f-8A02iB!7P`$BbZU#W9+qnznVU*qljc zxG+Pu85THW9PDx)F~}(_xec|ohv)@5+I=@^NL9xN4$!Y##sclkQ*bWe5&TFre`k8* z&2;<T$6opJ+3UUJktgWRL-)j#doxA8zndxYMk;gZS}mg*>~$b-5DtlbI#egDavDU7 z#iF~pwtwMfVDhM&v<8I(@wVOuPeR|(ma(asM2B>@XXk^^iEMbrfl}Qa{)N`*)=z$K z@Y(HA{nd|NzIgTOgM9u7WqI#`dve0j&4hagOMXkG`pLD9cWW>Y?+rLvslylA0H<h4 z;JA7Cf?#GJv)=8r(~YG~;b9wXtX&mtUZ9v6t$(k@3&v1|vT7_HEbd)eF9+U9VvFCF z{O+CG@!5s{*W%-kUc9<C(@$geK7R4Z%gARx_K%)@{K-cjy?FU(3f_AtpJ=Mho2J@) zEA(u5UsmTD!^wv2hynCt@BI+fVmjtM5T6A#MlPc0wNd^6P~yUa8*hX5-@*Rukd`mp zpnoB3gHlr`cA(O>X^uYjVo7Lf+c@U+@V|T=?3e-CWlmKlJ_!I_!b0ZjvQ}T1z&;5= zOk-37$G|xpPThpw2n$!rn$-5NJisC?aHC<@;689gtg#?-&NGp6&_JfpJ=emv`>3^d zXYl3iJ?7(|KHB5&Jz`HDE9K@`DQ{uE6MtMU26r;8B|tg*$sio0$C}ZP&frCo8)ttP zQWw<xjn?7Z*z4NbVrv_MUS+~Lb4t)*7dtM-hHiNu4RpFS!3Y><oVBBA8xQ~MCDtq# zfPQdl>Vn|6i8|Vf-A$&#crRH|(19|C93Ysdc3Q_}QZ={UwgjMCkm4twl|B2M(tmZ* z+O!Y=i#F<2cw1l$uVPdsWqW)0-`+zE;I|OcKffWQ_hv<YL(!EosrP0s*xmr@fO5hs zkZeH($*rR02zL?nf;V$&U&I@#p+rvy?MUO<q2MSzD-`y)-uoT~i-@nQy2_;Mc+-VC zmG?}f#>wY>oWJU!>HDp{Pp`q127m4T>p#vf{&?Xmf9X`uUw}Kj$@R1_AX54afzrtl zWLLalh^1~9?|M3Im4LK;E@@ZjG&jDygl8)LLe@k?gtinIz#%+_q#tdt*>nqC&70P1 zIuf!-E4$&4bi0?{8^QEQ3;5wrU_ScMqjvJW$L*V{1%zTF#_T6izAAB#Hh)iO+BqQy zr=^^2T}N{)AY6WkuuT^4-Vehrs|6Tk_qGtaePqZMv#H=h(h{}Mu82D?0F;`c|61w7 z<95xuH*D)>zWvesosV98m><4+?jJnc9)IRV)uXfAok#EqhRd7v8h$tHHArYunV@B* z)a5o!)Cy8hG*n0s@HGhn1b+&t2IB<v0d_PjP5n~arL7q(`^;rF0x4iz=Hjh^ZDM`T z)(O#WP%BSj>{r;%?Y1I)Z@}8E?d^vzJ+eOe;8{Id>+U^rkGddor4D?l3-aj;@7$b2 z)BH1Nm?`5f0UwSPwb+xJkJZ`$HhZ<$qcm%&>zSfwAGSW>e?f|js(-ULgccz^Y%BuA zmxu0!=0wefIxJ|t)mj{<t~BM=YI$#j+@mhY%NOzNgBL%%opARawkHhbZ~839yNM1u z1p^l1L=m*bSlq`vtpPb!vzVO(q-fqX53k&(2JW+a06jtua97{NCkg=1A>i+??KV#n z97n)T3|_op2whHyFn{Gy8o+_A+XnBwS%J42)Q|JWKY85$xc8tvnr!yIy|JIZ{`%dS zY@ZM0AA+&y^`F1M^KFgMTsHExX9`0*HQac0ZM0hx>u`RxInnc?KwORMUf^n4saT6` zyO>8!KSL+7A}+yb>v;@q{H-ehfW#7o2K+jZUur9}M`n+EJAavP=HOp=@}oy8gL@Cz zH<gqY3bO>lB+~n+gJ=mfAq7oQJ2Gi>l=i0Vgyy?P(ONp&*qjXQQ+dLLA04DjhHz=C z^H|xU4e4XGDTZ4kTJj?|nEGey%2nO@R?>QByZY_!`uxKm<;&-ff&BL#wkM~X+)THx zTnv8u(~YqCoPRhB#2^&9J~e<uS3$3Pt7s<#uYypVx&%g5#227`zf$*EtRP>P58qcr z9}s#8;mApK__qK9N7-l)cqCdSa7KX9DYv%CdvghHwR|7vtB+p3c=ZC6rx%ZIt@j?h zCu~Li##Z!B`aEVkeJ`s_w6F)%X5D71xmW4nDT|aD5`Q2jP+e;xt;5mh*)wqpBGPe* zf=GrVY6H>KNv?8*5%jSDhaV?6WNJ&BrnR6|5qgwhb8igA?Hc#-D}VLL$N6ZDyZ5j? zxyH4dHSQg}u$GNwt&asNf8XkpBh6rLMaaD^<hf7Sw2vrnp{2}uI%_q{rYkG5<3L?S zh|Zq-D1WyMZm?ck>kO2%RUQ!NIuroOKGZ#QKPr;kn>TW+qk8q?dUwz3`Qv-Uy@&2e z996r)QN4pxZXgy47^Jg#xgvWsc8A>CMnf%jEE-!-p(xd+xTUvNklZ`X6X^Ga5^b|g zx8A20k@P9nHxFkhh1ZnUfQIPR#aG$#B`f=Ew|}9)_lEu7UKl=n@zEps%Dso|3Gm9B z3aa@w6jb;yKpe@Dluc(0K36qilaCxLvyHWT^u5Kwzut>BDgh%sl{Fzfgi@TwN#0Pa z$RW4@k6}e<V+x|^vLQqY7emfsL|%znk3&Qc|NGmNuYC4lzUJD0^y-UCa~tj`EhtPX zOn*Yd9C9fhE5_~{Y?HY=%DLK2&l$)Y@}ZL%5O&(KWutuz=LOE$`z#XZOrUi?<eHZ> zbFJLD5dz!hR9~l`_4p=p??{2$PVP^C^!zdY@7`nft0@w`1GM*t|KqJb1mC?P9bSK= z-@~JD{qc)u;YyW;#|OcKykaE70lDDrcz<oqvxCdaNhSe3;kZc5p{o0I(zRxddD8f- zv7Am*q`=U$liH4U>M}CBHIiAp&)J0<@qxQZ9^tsiH>%@3*bw=RP7SZgYPjcj^v70F z<VbWh5WS=zbwKTWCg%WpXyW#3I6pR8CIse|9AyX`VQ9AIXJ<Qz6B`J2-W(!GXMgYG z5gqAgFFtwvEZlp{zWglw#_JAEd!L@|eC6-AFFg}~=*`!^`m?cnE5zD|$mOO@9|z9> z+-F#J)W(F`xlpa}GbMWQIb$LQ(MbjZ&fyGM3oTyY*5E!|bJwuV{iw<&G(QX1gjIB| z%3DlI@p&Hp&nuc|x7H_U7^hu`pMO3sbxFeo!Y<B57^Hhv=>xK5Ytmzou*Vo>kRl8+ zl@W~417a&d{So+IB!B_OLQ*zpBCz|c(P~1|fMOm${9jjCl26Lh0Iu(~vvLx$=(riO z8>w2Y1_@gRg$*yy$zAI-sO6@JE<F>t@vE6gr~zp^j-$*(=ECV{lV8+S2!Gl7?u31H zMz!H3>*4>tLUEWUwF8UOG(cn%QN89^un<XXY!jz?K~@8P*WMV+OSi_?Vx*pw**4It zXgP0ZP&P+4s&N%@`>-uDgI5OUDO<E9k0j3{5C6}5m&V*W6%d*eAHXOtDE&x}9}nMV zzIPrYVIgQocGJ+)yCCP3|9@Zh-fP*?B+1S*3}yy1zz_gYGr%pZFK9HHRgb%eM|ecj zV1|d_^?|vEdvqnHI<t^jh3O$~sI`_xt+f`Q#yjviXw+Jhw*IW@s@&(~phacwY%^S* ztUQ(fjz4w?_qD!dt#4pEvjuYR+T4X0sa`|dv>|7Y)qTMLmVq7<K!5ZI0o*2C)#Bm5 zdKaKVoPGA0SA%yYiZ-+vUUI;Qq~Mva;dqCHgx%Tn2>vQJDU?uTD4fZPSVL;=b4|0l zQsjG%*5Wu3EJ1T}ly=njTrivVF1lSA?;U^i$Z_!O`R{<G6u<MR#dGI@d(^-t^sB#7 z^8Dp5|KMj|5L-W|oqyyr`-!c{*qFn+gF?G#2JAb~qtw|j<ZRft#~L~|#8Lr<h2r;4 zMDN+xWdL{H5HcGuYkMZG9p_YE3CD%`MJuBqBhiQd^4GCxPGzG5;o}JA1^9Su+R+?& z1)3z6?oT0#RzLy!G7RDwh_gNJ6J5NTD=9s-b`hT(-VDaiy?<;FXw*l*6&ebK;RfXL z*wj4!@LxYIfc@Dnstxs_J*ciNRKYq|9vKTplPDTxdkqbb*}SQWi_PBpJRBYyL`zw9 zqS;2lea&dp8ZF;fLKGNFO*@cISmk9K>ipq*PKYFK>%aGwI^T9zv;NE%{^_Hu>YWGe z$wFMaDa3t%{(srt$3{5KVR2KUC2ONJ+PVb9kq5p!&O$A}oisF+VE4LiW-WLx8j}wX zisr`~&lLbNNaVoXp!Mi20Wh3n15Jq4cMa4!7xB4`!ML}g{bsWLu`gcL$FF|p`Tn?m z_<6m2?w@}A>hl*bAK7W|J&I4%<oZq5p}#xi&%MR<e}75q|ChA>ch>p~E(KjW-i>Xf z#Dj9ZcB<^X!336xN+F+2%W@<%ojKg5K`Sm&ZA`ORxIm)lsEk+=oIsOosTLa#!Esin zuO*t3cY@=J>x_Q&7XM0U{pWq9{)>k|0)HZQwWW)Rn@aR;ood(Vgzp^8jF80@di}!? z0ogc_)_(!)?jX&vAw^vy37?z@XTupCG=eys6`SMqqR9t5)qaYj^X(M6w>9yr<>2@K z>6g#)`}N!P>8D?1XnqbYEc~ONJ$wF0oOthHe8M~0zPsM=j^gK^{VKsYaUBw>jE=}B z-#7(SHfl?!J5i^@+{fXwjn6r0prK3~(FMAyTz_u9gW4iL4eis+snSqJXa@#u-J+9a zZOg-}7bijFXI1v_-(2C#=fs3WU{ZOZPEWI?O<r548wx;ew@%5zE=vRyzCCBPvuieF zNahqB3p5rWJlN?_Z@S<#N$loyuBa?qGO&lkeZC>dkwLpX{I~DmDlyrZ_6gRDcxiD? zSAXyGD9dC<OF2#V)^-KFA$8<3A~RWt85iLed-ksOy7aKtJ`H;m?P7IeJ2lXgro=I< z3oGw^R#)n~-wHLOq7BRA!cb-RIAVZ&VyzS;>g8^V8{|acWrzej&C$K8qo6Fj(MUN9 zCCr?9loN4$j%503W;&|{Qf{e{jkRR2QGcjR?ueq>p4acISMkNOPao;z?mcQxUE}+A zZ?5tETk)~Fw@Im}>d)@!N>HSlLRJNd0Uwe%&fXp;lhE06BQzU%BK<mMm&I#JG#MK- zX9m@ktVWZ?S6L6`G{RA<lmk-hAoFHT2kFCqcU93?k6VwqwTlJUTC_Fbk5A$`c7LnJ zP(APzafe8J9pUPuXZ2``#+zq9qxTg(5d+H>b4Hv%?BRke7TvnN)FnoOrRX(EN+tHg ze}Bcm3{7`s>lATRg&fIX-U(M*6kqnFdC0P3Hu@zZsxgiSa_&GM5w^Z0u$1;j1l-i> z)M}y7TB3usckMONy)ULpg-3xc&wtK`{{c@CD@kU@wAQQe5wu3uEVrXj@Y&dBRL3IT zi7Cct{Q?y(Dy2!|az6x702fJHy6xF(t!WJUL92v&nm9RtR~vJ{XtYFyW7xz0c-45< zP~;EIQ3SnAg#;qHP|P_KeH&uhX2&5u00fBr!hE+Ff-Cq0BEtj77*;<yH-EeG9@hC{ z-4XKQia4=n&cQai`{>+zSDy9oKjA4*N%Gk0NPn$~BisTwrWsY0UolKfXQTrqgS|Py zk-;u85KVG+%&Q=NWWrOPNQ#Ztyss@d7p@Y^SQULPZ=I$Cuw`d&ai;O`KVMHV8|)@? zcWG4yHFlYsUf!6=n$YDAYJZn`iLEVcryVvdKj#!BO>1X|YBV_3r>|O<gcg;jE4LU& zygh2BuTw{sZJSNN?e9Gw{uexj>^yy=k=ghxsMkDz7j|m|7_l@Jl)+;{vodf%?9B*; z;wfkBDBLd)Wg!>i9m#!(DkYi#+Y~2KJpi8U?8WmkJj}z5I<{MV_<vtt*Zx7Duz(A~ zWuX{iPM{s5uu14twGCyxqa=%esbw5IgUv*36=ouyN9QF@n7i%tc5$bm-Pb{kJruAh zD{i4S=$zg5*3IpVhyU&Rj!YUk9DKAGz1qSe)vjYPdRdc!7f2{WV^54wZ@$GHOhu5K zjpouw5O}+YZ1gpgM1PR>BG^l2YyIkc!046{qpiXj!iV*2^zgr59SE#Ba~+F7HZ+iH zzBF1|o*1-kM_-;@K%1L$12vg-c#5w`LAk#+WCAC~Y+_d}vwG^phk{LJrk?E`p}^BX z8uV%hw9+}ZjfejOPch=4XV_X_&BXSW6(C=R>)_tOeWS^UMSoUbBCVIf(UJ&N=8lyS zoXLUky*2&d$(pxCHAd$+w#G>6y7xQ{S?-;37V;qLFtADw|L1jjN=9sa1+4?emXO05 zfv^^t-ZINr<l?yx-6*^-3ouxLr>AHQ))-LiPG5sjDZ$}136Xt3EqW5zyQN)0BU7=q zVO~RJN1FP>|9^EwXmx4b<6y0{o;$kqq;Ma#bym?t`-$q}S|M%~S&@(yRI>>hy-yy8 z;vhVHf|Bc}Q3|QGo{FmSS}MNLFG{(72l!p1Y5)O0{NL9;vQ}+y_bJAy$!%0#{XlOC zCQ==wXV%cJGPbq3_W{6zDawc0MB%ad5W-qO8|WI|=zpwTJer{*P-8XhHss?hU2EaI zk4?{GKKwt|Qy4Tmh#Eu|T=nMDFPXxro!Bu+<s=>k`rO6f>JNx=+l2nsW%M=KWW(-< z`$sH%4L6|#x;xy^>I)r;NobyAb?{HwkdfDPKm5Pf&Yt)m`7v-24}yN!z)8e;r_~0% ztErz=rhkWZMqqZKgAGQbj2)+Qt{mNisUfMVE9-9KNZ<lrl|!&GA{q}3H-i7Q^|7`w zWq<hpuGu+R98SeN$32R*fDq~1K!jH{lg68BCpw6YP8(Nn{PtQl>4@YUS0>*;&pk@C z4+DrBukU!B)f3xc_k)y+vAd956(NK^_J_ajqkrouvYl-Xi2R`iK@>rpg)0NT1iPOB zM@9}mRSP=Ok!J;!XIscemu;s*AVX*X>6M6u4rL6K8B?Gdz0L_yxW5dqrZd)c0rq<M z>+uxbAtt4?OSFo=19g8NgUA^~p|&pe3c@bOo@(&38+BkK!6UBIoOoJ<9Fu`gDZ2d2 z2Y-CaIMi()GR5X$Po7C_x@J!+KS}ZMH{dDYgEuTC)Q|^@O}<EusVY~YTgs+2Y@p9f zSlodeQzhYD%jy*4e`>h(1w@wkF051JoXCrUFpEHYKHL*C;+!(29ie1-&comM(G~V2 zebm5n>Y|3wZy?tfBdLlS>2lM#8DSSidw*`}>ovxAV~_A0ZM2CGvZOlJlWslN0t5}! zTO#zX`h+}_G;wfH)TQAER4RM;oA4Bf-97H5u5)!OOAl%&BP)$%nWG)e3BCPZ+n3f! z@2&JQPIHXlSi8E`RTYQ9Fu2We04ZHQm8#+BP4KOqVm&aG&nr(^7R`sh8BYPl;D176 zTbpD{v>lP!0-vKJ%94livF`1}tc^G!)Fo3daIPQ-#&xp!h7^{dwvQpAr$HM6@Eap5 zmG_u5r*$0ob8Alopbs;D_*?K4d!gux03~Fz;rcE(9biZTc9k?jF{310awC=Z;2YAA z>~tiNVRDuYD3_MEoy*dx3XYjx9Dk4<BG(D>ls-L(j&3Q$EXABQ>)~(x=zH?x-on50 zNB-oOH^|@gXFvS-v(NU>znWfr=a=wjpZ}?E)X2W`t6x0-?9(s4|NY88_2+)?_kQ6! zzy9@aKF^mgp5@2>@&`ZW@BY!Je)nhimw)(U|L$-6=y%g!{`RxyKhZz@(SPkP|M>sz z*Pr;jtcq7Z?I-@~w}1S9`Rh0Q>9glw{O~7uOTYg3H-Czudi}f4yva{IRIh*a(-$wE zfB(n+hyU2kZ~x%gXRn6Vr$6Oq{z<+Ow-5gE*{l6$e~Nef`nO-TML+y0-|<iLeRy7< z|D@CMquXEpX}%9HKC9<H{eSo2tKa@<z7Mayc>dzmPw<;x|Es_K?0J))a;RSa?oaT2 z_#-#J`eQ%v_v9}oF#WoG2zBX~KYS@J^`<$93R*v#oV!q<JX9r<>hz#s+}NPbbKEd? z*j)RP!&YfY#B9n5smf6h^1y#;iknzh&>^`x5=XkX(uhR<2$XM5PJiT&%m#PXx8G_w zJmO{j*+(f&cOJASh%;|GTiS=|Y+0Lt5-&ts2`}K|Pn+FQj~o{rY%~<i5-JDc8gucf zPyl^a>LT<d56s^1a{?~_ofK#+D^C~nU4#o1n6RKt9d{FCA`Li>>Xs0EZyot<&-U4? z`r%^$`klw@NxBi=(0`3Sz_}K&HWDUR3tTZT_%=h_H9COLtZl9ineBEhly7T6vn!Cn zj%-t{(1fd*JF<(R4kN@OFl;iavS-SKmS=a!Z_##WQXWUx>XAO+-dg0Zn!A7K)n`@t z@h8u||H-G%zW>SRU%9IG6Jnuz58;y*WxKH`+lM#x%u)8s*MB9dB3Qf!U{tU-LKM2s zj)6Fjvlx-QbrE<v5gXyA*uc%08Jyr?33a0$+rj`dpS@diC)<57WPUs*E~0@R40p~) z?EQNS&~NwD{o=)MJ$p3S?mcKvx<%#2E&3r*XTF?loDs=rJ)8(ZJ-V$vQ3;(1VFBqG z+Mp9EHyngcwtup|7-M}lw{~`0h*}xvNKjCXgWOW^@8Hs`&1<ez%zc?BhiucmP(Ib( z9|b)Cs^U2rxh{AMT46|UKpJ9qv|_DynI)h_u8Z9^0b^*1;wm^sD82w+$s61kX%H(m z-P_SPiGw~g&P^7`<DC^&UB7~3-5%h6@8|x=mwfLLdw+s&q;Dv2U;q5G_smfTTxTD| zN;+EF8<7SZHOD#t^0>^?yc$c1tgeFfyi~KhMd%giQ@~W6>^)1|$z!t9D1m6tk;;K8 zq<ZFJbP_EPRHyDb?BQ?w=%UN^0K#YRCdxolHZFwFU_I9CKn{U6dD<jpxC&a%9?3G+ zDmh9aGk<rY?ij3dYTrw__bbDNTc1`-txP>o@I}tn)e=_eqtA!G{i>k0-C;u*N~r9| zIIqjiT?v}RgPR7?Zj`P(ysfbhundvQ!QvW#jMtt3zCeyQArGM;$e*4CB)=rYx~Vnt z?4^io?`ksw(5vzAcU;xv(GjuPx_2R;8$GMl34h_+vQA>oAS{!>jR0Oo!45xq2?Ud- z!^`Yw&<h<;<^}sd&~m3w7}+T2L=tH5!1CvvJzT=T?Hzl_!{2$mkqb_~`1CEL%jU|k zV<<#g37hpWnr#jUT;S%p-m(+~FIBts#o2&emtDSk)<y&w$m|F8+;vjs!o4g|)<1$F zp?`)vdISZY^YC}!DF)XS4&{s15V19uVj}v%z;&O233W^s$(ShDPTK+H=&r__ZC`dk z=)%z1GJ(M)kE1;|kWbL|;gv`<1?S4}E@5Dqz1NVWhrj!y@BP}hu2R1QSGqyiXj6z# z!$xKZ6bIBUsBYFoBl=uu`*u!x4z3-GcYpOM1X?nJ%Y}Qoi4nwE!#i1t;v6>6<T9Ps z=TdZDBTv%cwr+1Y_cp)WdiPI0d$b(id&nLw$K$*D-SLg(`1Q~4NRobLG<-S*cm+tI z39&)(X$bX0l>#bjc8RHD+9kKmZD*d-Ih?~SJmMfnlp*)P3dLR!0L{JoTpf|;!ha3< z>FNv71bk_;t#aO4*zWx}PfF5%^|NRD#Si@R{mB!8=85)9Z#id3-v`qnXA94cR()O@ zb9Z;`)mwG$O=c#b=9(hOWROkFM6PKw>_WbG>n(kWpH6+x5yPDVGLKM5hH{Tap(4@r zMwWhWqt~q`>dudIix2<Z-Xtj~lYf3Rb~~1c%aJZsLfEO+HW0%1IITtp@D#Chg45se zkV)ImL6%l0$!u#(2$8a>tu}gh$+BD=Y+cY*i*!y|vl#4|ru#>6rN8pfF8#Uw#M1Mx zKi*9?<sbf1lm3?f{=Hv(ldI-KEhciuhP8DSjAlnlP_K*29%mCyBk-j`Z+{Ici$u<o zBEXkfbt}zduhVE%)f`a%m9%ExjoU)yOZ(neMJdYZ7|TQkRll`5eYkVz7O8gUaeK6r z=#8~bKTK=g*+j7x6~B&R9$|emK=3equLYz@CuUu#txo`Ppq$;U^$9ydKT8Vh@I<K^ zx?12r;V%xJqb*SNfbz7N(SLP&=jP7PIv_VKZZmoBjWGCX5BinQUcm40>ebhUi%(y? zd_-2e_vk$_>-f9<jai4EzXkRX2hu$xD8~wqg9I>q3#KA2daalnE3BVxK;%%i0gW-w zKKmYf`Pn)<F4;;`Ay9N=C>_ml`hl#mAyIMLl1<sDE3|C=WOVc19)JFxkG}ortlqRD z30Y7;<K+p1iw3Wv5^&NEKS!H*ct<CyHJ{{m$(>?=G^yia(rfvwx;|UObtQSsKD9{! zT#Higt~ki7oa%vdRc5=z3EmsiaElPQ;3^+KRUE$ez&+{uX*aH)Z=;F=eKG*obIFz( zp=VD3V+QO53)PLY8Gl+Vx9-?X46PcN$r)Rw4W#2@n%goBIDM>GAjgMXS9DRBLyV_g zCMmUDq-gaaUvzbQ_<OI)feN}ldo>;g$>?4n$-+3fly{r0#vt2u7CHK!W?O6c>a%Ai zJ9i(@M-M^9*;1fI%jY47{%*wHQoeN1+UoAF%@4s{r-IS_@PGGx^bP<5u~oFMB@xuL zxCFemiR#34$D7&!A%rS4AwTU`mUKWAIEH48;!?7<+aLusIzr*6We2x^%V@iuKG!;m z@VG;l4S=*Ub(h;TfP4G9-fqDA125~<i%<V-ef-7CXOF&!cOJx_*Z32()RQ-MU>Y@= zfpZ$8ZC0cL0)H8p1qfPU<vG)19XNCoh;RfG^#d@z=^h=V${x&yIHm))fJ#3^**2<l zIx@lHU7%MBpOq)(t@7c{w!XJdzCZLjJ{0Mp2o>Frj@@@2$S0Wsdczd>0P)!sJZq1! zeDzq{V~mdB>s1*W)Jd?<`Xpc`<qXK5k#Zy>=0pUWlz+F4`$zUN-~*5Zf?$!$<za0M z%V^MJ$7Sn=hj9VxtBlml+bonjGrQh;?9MNK@Y!R!?7c_tiSx&JW7fU?`RAYL_H%YS zd!j;U%DtwnJdzTk9X2Ve)<gWzZ~%%u*~)Nnkv&>M3Lm<Fy;VP5Xz2`sg^lR~n#jpH zXs?FSC4Ub9;%gd`bEFb<>@ft{LhAdgy3*y4eYkF8SE=yIM;v~z<X<K2xfmIGO-^Qd zB~%i%HcIkRCx?;XoH<TA9YJNJdl2izJZ84s3o3Ys=}mxoZqrozLaVf?E+T6MCDGOm zKKaAnf3;y&oZQvU>ICD;Mqh>dIf&;QUPn%jF@JTSX-C!*=bYW3VuK|Om~!HyTQ}iX zHjHHy^B@+z2kPt>SgCDZtU&1MI;*ukmI#^Y!$0uR_kQ_XS730XCO(m}1DG{;-p%H* zLtWSI!&FGMVin6}HxhsrsICKDMF{y;&#g9lpNHnbp6hiKxo~p&I--ewVasVpSoa}K z^nc^lirZV=z0J#CeP@0o1pTs-_9HXEBQeIE$M0Pk%fItSUcCAf{_KZ;{IB@q`?D|p z#Ou%guJ?Ih^~Z?51%Wl_OwLhLvIUEZcZ!i$CidEMHIj8Tw{7jxC~A#&VplfQL9*K1 zgVs#pj!yOt%pj*$c1}tHS#8*=8jxX@MSr&}<9mD9-!d8hvNt>;w-fT-WBAS{<R8U^ zeErG4oRqIW|2wbwwpnn$qE*Y{?m0ygKF40iXs^xC{*BRqbK12)i(~^q22Nj#EwT^X z*K2G8kP4<zJz0xK7x-G|Hr1Hq5lmyFg?v^Hf?evi$8c|?!CNNfANa<kd{p<n^M44w zvnl!OPff}9pbh5}aM%uUX>|oC8E^n%YkR9bxy(Ts3*8{6DxxhGQU)X<rV`B(cpkS- zso|G#7u75hl&Q;oLK0FP;X0!NX>`5M9tAPiqb9_i=@x&n3HigvYvjF0@I6k*AHIhb zlFrNw!4V3nw4P&UYco-cwsk?j&3`sQYL8){;dyvNItEemilHq!bqF3J_v(gPK2n;z zPAh^&HBSSTgJsoZSDN000!lTF+vJyfgHGNuA%E?g2Fu48SN9#lcQzw`<Hf5#@%n?m z*G;>1rY3}>#?`VaYE9UdHp7;3yl^YnU_604$duSlQ^4<(-Dt0r1}A>3YJZ%)^{#M? z4~FAiu|~0rDwL|F*^n<bYDEr7?!u3NyLYDEyk$!M{;zGjkB*Ud9>8}tAwRmEkndxK zyaEqLLQk6s@olZve5W=uR8>GKhx)R2Ud5}(+u|Cc6&ob9&d>|Sp^d01fs%8g<VcD{ zr!_5><c=7?A6&?BnB->85r0~P9&4TMi$8kX#pVqw_@hnx&SUsaFE(F(^7pz%f}B4< z#Y4UBKuT&{5oyasPo8tFB_~IAFm*<ZxyIJGP$N0&C^#ub!J#TZZ7%D_Bv;F!>R>-D z^3FJw4<3_2V@W1urST|X{N6OIx1A%uK^S<vYu|SS-|0E>%_;d_R)0y<Y|*s0ED`5@ zWbPEiMQz?oWEl_jZZkB{7=Asx)+dkQ(K{;AYg+Hq&t4pDlp*REtb5m-!;Wi%%>%Lu z(0^bTIJ!_(m&ZoL`-0KlHX*+OpLhZ=d)E<srxWt}-0ydVyvS452DJ5kLW=E24bGDR ziri_)m&Ka2fvH<#p?}2dd~!DLa2AiA&OWhI>TDMa=u&L;ZQJ_U5{sb2g_<0;{l+u5 z?ztzQbz6_THzV(D#ql3a$j36%`;Ol`Esozz$9Fy%M_oExc+p{1Uy*n*xzUp1uml*6 zjk^}o?2@BxKOMG~?m2wa(wV43XlM~K?K_xg)6~b=zN9PX7=LZb8c0h;GDesR_jOv^ zw}zQ}qY~eCrTH4Kb2}UFJ%I1@O7qRxczyVHe|oe5t!f6u;L|2CC}Yy+v5ns6XgU{X z?$|uRjnpY!dMU_%aiBVv%e}bTI%^|Hd8~2~Ltdzjrr2T(^<NaZA<fB1^wlOLvNzN5 z-ptImU1{DxHh(=nKi+o?-|3a+n=|sO&;QQXNNBwp`Wxzfjg7BrwCIB;gb@i|P9A5g zq7GNIS_*<U`UK(xS4nHlVd2WsGt0qbREtx|FjKoiAwhCNVu3*^CcEv^hxd@%vd_H{ zs&AQ;fACEb*rRpw&V%^QX5}BdnUy~pfOp<P6lN%4p?}+(DJq?6dBPD>89XD!&H<LP z3x;!c-JqaOZU!AnK=-its4VKOGqgThGsa~T-g1UZ4?1hNsRi+mXS67V!r}0(FzMb* z-QWFU^Q6q;-Xr+lE;jE+XfXu|TE&W#_!hErt-f%`>PKwAroMU`a}RDO8x1fh*4e#x zpEY_k6o1+L5K<W3d125yfVE7eoTUPb{2F^)FkS7NbL0V8LEE`KOWqr={JU@7Ut$X% zMM~Ux4By-4{nh7x=Nzgf>%cP7wr=!H4fxx&mrPwKtDKcWVtb6x-7OC$LZJa-#MCJh z;UGt8Ns2Vd+6enNvd<}pTCy#7S!1*YtgSF$DSw2kFEC|~JP!AzZU648<VC}LgrU0g z2)?&f^7W^G*Ar4V;;IcX^n;Dy3NzNwajJY$w%MC_+nu5kV2v4JlYLpq7%(Z8w*gt7 z7l_un!WflYaz<&yKt_ySi)EjAYDcU{gLQ=XJkk^28@&Fzmw%opkKcRz-dp+SeH6z} z5r5<)n+0r^=%w3N5r9QNEDAS74q?L_iY&xB@V~av$AB&Yl4YA`Z96o|vsa$h#w5hZ zcSv9dUd2KpJ#~_XWI};LOU}iExV_o{dq9N0+?l`sHj%|QslAU5k#`=#cPg@Y{lVXB zc{~k05wUSON+!>0nQP=aDvoAs!5avK*!E(VeH4GPlkOC4F}~J&LocRy$3q)remoos z6{oYaCNt5@)wmJ<a^Div$LiZ5r++jh?;FPOwu<D}Ea*q!;&&dvcUqBrV?w@<6*6W! zd!thUUsh|`l{=3(cErbE1jRPo52o(ay{a1|Vq@%~^8m5+dd}cKqbVEclZi3Z3um+y zXV-s-*=x`1zC1QmxOHgHBeQPLkM~aHc-y7s4ZirJ6Xc!8@SR?2zWn6xb&Yi1QQ}6x z_4tuv7vRtYIUjRcX^WvJbLPq2w=Iad=LQ4$S_CFrQ}k&|9A=RT%<RRMrPYT{okndE zfD=orL)S9|ivXG!blcOucSy_IE;Zl4)<1tjh~Iex-|401%_;dlR>`_}*JCb(vV?DI zV3E~;drxztF4k#KU#d%n^EktjK}N_a&J+GQ>M>}+^?sBX?5I=DJ-Z$oXSynyzDDgz z*&b;u07q4?b~_>Oo!9fWOU;k65FWW{?>v6*^ip$u>i4M}SM9C2>l#~Zb&YLDLg9aD z=eh(6)JKMRWI{a(f5EoE&GHDo*<uTRk)74xWod0P+*F}JQou$J^?<C5YEGlO_O|-E z8o;gJPR4u3Hoa|i{6@USqZZ<wNAR7lj@RdYuiG{5o**_N)cDNZWVa(^TyTu?26sUU z`P-gHXTmwUWDS^(wT6svBZmw-vpIj-|He$OX$-S@D_c1WYaFc^)oc%OaN-uv?JT!e zhI=P?z3oc#b!N*WKkS_c@SR?1zBwP?i^!tJ4)1*f`;nF0_My~;AOSs7h8=iPJDRLu zb364TN8Eb?>flI^U()v`J;!*)6l>NEL>p&IYO>K#K~usZq+Vm5vo5p3IAMRcnKSo} za(mlm{i7V9N1OGX$M2nP*590s@8{&GS4qUu`T?%?;M}9c<Jwsc5i1=F@>Gxvj`q?z z4K}H;1(4lXd-T<hp526xGtn*|F&AQC^7I~Mvyal)snaKH1T}Vv)GdG)C1E`ZVZZpu z(`q63C9gR8$xW(y3!<qKrLBK!tlW#Sf{rsFobXW%TxNsebxv7yPV-=%@a=Wbrd&<| z>}+e%ff8uaS;BLzb_0O>ef7i7Ue>Ee(8GI=+9Uc(|1N)*zCmAk{qxUGUum(5uIPzE z2$1htb{Je!U`)aJI(^^_j9`{_sx=Taj$Aw%8vxMn-ugNt@pWXNz+`_Ks3vtHY$M!d zr?s#Nw!_e7)l||g+FtYF9|WYs(NrC_XPibf(NRnFjPBCGNo1f|annfDa&dK-ZY~Lx zA=ALohLsUzuvg)K#0!V?({{~1GNp-Z7`fI4@w-6BS#x$s93Xsr_=jHSe+J<0J<wTW z8*Nc1Z(Zg(+IlpD=NW%=*OAgUby=Me3euKTQfCX8^b-!3i9o9@QPbNxgO|~+DZHus zg?943S!$WF4jPeV{_qc9PXPiVFKWZsT(qQmwpd;Qf!V@yWQGCBnhRA%Ua1KmAvZgx zx3zgh&b1t$kSV>->S!hI18zVW1e%3zH$WY5E*gIFV<L}SM|XdIoSQG~uk9DlKd<MX ze+=O86EK{dd&Lgq3nA|cEi`nmxVIS0XYW$A9Na1xj&<xA+=_r}+8t3TI4jTAYlrJP z9<vT8>kSbP=CE{D*EB|5(1#`1IEH=~u{3)VhJ#F%*D#zjchzYGgiy=atk!&}uC)OK zL83%E-g-^!yefZ_k~<eD@N@0c30QH*#CB*1s}F~<ibmU0X$_cGAmK_=MwmlzM?MS+ zD$_RghkxXw4<IV%;UB#cZc#++v3Pb~I5W%xw9?SkTni!~A`oK68PdVp>B7s78ZCu% zsMb`>p2n&Jv?44wz2hQpz+q=9P%CmI@^sX46UJhweB*zx$HQOvb-WSNiDU~HyjS@4 zgiQ3h$)}f7XPQv#q3(VTkBw_!RZC*ef*ZMyWtGv8IIt~e6Rb)dNRGigH;)oI+?YrL z5ov5XUWbjuiHCpe%I)wyiIFM5irudb-ls3;hW|lmfRxGyC+C1_IX7N^Ms#?GM+-kj z3%rGKI*)(eo9WuF3tqY@mSiB(gYFrtxvi-LubmmsQ!*a@@hdT7*Ez)ApsdOxQj>cv z_(At<EB%m~wSz58vmCep^Ql9p5Ac-|H&7bR^Wazo+7F*N5E6E9b){*E$l0jyT*)%~ zQgo3J$MA=L;zBh|>Q$Y2Eoz;o=nBu3pikfn0lt5Vwn;Uzn~QUs?Z_I$y`9#od-sW; zFhiuyTp;bvY}^f}fRpoVBgVyf?X7TAcFie^N5UPR5C7yvBBdO*N#&xV^*rSOUn~S` z7(89zf%St%VxK^(6M;{fIH{(@>f<DsR>9M&E7b^@nmLO05o4k41xRJ!RNl}UIIgO+ zck_RJ^x>bvQ#9@~M^)^$#ZQ623N>GI+DdhN5&BOl73q?Tdqe66-ovoD=0O=QNO<Yx zQ;u4T9T93R8a|s3aaGe9Teo)HOULrf#tYt!hkqJR5o~klmVxzp;{PQfwFTmA*)TzY z!?;szYMW!y*{wOj6x^0vRTFnm^E8HYQ?q|#JF)I#e4DmhWNaj@u&?Hv>&UhwHXfDx z;h*{F0-V9D)a2B;RQgz<aA%&UUuc^J6C!HMad_&G*>g2oL}|Dt01`|6K;ejU+a6^m z3`q~Pkle5HSLzsDha$ScNny^hvwZ;T{P53SdF_mR!lP()*EI~Mp(WlCa}!NXymx;B zX~J^PLea&qHv~atoWr6D%3GXX+IEhb8<NHVtPdh#$TdB;Xy-ah1&J?<H$+FW^*sD@ zA6+!=0W|Mva}^^hZ?7}KJGHPY4<v^!R9<Vr&`3bfFFup@L9$-<IVoUbpPZQ8@U7Wi zK4(%I&xQkDb&`sPz)<AxOsjAlR+fL-!#{t$k%kyk#aErmo5iZj)j5wA;)EI+QNSL= zn5DDx*;6OFREs*cnBi0l#r`o@N61n1F;y{tZOyW|+C1pZcZdVekc056Nf{#B`Qcx< z)(bfv$Dvy;cu}GQ`_cQQhhiK%8i2P3#daUg5$5v*u;c=eNtYsFh`J+0i+z6p!_?pc zY1nVT61JYB#u`^ckEU&fQ+gA!uO9xz*W}{k^W=yDTi_fHI-ae;dKr;@ZtvY@>e?0u zX2jiHEwm1eR(y^FHzvy~Y$q%MlSFne7#c8*p~s+s647B8rFY?m+*z>w*u%esr$8zF zpxRW+Ml(HV{kVE8IV9ThNOXUT9&Pm6065ELiOhoXaT;m_$UT^a>_f|yJ!4&4AYSV^ z2iX*94B0rDtck67n6gCKk%xcz^}JZTY@~Bdp(O{Xi`AB`ln&&UR$Fye8&*3P1tYm2 zW>`$ZT6vw|*%Mh;#jPj)$h|7EHW$mNsi;YX1i)=Y(5P3<-o{9O_*Z|f+r*rDni?Wz zEia(<S+V6v&V|l}E<lQxDW6Cb^~q{t`xN3jy42Zb(Jan3+s1+~#ST038MzPAzlLq} z_<_Y~YvxhAqL`cqKm4oLdNJ0@%~f_H3m(8DJw_hwXo65RUmMNVhEtR?8g_a{dwo3H zlLvbzLOl?`^w*0Gc_@D(0^4#%yXzPOKG_;W{sp7SU_k3^w}*f2+DGP@WxYi$Xai|% zeD)4LqK%ClE}UEEmUAd`&%SA$M!XDPNGy&t&{N!_#!k?}$gCQ5fDy;qi#$)E#dqC% z)wM^&(A0vUaX<X)*X*1)6*<*j2%^ITOdzggNLAaQ>-a#!NK=0nnnQHdsnNwXYqYNK z<vIg}@V;_+wzk@UBxtCN9+|jG%%XLj>j6oHYRJc4lT07}jq52kMZ%+w!fL)g?w~<w zYn;T*eeA;&W(E#ARxxWDycox&UWoB2Ql4O2k44b_<{;l&giXP2QGhCa1gqqT6CLSM zvirnMZ$JE-AANsseEW%9)?eqN;xL4*D6r~R-{=;M82dCqT3Ax-vo<KW!`+dOM)0qX zbl|wemY{u%YBd8ydZ`%9F(Nz~d5v!2q*f@nKw&k;p<B7*z0>d>g>ioJ;<ukak;!%6 zL3=Xbn%-cF)6ZVsc?W<V?@cV*NVrDVTnEB^)`9a29UOmeAUS4SozrAWj?KafOUhhu z1sf^g@`u?Vl@GIx6pgD2O-L^vK~R>U-hjm&vFB@fLlr`A8!h(^J-nH0zw(1;&!2tf zkE@CI9=0bEIp0Ls+lPs;KTC1GgE_MLi0uWwkqNSw=4D2ksOHH5&l`CLbB<VN!j9rI zd#+v*3Q~WFLPw7{CUh|nDssvx31GJ)I?O@!l)hibvMi6a;?@{=?_9~-we1JLmCs&& z_DC;#=RtdNZR4A@?L!Jw|It8xl+Rv${+s(xzxvHrFZXZ8v*+La)33hw3$LwL)+BR* z-Ud0Rs0ER<)eNDLvdX4hMS<itci(DfqlP*0ZH|AIsA4zfOLNR;?zxiZh=ORwMzkJY z>BOf1tJOZyyb@U>QIOGF$-}*~MQ^((zvG{N`s~%`kIYtg9<?XBD0I_B`5?Dh$Tg{u zJY2cAqx^MI<r3PZ5IdYGK{zAErZugJ>ptUT)STO58NH=7>C3kg!<#1=rx|WcyG1Wg z2;YAbbxy>lL>R7jxYgIA<b<;!9-J)WT=$60)<AlKaCz*GZfyoi?u0m=P_{XH-*lEj zhtH90h-nHpM~$!t^!j`8@rnL{tR+KwO@tQGK;j-esoX5`#Jb&P|MDOBZ`H@AKHr~w z{E2_|Sv|j<clRE@M-61YNy__W{#K&$aFTzeM(Y?LMF3+!!aEd4=4jojm+DIBM%Qd9 z)OaE9FLF1Uf`<97r3-61>NQ9<qh)z~9F!M*Oq~qE-)Vr&74_8I9rfw5MLFc*-@5Mo zT6=2o7Vwp_c+Y8}A-Wf8bFB}Q>i3z`i4Zb@y(mzt-xI>>vx#YSd~3rh)`1~ti?x3t zGS1>*3#6EX+WJ;O3e-R?$%Q0L9{z1S#S+v>^Lm{E5j_)*>M*?TF2=gNMc~%vj19G| z0qhglV$%>J4CnhiVZ8Q+yGbSwxVPX8Y0%#Ycy*c$N!Elq!I@eYvj-@Whkxg)2kl`^ zq6LBngmrLrb>y;MRrQO|Xk*T0J@$X`epa_YPAe>l+I{qK^?nYMaX-;$fwJ3iCus(K zB)F1T4p$Upy5Lu#O*My(-2CwGUOg7?J?Au=dpN!aVK`L!g33eatbQD|8r#w)AH6bj zKucLQ!gQHtQ#Ustd0=fkn+bv*pahx^WFS+VRfBuBYB<#(7;ILy(=#6ay{muUgv$?& zv?X?Bk~qSXVKG9#KeN}^!>P}KZzCcn8lEu#gU0<4p7(*M2LkR5fm6wW(tpG4Z8x`m zl4Gza1Bhi#r)l)Lv%G>H{{0Uk8~s1Hs#2z_r<lOSlBG*pL-<ALLCL*?=XG|N%xREO zA$73zlY2ofrNeqVs15Pri8y~)T%_4?0)X491ZwZ&2FR>tacfMHxOg)6G}VXy@O5_s zsU6&M??k_4Er<>Z_t}Yd$yI;afzb6BXP*@H-JpU1C_kzeP6&Lq=-3Bcjj0N~MsKzk z>sYfV7Y|2lJD;XS9w-MOdZun~aQA+k+Z)_xFJJ7BKYj82CpydBYeIh`Gz04=a&-?i zU5b{jF`?-+8oJqesjC9y8M-v0192moTUzE;^6HX)Hne}{#j}%jhFZA!n0;6)%rB}o z_G(QhdmQY7-|Q@3Czq?UY%%>hvQ1913K2%6QPdVpqLvPiQi}9~>WOnQvOHUkMx(_b zb|%njK&xHXiE;(js=a?^3oDC@+qHO)=)Hta;Hy7RuI6*|!=JxY3$vfm$jEn0C&XG! zhk1V{f~#Ag*IRIt2u^d8D}~2wO|z&LZc=-zZi;QpID{^r`&zOjVxlozMx|X`dD7y` zr<abhezMBLfArD!{^+-EB_1)j^@9My#d|Jf%M74>M6Qck)y02)S+l6w;000KqL|?W z(DPN%fG9;2I}Brxeb!{7+z=9kwRI-0Un(k1I|HGKYuhFe`ff>b_YNq%`Lg`dZ+%){ zJSwf-d(7TXT<kl5AeqtC-QW!FW|<2PmnA+{jzm!IrD(?)^z`T>#~Nt!aV%{h)LV}+ zD31cjA6sm;EZ=`%SkTo#ojn+~!cpOB%FEPkYw`)dU6|q7SO>xf#y2hk%9F8S6{-XA zoy$DUq4+A1)m7%|UaHyMA~bqquZ-7nhb(a?kI7D>B#v~it2)A=p1E*cWn2&pN*Mh* zAK;gty>j2LeuQ;>_3_(^Z1*0(C)2U{jfwXy)IC0g<II15{0?%8PailP6GM47(S+k@ zvE5c!sLMhCl-sO1fyM7^)$k_wti-u0d%-?A_$-)&=G;)0PVWo^7W#L_*+C;x>?E*X z7BbIO5Kz(|g$0g|f)}!^;XT^`$*oR9_mOpQ{09!R2o1D}3+=RMM+IEfq={$=cf_&? z9Y?YwawUIo1UY>+(gCT1OCjDEz9R4J;S$CKDDse}D$9TEr_bV1vG2~q_GGb7Zi;<B zb7lDhnDjp{orlNgRzXC&lwWpBUs%AxZAw_-^_LNKH-?FH3$2Dk9vf@WK{6JQUBZaL znqEt)xv!jfE+}!dw?mM0K$^plBOt@okVFN=$hv=Uu5X-MuTI0C`=xJx0YPk*Y+pwM z0u!2T(H_WTIH@=j%T$>##-7y~UK`pVmrl?>M_<SntYK8*km^lCQF0(j>CED`E~Oc? zD9x7QFhYg}Vsvn#*19!a+&fkKZ84I+T0h+N8NOwYinVthz$apE<&CA}_0J#N!7Vso zpC*582T7dEt$M<YfFmzhxU5aam7c}Xq$yuausle!o+lJ!hjlepjHpp=VHKFVATTYN z;**hC7a)3X>x}9cg28a~>W>T-cMej&S($#LUcP+s^5a*Z`~IzuKl7Kb>gC7v=<Igy zF??d~(HobB*FS%7bFVd|utJRp#*%}0ymo)JfZVF8IV4&UY(51s?UpsioE(5BThQDz zIX3QHLMVLuf_4{26^n}GDb>4aZ>*=u&LGrN(sUsH{ZXUf-ifbYEqcH9>e=%|r2NZI zzW8e4`-NwZ+wylFy(il8bkmmq77kDE;HtWj>89{+d5s`v2+pl@CKqHgLj4S!nQecZ z)shpI0jN61u30F2cgrX+&t|kk=N!-=X-C;!5X}?xdIr50<8sBZbGIH4PuDHf>fQ;z zH!I#BeD%d=pS^hb`Kynw#O6oW)H@H}<K7g#*%bZdFaO|!n|4zTgx4*r(D=o*+vb85 zb&eBLwFu}Xq-eUpNN2|?)sMs5xoCeco3O>;9!HYGr)zU_N0WOD0M2->Irf6~;q)w< zk(~f_kmOrq)V&=&H`DG9?-wtA>sfvL>e=_7`{!T0tVid&I}hK_>-laV^$n*gxFTDJ zqS^Iu*coG0OcM3c(SR5etTAHXWnqPyEzv5ljSl9D#D<Yby<oL2CTrC0$d`YauCVk+ ztf?Z=8D!=P2reGc$?t99dL*#CrrqPzhWifMqsd0!wKpc)>z_Zk$=1f8z>(ddfp5^) zYe2a`pt>$#Bw~UHS9X~ZV4alNEce*r#(9<~uJ^nX$Np9x5c+Qr>af13Vs9i!@$t&H z1+}cb51cyl(HeJWkKD~<`_+GXzF%a0@$wP<{@&yEXuipf(nvncJryPZ5y%KYq*Z9Y zwjMZmtO{xeN2iUEII0oWz2HEcp61bGRwOje%^O4yvw{t{h_tejvm+IRaCCCJ<ZetR zUE%w!O-Q_cR93sQ8}eqp{egP5{j>V`lh1$fc*fm%<et2;wwo*K&#Zqi`u1mBS8tF& z=i*5~1BfG*V)aOa=+%*H5S!L6i$gM;wkaBrb892KOo&tppqY#IfGHAuu;U$grjQ$~ zec<nTE-qLUAyi|oG`pQ~_jbPC%(!2y&;9$4+zNLdvL~k6e514V`sWXBss(K}Xq8Xl zq<uw^9=P2mL7=d5FoA#TAKofaqi|4Y>2yQ##W}vt*gFIaid-Gy`~?p$%w@R{q#HhF z)AHHC!yFq2eD9-<c>3*TdT(R#ZTtSbtXH2rs>I!S%zj=sQjc7Rf&g1xz!5ZrcOzY` z8j;LCQH+EIb4}UXV@?5MBI8^=YpDL#l_4Fot(w`#M1*CS1~-2M*iWf50~z60^Kn-J zeQ?T`&AhF|-P^eRNU~cmzh57J-J5z;i@W#u{k+aQ?ka6r5#<PLMyF_9@{8^Rgraae zJfUugt&4ihjE<o=O1d@#*r})Ttm_N7_wFQqaI8{qgrjl6LtYR;!1mi`okVcNI^?&t zxO*GJAL;qfad>~?zHskhdtys%H>bDuA)emY)d;R`I)S8apB(KBDCw7O_Q8DRf|5=q z$IEGr@{;_Jv?0URg<T!^F4qBS6J64Sqf~3WRwJ+x<`nZY07pU$balbdPrmiR+}rhj z3n#id-Cwr39!<GB58adXH@>OAeSoJp^j`L8G55ebF{FRPkG7AW#m5?5Z0IPXRxO8H z%CH6>6Jo@fG8lqfnAY4AR0~l)8{#c*44PnGwScN~`Z2V)xhdWXf^PNEh2h?Y`r8%m z)#v{C7q1?-RPQ}(Pj0Akv!Q;76}X0qK?|jf-m1>%b5M+~yrI(XS*0Oov}Rys7IO9& z+09EzjI4k4Kx?uMn8{tcqzYa^p#cS;s|*yYWQoMqIU3dCeTD4--SY@;d|xKr&2;<d zEBsnMd-d6iSI?djlH7X)pRA0~O=aZUU?+B^323g`oKUT<aG?PW-^O`B&TM1F(xW}Z z_7o`oW{t6%iK+`bX@mA1XcFzpy!#3yZXXW>E^L1#+z+icsPW;_f+do-UjVd+|KuGA zF-JK*(>i9-4~>I+Lq<Te*mldt7L^AXj<VLA)h1}cq!(R#1sN?=9t@6D%Q^MhndWSP z<2O9heehCfO%SF5uX3jjmy~&{+l1hIv*K<q%~|oqqXNyn$LtB|vEE3J^;?l1Ye<9L zdv|}-AiIn;nn9i@tF?Xt2QZ?smVzE!AdYR2rCQ@aVmy%knRBHJCGG-kY*RP~Tk@C{ zNH7I1n*~#Tnj_c8bGE@FBOm_Lr)T^nSP$=Q0f!R;nd+uF)R6#~Yc7`s0MM`+z0qOa zof6hTc;S!o>e_hip#{G|?4GdZok>XE$ccY|@y4(lQa{9PRWkUYD`K}As<$~Z_kNtO zq%gk(PUfq(NE055MO*O_*)xXcF_f)QNN}Eg@1&jkpfA^ElOEPXxRI6DKE<8gEo12l zOyp>Wpe6teGT@vn*pY^VUlq)OVs=)7xU-M|ZXMmsuf(Fi=dZfFP4|{|{Cp`*9>0Ii zs5;%?>1{)MmzvUvQN!6%I~bDmv->b@nXq>O1UTo|BiT}kCiMZKU}XnOVu|R;dEnD_ z8G41w;26So$hJbtU|{|7*tYS&U%$@p{o+ruE8Tv$7vK4n7nf|+KmBX|-0%6$Z~Vz? zUjOFr_Lsi*i*Mc|2x%N^C2fRtH&=hI?o)-gXSWEX(jv8%`+$aC1BIwFsLkxQw+Uf| z;*Gh=NEh=)eM~|Fp<)a%dd=17<<VP%q@t@0h^G5Kx0RARLk(}{((nJlvmeyQuNRBk zo5Y<5?)?Bo;IBJ1$Uz9>RSlAC@Iz~%7Yr6X@un?awU=+dqz2J1&^@;8ra*reZ(P|# zaS6wX&osP`jzsH`!v>=502w}nyi79HF@1IfZw-I=&)&g#ZjqrWdQfCD0ry}ZkPOVn zRvBQ$c)_S8j^c#z9MluFgf&~k-E`ryN7Egt4o8;T?v>$6im<cI6R|&CEDT78s*Mc1 zWn-kZ+xyJDDVnz(-WSh5KF@!iKYR5_<?Xz`_sBhQgMRZ=C*RVkZiHI(f#m9a$b(cT zM7vuh>p&(p)kzR4CnwHY4i3NsMG?d_z=?X>)XsD}Q6t*IiDlN9(I$>7JCPq(-LakN zKE!DVLJS+r+QWbT4(9#dhgw0*cG_CA?URdyDYRb(opltiaQkwBOR#@gcPU6)`i`A6 zS;C+XcCwU)J988$g?e@r=Rz!APc`jM&Kx)}<(X8_POaN{e{XK<ZJ+rCX4TDvzxR+m zadFq1i@Sa+7x#q#ZQ8ma-C+<<KoznWSaD2RojIb>93^n;t<^jvE8qt`t*wIyQ7rpC zd-vT{a*flxr|3X}ERcT<yN{#EF|$YP-iYVWIyNXC{)=~UaSvIuF;}EOs^z|R-_&Mo z?*mcaZTATe1pun^%q|;wmN9x7Hffwdke$cT5tT}<KxOjd!097a7Y1viXbqT`YOMVV zYSTD4-#+r8+!u>`GvR;X&pb8^-+90uDY3_Q`HlJh%U}M%w~&AGu@-8-oh`u|L;=m_ zp^_QQN9W0A06QgK2k)6{OkOJ*iccXODwfIW>$0z!_Od3z3i&#Lb83oI(=!3K&7(3m zMYArl37oNqzwj<B!|1!6Xr8!}#-;KaTGWC}$r)~Q?rf7X6#x(eQ3dRQs)dqE%m#h@ zRLGy}3>w~0ZWDj=L4`9(BJGu_?-pR=k<UpBqV9d{R+xKl`q0gU|MgEk|NOI$x9?Bt z<5%?qfByNi{pc%j?;(7ma3yc7_^*Hd;F<(#X<{W-)gT9B7}$14y+eS$5O0b*H(&KY zbK*|1i>L5BP**n!jx&}PPz7`_^22%{a;NJRy%SxC86|(q1_Otqwhyzo)uUq5z0pFq zcgg4V{TH7<!#sOL2f6dWy`SE|JLtPN6&cA%g@UWFgr8W7a@tIpHmH_qH}Ng~B<h6b z)oOKvl}M;LS|;b@K{uG!ZpiWxq@i!?4L|NM64Onf;H{=d#u+O)+wEF+@6@PU{-kf1 znjbB1_a1+>_aiF$0E$UJKeeqV5~F-5^MU-ErJY)+$W%A(K>l~36-~sO06^wz7h3(P z9UODO{FyF|t(<)(&!eLnq-P2n)!yK5lvg{>AOajuh=rS<wda5*`G)J&e#G^<_oDvu zv&THays)Y8?Navb{n(gz%1r2b49qq=XAFs;6JUSo+9b%ly>&km*+Ag5^=jb?&lA=F zLZy>Hen!m){O++v?9l0bHzSn%IlY0P;*V3n=yd`7+uar5Acf@I(1%H~HKcJuykYBL zV+96Lri)E5IaN<2LM|4=4Z2b}rF9k6vtZ|uQ95^A<tKz>q68;nVt>scj5v?sCk}8Y zSiyg9+aq_*W4WCopS^tX!{7PXGans8?mci%ZVYy_G1#}TG5A8ls{+m4=l{>%oA%n8 zB-eR>C{hwdTOx~;XjwzMKk$>Qoskil8QBH_|B@p_#?XC@nq0R^-4uVB2Y8-s$@4tV zmS@9;;Sn&_d#jsWd!K4nsqd|QOQ<gm+=G8Qr{A4B-y9;=de-hc8VkJbJ5kEkp#<N8 z7*Z#vHrP?e6m7M@DPPXkI--n+^aawM1AavZMBru66p^)oWJZd;%G$P03wM^wlTZ2d zk6v)Vt7!n}jCMn_caV$fDD&tXZEMd|a6EmB(%FG9D(!LBM0z@nbfs*qDK!nNogIH> zz*AmWhPana2$Ba75Y?4B>ukWayYtMaf9##t|MF!a)_7~5(UN9ED(+Dz=V57dwC`%| zX+6+Cy&#owb@*A<L4{)%Ga^D5huk{gE)Hy!5*dA<5m8QFq^r1Q(#2};XRzu%=N1n5 zXyEH@Z}KNZqIc`PPw#C8j~=|Q2l#*S7J#Cj{_!_Zc^MnW-nLe?5!4dmk0Sz>G>>_- zkdTSv6ijOanASiT1*4EO>rmEN9f<b^a5#S2*qXHs$mnE3`p!J)OncuWMkA6WtnnIL zbUXDQO&Pv3JN#tofAr#`eDB2vcZK#xkKeOWV7ZY3f8}`Vw{Z4<gQ;x?2Z(>Bjk)>m z5yvhNk^yH~T<#~i#hR-GE4Sc!ef*5D1ugINJWW~Jh_EPOFhxdI_CrX4EFB!BxUIA@ zZDa$%+p%)0H0Eb-C2ycRy}%FyXV6uF<zzWddKS?1ie6(IBa0V96yJOyR&LMe)YSTp z=nWYa6M>e&=|C{99K;$h3aNk0h_z8_%rOCl%4DFUOJ+>bb*r|0Fva+`OZW2S$1m>M z(hnZ8dw@*81<1Uvvc{v|*QbBt4Q!s81t}*`wWp?ArO1`cV78H{Qz@!Y7Vrj4ffdK& zO+nZD4_!<mi_UT*8#j7{(FDegq@~x1GPN3#LeS8#usW2*UG$7vx1fK*M@RGBmhw=h zdH0^x_2^N1_QpmxH@4Ry#&~qz`nU1#ZzBGEyeeKZADW%lJiQpYOL+OGG-3tv5bRz% zNHna-vzj{&Z`U&HUNftZ?t%=05r?s@Y#`>yf#RIyYmH_IoAhmC!2oAq`b6;4KlwHU zDSulge$8d#@Bhkc-<^LJ!G?`&p1#|Gf(x36^40}WzOyaW(<o5;GCxT6Ty4oLQPT@C z%zlxa%z*y^&@=WCoI<GxDoI-@h&OabMp2EuQd-A$+|R9__|f4OH&f(q`{?5j-+%Ek z-~Bj0`S|zl<IWyCc3;~bg~%czxRN&Dzf8J_dxzWffHbJG5Cwmhc&?_sjgBZ-e4wUd zKod0`LRxV>+7xPo(IblLVfx0f;dG9%k@B&8A%T5f5R*3&<A#eWMSB>BK|Inik_ zU=NvUZ!SKOfw~k5fO>GUS@1Fr$$^X&7eZw@+hNkvk95kbqMHl!oq(KquB#Y|U<#zk z?1M$A%~1@G=6-+rr{6$T(H5N=U0_E)UBnB5LG5<nAvvg1Y<QQed~+$~@j1OQWJrdX zNtqYrHV*2j6e;kT)YRfulbUSgPbsG(L^Oh`TQe~@LJ!3)P599v*0<aL%l!DSBxu5) zyzo1O#Dj<Knb)u1bbDWenB^^?vVCJ9anBfH9LF|f+ns-v*CHXOo!N)X)g@tWLu*P0 z=V-feH8==6uOuo66gmyJGj_WyU8~uc!m{=r(Tc#76GC^ZP9oN7ZQ2kz7`iPU`uSbF z|FqfrXz<xLh{JaOr8Wi}a<_!oE@$lxN~vyluij4BDuoD7`|h$Civ49$J%{bZNF)T@ z6b#osTR(pgtu(cn3znueHomweFiuUODN~_+BmmP-cTu`O^z-$lJ{pGdO<}X#f1_C{ zv9y;uc=J85^Ke}W?BE-tF3|vBT<9ICG@AoaiI8cZt&4TEX^ueShF($Y-6|CqKyO&F z5&u@>+S=elMc^_bGr7<Kle=pifA)=<DnM3itR{aev@MMSY`J>q_C6*&5u$qu)rm9P zZYve9KyQR}7J;8Kn<fP-JBVK$_lG`v&G16@(OmB5;9NC$Ym}@jh}US+(?9dh_y73o zKXOdO=<?j{knZ4u6zf3hPR-q@O$_6~5cQVF%ORp@%omfa$)$hZCw*@C1^{G2SFiA< z>;->u_DqtjIzxbEDPA}r7B1m=ZXMre_*{BqA8M=3B+XvjkRjDNB1o2*uX#+mMhINC zbEa|7!fCO`n7yq+^TazR8q{(IF8*`Rg4uH0NE`v$Hf;EMBwCOLl<IMpa`y6vb|13+ z=rOx1!nW@*|7-*ES3di}YbZz!_8BSU>BxWOZGGk1KIZJc#Bqq$iOYbY_(KYZh|5OK zf*_i05Z*5W7khH=9lPP_JSTem<5XP+!SEy0LOi5ZAW1jT(xo9!|11vs!ia+#I!D%t zIZn<wE5|y#P)jcjt*DbLV8_$eQ+ZIACA}FM*t`1#;Z=1Yi?OxU&)zyLa50n8+$Dbt zqK)WaIm{!xNYB6|;-`NOPcd-Q1mk1~D-A!jt}+DDGO$zDfQnvGW9&0B2Tw4var%v; zdrX8VH}fvCa>5EIGYdD8W<Cu&P_tRc+=&yk$--jq9Rv(Fou_~PRn{UvGMuyN%7H?y zVir;(VPrK$)u5BS?JyvK%f{q(9IAgyaGZIt?@7Hv1Hs=76v7kT2OG#}w9)V2$z745 z*`^M_bGsj^vqpdV7w{BlftGQjBoNT~lm#4jdL-9r@I1C7d-nzf75rkJC$u5U*O3L7 zqZHjvlh$K2CIeUSjMX*fAk#Jl8x{hJCKB3mS>b(#WYfmezj)=DZgj5F<+Oi1oqJaS zPhjPtBCPfv-0^Z>r@ECj2B4l01}B`@CR9)&1ta|7z`DSli}79$ohyL}+j^Y?-QWdW zDcu|<*6F&Q{-rD1mDgxdR~B~Z7&?pvp6f#8jy8?U?j~s)Ef<+e;?kGTmV%3ND>$oE z3nkJb+K`$d=DbPv;Dr#-JUM@$juxjq5R0*ucI#ubdis~I3-QcMGsJ1fVPATD!)BW? z=BeJfk4qZU&K@I*l#+N^gHDeXe|bmAwsA2h001&LxImr|T<;NEI;78pdsp))N@Cm* znGq8%kH3beK;y+0B)qlS3N*7<9x2tZNw)gf9YFY#NG5|NX4Aw3>l%OQwb7a{@g~VN z+Nv|^;3Q!QZ5HqX-6>p1)RJfAIXJrX*{_S|eERFJ=7p7r9dsksuz|44idTsUyfSQ~ z0*h~SjTppZwE{~M)<<srazU6l?~QfDcApT?6r#(g?VVBKhij<tLibJj5ae1%*BNK` zr+?*2VMh76YB`xMWTSt`)Tt8?8@d2waI-e67HF@vrV|!Y_#_9RK+Kku9P5C=u(zJ$ zQ5`YrT8$37<`f<sVuwk9xNZ$=&8g`ksi%MSS}%^K%Q{eH;|zZecq&IQ1~Y)!*t^JZ zr0wTbVlECsxWX0QfIa6irIjdZ()QTB&mFiq<%#eZZ4>rp)+~QV6@`fdqB1nDxj+4D zc#3o8*^(_;aa!xaI(eyGfx3beNXiP5c|{XRZ`(b(qQ>13J<hAqS~ZGZ9XRJ|5ji$A zVcpw2g)|Jjta^ONJUZ*ri?7w@;Pv#cUm4-)%wY79bRTe*&7sZV_nLb<CtvVf?KlX- zz_yryW+|@12@iipgV@UlIm<3;wxEq8puf^_M(eN*?k1XM2kyqPRAfL;Sf)?^#+8e$ zfz(M;aH3@aZ*OgQgFh%Y(^6a-(RdZd!=rg3LIWNnhZC_EZaX4A2%b7bY8@fn*`=3W z8<$KTh_vjhA1Q0Zp0O9%+VS*nzVk}2IRcm2IVWyD#wdTG&60J13|+&(sxbm&hRc^r z$GX&XEQ(2fd9;0{!O4#M(BdE)SCvf;_lRnYz;mrVWFj}7xe{TT#5UvU-@2L-aQ0EH znX0ifPLDQxqvD5KW#SHZ9om37o`GJxRY<ONt$~z;o&i?WsSD*$m6NnIPSe9gf`q5R z__hOIs*ZoD;O}^fv)Oq1x36ym2Q7uod~dSD1D|}xUI@G@>cwjydYv%gWj7nFID=f0 z=%pK$rlr_twI9F$pe`CE3s<Q?8Eg%lbe6$ru+13F(S`qhigbSZcV4Bov!SCj+p*&y zV+or^jMntbQYbuvSkBoCR8v$^Pzz6KuA2c3wsC)mVx2|Bv^#GS$P}t(jbI)LrR{=r zwIg;(a$JXJTL5}I{kvCQdc_)qt5;`k4S<HhgKKYZx%!!7fLwJ#SFE#TE<__GQ01vR zASzKA<QvDXz`V*UOSLqNb{s!b#-iP}gVu!Fc86zNkPXpjKmB{xiO)AWuU)i&cNHqk zq&9z`PTlIW_c11`q>N#qs5sCmz!3o{-g^!guPnlK759J6=76$P>llvUk|RKspsX~> zRY6Fx*~ihY_4MywJNrI~Y=9I$(~)P3b3`s*HIV?*&?}c|cCp{*!U4Drr}osKl<vn- zCZB7M0q<%bm2otB`6{&Vf?Q_87$q6BYSDkdc^JwPHG29F-ueFD{bg@_-~F?H-;4Ku z@b_FdmUqKG{?UsM-nEb4pYr#%55N1%=hGMOee#!o29fgJKk?}YAHDbK4}OsGmw*44 zzW+zQ`&;+F{^KwG%YW%-e)+u@=dZl@=;hzcGyH`w{xe_xS^oSpf8@OvAAI^_Jj#EU z{2PDq=lzW@{Ul%fS6=dNKmLV3&zB#Q?|#wWc>mLv?|r4u^qrskm%jWH{pRQX&R6?( z{>*c~`=$S%?|=KNd>i-A{pCONpS%6tuRQv{{p?@(@=x&VKlA%PvX}33|C?AHe)Qr4 z?(e>^Fa68EdH2g-`iZ~)J72Djwa|ZLha~7CPHHpDF?bHsUBfyhiWilx*=?dFiBy;g zK0^nYt<Qm+$txO0diB=#s^~HJ;NHSAI;o&d)Lay|^W7j|=@1tPpSUZxLT*39D51cE z2Lw&vy$~;02$F$Tser6ZkL$jfSx3)0*yUQTEJp=ki5++*0zZPp=|nmuU15LcO%|Pg zP~ONUC@Z86o-=OM4Zrg7ho63OPbGfzpnYvkvqys@pZ?+B#L?=QgdY%a5O%dCwgmJc zb5v>$*I2XZG2GO+0yi79$Ga@god*~mLay$tF2YyH2<|3M2qLkrTdK?8W?h3P=G&gE z_^T-v>*+syb=Y;Za5gF+aKe8nIY&3#(t-3pv$w1nEnsOnZJh<t{Guy{bsSqj&VX)7 zhf;Qeh@HG_Z(G{@6eD-(lE~s_L2Fus8-r#uIp@=V^v+w*kNCDd^19n2%WXx$w-7y8 z_Ta?=@%fUOz*1Vof(hGt0x^i%Vn6LNWFW8$QK`Mr(%zl+!SE2nDWQL=P)jKoFHLkI zv!W?z`{4f05k9yNe)^B!`TnoIb|ADUxti@$41)%xq4WgiH?O1KfP%-WvFBJ3g3y4T zyLFvi4hhg-_%^fz2GTK>kA=$OWT>n=xbUk)mz^BTPa-!(bT&wp2i>+u9t|D7ZOy*4 z%6HGFRrh<#qet#;ZyA3##QX7f67Q9&@NGbI4ZIO*uHF>sIc02(iWs{KijOE~(@;@| z&AE*Y3-%bZ2kIvX$v%6AS+9n!0(6prWEd3erF#X^?_>|(xNbtvK(_~(M?-&aNlx$I zi^Cs0V9y+4=yPcvum1h^O*E_-XUA&FeJ-iYfgH3>wrb2oCv1POp-Kg|7Ib#i&P5@b zFa{43v>BK#DpWMcUP+3alJ`K56L34jNe2y3TG`4{$iPL*yA$)H`J1;^gi8+`=Wez= zc+~C<INuwe=Z1augST$JF~fE?4nq~X(8?1TsO3VS9|kM=NZGu++vwcaQdB7`2~GW2 zXoJmZy=HUx3Yvd=ZGvL6tO#AkHufS&`|U`D`*j^bDBd)0xAX1M+{@b&U*@~@;^UW} z+y^Q=cG#Y=i_%SU484u}=qBhE0x0r>6J|EpK#pWv>fF)Fq3%p^APT&KgDThoSgVp+ zGY&O53&Mr!1X={#@?++v-OZsa8){|i?2e#i0>MOhcR+vJ@1i^&O`W_g2>j?{`{<)P z5&NSD?OA7jzj5Zjg}E`F6i5yoYfjZ#tAUKebMLXcwWJP6D(}UjV{Fn;(G=LsPi-{P ztQ`n9sFiicCXhQWezDN5<2>yok~%LJO7mKQ%rO>e((U$|kcgG-hYyhTodj7CVl?<w z!s&pNc};)Sy~c553qZsY1TYS>3`3qC^6HC#)u_X5AE4Ey7xU_9h51n`_^l9v+c?hU zmeMIR?u-*ZgM-LV{0;~4=)rr2L)dNtG+vXtPv9p^$m9LMeTuYm2udwE5OR}>pq>Ug z68JVy!U3P8XZLktkF#h2ugKS;ahMOAoaURowQYYghGSo{opT}Mv00bc^UwlT!=L_> zs}(Q6t3oLtXxjA^1fOjO85HytLM^GOyCaHfmInj^)nf{IY1YtyZ)Ny7mr}Ush!zVw zI{A>eA$dM>uGqO3W#4g-kT7QQlBfUlowvZ<`^|*|j5gX_%beGoa)ruK<}Bxp>lagU zKWl$=D;}5GEHk@LWHIesBZhapuG-fC7(lBpXxtr^aDYdJ^I+%L2cU_%WQjC4#20+d zt;=!!RPda0>_d}>4aAH2o-_7nQ@r{vU`uJi2@J=M(m0~)F#PAo44iawOx{ZHYAlF0 z17qDsT-aHp>8PTdap0R8#|GK4eo*|V>GOXMLHyvydF~titM9!y&wQiHPvr>U<uB=9 zUuvik@-*c=8ODgVJ&-xwl?rhQInx(_$hyadyRfDik(45INM-cwJZ70+)xOQLW1cp( zwYieVgjTQyat+(PyO4hWm%qH!_`84nGF`m*;0Ir_rSnI=<b`36(wPAQT<$1nN5g-r z2!4=c?@0o)r}#ikw9_G^fZ5KpjzrlWt@>GIRHMVy0c{;3#P%5gi8eU(yosPJ-|bxY z{OJ>#p{=*6x>MW89E2_g57Lh6TkN22*0n`X>B8D_#=zc0tXzH1MuUqv2d;I|$6T!l zwR*<|mkHuCIM}otA}6GE1475mhXj9Y>@!v?zO97(TD|zd-ut0_5br%xe0%WFJzEoL zH#L#JB^o>b&~Ls4Ca7;cS>JlHzV&4N;hwBV=g)kD;&AT2RM594_zHqeg1zld);+=c zXmOPb3IvPnbyYE!iKCv`0EMr%XA=AXV=yXC9)rn!F)lg?J#NaYXjs9+JB12qqCpMO zqeS=F*O%HO0~&vB1L|~%E-}D}<3ZF%XSZM@?BIll;1xa_HIwF$_eXU%r!xoRtxj7a zO9|?uu##@5@&UIn)>54X@JgWw1Mm~^fXIDd=fB-eag+G9*PeDGi^ERx&=bwmVx)12 zb#9(=p=D4R*M1!dF%A=1>#iHAG~QwB7xLHyWy)Ekh~R%@9Tad`Op;X$4a-1Nb0S#z zY9!7rCU?byM{{;>&s+83$3L=<<37~v(c^Y^Eoe7-ul9B(e$cjD3Sa6tHFdXxpqwE# zbQ*%+06QT?cP1B~6coHxEzq0nL^H6$eQGXnZ?R+$@K@6|a910Fsug4IsEuB`;2qo% z+ob_Tc6)yleKb+|cD}v%2$=2f{r&e53=bZ+XW9w-rgyd9#@-dpoxli5A<(T1zL*VF zrKO^@zhy$>my~Vu<knh8*&KJgg<#h?NSMf?&3dI0Bp-0lwTcxrkdso&`QQ)<3axrx zN}zptC~iw>qjB4{*uz5HngT>716%o6IZ_04{f2+!!?>_~v3;I!*kKG{%G|OWv_zB; zHzJZY3XSo3rcE6GW<n=)AaZRZBw!aZ%C%ekw3PPUU-{sp_x-&WKk;VU5AuV%cIl&s z?%BN3c9U27T2j3hEUGx?Pl{!5?Bp>GBrWWTLXHgewottRZ(yf5Di}^i*;Z`a^sP;W zHEVy!9<M5#9lTFHg}NdPdcew^Y+#ro6G33bb$EE5{<F*P$<@yw6PpBAY(+p~k<7TT zO(&r?i_i8zbfzh<ffOvkf!Af9p=<64!bO1dYK=?gS>rO}Wl+-Ta1G{IypQIIhV}() zTte;XKfhWUL9><ahAozA=T(*%N{dYTut<M}RZ1)yw<zK*bSQRPXDGtkfR!|x6ID?- zoUE9_VdG}))(}lAKyeW*(aQ$95NW;b;CbiMe{s1^MKD-fN41zo)cZmm=^W%=?Fpb? zjWrs|EvV|PCe{Y`1NrZ{;B*9+Jm#v6ttQr*qT1|*$7tEbg0ipLs|(sLeVLi*<ZgfU z^j}_Mfl5Atca^h=;mgdTb^+8`Fum<mA4zB;8LuhkwrrxjvUpdJsj=?St=3gM2xNBj zb4jQM<0R?J&Ll2Q(;lV0t*aE1Ytz$z^#){^=?+?$%&0Pg>(lq;$A&qVL?SmnafP*x zTk|AO-Z82l0Pt4`!w6Wd37`QAR3d*5ottCR={U8~X+`TS<QS3g6o8YJxBD2k?7~L_ z9d9r0?`OQQ3to6v34Zj*Ju4q+H}a9U@W^+ru<I@8?D#lsvPAgU)lpfL-ACbgd)j4L z?=rCqB=XXyz@v}<)MwO2VHpL^rY*Ow38UiWyEwMz6{<?a9SfCDUY1y1&bWV-kG!@0 z$(!l+=wW+i`{nP=&uzc>_iKnvrqo#dTvW;4*Pbx8WVgb&LBL1iQLFFPr<xDb<;Uh? zPbR132GKf2zS<i*SR7I2H9-y^haI6sVE@1>vhY>bCe|@>_GnN4^&6m5H|^P~wyo3_ zgu-k0ISWPDflYbZKJ(g@GjV^$=%Y3C1CVGuFaCIKq!1h8d(2PnDeg<s1*nPy)Wp3d z8mq_>X$g=F;FvXqZkO3dlP2#ZdLMuME;<>vlm5}e_AL67Z_uA_p#mAnd#jGPWA3jB zVJ~hD%VV|CV0yx#v>i&qHU%a2b?9E37x$rct%1I0uW$-$$*~*v7`=a*0K&?(Ce5`_ zvg+kMyOVeV9c#C3vqvLEZ`o7NVrCybX3wyv=yNrkU-|3@Z{2K*77cDVF&y3IY_k`b zV8fzsX+uxN9KI*VYCdTe?0TTI_=$G*1<w(=F0qJ}?A8Zx#FxOvwmIzkvgY)jY<iN9 z?=uyKy}s`B$B(8-{p5dA{Yx+2|G{T7?$3R(fB!B+?ZJcjtWZ>LgrZ+L#OAxd_2J9k zef6=w^E==1k3Rj~S0DaOPt93CXpEMvua;4ZYOX4{f?W}F$JbYW@vC?q^znBe?iV^M zvZwXJU|UUvaGRS7(Ioc06j0n#d#=^1oyCYYw=);(is3k6-1dJZAB`A$W@`TS7cn93 zO56_~$~QDI-?^QbKmHn~Wf$Yn1K|%(9N?uCxk6gUI%<J%;cbGHFjI`u*!tWj&^yX% zmMu?1az_$wu`WAf&kMT-?XAdI8dNK+A8b>8q`|<qOh((ceYi(6=bo9Cf5#URLT=~f zqsQ_M&C9>*!<T=*dwuGkT`#}$JKuTl#qr<$0si;R8$EV9HK{RF_JQ&EIN>tZB+7x& z2h=LleX347&3&UaTcc05-dwixieB5guf}H?RM~rX8356tYPdUs*_OMFlWWbgibIIO z&D(wb(M-Z;X6c{(f?0a!{&?_6zL{Lc@BXFxIr{a^P?trt0c#b_z(LQerngpm;@r(; z9r%PkPrI0Pr;UO(AdiJ0rR|ioq_(@GioDH5gwRL^5G*F#+#LZn0mpS6q1@UWY(6F4 zmnbU(AAbvl+%nw%iY8oI=Y;2+8(n7v886=R9Lv_w_#1GD0SlTZtFkQ5*bA(^QO$$U z=`cMVGB=jKqimpcL8z1;v=vW=DbuZ};?X?QFT0LDa|V6%NWP&tdb^JP`0L*3ee&sb z_NG3&O}IL^7S!?y$JfBdm{0~JO4p!GE-Vt;wSQmt8DL>AfFELW8pw^kZQTv`1slF- z9420kvmwF^vSRAH%2<QkZ+H4fvu>Z6p?~4$65j6C(g%;{8=9xz`FUqjjK&+EsA+Qn z#EbN}D#+sTp3k<>c9pQJ2_orSvdJ<uyb~C)^Tbic6~<8L>qwpl33%85H1*N~*K)n$ z#eZ6zxh*Gp`nA^?KGqekcxMNFFb?^diTZc`9Dv|m3-iIF`G%(HU;N_b^lO=<gGn}@ z9zsK#PT1R4VAt&CyYW5<U)O^}{|>0Phf)lLt_hUA#HaVNIt%{rf>R__Ru;U+Vz9%V z*lP^%hmGdEqT8@!Ak%K#?)Q&o@IEt1|9|u??(i<k`@uu_rh*`@a?|y(KbxD^hkxU% z=1v&_lXL*eT^`<=A{`Mi?0YFBfk@y~q${tiXf&CZ51u>PPzKPqtQ0Dnic6NFbE9@= z8B-U<h3y8Ra9$2;A3erFrz87qu>7NO%+E~7KXrr9yjv+BJc4g*KK{ndeEd49pMR+U z3;<BCEDq|%2A$5!F$4N5?bZ==Y&XTCVJjWj`I_E42=}0}%pT;^aj0{go3v6FUiGuv z;O3!PFbgzuu=13OqPgvH+nszg5&Kqi6!}T|C+}Vd|J!N!;E{W_A1*ij@UOgKe+`-d zn?Pj0BXBsa5YMo9@WGqR=@+2CI;$um>eGMM?9-Ki$I3iJ+IeCMh~YL7Ii&kuSH{!| zo|m&PMlm${WA+Is42b$&#e1Jbu}esAXPhDKelF+}xHVmCd5Fas*1-f6vOVES;NYb- zSq&!99%8*wo4m&+p}0u4i9bZRk+)(`9Ww&OQFpPny$777z2{csMB9$K(;WTD^I?Dd z-n*Bb=}zVL=#l%{K(-bD9y(<m>Dd@zS8Q7kRs{-+wg;O*VH?OtmoBQ!bG2dA38V<P z4OjDyIPXxKN=Mi5Gp$S}oj3@bnAf=`&XS9H0G)ITiKqYOowpzt{M(rFHxX0*a4-Eo z2roUzc!46Av%^kEG`B*DY|W)**@k~>U`Edq)?;6d>JE1#&jp_ndbU8>Y;oT;PU1c> z52}AS@=u%HM3(4raTz$O&r5JX+sJN(mydp&+ePq)pM3JsyZQ0QAAbCt|F0Ff4AD#Y z1`wQ7v#}tJJf3g{v$&BOW1Z0O#zez(;6WOk|3(|pD-9g)Tw_m05DN`tc)))<-%&l7 z3uu+GrsztswV=_g%=SfY`b8c&MmKFn9_0#KKJO}E!dF{o0`u6~K$;u?C7mZDog1q# zbnB>3Oq1S#2tMqWTSyoKrbv*dB@GshLtBm-LKnTT))Op?Pyg*ZZ-L+XTl@DLuz#l% zlA0#swRY2K(GLQma5EPTQ@4MC*0^k6r*v8KVS)>HwaEz<)?Cv2wuFd|5lGZJ$U0X0 zwB1@uk2Zmp#U~rUP*1-~nJZ)6*4iHYIJdmqf8hCLBBq`xI`-J3Irr!g8icy-Wl*lh z)S)P`)g)kF5IfdYoyS5xQ!23B2yBYBwAE$n_F3Fpn;>`FJYY{E)5?E=oTlF6APhWw z)=$36KY4wZ^Lr$ptrN_1&v5Mx0gRp@z6^buc?8yGZ4k6U2?o@mowc-`h~NdxH3M|r zBf*glI3}p0Zc<Cfup}AM53aB?QQ@QkVJB3;9qvP%q;8FtkA9q60rJQ8qjzx%e&#DR z(3mxjrwd}S%G*@5ox*=xM@2#wTMni%GunpNm<w3BJ~)+ZH(;({#9PsvHm+$nmm|Pw zs*TardaT{1vCmbE^`ufDor+rPo+0(w%CGR88%9YXnsxB41~sV45`cl&Hbnt%?mH$V z&0>uklSgnvX4v3ebHZr8V;hRtJgG-b6!1<2PH38KU&p198CQSVcKX(~<mqp`^Znm= z?f%SUZ$kjpTR4aB%I?T@YU-=7kKycGJI>Cw4KGyg148F4XpbmP9%M6+;V?I{L^l{M zgA9!!NWVGj7`L|9be+IQ*)E6Y*Kg0ik4|*BnWn$`;^n&^ef;73FJ9g$<sUt8&!QgN z4eIeN)Gjab-OGQQgE@=>_$fLbB(63O4X}{rjGWm}5nAOe6kc&c!Ca)Ny$T)gG+6e; zY6Ee10H59_(GEDFrbxccqt#rOAXKrBF8#JL@aU+ATfXQ=_Q?<5{p7=UKh7WIkMH7| zA3b<?lTL4n1NwGS51a`l93Q+^-??bdy10^Z*_~FCxwwC{41g#~L3KevUSF|x#0+2* z&%vfPXk5RywaI9HR>XwXR;I#WI&{ckvdZ#deYTBF;r5pQ;3(>6>hZsEAGUYbV}I}< zzOj=0my*iA1wMyww(a7X>d~W}7oQ#U{-6{7`@j6<ortd~DDul9M3)ZuW~W%q<&$+W zQkfMHT%&)3_e^FHl9Pov&3v!`n+cS1wA8vVuo`PrM;WV!o<MmdX&xigw54AMk3fO- z^fhtt8hk)WxV;=cI>-Ktd)!}asCe`czR@1{A7ZI^3%oGjWNXg-;`MNM&M&rjy^eU= zFS~SY03iU{=f+Xn73XcY)j1YkCDk^q0M*=W=Nf+{>1~U)ooFy1HhY)3Ypy1t0E2cN zX`8fAajH3ItU_oOhJG%<!goSzBF*!5;ypUd{+WsQ>vsXLcZP-skKr3zyS}pR<}I*K zeWTr6&!83`ZRq;Nma^9paQ$W1vhK?RoBc@Itc?M=XlsLiimdcBftLER6^&HJ7wTK* zJcoa(cZ3mXU98cQdiF#@iJQbQYmF9G4S>qQIEQ5kSzFXMufddE{dVfLqv^8FZm$r^ z=b-6%1UlFm2%$sbg@GvC&)hnKfGh<;yI{cDbAp+<(ldg#$L@XZ0Ju6)Ux?8*wVs<b z%RvEP;sF0~BlP3BP4rLQtYvrh!3U4v8(V+LzM?tnEil-9gZ+N@tJuRWf48gH_)4qT zpZ|HQ*y~-xawm8h1T?Pp-ZntVl=IY}J!i9a)=Y$P$5uMP@D;Wql@4u0E+Lr{sSb@7 zlzE6dsx4L=$%UIwBlqK-u$RoXo8ZE&9jE+p+dMvJo-Nsc#+ze6G&jNPgX->F1z3N| z3X<tryGd``J-UK1)&W^$WKAH`g<gTB=V}o-00=|u^hEix8fKmzN5c#HJi|qGwK@2? zY4^GF*t6!nM~~sxb{_jf?R#&54f7lA3cX*+9&QYMQ|Gbk1Haz2jLvl7mPa^kR9*SW z6J|9~%vv04JVO9Z1$`Htj)tXvHHd%FnyeHVKz9;X_5x!VVN@|1!jjgOjeUwnoDOMS z!k(k2WI!zB=eEth)0r#8NV*Tm9_E04eYQUL_KO6H(BKYiKGYS9c`Vc7s_kG+w-$Q= ze156Zn=PQU32^pwqe&gPio1!X*$ISCED+0K5~`nStiJF(_Dogm(Ifb^oyULv5R>Oy zVATBv`-Y!U<~-Uu{EMw(Uwj^W?e(z<gm^mHIvo|!+6RTsB%LlzMdrq7(<GzLfZ)=k z?BeE*g$h<DhR_622zuHpe=5Z!G9$4(fd!~qpPWIh6b1yd0qo>%b!T7GptI2gUSYCY zFSRzjK>(GTX(7aSXEGeWb1;9T#v(L!uY^bl>c^akL@t6{jMtVUs3vvkrB@YSCXcbk z>8l?&!U&S2y~x&%XQth6{mdHn#U|iKkK-F#$-b%$_$_dBf8!12&m7Ah?J@tw7PRkv z(Sr5|ANut!YeyBnl(`ROKd2>*jl%<i6dKQ&M*BE~iLHv~G6A8NcUFI>91=nv1S5R8 zMpYrD*)wK8Yp-ssvS9e8n00`%lnzCwnM>F?lDG2r*=q#i)h;Uy#DJh;q9$;Zwya?r zK3y8in9G+-$GN}hfUuGL(k}Z-TiF)uuZx3hT;NPO46#>Z1QKiQAwbbX@t3`s!J_@# zvi8pHvi8jJ?9rq6#uk?^Hv<!YVhh@Le(r+y+D~aI`xNBl2QH6dXPZ>bGrNWC#eN#^ z;if7L8hI=N#}TvO><rUTFXpkM*4e5Es|LS*c3O`9UGpole9G*D_8?fVJ))A6m2Y=c zg`A#h%~TDj*LyU`*$bYRa}x1{wGS+Q1K|&jbexb}>nc`I(%`sCA5+(VN}P{Q($YYL z1QQ8Z`Gawb#p&C0Ag7|k(&cQ=Hl2R$Gf%g@eE%LW@aW-tW9!(jV)6RyGvBRQ(ogk< z3qO|GK5P#YYC{`&m_#oG3r&eRCteNe>$D7=aE~~YP9?s>qhb83?~W|AjkCgX3HObJ z_~8^=2P0dfc3|5Y_)AWIPygK;V5`gCyczeqLk>4gRJK_~D~KX;;>YFLo1(ndj~YyS zGZ#|bdz;Xs?sia3v&INIfg#rqj#aA(nbepEVVbzjW$EY@0uyAi<Si41p`!L0w1OL= z-{)LtGIVU5C0Z~sU<~0@A=lVbY45|E6{dmJS(L=~6^FfKz_ZYQ2^s)ur_NYnvui14 zS)i-o?Jycm-ufS0lYi=&eEA~sUH_qd@Ik(J`xZQU=)Rr|i_6`+c~Q>*tf5bE>Gy$) zEw6(W$MP9iY2sWNKH4cZ=ZwYJ3DwgS!i=-~rk=S@Ainpi?0cu?meU6!-qn*iI<1C? z7v76coAmVG!zNdMuzt>n=~lu+L-74eL)hwQa9PV)Xo+r`2<e>-V*b|Q{TiSL<k`)n z(%amHaP!{x=zT9ir@><F$;hGUvha%XISK2w2RyOXpZ<q;t{lw>WwlX92HN(7l~7_z z5}eE}Yw5ub+8FqXjI#o)b<}AJ3u0mdG+Lh3fZAt85QeaSR7HkLfH$*f9e4bf=?tAw z^^NjzKK+k)3V}wi`4|Y^NS|F76e5VQ8q)xg!7SM(I&EKNW%4yivrntD51Z`03V{zp z&QdwEadkQPo{&T^WiD}#nmX1r8I{a41tA7r{`5ax#>E{n4rHomnykj#*qV?d{`VAf zPtj~ZJ`jz6o>HyhW*#~Sbw)Mrx?)MM8heyW^L66T087GUt?38xUC`_6w%Mm34O-J@ zrO&7T`3+?HAaxM+G$r&8jS=2EyCd%z<%9u8KcoF#@UW!smSUoy+;fSx8RtYlRY!fs z%9XaKiTBl^Ql#P42?<EBMkyl*If%7rrZW3&-7qSD)<BAucjngS>}&Ag+S^;Mj#MbJ zCMPhEXUkj*TDG-EPu*ykr^+DTkZE4Fsf1@XO2ZK3fy}J2Xt(X~O$QbA!~4jbI~(26 z|NX=FKD^@`JbKKY@z3<nB~85g_b<K@o~tc{obQH&q_q_GuA`chb#9YGNIM+fozCHL znx<xdmx4xCOr*|2+YnV<o7Q%hHfoo}OxA+&ISfs#lPMe0n#Q4paOr(S_33}P)}R^2 zzP4DW-bGoF1Od%1!=pW;BoN58&M?$e8=}y76IdC%pfW*_IX7N@!U7;D(a~FD>Kmfm zz0y0aY|gZ5kQO_v^tf3%ou~ixo$vqA*AAP1H)?ItkZfFvK@~b~6T&5D_YUurxgcf- zk+dw{$!&0<(#+dN??^XBTNqguMPmmc-%q%02$h|f5&Y(~_RdNOH=_ffU@PvzQ&pu{ z)>sV&)V4HgAMe#e(cGD^A&TxLR3{F4x+@hS=DkstY%yAzO_MHe#|Vy|WGG|R3@<Z( znFvHX2c&_)Tcc!M$vS8a-Mn{y^ksf<pPTyNA$#Tk(r*qRuLm#ka0J9Z0t7@YQG`+< z&wU?5;G83%5prNlYbY0u?KSuCDw+=TRwi~VL#iRQF=2*2Jb_eOq1=I{ffF?+f_G?U z??p^kP$0w8C{u8mAE$0DBaeQZ+ql(#`~V?D&qsP62l4|*inH<xt$`{Hs}N3V$pc#j z>Zy#pzs8rW2+M531&0hj8mOV}R+QdWGiWDeA-xM8<qmE`LI8BqhyzFnG&T%D#~%7c z0EjTxMgY>lWYd!;`77}qKK_AyRg2(t-^aEtgzub+bH)`x2#e=x+ik3gSAPtD<So0& zrkzbYBDKNlS-Sh#Y-_9FI=9y%g|q5*vw!g8+@crqrQ1jO?hikC|G6)<v68Hf{!q4@ zwfAU9ns!IM;)E@9w0&sbT{f;UeVJ6xVSBM!Yw+7Lyh$iC*&2>?&RlIdc07D>OGYD{ z@Ns{@O%BD{ak`7rJuv1~PP=%2Ry8sdP%WzWR2sQ`M|WkY+?uS#g=(2Z+FGYAQ<(ze zW#NL(3<);ku^krkSyZR;3SOmyJ7#t)olHHV?^)gk!#&>U%v&4uqaWvXC&^Fj2hVjx za)1M%En?&E#rBS66YPwI*gga;BG0bps>-PdSkwv-XcWt^Ti*z#?V)pj^aj!Mp_x>< zM2c5yry<|TXeze3)1kUQCb?8k+<u$-6OcxWxx9f%gJV+^!aaLzM9wX0cCfP|Z#iQq z=!UJ4vqmIbWM_|A;eE|R2y2y=6PPS`6q{FH)N%dv(a+(Gg^SZH6Orc5=5=fLeDveo zp2zFseEGxY>cOoRk3?;Mnlr0T@3REPVPLrQ4A$NcIU*YkI<$igVW2!Wn=o89N7n4k zskp#r3MfAmeU@Ae(mm02Y@O|CP2#Yf<z7urZ^yo9#eFom=v$7`8{jDEGSp;x0eQ6N z$YFtswAO%1jdu5_y;eU3xj@$uD4ewha>uxgu5FYYw!-T&bFEH)4ysR~-73dJLgpNT ziZB}cvaeiXN0{@rr~mCLikyyv1cNZDZS=V(FNB8n4GPH-Tq4`tTlnOGKzh0=zDhcC zBJoZ$LU&ki!OX!E@-Fn;f~MvXnQdh>>VqN2x7w2ozBHO~ZaM6aew<t6&il{KD5316 zJyuf`rk2o(lIre%PE$t6Y%r3b=G{AMCi<c{lVEq)CD^>SEO6i?z1Bi3^TMTqLlr$H z*#+TiW)In1s9BA*r*&Op-_9udY!81lgz8%+)*E1At<ezZ%aMCcUU&gKP3-Jm$dL|& zwy!e|&jBLOUfro5l+rIRAGWgYaxRfYAuE2w+1E9vxmIC+mqY!CWCcVSTXFlFOQ@e* zb=&lP^yA$28m>Y62}$%BXIG~nXn$cIqqER>YJ{2%<+fpyKn_4j;+&Ih9L>eBLE?-- zZ3pUy+p)NSsUxC8ctVuw$!ic)2V5&1v~N!q2`Mq2RCAl2+XGtv>|13m%{4#(kKVaW zM`dK7U%ViHb#(*ZQN35S2-o3l1CR^9hF+_Cn}Sg2nbTt^ZYe9dK?dC>JdhTZC8%Jm z-Na;^bEbqOz%93NY>$4NTR7IsPwbOVU*>a*ZwIVv5MCQWE3gF*qCPsp>=~viIfRGc z6+W?hOLJJfqPiQt$-#KD;aiZUw4h)Bio*hH3@~he3!v=6)>?{b0}CP#h>S;_`|X^5 z|Chi2XI?w7<tQjl5@VIE#w!jSyA9E>FhVbpxx8-xZG3bu9Li|12CqsR<O}CgT8Yqb z&;(XPb-5gNr2|IE%1ziGq3x;S5I@*E7punY37!`WOjvd&#WK{^^Oy!~9UC#opqP4F zU6F%-&AL+@MIk4<x?3B?6Khi;3mUQqf^7>ux$1f<72F{;UkeIwC+ltCZQ=wtVBVhK zf7N~fDC@C%EY+h2?ykPKzDJ(}R=@i9TSo|D*t3sLcqKiym6g}*)N{#%se`sbJ(W-* zDDvKoQSub1ui6HY47;<O4Oucs5Z;64@R*%{2K9hhH+Bc8L>$H=)m7K|2DhSH9|5?z zYn-j4TFfKreWCJr&TxjS!$$yY-%y~V8Ed^lk@qty^;`#C0vpII)y7s6YfY7#KqO$T zWf#=@`>IO-dmvFTGt<f4ZVwNC;=PYQeb>!@csJi3J#Kfh4r<?%pY7xP%4a`#>t>vP zb|YnI7Jx6zoGhEWfeJVf2x2uLzL^XOs}`CxUA^F4obUwXS*_I8nYsIJiSe)riJ+b^ zBLE#qn6Jh`RjpwLtoETzH2ikPA!^}_q|lBwcfiC6>V3E5=(9Q6W~PnTy3!IR><F_9 zI`r$r9%o@0=?naWwhl8o#wg#gqon|UhKkvm1`vDsq-I@W&qE6gy}Lc|Dh<E*;0L!8 z?$N{cTx$6Dh(DhijvxHuEsTewhX40BARgj2Lnm(jysep8)~s5afE9QZMN+*rxICbz ztX;Eri)trWV%0!7bcs2P$8!Ug*fEokc&}(P6jAo*eV!Fv!^XA=^p)``KDQlzkt5*L z>SbhtCIPZCL5~XsnzMtVu{Cw*8t|kZFw|F%DdeSDL!)7-^K-6Bd|@dq7It`7QM{9> zEpo2dxff;Mapp7xr0}}k+5h(UUwrW5BYXMs-Ip)^YTkA49zA%^=11{Oe$?xj`Y3_O z=nkz4t&NJ~?nm~JR$8+-c5lspxrIS4%Ny0^rhWp)7MZhc-s#H8qf;DEq^eCsCN(s` zaES};8j>?mV41t1+E<9D=ecXLJos^L7ssE>lIJc6NBh*Kjk!4>4ad5an{}JJxZDqJ z4Qs9v2^Lvim^UMAt>|-lg8d<FL>NGrH60kE?5Mw+l@2IDWG1&VZ9oQpjEmDhRT}fN z^xW6Kj2v`_cJ7AGN5ZTFF<b}B5=&+t2qJi+>g>+FjlSDCU_z7h)3<@-xw}erWXLGj zY#rqlZ|y2Ot)v5YX4Vuz#}j%}N`f9w=3T@mrN-*VcH6UGJVc?M-3s61Fg+w5wfb&- zs`)ToerztBj3B9U0}YgaBG2|%DCNLVU=BFOj&axv(i?)wt?z}YRh!U3KyCRJul&b; z&)$3Q#mi6b%mfb}wQnl47SNqo?#y}|ggC%c^|W#LWKH~RG~{ZGDAp^$XwRbNIoN$S zm^j!C@4u);k~_S%xL~h|w-lDSe&8etn=PbS)!v<aOkMphu9H!JW+D@t1b9Y8I1Nf> zG()FDeld$*O(mPAyv9b5it+^#g<E&-2tt95^Q^g-WS%uHgK`EXoemyDj>Y?Eo@m%6 zApsY<oo#>m>Og$-@rOVDy?3vh>7D50!Nd2=rL=vof9_I>fB)j!)}!kL-<-0=GuU@& zAm+8hJUbVNX`0Y~yNTHp>m@P@n)x{nryp4cDi-er<X(b?3hM#^iU3bT;{!h`*16E^ zo!4YN1e_Hd5qYeH27uzYzUKJ+#)UFPdpojZ{@QQ8e&t+Wwukq*8^jb5LUUW&;62w! zMl%n^!nU|I6cAt+Njn=Yqb^IuXB}MzW=Z0n)jB(x_owxL#V0lLlGLC_Q5^s#TjT~r zG06D03)%^qt#mhoqP=!r>LC=S$fOU8R3s7t!NV<zc*F7?*vEz*99T|GvpMIW34N;- zQ#iP{jA{p-U5-Q${3MsfYHi?%>|p7;JzxDg7POZ?Z$*3b_&vL#&6^c%{w=VgJ^df= zybbT*Uw;FC?;zYx$7u6(NI0O_9c{q%0~P|G=`?3sJZAT+l(Mv_O=(5#_!WK$T4T?t zO>j!2Q?`-JI^rC3FpeS$Gkn@^-NJE=b={o=cCTAQnWUpr>|LS{Y_h7533Ty|Ry>c1 z!9yv<T7wg@mD0iJISLfJyiwc3Eaa>_y8=YrzIZ}^N3!wCfg1p;0IV&5IZfYfSa1ET z+t$_}b9=tv_~22yFF0;AL4LO2`05A0_`8>A2e$$CUhL3KD9Ld+z)`%`)Lg}VVk_HN zi>NogaJevyf;$C8ACRB2_c_bbswKYOK`bqtwFitMH38i_r0xSTn-`|mi=X~ayn7RI zc_{yXT@Qg>S|BAHGdsu}$RRX0-~qD@D9C|qwyscTfB+v*EeRZ<=CN@{lI*pR=rJm- z@8oWdbm>-5y9G0wr6@aWV3g{L6H<#<2`b-+|*6_o!lO|O<Zkh@hvKxFxF^L7ac z{NO+9))9PIg#Kk73GS;-(>bUXbq9baE$6;}U~s7$`3`eKv;~}3aL%Xy`<=I-EdPz^ z5<J689==EGMhI_o9-N2S7BH!;s`J*3?s-<nF|V!&*NVew)2AZ_*o}@;7c(!if!K=) zGdwQBy$dd)#|QEc_PnUuP!xd`vCBk1AJjzcRp;^|>$;-Ww?bsrE?~V2wGTntg3Jnk zbdt7tYVUNi%Y-2clA_|#JyvhacQKuz$SAZ94{j6g#C^=#?1{a-4}5@JIO5t4=y1kl zdisB^9nQuG)wLAs4qX<o3F<|M)UFl0;Tx)3@5qOh-KUGq+&kx4VEqJ(En7+m*XmqO zZG$%J0UHmB!0pt|Nh3J<wB47*(G0GC5w~U0M?cONmPPBmPoLK=nnE?q$S4@QwO&4T zh9el5nqEF)JH12Oa3YqRK@<1fp*e>JWbiVB2~;#@4TaEryPr-K2odYy;@K);R2w0g zI-Q29N$>teNtC{hwKikzz98J`h9pxaN5p4DjGR6V75sjT>dKWN+emyr-dgB?=sfGp z(c1M|^bC;d;mJb2CnE|z=uGNJd{|>y1CDs8M_S(T$sYYUw+HQ?ey<<B_$c3d@xgN| z2fdO`R;Nzfb{L$OJV-Zkpv}W-5hI<9R=+4?mZM;#>1$OC^+ZnD9zF(uQiVw8BExQV z4miX)_L<AYU9WJi1=j$#HQ)w+$a@isyfOlOTciG)tWl3P+FZ*Vpg3s-qgm!G=M7CG zQ*u97v<w47e&u;|zeLG<*ML_J+qw2NP@mQUONW<3vU(Dx;5^(&_o=h68kbC(8;nps z=QcKW{nQ0O(hT}G>1b7A8`$vrW_9?Wa>889I|$&%F><dYJq%S>c1D+f1lK=8>DC~; z5%X<`txGhKLeR4ruF+)`GV8tY!pXA5jU)#@{l8Zvv5uMy!-^lZ#?prxvg$Mx8FvSl zpj<Wi$}v;Q=romCB3teq&{T_fJHCi;#NDQTE#Li|OLw2ErHqcCj<$(mG!C0aCrIvd z8Xo&NcdoXVAHR5JP8H#QY`M-z&@NZaJ_E!XKit%VV54Ay$)(^F1@V44Nhe)}qrbsq z-1Lh0(tW@&<Dv=o><HFEP|;Zl^<qXj!JZGLv)O6eXx*GI{y^wF%*2sLI0mDnz9i4; znY*8mVN?w`(yrOZx`=%RLuEGx=Ra5ZssU`lD*SInc5V>Yi@ULZ?R~(&7}l!RISjq+ zL1yyedKE`@D@%Rw<J^3mzx0VcCtS3YAmm**JSJmGKM9GwGsYUbj7*IV+o^$CzmWN% zzIcm<^MUb~@y4${0_5|hAav0@xfk@BbA!n#3Pa677T4m@P(YF{>HBttke{p&wJbp( zb5rsS<s@<GM(1~bH{nbqcI*fpOZvn<(`gD|9w0F!EG}pPE07g*E(|*;d8mAC8zg$+ z=Gtmw&30s3hXlsJP1rj1>HmA@`@j9#i-CeR!M*@Jc?lwrI#%IEghek%h8}2g_Q8G8 z8W1dFu7+cjX5)}vag2k3sjP#QA`?>BomK(8MrT_y2cX-3qCF<Us}wlhyI$JCLcZLW za^idJda|g6E=U(9a0{n87)7pWye9hD%O-4qi+2T?8vp<7y<4y5S(4r*#&ml;8XLP^ z16OlFkKiu5V@0eLD^`Kg@Ey2A+EzrYSk>8+m6_zunw}otm>DxZar6N&=kxhs&Txy7 z;0}q80TL2_mmnFV=gq2~s(0@}9(88FyIS2>y?16+?Y-XhU;h;m&+~h1A!2M^Om5JZ z8}>I38v><dP7iHz1Xi4VjA>phgEiN+jrNb-zsg_x|8EA~c>Nwp<)bf?ZNBmD>#u(^ z@asI@K)h`FfvN%;-7}yEC+ugGvg9yE%wWMUGcXQ+TRP4XW58II2A>!l1my2L6&G3) z04jK$U0}LZVAxy`1E-fsSO?8!Q9_vY$asUF#(3j@{pezRX&qqD(U_++5-4YQqypr) zEcRsJD>iIGy4t`DJA~Z8R*zv2y+ZNY*lHa7{@nY%WUx%>(ILQ|6@u7`F06+O(PR}~ z=a~9`-T(W?KmO+XK36fr$`$4YDS4dm@aTIjkkk%({4y$Sk5P6EXygT%w$tWm8~inx z`?>)5BctQW%&_5h0r=t~0RV4xA37kSEHqYoNX&335FX$OZj9u4VE(@U!nJmFp5A)h z9#J{T6{A3&qDrA7RRB(J0C`L+jAkj<rBfS!#2I5wbnV#z*SSD|qQjt78z{MfbSiij zCNi~kR+l<L(S3tq0hG!H*&?`L`UQRtAi#^ouDi)KY~aT5rRyHjtN4E9+h@;T-oLJV z@DjiE;ys)ze5c8mmGj^H{2Nbh+esL;sOFUj*DiRvV&U%P5DA^LPojW;&Cog==oHz1 z5<WP|?vtBt8G)5SggSJt+mX{EUZvbYiq_nYZYpf0k=blE<I=I`1L^#&k$Yc&5x-fV zzVz46zZhq|`RwJ}=bt_tXWe-59y#m!SMHAQzJ3opmeDWogyv8aA@XsdXaoB6C~yP_ z3vP#wmRzbZ+29~q^%!I&Y*sa(e+}e+Y98U!4leVib0H6MHpeY$;JsD76FFDa$fk36 z&%3|%0mRI6O`%#cV(!4=YSo(1%-cAZ^p`dl9qMhOV@zY1$`<g{5Wqd#0B3zqP8>Ex zF&hc786R<kLu+!|6HG(m!_@Wgp4(hNL8I$d&8<;WS10ZtzJR};<*S#!UT+?M9Jse$ zy9Ya;zdFbL2EV5<?l}lGRXY-NCW5pYRog7(7cq!;QAKg@$8!P!&K-P~>eO}P?wuEJ zFAP|OrzNC!+_=+wUuk`et%DB?@iB&?iz?)M9^e&@-2Lf~-v7>T{ahl95bHMwi}`8E z%_*Al)Rn-?92iT-8LnZ1<W;(V)XDA8mMMN=y|Kpjg=9-e;<-_%;5ye2&x!fv@i2qi z5{w#<1_hv^Yw^O35sMFc247-;K6^}wd+YUkRLM_QO8%b)5a`#Y2zn$RJ&v{E#Ecqs zxFv)foQY&KWE!^cO18lCgpMvGY+H+nzK53if_8&D+e%>!LHw`;3p5db!AR%R0f?JG zo)L5c(FQiai(k?D_25fB?`YrpV*mB3GagAQyd>~MTJ)1)&B5YF4us7!hn&4!sqrN! zIxvY9a))WZx8a<t92Ia-JL!F_HRVi_W__h%R697PwgfV3rP)OoaRwpcXD!pX8dadI zkU#Z}_b+hUNlY~~3L~z6;#M(@^-Nsow2uK>5h92RE<yD|RP46B(b$*M1~`<0WEC_6 z1_Jf0>sErVeZwjWd;)YV&EdoMxw}CMqy)P2b-d-R5t!HPhIhB4`?qf%aXH?4=^lAK ztgl>--hKU3a5?(NKf36TJ(RUk@o|;Ig3rBrsT|mMPPT={?`a!<{+T|#1%_pDO0^*^ zs6!<)HU?FlS4T{HD~JmVGhyi*tB0f>TxfldGo{u+G*>iVcfa)k^rZ_2Rni6sI7>+s zF-<Y}oVB-Vko4A;h5`tQ?@bUX+DsKf>m0zR)wAK}EwzTUE?F~4VUnDOz^=l$R2n*U z5=gIUFgiK0UW?U#ZarMTrl7rk_Nl*q5VL;cHG5RoEmykkCunAeUS>=QBrfEfEvU6R z-qz~9^|SSKB{Le(3#$}4+7YYgIS{sDgmHXzq?u1>{;JIZ4rRAdnU(8;sXh~s@oc#5 zgM0#@^#oA=x*WJQ>-^dv^_6nqk!^SD<$JUmXjj$1`#A1@Cn=;EQ46TE1nZ4f)gipR z2mv07*rlT$y`pU(P3J1umkq<ZO%1Q7Eq&IKN?+P`SNww$4LG?BhOz-lrp4WSLNg40 zD5g*S?zcaB0!6^jYLfR}lSJ>0kbP<9C+D)Ano9Fb13DYLGKT(JAn%{4BNm3MP_?TC z81iU+<zCf)`jn}NaB87;(rFjy^p~VoMAuY+hdB%3mcZ35TTXX>=A$Q2iu|lH`XH6j z&%gKX*<P9EJmdI;?0ud-bRq(5QzFQ12q6GiOk&QJA{Z`gOy;3)+!%=C;bAgjLllP4 zOuU$&cz2pfVI8Qic~<BEhtYJc#U)d(E2CQ*O@1_gGI{y>(|qy8$mHkFgURr%*X<|c zU&kw9;Ys3NJwtOxUzg;_ne*teEbLtBiU3n+cV}zXPe|cJ+pRihq}auCHO44EJWlPf z%@FWGe7Re8t&RbB?KaPBgGo2Uo8}MRP&fW@t`3rK-q)wU{wVNJmnc-rRs%A>*{f~u zU}#f+!Tj5MTMAwopWX;KX|-rIDrocWEkIXTXAsDLlB$T55gLd0LL{>4sME)ZS~O(u zvFEYf)|$56d|#_<1U7*8-+kW~p`a&#z&16y;-Eg#+G%^9iKk3-XeQ0wp>x^348IL> z#210xkq5X2PyiJgn1j3q8N0exw&Uxl9u=2=W@oxoT`nKmFUsv}`o)bcV%MnCbN}o| z>htTy%8gg<!3iQ)1)ltjpz||#!b5k$2bf*U76j0A3Slsy5(4<kt2CIK4r-Vgkt24_ z5d_}-(4?MQ8Xjmd8niotv1c1~*3Rs6x9z@Ki>gvjYG)b-v$~9%MU1hm@A;rRdutni z-gU|TBWF^+dhy~Bz0j?f?<Y3CzV(y)vxDS`A0z>9CuJ{5ZMA{X!ww&CkOD7^q#5Fs zLy!i6{Nu!69;q!cPyt}Lp)v`n({lw?2&XEt+QOjVX#Jd)#-6>Oy{2z~K~9*oCf5ha ztt}c?8|3f$?B(-+?6Z1yp1-Jfx05S>B-f2s?<ZE$#6D*=svHeDglwuEb1C2xhcTd* zT{M;gl7j3sY1)#Jdk#Ap(ql%sqm=K>&rTCl>nf0F%sri<?HG=?NbT^h_*ig$j&V}# z?w|MoG8omdD7b|s{LClotTT9~HK~>(h9gSNa%aa5*}U7%R=yCp2IHB)`Ao2X5szt^ zr}kRZ6t9pnZ(IWjYs{RB0Axdk4v5YpwYBRg+*^z6u4gQ7?_WHR2Q;u7uh}DSPP=+@ z+K>O{eE%~R;t6mkCKJG|B$~!;ZyALyXW1e3OVZa2N*JGNsiuWn%qAJAyYTiz_*1S0 zZZq^ytHU+{=tb0J=snmm$23=e<av}McR;vb_XKX8<a)K&KKjax<p<@z_Q;&&)=T*4 zoQ1FEEbjwEck4OJb!^6sf1GQlR{Dz<&*If*FCU9SVXfgb&QZf8|B}Rk;=@*KTccn+ z9Gv0%Qdck<rv-~ur|OfHYLV)pWsLVZq<me)hoLplm2@G|b2X&ULWtdekOpF8hH+x~ zgAoUP?$o;VnCNFytDm~5)dLvzZGW6={rD$^VG#sU_s{dO0t*8zrBS@k)R||+h6lU| zZ1nU!`zb?rP8wXl+!}|Tob4oGaL^d(JJY6$pM^9m7pMe)@J+OeXNMaUiJ&Kta@Pn6 zlw)*jf>+Qr8D#uSAo){&I|h6Lx{|M(%;n)nJGpi`%G(jN?aa&}z4qkQVS{cM8qu1a zTfw^2R~=F`&>+oUh!R1_t@xP<X+L@^Y}I|CE=IQ80ZMF=+5x|b(?NHonbObdk8qlh zU-S#_J=|lv=F|~wTcNoph`Q(<Tt!3f@;<|9+E}{AiZissw(e(tZ|a?SaV|ujx>+Wo z@hmrlIuoIv<r0*(Hw8%`O{!yPtAvZ~&TzRt0d8%tzOD-|NQDQ<9yeaIN9#hpstex- zQ<azYM7<lK1J0$*NLe1GfnUqHma;WILt->KM|X&ol<+n}-3=am763MM(5y_^m671| zNL$4NaF%VFXJyxajdm!VJz{dM=y$&ZtqQmYz8WFDJ%s~d(Y9n3bLWt8kW)56Mp4R^ zvEwWo<jw0c*|G@gxbHY2Kn%~_37Bh|Ha{oXhH)QYh1xPCtSyVyMqDgh-0%ME2hh9{ zkGVLgd?v0PbLWmN(g-oDW3?4L@N=??&&u7TA_s7S)+7vn=O%Qy9hdpj=JGbcgR$sj z1obo$)My_d%OL`Vyj!GSfHTLh59nK~n;+CY7s>f!ZOB_M+#{9oS98PK)65OCT_y84 z08^Q(X)<C;wRaM3d+gJ&aM^12v#k3zL}gBgzJDoVxSRN(&5cAPH$=iwVJ+6o+B@dZ zX`(qUa8ibUWxOKDm1;hK_}*H`etp%ufBxy~7xnD^2hV@=H(xy1bhlo-2b+$*!(VB~ zy!-mcKk--Cs%FSb!3odC)VFe#Z=GhoW+ZcNvoe6v)LSE6y6GhG@?dRS4jNQRMaTd_ zv?oScqhAsn+v3VX3V0=v9KpR!DOz94+TEY~0KIR2OO-YUfMI80zGcCp7YNg66ZDzN zMW;p>KuyK2qHXq!QQ6#pZ{B^8qo<-hAO#z97KB6@%lr&IAoRlsyeR@{s<n@v-K~%7 zv-Z}6;A>9ZCof(-Xno&$$sSM38`o)h@5Ar!muP5Ui;VU}Nb2cJ5oSCL&0lYQU!tBl zvqg4)%pTY<vN<sn?1h8O(Y?~6GeX$}EupP68nP^VdPnB)E;|Ljn{8cY;x0Op`R>nu zbn#Ki!o`-;AfRt&E@<VEebuLpuC3LaU=EY7Y(pu)l9FH_=P=X<qpgA9R<Ne(7;cqg z<HU>v=@fIO*%rHXQmqp%<h3x}<)FL2@X;lIuLaf=2Xn7!?PMI7LNaPJLmX#pB0F=8 z82~GyF;+W<bunv7ozZyMeRMurrV2hQ2~U8bwl4`N{$r0eX^zPWj1?u!ZY7QM?k|4y z1SaQS-$6bv6r|;${cK;&_6ncIF$*T6nnc5A>(W~?;RPEA*ikw)WAUKk7Gp2-f{@gI zeQji=7IN<|we-S)P{-PuwIyZD0n4E`UhORTz1Uq+))E+P8DkOjYmBnqQ>aiQ4;9-B zQ0*EWOk-+*dQZGC-~E%-T;`Al;te9Jcjp?_NH;exHk(6bcz}-Ax*=X@P2RneC+FQi z`O&4Mk9l^^1X-A5As05hWW`zxAEOL^tIJ(s6Bf-K(Vtk4UQ6t(4(XgCGf#{Upv)Jh zj-T3t$2d@qZcxw0oQs>`NkMu?_07EU?w|VT<6nGlFSpMR?mxPp-@pBC-GBPsc>eM` zpML-T<DYw{+-`#`37g4SY?<%DQqcyk=?gJ4L8qYku&tTyio(=F8A;8hlj9tJnS;t! z?`zJrFR6QVAPQ=2lLF<=rH67g@Y`e@?rkAx{MuA^>!JF!^73=B!~KiT9#~p$y>bsO zd*e#zFy52Uq1GC%;^b{;n`}n_@fm_At3%T<`p7A#8k<7;rNq&)H|xMyZ0kK{Ok8Je z3O=2#h8NN1q;6IV(@Exo%ow<Tnl~4rR!8Ww+1)?=0WN#PQ;wp`-+fY`JY?5Gns4wr z=pF!78E5TU%Zo7I%LQa2+Ui^j2w2pS7NjUaOrRLv2Jy6au~A|RDV7%1##nnJhqc>8 z`~F(wbL-~CwU_(;Q-AaJS$uX*y?J2nyYbRJqVVA>g%3YPoSlr7$AuGrq#*AzRkv2I zz4{hMm+)NRuf;u~!aR7nHeDDKc+qKAa~kj{r@(g2(v4waG+<(;kH&cRG-3T8{lr2- z=GlZGN3-ku$`hVpUo*vSyl{`I9Qu{Y;m7XfyvsUWfq^Bb5p9??3LlFshc;!KZovC^ zaI`VYIwSLoM=ey?(`P?_GkABuU>gjI-rc(7*~Ez3;!}McqTT|3&(3Mw=d97Z#aeXt z&wTU*rlxoQ?1z8{94Dxn*>&<HMz~DoSTT?cF}O1+sKjf_F`(*7AUKm=$TR~!iAx31 z$w-O_Sr{HLV%@C=@9n``%z3qqTVk3c6m5C~-AEryrf=Oczkc|Cp1*$Pd%vlN29sMa z+=GX2UBRH&dxAmFv)q^=lO=fLC}T7!vK7d~?)nb<-eg7ZLD3R!9|yvHwWwhgdNxTO zMy6N~ZXL5dgV8Ll8zwVQDOQo7T~M~lj;I(hMc(~$c=)X4$^FjPr=fXiPFEdwr38(B zt%KB4k3P`4X}%GEXTp8Ro)=mQoPIrgZya(P%iJevKY>}N45wHTyNOnc#Bf<gq6eWx zL-Ot~eSnAW*wAK#X2l-MMN5V(M#}ikZfz_Zd(0AVk`1{ngms{`R02;$l;_r?shmhY zF<r;qyB?Y+Imk1S2`*?SO+{F=ajr8PddAmH<y&_zuZxU-=l9S2%^UyW^ZV~TKnLG= z<sRuM%T-5Ne*BK|2S5j_G*Iw#1e)vSf*Gs!(X2;v@fe5|4{DAS>Vf5;wjv{$9B;#* zKF=D{#%{xAxH>P|v`4WGvR$1|LVC=|=cpYCAp6=I4&iIE`;8kLS3B<Se(m{d{z*Oi z{{5?$&(52FSD!xHk1+jiy@)><ipK{?*KU-9)SMhm&f>lM0#nD=l0)#-(&~%?jl7@^ z?rW-zLP-Uw3ag|;RM|47AXEV`<}RKxxZ7!6Ywt97ntG5A!t;!2OIG-~7E9c^et&S> zefrs(Pd|I}J%4!I-FoF7IqtqXwWX&ywO#H|m(1gTqfhNePR^+ce!;N52nAQbFK~|f z#o$Z8=BCXRYn&kkR_<ybfKR;T2r@(PMS1PORl^nVfoXeW82*XuOIs6a+~|R2>BjSc zYbh;S;h*~3e6Zhcy>36T%dID>1wTDpQQLzH-$t(NNWEBavs)neLQ7_cQ8m(X$T&Ok zavIKmpn>`6J?EjNbG#$VBH5$GXt~ESw1qS_DT1nfw#`G8h(^2n%O9YJ7jq(>&#Cih zax_vL3fK^DqmX#02QSD98`@_pyOg^#h*+SJ?NqE9HkR95`>gGzL38v4skE<Mx;H@j zs~3D5MPy9k*lfG51>`rL5MHYn&#O1}$s06(RG#Jcp1*j|R=M@^J%SF9ue{#hef{Ha zelmB2E-@IEnLSotL#XySBkLeC13geJkLrk%ZCymVwe3R8o+FX3(Lg7j2tPm_b$ChY z+PeX6+|W@0hTfVvt%}jJuQr%d_T67WWw%mliv+v@XLwHPLz;<d`qa4&8R}_pCia<s zi^UQ0?)0lLi<<;TGa5G8C5i;?5-V4{k*c&;J=&Q<<hEc;J6@-Ny%Z$6f`T;7t z(KU{56!*lY(FR6eOs&HaHwq^z4%eo(3lT(;gnAeUByY1=z3En_oTEnY0F)51JQfGJ z-A2?6@$s>sogQme%@vi^S04{F6Sp3Jk6*udzVG>K_pi%;?LiOy#_RUTv)8Y%9sRvv zJLYl)%79Tr&|>aQ5owM(Vj}L?51(#4;+S`tGMhn0)f3Ukjbg!QG@&4&)4|4%g(UV} ztw|pWjQFz1-M#kKMQoiK<X-!n?tb^rU!(#@=E;Gl4Rta|=gGd%Ax?oCpmsNZKA{-n z9$_AQnV|H+x^*meZJ8v5bZHGj@I;wYR`MExklC3VLjKV)_>VDth%8Ddy3FtXh2O`s z_w7IWtFM3UlkeYu_qD&dFMspN{XamjzWt5(?D>ngfAZTu|LQf?+F$%5-~L0Ny?p)R zvrj&${U`s_ANcs^KK{ACy=T^c9c?*5C`a3=jb|z^8`0N{5*pfy1q)=swjsT<2?V># z<)-9nY-2G2QBPTpaKlTl?1W<IBN%RPHj8;!=}`HACW#PZR@cw$t;g-x<;iP*`@LuP z`PrK{KfHcwZ@qGlW$LsqzcRo1`8VFf(D%ks?05g-Q;_)F{k0G9&TLSB99T24;@Mlv zYOxL{NORJ?E-r?KHocx;Z)gXF4{tLD!;554+*v#5;w^(;*UlPE4O!Ad(GlEn(N#A` zvb5J68~I?1PL6BI#jX3^*E+-R-^a^`oV?pE*`sQ1x>9pL!I5*Uh5PNmTz+s1%3aeg zS9JD5Lvl_pi9W<fAX<KZn{uumu}3bOl>!s#Sk89J`doRM>{c|W88f++w%Meln?*YW z<5ufp&3#^1NVgttTu;63U%z?&^6h!{{RdO8TQA(B8&0k^+!N$xU+8e~Cc%a^jARPR zB~N8U8JUdK;gbn#+Z$nol4C&EjB&N};U=^$6L@qE^kP$=$Ti4+YA0Gh3$7^Jo=#F7 zoW9sooXK^>^_ca>1NEy7_xHThI6Qy3pZV+8FMjy!d-dXVJq(Pz^(y|vunxEO-2V&# z@ZJ#sP<FK4(LZ!kzo@<X*ljC1yRrDh-gLMxKygM6Y8;3iG$-9b6ktpkl1GF)R9`Y= zi@NJEUxqmaY@M}#Rn5BlG6uE>C1S-mcmL7{xU$I@1GutKD2{r}bv7!H8Tj~H+FDtl zXPpD8*7i#{ydG4f=`jajoWO@l&2Z1v1kv=c;aACNY8b%KF3f1~`s%i2^iwW+ynns8 z1`pI*w_UrRO#1B;c-eeS-+d2{He9Q8h=Gu>4<9Gt;AT>PNWbf81q*e{vt>-+;GhU^ zGsK9T`kEC>8z%r;ZMfH&2>yoev-^xmyVBa^X=u2!ms4h2n52vG!=vpBV2%0IJ>0pc z%bCKqW`W~0mt96A%@?2P%&93U2c3aI44PM;9uq-$%~RGHCd^iT84s=0fMLRh3-&KM z9^9#&CYl6)T(1|B?(Y8OpM^dARK7EZ^vs$_`0NgJ^TaTYkgl_2?FxcsZtkI-MF<Rl ztbUZhF}Inr6^y4YMJw!xfeRC}dQaYf(<yKignEl(ib@-O2S{Zd_SAXzuYB|b-rU!k znH&E&*DtyA*~`Sye>uY**<8H=L~=N^X^l|k-IjZQs?6w4ZC!>zaIt4=V19&lIa_qK zGsq_}g547dO05-<4sAMmi>*$KUv<tkHduy5*cn8ilItGO^QT>Jt}jeg?sIiyB$pzx zAk8522t-g-(ot_YC#0CIx0HRB8nLI6>|D|k?Vs3cR?XV(7AK(qa)+;;qff{2y3a0Y z4KDkCFq?3-$N*!0-2JPU&2>(PUv<vD!&_xvnLw`u&(+BHCLMUP_lk=HW=6yEi7C&J zIdmTbGh-5B7-EERQd=pQo~%4_Apbbz04js@XyK=LV5T?Ey!+QK>dG87nL@)ZA?BGY z-M~<fb}Z&<brIIm!VFuwmiR(=>auLvwoXTXAw@v1V0v1-&{PH@eF{F^F~~rUY%)&P zWKo}&F6UX|zVH6^i@|J9o!-%og79IbgS5PPMK)d&#yf1wakO{DTAxx@AleMaYU~6K zMqOyDi(niwNQkET(rGk(I;DeH5G!hMQ|_%n1><;)^WDF3nMabb_b_~D+}uQ#Iz`HV zf^4JP+}M~$FtG&%X&phA41-deEU^UxGC7#0HAdrl%|0-tIu=mz6!o>2`%&uD!@a=> zc##Vb3*Y^lAAS7M`<GswSYxV9H%z-sxNlk2_~4mN4cPJv^0lxn)HfESomH|2PoQ!G z(Yd3;@37{mxq0VWv~vKBI||KCMV#$_nsAH_Z}=l_vHRZFO4A$9e6MF4_s>6h=`Wtu zZ#;h>_Ph1UJ>u$VSFWBX*<ywH367I)V<)^Z6IUDQ^Du0D8{kA&uDO;+?gc^!@0@Md z<TVfElX_vj(%7?(4)c;)$Z2pNOKI*lyUj6&M#i=dr`KKy1nIfnakrjyei40t^Nq_0 z^NUN_k0zPdyYAMj_h6z%7@&P=+kNx%Z#=nu7dcPEJu_tpBZ{PI_7Q0v7TT1<2MTU& zYhVpy87{a7wi8UlB5WDsNTF?WZfbd);zYDaV{!?ZI&_|H5;}218pmiA^a<(LWx$OE zX4jPRc;i{m>Nj5d%gg6@-QT}|@#;OAcEDF@2k)c9+6k0L*!(leE!NbuR&f2-+?m5@ zcn!E5bn<A)RZu3PKhSxd#PdCL&S_Z_jA0};$e=ZFy&k77lacJx5-h`P3^1X2!+5Xa z?%(<V!aw{-0oAcgt$7LRnYl=0piiL_u@n%(%Pi3vquM1kcu_hnTh@nv#a^)>`SF-p zjLY2gRT%CI#GkA6WLEUQ2KozUtlXW(AR_x(RVvpxA2(jRM<-i+HQ9QCjuJVk!u_;7 zGk0sp#*jFn5Py-MO=BXxmwZd5G&b(#8=WN{c-H7RMl`NKfJPjEt70I=Iu|N2Ju5Al znyjAEX)t_y8Vk8n5BA&#t$R^dd+uA8-fIIPe@84mn~^>^H!Pk~ap=IDxt-<GNrDl3 zF=+#v8xHA?TtM$@(mG=-Zipc`Emq<=H$+TxA+e04Pu@-2;Vh|IRdRjU-MEl{fTeo% z`oS4@>m_?+tMS#y;Ykt-mV=YXfRD&R%g`k+9gwZPA3+ba^?-iO$L!tFu`rJ=mp=!v ze|NyJaY~Dwmzs7Hv(gZU&LMnL&wf}H#vKH7LP{n|rWpBLpK&+t)?8Q5-}C!t_donJ zUcGqelD_fEeO(1g3)Wksnivy=RSWNy!|Lql$E)!$OXFdC*fL=!$P29(AUY^d_jF0W zAkZ-kR6wX`Y>BLrEgcP)tjrE6MCabNf5US>w${jNfzqveV%Js7r_iGQXtMfn*WGya zzOK7Y6ch!B>66?Q=qNpNEB8__1E^CwWS|#>$OUI+s<|BH=jfNSV{SX_VyQb|b2&Pv z9yVeXi~w}F8>lsB`y2}(8|uAU@VZt&-+KIWz3b}!+2=@mfBWjwhw7vouim4(f398a zy7!@hzV&GHXOq_VJ8As@$XGh1=y3yVD4Y5OAL1k`YV^67G_09rqr4P2zOj_SxH?~| zA&#Nd_aLCZ@Jcs?Mk_jGJrlMyQ=Nh3%cdUQkL^+;I>OgYxLXgFu4Apg=l8FE@Syj0 z>qYyC_1<m)7A)!0-52^=wW+=)1NHZRhJW~_X{voJVVDdV6815i<>)C!9_IFWXe2G( zO0XHNi9QFdgHgS9+JJm?<sMzR9f2V(E6(KX(%egV(}8Vc+XCQx?oQI#Lmp(X+_+(U zO<WIu;V-lHvqug5w_d!Tj8ggo@Nu?Kcq(F4+Q1bcv3!P@UgRVs6(}KlrxOZH3V$?z zm(2zXH=gqaWoWD&y-kIW19pk#Q#uZiY!CzPi0nxVsqr~xn8x8WTh~OUTWeIVuQm|0 zzJBxS?W+e!oExv(Po{~9t3*OSd@NV9)p4uOi$!21h>08B4fs|%j{~13vU)+*HMgwp zjoU<S+1xk|rU`E#qQ_V|MQr2|UVp~BN%o14W2cW<P<9d|o9uW0_D4^kGP?VBJ_HS| zi*{AKXD%Tk7$U0fxle~zaS~jqf_UffjpbWi06PvZV@75~<E)D@b8S=Uyc^C_iQT;u z#|T}rdCXdMa?Mq+jLg;d7+Ke4#jPFMUnmB?`TX8JzmN=kBVRoK?D+#6+JB9g?!n_{ zSI51*r>kSz1w?6_*i|%+PHo{MP73Er2skzm8_f=b6)ecUUdWhYTH7XY!h1FLDdDa* z6Z31ZT%(D#4JcR33!!>zu)<%=F^O@o^^&`P_wx9msGMr}9L3NY&8du**VzMZfuL$c z%}DvgIV)N#ZGrA*#_rrF<$pvYN>z3_w-&^W(Q+N3bFI@4tOZ>%=WNl>Y*DUJAn2XD zfA1pNlZKy7F+qpZx^VI;#t%h!;qP-o%zF%(UB<@0h!fp88}kgAGeyzkt)*4nk(Azb zT1+UCWKNYmZD~Kf!^GSV(%g7VKz-`?-M@c{mkPCuoPi5@=4DNF;eVZ^UI5T;V%6D6 zftS_6(@a}BoPiUk-b{o0Z#uFY2@ds9osAp|O3p|MgEbm?bf68oc_noj5{fzM-G6ZT zL~^@rW@=|lY0Y;S78<MwK+{K%B9pa1%boMgIr^p2N0!;hIZo0Xk$pQ_e64FXnr)>C zqZ^aKScPgGdWIy%MSrT3I#O~bwY&fDLWqscUKK3h9YPnjkMr8fe0=f3Z;owofELW| zYiSJ9z8yJ@aZF}EOuIQ$`79_p=W2&#N!vd9R*^My@0>eS1KZ+Y&Iu!k(cORaJ_-3> z2)P{pxr|P|N9{w*V>1_EX{&Loqo=bq>IWH`$VYG^qy!P9c7G1v1oU|jP;vLwCl`2E zGK1TxmL{J4Afs|F8nlA7_g)nz_ZZj5@~!vV1F!7cH-N;xynk>g-+JL59LjoiC(`$H zC$a(=bdROJnU?3O1$Z1$L+}*1neMDecHf<;Knv3VhsJ7j+Op4BRikE3i=h`ZQe_(r z$?rW2t|$&fs((2N>@G(clky`g_oTc3_(N!E`j9Y+xh@%_V|2VN=>V!{ynAkO82)h` zl}I#Y?I_M5AwE_|7Q*ZU7wd~WuK-`*wX^3cE;bnjC`aei(S~f`Ob-zP5Y)cD+y2%I z_h8%4tKrLhAH$cYu<ieo53ubQRUi+2$5E-8z6+7}w14`=aV8^Y&7t^3Dm*CD5d1kk zHwZGT)+(AZJQLwIn}G}Tz1H#I3Tm4H44Y@{vMC_Y@5a8*;RcQN^(Fkq<<@on!~X2$ zt~Za@z_(typI8liYX{}sfBG}O-%sBZ>IrD5z7CSEho9zvdBJq~R5PW*$AouJYv@|= zR!bX1ihpf&#_n@eCDf@iDo*1{Kr~S0X6@Nz8nQZD$7S{6a%t9k33!mb4TJMRc7b2L zk1@;jr^%O@;y2&-n~9TWoAZLW&Bptz#f|#VlfH-(5~h~3`*QWc6g(!XUGqt~Dvqt) z2Eg%k)F-2n(N`Q-sGdSZ$lKYaKFth)y+qyHf`5?$|GO3^+_(quAejham`|Sl;Q4<0 zU>b1irF%4)NUoBJ-Un52+Y+5*Eix>TnmqZEP~fIxd*8DLwP=eu=0v6#o&jIg6m`9^ z#+0<yRAbn&HC3_((Zv_hT@T`qqlA%_ke$y#(eAJYA=LivKf{};c2~(B!UT*m86rzT z0e|N<I_UK_AS2QN`7RHe&1$_H4l?MOjMJk5;;m;-@Ws6nw0Pv93COm}$ad4|3s-b+ zCJi*&B|BC0?mvGLjhVmx(fdCH;wTMi(pxPOu38RTRJT4OmX(9IF0^H~Sfg9>OBPI6 z_0y@=JPSO2g}f0cv*9P==+dYej3};J5P!Ln=iUR}!gX35@6A#l#`1lg4uM-Q-6Oet zUo|+4_hE2&7h@8~jtmWu%lC%s$Y{=v)}UkXwL3-|gC%FV^c-P5lr6^woZb5ww0ay` zA@EkMHl_u#ODLgeOs?&t<`{igDita@-ZqfscK2U=^c0Sw|MDpu0$-ml#>0CR4S#mR zYmxWz(kT`dnbu2mAtSaAt968IrjnfzzC%d?;oCy{@}$~;6bQ`ghHLi3Y?S*Lr;ZA4 z*4{83LKH<U8?{5w)~{^mIt`Y-(>}z#%D1AyFh=j}*!eSgHMfyACL$w}GxizA3AF-u zi7L35PK}|fAQ5Oza2{IVl3W7vEPpb(?NFakAeD3H^jtO?0R^6MjC$*~t}Fgq_t3BF zs2{xX$NOBjUbjd3Ty)jvdOta*4c1Is#jKrGbT4Txn-4q)QFsdd%sJDeA?1V?DkMR! zCimlk+*%`+tksJ+q|Jhg`Y<9SXn5pod^As}$Do?43b_`Omy@)+|LRH1+<*S-r*NL$ z{Wl-rQpM^Qi88-~K`kXYfDufxnnfEB**@#^Jza4PIOQaC9G15}8nw7gGkg-@z@<k| zi&2F9;kCM9oEB$w6`NB=lqgL||B=q8*A~97%?WVpb$ev${?$&my{At1%};>;_DP%o z|J_qK0e*I)dh$1_Tq@oX8Gp70AR&ohUK(v2ky!0yHa$}j(tgI+IcyEw^~En8@YA-T z?R&-|_u0T05jVD8A;T_a<+*FOJ{OSe#>@c)>ctz<)^!{6)^n=sErQMQ>`i@AzwuyV ze&dCEG&;V0r9^#_R%nl+21Ra{k-?CQ1}TAYYNzLvvDFUJent{)bAQC~j6INyQhSzh z1F)kS@4jqv%vC=5%w^6)iD!<>iRlTa!NLZbTBt;6TV7w`zdjr8)(iKDMB}S(aDAFa zL2d{Zr#4bsHZ|81yALBuavs|YQEv#7nD4aWUgbVd95CLw8{29$dxb%#Hr(17J%GgB z3FG+51rb}Tv5e0|Hh-RzM4wxn&bo#>-MH6sZHTT<Uw!}g*m1XBxkr_nbfwgMf;+BN zo?cNk1S(e2o};&=8|5}EJDE+=@ztW>Lp^8Mkd42a$L9b?c??_vX{awaXJm{WdSuMg ztK~-cWxp6W@Sh@&vv)6tE#o>n^u{gzYl!gk`)B8~7cVZ2-+yQMYS**Zub#hr0JFRG zDn1gg_0`=cPjmOB%!;P5TksKDt5K6P*Cv31h7~0mG`R%+K|};K$VaSCMb7kwEFiUs zGJIvRgWw46{is8V-?qhRg&HP#jvQ%<TM#@%hP1<nLESg)a9?|o%J1L${d0f$=-}bj zi}y%)?N_NI^nWy|Bc%r&4H|ZiP6Dk(9iP<z&Ye|gXCS2AmoD6<4q{sePX@(60>HH+ zGr?UusDVu^b2qqcB6!A`=V<d4&4@&{x`Kst$vW=-HGaw7dgUI8ujQ|dy54>L<aXSK zjbu`@q-9ex`OE==C8Y4}q<aw}P;)UdiWk6`dG-;sAAc;m*=n;wC)zuOrR}C%<p-Wp zGqcgVp1!q<Bl>{g1B>i)ou2!8$KAT^biLy)b;SMKAHJvu?1x*g+#`hqUunJhDORqG zg!SDyXUJ-+pVPPR&8>T^<8aPes4qeS`V?ww#snWz@bPsI6~U`&^;4sB4biegI?(22 zmUh5@34btJ&+J_Y0aP(ghYPDe7(RWCcHFI3?h#FoTycrtPkczUMLdjUQYZ5{ZB?`Y z1WKTK>(P!QeH@0b0KUh{iu)1Q)g3|Pb6baO{J3J^)@ht|FuxN!J4v=Dl$TX~!LC8F z?esa;!h?A|ow)Ijb4?4#S1(?@d6utU{(8N6`+t}^kab5gUWp5>v2J0Za=IPz)p`@& z+?`I3P+3syi%#6>+h94<8gccpnjzM+18%?$gQy%oxnmsjvxr%-l^rRFvu5D+D0$la zYR{EF@43Er-TK+x7tK(;xb#Vo45rJ*3MKd8kaKK<xZuQ2>ZD0JkLAq4!G73|?Udaw zjDLod%Hxga0RpXnx${X&lqgy#@69nX3cVoe4|=Y12%TXW?z<v=omnIuiOO*TPbDm8 z12N(0LuRao_{K?K3G{4pj5d>sW>-KUr(fO&K_TEf>d-!p^+UUytO&6%2bOO;lBa%z zn|}Ml*Y$;W^xe~UZ5_Sw!hQK1`NJ30x_^DAt?xAc(pmC{e)oItK^|0N;pI$oIrWT{ z5GYd**;AWIw$ZzU#33X~r>$c>_DTdw50~EE<|R10HbrLjR2@5+Xa((|Q~OFxA3<>@ zZp2(uk@n8p>fHVJAHcS;tDlJ!+SSElWkr_;eDsJomm(cP19!(yXcaJt&o*-%=zon% z)3!>V+DaxPh6?S=CFzBLDs@2wZ7xIwyWmPQM+-EX_C)XM`sQ})HNMuxefDxc&*#tH zJq*`Zw;M0r1JwHX4(oTumr(1Uf8)tr-cIc4b^1^`{UR|xN5#;a52nkA&ldr70{=YH z7sf*6p9i?5=G4cSt%FU^RJ_nP^M3|v?aUS)(&-2o%GptoA+A&cAb$X9c=Cf#3GWm9 z(sueN(iyfISS6iZI#C@0&cHim@`chCg0M8^CQ<FQKJt=zdtpvC_<D_)cfrMhR9<KW z2o~}@f`Ozk?)A2<uO<)BzrS$VZI_qvgERNW3-`#J%f6z=e)sj$*>K<f1AlMt^V@$g zp1=Gq{?E_9y}z$Fzg};?{fqCu_3o>W|IT;YQhV!q7yt)2zjJ_0gM8hNdzIGepfs); znEP9RYoFlsSrcY$$8{*OK&OngxVHpJfX*nVcQJg+!3jW6sDw?h_cE*rxErO{VBoLO zw!HDeeR*5{qpyKA`uKN$*neMr`TEnpPyXS{&is{Eud(C&#orsBJ%91``OAMWUw!)8 z-+uRZ|N1}l@yDO<=09=yNB;ir`Th6)#F(ag{IqOzo4swpu;CqvT)84`d5b*UF4xR? zl%>N|j?KiyeMTGGln!k<{pgOU<+Y`IL(J_^H=>!q8*rjXq@lRY4SzCUXQvlDz0~@3 z#0u=~G-5RyZ6UM5Ft9J}07fHdFp2v1sYiKG7y_i%Jbe<PFk00@4#r4ny{osS7?KWD zoH_ekvUl$rJS&E*lJ-RTYqnJ-PV;L*);D&=XP-QP?A>_HzP!i((%<px&)>ZL%wK#Q zvf2HtW--x#+|;{Ns(&i$VX<yxAcReD39T(~W-3}U##KGFdr#^cg?z5L#U$qzor6d2 zaRlI`p{y7BAujcHNg{y5`t)Y;EAI;U{*{)|yRY9v)CQD%xh2O*qrtiqSv(7_NCCR! zaDzQ<K_MHpnroVE5^15@NQc$lNTg@lB0%fq?A8mp;c6AVD}Ujl*m#JgO+O0}>4^H# z9sBNo_~VaWxG|bQ%#?t(xP$GqN^qmShWJLJD+4LRI!jT`wVnfHmC3tDo!-{y(pGA( zc4kG6eS93mnfM&rX2YKkXQFX{-!B+_$6kn6Deb-8{f%En#MFwjv*fHnBrS5LOB=Wo zbXBjz2cyHT!GELC9GmylMCvCGW(Kg05W&)c1e1=mb;0w6;P`=XpM$N4*rV0@vfesM zMM+)E7#iLEPrnSB)8GDS_3b}$|Jm!;uim`9e|Bj<-2KnL{Ow=*)yv`g-K#(OU+}N~ z@}-e%DSm&$B!{W7W$&>OyAj&#$O46@#o5uA?LwxbuzwvAa}ArWLJWat(pcMC$JIZ$ zjTKqlK%bl8G9~lu)>*o>t?GxOBE|!<wMj-pn+1o-$S_Pp1EaO@#6Xv#`B+Ktu)39X zX+be`lIv=dps}M?IERuWWdgIlb_a1r=BjC16ZODe3(jey3LaW?#PeFK@~!%f*Kg|n z{@ELUTYt}9Jpc4zAla=K@bMEYgL`#TACTLgSnARUJjz|m$3)F<vZ*w9kwy(am;<)% zgaM&t;-D;_l3i=gNVmg^OGKWg(R%=^I(w7oZO_~YS=+!t%oF=p-YMY6S5B~ZU;p?g z7#e&qLGftpx{uV_vCt=(`{43}fqD>G=YW)`$A8+nT5a6ym3DR40_y_RZy#p7=p1pJ z;K)oGG)}?xzI)_ci;j*4Y}kUcf63in{nqbwg5lNIwm2g*+6mfC<z*yolQ__fdo9E- zv^Ht@E|L&mCv5R<r_DVYF__brOcC0&qA8-s)}Y=16KtTHopCyVQNwNGg~n6bX}RwH z_kUk{3Jdgq{L=6D1pEBB`uusj`#*o_<DdI#aa&uDts13kqv^Y1Ku;L$oL;?44z48O zv)iGus`+jgt}ywSV<ZV=YXs`<36D*PFDMmnlz0n(^tm**CPCOn?46o5U#CX)>$Y<{ zV+|<eW{!(G2q|2Yi$^DKm@`c@q|v=aR)2!Fj99U^HaX1=?b}!~^%#e`S}?mSj|xM^ z7mJ@|L!_Fw-n<`eIINOd9k48}&#B*hwV%Cx_3ZoiuU<a8&+pZz{-Bz;@dAGNocha8 z>ztDBaQ}{esl)U6H-7w+>Z~zF@;*^bp+-7w572yf7l~MdJIvZk5NWV!osG1G3x9te ze8YK4GRN7t{ZOv(hL+fF4itU&UfV6V(rS1=wq#`1fi0(-e6)7=*M85FYT@FlxyU=F zO9WWRS;NodJ~^dhI{;>!ont|Si6H_Nf+J)}=PBE9m+gq;x)cO4A>hwGJ4+;b=)A0% z1|`R65q!eUY@^t``@etbDJ;<c^MCt2sea+}lj=8L?YqBueM(L49ln-0k}Mb!uR?x` zvXiY-HZW+=v1!lhD|qo*YTZX|rXi!o+GEQK$vRv++8kRz2K2#bJ(=e2xILT&PAu9F zgTi;4vG{s^Dl`_Z7R{`r(*$mG_n!N(daI~|Ywg0A+gt1e%(hlek;6078-IED6bv5r zpjZKPsT=;Ct15fP-+-qfJiVqMJQ3^}$LZJjy4Ued|D;~NebDi}^`d?GWcn*VI+-K@ zh_=3!7oT)c<+bx{9Al3*?X(MDp&AMmT>+Zbu%^CSFZ_r@EyC4|`A8sYR;Qj2MsN?e zrJ>QGK89GKkAS^mH3#iukAL$k@1#-mokm|8z5Ky1zVjZi?=^Qc=hGE5n3h0G1ANpD ztdqhOfEsgT#V%QlGMH?%AapqSq_iDnb;8hTHyV}~9k|S1Osq9w53?N|#u22@*k+^w zHL8<$fAfz)@_iy{bI0Qg5b<tl?I3BGM{gcu_B>ijv#;5#tD*Td_J0<i5eNZb));Y0 z&1b`CVy%5b!km``Pxfh>xHa=J8iskR2}ji&XUX0FctJ$enJ!)$V_0?fTDa|`$ONcc zshZ4ept%$yKx7^`+n6<D_REPWlE7}PJi0~A`<d7-{n%378IsX;&5OKm(FFQsPU$;# zY25uSti?DJORChpVt?;Ln`YE#a{8iUmuh?Nu~1sp@t9+kg6Q0v<ieTFLfz*ACH71& zpO|kq*j+QB%PShiht7cNfI@UP*NGH@L2caq>2KkuC|)_H>=>=-mXH(e&_)EQ&gR&; zwlSK#IJSHxM76g4P>nz(+gbq$MtjCQ$0Iw5c>~a>Ee;JoJAdXxmle!wkhhT4(pE<k z_3m%r6Hx`ps#^up&$c0@2q1%%z@V(7eF5v!Sf=+&`zqz+)S}jdN9RS=8f|NE9Fp0> zN883}P<{ZU(-0pRZMSr>RY0`cDaCJ`!|#6UTTkKj^xNP1_>VmP{vL_u)Y>wft4R?B zQ_TY*ov=jjBY!cw-lId!QnVK8<k~vRd*@@QGzn14!ly}g(&lJ{mqS58cltqu!EiLb zrU0(AC2gUP*y--K@cu^eLXtL**6h1a+PqZOpkgOdJCTlG2Vu1>rq~o$gwB>AD8n1_ z>sWYUyEdP@mMV{TIXie5VpzeN*{k&MJ|rN{DfYxszJL4e-|zeT7e9Z0zbVhRcfWJ} z24@&f*5m_pzOG@glbkVUU(&QAVry^E5(k8{CGIhNP*>Q_+iquX=w(%@w*#es&Kd?Z z__AZ2*QCxT*`VGS1oW?$TkO=Hi|P6ej&oFzgw_0P*R?j45V+U<WaG3c%@idaCRSah z>k5HBihsgwksScZsh`Y~=s*!1wrwc&az)uj=$3KKmSI}~7S{$@TQ^<T(&C^00n{Te z>dgcB(~Xzy@#^A9yu&-j#b1u<{`?#7L5hWFX`s%U`{<5ffy5oJZ^;cG1X_*5C2&vb z)}W&st!uRAvG<xtP{};ZMYZFEAxcfQt_8l_+J8aYZD6z&uF=pGg>~06_ofzie+FkH zZAbw&d<VqQ<+4CSCi@zTdGE~zwXf?KPT0K%RD0@#dbFE3^J1%P3#F&h^wN%8%<89= zSUaW2O`&oyY<%I+?}iAEHkj}JH@q)eo6~_{L_%ikod?9weM!g5g%2_dHk4ewSZ$uh ziGMAn!*U==bB#@hvQt7NEywF@UZ;Z(2`+g*3Vi?;MmC*YE0&qnaDY?Q?*1>l!Hp5T zsgN{_8#?>o(9e0+LRxKDPKq?caB$Q<^Nbkf63eTf2r&o`hi|B}tuKkoQ1N1l?}!3t zFp9eaF1`SOTV|vkAi#aB+uiTr6N!pTr+>#8+}1PVKuVp?*(N454c4R;Nj3wzR=zNf zb$B6!z=B)qK-+!`d~yBswi9C`A-0k^yOqQe-Xt`2EzYI2CK7L>DDVC(eu~!3CwH42 zk-Xb7(csv%_vnyqmmDslVLWTCxu_g2flEU_Ls!cNY0AL%Ee@4Aq#I8DD8sAWbAL1t z0Z}5TfG}Qt8k;ZgUF7c1;iu?YFgmPY8pmyPS%-tWu(AUM>5H{1OflFFmm8<~OgHhZ zWQ~!6A->Wl36rSrgdbLXQ#0*kSwj!<s1K#`k;+o|4<Vb0yFdS}3pds0Mh|Ch-qP0) zT>Va$*|jiw0F|(DxTEOat-&E41b_B__SOUWhD>c5bG8*-lA82{Nz+6PxA!W#thK?Z zjo9Jbi3f8C54rmbm)p$P=GFRe8-AoXX|G(0$Yr!Bt@kx1f*Hd_2Jc=84xw4@elps& z<rP9&=t%8>3n8ltqZtNohigneB1cRHW^Oyc!}r9E&F=o<yE~P~M)Y<e-+y@_SVvq* zOy&H4?VZi5omp1K#qKW4616PqrfxEl^uURU`(y3B*3L*2{0E$$X05%~!kBcW$W5wj zoCs<+bQi5H>Qt}=MZvir*b08@L{V@es5n!wXMTVmJny}!s(WstgrqqK>ESs!+?@N~ z_uYH#wVvnqOk^8mZaoVb%74U}DYv`~7>BAndeF>@s6NsvIFGK{xE57Sb<V1;n20k6 z#sr=QPJb2fSF7GI-qhXuZ`^tF={42C7m+WVY@rGXNwR3XTIe>j9d)D<0m?)-3`kb; zl1Jff+@^gMV(*HEE+P#P3~Ly`5s_#sU0V$>Ee+43cGTQGWvdhusei341}gNRWyHLD z|LHZ=%~#{h-^B@j_eGRV&nU32fA75i;PHz4`q01Uy$28P`NOkwsn_mHCpW+IqWt>s zGoSj@<q!SL$&(S)N6L+F$GrW?tJ^<(wqZcF7v;*oU5w)ws*M)e7F(+&bD6-XaR;+v zaThIXRufCL*N&mLYJbX#M37NpOf`~#fYVd0K2XHerCpcyX|2ebfUsF=00V=^P--hR zYi?Xy>1`iKd*FlaUM2U9dWD~I=nMAr8t%~Dp-(;$)8}!ihTGnF2`rZ?g;^-2RVgxC zlL;SSFIJq8WCK-t>f}Y1&pdq;c87yFQ867I+I6_`8HFB_aDP`Rj4HGt#Fv~}C$0iP zWQ^5n@)bGFnXGuo?iaTG34QcD6T|C;A!N^4X25kHDNrEHhLl2TNNbS}6%xK@v$h6A zqRw4&k3!;;GtG(8jvXtG^^mL!=+Rkgg~y?Qd79xI#95N3?|vUO97asw3-!zuQGZ^M zq&>n{2_M~f(SK+F)>~o3ZqYy+1g<g2u~5n<DClD*&$B}mF9`v0HRhUmGl|$5t23UN zHW!jf)}}XE9Z%5i5AZEUH{2SQI}AP4GBqX~OUz8&3Sl2?kOeH9@420C>RNgaZi`7d z=cr+dzi18X2sB23_DXqpo6}J#r#VsMT5lSNYR5bne}7Zn{UN?ZX<S`&3$B$+To_hT zMl)@#Sb1y*b!67bu&kl2@JJ;gHl?#@9c4tttVE~HTybRSYvP2+m1~$Zp}wr6^wxpO z6fxa-WF)ni?tT&X#Y{B~R}iihR*E)Ol!_%{jD`I$u|RxYlOmIdC)CAL#46FW+|X#k zOc9Y9j(=hf)rn`PjwpMAwz#w|IGZBgk=!!FZe3d{z0|b(^4GgC|9cnai`R}}mh)5B zj-eOy)7OsSX8F>!JFh-hN9q&jt*D>9w%42bxoek(O+SC_&MTM05!1{7Z27EW9Zr>; zCQViXrymB`5nhuducJ9C{h_07ZPGMZaQaUbsDA@49Y>aG2%E}aQ?xY$&5|$_shwLC zEesd;FoJRv5mfu|-2?ZH_sx3m=)*^!xsYq_$0Hv2${lf~gZUDF#2fv}#TzeP=^T8z z@hd0KnuQ<y-1n<Taqj!I=k2Bc--o$h-|w%_F|t{2NXIiIhC(Ka_K_uGk;t{9dZ-0F zKz}ud4SPaxX-d49(j@OfWJo<gkWqo$t}$}Cio(bwAWSY>$Y7Zjv7`&?`)0_f**B>i zy72uVRZ{QXI$QUi5Io*__~6~UNVa+W=<fY11M@>)!>3CQ4}E<6<atJVxh<D6(((HL z!7=SG-#UgR^mn$#ZiVoxrIv@g7C~mvRDU#o(dr*V5}L&|&}lBK1NfPU)|{HO7%hd? z*`zx#^|hwdX2;4&s>`4_P#c_kVx9mvOOq(gQubvws<+)&j^$AB>XAyT{_3q`xIlmX z)(c3h{^qT{jbq7Fq>GvK+R8|<uTou`mbUkfOr3&ZVC#->GSorU(H?LhDx0?wB7ZF} zsheS>DXdPcQI_Q<YXDg&3q%l=wRCl`DOoZt<kF^ncg>-D6;Izd&W{pT8hZ!6bWbmL zk7B<-JW~E>xqI=(OGqX^bW81zj-r|M$J@6+>Rhzupwf*=2KY0EY$Mx%O5R(Dd(RAw zZ(49&1$IibJE9I(FN?#BAT5mEQh!giPg9Q7((qDyrcP<_Y9$fILhyqv<C)qr+x^Mb zUQAJ8$C2n+dWQ&NddcP;Gd4`vR$v?r{Xqw?dLS=J$|i2>G)5lUO_M++Nu{-}JeShg zoMng=lUXY{R2HQsgS9PrB1)^R&SUo%$Fgs|cBIX$pEx~+-Sa0;kD;0M*?-exxLH1T z`kc+Ik74uv{OMjR>kFrsHuv{W_gh&#O$jzCS!tw{s*k`WL{V!4f`n1jhfC*51+g1m z2Oj^mqDW%c5LN+fyeTNH3)oK|iM403n9^pJ#Lzb9zE-Q=FjX(eM63OZ3+=$G=F>O# zS0CSf`g!osSMS*O_q@Nqzkdu9+QCnRfBV)kR2hHv<}oZ&KmNuMc(QhX{^rr12><RV zPK1B|A}7Ls+&>XQ*4W#Egd6;y;xy0=DTsF+8Sxr6bMDMhTbg+OGUZgU9xo&jC}x$& zTdl-^>`8)+Jm6?lpMgrREQD-uS5WR*c#XadD^{NQ%BFGPB6n~8@qe+i_pZ!64t>R* z(KtNt@${l`SZ~v%#vxw6_%@M{^TH#|oW>yZ2Xy&Nnnr3v<`xHBM<O?!$(0hW+%)Di zR(0D*0mF!gF?JD>NyS%CPNNeqB?wF#Xf#=5q#>Fj+5**J=APT`AKuuala&U!T6OR< zw)6+g?-8;9_hr;Z9)I8&fk-*=r^WjPoEVZ6S-E7R36<p(pI+AhiUa)gE`Wdysoa+o znbs2mn7NOreRJMx-u>yDc=C_((DCK#$58J7()AbeG5qrNy~R;Q3aA0_>vh6hh@jP6 z)j$<ebu{#GQA@EtThACaT1~kPqS3{ATbVtjA}vo*Tumb5+<z+r{?R;?v!&J=0q-%~ zS06xE!a~sON_O{QZ@_&(|Kl^ib@rLJ=Pmz{NB;0_y?^WM(SwIqXpD!xiqF8)9C#VO zsI1#1zU=wyuLZj47#4}o-Z+Lu;&V4%Xp#8*jlD%eMhguov#Hh66Gp?cO0F;ssgt;t zjS;XwuTkU`uYc}RJ4Xbbgr?x9bnXpxbL89=GIWnr9BIQ-Y7%4y&BjguPFN~#mb;fM z`x)-F1>zHONDD)T8U!BN6jp_i#44~pt<d&!yH2p*F{kff>Qq3Rz@wlMX05HZ1+RqW ziRz29qI<s5m=*!0L}y0)(NKa}ic_JzMdIVJ?p`UO4u5^go>4-Plg-$EFz5!ULE?h6 ziAf>_QKr+oim4>lq*4hSr5GCvq}wW;9JJ&yfxlLjA<Vw2Hf_jfw9u3`@|9$BY6V*R zvPyskn$Ce${q`k_!Y9sOzl0J>2wb08bileasDPuGrd2=|E5Uz`XN*u<QyEL!V0_`| z@ScRK^nZnwdaSe*rUp+r7Equ#)Xc%qM0i9AuW)pD(FvPFu+R$K{qr*+3L#dP3sjFa z!E7LjWqOX9*8)g>mAYouVi0umpqzD04vA>lG@G(1V!JC6Wt~;3<2I5cA#)2<D{Xef zT7g)m!%7B=UV3F;V!MC3aTFKmdDo?He&_Cd@PBC_1$X~)<L2uZtJH^Ye)Yy4rmE&) zU>Aeah(kQ%u>r4e<`gM}>ueV4oL5Hs3-l1+#)?=5Fd5Q?1*s|+{ZRzO_1PT?u#O-@ z9$}Rcj@AWnF5ILVJl$EPYv1Qdduzya0lvF*THTB_ha@Ou0aUb^VN#?qHv$UOJ`OTa zX@8vH2jfm+m3_F!fMKapS__Ubq-M@k*qRrhbYX?ep~X?vaLW+?s_%>W-@DQiJoE*7 z2JWTdUS_R%HIpC%!poO09bjc4H>=b&lxen+NfJVsw3jhfSIkmf)1t1xt-|}%lc6=1 z32gk#GBR!XJALbcF#yIXxW+OaVs>uGlz-b<E*UZ}-uN2TE;(Ct&N&Yc_}EF2%j9Ub z=`2&QHV0+p4mVou8O+eBT-g9)EKy^Gm8M=wb3{^)DoJYi!s-jRR2mt&NlqlxYHdCm zn2&?I58M4KCJ90_F|}NK*BmZuZBF6D?4{;3NNApOmYJ2@1|or^qW`mU)1f?4B!B6$ zh8yA>arDN29FjnOu$iGL9267PS+g$q{MOaf2;2SJ>826Imh7`sVD_O?3iFg08<k68 zqJ>R;tgVQzf{ZQiT}H(g%fVF>La^M&l2oj~&hLhxUqce@D2b;~NsAJa9EPcfmF;JT zG~WIDHdRUZrX_FGc0p#iAs%AR<$qe6`-sVdhfB+4G%0A<B>^!zC<8Nu4~|I?uwX5e zh7)(!C5C5?r<A%pB*h$%Uv2=enS0HHrRv!I$Ma5AUbDv${t(^&-G83m{I<uB;+EWc zSMT3l`p9?xb$atVF4oYGeDJ?dKcE2aeg4O;-+A@&@+tvLXiL5HR9!Rt1b<X}#u}xF zUR0qHG>m!&2E%Q3ST83ni!>K2epjNx9cCtA!%54sl#RPgHVPcuYUna8TQ?EX9vfSe zdH=L{XiM>v`O9k`3L8H}m;2lA-U6h|ujnieeHEWx8y?!4f6-pM3^Oe+31<3rOY0L$ z>oeMG0$Qf8ifEduR^T6sxqrA#qi}XAB`?^YtuM@;YEG_(jW;UVv5*uh+(EvL3^A!n zh-t4G@#v*&@gy9xOi#6ChSYhm&b&&VUVQf(C!3FGED9SVX<3ZCxiq9jUqOh<YgRiT zg>_J(R2x*uBfIs02|SNpMl(^u9tkJ|SnLY{dca~g&mn6Ca4vn$Wq-N%<i%2ST><zD zm)&ok9K+4>TPMeGv;6kSbM8Lhbgt=MyRV#l&{5dd!QJnkd_Zn|@|oW|`RHu_&R0Kv z^Y!}==Di=dd*8qRhkV{Ud;IBbdb*~G2e^JEh68TU72r!|H?^pJ^d=N*3qygZG=W>5 zSVU1Odrr;ZA?c;J6n}{ZO!SffVZ|)8XE!XS+Vku>feZBBkY~5t*>8U9*}c2(yyNTp z9^bvc&c5rrzv1TVTL<v`jURlZk9<RH0PewoM$D)&!#kvSWg+xS>-P1)Rv{*-NCef< z+C+K}Dma4R9?^OTB(1${S#>q9xe(UJbEV;P1<}GN2pdpELw}0{F?VaEmI#}nd(_OF z9EESGHfWV80Dg?6Y`&0kwhfEjns51~8DXCrq9IaCj&OJv&#IGCU4sRf5NRMiy23Cl zr6=Xy-LdI}qD5;;m8@=y2-3R)EO{i0vPCq~CPBGK&UKP3ra7rb$$e%JmK1}p#8#NI zC-fv@!bb?5uz!y+qZ&g3;XpZN4)4yG#-Qul(6F2{Mx)ebQ}Cdwn2sSmQbKN~%-X!B z%q3OGu3BE2aQ*<#y4BSp*ExHRQegCn1|TrDEJ4)>8KqFe89W7IVOP(Na|ezU_*S64 zB<eA`t4Ak6Gnl*j(%MI|EP!Ja0Yeghp0v^Oz#Vt1+kdv_HUlO1NC-;@A%e1jv}!)# z>wpZ+Wr4m!UFzV-*1BgxC$>=}WK=;8f|bg$+rU-GDp{x2Ixqu5)Dw#%oH(@}>XXn- zCI!#Td9wkTrBzxhg{&>k2sm1?U2&Cw#I&Lynro2Jpp4UqQV|}F7k(e;7n19wkT&nU R@}uAKKL~_ub&MrZ3jn5@z^woP diff --git a/mcp-worker/src/auth.ts b/mcp-worker/src/auth.ts index e910e9939..af8b79d8c 100644 --- a/mcp-worker/src/auth.ts +++ b/mcp-worker/src/auth.ts @@ -1,103 +1,357 @@ -import * as oauth from 'oauth4webapi' +import { env } from 'cloudflare:workers' import { Hono } from 'hono' +import { getCookie, setCookie } from 'hono/cookie' +import * as oauth from 'oauth4webapi' import type { UserProps, Env, DevCycleJWTClaims } from './types' +import { OAuthHelpers } from '@cloudflare/workers-oauth-provider' +import type { + AuthRequest, + TokenExchangeCallbackOptions, + TokenExchangeCallbackResult, +} from '@cloudflare/workers-oauth-provider' +import { renderConsentScreen } from './consentScreen' -// Define OAuth parameter types locally since they're not exported correctly -type AuthorizeParams = Record<string, any> -type CallbackParams = Record<string, any> -type ConsentParams = Record<string, any> - -// OAuth callback function type -type TokenExchangeCallbackFunction = (options: any) => Promise<any> +type Auth0AuthRequest = { + mcpAuthRequest: AuthRequest + codeVerifier: string + codeChallenge: string + nonce: string + transactionState: string + consentToken: string +} -/** - * Get OIDC configuration for Auth0 - */ -async function getOidcConfig(options: { +export async function getOidcConfig({ + issuer, + client_id, + client_secret, +}: { + issuer: string client_id: string client_secret: string - issuer: string }) { - const as = await oauth - .discoveryRequest(new URL(options.issuer)) - .then((response) => - oauth.processDiscoveryResponse(new URL(options.issuer), response), - ) - - const client: oauth.Client = { - client_id: options.client_id, - token_endpoint_auth_method: 'client_secret_basic', + // Validate required parameters + if (!issuer) { + throw new Error('AUTH0_DOMAIN is required but not set') + } + if (!client_id) { + throw new Error('AUTH0_CLIENT_ID is required but not set') + } + if (!client_secret) { + throw new Error('AUTH0_CLIENT_SECRET is required but not set') } - const clientAuth = oauth.ClientSecretBasic(options.client_secret) - + const response = await oauth.discoveryRequest(new URL(issuer), { + algorithm: 'oidc', + }) + console.log('Auth0 Discovery Response:', JSON.stringify(response)) + const as = await oauth.processDiscoveryResponse(new URL(issuer), response) + const client: oauth.Client = { client_id } + const clientAuth = oauth.ClientSecretPost(client_secret) return { as, client, clientAuth } } /** - * Parse JWT token to extract claims + * OAuth Authorization Endpoint + * + * This route initiates the Authorization Code Flow when a user wants to log in. + * It creates a random state parameter to prevent CSRF attacks and stores the + * original request information in a state-specific cookie for later retrieval. + * Then it shows a consent screen before redirecting to Auth0. */ -function parseJWT(token: string): DevCycleJWTClaims { - try { - const parts = token.split('.') - if (parts.length !== 3) { - throw new Error('Invalid JWT format') - } +export async function authorize( + c: any & { env: Env & { OAUTH_PROVIDER: OAuthHelpers } }, +) { + const mcpClientAuthRequest = await c.env.OAUTH_PROVIDER.parseAuthRequest( + c.req.raw, + ) + if (!mcpClientAuthRequest.clientId) { + return c.text('Invalid request', 400) + } - const payload = parts[1] - const decoded = JSON.parse( - atob(payload.replace(/-/g, '+').replace(/_/g, '/')), - ) - return decoded as DevCycleJWTClaims - } catch (error) { - throw new Error(`Failed to parse JWT: ${error}`) + const client = await c.env.OAUTH_PROVIDER.lookupClient( + mcpClientAuthRequest.clientId, + ) + if (!client) { + return c.text('Invalid client', 400) } + + // Generate all that is needed for the Auth0 auth request + const codeVerifier = oauth.generateRandomCodeVerifier() + const transactionState = oauth.generateRandomState() + const consentToken = oauth.generateRandomState() // For CSRF protection on consent form + + // We will persist everything in a cookie. + const auth0AuthRequest: Auth0AuthRequest = { + codeChallenge: await oauth.calculatePKCECodeChallenge(codeVerifier), + codeVerifier, + consentToken, + mcpAuthRequest: mcpClientAuthRequest, + nonce: oauth.generateRandomNonce(), + transactionState, + } + + // Store the auth request in a transaction-specific cookie + const cookieName = `auth0_req_${transactionState}` + setCookie(c, cookieName, btoa(JSON.stringify(auth0AuthRequest)), { + httpOnly: true, + maxAge: 60 * 60 * 1, // 1 hour + path: '/', + sameSite: c.env.NODE_ENV !== 'development' ? 'none' : 'lax', + secure: c.env.NODE_ENV !== 'development', + }) + + // Extract client information for the consent screen + const clientName = client.clientName || client.clientId + const clientLogo = client.logoUri || '' // No default logo + const clientUri = client.clientUri || '#' + const requestedScopes = (c.env.AUTH0_SCOPE || '').split(' ') + + // Render the consent screen with CSRF protection + return c.html( + renderConsentScreen({ + clientLogo, + clientName, + clientUri, + consentToken, + redirectUri: mcpClientAuthRequest.redirectUri, + requestedScopes, + transactionState, + }), + ) } /** - * Token Exchange Callback + * Consent Confirmation Endpoint * - * Handles the token exchange process for OAuth authentication with DevCycle/Auth0. - * This function processes both authorization code and refresh token flows. + * This route handles the consent confirmation before redirecting to Auth0 */ -export const tokenExchangeCallback: TokenExchangeCallbackFunction = async ( - options: any, -) => { - const { grantType, env, props } = options - - // During the Authorization Code Exchange, preserve token TTL from Auth0 - if (grantType === 'authorization_code') { - const idToken = props?.tokenSet?.idToken - if (!idToken) { - throw new Error('No ID token received from Auth0') - } +export async function confirmConsent(c: any) { + // Get form data + const formData = await c.req.formData() + console.log('Confirming consent') + console.log(JSON.stringify(formData)) - // Extract claims from the ID token - const claims = parseJWT(idToken) + const transactionState = formData.get('transaction_state') as string + const consentToken = formData.get('consent_token') as string + const consentAction = formData.get('consent_action') as string - // Validate that we have the necessary DevCycle context - if (!claims.org_id) { - throw new Error( - 'DevCycle organization ID not found in token claims', + // Validate the transaction state + if (!transactionState) { + return c.text('Invalid transaction state', 400) + } + + // Get the transaction-specific cookie + const cookieName = `auth0_req_${transactionState}` + const auth0AuthRequestCookie = getCookie(c, cookieName) + if (!auth0AuthRequestCookie) { + return c.text('Invalid or expired transaction', 400) + } + + // Parse the Auth0 auth request from the cookie + console.log( + 'Auth0 Authorization Server - Transaction State Cookie:', + auth0AuthRequestCookie, + ) + const auth0AuthRequest = JSON.parse( + atob(auth0AuthRequestCookie), + ) as Auth0AuthRequest + + // Validate the CSRF token + if (auth0AuthRequest.consentToken !== consentToken) { + return c.text('Invalid consent token', 403) + } + + // Handle user denial + if (consentAction !== 'approve') { + // Parse the MCP client auth request to get the original redirect URI + const redirectUri = new URL(auth0AuthRequest.mcpAuthRequest.redirectUri) + + // Add error parameters to the redirect URI + redirectUri.searchParams.set('error', 'access_denied') + redirectUri.searchParams.set( + 'error_description', + 'User denied the request', + ) + if (auth0AuthRequest.mcpAuthRequest.state) { + redirectUri.searchParams.set( + 'state', + auth0AuthRequest.mcpAuthRequest.state, ) } + // Clear the transaction cookie + setCookie(c, cookieName, '', { + maxAge: 0, + path: '/', + }) + + return c.redirect(redirectUri.toString()) + } + + const { as } = await getOidcConfig({ + client_id: c.env.AUTH0_CLIENT_ID, + client_secret: c.env.AUTH0_CLIENT_SECRET, + issuer: `https://${c.env.AUTH0_DOMAIN}/`, + }) + + console.log( + 'Auth0 Authorization Server - Discovery Information:', + JSON.stringify(as), + ) + + // Redirect to Auth0's authorization endpoint + const authorizationUrl = new URL(as.authorization_endpoint!) + authorizationUrl.searchParams.set('client_id', c.env.AUTH0_CLIENT_ID) + authorizationUrl.searchParams.set( + 'redirect_uri', + new URL('/callback', c.req.url).href, + ) + authorizationUrl.searchParams.set('response_type', 'code') + authorizationUrl.searchParams.set('audience', c.env.AUTH0_AUDIENCE) + authorizationUrl.searchParams.set('scope', c.env.AUTH0_SCOPE) + authorizationUrl.searchParams.set( + 'code_challenge', + auth0AuthRequest.codeChallenge, + ) + authorizationUrl.searchParams.set('code_challenge_method', 'S256') + authorizationUrl.searchParams.set('nonce', auth0AuthRequest.nonce) + authorizationUrl.searchParams.set('state', transactionState) + + return c.redirect(authorizationUrl.href) +} + +/** + * OAuth Callback Endpoint + * + * This route handles the callback from Auth0 after user authentication. + * It exchanges the authorization code for tokens and completes the + * authorization process. + */ +export async function callback( + c: any & { env: Env & { OAUTH_PROVIDER: OAuthHelpers } }, +) { + // Parse the state parameter to extract transaction state and Auth0 state + const stateParam = c.req.query('state') as string + if (!stateParam) { + return c.text('Invalid state parameter', 400) + } + + // Parse the Auth0 auth request from the transaction-specific cookie + const cookieName = `auth0_req_${stateParam}` + const auth0AuthRequestCookie = getCookie(c, cookieName) + if (!auth0AuthRequestCookie) { + return c.text('Invalid transaction state or session expired', 400) + } + + const auth0AuthRequest = JSON.parse( + atob(auth0AuthRequestCookie), + ) as Auth0AuthRequest + + // Clear the transaction cookie as it's no longer needed + setCookie(c, cookieName, '', { + maxAge: 0, + path: '/', + }) + + console.log( + 'Auth0 Authorization Server - Transaction State:', + auth0AuthRequest, + ) + + const { as, client, clientAuth } = await getOidcConfig({ + client_id: c.env.AUTH0_CLIENT_ID, + client_secret: c.env.AUTH0_CLIENT_SECRET, + issuer: `https://${c.env.AUTH0_DOMAIN}/`, + }) + + console.log( + 'Auth0 Authorization Server - Discovery Information:', + JSON.stringify(as), + JSON.stringify(clientAuth), + ) + + // Perform the Code Exchange + const params = oauth.validateAuthResponse( + as, + client, + new URL(c.req.url), + auth0AuthRequest.transactionState, + ) + + console.log('Response parameters from Auth0:', params) + + const response = await oauth.authorizationCodeGrantRequest( + as, + client, + clientAuth, + params, + new URL('/callback', c.req.url).href, + auth0AuthRequest.codeVerifier, + ) + + console.log('Response from Auth0 callback:', response) + + // Process the response + const result = await oauth.processAuthorizationCodeResponse( + as, + client, + response, + { + expectedNonce: auth0AuthRequest.nonce, + requireIdToken: true, + }, + ) + + // Get the claims from the id_token + const claims = oauth.getValidatedIdTokenClaims(result) + if (!claims) { + return c.text('Received invalid id_token from Auth0', 400) + } + + // Complete the authorization + const { redirectTo } = await c.env.OAUTH_PROVIDER.completeAuthorization({ + metadata: { + label: claims.name || claims.email || claims.sub, + }, + props: { + claims: claims, + tokenSet: { + accessToken: result.access_token, + accessTokenTTL: result.expires_in, + idToken: result.id_token, + refreshToken: result.refresh_token, + }, + } as UserProps, + request: auth0AuthRequest.mcpAuthRequest, + scope: auth0AuthRequest.mcpAuthRequest.scope, + userId: claims.sub!, + }) + + return Response.redirect(redirectTo) +} + +/** + * Token Exchange Callback + * + * This function handles the token exchange callback for the CloudflareOAuth Provider + * and allows us to then interact with the Upstream IdP (your Auth0 tenant) + */ +export async function tokenExchangeCallback( + options: TokenExchangeCallbackOptions, +): Promise<TokenExchangeCallbackResult> { + // During the Authorization Code Exchange, we want to make sure that the Access Token issued + // by the MCP Server has the same TTL as the one issued by Auth0. + if (options.grantType === 'authorization_code') { return { - accessTokenTTL: props.tokenSet.accessTokenTTL, + accessTokenTTL: options.props.tokenSet.accessTokenTTL, newProps: { - claims, - tokenSet: { - accessToken: props.tokenSet.accessToken, - idToken: props.tokenSet.idToken, - refreshToken: props.tokenSet.refreshToken || '', - }, - } as UserProps, + ...options.props, + }, } } - // Handle refresh token flow - if (grantType === 'refresh_token') { - const auth0RefreshToken = props?.tokenSet?.refreshToken + if (options.grantType === 'refresh_token') { + const auth0RefreshToken = options.props.tokenSet.refreshToken if (!auth0RefreshToken) { throw new Error('No Auth0 refresh token found') } @@ -108,115 +362,67 @@ export const tokenExchangeCallback: TokenExchangeCallbackFunction = async ( issuer: `https://${env.AUTH0_DOMAIN}/`, }) - // Perform the refresh token exchange with Auth0 + // Perform the refresh token exchange with Auth0. const response = await oauth.refreshTokenGrantRequest( as, client, clientAuth, auth0RefreshToken, ) + const refreshTokenResponse = await oauth.processRefreshTokenResponse( as, client, response, ) - // Extract claims from the new ID token - let claims: DevCycleJWTClaims - if (refreshTokenResponse.id_token) { - claims = parseJWT(refreshTokenResponse.id_token) - } else { - // Fall back to existing claims if no new ID token - claims = props.claims as DevCycleJWTClaims + // Get the claims from the id_token + const claims = oauth.getValidatedIdTokenClaims(refreshTokenResponse) + if (!claims) { + throw new Error('Received invalid id_token from Auth0') } - // Return updated token set and claims + // Store the new token set and claims. return { accessTokenTTL: refreshTokenResponse.expires_in, newProps: { - claims, + ...options.props, + claims: claims, tokenSet: { accessToken: refreshTokenResponse.access_token, - idToken: - refreshTokenResponse.id_token || props.tokenSet.idToken, + accessTokenTTL: refreshTokenResponse.expires_in, + idToken: refreshTokenResponse.id_token, refreshToken: refreshTokenResponse.refresh_token || auth0RefreshToken, }, - } as UserProps, + }, } } - // For other grant types, no special handling needed - return undefined + throw new Error(`Unsupported grant type: ${options.grantType}`) } /** - * Authorization endpoint handler - * Initiates the OAuth flow with DevCycle/Auth0 + * Create the Hono app with OAuth and utility routes */ -export async function authorize(c: any): Promise<Response> { - const params = c.req.query() as AuthorizeParams - - // Add DevCycle-specific scopes if not already present - const defaultScopes = ['openid', 'profile', 'email', 'offline_access'] - const requestedScopes = params.scope?.split(' ') || [] - const allScopes = [...new Set([...defaultScopes, ...requestedScopes])] - - // Forward to the OAuth provider with enhanced scopes - return c.env.OAUTH_PROVIDER.authorize({ - ...params, - scope: allScopes.join(' '), - }) -} - -/** - * OAuth callback handler - * Processes the callback from Auth0 after user authentication - */ -export async function callback(c: any): Promise<Response> { - const params = c.req.query() as CallbackParams - return c.env.OAUTH_PROVIDER.callback(params) -} - -/** - * Consent confirmation handler - * Handles user consent for the OAuth flow - */ -export async function confirmConsent(c: any): Promise<Response> { - const formData = await c.req.formData() - const params = Object.fromEntries(formData.entries()) as ConsentParams - return c.env.OAUTH_PROVIDER.confirmConsent(params) -} +export function createAuthApp(): Hono<{ + Bindings: Env & { OAUTH_PROVIDER: OAuthHelpers } +}> { + const app = new Hono<{ Bindings: Env & { OAUTH_PROVIDER: OAuthHelpers } }>() -/** - * Health check endpoint - */ -export function healthCheck() { - return new Response( - JSON.stringify({ - status: 'ok', - service: 'DevCycle MCP Server', - timestamp: new Date().toISOString(), - }), - { - headers: { 'Content-Type': 'application/json' }, - }, - ) -} - -/** - * Create the Hono app with OAuth routes - */ -export function createAuthApp(): Hono<{ Bindings: Env }> { - const app = new Hono<{ Bindings: Env }>() - - // OAuth flow endpoints + // OAuth routes - these are required for the OAuth flow app.get('/authorize', authorize) app.post('/authorize/consent', confirmConsent) app.get('/callback', callback) // Health check - app.get('/health', () => healthCheck()) + app.get('/health', (c) => { + return c.json({ + status: 'ok', + service: 'DevCycle MCP Server', + timestamp: new Date().toISOString(), + }) + }) // Info endpoint for debugging app.get('/info', (c) => { diff --git a/mcp-worker/src/consentScreen.ts b/mcp-worker/src/consentScreen.ts new file mode 100644 index 000000000..d6cdab7db --- /dev/null +++ b/mcp-worker/src/consentScreen.ts @@ -0,0 +1,200 @@ +import { html, raw } from 'hono/html' + +/** + * Renders the consent screen HTML + */ +export function renderConsentScreen({ + clientName, + clientLogo, + clientUri, + redirectUri, + requestedScopes, + transactionState, + consentToken, +}: { + clientName: string + clientLogo: string + clientUri: string + redirectUri: string + requestedScopes: string[] + transactionState: string + consentToken: string +}) { + return html`<!doctype html> + <html> + <head> + <title>Authorization Request + + + + +
+ + +

DevCycle MCP Server - Authorization Request

+ +
+ ${clientName} +

+ ${clientName} is requesting + permission to access the + DevCycle API using your account. + Please review the permissions before proceeding. +

+
+ +
+

+ By clicking "Allow Access", you authorize + ${clientName} to access the + following resources: +

+
    + ${raw( + requestedScopes + .map((scope) => `
  • ${scope}
  • `) + .join('\n'), + )} +
+
+ +
+

+ If you did not initiate the request coming from + ${clientName} + (${redirectUri}) or you do not trust this + application, you should deny access. +

+
+ +
+ + +
+ + +
+
+ + +
+ + ` +} diff --git a/mcp-worker/src/index.ts b/mcp-worker/src/index.ts index 1898a3f8c..c84a23061 100644 --- a/mcp-worker/src/index.ts +++ b/mcp-worker/src/index.ts @@ -3,7 +3,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js' import { McpAgent } from 'agents/mcp' import { createAuthApp, tokenExchangeCallback } from './auth' import { WorkerApiClient } from './apiClient' -import { MCPToolRegistry, registerAllTools } from '../../dist/mcp/tools' +import { MCPToolRegistry, registerAllTools } from '../../src/mcp/tools' import type { UserProps, Env } from './types' /** @@ -18,7 +18,6 @@ export class DevCycleMCP extends McpAgent< Record, UserProps > { - // The MCP server instance that handles protocol communication server = new McpServer({ name: 'DevCycle CLI MCP Server', version: '1.0.0', @@ -51,7 +50,7 @@ export class DevCycleMCP extends McpAgent< this.registry.getToolNames(), ) - // Add a debug tool to inspect user context + // Useful for debugging. This will show the current user's claims and the Auth0 tokens. this.server.tool( 'whoami', 'Get the current DevCycle user details and context', @@ -68,6 +67,7 @@ export class DevCycleMCP extends McpAgent< message: 'DevCycle MCP Server - User Context', context: userContext, + props: this.props, // Include full props for debugging like the example serverInfo: { name: 'DevCycle CLI MCP Server', version: '1.0.0', @@ -100,7 +100,7 @@ export class DevCycleMCP extends McpAgent< // Dynamically create MCP protocol handlers for each registered tool for (const tool of this.registry.getAll()) { - // @ts-expect-error - MCP SDK type compatibility issues with tool registration + // @ts-expect-error MCP SDK type compatibility issues with tool registration this.server.tool( tool.name, tool.description, @@ -167,7 +167,7 @@ export class DevCycleMCP extends McpAgent< content: [ { type: 'text', - text: `Error executing ${tool.name}: ${errorMessage}`, + text: `The call to ${tool.name} failed: ${errorMessage}`, }, ], } @@ -207,35 +207,16 @@ export class DevCycleMCP extends McpAgent< } } -/** - * Create and configure the main Cloudflare Worker export - * - * This sets up the OAuth Provider with the MCP server mounted on the /sse endpoint - * and includes all the necessary authentication and routing handlers. - */ -function createWorker() { - // Initialize the Hono app with OAuth routes - const authApp = createAuthApp() - - // Create the OAuth Provider with MCP server integration - return new OAuthProvider({ - // Mount the MCP server on the /sse endpoint for Server-Sent Events communication - apiHandler: DevCycleMCP.mount('/sse') as any, - apiRoute: '/sse', - - // OAuth endpoint configuration - authorizeEndpoint: '/authorize', - clientRegistrationEndpoint: '/signup', - tokenEndpoint: '/token', - - // Auth app handles all OAuth-related routes - // @ts-expect-error - Type compatibility with OAuth provider - defaultHandler: authApp, - - // Token exchange callback for handling OAuth token flows - tokenExchangeCallback, - }) -} - -// Export the configured Worker -export default createWorker() +// Initialize the Hono app with non-OAuth routes only +// Let the OAuth Provider handle OAuth routes (/authorize, /callback, etc.) automatically +const app = createAuthApp() + +export default new OAuthProvider({ + apiHandler: DevCycleMCP.mount('/sse'), + apiRoute: '/sse', + authorizeEndpoint: '/authorize', + clientRegistrationEndpoint: '/signup', + defaultHandler: app as any, + tokenEndpoint: '/token', + tokenExchangeCallback, +}) diff --git a/mcp-worker/tsconfig.json b/mcp-worker/tsconfig.json index 5d885f968..7c606ff13 100644 --- a/mcp-worker/tsconfig.json +++ b/mcp-worker/tsconfig.json @@ -2,7 +2,7 @@ "extends": "../tsconfig.json", "compilerOptions": { "outDir": "./dist", - "rootDir": "./src", + "rootDir": "../", "types": [ "@cloudflare/workers-types", "node" @@ -20,7 +20,8 @@ "sourceMap": true }, "include": [ - "src/**/*" + "src/**/*", + "../src/mcp/**/*" ], "exclude": [ "node_modules", diff --git a/mcp-worker/worker-configuration.d.ts b/mcp-worker/worker-configuration.d.ts new file mode 100644 index 000000000..611c8565d --- /dev/null +++ b/mcp-worker/worker-configuration.d.ts @@ -0,0 +1,7370 @@ +/* eslint-disable */ +// Generated by Wrangler by running `wrangler types` (hash: aaf1a93ae0904c253b1df9eb8e1bf827) +// Runtime types generated with workerd@1.20250712.0 2025-06-28 nodejs_compat +declare namespace Cloudflare { + interface Env { + OAUTH_KV: KVNamespace; + NODE_ENV: "production"; + API_BASE_URL: "https://api.devcycle.com"; + AUTH0_DOMAIN: "auth.devcycle.com"; + AUTH0_AUDIENCE: "https://api.devcycle.com/"; + AUTH0_SCOPE: "openid profile email offline_access"; + MCP_OBJECT: DurableObjectNamespace; + } +} +interface Env extends Cloudflare.Env {} +type StringifyValues> = { + [Binding in keyof EnvType]: EnvType[Binding] extends string ? EnvType[Binding] : string; +}; +declare namespace NodeJS { + interface ProcessEnv extends StringifyValues> {} +} + +// Begin runtime types +/*! ***************************************************************************** +Copyright (c) Cloudflare. All rights reserved. +Copyright (c) Microsoft Corporation. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ +/* eslint-disable */ +// noinspection JSUnusedGlobalSymbols +declare var onmessage: never; +/** + * An abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException) + */ +declare class DOMException extends Error { + constructor(message?: string, name?: string); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/message) */ + readonly message: string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/name) */ + readonly name: string; + /** + * @deprecated + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/code) + */ + readonly code: number; + static readonly INDEX_SIZE_ERR: number; + static readonly DOMSTRING_SIZE_ERR: number; + static readonly HIERARCHY_REQUEST_ERR: number; + static readonly WRONG_DOCUMENT_ERR: number; + static readonly INVALID_CHARACTER_ERR: number; + static readonly NO_DATA_ALLOWED_ERR: number; + static readonly NO_MODIFICATION_ALLOWED_ERR: number; + static readonly NOT_FOUND_ERR: number; + static readonly NOT_SUPPORTED_ERR: number; + static readonly INUSE_ATTRIBUTE_ERR: number; + static readonly INVALID_STATE_ERR: number; + static readonly SYNTAX_ERR: number; + static readonly INVALID_MODIFICATION_ERR: number; + static readonly NAMESPACE_ERR: number; + static readonly INVALID_ACCESS_ERR: number; + static readonly VALIDATION_ERR: number; + static readonly TYPE_MISMATCH_ERR: number; + static readonly SECURITY_ERR: number; + static readonly NETWORK_ERR: number; + static readonly ABORT_ERR: number; + static readonly URL_MISMATCH_ERR: number; + static readonly QUOTA_EXCEEDED_ERR: number; + static readonly TIMEOUT_ERR: number; + static readonly INVALID_NODE_TYPE_ERR: number; + static readonly DATA_CLONE_ERR: number; + get stack(): any; + set stack(value: any); +} +type WorkerGlobalScopeEventMap = { + fetch: FetchEvent; + scheduled: ScheduledEvent; + queue: QueueEvent; + unhandledrejection: PromiseRejectionEvent; + rejectionhandled: PromiseRejectionEvent; +}; +declare abstract class WorkerGlobalScope extends EventTarget { + EventTarget: typeof EventTarget; +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console) */ +interface Console { + "assert"(condition?: boolean, ...data: any[]): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/clear_static) */ + clear(): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/count_static) */ + count(label?: string): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/countReset_static) */ + countReset(label?: string): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/debug_static) */ + debug(...data: any[]): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/dir_static) */ + dir(item?: any, options?: any): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/dirxml_static) */ + dirxml(...data: any[]): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/error_static) */ + error(...data: any[]): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/group_static) */ + group(...data: any[]): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/groupCollapsed_static) */ + groupCollapsed(...data: any[]): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/groupEnd_static) */ + groupEnd(): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/info_static) */ + info(...data: any[]): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static) */ + log(...data: any[]): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/table_static) */ + table(tabularData?: any, properties?: string[]): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/time_static) */ + time(label?: string): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeEnd_static) */ + timeEnd(label?: string): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeLog_static) */ + timeLog(label?: string, ...data: any[]): void; + timeStamp(label?: string): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/trace_static) */ + trace(...data: any[]): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/warn_static) */ + warn(...data: any[]): void; +} +declare const console: Console; +type BufferSource = ArrayBufferView | ArrayBuffer; +type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array; +declare namespace WebAssembly { + class CompileError extends Error { + constructor(message?: string); + } + class RuntimeError extends Error { + constructor(message?: string); + } + type ValueType = "anyfunc" | "externref" | "f32" | "f64" | "i32" | "i64" | "v128"; + interface GlobalDescriptor { + value: ValueType; + mutable?: boolean; + } + class Global { + constructor(descriptor: GlobalDescriptor, value?: any); + value: any; + valueOf(): any; + } + type ImportValue = ExportValue | number; + type ModuleImports = Record; + type Imports = Record; + type ExportValue = Function | Global | Memory | Table; + type Exports = Record; + class Instance { + constructor(module: Module, imports?: Imports); + readonly exports: Exports; + } + interface MemoryDescriptor { + initial: number; + maximum?: number; + shared?: boolean; + } + class Memory { + constructor(descriptor: MemoryDescriptor); + readonly buffer: ArrayBuffer; + grow(delta: number): number; + } + type ImportExportKind = "function" | "global" | "memory" | "table"; + interface ModuleExportDescriptor { + kind: ImportExportKind; + name: string; + } + interface ModuleImportDescriptor { + kind: ImportExportKind; + module: string; + name: string; + } + abstract class Module { + static customSections(module: Module, sectionName: string): ArrayBuffer[]; + static exports(module: Module): ModuleExportDescriptor[]; + static imports(module: Module): ModuleImportDescriptor[]; + } + type TableKind = "anyfunc" | "externref"; + interface TableDescriptor { + element: TableKind; + initial: number; + maximum?: number; + } + class Table { + constructor(descriptor: TableDescriptor, value?: any); + readonly length: number; + get(index: number): any; + grow(delta: number, value?: any): number; + set(index: number, value?: any): void; + } + function instantiate(module: Module, imports?: Imports): Promise; + function validate(bytes: BufferSource): boolean; +} +/** + * This ServiceWorker API interface represents the global execution context of a service worker. + * Available only in secure contexts. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope) + */ +interface ServiceWorkerGlobalScope extends WorkerGlobalScope { + DOMException: typeof DOMException; + WorkerGlobalScope: typeof WorkerGlobalScope; + btoa(data: string): string; + atob(data: string): string; + setTimeout(callback: (...args: any[]) => void, msDelay?: number): number; + setTimeout(callback: (...args: Args) => void, msDelay?: number, ...args: Args): number; + clearTimeout(timeoutId: number | null): void; + setInterval(callback: (...args: any[]) => void, msDelay?: number): number; + setInterval(callback: (...args: Args) => void, msDelay?: number, ...args: Args): number; + clearInterval(timeoutId: number | null): void; + queueMicrotask(task: Function): void; + structuredClone(value: T, options?: StructuredSerializeOptions): T; + reportError(error: any): void; + fetch(input: RequestInfo | URL, init?: RequestInit): Promise; + self: ServiceWorkerGlobalScope; + crypto: Crypto; + caches: CacheStorage; + scheduler: Scheduler; + performance: Performance; + Cloudflare: Cloudflare; + readonly origin: string; + Event: typeof Event; + ExtendableEvent: typeof ExtendableEvent; + CustomEvent: typeof CustomEvent; + PromiseRejectionEvent: typeof PromiseRejectionEvent; + FetchEvent: typeof FetchEvent; + TailEvent: typeof TailEvent; + TraceEvent: typeof TailEvent; + ScheduledEvent: typeof ScheduledEvent; + MessageEvent: typeof MessageEvent; + CloseEvent: typeof CloseEvent; + ReadableStreamDefaultReader: typeof ReadableStreamDefaultReader; + ReadableStreamBYOBReader: typeof ReadableStreamBYOBReader; + ReadableStream: typeof ReadableStream; + WritableStream: typeof WritableStream; + WritableStreamDefaultWriter: typeof WritableStreamDefaultWriter; + TransformStream: typeof TransformStream; + ByteLengthQueuingStrategy: typeof ByteLengthQueuingStrategy; + CountQueuingStrategy: typeof CountQueuingStrategy; + ErrorEvent: typeof ErrorEvent; + EventSource: typeof EventSource; + ReadableStreamBYOBRequest: typeof ReadableStreamBYOBRequest; + ReadableStreamDefaultController: typeof ReadableStreamDefaultController; + ReadableByteStreamController: typeof ReadableByteStreamController; + WritableStreamDefaultController: typeof WritableStreamDefaultController; + TransformStreamDefaultController: typeof TransformStreamDefaultController; + CompressionStream: typeof CompressionStream; + DecompressionStream: typeof DecompressionStream; + TextEncoderStream: typeof TextEncoderStream; + TextDecoderStream: typeof TextDecoderStream; + Headers: typeof Headers; + Body: typeof Body; + Request: typeof Request; + Response: typeof Response; + WebSocket: typeof WebSocket; + WebSocketPair: typeof WebSocketPair; + WebSocketRequestResponsePair: typeof WebSocketRequestResponsePair; + AbortController: typeof AbortController; + AbortSignal: typeof AbortSignal; + TextDecoder: typeof TextDecoder; + TextEncoder: typeof TextEncoder; + navigator: Navigator; + Navigator: typeof Navigator; + URL: typeof URL; + URLSearchParams: typeof URLSearchParams; + URLPattern: typeof URLPattern; + Blob: typeof Blob; + File: typeof File; + FormData: typeof FormData; + Crypto: typeof Crypto; + SubtleCrypto: typeof SubtleCrypto; + CryptoKey: typeof CryptoKey; + CacheStorage: typeof CacheStorage; + Cache: typeof Cache; + FixedLengthStream: typeof FixedLengthStream; + IdentityTransformStream: typeof IdentityTransformStream; + HTMLRewriter: typeof HTMLRewriter; +} +declare function addEventListener(type: Type, handler: EventListenerOrEventListenerObject, options?: EventTargetAddEventListenerOptions | boolean): void; +declare function removeEventListener(type: Type, handler: EventListenerOrEventListenerObject, options?: EventTargetEventListenerOptions | boolean): void; +/** + * Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent) + */ +declare function dispatchEvent(event: WorkerGlobalScopeEventMap[keyof WorkerGlobalScopeEventMap]): boolean; +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/btoa) */ +declare function btoa(data: string): string; +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/atob) */ +declare function atob(data: string): string; +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/setTimeout) */ +declare function setTimeout(callback: (...args: any[]) => void, msDelay?: number): number; +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/setTimeout) */ +declare function setTimeout(callback: (...args: Args) => void, msDelay?: number, ...args: Args): number; +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/clearTimeout) */ +declare function clearTimeout(timeoutId: number | null): void; +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/setInterval) */ +declare function setInterval(callback: (...args: any[]) => void, msDelay?: number): number; +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/setInterval) */ +declare function setInterval(callback: (...args: Args) => void, msDelay?: number, ...args: Args): number; +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/clearInterval) */ +declare function clearInterval(timeoutId: number | null): void; +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/queueMicrotask) */ +declare function queueMicrotask(task: Function): void; +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/structuredClone) */ +declare function structuredClone(value: T, options?: StructuredSerializeOptions): T; +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/reportError) */ +declare function reportError(error: any): void; +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/fetch) */ +declare function fetch(input: RequestInfo | URL, init?: RequestInit): Promise; +declare const self: ServiceWorkerGlobalScope; +/** +* The Web Crypto API provides a set of low-level functions for common cryptographic tasks. +* The Workers runtime implements the full surface of this API, but with some differences in +* the [supported algorithms](https://developers.cloudflare.com/workers/runtime-apis/web-crypto/#supported-algorithms) +* compared to those implemented in most browsers. +* +* [Cloudflare Docs Reference](https://developers.cloudflare.com/workers/runtime-apis/web-crypto/) +*/ +declare const crypto: Crypto; +/** +* The Cache API allows fine grained control of reading and writing from the Cloudflare global network cache. +* +* [Cloudflare Docs Reference](https://developers.cloudflare.com/workers/runtime-apis/cache/) +*/ +declare const caches: CacheStorage; +declare const scheduler: Scheduler; +/** +* The Workers runtime supports a subset of the Performance API, used to measure timing and performance, +* as well as timing of subrequests and other operations. +* +* [Cloudflare Docs Reference](https://developers.cloudflare.com/workers/runtime-apis/performance/) +*/ +declare const performance: Performance; +declare const Cloudflare: Cloudflare; +declare const origin: string; +declare const navigator: Navigator; +interface TestController { +} +interface ExecutionContext { + waitUntil(promise: Promise): void; + passThroughOnException(): void; + props: any; +} +type ExportedHandlerFetchHandler = (request: Request>, env: Env, ctx: ExecutionContext) => Response | Promise; +type ExportedHandlerTailHandler = (events: TraceItem[], env: Env, ctx: ExecutionContext) => void | Promise; +type ExportedHandlerTraceHandler = (traces: TraceItem[], env: Env, ctx: ExecutionContext) => void | Promise; +type ExportedHandlerTailStreamHandler = (event: TailStream.TailEvent, env: Env, ctx: ExecutionContext) => TailStream.TailEventHandlerType | Promise; +type ExportedHandlerScheduledHandler = (controller: ScheduledController, env: Env, ctx: ExecutionContext) => void | Promise; +type ExportedHandlerQueueHandler = (batch: MessageBatch, env: Env, ctx: ExecutionContext) => void | Promise; +type ExportedHandlerTestHandler = (controller: TestController, env: Env, ctx: ExecutionContext) => void | Promise; +interface ExportedHandler { + fetch?: ExportedHandlerFetchHandler; + tail?: ExportedHandlerTailHandler; + trace?: ExportedHandlerTraceHandler; + tailStream?: ExportedHandlerTailStreamHandler; + scheduled?: ExportedHandlerScheduledHandler; + test?: ExportedHandlerTestHandler; + email?: EmailExportedHandler; + queue?: ExportedHandlerQueueHandler; +} +interface StructuredSerializeOptions { + transfer?: any[]; +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent) */ +declare abstract class PromiseRejectionEvent extends Event { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent/promise) */ + readonly promise: Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent/reason) */ + readonly reason: any; +} +declare abstract class Navigator { + sendBeacon(url: string, body?: (ReadableStream | string | (ArrayBuffer | ArrayBufferView) | Blob | FormData | URLSearchParams | URLSearchParams)): boolean; + readonly userAgent: string; + readonly hardwareConcurrency: number; + readonly language: string; + readonly languages: string[]; +} +/** +* The Workers runtime supports a subset of the Performance API, used to measure timing and performance, +* as well as timing of subrequests and other operations. +* +* [Cloudflare Docs Reference](https://developers.cloudflare.com/workers/runtime-apis/performance/) +*/ +interface Performance { + /* [Cloudflare Docs Reference](https://developers.cloudflare.com/workers/runtime-apis/performance/#performancetimeorigin) */ + readonly timeOrigin: number; + /* [Cloudflare Docs Reference](https://developers.cloudflare.com/workers/runtime-apis/performance/#performancenow) */ + now(): number; +} +interface AlarmInvocationInfo { + readonly isRetry: boolean; + readonly retryCount: number; +} +interface Cloudflare { + readonly compatibilityFlags: Record; +} +interface DurableObject { + fetch(request: Request): Response | Promise; + alarm?(alarmInfo?: AlarmInvocationInfo): void | Promise; + webSocketMessage?(ws: WebSocket, message: string | ArrayBuffer): void | Promise; + webSocketClose?(ws: WebSocket, code: number, reason: string, wasClean: boolean): void | Promise; + webSocketError?(ws: WebSocket, error: unknown): void | Promise; +} +type DurableObjectStub = Fetcher & { + readonly id: DurableObjectId; + readonly name?: string; +}; +interface DurableObjectId { + toString(): string; + equals(other: DurableObjectId): boolean; + readonly name?: string; +} +interface DurableObjectNamespace { + newUniqueId(options?: DurableObjectNamespaceNewUniqueIdOptions): DurableObjectId; + idFromName(name: string): DurableObjectId; + idFromString(id: string): DurableObjectId; + get(id: DurableObjectId, options?: DurableObjectNamespaceGetDurableObjectOptions): DurableObjectStub; + jurisdiction(jurisdiction: DurableObjectJurisdiction): DurableObjectNamespace; +} +type DurableObjectJurisdiction = "eu" | "fedramp" | "fedramp-high"; +interface DurableObjectNamespaceNewUniqueIdOptions { + jurisdiction?: DurableObjectJurisdiction; +} +type DurableObjectLocationHint = "wnam" | "enam" | "sam" | "weur" | "eeur" | "apac" | "oc" | "afr" | "me"; +interface DurableObjectNamespaceGetDurableObjectOptions { + locationHint?: DurableObjectLocationHint; +} +interface DurableObjectState { + waitUntil(promise: Promise): void; + readonly id: DurableObjectId; + readonly storage: DurableObjectStorage; + container?: Container; + blockConcurrencyWhile(callback: () => Promise): Promise; + acceptWebSocket(ws: WebSocket, tags?: string[]): void; + getWebSockets(tag?: string): WebSocket[]; + setWebSocketAutoResponse(maybeReqResp?: WebSocketRequestResponsePair): void; + getWebSocketAutoResponse(): WebSocketRequestResponsePair | null; + getWebSocketAutoResponseTimestamp(ws: WebSocket): Date | null; + setHibernatableWebSocketEventTimeout(timeoutMs?: number): void; + getHibernatableWebSocketEventTimeout(): number | null; + getTags(ws: WebSocket): string[]; + abort(reason?: string): void; +} +interface DurableObjectTransaction { + get(key: string, options?: DurableObjectGetOptions): Promise; + get(keys: string[], options?: DurableObjectGetOptions): Promise>; + list(options?: DurableObjectListOptions): Promise>; + put(key: string, value: T, options?: DurableObjectPutOptions): Promise; + put(entries: Record, options?: DurableObjectPutOptions): Promise; + delete(key: string, options?: DurableObjectPutOptions): Promise; + delete(keys: string[], options?: DurableObjectPutOptions): Promise; + rollback(): void; + getAlarm(options?: DurableObjectGetAlarmOptions): Promise; + setAlarm(scheduledTime: number | Date, options?: DurableObjectSetAlarmOptions): Promise; + deleteAlarm(options?: DurableObjectSetAlarmOptions): Promise; +} +interface DurableObjectStorage { + get(key: string, options?: DurableObjectGetOptions): Promise; + get(keys: string[], options?: DurableObjectGetOptions): Promise>; + list(options?: DurableObjectListOptions): Promise>; + put(key: string, value: T, options?: DurableObjectPutOptions): Promise; + put(entries: Record, options?: DurableObjectPutOptions): Promise; + delete(key: string, options?: DurableObjectPutOptions): Promise; + delete(keys: string[], options?: DurableObjectPutOptions): Promise; + deleteAll(options?: DurableObjectPutOptions): Promise; + transaction(closure: (txn: DurableObjectTransaction) => Promise): Promise; + getAlarm(options?: DurableObjectGetAlarmOptions): Promise; + setAlarm(scheduledTime: number | Date, options?: DurableObjectSetAlarmOptions): Promise; + deleteAlarm(options?: DurableObjectSetAlarmOptions): Promise; + sync(): Promise; + sql: SqlStorage; + transactionSync(closure: () => T): T; + getCurrentBookmark(): Promise; + getBookmarkForTime(timestamp: number | Date): Promise; + onNextSessionRestoreBookmark(bookmark: string): Promise; +} +interface DurableObjectListOptions { + start?: string; + startAfter?: string; + end?: string; + prefix?: string; + reverse?: boolean; + limit?: number; + allowConcurrency?: boolean; + noCache?: boolean; +} +interface DurableObjectGetOptions { + allowConcurrency?: boolean; + noCache?: boolean; +} +interface DurableObjectGetAlarmOptions { + allowConcurrency?: boolean; +} +interface DurableObjectPutOptions { + allowConcurrency?: boolean; + allowUnconfirmed?: boolean; + noCache?: boolean; +} +interface DurableObjectSetAlarmOptions { + allowConcurrency?: boolean; + allowUnconfirmed?: boolean; +} +declare class WebSocketRequestResponsePair { + constructor(request: string, response: string); + get request(): string; + get response(): string; +} +interface AnalyticsEngineDataset { + writeDataPoint(event?: AnalyticsEngineDataPoint): void; +} +interface AnalyticsEngineDataPoint { + indexes?: ((ArrayBuffer | string) | null)[]; + doubles?: number[]; + blobs?: ((ArrayBuffer | string) | null)[]; +} +/** + * An event which takes place in the DOM. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event) + */ +declare class Event { + constructor(type: string, init?: EventInit); + /** + * Returns the type of event, e.g. "click", "hashchange", or "submit". + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/type) + */ + get type(): string; + /** + * Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET, and BUBBLING_PHASE. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/eventPhase) + */ + get eventPhase(): number; + /** + * Returns true or false depending on how event was initialized. True if event invokes listeners past a ShadowRoot node that is the root of its target, and false otherwise. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composed) + */ + get composed(): boolean; + /** + * Returns true or false depending on how event was initialized. True if event goes through its target's ancestors in reverse tree order, and false otherwise. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/bubbles) + */ + get bubbles(): boolean; + /** + * Returns true or false depending on how event was initialized. Its return value does not always carry meaning, but true can indicate that part of the operation during which event was dispatched, can be canceled by invoking the preventDefault() method. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelable) + */ + get cancelable(): boolean; + /** + * Returns true if preventDefault() was invoked successfully to indicate cancelation, and false otherwise. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/defaultPrevented) + */ + get defaultPrevented(): boolean; + /** + * @deprecated + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/returnValue) + */ + get returnValue(): boolean; + /** + * Returns the object whose event listener's callback is currently being invoked. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget) + */ + get currentTarget(): EventTarget | undefined; + /** + * Returns the object to which event is dispatched (its target). + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target) + */ + get target(): EventTarget | undefined; + /** + * @deprecated + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/srcElement) + */ + get srcElement(): EventTarget | undefined; + /** + * Returns the event's timestamp as the number of milliseconds measured relative to the time origin. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/timeStamp) + */ + get timeStamp(): number; + /** + * Returns true if event was dispatched by the user agent, and false otherwise. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/isTrusted) + */ + get isTrusted(): boolean; + /** + * @deprecated + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelBubble) + */ + get cancelBubble(): boolean; + /** + * @deprecated + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelBubble) + */ + set cancelBubble(value: boolean); + /** + * Invoking this method prevents event from reaching any registered event listeners after the current one finishes running and, when dispatched in a tree, also prevents event from reaching any other objects. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopImmediatePropagation) + */ + stopImmediatePropagation(): void; + /** + * If invoked when the cancelable attribute value is true, and while executing a listener for the event with passive set to false, signals to the operation that caused event to be dispatched that it needs to be canceled. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/preventDefault) + */ + preventDefault(): void; + /** + * When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopPropagation) + */ + stopPropagation(): void; + /** + * Returns the invocation target objects of event's path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root's mode is "closed" that are not reachable from event's currentTarget. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composedPath) + */ + composedPath(): EventTarget[]; + static readonly NONE: number; + static readonly CAPTURING_PHASE: number; + static readonly AT_TARGET: number; + static readonly BUBBLING_PHASE: number; +} +interface EventInit { + bubbles?: boolean; + cancelable?: boolean; + composed?: boolean; +} +type EventListener = (event: EventType) => void; +interface EventListenerObject { + handleEvent(event: EventType): void; +} +type EventListenerOrEventListenerObject = EventListener | EventListenerObject; +/** + * EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget) + */ +declare class EventTarget = Record> { + constructor(); + /** + * Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. + * + * The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture. + * + * When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET. + * + * When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners. + * + * When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed. + * + * If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted. + * + * The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener) + */ + addEventListener(type: Type, handler: EventListenerOrEventListenerObject, options?: EventTargetAddEventListenerOptions | boolean): void; + /** + * Removes the event listener in target's event listener list with the same type, callback, and options. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener) + */ + removeEventListener(type: Type, handler: EventListenerOrEventListenerObject, options?: EventTargetEventListenerOptions | boolean): void; + /** + * Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent) + */ + dispatchEvent(event: EventMap[keyof EventMap]): boolean; +} +interface EventTargetEventListenerOptions { + capture?: boolean; +} +interface EventTargetAddEventListenerOptions { + capture?: boolean; + passive?: boolean; + once?: boolean; + signal?: AbortSignal; +} +interface EventTargetHandlerObject { + handleEvent: (event: Event) => any | undefined; +} +/** + * A controller object that allows you to abort one or more DOM requests as and when desired. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController) + */ +declare class AbortController { + constructor(); + /** + * Returns the AbortSignal object associated with this object. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/signal) + */ + get signal(): AbortSignal; + /** + * Invoking this method will set this object's AbortSignal's aborted flag and signal to any observers that the associated activity is to be aborted. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/abort) + */ + abort(reason?: any): void; +} +/** + * A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal) + */ +declare abstract class AbortSignal extends EventTarget { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_static) */ + static abort(reason?: any): AbortSignal; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/timeout_static) */ + static timeout(delay: number): AbortSignal; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/any_static) */ + static any(signals: AbortSignal[]): AbortSignal; + /** + * Returns true if this AbortSignal's AbortController has signaled to abort, and false otherwise. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/aborted) + */ + get aborted(): boolean; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/reason) */ + get reason(): any; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_event) */ + get onabort(): any | null; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_event) */ + set onabort(value: any | null); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/throwIfAborted) */ + throwIfAborted(): void; +} +interface Scheduler { + wait(delay: number, maybeOptions?: SchedulerWaitOptions): Promise; +} +interface SchedulerWaitOptions { + signal?: AbortSignal; +} +/** + * Extends the lifetime of the install and activate events dispatched on the global scope as part of the service worker lifecycle. This ensures that any functional events (like FetchEvent) are not dispatched until it upgrades database schemas and deletes the outdated cache entries. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableEvent) + */ +declare abstract class ExtendableEvent extends Event { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableEvent/waitUntil) */ + waitUntil(promise: Promise): void; +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent) */ +declare class CustomEvent extends Event { + constructor(type: string, init?: CustomEventCustomEventInit); + /** + * Returns any custom data event was created with. Typically used for synthetic events. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/detail) + */ + get detail(): T; +} +interface CustomEventCustomEventInit { + bubbles?: boolean; + cancelable?: boolean; + composed?: boolean; + detail?: any; +} +/** + * A file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user's system. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob) + */ +declare class Blob { + constructor(type?: ((ArrayBuffer | ArrayBufferView) | string | Blob)[], options?: BlobOptions); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/size) */ + get size(): number; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/type) */ + get type(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/slice) */ + slice(start?: number, end?: number, type?: string): Blob; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/arrayBuffer) */ + arrayBuffer(): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/bytes) */ + bytes(): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/text) */ + text(): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/stream) */ + stream(): ReadableStream; +} +interface BlobOptions { + type?: string; +} +/** + * Provides information about files and allows JavaScript in a web page to access their content. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File) + */ +declare class File extends Blob { + constructor(bits: ((ArrayBuffer | ArrayBufferView) | string | Blob)[] | undefined, name: string, options?: FileOptions); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/name) */ + get name(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/lastModified) */ + get lastModified(): number; +} +interface FileOptions { + type?: string; + lastModified?: number; +} +/** +* The Cache API allows fine grained control of reading and writing from the Cloudflare global network cache. +* +* [Cloudflare Docs Reference](https://developers.cloudflare.com/workers/runtime-apis/cache/) +*/ +declare abstract class CacheStorage { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/open) */ + open(cacheName: string): Promise; + readonly default: Cache; +} +/** +* The Cache API allows fine grained control of reading and writing from the Cloudflare global network cache. +* +* [Cloudflare Docs Reference](https://developers.cloudflare.com/workers/runtime-apis/cache/) +*/ +declare abstract class Cache { + /* [Cloudflare Docs Reference](https://developers.cloudflare.com/workers/runtime-apis/cache/#delete) */ + delete(request: RequestInfo | URL, options?: CacheQueryOptions): Promise; + /* [Cloudflare Docs Reference](https://developers.cloudflare.com/workers/runtime-apis/cache/#match) */ + match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise; + /* [Cloudflare Docs Reference](https://developers.cloudflare.com/workers/runtime-apis/cache/#put) */ + put(request: RequestInfo | URL, response: Response): Promise; +} +interface CacheQueryOptions { + ignoreMethod?: boolean; +} +/** +* The Web Crypto API provides a set of low-level functions for common cryptographic tasks. +* The Workers runtime implements the full surface of this API, but with some differences in +* the [supported algorithms](https://developers.cloudflare.com/workers/runtime-apis/web-crypto/#supported-algorithms) +* compared to those implemented in most browsers. +* +* [Cloudflare Docs Reference](https://developers.cloudflare.com/workers/runtime-apis/web-crypto/) +*/ +declare abstract class Crypto { + /** + * Available only in secure contexts. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/subtle) + */ + get subtle(): SubtleCrypto; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/getRandomValues) */ + getRandomValues(buffer: T): T; + /** + * Available only in secure contexts. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/randomUUID) + */ + randomUUID(): string; + DigestStream: typeof DigestStream; +} +/** + * This Web Crypto API interface provides a number of low-level cryptographic functions. It is accessed via the Crypto.subtle properties available in a window context (via Window.crypto). + * Available only in secure contexts. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto) + */ +declare abstract class SubtleCrypto { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/encrypt) */ + encrypt(algorithm: string | SubtleCryptoEncryptAlgorithm, key: CryptoKey, plainText: ArrayBuffer | ArrayBufferView): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/decrypt) */ + decrypt(algorithm: string | SubtleCryptoEncryptAlgorithm, key: CryptoKey, cipherText: ArrayBuffer | ArrayBufferView): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/sign) */ + sign(algorithm: string | SubtleCryptoSignAlgorithm, key: CryptoKey, data: ArrayBuffer | ArrayBufferView): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/verify) */ + verify(algorithm: string | SubtleCryptoSignAlgorithm, key: CryptoKey, signature: ArrayBuffer | ArrayBufferView, data: ArrayBuffer | ArrayBufferView): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/digest) */ + digest(algorithm: string | SubtleCryptoHashAlgorithm, data: ArrayBuffer | ArrayBufferView): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/generateKey) */ + generateKey(algorithm: string | SubtleCryptoGenerateKeyAlgorithm, extractable: boolean, keyUsages: string[]): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveKey) */ + deriveKey(algorithm: string | SubtleCryptoDeriveKeyAlgorithm, baseKey: CryptoKey, derivedKeyAlgorithm: string | SubtleCryptoImportKeyAlgorithm, extractable: boolean, keyUsages: string[]): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveBits) */ + deriveBits(algorithm: string | SubtleCryptoDeriveKeyAlgorithm, baseKey: CryptoKey, length?: number | null): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/importKey) */ + importKey(format: string, keyData: (ArrayBuffer | ArrayBufferView) | JsonWebKey, algorithm: string | SubtleCryptoImportKeyAlgorithm, extractable: boolean, keyUsages: string[]): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/exportKey) */ + exportKey(format: string, key: CryptoKey): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/wrapKey) */ + wrapKey(format: string, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: string | SubtleCryptoEncryptAlgorithm): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/unwrapKey) */ + unwrapKey(format: string, wrappedKey: ArrayBuffer | ArrayBufferView, unwrappingKey: CryptoKey, unwrapAlgorithm: string | SubtleCryptoEncryptAlgorithm, unwrappedKeyAlgorithm: string | SubtleCryptoImportKeyAlgorithm, extractable: boolean, keyUsages: string[]): Promise; + timingSafeEqual(a: ArrayBuffer | ArrayBufferView, b: ArrayBuffer | ArrayBufferView): boolean; +} +/** + * The CryptoKey dictionary of the Web Crypto API represents a cryptographic key. + * Available only in secure contexts. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey) + */ +declare abstract class CryptoKey { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/type) */ + readonly type: string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/extractable) */ + readonly extractable: boolean; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/algorithm) */ + readonly algorithm: CryptoKeyKeyAlgorithm | CryptoKeyAesKeyAlgorithm | CryptoKeyHmacKeyAlgorithm | CryptoKeyRsaKeyAlgorithm | CryptoKeyEllipticKeyAlgorithm | CryptoKeyArbitraryKeyAlgorithm; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/usages) */ + readonly usages: string[]; +} +interface CryptoKeyPair { + publicKey: CryptoKey; + privateKey: CryptoKey; +} +interface JsonWebKey { + kty: string; + use?: string; + key_ops?: string[]; + alg?: string; + ext?: boolean; + crv?: string; + x?: string; + y?: string; + d?: string; + n?: string; + e?: string; + p?: string; + q?: string; + dp?: string; + dq?: string; + qi?: string; + oth?: RsaOtherPrimesInfo[]; + k?: string; +} +interface RsaOtherPrimesInfo { + r?: string; + d?: string; + t?: string; +} +interface SubtleCryptoDeriveKeyAlgorithm { + name: string; + salt?: (ArrayBuffer | ArrayBufferView); + iterations?: number; + hash?: (string | SubtleCryptoHashAlgorithm); + $public?: CryptoKey; + info?: (ArrayBuffer | ArrayBufferView); +} +interface SubtleCryptoEncryptAlgorithm { + name: string; + iv?: (ArrayBuffer | ArrayBufferView); + additionalData?: (ArrayBuffer | ArrayBufferView); + tagLength?: number; + counter?: (ArrayBuffer | ArrayBufferView); + length?: number; + label?: (ArrayBuffer | ArrayBufferView); +} +interface SubtleCryptoGenerateKeyAlgorithm { + name: string; + hash?: (string | SubtleCryptoHashAlgorithm); + modulusLength?: number; + publicExponent?: (ArrayBuffer | ArrayBufferView); + length?: number; + namedCurve?: string; +} +interface SubtleCryptoHashAlgorithm { + name: string; +} +interface SubtleCryptoImportKeyAlgorithm { + name: string; + hash?: (string | SubtleCryptoHashAlgorithm); + length?: number; + namedCurve?: string; + compressed?: boolean; +} +interface SubtleCryptoSignAlgorithm { + name: string; + hash?: (string | SubtleCryptoHashAlgorithm); + dataLength?: number; + saltLength?: number; +} +interface CryptoKeyKeyAlgorithm { + name: string; +} +interface CryptoKeyAesKeyAlgorithm { + name: string; + length: number; +} +interface CryptoKeyHmacKeyAlgorithm { + name: string; + hash: CryptoKeyKeyAlgorithm; + length: number; +} +interface CryptoKeyRsaKeyAlgorithm { + name: string; + modulusLength: number; + publicExponent: ArrayBuffer | ArrayBufferView; + hash?: CryptoKeyKeyAlgorithm; +} +interface CryptoKeyEllipticKeyAlgorithm { + name: string; + namedCurve: string; +} +interface CryptoKeyArbitraryKeyAlgorithm { + name: string; + hash?: CryptoKeyKeyAlgorithm; + namedCurve?: string; + length?: number; +} +declare class DigestStream extends WritableStream { + constructor(algorithm: string | SubtleCryptoHashAlgorithm); + readonly digest: Promise; + get bytesWritten(): number | bigint; +} +/** + * A decoder for a specific method, that is a specific character encoding, like utf-8, iso-8859-2, koi8, cp1261, gbk, etc. A decoder takes a stream of bytes as input and emits a stream of code points. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder) + */ +declare class TextDecoder { + constructor(label?: string, options?: TextDecoderConstructorOptions); + /** + * Returns the result of running encoding's decoder. The method can be invoked zero or more times with options's stream set to true, and then once without options's stream (or set to false), to process a fragmented input. If the invocation without options's stream (or set to false) has no input, it's clearest to omit both arguments. + * + * ``` + * var string = "", decoder = new TextDecoder(encoding), buffer; + * while(buffer = next_chunk()) { + * string += decoder.decode(buffer, {stream:true}); + * } + * string += decoder.decode(); // end-of-queue + * ``` + * + * If the error mode is "fatal" and encoding's decoder returns error, throws a TypeError. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/decode) + */ + decode(input?: (ArrayBuffer | ArrayBufferView), options?: TextDecoderDecodeOptions): string; + get encoding(): string; + get fatal(): boolean; + get ignoreBOM(): boolean; +} +/** + * TextEncoder takes a stream of code points as input and emits a stream of bytes. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder) + */ +declare class TextEncoder { + constructor(); + /** + * Returns the result of running UTF-8's encoder. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encode) + */ + encode(input?: string): Uint8Array; + /** + * Runs the UTF-8 encoder on source, stores the result of that operation into destination, and returns the progress made as an object wherein read is the number of converted code units of source and written is the number of bytes modified in destination. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encodeInto) + */ + encodeInto(input: string, buffer: ArrayBuffer | ArrayBufferView): TextEncoderEncodeIntoResult; + get encoding(): string; +} +interface TextDecoderConstructorOptions { + fatal: boolean; + ignoreBOM: boolean; +} +interface TextDecoderDecodeOptions { + stream: boolean; +} +interface TextEncoderEncodeIntoResult { + read: number; + written: number; +} +/** + * Events providing information related to errors in scripts or in files. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent) + */ +declare class ErrorEvent extends Event { + constructor(type: string, init?: ErrorEventErrorEventInit); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/filename) */ + get filename(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/message) */ + get message(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/lineno) */ + get lineno(): number; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/colno) */ + get colno(): number; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/error) */ + get error(): any; +} +interface ErrorEventErrorEventInit { + message?: string; + filename?: string; + lineno?: number; + colno?: number; + error?: any; +} +/** + * Provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to "multipart/form-data". + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData) + */ +declare class FormData { + constructor(); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/append) */ + append(name: string, value: string): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/append) */ + append(name: string, value: Blob, filename?: string): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/delete) */ + delete(name: string): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/get) */ + get(name: string): (File | string) | null; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/getAll) */ + getAll(name: string): (File | string)[]; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/has) */ + has(name: string): boolean; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/set) */ + set(name: string, value: string): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/set) */ + set(name: string, value: Blob, filename?: string): void; + /* Returns an array of key, value pairs for every entry in the list. */ + entries(): IterableIterator<[ + key: string, + value: File | string + ]>; + /* Returns a list of keys in the list. */ + keys(): IterableIterator; + /* Returns a list of values in the list. */ + values(): IterableIterator<(File | string)>; + forEach(callback: (this: This, value: File | string, key: string, parent: FormData) => void, thisArg?: This): void; + [Symbol.iterator](): IterableIterator<[ + key: string, + value: File | string + ]>; +} +interface ContentOptions { + html?: boolean; +} +declare class HTMLRewriter { + constructor(); + on(selector: string, handlers: HTMLRewriterElementContentHandlers): HTMLRewriter; + onDocument(handlers: HTMLRewriterDocumentContentHandlers): HTMLRewriter; + transform(response: Response): Response; +} +interface HTMLRewriterElementContentHandlers { + element?(element: Element): void | Promise; + comments?(comment: Comment): void | Promise; + text?(element: Text): void | Promise; +} +interface HTMLRewriterDocumentContentHandlers { + doctype?(doctype: Doctype): void | Promise; + comments?(comment: Comment): void | Promise; + text?(text: Text): void | Promise; + end?(end: DocumentEnd): void | Promise; +} +interface Doctype { + readonly name: string | null; + readonly publicId: string | null; + readonly systemId: string | null; +} +interface Element { + tagName: string; + readonly attributes: IterableIterator; + readonly removed: boolean; + readonly namespaceURI: string; + getAttribute(name: string): string | null; + hasAttribute(name: string): boolean; + setAttribute(name: string, value: string): Element; + removeAttribute(name: string): Element; + before(content: string | ReadableStream | Response, options?: ContentOptions): Element; + after(content: string | ReadableStream | Response, options?: ContentOptions): Element; + prepend(content: string | ReadableStream | Response, options?: ContentOptions): Element; + append(content: string | ReadableStream | Response, options?: ContentOptions): Element; + replace(content: string | ReadableStream | Response, options?: ContentOptions): Element; + remove(): Element; + removeAndKeepContent(): Element; + setInnerContent(content: string | ReadableStream | Response, options?: ContentOptions): Element; + onEndTag(handler: (tag: EndTag) => void | Promise): void; +} +interface EndTag { + name: string; + before(content: string | ReadableStream | Response, options?: ContentOptions): EndTag; + after(content: string | ReadableStream | Response, options?: ContentOptions): EndTag; + remove(): EndTag; +} +interface Comment { + text: string; + readonly removed: boolean; + before(content: string, options?: ContentOptions): Comment; + after(content: string, options?: ContentOptions): Comment; + replace(content: string, options?: ContentOptions): Comment; + remove(): Comment; +} +interface Text { + readonly text: string; + readonly lastInTextNode: boolean; + readonly removed: boolean; + before(content: string | ReadableStream | Response, options?: ContentOptions): Text; + after(content: string | ReadableStream | Response, options?: ContentOptions): Text; + replace(content: string | ReadableStream | Response, options?: ContentOptions): Text; + remove(): Text; +} +interface DocumentEnd { + append(content: string, options?: ContentOptions): DocumentEnd; +} +/** + * This is the event type for fetch events dispatched on the service worker global scope. It contains information about the fetch, including the request and how the receiver will treat the response. It provides the event.respondWith() method, which allows us to provide a response to this fetch. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent) + */ +declare abstract class FetchEvent extends ExtendableEvent { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/request) */ + readonly request: Request; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/respondWith) */ + respondWith(promise: Response | Promise): void; + passThroughOnException(): void; +} +type HeadersInit = Headers | Iterable> | Record; +/** + * This Fetch API interface allows you to perform various actions on HTTP request and response headers. These actions include retrieving, setting, adding to, and removing. A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.  You can add to this using methods like append() (see Examples.) In all methods of this interface, header names are matched by case-insensitive byte sequence. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers) + */ +declare class Headers { + constructor(init?: HeadersInit); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/get) */ + get(name: string): string | null; + getAll(name: string): string[]; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/getSetCookie) */ + getSetCookie(): string[]; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/has) */ + has(name: string): boolean; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/set) */ + set(name: string, value: string): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/append) */ + append(name: string, value: string): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/delete) */ + delete(name: string): void; + forEach(callback: (this: This, value: string, key: string, parent: Headers) => void, thisArg?: This): void; + /* Returns an iterator allowing to go through all key/value pairs contained in this object. */ + entries(): IterableIterator<[ + key: string, + value: string + ]>; + /* Returns an iterator allowing to go through all keys of the key/value pairs contained in this object. */ + keys(): IterableIterator; + /* Returns an iterator allowing to go through all values of the key/value pairs contained in this object. */ + values(): IterableIterator; + [Symbol.iterator](): IterableIterator<[ + key: string, + value: string + ]>; +} +type BodyInit = ReadableStream | string | ArrayBuffer | ArrayBufferView | Blob | URLSearchParams | FormData; +declare abstract class Body { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body) */ + get body(): ReadableStream | null; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */ + get bodyUsed(): boolean; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */ + arrayBuffer(): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bytes) */ + bytes(): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/text) */ + text(): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/json) */ + json(): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/formData) */ + formData(): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */ + blob(): Promise; +} +/** + * This Fetch API interface represents the response to a request. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response) + */ +declare var Response: { + prototype: Response; + new (body?: BodyInit | null, init?: ResponseInit): Response; + error(): Response; + redirect(url: string, status?: number): Response; + json(any: any, maybeInit?: (ResponseInit | Response)): Response; +}; +/** + * This Fetch API interface represents the response to a request. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response) + */ +interface Response extends Body { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/clone) */ + clone(): Response; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/status) */ + status: number; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/statusText) */ + statusText: string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/headers) */ + headers: Headers; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/ok) */ + ok: boolean; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/redirected) */ + redirected: boolean; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/url) */ + url: string; + webSocket: WebSocket | null; + cf: any | undefined; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/type) */ + type: "default" | "error"; +} +interface ResponseInit { + status?: number; + statusText?: string; + headers?: HeadersInit; + cf?: any; + webSocket?: (WebSocket | null); + encodeBody?: "automatic" | "manual"; +} +type RequestInfo> = Request | string; +/** + * This Fetch API interface represents a resource request. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request) + */ +declare var Request: { + prototype: Request; + new >(input: RequestInfo | URL, init?: RequestInit): Request; +}; +/** + * This Fetch API interface represents a resource request. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request) + */ +interface Request> extends Body { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/clone) */ + clone(): Request; + /** + * Returns request's HTTP method, which is "GET" by default. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/method) + */ + method: string; + /** + * Returns the URL of request as a string. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/url) + */ + url: string; + /** + * Returns a Headers object consisting of the headers associated with request. Note that headers added in the network layer by the user agent will not be accounted for in this object, e.g., the "Host" header. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/headers) + */ + headers: Headers; + /** + * Returns the redirect mode associated with request, which is a string indicating how redirects for the request will be handled during fetching. A request will follow redirects by default. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/redirect) + */ + redirect: string; + fetcher: Fetcher | null; + /** + * Returns the signal associated with request, which is an AbortSignal object indicating whether or not request has been aborted, and its abort event handler. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/signal) + */ + signal: AbortSignal; + cf: Cf | undefined; + /** + * Returns request's subresource integrity metadata, which is a cryptographic hash of the resource being fetched. Its value consists of multiple hashes separated by whitespace. [SRI] + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/integrity) + */ + integrity: string; + /** + * Returns a boolean indicating whether or not request can outlive the global in which it was created. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/keepalive) + */ + keepalive: boolean; + /** + * Returns the cache mode associated with request, which is a string indicating how the request will interact with the browser's cache when fetching. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/cache) + */ + cache?: "no-store"; +} +interface RequestInit { + /* A string to set request's method. */ + method?: string; + /* A Headers object, an object literal, or an array of two-item arrays to set request's headers. */ + headers?: HeadersInit; + /* A BodyInit object or null to set request's body. */ + body?: BodyInit | null; + /* A string indicating whether request follows redirects, results in an error upon encountering a redirect, or returns the redirect (in an opaque fashion). Sets request's redirect. */ + redirect?: string; + fetcher?: (Fetcher | null); + cf?: Cf; + /* A string indicating how the request will interact with the browser's cache to set request's cache. */ + cache?: "no-store"; + /* A cryptographic hash of the resource to be fetched by request. Sets request's integrity. */ + integrity?: string; + /* An AbortSignal to set request's signal. */ + signal?: (AbortSignal | null); + encodeResponseBody?: "automatic" | "manual"; +} +type Service = Fetcher; +type Fetcher = (T extends Rpc.EntrypointBranded ? Rpc.Provider : unknown) & { + fetch(input: RequestInfo | URL, init?: RequestInit): Promise; + connect(address: SocketAddress | string, options?: SocketOptions): Socket; +}; +interface KVNamespaceListKey { + name: Key; + expiration?: number; + metadata?: Metadata; +} +type KVNamespaceListResult = { + list_complete: false; + keys: KVNamespaceListKey[]; + cursor: string; + cacheStatus: string | null; +} | { + list_complete: true; + keys: KVNamespaceListKey[]; + cacheStatus: string | null; +}; +interface KVNamespace { + get(key: Key, options?: Partial>): Promise; + get(key: Key, type: "text"): Promise; + get(key: Key, type: "json"): Promise; + get(key: Key, type: "arrayBuffer"): Promise; + get(key: Key, type: "stream"): Promise; + get(key: Key, options?: KVNamespaceGetOptions<"text">): Promise; + get(key: Key, options?: KVNamespaceGetOptions<"json">): Promise; + get(key: Key, options?: KVNamespaceGetOptions<"arrayBuffer">): Promise; + get(key: Key, options?: KVNamespaceGetOptions<"stream">): Promise; + get(key: Array, type: "text"): Promise>; + get(key: Array, type: "json"): Promise>; + get(key: Array, options?: Partial>): Promise>; + get(key: Array, options?: KVNamespaceGetOptions<"text">): Promise>; + get(key: Array, options?: KVNamespaceGetOptions<"json">): Promise>; + list(options?: KVNamespaceListOptions): Promise>; + put(key: Key, value: string | ArrayBuffer | ArrayBufferView | ReadableStream, options?: KVNamespacePutOptions): Promise; + getWithMetadata(key: Key, options?: Partial>): Promise>; + getWithMetadata(key: Key, type: "text"): Promise>; + getWithMetadata(key: Key, type: "json"): Promise>; + getWithMetadata(key: Key, type: "arrayBuffer"): Promise>; + getWithMetadata(key: Key, type: "stream"): Promise>; + getWithMetadata(key: Key, options: KVNamespaceGetOptions<"text">): Promise>; + getWithMetadata(key: Key, options: KVNamespaceGetOptions<"json">): Promise>; + getWithMetadata(key: Key, options: KVNamespaceGetOptions<"arrayBuffer">): Promise>; + getWithMetadata(key: Key, options: KVNamespaceGetOptions<"stream">): Promise>; + getWithMetadata(key: Array, type: "text"): Promise>>; + getWithMetadata(key: Array, type: "json"): Promise>>; + getWithMetadata(key: Array, options?: Partial>): Promise>>; + getWithMetadata(key: Array, options?: KVNamespaceGetOptions<"text">): Promise>>; + getWithMetadata(key: Array, options?: KVNamespaceGetOptions<"json">): Promise>>; + delete(key: Key): Promise; +} +interface KVNamespaceListOptions { + limit?: number; + prefix?: (string | null); + cursor?: (string | null); +} +interface KVNamespaceGetOptions { + type: Type; + cacheTtl?: number; +} +interface KVNamespacePutOptions { + expiration?: number; + expirationTtl?: number; + metadata?: (any | null); +} +interface KVNamespaceGetWithMetadataResult { + value: Value | null; + metadata: Metadata | null; + cacheStatus: string | null; +} +type QueueContentType = "text" | "bytes" | "json" | "v8"; +interface Queue { + send(message: Body, options?: QueueSendOptions): Promise; + sendBatch(messages: Iterable>, options?: QueueSendBatchOptions): Promise; +} +interface QueueSendOptions { + contentType?: QueueContentType; + delaySeconds?: number; +} +interface QueueSendBatchOptions { + delaySeconds?: number; +} +interface MessageSendRequest { + body: Body; + contentType?: QueueContentType; + delaySeconds?: number; +} +interface QueueRetryOptions { + delaySeconds?: number; +} +interface Message { + readonly id: string; + readonly timestamp: Date; + readonly body: Body; + readonly attempts: number; + retry(options?: QueueRetryOptions): void; + ack(): void; +} +interface QueueEvent extends ExtendableEvent { + readonly messages: readonly Message[]; + readonly queue: string; + retryAll(options?: QueueRetryOptions): void; + ackAll(): void; +} +interface MessageBatch { + readonly messages: readonly Message[]; + readonly queue: string; + retryAll(options?: QueueRetryOptions): void; + ackAll(): void; +} +interface R2Error extends Error { + readonly name: string; + readonly code: number; + readonly message: string; + readonly action: string; + readonly stack: any; +} +interface R2ListOptions { + limit?: number; + prefix?: string; + cursor?: string; + delimiter?: string; + startAfter?: string; + include?: ("httpMetadata" | "customMetadata")[]; +} +declare abstract class R2Bucket { + head(key: string): Promise; + get(key: string, options: R2GetOptions & { + onlyIf: R2Conditional | Headers; + }): Promise; + get(key: string, options?: R2GetOptions): Promise; + put(key: string, value: ReadableStream | ArrayBuffer | ArrayBufferView | string | null | Blob, options?: R2PutOptions & { + onlyIf: R2Conditional | Headers; + }): Promise; + put(key: string, value: ReadableStream | ArrayBuffer | ArrayBufferView | string | null | Blob, options?: R2PutOptions): Promise; + createMultipartUpload(key: string, options?: R2MultipartOptions): Promise; + resumeMultipartUpload(key: string, uploadId: string): R2MultipartUpload; + delete(keys: string | string[]): Promise; + list(options?: R2ListOptions): Promise; +} +interface R2MultipartUpload { + readonly key: string; + readonly uploadId: string; + uploadPart(partNumber: number, value: ReadableStream | (ArrayBuffer | ArrayBufferView) | string | Blob, options?: R2UploadPartOptions): Promise; + abort(): Promise; + complete(uploadedParts: R2UploadedPart[]): Promise; +} +interface R2UploadedPart { + partNumber: number; + etag: string; +} +declare abstract class R2Object { + readonly key: string; + readonly version: string; + readonly size: number; + readonly etag: string; + readonly httpEtag: string; + readonly checksums: R2Checksums; + readonly uploaded: Date; + readonly httpMetadata?: R2HTTPMetadata; + readonly customMetadata?: Record; + readonly range?: R2Range; + readonly storageClass: string; + readonly ssecKeyMd5?: string; + writeHttpMetadata(headers: Headers): void; +} +interface R2ObjectBody extends R2Object { + get body(): ReadableStream; + get bodyUsed(): boolean; + arrayBuffer(): Promise; + bytes(): Promise; + text(): Promise; + json(): Promise; + blob(): Promise; +} +type R2Range = { + offset: number; + length?: number; +} | { + offset?: number; + length: number; +} | { + suffix: number; +}; +interface R2Conditional { + etagMatches?: string; + etagDoesNotMatch?: string; + uploadedBefore?: Date; + uploadedAfter?: Date; + secondsGranularity?: boolean; +} +interface R2GetOptions { + onlyIf?: (R2Conditional | Headers); + range?: (R2Range | Headers); + ssecKey?: (ArrayBuffer | string); +} +interface R2PutOptions { + onlyIf?: (R2Conditional | Headers); + httpMetadata?: (R2HTTPMetadata | Headers); + customMetadata?: Record; + md5?: ((ArrayBuffer | ArrayBufferView) | string); + sha1?: ((ArrayBuffer | ArrayBufferView) | string); + sha256?: ((ArrayBuffer | ArrayBufferView) | string); + sha384?: ((ArrayBuffer | ArrayBufferView) | string); + sha512?: ((ArrayBuffer | ArrayBufferView) | string); + storageClass?: string; + ssecKey?: (ArrayBuffer | string); +} +interface R2MultipartOptions { + httpMetadata?: (R2HTTPMetadata | Headers); + customMetadata?: Record; + storageClass?: string; + ssecKey?: (ArrayBuffer | string); +} +interface R2Checksums { + readonly md5?: ArrayBuffer; + readonly sha1?: ArrayBuffer; + readonly sha256?: ArrayBuffer; + readonly sha384?: ArrayBuffer; + readonly sha512?: ArrayBuffer; + toJSON(): R2StringChecksums; +} +interface R2StringChecksums { + md5?: string; + sha1?: string; + sha256?: string; + sha384?: string; + sha512?: string; +} +interface R2HTTPMetadata { + contentType?: string; + contentLanguage?: string; + contentDisposition?: string; + contentEncoding?: string; + cacheControl?: string; + cacheExpiry?: Date; +} +type R2Objects = { + objects: R2Object[]; + delimitedPrefixes: string[]; +} & ({ + truncated: true; + cursor: string; +} | { + truncated: false; +}); +interface R2UploadPartOptions { + ssecKey?: (ArrayBuffer | string); +} +declare abstract class ScheduledEvent extends ExtendableEvent { + readonly scheduledTime: number; + readonly cron: string; + noRetry(): void; +} +interface ScheduledController { + readonly scheduledTime: number; + readonly cron: string; + noRetry(): void; +} +interface QueuingStrategy { + highWaterMark?: (number | bigint); + size?: (chunk: T) => number | bigint; +} +interface UnderlyingSink { + type?: string; + start?: (controller: WritableStreamDefaultController) => void | Promise; + write?: (chunk: W, controller: WritableStreamDefaultController) => void | Promise; + abort?: (reason: any) => void | Promise; + close?: () => void | Promise; +} +interface UnderlyingByteSource { + type: "bytes"; + autoAllocateChunkSize?: number; + start?: (controller: ReadableByteStreamController) => void | Promise; + pull?: (controller: ReadableByteStreamController) => void | Promise; + cancel?: (reason: any) => void | Promise; +} +interface UnderlyingSource { + type?: "" | undefined; + start?: (controller: ReadableStreamDefaultController) => void | Promise; + pull?: (controller: ReadableStreamDefaultController) => void | Promise; + cancel?: (reason: any) => void | Promise; + expectedLength?: (number | bigint); +} +interface Transformer { + readableType?: string; + writableType?: string; + start?: (controller: TransformStreamDefaultController) => void | Promise; + transform?: (chunk: I, controller: TransformStreamDefaultController) => void | Promise; + flush?: (controller: TransformStreamDefaultController) => void | Promise; + cancel?: (reason: any) => void | Promise; + expectedLength?: number; +} +interface StreamPipeOptions { + /** + * Pipes this readable stream to a given writable stream destination. The way in which the piping process behaves under various error conditions can be customized with a number of passed options. It returns a promise that fulfills when the piping process completes successfully, or rejects if any errors were encountered. + * + * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader. + * + * Errors and closures of the source and destination streams propagate as follows: + * + * An error in this source readable stream will abort destination, unless preventAbort is truthy. The returned promise will be rejected with the source's error, or with any error that occurs during aborting the destination. + * + * An error in destination will cancel this source readable stream, unless preventCancel is truthy. The returned promise will be rejected with the destination's error, or with any error that occurs during canceling the source. + * + * When this source readable stream closes, destination will be closed, unless preventClose is truthy. The returned promise will be fulfilled once this process completes, unless an error is encountered while closing the destination, in which case it will be rejected with that error. + * + * If destination starts out closed or closing, this source readable stream will be canceled, unless preventCancel is true. The returned promise will be rejected with an error indicating piping to a closed stream failed, or with any error that occurs during canceling the source. + * + * The signal option can be set to an AbortSignal to allow aborting an ongoing pipe operation via the corresponding AbortController. In this case, this source readable stream will be canceled, and destination aborted, unless the respective options preventCancel or preventAbort are set. + */ + preventClose?: boolean; + preventAbort?: boolean; + preventCancel?: boolean; + signal?: AbortSignal; +} +type ReadableStreamReadResult = { + done: false; + value: R; +} | { + done: true; + value?: undefined; +}; +/** + * This Streams API interface represents a readable stream of byte data. The Fetch API offers a concrete instance of a ReadableStream through the body property of a Response object. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream) + */ +interface ReadableStream { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/locked) */ + get locked(): boolean; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/cancel) */ + cancel(reason?: any): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/getReader) */ + getReader(): ReadableStreamDefaultReader; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/getReader) */ + getReader(options: ReadableStreamGetReaderOptions): ReadableStreamBYOBReader; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/pipeThrough) */ + pipeThrough(transform: ReadableWritablePair, options?: StreamPipeOptions): ReadableStream; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/pipeTo) */ + pipeTo(destination: WritableStream, options?: StreamPipeOptions): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/tee) */ + tee(): [ + ReadableStream, + ReadableStream + ]; + values(options?: ReadableStreamValuesOptions): AsyncIterableIterator; + [Symbol.asyncIterator](options?: ReadableStreamValuesOptions): AsyncIterableIterator; +} +/** + * This Streams API interface represents a readable stream of byte data. The Fetch API offers a concrete instance of a ReadableStream through the body property of a Response object. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream) + */ +declare const ReadableStream: { + prototype: ReadableStream; + new (underlyingSource: UnderlyingByteSource, strategy?: QueuingStrategy): ReadableStream; + new (underlyingSource?: UnderlyingSource, strategy?: QueuingStrategy): ReadableStream; +}; +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader) */ +declare class ReadableStreamDefaultReader { + constructor(stream: ReadableStream); + get closed(): Promise; + cancel(reason?: any): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader/read) */ + read(): Promise>; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader/releaseLock) */ + releaseLock(): void; +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader) */ +declare class ReadableStreamBYOBReader { + constructor(stream: ReadableStream); + get closed(): Promise; + cancel(reason?: any): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/read) */ + read(view: T): Promise>; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/releaseLock) */ + releaseLock(): void; + readAtLeast(minElements: number, view: T): Promise>; +} +interface ReadableStreamBYOBReaderReadableStreamBYOBReaderReadOptions { + min?: number; +} +interface ReadableStreamGetReaderOptions { + /** + * Creates a ReadableStreamBYOBReader and locks the stream to the new reader. + * + * This call behaves the same way as the no-argument variant, except that it only works on readable byte streams, i.e. streams which were constructed specifically with the ability to handle "bring your own buffer" reading. The returned BYOB reader provides the ability to directly read individual chunks from the stream via its read() method, into developer-supplied buffers, allowing more precise control over allocation. + */ + mode: "byob"; +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest) */ +declare abstract class ReadableStreamBYOBRequest { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/view) */ + get view(): Uint8Array | null; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/respond) */ + respond(bytesWritten: number): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/respondWithNewView) */ + respondWithNewView(view: ArrayBuffer | ArrayBufferView): void; + get atLeast(): number | null; +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController) */ +declare abstract class ReadableStreamDefaultController { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/desiredSize) */ + get desiredSize(): number | null; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/close) */ + close(): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/enqueue) */ + enqueue(chunk?: R): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/error) */ + error(reason: any): void; +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController) */ +declare abstract class ReadableByteStreamController { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/byobRequest) */ + get byobRequest(): ReadableStreamBYOBRequest | null; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/desiredSize) */ + get desiredSize(): number | null; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/close) */ + close(): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/enqueue) */ + enqueue(chunk: ArrayBuffer | ArrayBufferView): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/error) */ + error(reason: any): void; +} +/** + * This Streams API interface represents a controller allowing control of a WritableStream's state. When constructing a WritableStream, the underlying sink is given a corresponding WritableStreamDefaultController instance to manipulate. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController) + */ +declare abstract class WritableStreamDefaultController { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController/signal) */ + get signal(): AbortSignal; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController/error) */ + error(reason?: any): void; +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController) */ +declare abstract class TransformStreamDefaultController { + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/desiredSize) */ + get desiredSize(): number | null; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/enqueue) */ + enqueue(chunk?: O): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/error) */ + error(reason: any): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/terminate) */ + terminate(): void; +} +interface ReadableWritablePair { + /** + * Provides a convenient, chainable way of piping this readable stream through a transform stream (or any other { writable, readable } pair). It simply pipes the stream into the writable side of the supplied pair, and returns the readable side for further use. + * + * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader. + */ + writable: WritableStream; + readable: ReadableStream; +} +/** + * This Streams API interface provides a standard abstraction for writing streaming data to a destination, known as a sink. This object comes with built-in backpressure and queuing. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream) + */ +declare class WritableStream { + constructor(underlyingSink?: UnderlyingSink, queuingStrategy?: QueuingStrategy); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/locked) */ + get locked(): boolean; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/abort) */ + abort(reason?: any): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/close) */ + close(): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/getWriter) */ + getWriter(): WritableStreamDefaultWriter; +} +/** + * This Streams API interface is the object returned by WritableStream.getWriter() and once created locks the < writer to the WritableStream ensuring that no other streams can write to the underlying sink. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter) + */ +declare class WritableStreamDefaultWriter { + constructor(stream: WritableStream); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/closed) */ + get closed(): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/ready) */ + get ready(): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/desiredSize) */ + get desiredSize(): number | null; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/abort) */ + abort(reason?: any): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/close) */ + close(): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/write) */ + write(chunk?: W): Promise; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/releaseLock) */ + releaseLock(): void; +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream) */ +declare class TransformStream { + constructor(transformer?: Transformer, writableStrategy?: QueuingStrategy, readableStrategy?: QueuingStrategy); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream/readable) */ + get readable(): ReadableStream; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream/writable) */ + get writable(): WritableStream; +} +declare class FixedLengthStream extends IdentityTransformStream { + constructor(expectedLength: number | bigint, queuingStrategy?: IdentityTransformStreamQueuingStrategy); +} +declare class IdentityTransformStream extends TransformStream { + constructor(queuingStrategy?: IdentityTransformStreamQueuingStrategy); +} +interface IdentityTransformStreamQueuingStrategy { + highWaterMark?: (number | bigint); +} +interface ReadableStreamValuesOptions { + preventCancel?: boolean; +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream) */ +declare class CompressionStream extends TransformStream { + constructor(format: "gzip" | "deflate" | "deflate-raw"); +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DecompressionStream) */ +declare class DecompressionStream extends TransformStream { + constructor(format: "gzip" | "deflate" | "deflate-raw"); +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoderStream) */ +declare class TextEncoderStream extends TransformStream { + constructor(); + get encoding(): string; +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoderStream) */ +declare class TextDecoderStream extends TransformStream { + constructor(label?: string, options?: TextDecoderStreamTextDecoderStreamInit); + get encoding(): string; + get fatal(): boolean; + get ignoreBOM(): boolean; +} +interface TextDecoderStreamTextDecoderStreamInit { + fatal?: boolean; + ignoreBOM?: boolean; +} +/** + * This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy) + */ +declare class ByteLengthQueuingStrategy implements QueuingStrategy { + constructor(init: QueuingStrategyInit); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/highWaterMark) */ + get highWaterMark(): number; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/size) */ + get size(): (chunk?: any) => number; +} +/** + * This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy) + */ +declare class CountQueuingStrategy implements QueuingStrategy { + constructor(init: QueuingStrategyInit); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/highWaterMark) */ + get highWaterMark(): number; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/size) */ + get size(): (chunk?: any) => number; +} +interface QueuingStrategyInit { + /** + * Creates a new ByteLengthQueuingStrategy with the provided high water mark. + * + * Note that the provided high water mark will not be validated ahead of time. Instead, if it is negative, NaN, or not a number, the resulting ByteLengthQueuingStrategy will cause the corresponding stream constructor to throw. + */ + highWaterMark: number; +} +interface ScriptVersion { + id?: string; + tag?: string; + message?: string; +} +declare abstract class TailEvent extends ExtendableEvent { + readonly events: TraceItem[]; + readonly traces: TraceItem[]; +} +interface TraceItem { + readonly event: (TraceItemFetchEventInfo | TraceItemJsRpcEventInfo | TraceItemScheduledEventInfo | TraceItemAlarmEventInfo | TraceItemQueueEventInfo | TraceItemEmailEventInfo | TraceItemTailEventInfo | TraceItemCustomEventInfo | TraceItemHibernatableWebSocketEventInfo) | null; + readonly eventTimestamp: number | null; + readonly logs: TraceLog[]; + readonly exceptions: TraceException[]; + readonly diagnosticsChannelEvents: TraceDiagnosticChannelEvent[]; + readonly scriptName: string | null; + readonly entrypoint?: string; + readonly scriptVersion?: ScriptVersion; + readonly dispatchNamespace?: string; + readonly scriptTags?: string[]; + readonly outcome: string; + readonly executionModel: string; + readonly truncated: boolean; + readonly cpuTime: number; + readonly wallTime: number; +} +interface TraceItemAlarmEventInfo { + readonly scheduledTime: Date; +} +interface TraceItemCustomEventInfo { +} +interface TraceItemScheduledEventInfo { + readonly scheduledTime: number; + readonly cron: string; +} +interface TraceItemQueueEventInfo { + readonly queue: string; + readonly batchSize: number; +} +interface TraceItemEmailEventInfo { + readonly mailFrom: string; + readonly rcptTo: string; + readonly rawSize: number; +} +interface TraceItemTailEventInfo { + readonly consumedEvents: TraceItemTailEventInfoTailItem[]; +} +interface TraceItemTailEventInfoTailItem { + readonly scriptName: string | null; +} +interface TraceItemFetchEventInfo { + readonly response?: TraceItemFetchEventInfoResponse; + readonly request: TraceItemFetchEventInfoRequest; +} +interface TraceItemFetchEventInfoRequest { + readonly cf?: any; + readonly headers: Record; + readonly method: string; + readonly url: string; + getUnredacted(): TraceItemFetchEventInfoRequest; +} +interface TraceItemFetchEventInfoResponse { + readonly status: number; +} +interface TraceItemJsRpcEventInfo { + readonly rpcMethod: string; +} +interface TraceItemHibernatableWebSocketEventInfo { + readonly getWebSocketEvent: TraceItemHibernatableWebSocketEventInfoMessage | TraceItemHibernatableWebSocketEventInfoClose | TraceItemHibernatableWebSocketEventInfoError; +} +interface TraceItemHibernatableWebSocketEventInfoMessage { + readonly webSocketEventType: string; +} +interface TraceItemHibernatableWebSocketEventInfoClose { + readonly webSocketEventType: string; + readonly code: number; + readonly wasClean: boolean; +} +interface TraceItemHibernatableWebSocketEventInfoError { + readonly webSocketEventType: string; +} +interface TraceLog { + readonly timestamp: number; + readonly level: string; + readonly message: any; +} +interface TraceException { + readonly timestamp: number; + readonly message: string; + readonly name: string; + readonly stack?: string; +} +interface TraceDiagnosticChannelEvent { + readonly timestamp: number; + readonly channel: string; + readonly message: any; +} +interface TraceMetrics { + readonly cpuTime: number; + readonly wallTime: number; +} +interface UnsafeTraceMetrics { + fromTrace(item: TraceItem): TraceMetrics; +} +/** + * The URL interface represents an object providing static methods used for creating object URLs. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL) + */ +declare class URL { + constructor(url: string | URL, base?: string | URL); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/origin) */ + get origin(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/href) */ + get href(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/href) */ + set href(value: string); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/protocol) */ + get protocol(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/protocol) */ + set protocol(value: string); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/username) */ + get username(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/username) */ + set username(value: string); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/password) */ + get password(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/password) */ + set password(value: string); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/host) */ + get host(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/host) */ + set host(value: string); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/hostname) */ + get hostname(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/hostname) */ + set hostname(value: string); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/port) */ + get port(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/port) */ + set port(value: string); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/pathname) */ + get pathname(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/pathname) */ + set pathname(value: string); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/search) */ + get search(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/search) */ + set search(value: string); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/hash) */ + get hash(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/hash) */ + set hash(value: string); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/searchParams) */ + get searchParams(): URLSearchParams; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/toJSON) */ + toJSON(): string; + /*function toString() { [native code] }*/ + toString(): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/canParse_static) */ + static canParse(url: string, base?: string): boolean; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/parse_static) */ + static parse(url: string, base?: string): URL | null; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/createObjectURL_static) */ + static createObjectURL(object: File | Blob): string; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/revokeObjectURL_static) */ + static revokeObjectURL(object_url: string): void; +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams) */ +declare class URLSearchParams { + constructor(init?: (Iterable> | Record | string)); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/size) */ + get size(): number; + /** + * Appends a specified key/value pair as a new search parameter. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/append) + */ + append(name: string, value: string): void; + /** + * Deletes the given search parameter, and its associated value, from the list of all search parameters. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/delete) + */ + delete(name: string, value?: string): void; + /** + * Returns the first value associated to the given search parameter. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/get) + */ + get(name: string): string | null; + /** + * Returns all the values association with a given search parameter. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/getAll) + */ + getAll(name: string): string[]; + /** + * Returns a Boolean indicating if such a search parameter exists. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/has) + */ + has(name: string, value?: string): boolean; + /** + * Sets the value associated to a given search parameter to the given value. If there were several values, delete the others. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/set) + */ + set(name: string, value: string): void; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/sort) */ + sort(): void; + /* Returns an array of key, value pairs for every entry in the search params. */ + entries(): IterableIterator<[ + key: string, + value: string + ]>; + /* Returns a list of keys in the search params. */ + keys(): IterableIterator; + /* Returns a list of values in the search params. */ + values(): IterableIterator; + forEach(callback: (this: This, value: string, key: string, parent: URLSearchParams) => void, thisArg?: This): void; + /*function toString() { [native code] } Returns a string containing a query string suitable for use in a URL. Does not include the question mark. */ + toString(): string; + [Symbol.iterator](): IterableIterator<[ + key: string, + value: string + ]>; +} +declare class URLPattern { + constructor(input?: (string | URLPatternInit), baseURL?: (string | URLPatternOptions), patternOptions?: URLPatternOptions); + get protocol(): string; + get username(): string; + get password(): string; + get hostname(): string; + get port(): string; + get pathname(): string; + get search(): string; + get hash(): string; + get hasRegExpGroups(): boolean; + test(input?: (string | URLPatternInit), baseURL?: string): boolean; + exec(input?: (string | URLPatternInit), baseURL?: string): URLPatternResult | null; +} +interface URLPatternInit { + protocol?: string; + username?: string; + password?: string; + hostname?: string; + port?: string; + pathname?: string; + search?: string; + hash?: string; + baseURL?: string; +} +interface URLPatternComponentResult { + input: string; + groups: Record; +} +interface URLPatternResult { + inputs: (string | URLPatternInit)[]; + protocol: URLPatternComponentResult; + username: URLPatternComponentResult; + password: URLPatternComponentResult; + hostname: URLPatternComponentResult; + port: URLPatternComponentResult; + pathname: URLPatternComponentResult; + search: URLPatternComponentResult; + hash: URLPatternComponentResult; +} +interface URLPatternOptions { + ignoreCase?: boolean; +} +/** + * A CloseEvent is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object's onclose attribute. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent) + */ +declare class CloseEvent extends Event { + constructor(type: string, initializer?: CloseEventInit); + /** + * Returns the WebSocket connection close code provided by the server. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/code) + */ + readonly code: number; + /** + * Returns the WebSocket connection close reason provided by the server. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/reason) + */ + readonly reason: string; + /** + * Returns true if the connection closed cleanly; false otherwise. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/wasClean) + */ + readonly wasClean: boolean; +} +interface CloseEventInit { + code?: number; + reason?: string; + wasClean?: boolean; +} +/** + * A message received by a target object. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent) + */ +declare class MessageEvent extends Event { + constructor(type: string, initializer: MessageEventInit); + /** + * Returns the data of the message. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/data) + */ + readonly data: ArrayBuffer | string; +} +interface MessageEventInit { + data: ArrayBuffer | string; +} +type WebSocketEventMap = { + close: CloseEvent; + message: MessageEvent; + open: Event; + error: ErrorEvent; +}; +/** + * Provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket) + */ +declare var WebSocket: { + prototype: WebSocket; + new (url: string, protocols?: (string[] | string)): WebSocket; + readonly READY_STATE_CONNECTING: number; + readonly CONNECTING: number; + readonly READY_STATE_OPEN: number; + readonly OPEN: number; + readonly READY_STATE_CLOSING: number; + readonly CLOSING: number; + readonly READY_STATE_CLOSED: number; + readonly CLOSED: number; +}; +/** + * Provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket) + */ +interface WebSocket extends EventTarget { + accept(): void; + /** + * Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/send) + */ + send(message: (ArrayBuffer | ArrayBufferView) | string): void; + /** + * Closes the WebSocket connection, optionally using code as the the WebSocket connection close code and reason as the the WebSocket connection close reason. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/close) + */ + close(code?: number, reason?: string): void; + serializeAttachment(attachment: any): void; + deserializeAttachment(): any | null; + /** + * Returns the state of the WebSocket object's connection. It can have the values described below. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/readyState) + */ + readyState: number; + /** + * Returns the URL that was used to establish the WebSocket connection. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/url) + */ + url: string | null; + /** + * Returns the subprotocol selected by the server, if any. It can be used in conjunction with the array form of the constructor's second argument to perform subprotocol negotiation. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/protocol) + */ + protocol: string | null; + /** + * Returns the extensions selected by the server, if any. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/extensions) + */ + extensions: string | null; +} +declare const WebSocketPair: { + new (): { + 0: WebSocket; + 1: WebSocket; + }; +}; +interface SqlStorage { + exec>(query: string, ...bindings: any[]): SqlStorageCursor; + get databaseSize(): number; + Cursor: typeof SqlStorageCursor; + Statement: typeof SqlStorageStatement; +} +declare abstract class SqlStorageStatement { +} +type SqlStorageValue = ArrayBuffer | string | number | null; +declare abstract class SqlStorageCursor> { + next(): { + done?: false; + value: T; + } | { + done: true; + value?: never; + }; + toArray(): T[]; + one(): T; + raw(): IterableIterator; + columnNames: string[]; + get rowsRead(): number; + get rowsWritten(): number; + [Symbol.iterator](): IterableIterator; +} +interface Socket { + get readable(): ReadableStream; + get writable(): WritableStream; + get closed(): Promise; + get opened(): Promise; + get upgraded(): boolean; + get secureTransport(): "on" | "off" | "starttls"; + close(): Promise; + startTls(options?: TlsOptions): Socket; +} +interface SocketOptions { + secureTransport?: string; + allowHalfOpen: boolean; + highWaterMark?: (number | bigint); +} +interface SocketAddress { + hostname: string; + port: number; +} +interface TlsOptions { + expectedServerHostname?: string; +} +interface SocketInfo { + remoteAddress?: string; + localAddress?: string; +} +/* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource) */ +declare class EventSource extends EventTarget { + constructor(url: string, init?: EventSourceEventSourceInit); + /** + * Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/close) + */ + close(): void; + /** + * Returns the URL providing the event stream. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/url) + */ + get url(): string; + /** + * Returns true if the credentials mode for connection requests to the URL providing the event stream is set to "include", and false otherwise. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/withCredentials) + */ + get withCredentials(): boolean; + /** + * Returns the state of this EventSource object's connection. It can have the values described below. + * + * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/readyState) + */ + get readyState(): number; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/open_event) */ + get onopen(): any | null; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/open_event) */ + set onopen(value: any | null); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/message_event) */ + get onmessage(): any | null; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/message_event) */ + set onmessage(value: any | null); + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/error_event) */ + get onerror(): any | null; + /* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/error_event) */ + set onerror(value: any | null); + static readonly CONNECTING: number; + static readonly OPEN: number; + static readonly CLOSED: number; + static from(stream: ReadableStream): EventSource; +} +interface EventSourceEventSourceInit { + withCredentials?: boolean; + fetcher?: Fetcher; +} +interface Container { + get running(): boolean; + start(options?: ContainerStartupOptions): void; + monitor(): Promise; + destroy(error?: any): Promise; + signal(signo: number): void; + getTcpPort(port: number): Fetcher; +} +interface ContainerStartupOptions { + entrypoint?: string[]; + enableInternet: boolean; + env?: Record; +} +type AiImageClassificationInput = { + image: number[]; +}; +type AiImageClassificationOutput = { + score?: number; + label?: string; +}[]; +declare abstract class BaseAiImageClassification { + inputs: AiImageClassificationInput; + postProcessedOutputs: AiImageClassificationOutput; +} +type AiImageToTextInput = { + image: number[]; + prompt?: string; + max_tokens?: number; + temperature?: number; + top_p?: number; + top_k?: number; + seed?: number; + repetition_penalty?: number; + frequency_penalty?: number; + presence_penalty?: number; + raw?: boolean; + messages?: RoleScopedChatInput[]; +}; +type AiImageToTextOutput = { + description: string; +}; +declare abstract class BaseAiImageToText { + inputs: AiImageToTextInput; + postProcessedOutputs: AiImageToTextOutput; +} +type AiImageTextToTextInput = { + image: string; + prompt?: string; + max_tokens?: number; + temperature?: number; + ignore_eos?: boolean; + top_p?: number; + top_k?: number; + seed?: number; + repetition_penalty?: number; + frequency_penalty?: number; + presence_penalty?: number; + raw?: boolean; + messages?: RoleScopedChatInput[]; +}; +type AiImageTextToTextOutput = { + description: string; +}; +declare abstract class BaseAiImageTextToText { + inputs: AiImageTextToTextInput; + postProcessedOutputs: AiImageTextToTextOutput; +} +type AiObjectDetectionInput = { + image: number[]; +}; +type AiObjectDetectionOutput = { + score?: number; + label?: string; +}[]; +declare abstract class BaseAiObjectDetection { + inputs: AiObjectDetectionInput; + postProcessedOutputs: AiObjectDetectionOutput; +} +type AiSentenceSimilarityInput = { + source: string; + sentences: string[]; +}; +type AiSentenceSimilarityOutput = number[]; +declare abstract class BaseAiSentenceSimilarity { + inputs: AiSentenceSimilarityInput; + postProcessedOutputs: AiSentenceSimilarityOutput; +} +type AiAutomaticSpeechRecognitionInput = { + audio: number[]; +}; +type AiAutomaticSpeechRecognitionOutput = { + text?: string; + words?: { + word: string; + start: number; + end: number; + }[]; + vtt?: string; +}; +declare abstract class BaseAiAutomaticSpeechRecognition { + inputs: AiAutomaticSpeechRecognitionInput; + postProcessedOutputs: AiAutomaticSpeechRecognitionOutput; +} +type AiSummarizationInput = { + input_text: string; + max_length?: number; +}; +type AiSummarizationOutput = { + summary: string; +}; +declare abstract class BaseAiSummarization { + inputs: AiSummarizationInput; + postProcessedOutputs: AiSummarizationOutput; +} +type AiTextClassificationInput = { + text: string; +}; +type AiTextClassificationOutput = { + score?: number; + label?: string; +}[]; +declare abstract class BaseAiTextClassification { + inputs: AiTextClassificationInput; + postProcessedOutputs: AiTextClassificationOutput; +} +type AiTextEmbeddingsInput = { + text: string | string[]; +}; +type AiTextEmbeddingsOutput = { + shape: number[]; + data: number[][]; +}; +declare abstract class BaseAiTextEmbeddings { + inputs: AiTextEmbeddingsInput; + postProcessedOutputs: AiTextEmbeddingsOutput; +} +type RoleScopedChatInput = { + role: "user" | "assistant" | "system" | "tool" | (string & NonNullable); + content: string; + name?: string; +}; +type AiTextGenerationToolLegacyInput = { + name: string; + description: string; + parameters?: { + type: "object" | (string & NonNullable); + properties: { + [key: string]: { + type: string; + description?: string; + }; + }; + required: string[]; + }; +}; +type AiTextGenerationToolInput = { + type: "function" | (string & NonNullable); + function: { + name: string; + description: string; + parameters?: { + type: "object" | (string & NonNullable); + properties: { + [key: string]: { + type: string; + description?: string; + }; + }; + required: string[]; + }; + }; +}; +type AiTextGenerationFunctionsInput = { + name: string; + code: string; +}; +type AiTextGenerationResponseFormat = { + type: string; + json_schema?: any; +}; +type AiTextGenerationInput = { + prompt?: string; + raw?: boolean; + stream?: boolean; + max_tokens?: number; + temperature?: number; + top_p?: number; + top_k?: number; + seed?: number; + repetition_penalty?: number; + frequency_penalty?: number; + presence_penalty?: number; + messages?: RoleScopedChatInput[]; + response_format?: AiTextGenerationResponseFormat; + tools?: AiTextGenerationToolInput[] | AiTextGenerationToolLegacyInput[] | (object & NonNullable); + functions?: AiTextGenerationFunctionsInput[]; +}; +type AiTextGenerationOutput = { + response?: string; + tool_calls?: { + name: string; + arguments: unknown; + }[]; +}; +declare abstract class BaseAiTextGeneration { + inputs: AiTextGenerationInput; + postProcessedOutputs: AiTextGenerationOutput; +} +type AiTextToSpeechInput = { + prompt: string; + lang?: string; +}; +type AiTextToSpeechOutput = Uint8Array | { + audio: string; +}; +declare abstract class BaseAiTextToSpeech { + inputs: AiTextToSpeechInput; + postProcessedOutputs: AiTextToSpeechOutput; +} +type AiTextToImageInput = { + prompt: string; + negative_prompt?: string; + height?: number; + width?: number; + image?: number[]; + image_b64?: string; + mask?: number[]; + num_steps?: number; + strength?: number; + guidance?: number; + seed?: number; +}; +type AiTextToImageOutput = ReadableStream; +declare abstract class BaseAiTextToImage { + inputs: AiTextToImageInput; + postProcessedOutputs: AiTextToImageOutput; +} +type AiTranslationInput = { + text: string; + target_lang: string; + source_lang?: string; +}; +type AiTranslationOutput = { + translated_text?: string; +}; +declare abstract class BaseAiTranslation { + inputs: AiTranslationInput; + postProcessedOutputs: AiTranslationOutput; +} +type Ai_Cf_Baai_Bge_Base_En_V1_5_Input = { + text: string | string[]; + /** + * The pooling method used in the embedding process. `cls` pooling will generate more accurate embeddings on larger inputs - however, embeddings created with cls pooling are not compatible with embeddings generated with mean pooling. The default pooling method is `mean` in order for this to not be a breaking change, but we highly suggest using the new `cls` pooling for better accuracy. + */ + pooling?: "mean" | "cls"; +} | { + /** + * Batch of the embeddings requests to run using async-queue + */ + requests: { + text: string | string[]; + /** + * The pooling method used in the embedding process. `cls` pooling will generate more accurate embeddings on larger inputs - however, embeddings created with cls pooling are not compatible with embeddings generated with mean pooling. The default pooling method is `mean` in order for this to not be a breaking change, but we highly suggest using the new `cls` pooling for better accuracy. + */ + pooling?: "mean" | "cls"; + }[]; +}; +type Ai_Cf_Baai_Bge_Base_En_V1_5_Output = { + shape?: number[]; + /** + * Embeddings of the requested text values + */ + data?: number[][]; + /** + * The pooling method used in the embedding process. + */ + pooling?: "mean" | "cls"; +} | AsyncResponse; +interface AsyncResponse { + /** + * The async request id that can be used to obtain the results. + */ + request_id?: string; +} +declare abstract class Base_Ai_Cf_Baai_Bge_Base_En_V1_5 { + inputs: Ai_Cf_Baai_Bge_Base_En_V1_5_Input; + postProcessedOutputs: Ai_Cf_Baai_Bge_Base_En_V1_5_Output; +} +type Ai_Cf_Openai_Whisper_Input = string | { + /** + * An array of integers that represent the audio data constrained to 8-bit unsigned integer values + */ + audio: number[]; +}; +interface Ai_Cf_Openai_Whisper_Output { + /** + * The transcription + */ + text: string; + word_count?: number; + words?: { + word?: string; + /** + * The second this word begins in the recording + */ + start?: number; + /** + * The ending second when the word completes + */ + end?: number; + }[]; + vtt?: string; +} +declare abstract class Base_Ai_Cf_Openai_Whisper { + inputs: Ai_Cf_Openai_Whisper_Input; + postProcessedOutputs: Ai_Cf_Openai_Whisper_Output; +} +type Ai_Cf_Meta_M2M100_1_2B_Input = { + /** + * The text to be translated + */ + text: string; + /** + * The language code of the source text (e.g., 'en' for English). Defaults to 'en' if not specified + */ + source_lang?: string; + /** + * The language code to translate the text into (e.g., 'es' for Spanish) + */ + target_lang: string; +} | { + /** + * Batch of the embeddings requests to run using async-queue + */ + requests: { + /** + * The text to be translated + */ + text: string; + /** + * The language code of the source text (e.g., 'en' for English). Defaults to 'en' if not specified + */ + source_lang?: string; + /** + * The language code to translate the text into (e.g., 'es' for Spanish) + */ + target_lang: string; + }[]; +}; +type Ai_Cf_Meta_M2M100_1_2B_Output = { + /** + * The translated text in the target language + */ + translated_text?: string; +} | AsyncResponse; +declare abstract class Base_Ai_Cf_Meta_M2M100_1_2B { + inputs: Ai_Cf_Meta_M2M100_1_2B_Input; + postProcessedOutputs: Ai_Cf_Meta_M2M100_1_2B_Output; +} +type Ai_Cf_Baai_Bge_Small_En_V1_5_Input = { + text: string | string[]; + /** + * The pooling method used in the embedding process. `cls` pooling will generate more accurate embeddings on larger inputs - however, embeddings created with cls pooling are not compatible with embeddings generated with mean pooling. The default pooling method is `mean` in order for this to not be a breaking change, but we highly suggest using the new `cls` pooling for better accuracy. + */ + pooling?: "mean" | "cls"; +} | { + /** + * Batch of the embeddings requests to run using async-queue + */ + requests: { + text: string | string[]; + /** + * The pooling method used in the embedding process. `cls` pooling will generate more accurate embeddings on larger inputs - however, embeddings created with cls pooling are not compatible with embeddings generated with mean pooling. The default pooling method is `mean` in order for this to not be a breaking change, but we highly suggest using the new `cls` pooling for better accuracy. + */ + pooling?: "mean" | "cls"; + }[]; +}; +type Ai_Cf_Baai_Bge_Small_En_V1_5_Output = { + shape?: number[]; + /** + * Embeddings of the requested text values + */ + data?: number[][]; + /** + * The pooling method used in the embedding process. + */ + pooling?: "mean" | "cls"; +} | AsyncResponse; +declare abstract class Base_Ai_Cf_Baai_Bge_Small_En_V1_5 { + inputs: Ai_Cf_Baai_Bge_Small_En_V1_5_Input; + postProcessedOutputs: Ai_Cf_Baai_Bge_Small_En_V1_5_Output; +} +type Ai_Cf_Baai_Bge_Large_En_V1_5_Input = { + text: string | string[]; + /** + * The pooling method used in the embedding process. `cls` pooling will generate more accurate embeddings on larger inputs - however, embeddings created with cls pooling are not compatible with embeddings generated with mean pooling. The default pooling method is `mean` in order for this to not be a breaking change, but we highly suggest using the new `cls` pooling for better accuracy. + */ + pooling?: "mean" | "cls"; +} | { + /** + * Batch of the embeddings requests to run using async-queue + */ + requests: { + text: string | string[]; + /** + * The pooling method used in the embedding process. `cls` pooling will generate more accurate embeddings on larger inputs - however, embeddings created with cls pooling are not compatible with embeddings generated with mean pooling. The default pooling method is `mean` in order for this to not be a breaking change, but we highly suggest using the new `cls` pooling for better accuracy. + */ + pooling?: "mean" | "cls"; + }[]; +}; +type Ai_Cf_Baai_Bge_Large_En_V1_5_Output = { + shape?: number[]; + /** + * Embeddings of the requested text values + */ + data?: number[][]; + /** + * The pooling method used in the embedding process. + */ + pooling?: "mean" | "cls"; +} | AsyncResponse; +declare abstract class Base_Ai_Cf_Baai_Bge_Large_En_V1_5 { + inputs: Ai_Cf_Baai_Bge_Large_En_V1_5_Input; + postProcessedOutputs: Ai_Cf_Baai_Bge_Large_En_V1_5_Output; +} +type Ai_Cf_Unum_Uform_Gen2_Qwen_500M_Input = string | { + /** + * The input text prompt for the model to generate a response. + */ + prompt?: string; + /** + * If true, a chat template is not applied and you must adhere to the specific model's expected formatting. + */ + raw?: boolean; + /** + * Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; + image: number[] | (string & NonNullable); + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; +}; +interface Ai_Cf_Unum_Uform_Gen2_Qwen_500M_Output { + description?: string; +} +declare abstract class Base_Ai_Cf_Unum_Uform_Gen2_Qwen_500M { + inputs: Ai_Cf_Unum_Uform_Gen2_Qwen_500M_Input; + postProcessedOutputs: Ai_Cf_Unum_Uform_Gen2_Qwen_500M_Output; +} +type Ai_Cf_Openai_Whisper_Tiny_En_Input = string | { + /** + * An array of integers that represent the audio data constrained to 8-bit unsigned integer values + */ + audio: number[]; +}; +interface Ai_Cf_Openai_Whisper_Tiny_En_Output { + /** + * The transcription + */ + text: string; + word_count?: number; + words?: { + word?: string; + /** + * The second this word begins in the recording + */ + start?: number; + /** + * The ending second when the word completes + */ + end?: number; + }[]; + vtt?: string; +} +declare abstract class Base_Ai_Cf_Openai_Whisper_Tiny_En { + inputs: Ai_Cf_Openai_Whisper_Tiny_En_Input; + postProcessedOutputs: Ai_Cf_Openai_Whisper_Tiny_En_Output; +} +interface Ai_Cf_Openai_Whisper_Large_V3_Turbo_Input { + /** + * Base64 encoded value of the audio data. + */ + audio: string; + /** + * Supported tasks are 'translate' or 'transcribe'. + */ + task?: string; + /** + * The language of the audio being transcribed or translated. + */ + language?: string; + /** + * Preprocess the audio with a voice activity detection model. + */ + vad_filter?: boolean; + /** + * A text prompt to help provide context to the model on the contents of the audio. + */ + initial_prompt?: string; + /** + * The prefix it appended the the beginning of the output of the transcription and can guide the transcription result. + */ + prefix?: string; +} +interface Ai_Cf_Openai_Whisper_Large_V3_Turbo_Output { + transcription_info?: { + /** + * The language of the audio being transcribed or translated. + */ + language?: string; + /** + * The confidence level or probability of the detected language being accurate, represented as a decimal between 0 and 1. + */ + language_probability?: number; + /** + * The total duration of the original audio file, in seconds. + */ + duration?: number; + /** + * The duration of the audio after applying Voice Activity Detection (VAD) to remove silent or irrelevant sections, in seconds. + */ + duration_after_vad?: number; + }; + /** + * The complete transcription of the audio. + */ + text: string; + /** + * The total number of words in the transcription. + */ + word_count?: number; + segments?: { + /** + * The starting time of the segment within the audio, in seconds. + */ + start?: number; + /** + * The ending time of the segment within the audio, in seconds. + */ + end?: number; + /** + * The transcription of the segment. + */ + text?: string; + /** + * The temperature used in the decoding process, controlling randomness in predictions. Lower values result in more deterministic outputs. + */ + temperature?: number; + /** + * The average log probability of the predictions for the words in this segment, indicating overall confidence. + */ + avg_logprob?: number; + /** + * The compression ratio of the input to the output, measuring how much the text was compressed during the transcription process. + */ + compression_ratio?: number; + /** + * The probability that the segment contains no speech, represented as a decimal between 0 and 1. + */ + no_speech_prob?: number; + words?: { + /** + * The individual word transcribed from the audio. + */ + word?: string; + /** + * The starting time of the word within the audio, in seconds. + */ + start?: number; + /** + * The ending time of the word within the audio, in seconds. + */ + end?: number; + }[]; + }[]; + /** + * The transcription in WebVTT format, which includes timing and text information for use in subtitles. + */ + vtt?: string; +} +declare abstract class Base_Ai_Cf_Openai_Whisper_Large_V3_Turbo { + inputs: Ai_Cf_Openai_Whisper_Large_V3_Turbo_Input; + postProcessedOutputs: Ai_Cf_Openai_Whisper_Large_V3_Turbo_Output; +} +type Ai_Cf_Baai_Bge_M3_Input = BGEM3InputQueryAndContexts | BGEM3InputEmbedding | { + /** + * Batch of the embeddings requests to run using async-queue + */ + requests: (BGEM3InputQueryAndContexts1 | BGEM3InputEmbedding1)[]; +}; +interface BGEM3InputQueryAndContexts { + /** + * A query you wish to perform against the provided contexts. If no query is provided the model with respond with embeddings for contexts + */ + query?: string; + /** + * List of provided contexts. Note that the index in this array is important, as the response will refer to it. + */ + contexts: { + /** + * One of the provided context content + */ + text?: string; + }[]; + /** + * When provided with too long context should the model error out or truncate the context to fit? + */ + truncate_inputs?: boolean; +} +interface BGEM3InputEmbedding { + text: string | string[]; + /** + * When provided with too long context should the model error out or truncate the context to fit? + */ + truncate_inputs?: boolean; +} +interface BGEM3InputQueryAndContexts1 { + /** + * A query you wish to perform against the provided contexts. If no query is provided the model with respond with embeddings for contexts + */ + query?: string; + /** + * List of provided contexts. Note that the index in this array is important, as the response will refer to it. + */ + contexts: { + /** + * One of the provided context content + */ + text?: string; + }[]; + /** + * When provided with too long context should the model error out or truncate the context to fit? + */ + truncate_inputs?: boolean; +} +interface BGEM3InputEmbedding1 { + text: string | string[]; + /** + * When provided with too long context should the model error out or truncate the context to fit? + */ + truncate_inputs?: boolean; +} +type Ai_Cf_Baai_Bge_M3_Output = BGEM3OuputQuery | BGEM3OutputEmbeddingForContexts | BGEM3OuputEmbedding | AsyncResponse; +interface BGEM3OuputQuery { + response?: { + /** + * Index of the context in the request + */ + id?: number; + /** + * Score of the context under the index. + */ + score?: number; + }[]; +} +interface BGEM3OutputEmbeddingForContexts { + response?: number[][]; + shape?: number[]; + /** + * The pooling method used in the embedding process. + */ + pooling?: "mean" | "cls"; +} +interface BGEM3OuputEmbedding { + shape?: number[]; + /** + * Embeddings of the requested text values + */ + data?: number[][]; + /** + * The pooling method used in the embedding process. + */ + pooling?: "mean" | "cls"; +} +declare abstract class Base_Ai_Cf_Baai_Bge_M3 { + inputs: Ai_Cf_Baai_Bge_M3_Input; + postProcessedOutputs: Ai_Cf_Baai_Bge_M3_Output; +} +interface Ai_Cf_Black_Forest_Labs_Flux_1_Schnell_Input { + /** + * A text description of the image you want to generate. + */ + prompt: string; + /** + * The number of diffusion steps; higher values can improve quality but take longer. + */ + steps?: number; +} +interface Ai_Cf_Black_Forest_Labs_Flux_1_Schnell_Output { + /** + * The generated image in Base64 format. + */ + image?: string; +} +declare abstract class Base_Ai_Cf_Black_Forest_Labs_Flux_1_Schnell { + inputs: Ai_Cf_Black_Forest_Labs_Flux_1_Schnell_Input; + postProcessedOutputs: Ai_Cf_Black_Forest_Labs_Flux_1_Schnell_Output; +} +type Ai_Cf_Meta_Llama_3_2_11B_Vision_Instruct_Input = Prompt | Messages; +interface Prompt { + /** + * The input text prompt for the model to generate a response. + */ + prompt: string; + image?: number[] | (string & NonNullable); + /** + * If true, a chat template is not applied and you must adhere to the specific model's expected formatting. + */ + raw?: boolean; + /** + * If true, the response will be streamed back incrementally using SSE, Server Sent Events. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; + /** + * Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model. + */ + lora?: string; +} +interface Messages { + /** + * An array of message objects representing the conversation history. + */ + messages: { + /** + * The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool'). + */ + role?: string; + /** + * The tool call id. Must be supplied for tool calls for Mistral-3. If you don't know what to put here you can fall back to 000000001 + */ + tool_call_id?: string; + content?: string | { + /** + * Type of the content provided + */ + type?: string; + text?: string; + image_url?: { + /** + * image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted + */ + url?: string; + }; + }[] | { + /** + * Type of the content provided + */ + type?: string; + text?: string; + image_url?: { + /** + * image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted + */ + url?: string; + }; + }; + }[]; + image?: number[] | (string & NonNullable); + functions?: { + name: string; + code: string; + }[]; + /** + * A list of tools available for the assistant to use. + */ + tools?: ({ + /** + * The name of the tool. More descriptive the better. + */ + name: string; + /** + * A brief description of what the tool does. + */ + description: string; + /** + * Schema defining the parameters accepted by the tool. + */ + parameters: { + /** + * The type of the parameters object (usually 'object'). + */ + type: string; + /** + * List of required parameter names. + */ + required?: string[]; + /** + * Definitions of each parameter. + */ + properties: { + [k: string]: { + /** + * The data type of the parameter. + */ + type: string; + /** + * A description of the expected parameter. + */ + description: string; + }; + }; + }; + } | { + /** + * Specifies the type of tool (e.g., 'function'). + */ + type: string; + /** + * Details of the function tool. + */ + function: { + /** + * The name of the function. + */ + name: string; + /** + * A brief description of what the function does. + */ + description: string; + /** + * Schema defining the parameters accepted by the function. + */ + parameters: { + /** + * The type of the parameters object (usually 'object'). + */ + type: string; + /** + * List of required parameter names. + */ + required?: string[]; + /** + * Definitions of each parameter. + */ + properties: { + [k: string]: { + /** + * The data type of the parameter. + */ + type: string; + /** + * A description of the expected parameter. + */ + description: string; + }; + }; + }; + }; + })[]; + /** + * If true, the response will be streamed back incrementally. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Controls the creativity of the AI's responses by adjusting how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; +} +type Ai_Cf_Meta_Llama_3_2_11B_Vision_Instruct_Output = { + /** + * The generated text response from the model + */ + response?: string; + /** + * An array of tool calls requests made during the response generation + */ + tool_calls?: { + /** + * The arguments passed to be passed to the tool call request + */ + arguments?: object; + /** + * The name of the tool to be called + */ + name?: string; + }[]; +}; +declare abstract class Base_Ai_Cf_Meta_Llama_3_2_11B_Vision_Instruct { + inputs: Ai_Cf_Meta_Llama_3_2_11B_Vision_Instruct_Input; + postProcessedOutputs: Ai_Cf_Meta_Llama_3_2_11B_Vision_Instruct_Output; +} +type Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Input = Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Prompt | Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Messages | AsyncBatch; +interface Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Prompt { + /** + * The input text prompt for the model to generate a response. + */ + prompt: string; + /** + * Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model. + */ + lora?: string; + response_format?: JSONMode; + /** + * If true, a chat template is not applied and you must adhere to the specific model's expected formatting. + */ + raw?: boolean; + /** + * If true, the response will be streamed back incrementally using SSE, Server Sent Events. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; +} +interface JSONMode { + type?: "json_object" | "json_schema"; + json_schema?: unknown; +} +interface Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Messages { + /** + * An array of message objects representing the conversation history. + */ + messages: { + /** + * The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool'). + */ + role: string; + /** + * The content of the message as a string. + */ + content: string; + }[]; + functions?: { + name: string; + code: string; + }[]; + /** + * A list of tools available for the assistant to use. + */ + tools?: ({ + /** + * The name of the tool. More descriptive the better. + */ + name: string; + /** + * A brief description of what the tool does. + */ + description: string; + /** + * Schema defining the parameters accepted by the tool. + */ + parameters: { + /** + * The type of the parameters object (usually 'object'). + */ + type: string; + /** + * List of required parameter names. + */ + required?: string[]; + /** + * Definitions of each parameter. + */ + properties: { + [k: string]: { + /** + * The data type of the parameter. + */ + type: string; + /** + * A description of the expected parameter. + */ + description: string; + }; + }; + }; + } | { + /** + * Specifies the type of tool (e.g., 'function'). + */ + type: string; + /** + * Details of the function tool. + */ + function: { + /** + * The name of the function. + */ + name: string; + /** + * A brief description of what the function does. + */ + description: string; + /** + * Schema defining the parameters accepted by the function. + */ + parameters: { + /** + * The type of the parameters object (usually 'object'). + */ + type: string; + /** + * List of required parameter names. + */ + required?: string[]; + /** + * Definitions of each parameter. + */ + properties: { + [k: string]: { + /** + * The data type of the parameter. + */ + type: string; + /** + * A description of the expected parameter. + */ + description: string; + }; + }; + }; + }; + })[]; + response_format?: JSONMode; + /** + * If true, a chat template is not applied and you must adhere to the specific model's expected formatting. + */ + raw?: boolean; + /** + * If true, the response will be streamed back incrementally using SSE, Server Sent Events. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; +} +interface AsyncBatch { + requests?: { + /** + * User-supplied reference. This field will be present in the response as well it can be used to reference the request and response. It's NOT validated to be unique. + */ + external_reference?: string; + /** + * Prompt for the text generation model + */ + prompt?: string; + /** + * If true, the response will be streamed back incrementally using SSE, Server Sent Events. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; + response_format?: JSONMode; + }[]; +} +type Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Output = { + /** + * The generated text response from the model + */ + response: string; + /** + * Usage statistics for the inference request + */ + usage?: { + /** + * Total number of tokens in input + */ + prompt_tokens?: number; + /** + * Total number of tokens in output + */ + completion_tokens?: number; + /** + * Total number of input and output tokens + */ + total_tokens?: number; + }; + /** + * An array of tool calls requests made during the response generation + */ + tool_calls?: { + /** + * The arguments passed to be passed to the tool call request + */ + arguments?: object; + /** + * The name of the tool to be called + */ + name?: string; + }[]; +} | AsyncResponse; +declare abstract class Base_Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast { + inputs: Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Input; + postProcessedOutputs: Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast_Output; +} +interface Ai_Cf_Meta_Llama_Guard_3_8B_Input { + /** + * An array of message objects representing the conversation history. + */ + messages: { + /** + * The role of the message sender must alternate between 'user' and 'assistant'. + */ + role: "user" | "assistant"; + /** + * The content of the message as a string. + */ + content: string; + }[]; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Dictate the output format of the generated response. + */ + response_format?: { + /** + * Set to json_object to process and output generated text as JSON. + */ + type?: string; + }; +} +interface Ai_Cf_Meta_Llama_Guard_3_8B_Output { + response?: string | { + /** + * Whether the conversation is safe or not. + */ + safe?: boolean; + /** + * A list of what hazard categories predicted for the conversation, if the conversation is deemed unsafe. + */ + categories?: string[]; + }; + /** + * Usage statistics for the inference request + */ + usage?: { + /** + * Total number of tokens in input + */ + prompt_tokens?: number; + /** + * Total number of tokens in output + */ + completion_tokens?: number; + /** + * Total number of input and output tokens + */ + total_tokens?: number; + }; +} +declare abstract class Base_Ai_Cf_Meta_Llama_Guard_3_8B { + inputs: Ai_Cf_Meta_Llama_Guard_3_8B_Input; + postProcessedOutputs: Ai_Cf_Meta_Llama_Guard_3_8B_Output; +} +interface Ai_Cf_Baai_Bge_Reranker_Base_Input { + /** + * A query you wish to perform against the provided contexts. + */ + query: string; + /** + * Number of returned results starting with the best score. + */ + top_k?: number; + /** + * List of provided contexts. Note that the index in this array is important, as the response will refer to it. + */ + contexts: { + /** + * One of the provided context content + */ + text?: string; + }[]; +} +interface Ai_Cf_Baai_Bge_Reranker_Base_Output { + response?: { + /** + * Index of the context in the request + */ + id?: number; + /** + * Score of the context under the index. + */ + score?: number; + }[]; +} +declare abstract class Base_Ai_Cf_Baai_Bge_Reranker_Base { + inputs: Ai_Cf_Baai_Bge_Reranker_Base_Input; + postProcessedOutputs: Ai_Cf_Baai_Bge_Reranker_Base_Output; +} +type Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_Input = Qwen2_5_Coder_32B_Instruct_Prompt | Qwen2_5_Coder_32B_Instruct_Messages; +interface Qwen2_5_Coder_32B_Instruct_Prompt { + /** + * The input text prompt for the model to generate a response. + */ + prompt: string; + /** + * Name of the LoRA (Low-Rank Adaptation) model to fine-tune the base model. + */ + lora?: string; + response_format?: JSONMode; + /** + * If true, a chat template is not applied and you must adhere to the specific model's expected formatting. + */ + raw?: boolean; + /** + * If true, the response will be streamed back incrementally using SSE, Server Sent Events. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; +} +interface Qwen2_5_Coder_32B_Instruct_Messages { + /** + * An array of message objects representing the conversation history. + */ + messages: { + /** + * The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool'). + */ + role: string; + /** + * The content of the message as a string. + */ + content: string; + }[]; + functions?: { + name: string; + code: string; + }[]; + /** + * A list of tools available for the assistant to use. + */ + tools?: ({ + /** + * The name of the tool. More descriptive the better. + */ + name: string; + /** + * A brief description of what the tool does. + */ + description: string; + /** + * Schema defining the parameters accepted by the tool. + */ + parameters: { + /** + * The type of the parameters object (usually 'object'). + */ + type: string; + /** + * List of required parameter names. + */ + required?: string[]; + /** + * Definitions of each parameter. + */ + properties: { + [k: string]: { + /** + * The data type of the parameter. + */ + type: string; + /** + * A description of the expected parameter. + */ + description: string; + }; + }; + }; + } | { + /** + * Specifies the type of tool (e.g., 'function'). + */ + type: string; + /** + * Details of the function tool. + */ + function: { + /** + * The name of the function. + */ + name: string; + /** + * A brief description of what the function does. + */ + description: string; + /** + * Schema defining the parameters accepted by the function. + */ + parameters: { + /** + * The type of the parameters object (usually 'object'). + */ + type: string; + /** + * List of required parameter names. + */ + required?: string[]; + /** + * Definitions of each parameter. + */ + properties: { + [k: string]: { + /** + * The data type of the parameter. + */ + type: string; + /** + * A description of the expected parameter. + */ + description: string; + }; + }; + }; + }; + })[]; + response_format?: JSONMode; + /** + * If true, a chat template is not applied and you must adhere to the specific model's expected formatting. + */ + raw?: boolean; + /** + * If true, the response will be streamed back incrementally using SSE, Server Sent Events. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; +} +type Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_Output = { + /** + * The generated text response from the model + */ + response: string; + /** + * Usage statistics for the inference request + */ + usage?: { + /** + * Total number of tokens in input + */ + prompt_tokens?: number; + /** + * Total number of tokens in output + */ + completion_tokens?: number; + /** + * Total number of input and output tokens + */ + total_tokens?: number; + }; + /** + * An array of tool calls requests made during the response generation + */ + tool_calls?: { + /** + * The arguments passed to be passed to the tool call request + */ + arguments?: object; + /** + * The name of the tool to be called + */ + name?: string; + }[]; +}; +declare abstract class Base_Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct { + inputs: Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_Input; + postProcessedOutputs: Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct_Output; +} +type Ai_Cf_Qwen_Qwq_32B_Input = Qwen_Qwq_32B_Prompt | Qwen_Qwq_32B_Messages; +interface Qwen_Qwq_32B_Prompt { + /** + * The input text prompt for the model to generate a response. + */ + prompt: string; + /** + * JSON schema that should be fulfilled for the response. + */ + guided_json?: object; + /** + * If true, a chat template is not applied and you must adhere to the specific model's expected formatting. + */ + raw?: boolean; + /** + * If true, the response will be streamed back incrementally using SSE, Server Sent Events. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; +} +interface Qwen_Qwq_32B_Messages { + /** + * An array of message objects representing the conversation history. + */ + messages: { + /** + * The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool'). + */ + role?: string; + /** + * The tool call id. Must be supplied for tool calls for Mistral-3. If you don't know what to put here you can fall back to 000000001 + */ + tool_call_id?: string; + content?: string | { + /** + * Type of the content provided + */ + type?: string; + text?: string; + image_url?: { + /** + * image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted + */ + url?: string; + }; + }[] | { + /** + * Type of the content provided + */ + type?: string; + text?: string; + image_url?: { + /** + * image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted + */ + url?: string; + }; + }; + }[]; + functions?: { + name: string; + code: string; + }[]; + /** + * A list of tools available for the assistant to use. + */ + tools?: ({ + /** + * The name of the tool. More descriptive the better. + */ + name: string; + /** + * A brief description of what the tool does. + */ + description: string; + /** + * Schema defining the parameters accepted by the tool. + */ + parameters: { + /** + * The type of the parameters object (usually 'object'). + */ + type: string; + /** + * List of required parameter names. + */ + required?: string[]; + /** + * Definitions of each parameter. + */ + properties: { + [k: string]: { + /** + * The data type of the parameter. + */ + type: string; + /** + * A description of the expected parameter. + */ + description: string; + }; + }; + }; + } | { + /** + * Specifies the type of tool (e.g., 'function'). + */ + type: string; + /** + * Details of the function tool. + */ + function: { + /** + * The name of the function. + */ + name: string; + /** + * A brief description of what the function does. + */ + description: string; + /** + * Schema defining the parameters accepted by the function. + */ + parameters: { + /** + * The type of the parameters object (usually 'object'). + */ + type: string; + /** + * List of required parameter names. + */ + required?: string[]; + /** + * Definitions of each parameter. + */ + properties: { + [k: string]: { + /** + * The data type of the parameter. + */ + type: string; + /** + * A description of the expected parameter. + */ + description: string; + }; + }; + }; + }; + })[]; + /** + * JSON schema that should be fufilled for the response. + */ + guided_json?: object; + /** + * If true, a chat template is not applied and you must adhere to the specific model's expected formatting. + */ + raw?: boolean; + /** + * If true, the response will be streamed back incrementally using SSE, Server Sent Events. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; +} +type Ai_Cf_Qwen_Qwq_32B_Output = { + /** + * The generated text response from the model + */ + response: string; + /** + * Usage statistics for the inference request + */ + usage?: { + /** + * Total number of tokens in input + */ + prompt_tokens?: number; + /** + * Total number of tokens in output + */ + completion_tokens?: number; + /** + * Total number of input and output tokens + */ + total_tokens?: number; + }; + /** + * An array of tool calls requests made during the response generation + */ + tool_calls?: { + /** + * The arguments passed to be passed to the tool call request + */ + arguments?: object; + /** + * The name of the tool to be called + */ + name?: string; + }[]; +}; +declare abstract class Base_Ai_Cf_Qwen_Qwq_32B { + inputs: Ai_Cf_Qwen_Qwq_32B_Input; + postProcessedOutputs: Ai_Cf_Qwen_Qwq_32B_Output; +} +type Ai_Cf_Mistralai_Mistral_Small_3_1_24B_Instruct_Input = Mistral_Small_3_1_24B_Instruct_Prompt | Mistral_Small_3_1_24B_Instruct_Messages; +interface Mistral_Small_3_1_24B_Instruct_Prompt { + /** + * The input text prompt for the model to generate a response. + */ + prompt: string; + /** + * JSON schema that should be fulfilled for the response. + */ + guided_json?: object; + /** + * If true, a chat template is not applied and you must adhere to the specific model's expected formatting. + */ + raw?: boolean; + /** + * If true, the response will be streamed back incrementally using SSE, Server Sent Events. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; +} +interface Mistral_Small_3_1_24B_Instruct_Messages { + /** + * An array of message objects representing the conversation history. + */ + messages: { + /** + * The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool'). + */ + role?: string; + /** + * The tool call id. Must be supplied for tool calls for Mistral-3. If you don't know what to put here you can fall back to 000000001 + */ + tool_call_id?: string; + content?: string | { + /** + * Type of the content provided + */ + type?: string; + text?: string; + image_url?: { + /** + * image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted + */ + url?: string; + }; + }[] | { + /** + * Type of the content provided + */ + type?: string; + text?: string; + image_url?: { + /** + * image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted + */ + url?: string; + }; + }; + }[]; + functions?: { + name: string; + code: string; + }[]; + /** + * A list of tools available for the assistant to use. + */ + tools?: ({ + /** + * The name of the tool. More descriptive the better. + */ + name: string; + /** + * A brief description of what the tool does. + */ + description: string; + /** + * Schema defining the parameters accepted by the tool. + */ + parameters: { + /** + * The type of the parameters object (usually 'object'). + */ + type: string; + /** + * List of required parameter names. + */ + required?: string[]; + /** + * Definitions of each parameter. + */ + properties: { + [k: string]: { + /** + * The data type of the parameter. + */ + type: string; + /** + * A description of the expected parameter. + */ + description: string; + }; + }; + }; + } | { + /** + * Specifies the type of tool (e.g., 'function'). + */ + type: string; + /** + * Details of the function tool. + */ + function: { + /** + * The name of the function. + */ + name: string; + /** + * A brief description of what the function does. + */ + description: string; + /** + * Schema defining the parameters accepted by the function. + */ + parameters: { + /** + * The type of the parameters object (usually 'object'). + */ + type: string; + /** + * List of required parameter names. + */ + required?: string[]; + /** + * Definitions of each parameter. + */ + properties: { + [k: string]: { + /** + * The data type of the parameter. + */ + type: string; + /** + * A description of the expected parameter. + */ + description: string; + }; + }; + }; + }; + })[]; + /** + * JSON schema that should be fufilled for the response. + */ + guided_json?: object; + /** + * If true, a chat template is not applied and you must adhere to the specific model's expected formatting. + */ + raw?: boolean; + /** + * If true, the response will be streamed back incrementally using SSE, Server Sent Events. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; +} +type Ai_Cf_Mistralai_Mistral_Small_3_1_24B_Instruct_Output = { + /** + * The generated text response from the model + */ + response: string; + /** + * Usage statistics for the inference request + */ + usage?: { + /** + * Total number of tokens in input + */ + prompt_tokens?: number; + /** + * Total number of tokens in output + */ + completion_tokens?: number; + /** + * Total number of input and output tokens + */ + total_tokens?: number; + }; + /** + * An array of tool calls requests made during the response generation + */ + tool_calls?: { + /** + * The arguments passed to be passed to the tool call request + */ + arguments?: object; + /** + * The name of the tool to be called + */ + name?: string; + }[]; +}; +declare abstract class Base_Ai_Cf_Mistralai_Mistral_Small_3_1_24B_Instruct { + inputs: Ai_Cf_Mistralai_Mistral_Small_3_1_24B_Instruct_Input; + postProcessedOutputs: Ai_Cf_Mistralai_Mistral_Small_3_1_24B_Instruct_Output; +} +type Ai_Cf_Google_Gemma_3_12B_It_Input = Google_Gemma_3_12B_It_Prompt | Google_Gemma_3_12B_It_Messages; +interface Google_Gemma_3_12B_It_Prompt { + /** + * The input text prompt for the model to generate a response. + */ + prompt: string; + /** + * JSON schema that should be fufilled for the response. + */ + guided_json?: object; + /** + * If true, a chat template is not applied and you must adhere to the specific model's expected formatting. + */ + raw?: boolean; + /** + * If true, the response will be streamed back incrementally using SSE, Server Sent Events. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; +} +interface Google_Gemma_3_12B_It_Messages { + /** + * An array of message objects representing the conversation history. + */ + messages: { + /** + * The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool'). + */ + role?: string; + content?: string | { + /** + * Type of the content provided + */ + type?: string; + text?: string; + image_url?: { + /** + * image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted + */ + url?: string; + }; + }[] | { + /** + * Type of the content provided + */ + type?: string; + text?: string; + image_url?: { + /** + * image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted + */ + url?: string; + }; + }; + }[]; + functions?: { + name: string; + code: string; + }[]; + /** + * A list of tools available for the assistant to use. + */ + tools?: ({ + /** + * The name of the tool. More descriptive the better. + */ + name: string; + /** + * A brief description of what the tool does. + */ + description: string; + /** + * Schema defining the parameters accepted by the tool. + */ + parameters: { + /** + * The type of the parameters object (usually 'object'). + */ + type: string; + /** + * List of required parameter names. + */ + required?: string[]; + /** + * Definitions of each parameter. + */ + properties: { + [k: string]: { + /** + * The data type of the parameter. + */ + type: string; + /** + * A description of the expected parameter. + */ + description: string; + }; + }; + }; + } | { + /** + * Specifies the type of tool (e.g., 'function'). + */ + type: string; + /** + * Details of the function tool. + */ + function: { + /** + * The name of the function. + */ + name: string; + /** + * A brief description of what the function does. + */ + description: string; + /** + * Schema defining the parameters accepted by the function. + */ + parameters: { + /** + * The type of the parameters object (usually 'object'). + */ + type: string; + /** + * List of required parameter names. + */ + required?: string[]; + /** + * Definitions of each parameter. + */ + properties: { + [k: string]: { + /** + * The data type of the parameter. + */ + type: string; + /** + * A description of the expected parameter. + */ + description: string; + }; + }; + }; + }; + })[]; + /** + * JSON schema that should be fufilled for the response. + */ + guided_json?: object; + /** + * If true, a chat template is not applied and you must adhere to the specific model's expected formatting. + */ + raw?: boolean; + /** + * If true, the response will be streamed back incrementally using SSE, Server Sent Events. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; +} +type Ai_Cf_Google_Gemma_3_12B_It_Output = { + /** + * The generated text response from the model + */ + response: string; + /** + * Usage statistics for the inference request + */ + usage?: { + /** + * Total number of tokens in input + */ + prompt_tokens?: number; + /** + * Total number of tokens in output + */ + completion_tokens?: number; + /** + * Total number of input and output tokens + */ + total_tokens?: number; + }; + /** + * An array of tool calls requests made during the response generation + */ + tool_calls?: { + /** + * The arguments passed to be passed to the tool call request + */ + arguments?: object; + /** + * The name of the tool to be called + */ + name?: string; + }[]; +}; +declare abstract class Base_Ai_Cf_Google_Gemma_3_12B_It { + inputs: Ai_Cf_Google_Gemma_3_12B_It_Input; + postProcessedOutputs: Ai_Cf_Google_Gemma_3_12B_It_Output; +} +type Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Input = Ai_Cf_Meta_Llama_4_Prompt | Ai_Cf_Meta_Llama_4_Messages; +interface Ai_Cf_Meta_Llama_4_Prompt { + /** + * The input text prompt for the model to generate a response. + */ + prompt: string; + /** + * JSON schema that should be fulfilled for the response. + */ + guided_json?: object; + response_format?: JSONMode; + /** + * If true, a chat template is not applied and you must adhere to the specific model's expected formatting. + */ + raw?: boolean; + /** + * If true, the response will be streamed back incrementally using SSE, Server Sent Events. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; +} +interface Ai_Cf_Meta_Llama_4_Messages { + /** + * An array of message objects representing the conversation history. + */ + messages: { + /** + * The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool'). + */ + role?: string; + /** + * The tool call id. If you don't know what to put here you can fall back to 000000001 + */ + tool_call_id?: string; + content?: string | { + /** + * Type of the content provided + */ + type?: string; + text?: string; + image_url?: { + /** + * image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted + */ + url?: string; + }; + }[] | { + /** + * Type of the content provided + */ + type?: string; + text?: string; + image_url?: { + /** + * image uri with data (e.g. data:image/jpeg;base64,/9j/...). HTTP URL will not be accepted + */ + url?: string; + }; + }; + }[]; + functions?: { + name: string; + code: string; + }[]; + /** + * A list of tools available for the assistant to use. + */ + tools?: ({ + /** + * The name of the tool. More descriptive the better. + */ + name: string; + /** + * A brief description of what the tool does. + */ + description: string; + /** + * Schema defining the parameters accepted by the tool. + */ + parameters: { + /** + * The type of the parameters object (usually 'object'). + */ + type: string; + /** + * List of required parameter names. + */ + required?: string[]; + /** + * Definitions of each parameter. + */ + properties: { + [k: string]: { + /** + * The data type of the parameter. + */ + type: string; + /** + * A description of the expected parameter. + */ + description: string; + }; + }; + }; + } | { + /** + * Specifies the type of tool (e.g., 'function'). + */ + type: string; + /** + * Details of the function tool. + */ + function: { + /** + * The name of the function. + */ + name: string; + /** + * A brief description of what the function does. + */ + description: string; + /** + * Schema defining the parameters accepted by the function. + */ + parameters: { + /** + * The type of the parameters object (usually 'object'). + */ + type: string; + /** + * List of required parameter names. + */ + required?: string[]; + /** + * Definitions of each parameter. + */ + properties: { + [k: string]: { + /** + * The data type of the parameter. + */ + type: string; + /** + * A description of the expected parameter. + */ + description: string; + }; + }; + }; + }; + })[]; + response_format?: JSONMode; + /** + * JSON schema that should be fufilled for the response. + */ + guided_json?: object; + /** + * If true, a chat template is not applied and you must adhere to the specific model's expected formatting. + */ + raw?: boolean; + /** + * If true, the response will be streamed back incrementally using SSE, Server Sent Events. + */ + stream?: boolean; + /** + * The maximum number of tokens to generate in the response. + */ + max_tokens?: number; + /** + * Controls the randomness of the output; higher values produce more random results. + */ + temperature?: number; + /** + * Adjusts the creativity of the AI's responses by controlling how many possible words it considers. Lower values make outputs more predictable; higher values allow for more varied and creative responses. + */ + top_p?: number; + /** + * Limits the AI to choose from the top 'k' most probable words. Lower values make responses more focused; higher values introduce more variety and potential surprises. + */ + top_k?: number; + /** + * Random seed for reproducibility of the generation. + */ + seed?: number; + /** + * Penalty for repeated tokens; higher values discourage repetition. + */ + repetition_penalty?: number; + /** + * Decreases the likelihood of the model repeating the same lines verbatim. + */ + frequency_penalty?: number; + /** + * Increases the likelihood of the model introducing new topics. + */ + presence_penalty?: number; +} +type Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Output = { + /** + * The generated text response from the model + */ + response: string; + /** + * Usage statistics for the inference request + */ + usage?: { + /** + * Total number of tokens in input + */ + prompt_tokens?: number; + /** + * Total number of tokens in output + */ + completion_tokens?: number; + /** + * Total number of input and output tokens + */ + total_tokens?: number; + }; + /** + * An array of tool calls requests made during the response generation + */ + tool_calls?: { + /** + * The tool call id. + */ + id?: string; + /** + * Specifies the type of tool (e.g., 'function'). + */ + type?: string; + /** + * Details of the function tool. + */ + function?: { + /** + * The name of the tool to be called + */ + name?: string; + /** + * The arguments passed to be passed to the tool call request + */ + arguments?: object; + }; + }[]; +}; +declare abstract class Base_Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct { + inputs: Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Input; + postProcessedOutputs: Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct_Output; +} +interface AiModels { + "@cf/huggingface/distilbert-sst-2-int8": BaseAiTextClassification; + "@cf/stabilityai/stable-diffusion-xl-base-1.0": BaseAiTextToImage; + "@cf/runwayml/stable-diffusion-v1-5-inpainting": BaseAiTextToImage; + "@cf/runwayml/stable-diffusion-v1-5-img2img": BaseAiTextToImage; + "@cf/lykon/dreamshaper-8-lcm": BaseAiTextToImage; + "@cf/bytedance/stable-diffusion-xl-lightning": BaseAiTextToImage; + "@cf/myshell-ai/melotts": BaseAiTextToSpeech; + "@cf/microsoft/resnet-50": BaseAiImageClassification; + "@cf/facebook/detr-resnet-50": BaseAiObjectDetection; + "@cf/meta/llama-2-7b-chat-int8": BaseAiTextGeneration; + "@cf/mistral/mistral-7b-instruct-v0.1": BaseAiTextGeneration; + "@cf/meta/llama-2-7b-chat-fp16": BaseAiTextGeneration; + "@hf/thebloke/llama-2-13b-chat-awq": BaseAiTextGeneration; + "@hf/thebloke/mistral-7b-instruct-v0.1-awq": BaseAiTextGeneration; + "@hf/thebloke/zephyr-7b-beta-awq": BaseAiTextGeneration; + "@hf/thebloke/openhermes-2.5-mistral-7b-awq": BaseAiTextGeneration; + "@hf/thebloke/neural-chat-7b-v3-1-awq": BaseAiTextGeneration; + "@hf/thebloke/llamaguard-7b-awq": BaseAiTextGeneration; + "@hf/thebloke/deepseek-coder-6.7b-base-awq": BaseAiTextGeneration; + "@hf/thebloke/deepseek-coder-6.7b-instruct-awq": BaseAiTextGeneration; + "@cf/deepseek-ai/deepseek-math-7b-instruct": BaseAiTextGeneration; + "@cf/defog/sqlcoder-7b-2": BaseAiTextGeneration; + "@cf/openchat/openchat-3.5-0106": BaseAiTextGeneration; + "@cf/tiiuae/falcon-7b-instruct": BaseAiTextGeneration; + "@cf/thebloke/discolm-german-7b-v1-awq": BaseAiTextGeneration; + "@cf/qwen/qwen1.5-0.5b-chat": BaseAiTextGeneration; + "@cf/qwen/qwen1.5-7b-chat-awq": BaseAiTextGeneration; + "@cf/qwen/qwen1.5-14b-chat-awq": BaseAiTextGeneration; + "@cf/tinyllama/tinyllama-1.1b-chat-v1.0": BaseAiTextGeneration; + "@cf/microsoft/phi-2": BaseAiTextGeneration; + "@cf/qwen/qwen1.5-1.8b-chat": BaseAiTextGeneration; + "@cf/mistral/mistral-7b-instruct-v0.2-lora": BaseAiTextGeneration; + "@hf/nousresearch/hermes-2-pro-mistral-7b": BaseAiTextGeneration; + "@hf/nexusflow/starling-lm-7b-beta": BaseAiTextGeneration; + "@hf/google/gemma-7b-it": BaseAiTextGeneration; + "@cf/meta-llama/llama-2-7b-chat-hf-lora": BaseAiTextGeneration; + "@cf/google/gemma-2b-it-lora": BaseAiTextGeneration; + "@cf/google/gemma-7b-it-lora": BaseAiTextGeneration; + "@hf/mistral/mistral-7b-instruct-v0.2": BaseAiTextGeneration; + "@cf/meta/llama-3-8b-instruct": BaseAiTextGeneration; + "@cf/fblgit/una-cybertron-7b-v2-bf16": BaseAiTextGeneration; + "@cf/meta/llama-3-8b-instruct-awq": BaseAiTextGeneration; + "@hf/meta-llama/meta-llama-3-8b-instruct": BaseAiTextGeneration; + "@cf/meta/llama-3.1-8b-instruct": BaseAiTextGeneration; + "@cf/meta/llama-3.1-8b-instruct-fp8": BaseAiTextGeneration; + "@cf/meta/llama-3.1-8b-instruct-awq": BaseAiTextGeneration; + "@cf/meta/llama-3.2-3b-instruct": BaseAiTextGeneration; + "@cf/meta/llama-3.2-1b-instruct": BaseAiTextGeneration; + "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b": BaseAiTextGeneration; + "@cf/facebook/bart-large-cnn": BaseAiSummarization; + "@cf/llava-hf/llava-1.5-7b-hf": BaseAiImageToText; + "@cf/baai/bge-base-en-v1.5": Base_Ai_Cf_Baai_Bge_Base_En_V1_5; + "@cf/openai/whisper": Base_Ai_Cf_Openai_Whisper; + "@cf/meta/m2m100-1.2b": Base_Ai_Cf_Meta_M2M100_1_2B; + "@cf/baai/bge-small-en-v1.5": Base_Ai_Cf_Baai_Bge_Small_En_V1_5; + "@cf/baai/bge-large-en-v1.5": Base_Ai_Cf_Baai_Bge_Large_En_V1_5; + "@cf/unum/uform-gen2-qwen-500m": Base_Ai_Cf_Unum_Uform_Gen2_Qwen_500M; + "@cf/openai/whisper-tiny-en": Base_Ai_Cf_Openai_Whisper_Tiny_En; + "@cf/openai/whisper-large-v3-turbo": Base_Ai_Cf_Openai_Whisper_Large_V3_Turbo; + "@cf/baai/bge-m3": Base_Ai_Cf_Baai_Bge_M3; + "@cf/black-forest-labs/flux-1-schnell": Base_Ai_Cf_Black_Forest_Labs_Flux_1_Schnell; + "@cf/meta/llama-3.2-11b-vision-instruct": Base_Ai_Cf_Meta_Llama_3_2_11B_Vision_Instruct; + "@cf/meta/llama-3.3-70b-instruct-fp8-fast": Base_Ai_Cf_Meta_Llama_3_3_70B_Instruct_Fp8_Fast; + "@cf/meta/llama-guard-3-8b": Base_Ai_Cf_Meta_Llama_Guard_3_8B; + "@cf/baai/bge-reranker-base": Base_Ai_Cf_Baai_Bge_Reranker_Base; + "@cf/qwen/qwen2.5-coder-32b-instruct": Base_Ai_Cf_Qwen_Qwen2_5_Coder_32B_Instruct; + "@cf/qwen/qwq-32b": Base_Ai_Cf_Qwen_Qwq_32B; + "@cf/mistralai/mistral-small-3.1-24b-instruct": Base_Ai_Cf_Mistralai_Mistral_Small_3_1_24B_Instruct; + "@cf/google/gemma-3-12b-it": Base_Ai_Cf_Google_Gemma_3_12B_It; + "@cf/meta/llama-4-scout-17b-16e-instruct": Base_Ai_Cf_Meta_Llama_4_Scout_17B_16E_Instruct; +} +type AiOptions = { + /** + * Send requests as an asynchronous batch job, only works for supported models + * https://developers.cloudflare.com/workers-ai/features/batch-api + */ + queueRequest?: boolean; + gateway?: GatewayOptions; + returnRawResponse?: boolean; + prefix?: string; + extraHeaders?: object; +}; +type ConversionResponse = { + name: string; + mimeType: string; + format: "markdown"; + tokens: number; + data: string; +}; +type AiModelsSearchParams = { + author?: string; + hide_experimental?: boolean; + page?: number; + per_page?: number; + search?: string; + source?: number; + task?: string; +}; +type AiModelsSearchObject = { + id: string; + source: number; + name: string; + description: string; + task: { + id: string; + name: string; + description: string; + }; + tags: string[]; + properties: { + property_id: string; + value: string; + }[]; +}; +interface InferenceUpstreamError extends Error { +} +interface AiInternalError extends Error { +} +type AiModelListType = Record; +declare abstract class Ai { + aiGatewayLogId: string | null; + gateway(gatewayId: string): AiGateway; + autorag(autoragId?: string): AutoRAG; + run(model: Name, inputs: InputOptions, options?: Options): Promise; + models(params?: AiModelsSearchParams): Promise; + toMarkdown(files: { + name: string; + blob: Blob; + }[], options?: { + gateway?: GatewayOptions; + extraHeaders?: object; + }): Promise; + toMarkdown(files: { + name: string; + blob: Blob; + }, options?: { + gateway?: GatewayOptions; + extraHeaders?: object; + }): Promise; +} +type GatewayRetries = { + maxAttempts?: 1 | 2 | 3 | 4 | 5; + retryDelayMs?: number; + backoff?: 'constant' | 'linear' | 'exponential'; +}; +type GatewayOptions = { + id: string; + cacheKey?: string; + cacheTtl?: number; + skipCache?: boolean; + metadata?: Record; + collectLog?: boolean; + eventId?: string; + requestTimeoutMs?: number; + retries?: GatewayRetries; +}; +type AiGatewayPatchLog = { + score?: number | null; + feedback?: -1 | 1 | null; + metadata?: Record | null; +}; +type AiGatewayLog = { + id: string; + provider: string; + model: string; + model_type?: string; + path: string; + duration: number; + request_type?: string; + request_content_type?: string; + status_code: number; + response_content_type?: string; + success: boolean; + cached: boolean; + tokens_in?: number; + tokens_out?: number; + metadata?: Record; + step?: number; + cost?: number; + custom_cost?: boolean; + request_size: number; + request_head?: string; + request_head_complete: boolean; + response_size: number; + response_head?: string; + response_head_complete: boolean; + created_at: Date; +}; +type AIGatewayProviders = 'workers-ai' | 'anthropic' | 'aws-bedrock' | 'azure-openai' | 'google-vertex-ai' | 'huggingface' | 'openai' | 'perplexity-ai' | 'replicate' | 'groq' | 'cohere' | 'google-ai-studio' | 'mistral' | 'grok' | 'openrouter' | 'deepseek' | 'cerebras' | 'cartesia' | 'elevenlabs' | 'adobe-firefly'; +type AIGatewayHeaders = { + 'cf-aig-metadata': Record | string; + 'cf-aig-custom-cost': { + per_token_in?: number; + per_token_out?: number; + } | { + total_cost?: number; + } | string; + 'cf-aig-cache-ttl': number | string; + 'cf-aig-skip-cache': boolean | string; + 'cf-aig-cache-key': string; + 'cf-aig-event-id': string; + 'cf-aig-request-timeout': number | string; + 'cf-aig-max-attempts': number | string; + 'cf-aig-retry-delay': number | string; + 'cf-aig-backoff': string; + 'cf-aig-collect-log': boolean | string; + Authorization: string; + 'Content-Type': string; + [key: string]: string | number | boolean | object; +}; +type AIGatewayUniversalRequest = { + provider: AIGatewayProviders | string; // eslint-disable-line + endpoint: string; + headers: Partial; + query: unknown; +}; +interface AiGatewayInternalError extends Error { +} +interface AiGatewayLogNotFound extends Error { +} +declare abstract class AiGateway { + patchLog(logId: string, data: AiGatewayPatchLog): Promise; + getLog(logId: string): Promise; + run(data: AIGatewayUniversalRequest | AIGatewayUniversalRequest[], options?: { + gateway?: GatewayOptions; + extraHeaders?: object; + }): Promise; + getUrl(provider?: AIGatewayProviders | string): Promise; // eslint-disable-line +} +interface AutoRAGInternalError extends Error { +} +interface AutoRAGNotFoundError extends Error { +} +interface AutoRAGUnauthorizedError extends Error { +} +interface AutoRAGNameNotSetError extends Error { +} +type ComparisonFilter = { + key: string; + type: 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte'; + value: string | number | boolean; +}; +type CompoundFilter = { + type: 'and' | 'or'; + filters: ComparisonFilter[]; +}; +type AutoRagSearchRequest = { + query: string; + filters?: CompoundFilter | ComparisonFilter; + max_num_results?: number; + ranking_options?: { + ranker?: string; + score_threshold?: number; + }; + rewrite_query?: boolean; +}; +type AutoRagAiSearchRequest = AutoRagSearchRequest & { + stream?: boolean; +}; +type AutoRagAiSearchRequestStreaming = Omit & { + stream: true; +}; +type AutoRagSearchResponse = { + object: 'vector_store.search_results.page'; + search_query: string; + data: { + file_id: string; + filename: string; + score: number; + attributes: Record; + content: { + type: 'text'; + text: string; + }[]; + }[]; + has_more: boolean; + next_page: string | null; +}; +type AutoRagListResponse = { + id: string; + enable: boolean; + type: string; + source: string; + vectorize_name: string; + paused: boolean; + status: string; +}[]; +type AutoRagAiSearchResponse = AutoRagSearchResponse & { + response: string; +}; +declare abstract class AutoRAG { + list(): Promise; + search(params: AutoRagSearchRequest): Promise; + aiSearch(params: AutoRagAiSearchRequestStreaming): Promise; + aiSearch(params: AutoRagAiSearchRequest): Promise; + aiSearch(params: AutoRagAiSearchRequest): Promise; +} +interface BasicImageTransformations { + /** + * Maximum width in image pixels. The value must be an integer. + */ + width?: number; + /** + * Maximum height in image pixels. The value must be an integer. + */ + height?: number; + /** + * Resizing mode as a string. It affects interpretation of width and height + * options: + * - scale-down: Similar to contain, but the image is never enlarged. If + * the image is larger than given width or height, it will be resized. + * Otherwise its original size will be kept. + * - contain: Resizes to maximum size that fits within the given width and + * height. If only a single dimension is given (e.g. only width), the + * image will be shrunk or enlarged to exactly match that dimension. + * Aspect ratio is always preserved. + * - cover: Resizes (shrinks or enlarges) to fill the entire area of width + * and height. If the image has an aspect ratio different from the ratio + * of width and height, it will be cropped to fit. + * - crop: The image will be shrunk and cropped to fit within the area + * specified by width and height. The image will not be enlarged. For images + * smaller than the given dimensions it's the same as scale-down. For + * images larger than the given dimensions, it's the same as cover. + * See also trim. + * - pad: Resizes to the maximum size that fits within the given width and + * height, and then fills the remaining area with a background color + * (white by default). Use of this mode is not recommended, as the same + * effect can be more efficiently achieved with the contain mode and the + * CSS object-fit: contain property. + * - squeeze: Stretches and deforms to the width and height given, even if it + * breaks aspect ratio + */ + fit?: "scale-down" | "contain" | "cover" | "crop" | "pad" | "squeeze"; + /** + * When cropping with fit: "cover", this defines the side or point that should + * be left uncropped. The value is either a string + * "left", "right", "top", "bottom", "auto", or "center" (the default), + * or an object {x, y} containing focal point coordinates in the original + * image expressed as fractions ranging from 0.0 (top or left) to 1.0 + * (bottom or right), 0.5 being the center. {fit: "cover", gravity: "top"} will + * crop bottom or left and right sides as necessary, but won’t crop anything + * from the top. {fit: "cover", gravity: {x:0.5, y:0.2}} will crop each side to + * preserve as much as possible around a point at 20% of the height of the + * source image. + */ + gravity?: 'left' | 'right' | 'top' | 'bottom' | 'center' | 'auto' | 'entropy' | BasicImageTransformationsGravityCoordinates; + /** + * Background color to add underneath the image. Applies only to images with + * transparency (such as PNG). Accepts any CSS color (#RRGGBB, rgba(…), + * hsl(…), etc.) + */ + background?: string; + /** + * Number of degrees (90, 180, 270) to rotate the image by. width and height + * options refer to axes after rotation. + */ + rotate?: 0 | 90 | 180 | 270 | 360; +} +interface BasicImageTransformationsGravityCoordinates { + x?: number; + y?: number; + mode?: 'remainder' | 'box-center'; +} +/** + * In addition to the properties you can set in the RequestInit dict + * that you pass as an argument to the Request constructor, you can + * set certain properties of a `cf` object to control how Cloudflare + * features are applied to that new Request. + * + * Note: Currently, these properties cannot be tested in the + * playground. + */ +interface RequestInitCfProperties extends Record { + cacheEverything?: boolean; + /** + * A request's cache key is what determines if two requests are + * "the same" for caching purposes. If a request has the same cache key + * as some previous request, then we can serve the same cached response for + * both. (e.g. 'some-key') + * + * Only available for Enterprise customers. + */ + cacheKey?: string; + /** + * This allows you to append additional Cache-Tag response headers + * to the origin response without modifications to the origin server. + * This will allow for greater control over the Purge by Cache Tag feature + * utilizing changes only in the Workers process. + * + * Only available for Enterprise customers. + */ + cacheTags?: string[]; + /** + * Force response to be cached for a given number of seconds. (e.g. 300) + */ + cacheTtl?: number; + /** + * Force response to be cached for a given number of seconds based on the Origin status code. + * (e.g. { '200-299': 86400, '404': 1, '500-599': 0 }) + */ + cacheTtlByStatus?: Record; + scrapeShield?: boolean; + apps?: boolean; + image?: RequestInitCfPropertiesImage; + minify?: RequestInitCfPropertiesImageMinify; + mirage?: boolean; + polish?: "lossy" | "lossless" | "off"; + r2?: RequestInitCfPropertiesR2; + /** + * Redirects the request to an alternate origin server. You can use this, + * for example, to implement load balancing across several origins. + * (e.g.us-east.example.com) + * + * Note - For security reasons, the hostname set in resolveOverride must + * be proxied on the same Cloudflare zone of the incoming request. + * Otherwise, the setting is ignored. CNAME hosts are allowed, so to + * resolve to a host under a different domain or a DNS only domain first + * declare a CNAME record within your own zone’s DNS mapping to the + * external hostname, set proxy on Cloudflare, then set resolveOverride + * to point to that CNAME record. + */ + resolveOverride?: string; +} +interface RequestInitCfPropertiesImageDraw extends BasicImageTransformations { + /** + * Absolute URL of the image file to use for the drawing. It can be any of + * the supported file formats. For drawing of watermarks or non-rectangular + * overlays we recommend using PNG or WebP images. + */ + url: string; + /** + * Floating-point number between 0 (transparent) and 1 (opaque). + * For example, opacity: 0.5 makes overlay semitransparent. + */ + opacity?: number; + /** + * - If set to true, the overlay image will be tiled to cover the entire + * area. This is useful for stock-photo-like watermarks. + * - If set to "x", the overlay image will be tiled horizontally only + * (form a line). + * - If set to "y", the overlay image will be tiled vertically only + * (form a line). + */ + repeat?: true | "x" | "y"; + /** + * Position of the overlay image relative to a given edge. Each property is + * an offset in pixels. 0 aligns exactly to the edge. For example, left: 10 + * positions left side of the overlay 10 pixels from the left edge of the + * image it's drawn over. bottom: 0 aligns bottom of the overlay with bottom + * of the background image. + * + * Setting both left & right, or both top & bottom is an error. + * + * If no position is specified, the image will be centered. + */ + top?: number; + left?: number; + bottom?: number; + right?: number; +} +interface RequestInitCfPropertiesImage extends BasicImageTransformations { + /** + * Device Pixel Ratio. Default 1. Multiplier for width/height that makes it + * easier to specify higher-DPI sizes in . + */ + dpr?: number; + /** + * Allows you to trim your image. Takes dpr into account and is performed before + * resizing or rotation. + * + * It can be used as: + * - left, top, right, bottom - it will specify the number of pixels to cut + * off each side + * - width, height - the width/height you'd like to end up with - can be used + * in combination with the properties above + * - border - this will automatically trim the surroundings of an image based on + * it's color. It consists of three properties: + * - color: rgb or hex representation of the color you wish to trim (todo: verify the rgba bit) + * - tolerance: difference from color to treat as color + * - keep: the number of pixels of border to keep + */ + trim?: "border" | { + top?: number; + bottom?: number; + left?: number; + right?: number; + width?: number; + height?: number; + border?: boolean | { + color?: string; + tolerance?: number; + keep?: number; + }; + }; + /** + * Quality setting from 1-100 (useful values are in 60-90 range). Lower values + * make images look worse, but load faster. The default is 85. It applies only + * to JPEG and WebP images. It doesn’t have any effect on PNG. + */ + quality?: number | "low" | "medium-low" | "medium-high" | "high"; + /** + * Output format to generate. It can be: + * - avif: generate images in AVIF format. + * - webp: generate images in Google WebP format. Set quality to 100 to get + * the WebP-lossless format. + * - json: instead of generating an image, outputs information about the + * image, in JSON format. The JSON object will contain image size + * (before and after resizing), source image’s MIME type, file size, etc. + * - jpeg: generate images in JPEG format. + * - png: generate images in PNG format. + */ + format?: "avif" | "webp" | "json" | "jpeg" | "png" | "baseline-jpeg" | "png-force" | "svg"; + /** + * Whether to preserve animation frames from input files. Default is true. + * Setting it to false reduces animations to still images. This setting is + * recommended when enlarging images or processing arbitrary user content, + * because large GIF animations can weigh tens or even hundreds of megabytes. + * It is also useful to set anim:false when using format:"json" to get the + * response quicker without the number of frames. + */ + anim?: boolean; + /** + * What EXIF data should be preserved in the output image. Note that EXIF + * rotation and embedded color profiles are always applied ("baked in" into + * the image), and aren't affected by this option. Note that if the Polish + * feature is enabled, all metadata may have been removed already and this + * option may have no effect. + * - keep: Preserve most of EXIF metadata, including GPS location if there's + * any. + * - copyright: Only keep the copyright tag, and discard everything else. + * This is the default behavior for JPEG files. + * - none: Discard all invisible EXIF metadata. Currently WebP and PNG + * output formats always discard metadata. + */ + metadata?: "keep" | "copyright" | "none"; + /** + * Strength of sharpening filter to apply to the image. Floating-point + * number between 0 (no sharpening, default) and 10 (maximum). 1.0 is a + * recommended value for downscaled images. + */ + sharpen?: number; + /** + * Radius of a blur filter (approximate gaussian). Maximum supported radius + * is 250. + */ + blur?: number; + /** + * Overlays are drawn in the order they appear in the array (last array + * entry is the topmost layer). + */ + draw?: RequestInitCfPropertiesImageDraw[]; + /** + * Fetching image from authenticated origin. Setting this property will + * pass authentication headers (Authorization, Cookie, etc.) through to + * the origin. + */ + "origin-auth"?: "share-publicly"; + /** + * Adds a border around the image. The border is added after resizing. Border + * width takes dpr into account, and can be specified either using a single + * width property, or individually for each side. + */ + border?: { + color: string; + width: number; + } | { + color: string; + top: number; + right: number; + bottom: number; + left: number; + }; + /** + * Increase brightness by a factor. A value of 1.0 equals no change, a value + * of 0.5 equals half brightness, and a value of 2.0 equals twice as bright. + * 0 is ignored. + */ + brightness?: number; + /** + * Increase contrast by a factor. A value of 1.0 equals no change, a value of + * 0.5 equals low contrast, and a value of 2.0 equals high contrast. 0 is + * ignored. + */ + contrast?: number; + /** + * Increase exposure by a factor. A value of 1.0 equals no change, a value of + * 0.5 darkens the image, and a value of 2.0 lightens the image. 0 is ignored. + */ + gamma?: number; + /** + * Increase contrast by a factor. A value of 1.0 equals no change, a value of + * 0.5 equals low contrast, and a value of 2.0 equals high contrast. 0 is + * ignored. + */ + saturation?: number; + /** + * Flips the images horizontally, vertically, or both. Flipping is applied before + * rotation, so if you apply flip=h,rotate=90 then the image will be flipped + * horizontally, then rotated by 90 degrees. + */ + flip?: 'h' | 'v' | 'hv'; + /** + * Slightly reduces latency on a cache miss by selecting a + * quickest-to-compress file format, at a cost of increased file size and + * lower image quality. It will usually override the format option and choose + * JPEG over WebP or AVIF. We do not recommend using this option, except in + * unusual circumstances like resizing uncacheable dynamically-generated + * images. + */ + compression?: "fast"; +} +interface RequestInitCfPropertiesImageMinify { + javascript?: boolean; + css?: boolean; + html?: boolean; +} +interface RequestInitCfPropertiesR2 { + /** + * Colo id of bucket that an object is stored in + */ + bucketColoId?: number; +} +/** + * Request metadata provided by Cloudflare's edge. + */ +type IncomingRequestCfProperties = IncomingRequestCfPropertiesBase & IncomingRequestCfPropertiesBotManagementEnterprise & IncomingRequestCfPropertiesCloudflareForSaaSEnterprise & IncomingRequestCfPropertiesGeographicInformation & IncomingRequestCfPropertiesCloudflareAccessOrApiShield; +interface IncomingRequestCfPropertiesBase extends Record { + /** + * [ASN](https://www.iana.org/assignments/as-numbers/as-numbers.xhtml) of the incoming request. + * + * @example 395747 + */ + asn: number; + /** + * The organization which owns the ASN of the incoming request. + * + * @example "Google Cloud" + */ + asOrganization: string; + /** + * The original value of the `Accept-Encoding` header if Cloudflare modified it. + * + * @example "gzip, deflate, br" + */ + clientAcceptEncoding?: string; + /** + * The number of milliseconds it took for the request to reach your worker. + * + * @example 22 + */ + clientTcpRtt?: number; + /** + * The three-letter [IATA](https://en.wikipedia.org/wiki/IATA_airport_code) + * airport code of the data center that the request hit. + * + * @example "DFW" + */ + colo: string; + /** + * Represents the upstream's response to a + * [TCP `keepalive` message](https://tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html) + * from cloudflare. + * + * For workers with no upstream, this will always be `1`. + * + * @example 3 + */ + edgeRequestKeepAliveStatus: IncomingRequestCfPropertiesEdgeRequestKeepAliveStatus; + /** + * The HTTP Protocol the request used. + * + * @example "HTTP/2" + */ + httpProtocol: string; + /** + * The browser-requested prioritization information in the request object. + * + * If no information was set, defaults to the empty string `""` + * + * @example "weight=192;exclusive=0;group=3;group-weight=127" + * @default "" + */ + requestPriority: string; + /** + * The TLS version of the connection to Cloudflare. + * In requests served over plaintext (without TLS), this property is the empty string `""`. + * + * @example "TLSv1.3" + */ + tlsVersion: string; + /** + * The cipher for the connection to Cloudflare. + * In requests served over plaintext (without TLS), this property is the empty string `""`. + * + * @example "AEAD-AES128-GCM-SHA256" + */ + tlsCipher: string; + /** + * Metadata containing the [`HELLO`](https://www.rfc-editor.org/rfc/rfc5246#section-7.4.1.2) and [`FINISHED`](https://www.rfc-editor.org/rfc/rfc5246#section-7.4.9) messages from this request's TLS handshake. + * + * If the incoming request was served over plaintext (without TLS) this field is undefined. + */ + tlsExportedAuthenticator?: IncomingRequestCfPropertiesExportedAuthenticatorMetadata; +} +interface IncomingRequestCfPropertiesBotManagementBase { + /** + * Cloudflare’s [level of certainty](https://developers.cloudflare.com/bots/concepts/bot-score/) that a request comes from a bot, + * represented as an integer percentage between `1` (almost certainly a bot) and `99` (almost certainly human). + * + * @example 54 + */ + score: number; + /** + * A boolean value that is true if the request comes from a good bot, like Google or Bing. + * Most customers choose to allow this traffic. For more details, see [Traffic from known bots](https://developers.cloudflare.com/firewall/known-issues-and-faq/#how-does-firewall-rules-handle-traffic-from-known-bots). + */ + verifiedBot: boolean; + /** + * A boolean value that is true if the request originates from a + * Cloudflare-verified proxy service. + */ + corporateProxy: boolean; + /** + * A boolean value that's true if the request matches [file extensions](https://developers.cloudflare.com/bots/reference/static-resources/) for many types of static resources. + */ + staticResource: boolean; + /** + * List of IDs that correlate to the Bot Management heuristic detections made on a request (you can have multiple heuristic detections on the same request). + */ + detectionIds: number[]; +} +interface IncomingRequestCfPropertiesBotManagement { + /** + * Results of Cloudflare's Bot Management analysis + */ + botManagement: IncomingRequestCfPropertiesBotManagementBase; + /** + * Duplicate of `botManagement.score`. + * + * @deprecated + */ + clientTrustScore: number; +} +interface IncomingRequestCfPropertiesBotManagementEnterprise extends IncomingRequestCfPropertiesBotManagement { + /** + * Results of Cloudflare's Bot Management analysis + */ + botManagement: IncomingRequestCfPropertiesBotManagementBase & { + /** + * A [JA3 Fingerprint](https://developers.cloudflare.com/bots/concepts/ja3-fingerprint/) to help profile specific SSL/TLS clients + * across different destination IPs, Ports, and X509 certificates. + */ + ja3Hash: string; + }; +} +interface IncomingRequestCfPropertiesCloudflareForSaaSEnterprise { + /** + * Custom metadata set per-host in [Cloudflare for SaaS](https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/). + * + * This field is only present if you have Cloudflare for SaaS enabled on your account + * and you have followed the [required steps to enable it]((https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/domain-support/custom-metadata/)). + */ + hostMetadata: HostMetadata; +} +interface IncomingRequestCfPropertiesCloudflareAccessOrApiShield { + /** + * Information about the client certificate presented to Cloudflare. + * + * This is populated when the incoming request is served over TLS using + * either Cloudflare Access or API Shield (mTLS) + * and the presented SSL certificate has a valid + * [Certificate Serial Number](https://ldapwiki.com/wiki/Certificate%20Serial%20Number) + * (i.e., not `null` or `""`). + * + * Otherwise, a set of placeholder values are used. + * + * The property `certPresented` will be set to `"1"` when + * the object is populated (i.e. the above conditions were met). + */ + tlsClientAuth: IncomingRequestCfPropertiesTLSClientAuth | IncomingRequestCfPropertiesTLSClientAuthPlaceholder; +} +/** + * Metadata about the request's TLS handshake + */ +interface IncomingRequestCfPropertiesExportedAuthenticatorMetadata { + /** + * The client's [`HELLO` message](https://www.rfc-editor.org/rfc/rfc5246#section-7.4.1.2), encoded in hexadecimal + * + * @example "44372ba35fa1270921d318f34c12f155dc87b682cf36a790cfaa3ba8737a1b5d" + */ + clientHandshake: string; + /** + * The server's [`HELLO` message](https://www.rfc-editor.org/rfc/rfc5246#section-7.4.1.2), encoded in hexadecimal + * + * @example "44372ba35fa1270921d318f34c12f155dc87b682cf36a790cfaa3ba8737a1b5d" + */ + serverHandshake: string; + /** + * The client's [`FINISHED` message](https://www.rfc-editor.org/rfc/rfc5246#section-7.4.9), encoded in hexadecimal + * + * @example "084ee802fe1348f688220e2a6040a05b2199a761f33cf753abb1b006792d3f8b" + */ + clientFinished: string; + /** + * The server's [`FINISHED` message](https://www.rfc-editor.org/rfc/rfc5246#section-7.4.9), encoded in hexadecimal + * + * @example "084ee802fe1348f688220e2a6040a05b2199a761f33cf753abb1b006792d3f8b" + */ + serverFinished: string; +} +/** + * Geographic data about the request's origin. + */ +interface IncomingRequestCfPropertiesGeographicInformation { + /** + * The [ISO 3166-1 Alpha 2](https://www.iso.org/iso-3166-country-codes.html) country code the request originated from. + * + * If your worker is [configured to accept TOR connections](https://support.cloudflare.com/hc/en-us/articles/203306930-Understanding-Cloudflare-Tor-support-and-Onion-Routing), this may also be `"T1"`, indicating a request that originated over TOR. + * + * If Cloudflare is unable to determine where the request originated this property is omitted. + * + * The country code `"T1"` is used for requests originating on TOR. + * + * @example "GB" + */ + country?: Iso3166Alpha2Code | "T1"; + /** + * If present, this property indicates that the request originated in the EU + * + * @example "1" + */ + isEUCountry?: "1"; + /** + * A two-letter code indicating the continent the request originated from. + * + * @example "AN" + */ + continent?: ContinentCode; + /** + * The city the request originated from + * + * @example "Austin" + */ + city?: string; + /** + * Postal code of the incoming request + * + * @example "78701" + */ + postalCode?: string; + /** + * Latitude of the incoming request + * + * @example "30.27130" + */ + latitude?: string; + /** + * Longitude of the incoming request + * + * @example "-97.74260" + */ + longitude?: string; + /** + * Timezone of the incoming request + * + * @example "America/Chicago" + */ + timezone?: string; + /** + * If known, the ISO 3166-2 name for the first level region associated with + * the IP address of the incoming request + * + * @example "Texas" + */ + region?: string; + /** + * If known, the ISO 3166-2 code for the first-level region associated with + * the IP address of the incoming request + * + * @example "TX" + */ + regionCode?: string; + /** + * Metro code (DMA) of the incoming request + * + * @example "635" + */ + metroCode?: string; +} +/** Data about the incoming request's TLS certificate */ +interface IncomingRequestCfPropertiesTLSClientAuth { + /** Always `"1"`, indicating that the certificate was presented */ + certPresented: "1"; + /** + * Result of certificate verification. + * + * @example "FAILED:self signed certificate" + */ + certVerified: Exclude; + /** The presented certificate's revokation status. + * + * - A value of `"1"` indicates the certificate has been revoked + * - A value of `"0"` indicates the certificate has not been revoked + */ + certRevoked: "1" | "0"; + /** + * The certificate issuer's [distinguished name](https://knowledge.digicert.com/generalinformation/INFO1745.html) + * + * @example "CN=cloudflareaccess.com, C=US, ST=Texas, L=Austin, O=Cloudflare" + */ + certIssuerDN: string; + /** + * The certificate subject's [distinguished name](https://knowledge.digicert.com/generalinformation/INFO1745.html) + * + * @example "CN=*.cloudflareaccess.com, C=US, ST=Texas, L=Austin, O=Cloudflare" + */ + certSubjectDN: string; + /** + * The certificate issuer's [distinguished name](https://knowledge.digicert.com/generalinformation/INFO1745.html) ([RFC 2253](https://www.rfc-editor.org/rfc/rfc2253.html) formatted) + * + * @example "CN=cloudflareaccess.com, C=US, ST=Texas, L=Austin, O=Cloudflare" + */ + certIssuerDNRFC2253: string; + /** + * The certificate subject's [distinguished name](https://knowledge.digicert.com/generalinformation/INFO1745.html) ([RFC 2253](https://www.rfc-editor.org/rfc/rfc2253.html) formatted) + * + * @example "CN=*.cloudflareaccess.com, C=US, ST=Texas, L=Austin, O=Cloudflare" + */ + certSubjectDNRFC2253: string; + /** The certificate issuer's distinguished name (legacy policies) */ + certIssuerDNLegacy: string; + /** The certificate subject's distinguished name (legacy policies) */ + certSubjectDNLegacy: string; + /** + * The certificate's serial number + * + * @example "00936EACBE07F201DF" + */ + certSerial: string; + /** + * The certificate issuer's serial number + * + * @example "2489002934BDFEA34" + */ + certIssuerSerial: string; + /** + * The certificate's Subject Key Identifier + * + * @example "BB:AF:7E:02:3D:FA:A6:F1:3C:84:8E:AD:EE:38:98:EC:D9:32:32:D4" + */ + certSKI: string; + /** + * The certificate issuer's Subject Key Identifier + * + * @example "BB:AF:7E:02:3D:FA:A6:F1:3C:84:8E:AD:EE:38:98:EC:D9:32:32:D4" + */ + certIssuerSKI: string; + /** + * The certificate's SHA-1 fingerprint + * + * @example "6b9109f323999e52259cda7373ff0b4d26bd232e" + */ + certFingerprintSHA1: string; + /** + * The certificate's SHA-256 fingerprint + * + * @example "acf77cf37b4156a2708e34c4eb755f9b5dbbe5ebb55adfec8f11493438d19e6ad3f157f81fa3b98278453d5652b0c1fd1d71e5695ae4d709803a4d3f39de9dea" + */ + certFingerprintSHA256: string; + /** + * The effective starting date of the certificate + * + * @example "Dec 22 19:39:00 2018 GMT" + */ + certNotBefore: string; + /** + * The effective expiration date of the certificate + * + * @example "Dec 22 19:39:00 2018 GMT" + */ + certNotAfter: string; +} +/** Placeholder values for TLS Client Authorization */ +interface IncomingRequestCfPropertiesTLSClientAuthPlaceholder { + certPresented: "0"; + certVerified: "NONE"; + certRevoked: "0"; + certIssuerDN: ""; + certSubjectDN: ""; + certIssuerDNRFC2253: ""; + certSubjectDNRFC2253: ""; + certIssuerDNLegacy: ""; + certSubjectDNLegacy: ""; + certSerial: ""; + certIssuerSerial: ""; + certSKI: ""; + certIssuerSKI: ""; + certFingerprintSHA1: ""; + certFingerprintSHA256: ""; + certNotBefore: ""; + certNotAfter: ""; +} +/** Possible outcomes of TLS verification */ +declare type CertVerificationStatus = +/** Authentication succeeded */ +"SUCCESS" +/** No certificate was presented */ + | "NONE" +/** Failed because the certificate was self-signed */ + | "FAILED:self signed certificate" +/** Failed because the certificate failed a trust chain check */ + | "FAILED:unable to verify the first certificate" +/** Failed because the certificate not yet valid */ + | "FAILED:certificate is not yet valid" +/** Failed because the certificate is expired */ + | "FAILED:certificate has expired" +/** Failed for another unspecified reason */ + | "FAILED"; +/** + * An upstream endpoint's response to a TCP `keepalive` message from Cloudflare. + */ +declare type IncomingRequestCfPropertiesEdgeRequestKeepAliveStatus = 0 /** Unknown */ | 1 /** no keepalives (not found) */ | 2 /** no connection re-use, opening keepalive connection failed */ | 3 /** no connection re-use, keepalive accepted and saved */ | 4 /** connection re-use, refused by the origin server (`TCP FIN`) */ | 5; /** connection re-use, accepted by the origin server */ +/** ISO 3166-1 Alpha-2 codes */ +declare type Iso3166Alpha2Code = "AD" | "AE" | "AF" | "AG" | "AI" | "AL" | "AM" | "AO" | "AQ" | "AR" | "AS" | "AT" | "AU" | "AW" | "AX" | "AZ" | "BA" | "BB" | "BD" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BL" | "BM" | "BN" | "BO" | "BQ" | "BR" | "BS" | "BT" | "BV" | "BW" | "BY" | "BZ" | "CA" | "CC" | "CD" | "CF" | "CG" | "CH" | "CI" | "CK" | "CL" | "CM" | "CN" | "CO" | "CR" | "CU" | "CV" | "CW" | "CX" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC" | "EE" | "EG" | "EH" | "ER" | "ES" | "ET" | "FI" | "FJ" | "FK" | "FM" | "FO" | "FR" | "GA" | "GB" | "GD" | "GE" | "GF" | "GG" | "GH" | "GI" | "GL" | "GM" | "GN" | "GP" | "GQ" | "GR" | "GS" | "GT" | "GU" | "GW" | "GY" | "HK" | "HM" | "HN" | "HR" | "HT" | "HU" | "ID" | "IE" | "IL" | "IM" | "IN" | "IO" | "IQ" | "IR" | "IS" | "IT" | "JE" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KP" | "KR" | "KW" | "KY" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MF" | "MG" | "MH" | "MK" | "ML" | "MM" | "MN" | "MO" | "MP" | "MQ" | "MR" | "MS" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NA" | "NC" | "NE" | "NF" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NU" | "NZ" | "OM" | "PA" | "PE" | "PF" | "PG" | "PH" | "PK" | "PL" | "PM" | "PN" | "PR" | "PS" | "PT" | "PW" | "PY" | "QA" | "RE" | "RO" | "RS" | "RU" | "RW" | "SA" | "SB" | "SC" | "SD" | "SE" | "SG" | "SH" | "SI" | "SJ" | "SK" | "SL" | "SM" | "SN" | "SO" | "SR" | "SS" | "ST" | "SV" | "SX" | "SY" | "SZ" | "TC" | "TD" | "TF" | "TG" | "TH" | "TJ" | "TK" | "TL" | "TM" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG" | "UM" | "US" | "UY" | "UZ" | "VA" | "VC" | "VE" | "VG" | "VI" | "VN" | "VU" | "WF" | "WS" | "YE" | "YT" | "ZA" | "ZM" | "ZW"; +/** The 2-letter continent codes Cloudflare uses */ +declare type ContinentCode = "AF" | "AN" | "AS" | "EU" | "NA" | "OC" | "SA"; +type CfProperties = IncomingRequestCfProperties | RequestInitCfProperties; +interface D1Meta { + duration: number; + size_after: number; + rows_read: number; + rows_written: number; + last_row_id: number; + changed_db: boolean; + changes: number; + /** + * The region of the database instance that executed the query. + */ + served_by_region?: string; + /** + * True if-and-only-if the database instance that executed the query was the primary. + */ + served_by_primary?: boolean; + timings?: { + /** + * The duration of the SQL query execution by the database instance. It doesn't include any network time. + */ + sql_duration_ms: number; + }; +} +interface D1Response { + success: true; + meta: D1Meta & Record; + error?: never; +} +type D1Result = D1Response & { + results: T[]; +}; +interface D1ExecResult { + count: number; + duration: number; +} +type D1SessionConstraint = +// Indicates that the first query should go to the primary, and the rest queries +// using the same D1DatabaseSession will go to any replica that is consistent with +// the bookmark maintained by the session (returned by the first query). +"first-primary" +// Indicates that the first query can go anywhere (primary or replica), and the rest queries +// using the same D1DatabaseSession will go to any replica that is consistent with +// the bookmark maintained by the session (returned by the first query). + | "first-unconstrained"; +type D1SessionBookmark = string; +declare abstract class D1Database { + prepare(query: string): D1PreparedStatement; + batch(statements: D1PreparedStatement[]): Promise[]>; + exec(query: string): Promise; + /** + * Creates a new D1 Session anchored at the given constraint or the bookmark. + * All queries executed using the created session will have sequential consistency, + * meaning that all writes done through the session will be visible in subsequent reads. + * + * @param constraintOrBookmark Either the session constraint or the explicit bookmark to anchor the created session. + */ + withSession(constraintOrBookmark?: D1SessionBookmark | D1SessionConstraint): D1DatabaseSession; + /** + * @deprecated dump() will be removed soon, only applies to deprecated alpha v1 databases. + */ + dump(): Promise; +} +declare abstract class D1DatabaseSession { + prepare(query: string): D1PreparedStatement; + batch(statements: D1PreparedStatement[]): Promise[]>; + /** + * @returns The latest session bookmark across all executed queries on the session. + * If no query has been executed yet, `null` is returned. + */ + getBookmark(): D1SessionBookmark | null; +} +declare abstract class D1PreparedStatement { + bind(...values: unknown[]): D1PreparedStatement; + first(colName: string): Promise; + first>(): Promise; + run>(): Promise>; + all>(): Promise>; + raw(options: { + columnNames: true; + }): Promise<[ + string[], + ...T[] + ]>; + raw(options?: { + columnNames?: false; + }): Promise; +} +// `Disposable` was added to TypeScript's standard lib types in version 5.2. +// To support older TypeScript versions, define an empty `Disposable` interface. +// Users won't be able to use `using`/`Symbol.dispose` without upgrading to 5.2, +// but this will ensure type checking on older versions still passes. +// TypeScript's interface merging will ensure our empty interface is effectively +// ignored when `Disposable` is included in the standard lib. +interface Disposable { +} +/** + * An email message that can be sent from a Worker. + */ +interface EmailMessage { + /** + * Envelope From attribute of the email message. + */ + readonly from: string; + /** + * Envelope To attribute of the email message. + */ + readonly to: string; +} +/** + * An email message that is sent to a consumer Worker and can be rejected/forwarded. + */ +interface ForwardableEmailMessage extends EmailMessage { + /** + * Stream of the email message content. + */ + readonly raw: ReadableStream; + /** + * An [Headers object](https://developer.mozilla.org/en-US/docs/Web/API/Headers). + */ + readonly headers: Headers; + /** + * Size of the email message content. + */ + readonly rawSize: number; + /** + * Reject this email message by returning a permanent SMTP error back to the connecting client including the given reason. + * @param reason The reject reason. + * @returns void + */ + setReject(reason: string): void; + /** + * Forward this email message to a verified destination address of the account. + * @param rcptTo Verified destination address. + * @param headers A [Headers object](https://developer.mozilla.org/en-US/docs/Web/API/Headers). + * @returns A promise that resolves when the email message is forwarded. + */ + forward(rcptTo: string, headers?: Headers): Promise; + /** + * Reply to the sender of this email message with a new EmailMessage object. + * @param message The reply message. + * @returns A promise that resolves when the email message is replied. + */ + reply(message: EmailMessage): Promise; +} +/** + * A binding that allows a Worker to send email messages. + */ +interface SendEmail { + send(message: EmailMessage): Promise; +} +declare abstract class EmailEvent extends ExtendableEvent { + readonly message: ForwardableEmailMessage; +} +declare type EmailExportedHandler = (message: ForwardableEmailMessage, env: Env, ctx: ExecutionContext) => void | Promise; +declare module "cloudflare:email" { + let _EmailMessage: { + prototype: EmailMessage; + new (from: string, to: string, raw: ReadableStream | string): EmailMessage; + }; + export { _EmailMessage as EmailMessage }; +} +/** + * Hello World binding to serve as an explanatory example. DO NOT USE + */ +interface HelloWorldBinding { + /** + * Retrieve the current stored value + */ + get(): Promise<{ + value: string; + ms?: number; + }>; + /** + * Set a new stored value + */ + set(value: string): Promise; +} +interface Hyperdrive { + /** + * Connect directly to Hyperdrive as if it's your database, returning a TCP socket. + * + * Calling this method returns an idential socket to if you call + * `connect("host:port")` using the `host` and `port` fields from this object. + * Pick whichever approach works better with your preferred DB client library. + * + * Note that this socket is not yet authenticated -- it's expected that your + * code (or preferably, the client library of your choice) will authenticate + * using the information in this class's readonly fields. + */ + connect(): Socket; + /** + * A valid DB connection string that can be passed straight into the typical + * client library/driver/ORM. This will typically be the easiest way to use + * Hyperdrive. + */ + readonly connectionString: string; + /* + * A randomly generated hostname that is only valid within the context of the + * currently running Worker which, when passed into `connect()` function from + * the "cloudflare:sockets" module, will connect to the Hyperdrive instance + * for your database. + */ + readonly host: string; + /* + * The port that must be paired the the host field when connecting. + */ + readonly port: number; + /* + * The username to use when authenticating to your database via Hyperdrive. + * Unlike the host and password, this will be the same every time + */ + readonly user: string; + /* + * The randomly generated password to use when authenticating to your + * database via Hyperdrive. Like the host field, this password is only valid + * within the context of the currently running Worker instance from which + * it's read. + */ + readonly password: string; + /* + * The name of the database to connect to. + */ + readonly database: string; +} +// Copyright (c) 2024 Cloudflare, Inc. +// Licensed under the Apache 2.0 license found in the LICENSE file or at: +// https://opensource.org/licenses/Apache-2.0 +type ImageInfoResponse = { + format: 'image/svg+xml'; +} | { + format: string; + fileSize: number; + width: number; + height: number; +}; +type ImageTransform = { + width?: number; + height?: number; + background?: string; + blur?: number; + border?: { + color?: string; + width?: number; + } | { + top?: number; + bottom?: number; + left?: number; + right?: number; + }; + brightness?: number; + contrast?: number; + fit?: 'scale-down' | 'contain' | 'pad' | 'squeeze' | 'cover' | 'crop'; + flip?: 'h' | 'v' | 'hv'; + gamma?: number; + gravity?: 'left' | 'right' | 'top' | 'bottom' | 'center' | 'auto' | 'entropy' | { + x?: number; + y?: number; + mode: 'remainder' | 'box-center'; + }; + rotate?: 0 | 90 | 180 | 270; + saturation?: number; + sharpen?: number; + trim?: "border" | { + top?: number; + bottom?: number; + left?: number; + right?: number; + width?: number; + height?: number; + border?: boolean | { + color?: string; + tolerance?: number; + keep?: number; + }; + }; +}; +type ImageDrawOptions = { + opacity?: number; + repeat?: boolean | string; + top?: number; + left?: number; + bottom?: number; + right?: number; +}; +type ImageOutputOptions = { + format: 'image/jpeg' | 'image/png' | 'image/gif' | 'image/webp' | 'image/avif' | 'rgb' | 'rgba'; + quality?: number; + background?: string; +}; +interface ImagesBinding { + /** + * Get image metadata (type, width and height) + * @throws {@link ImagesError} with code 9412 if input is not an image + * @param stream The image bytes + */ + info(stream: ReadableStream): Promise; + /** + * Begin applying a series of transformations to an image + * @param stream The image bytes + * @returns A transform handle + */ + input(stream: ReadableStream): ImageTransformer; +} +interface ImageTransformer { + /** + * Apply transform next, returning a transform handle. + * You can then apply more transformations, draw, or retrieve the output. + * @param transform + */ + transform(transform: ImageTransform): ImageTransformer; + /** + * Draw an image on this transformer, returning a transform handle. + * You can then apply more transformations, draw, or retrieve the output. + * @param image The image (or transformer that will give the image) to draw + * @param options The options configuring how to draw the image + */ + draw(image: ReadableStream | ImageTransformer, options?: ImageDrawOptions): ImageTransformer; + /** + * Retrieve the image that results from applying the transforms to the + * provided input + * @param options Options that apply to the output e.g. output format + */ + output(options: ImageOutputOptions): Promise; +} +interface ImageTransformationResult { + /** + * The image as a response, ready to store in cache or return to users + */ + response(): Response; + /** + * The content type of the returned image + */ + contentType(): string; + /** + * The bytes of the response + */ + image(): ReadableStream; +} +interface ImagesError extends Error { + readonly code: number; + readonly message: string; + readonly stack?: string; +} +type Params

= Record; +type EventContext = { + request: Request>; + functionPath: string; + waitUntil: (promise: Promise) => void; + passThroughOnException: () => void; + next: (input?: Request | string, init?: RequestInit) => Promise; + env: Env & { + ASSETS: { + fetch: typeof fetch; + }; + }; + params: Params

; + data: Data; +}; +type PagesFunction = Record> = (context: EventContext) => Response | Promise; +type EventPluginContext = { + request: Request>; + functionPath: string; + waitUntil: (promise: Promise) => void; + passThroughOnException: () => void; + next: (input?: Request | string, init?: RequestInit) => Promise; + env: Env & { + ASSETS: { + fetch: typeof fetch; + }; + }; + params: Params

; + data: Data; + pluginArgs: PluginArgs; +}; +type PagesPluginFunction = Record, PluginArgs = unknown> = (context: EventPluginContext) => Response | Promise; +declare module "assets:*" { + export const onRequest: PagesFunction; +} +// Copyright (c) 2022-2023 Cloudflare, Inc. +// Licensed under the Apache 2.0 license found in the LICENSE file or at: +// https://opensource.org/licenses/Apache-2.0 +declare module "cloudflare:pipelines" { + export abstract class PipelineTransformationEntrypoint { + protected env: Env; + protected ctx: ExecutionContext; + constructor(ctx: ExecutionContext, env: Env); + /** + * run recieves an array of PipelineRecord which can be + * transformed and returned to the pipeline + * @param records Incoming records from the pipeline to be transformed + * @param metadata Information about the specific pipeline calling the transformation entrypoint + * @returns A promise containing the transformed PipelineRecord array + */ + public run(records: I[], metadata: PipelineBatchMetadata): Promise; + } + export type PipelineRecord = Record; + export type PipelineBatchMetadata = { + pipelineId: string; + pipelineName: string; + }; + export interface Pipeline { + /** + * The Pipeline interface represents the type of a binding to a Pipeline + * + * @param records The records to send to the pipeline + */ + send(records: T[]): Promise; + } +} +// PubSubMessage represents an incoming PubSub message. +// The message includes metadata about the broker, the client, and the payload +// itself. +// https://developers.cloudflare.com/pub-sub/ +interface PubSubMessage { + // Message ID + readonly mid: number; + // MQTT broker FQDN in the form mqtts://BROKER.NAMESPACE.cloudflarepubsub.com:PORT + readonly broker: string; + // The MQTT topic the message was sent on. + readonly topic: string; + // The client ID of the client that published this message. + readonly clientId: string; + // The unique identifier (JWT ID) used by the client to authenticate, if token + // auth was used. + readonly jti?: string; + // A Unix timestamp (seconds from Jan 1, 1970), set when the Pub/Sub Broker + // received the message from the client. + readonly receivedAt: number; + // An (optional) string with the MIME type of the payload, if set by the + // client. + readonly contentType: string; + // Set to 1 when the payload is a UTF-8 string + // https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901063 + readonly payloadFormatIndicator: number; + // Pub/Sub (MQTT) payloads can be UTF-8 strings, or byte arrays. + // You can use payloadFormatIndicator to inspect this before decoding. + payload: string | Uint8Array; +} +// JsonWebKey extended by kid parameter +interface JsonWebKeyWithKid extends JsonWebKey { + // Key Identifier of the JWK + readonly kid: string; +} +interface RateLimitOptions { + key: string; +} +interface RateLimitOutcome { + success: boolean; +} +interface RateLimit { + /** + * Rate limit a request based on the provided options. + * @see https://developers.cloudflare.com/workers/runtime-apis/bindings/rate-limit/ + * @returns A promise that resolves with the outcome of the rate limit. + */ + limit(options: RateLimitOptions): Promise; +} +// Namespace for RPC utility types. Unfortunately, we can't use a `module` here as these types need +// to referenced by `Fetcher`. This is included in the "importable" version of the types which +// strips all `module` blocks. +declare namespace Rpc { + // Branded types for identifying `WorkerEntrypoint`/`DurableObject`/`Target`s. + // TypeScript uses *structural* typing meaning anything with the same shape as type `T` is a `T`. + // For the classes exported by `cloudflare:workers` we want *nominal* typing (i.e. we only want to + // accept `WorkerEntrypoint` from `cloudflare:workers`, not any other class with the same shape) + export const __RPC_STUB_BRAND: '__RPC_STUB_BRAND'; + export const __RPC_TARGET_BRAND: '__RPC_TARGET_BRAND'; + export const __WORKER_ENTRYPOINT_BRAND: '__WORKER_ENTRYPOINT_BRAND'; + export const __DURABLE_OBJECT_BRAND: '__DURABLE_OBJECT_BRAND'; + export const __WORKFLOW_ENTRYPOINT_BRAND: '__WORKFLOW_ENTRYPOINT_BRAND'; + export interface RpcTargetBranded { + [__RPC_TARGET_BRAND]: never; + } + export interface WorkerEntrypointBranded { + [__WORKER_ENTRYPOINT_BRAND]: never; + } + export interface DurableObjectBranded { + [__DURABLE_OBJECT_BRAND]: never; + } + export interface WorkflowEntrypointBranded { + [__WORKFLOW_ENTRYPOINT_BRAND]: never; + } + export type EntrypointBranded = WorkerEntrypointBranded | DurableObjectBranded | WorkflowEntrypointBranded; + // Types that can be used through `Stub`s + export type Stubable = RpcTargetBranded | ((...args: any[]) => any); + // Types that can be passed over RPC + // The reason for using a generic type here is to build a serializable subset of structured + // cloneable composite types. This allows types defined with the "interface" keyword to pass the + // serializable check as well. Otherwise, only types defined with the "type" keyword would pass. + type Serializable = + // Structured cloneables + BaseType + // Structured cloneable composites + | Map ? Serializable : never, T extends Map ? Serializable : never> | Set ? Serializable : never> | ReadonlyArray ? Serializable : never> | { + [K in keyof T]: K extends number | string ? Serializable : never; + } + // Special types + | Stub + // Serialized as stubs, see `Stubify` + | Stubable; + // Base type for all RPC stubs, including common memory management methods. + // `T` is used as a marker type for unwrapping `Stub`s later. + interface StubBase extends Disposable { + [__RPC_STUB_BRAND]: T; + dup(): this; + } + export type Stub = Provider & StubBase; + // This represents all the types that can be sent as-is over an RPC boundary + type BaseType = void | undefined | null | boolean | number | bigint | string | TypedArray | ArrayBuffer | DataView | Date | Error | RegExp | ReadableStream | WritableStream | Request | Response | Headers; + // Recursively rewrite all `Stubable` types with `Stub`s + // prettier-ignore + type Stubify = T extends Stubable ? Stub : T extends Map ? Map, Stubify> : T extends Set ? Set> : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends BaseType ? T : T extends { + [key: string | number]: any; + } ? { + [K in keyof T]: Stubify; + } : T; + // Recursively rewrite all `Stub`s with the corresponding `T`s. + // Note we use `StubBase` instead of `Stub` here to avoid circular dependencies: + // `Stub` depends on `Provider`, which depends on `Unstubify`, which would depend on `Stub`. + // prettier-ignore + type Unstubify = T extends StubBase ? V : T extends Map ? Map, Unstubify> : T extends Set ? Set> : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends BaseType ? T : T extends { + [key: string | number]: unknown; + } ? { + [K in keyof T]: Unstubify; + } : T; + type UnstubifyAll = { + [I in keyof A]: Unstubify; + }; + // Utility type for adding `Provider`/`Disposable`s to `object` types only. + // Note `unknown & T` is equivalent to `T`. + type MaybeProvider = T extends object ? Provider : unknown; + type MaybeDisposable = T extends object ? Disposable : unknown; + // Type for method return or property on an RPC interface. + // - Stubable types are replaced by stubs. + // - Serializable types are passed by value, with stubable types replaced by stubs + // and a top-level `Disposer`. + // Everything else can't be passed over PRC. + // Technically, we use custom thenables here, but they quack like `Promise`s. + // Intersecting with `(Maybe)Provider` allows pipelining. + // prettier-ignore + type Result = R extends Stubable ? Promise> & Provider : R extends Serializable ? Promise & MaybeDisposable> & MaybeProvider : never; + // Type for method or property on an RPC interface. + // For methods, unwrap `Stub`s in parameters, and rewrite returns to be `Result`s. + // Unwrapping `Stub`s allows calling with `Stubable` arguments. + // For properties, rewrite types to be `Result`s. + // In each case, unwrap `Promise`s. + type MethodOrProperty = V extends (...args: infer P) => infer R ? (...args: UnstubifyAll

) => Result> : Result>; + // Type for the callable part of an `Provider` if `T` is callable. + // This is intersected with methods/properties. + type MaybeCallableProvider = T extends (...args: any[]) => any ? MethodOrProperty : unknown; + // Base type for all other types providing RPC-like interfaces. + // Rewrites all methods/properties to be `MethodOrProperty`s, while preserving callable types. + // `Reserved` names (e.g. stub method names like `dup()`) and symbols can't be accessed over RPC. + export type Provider = MaybeCallableProvider & { + [K in Exclude>]: MethodOrProperty; + }; +} +declare namespace Cloudflare { + interface Env { + } +} +declare module 'cloudflare:workers' { + export type RpcStub = Rpc.Stub; + export const RpcStub: { + new (value: T): Rpc.Stub; + }; + export abstract class RpcTarget implements Rpc.RpcTargetBranded { + [Rpc.__RPC_TARGET_BRAND]: never; + } + // `protected` fields don't appear in `keyof`s, so can't be accessed over RPC + export abstract class WorkerEntrypoint implements Rpc.WorkerEntrypointBranded { + [Rpc.__WORKER_ENTRYPOINT_BRAND]: never; + protected ctx: ExecutionContext; + protected env: Env; + constructor(ctx: ExecutionContext, env: Env); + fetch?(request: Request): Response | Promise; + tail?(events: TraceItem[]): void | Promise; + trace?(traces: TraceItem[]): void | Promise; + scheduled?(controller: ScheduledController): void | Promise; + queue?(batch: MessageBatch): void | Promise; + test?(controller: TestController): void | Promise; + } + export abstract class DurableObject implements Rpc.DurableObjectBranded { + [Rpc.__DURABLE_OBJECT_BRAND]: never; + protected ctx: DurableObjectState; + protected env: Env; + constructor(ctx: DurableObjectState, env: Env); + fetch?(request: Request): Response | Promise; + alarm?(alarmInfo?: AlarmInvocationInfo): void | Promise; + webSocketMessage?(ws: WebSocket, message: string | ArrayBuffer): void | Promise; + webSocketClose?(ws: WebSocket, code: number, reason: string, wasClean: boolean): void | Promise; + webSocketError?(ws: WebSocket, error: unknown): void | Promise; + } + export type WorkflowDurationLabel = 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year'; + export type WorkflowSleepDuration = `${number} ${WorkflowDurationLabel}${'s' | ''}` | number; + export type WorkflowDelayDuration = WorkflowSleepDuration; + export type WorkflowTimeoutDuration = WorkflowSleepDuration; + export type WorkflowRetentionDuration = WorkflowSleepDuration; + export type WorkflowBackoff = 'constant' | 'linear' | 'exponential'; + export type WorkflowStepConfig = { + retries?: { + limit: number; + delay: WorkflowDelayDuration | number; + backoff?: WorkflowBackoff; + }; + timeout?: WorkflowTimeoutDuration | number; + }; + export type WorkflowEvent = { + payload: Readonly; + timestamp: Date; + instanceId: string; + }; + export type WorkflowStepEvent = { + payload: Readonly; + timestamp: Date; + type: string; + }; + export abstract class WorkflowStep { + do>(name: string, callback: () => Promise): Promise; + do>(name: string, config: WorkflowStepConfig, callback: () => Promise): Promise; + sleep: (name: string, duration: WorkflowSleepDuration) => Promise; + sleepUntil: (name: string, timestamp: Date | number) => Promise; + waitForEvent>(name: string, options: { + type: string; + timeout?: WorkflowTimeoutDuration | number; + }): Promise>; + } + export abstract class WorkflowEntrypoint | unknown = unknown> implements Rpc.WorkflowEntrypointBranded { + [Rpc.__WORKFLOW_ENTRYPOINT_BRAND]: never; + protected ctx: ExecutionContext; + protected env: Env; + constructor(ctx: ExecutionContext, env: Env); + run(event: Readonly>, step: WorkflowStep): Promise; + } + export const env: Cloudflare.Env; +} +interface SecretsStoreSecret { + /** + * Get a secret from the Secrets Store, returning a string of the secret value + * if it exists, or throws an error if it does not exist + */ + get(): Promise; +} +declare module "cloudflare:sockets" { + function _connect(address: string | SocketAddress, options?: SocketOptions): Socket; + export { _connect as connect }; +} +declare namespace TailStream { + interface Header { + readonly name: string; + readonly value: string; + } + interface FetchEventInfo { + readonly type: "fetch"; + readonly method: string; + readonly url: string; + readonly cfJson: string; + readonly headers: Header[]; + } + interface JsRpcEventInfo { + readonly type: "jsrpc"; + readonly methodName: string; + } + interface ScheduledEventInfo { + readonly type: "scheduled"; + readonly scheduledTime: Date; + readonly cron: string; + } + interface AlarmEventInfo { + readonly type: "alarm"; + readonly scheduledTime: Date; + } + interface QueueEventInfo { + readonly type: "queue"; + readonly queueName: string; + readonly batchSize: number; + } + interface EmailEventInfo { + readonly type: "email"; + readonly mailFrom: string; + readonly rcptTo: string; + readonly rawSize: number; + } + interface TraceEventInfo { + readonly type: "trace"; + readonly traces: (string | null)[]; + } + interface HibernatableWebSocketEventInfoMessage { + readonly type: "message"; + } + interface HibernatableWebSocketEventInfoError { + readonly type: "error"; + } + interface HibernatableWebSocketEventInfoClose { + readonly type: "close"; + readonly code: number; + readonly wasClean: boolean; + } + interface HibernatableWebSocketEventInfo { + readonly type: "hibernatableWebSocket"; + readonly info: HibernatableWebSocketEventInfoClose | HibernatableWebSocketEventInfoError | HibernatableWebSocketEventInfoMessage; + } + interface Resume { + readonly type: "resume"; + readonly attachment?: any; + } + interface CustomEventInfo { + readonly type: "custom"; + } + interface FetchResponseInfo { + readonly type: "fetch"; + readonly statusCode: number; + } + type EventOutcome = "ok" | "canceled" | "exception" | "unknown" | "killSwitch" | "daemonDown" | "exceededCpu" | "exceededMemory" | "loadShed" | "responseStreamDisconnected" | "scriptNotFound"; + interface ScriptVersion { + readonly id: string; + readonly tag?: string; + readonly message?: string; + } + interface Trigger { + readonly traceId: string; + readonly invocationId: string; + readonly spanId: string; + } + interface Onset { + readonly type: "onset"; + readonly dispatchNamespace?: string; + readonly entrypoint?: string; + readonly executionModel: string; + readonly scriptName?: string; + readonly scriptTags?: string[]; + readonly scriptVersion?: ScriptVersion; + readonly trigger?: Trigger; + readonly info: FetchEventInfo | JsRpcEventInfo | ScheduledEventInfo | AlarmEventInfo | QueueEventInfo | EmailEventInfo | TraceEventInfo | HibernatableWebSocketEventInfo | Resume | CustomEventInfo; + } + interface Outcome { + readonly type: "outcome"; + readonly outcome: EventOutcome; + readonly cpuTime: number; + readonly wallTime: number; + } + interface Hibernate { + readonly type: "hibernate"; + } + interface SpanOpen { + readonly type: "spanOpen"; + readonly name: string; + readonly info?: FetchEventInfo | JsRpcEventInfo | Attributes; + } + interface SpanClose { + readonly type: "spanClose"; + readonly outcome: EventOutcome; + } + interface DiagnosticChannelEvent { + readonly type: "diagnosticChannel"; + readonly channel: string; + readonly message: any; + } + interface Exception { + readonly type: "exception"; + readonly name: string; + readonly message: string; + readonly stack?: string; + } + interface Log { + readonly type: "log"; + readonly level: "debug" | "error" | "info" | "log" | "warn"; + readonly message: string; + } + interface Return { + readonly type: "return"; + readonly info?: FetchResponseInfo; + } + interface Link { + readonly type: "link"; + readonly label?: string; + readonly traceId: string; + readonly invocationId: string; + readonly spanId: string; + } + interface Attribute { + readonly name: string; + readonly value: string | string[] | boolean | boolean[] | number | number[] | bigint | bigint[]; + } + interface Attributes { + readonly type: "attributes"; + readonly info: Attribute[]; + } + type EventType = Onset | Outcome | Hibernate | SpanOpen | SpanClose | DiagnosticChannelEvent | Exception | Log | Return | Link | Attributes; + interface TailEvent { + readonly invocationId: string; + readonly spanId: string; + readonly timestamp: Date; + readonly sequence: number; + readonly event: Event; + } + type TailEventHandler = (event: TailEvent) => void | Promise; + type TailEventHandlerObject = { + outcome?: TailEventHandler; + hibernate?: TailEventHandler; + spanOpen?: TailEventHandler; + spanClose?: TailEventHandler; + diagnosticChannel?: TailEventHandler; + exception?: TailEventHandler; + log?: TailEventHandler; + return?: TailEventHandler; + link?: TailEventHandler; + attributes?: TailEventHandler; + }; + type TailEventHandlerType = TailEventHandler | TailEventHandlerObject; +} +// Copyright (c) 2022-2023 Cloudflare, Inc. +// Licensed under the Apache 2.0 license found in the LICENSE file or at: +// https://opensource.org/licenses/Apache-2.0 +/** + * Data types supported for holding vector metadata. + */ +type VectorizeVectorMetadataValue = string | number | boolean | string[]; +/** + * Additional information to associate with a vector. + */ +type VectorizeVectorMetadata = VectorizeVectorMetadataValue | Record; +type VectorFloatArray = Float32Array | Float64Array; +interface VectorizeError { + code?: number; + error: string; +} +/** + * Comparison logic/operation to use for metadata filtering. + * + * This list is expected to grow as support for more operations are released. + */ +type VectorizeVectorMetadataFilterOp = "$eq" | "$ne"; +/** + * Filter criteria for vector metadata used to limit the retrieved query result set. + */ +type VectorizeVectorMetadataFilter = { + [field: string]: Exclude | null | { + [Op in VectorizeVectorMetadataFilterOp]?: Exclude | null; + }; +}; +/** + * Supported distance metrics for an index. + * Distance metrics determine how other "similar" vectors are determined. + */ +type VectorizeDistanceMetric = "euclidean" | "cosine" | "dot-product"; +/** + * Metadata return levels for a Vectorize query. + * + * Default to "none". + * + * @property all Full metadata for the vector return set, including all fields (including those un-indexed) without truncation. This is a more expensive retrieval, as it requires additional fetching & reading of un-indexed data. + * @property indexed Return all metadata fields configured for indexing in the vector return set. This level of retrieval is "free" in that no additional overhead is incurred returning this data. However, note that indexed metadata is subject to truncation (especially for larger strings). + * @property none No indexed metadata will be returned. + */ +type VectorizeMetadataRetrievalLevel = "all" | "indexed" | "none"; +interface VectorizeQueryOptions { + topK?: number; + namespace?: string; + returnValues?: boolean; + returnMetadata?: boolean | VectorizeMetadataRetrievalLevel; + filter?: VectorizeVectorMetadataFilter; +} +/** + * Information about the configuration of an index. + */ +type VectorizeIndexConfig = { + dimensions: number; + metric: VectorizeDistanceMetric; +} | { + preset: string; // keep this generic, as we'll be adding more presets in the future and this is only in a read capacity +}; +/** + * Metadata about an existing index. + * + * This type is exclusively for the Vectorize **beta** and will be deprecated once Vectorize RC is released. + * See {@link VectorizeIndexInfo} for its post-beta equivalent. + */ +interface VectorizeIndexDetails { + /** The unique ID of the index */ + readonly id: string; + /** The name of the index. */ + name: string; + /** (optional) A human readable description for the index. */ + description?: string; + /** The index configuration, including the dimension size and distance metric. */ + config: VectorizeIndexConfig; + /** The number of records containing vectors within the index. */ + vectorsCount: number; +} +/** + * Metadata about an existing index. + */ +interface VectorizeIndexInfo { + /** The number of records containing vectors within the index. */ + vectorCount: number; + /** Number of dimensions the index has been configured for. */ + dimensions: number; + /** ISO 8601 datetime of the last processed mutation on in the index. All changes before this mutation will be reflected in the index state. */ + processedUpToDatetime: number; + /** UUIDv4 of the last mutation processed by the index. All changes before this mutation will be reflected in the index state. */ + processedUpToMutation: number; +} +/** + * Represents a single vector value set along with its associated metadata. + */ +interface VectorizeVector { + /** The ID for the vector. This can be user-defined, and must be unique. It should uniquely identify the object, and is best set based on the ID of what the vector represents. */ + id: string; + /** The vector values */ + values: VectorFloatArray | number[]; + /** The namespace this vector belongs to. */ + namespace?: string; + /** Metadata associated with the vector. Includes the values of other fields and potentially additional details. */ + metadata?: Record; +} +/** + * Represents a matched vector for a query along with its score and (if specified) the matching vector information. + */ +type VectorizeMatch = Pick, "values"> & Omit & { + /** The score or rank for similarity, when returned as a result */ + score: number; +}; +/** + * A set of matching {@link VectorizeMatch} for a particular query. + */ +interface VectorizeMatches { + matches: VectorizeMatch[]; + count: number; +} +/** + * Results of an operation that performed a mutation on a set of vectors. + * Here, `ids` is a list of vectors that were successfully processed. + * + * This type is exclusively for the Vectorize **beta** and will be deprecated once Vectorize RC is released. + * See {@link VectorizeAsyncMutation} for its post-beta equivalent. + */ +interface VectorizeVectorMutation { + /* List of ids of vectors that were successfully processed. */ + ids: string[]; + /* Total count of the number of processed vectors. */ + count: number; +} +/** + * Result type indicating a mutation on the Vectorize Index. + * Actual mutations are processed async where the `mutationId` is the unique identifier for the operation. + */ +interface VectorizeAsyncMutation { + /** The unique identifier for the async mutation operation containing the changeset. */ + mutationId: string; +} +/** + * A Vectorize Vector Search Index for querying vectors/embeddings. + * + * This type is exclusively for the Vectorize **beta** and will be deprecated once Vectorize RC is released. + * See {@link Vectorize} for its new implementation. + */ +declare abstract class VectorizeIndex { + /** + * Get information about the currently bound index. + * @returns A promise that resolves with information about the current index. + */ + public describe(): Promise; + /** + * Use the provided vector to perform a similarity search across the index. + * @param vector Input vector that will be used to drive the similarity search. + * @param options Configuration options to massage the returned data. + * @returns A promise that resolves with matched and scored vectors. + */ + public query(vector: VectorFloatArray | number[], options?: VectorizeQueryOptions): Promise; + /** + * Insert a list of vectors into the index dataset. If a provided id exists, an error will be thrown. + * @param vectors List of vectors that will be inserted. + * @returns A promise that resolves with the ids & count of records that were successfully processed. + */ + public insert(vectors: VectorizeVector[]): Promise; + /** + * Upsert a list of vectors into the index dataset. If a provided id exists, it will be replaced with the new values. + * @param vectors List of vectors that will be upserted. + * @returns A promise that resolves with the ids & count of records that were successfully processed. + */ + public upsert(vectors: VectorizeVector[]): Promise; + /** + * Delete a list of vectors with a matching id. + * @param ids List of vector ids that should be deleted. + * @returns A promise that resolves with the ids & count of records that were successfully processed (and thus deleted). + */ + public deleteByIds(ids: string[]): Promise; + /** + * Get a list of vectors with a matching id. + * @param ids List of vector ids that should be returned. + * @returns A promise that resolves with the raw unscored vectors matching the id set. + */ + public getByIds(ids: string[]): Promise; +} +/** + * A Vectorize Vector Search Index for querying vectors/embeddings. + * + * Mutations in this version are async, returning a mutation id. + */ +declare abstract class Vectorize { + /** + * Get information about the currently bound index. + * @returns A promise that resolves with information about the current index. + */ + public describe(): Promise; + /** + * Use the provided vector to perform a similarity search across the index. + * @param vector Input vector that will be used to drive the similarity search. + * @param options Configuration options to massage the returned data. + * @returns A promise that resolves with matched and scored vectors. + */ + public query(vector: VectorFloatArray | number[], options?: VectorizeQueryOptions): Promise; + /** + * Use the provided vector-id to perform a similarity search across the index. + * @param vectorId Id for a vector in the index against which the index should be queried. + * @param options Configuration options to massage the returned data. + * @returns A promise that resolves with matched and scored vectors. + */ + public queryById(vectorId: string, options?: VectorizeQueryOptions): Promise; + /** + * Insert a list of vectors into the index dataset. If a provided id exists, an error will be thrown. + * @param vectors List of vectors that will be inserted. + * @returns A promise that resolves with a unique identifier of a mutation containing the insert changeset. + */ + public insert(vectors: VectorizeVector[]): Promise; + /** + * Upsert a list of vectors into the index dataset. If a provided id exists, it will be replaced with the new values. + * @param vectors List of vectors that will be upserted. + * @returns A promise that resolves with a unique identifier of a mutation containing the upsert changeset. + */ + public upsert(vectors: VectorizeVector[]): Promise; + /** + * Delete a list of vectors with a matching id. + * @param ids List of vector ids that should be deleted. + * @returns A promise that resolves with a unique identifier of a mutation containing the delete changeset. + */ + public deleteByIds(ids: string[]): Promise; + /** + * Get a list of vectors with a matching id. + * @param ids List of vector ids that should be returned. + * @returns A promise that resolves with the raw unscored vectors matching the id set. + */ + public getByIds(ids: string[]): Promise; +} +/** + * The interface for "version_metadata" binding + * providing metadata about the Worker Version using this binding. + */ +type WorkerVersionMetadata = { + /** The ID of the Worker Version using this binding */ + id: string; + /** The tag of the Worker Version using this binding */ + tag: string; + /** The timestamp of when the Worker Version was uploaded */ + timestamp: string; +}; +interface DynamicDispatchLimits { + /** + * Limit CPU time in milliseconds. + */ + cpuMs?: number; + /** + * Limit number of subrequests. + */ + subRequests?: number; +} +interface DynamicDispatchOptions { + /** + * Limit resources of invoked Worker script. + */ + limits?: DynamicDispatchLimits; + /** + * Arguments for outbound Worker script, if configured. + */ + outbound?: { + [key: string]: any; + }; +} +interface DispatchNamespace { + /** + * @param name Name of the Worker script. + * @param args Arguments to Worker script. + * @param options Options for Dynamic Dispatch invocation. + * @returns A Fetcher object that allows you to send requests to the Worker script. + * @throws If the Worker script does not exist in this dispatch namespace, an error will be thrown. + */ + get(name: string, args?: { + [key: string]: any; + }, options?: DynamicDispatchOptions): Fetcher; +} +declare module 'cloudflare:workflows' { + /** + * NonRetryableError allows for a user to throw a fatal error + * that makes a Workflow instance fail immediately without triggering a retry + */ + export class NonRetryableError extends Error { + public constructor(message: string, name?: string); + } +} +declare abstract class Workflow { + /** + * Get a handle to an existing instance of the Workflow. + * @param id Id for the instance of this Workflow + * @returns A promise that resolves with a handle for the Instance + */ + public get(id: string): Promise; + /** + * Create a new instance and return a handle to it. If a provided id exists, an error will be thrown. + * @param options Options when creating an instance including id and params + * @returns A promise that resolves with a handle for the Instance + */ + public create(options?: WorkflowInstanceCreateOptions): Promise; + /** + * Create a batch of instances and return handle for all of them. If a provided id exists, an error will be thrown. + * `createBatch` is limited at 100 instances at a time or when the RPC limit for the batch (1MiB) is reached. + * @param batch List of Options when creating an instance including name and params + * @returns A promise that resolves with a list of handles for the created instances. + */ + public createBatch(batch: WorkflowInstanceCreateOptions[]): Promise; +} +type WorkflowDurationLabel = 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year'; +type WorkflowSleepDuration = `${number} ${WorkflowDurationLabel}${'s' | ''}` | number; +type WorkflowRetentionDuration = WorkflowSleepDuration; +interface WorkflowInstanceCreateOptions { + /** + * An id for your Workflow instance. Must be unique within the Workflow. + */ + id?: string; + /** + * The event payload the Workflow instance is triggered with + */ + params?: PARAMS; + /** + * The retention policy for Workflow instance. + * Defaults to the maximum retention period available for the owner's account. + */ + retention?: { + successRetention?: WorkflowRetentionDuration; + errorRetention?: WorkflowRetentionDuration; + }; +} +type InstanceStatus = { + status: 'queued' // means that instance is waiting to be started (see concurrency limits) + | 'running' | 'paused' | 'errored' | 'terminated' // user terminated the instance while it was running + | 'complete' | 'waiting' // instance is hibernating and waiting for sleep or event to finish + | 'waitingForPause' // instance is finishing the current work to pause + | 'unknown'; + error?: string; + output?: object; +}; +interface WorkflowError { + code?: number; + message: string; +} +declare abstract class WorkflowInstance { + public id: string; + /** + * Pause the instance. + */ + public pause(): Promise; + /** + * Resume the instance. If it is already running, an error will be thrown. + */ + public resume(): Promise; + /** + * Terminate the instance. If it is errored, terminated or complete, an error will be thrown. + */ + public terminate(): Promise; + /** + * Restart the instance. + */ + public restart(): Promise; + /** + * Returns the current status of the instance. + */ + public status(): Promise; + /** + * Send an event to this instance. + */ + public sendEvent({ type, payload, }: { + type: string; + payload: unknown; + }): Promise; +} diff --git a/mcp-worker/wrangler.toml b/mcp-worker/wrangler.toml index be310d6cb..4a8426a79 100644 --- a/mcp-worker/wrangler.toml +++ b/mcp-worker/wrangler.toml @@ -1,7 +1,7 @@ # Cloudflare Worker configuration for DevCycle MCP Server name = "devcycle-mcp-server" main = "src/index.ts" -compatibility_date = "2025-03-10" +compatibility_date = "2025-06-28" compatibility_flags = ["nodejs_compat"] # Durable Objects configuration @@ -16,7 +16,7 @@ name = "MCP_OBJECT" # KV namespace for OAuth session storage [[kv_namespaces]] binding = "OAUTH_KV" -id = "YOUR_KV_NAMESPACE_ID" # Replace with actual KV namespace ID +id = "511f2abf74904876ba3e4627154f4d86" # Environment variables [vars] From 88154d8aa08467ddf3f2e595dee32c82b9690ca8 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Mon, 28 Jul 2025 14:59:27 -0400 Subject: [PATCH 63/74] feat: calling MCP tools working now --- mcp-worker/src/apiClient.ts | 30 +++--- mcp-worker/src/index.ts | 8 +- mcp-worker/src/types.ts | 11 +-- src/mcp/api/interface.ts | 18 +++- src/mcp/api/localApiClient.ts | 16 +++- src/mcp/api/workerApiClient.ts | 27 ++++-- src/mcp/server.ts | 3 +- src/mcp/tools/customPropertiesTools.ts | 35 ++++++- src/mcp/tools/environmentTools.ts | 35 ++++++- src/mcp/tools/featureTools.ts | 123 +++++++++++++++++++------ src/mcp/tools/index.ts | 11 ++- src/mcp/tools/projectTools.ts | 18 +++- src/mcp/tools/registry.ts | 1 + src/mcp/tools/resultsTools.ts | 20 +++- src/mcp/tools/selfTargetingTools.ts | 30 ++++-- src/mcp/tools/variableTools.ts | 33 ++++++- src/mcp/utils/api.ts | 20 +++- 17 files changed, 334 insertions(+), 105 deletions(-) diff --git a/mcp-worker/src/apiClient.ts b/mcp-worker/src/apiClient.ts index 005dab59c..c652e3587 100644 --- a/mcp-worker/src/apiClient.ts +++ b/mcp-worker/src/apiClient.ts @@ -21,7 +21,11 @@ export class WorkerApiClient implements IDevCycleApiClient { requiresProject: boolean = true, ): Promise { const authToken = this.getAuthToken() - const projectKey = requiresProject ? this.getProjectKey() : '' + const projectKey = this.getProjectKey() + + if (requiresProject && !projectKey) { + throw new Error('No project key found') + } console.log(`Worker MCP ${operationName}:`, { args, @@ -31,7 +35,7 @@ export class WorkerApiClient implements IDevCycleApiClient { }) try { - const result = await operation(authToken, projectKey) + const result = await operation(authToken, projectKey || '') console.log(`Worker MCP ${operationName} completed successfully`) return result } catch (error) { @@ -101,18 +105,10 @@ export class WorkerApiClient implements IDevCycleApiClient { /** * Get the project key from JWT claims or environment variables */ - private getProjectKey(): string { + private getProjectKey(): string | undefined { const claims = this.props.claims as DevCycleJWTClaims - // Try from JWT claims first - this allows user-specific project context - if (claims?.project_key) { - return claims.project_key - } - - throw new Error( - 'No project key found in JWT claims. ' + - 'Include project_key in JWT claims.', - ) + return claims?.project_key } /** @@ -153,10 +149,18 @@ export class WorkerApiClient implements IDevCycleApiClient { */ public getUserContext() { const claims = this.props.claims as DevCycleJWTClaims + let projectKey: string | undefined + try { + projectKey = this.getProjectKey() + } catch { + projectKey = undefined + } + console.log('User context:', claims) + return { userId: this.getUserId(), orgId: this.getOrgId(), - projectKey: this.getProjectKey(), + projectKey: projectKey, email: claims?.email, name: claims?.name, hasAccessToken: !!this.props.tokenSet?.accessToken, diff --git a/mcp-worker/src/index.ts b/mcp-worker/src/index.ts index c84a23061..8448b5393 100644 --- a/mcp-worker/src/index.ts +++ b/mcp-worker/src/index.ts @@ -71,12 +71,8 @@ export class DevCycleMCP extends McpAgent< serverInfo: { name: 'DevCycle CLI MCP Server', version: '1.0.0', - environment: - this.env.NODE_ENV || - 'production', - apiBaseUrl: - this.env.API_BASE_URL || - 'https://api.devcycle.com', + environment: this.env.NODE_ENV, + apiBaseUrl: this.env.API_BASE_URL, }, }, null, diff --git a/mcp-worker/src/types.ts b/mcp-worker/src/types.ts index bbd9850fe..b389796c2 100644 --- a/mcp-worker/src/types.ts +++ b/mcp-worker/src/types.ts @@ -10,6 +10,7 @@ export type UserProps = { /** OAuth token set for API authentication */ tokenSet: { accessToken: string + accessTokenTTL: number idToken: string refreshToken: string } @@ -51,14 +52,4 @@ export interface DevCycleJWTClaims extends JWTPayload { email?: string /** User's name */ name?: string - /** Auth0 subject identifier */ - sub?: string - /** Audience */ - aud?: string | string[] - /** Issuer */ - iss?: string - /** Expiration time */ - exp?: number - /** Issued at time */ - iat?: number } diff --git a/src/mcp/api/interface.ts b/src/mcp/api/interface.ts index e97379583..905588a9e 100644 --- a/src/mcp/api/interface.ts +++ b/src/mcp/api/interface.ts @@ -24,7 +24,10 @@ export interface IDevCycleApiClient { executeWithLogging( operationName: string, args: any, - operation: (authToken: string, projectKey: string) => Promise, + operation: ( + authToken: string, + projectKey: string | undefined, + ) => Promise, requiresProject?: boolean, ): Promise @@ -38,8 +41,15 @@ export interface IDevCycleApiClient { executeWithDashboardLink( operationName: string, args: any, - operation: (authToken: string, projectKey: string) => Promise, - dashboardLink: (orgId: string, projectKey: string, result: T) => string, + operation: ( + authToken: string, + projectKey: string | undefined, + ) => Promise, + dashboardLink: ( + orgId: string, + projectKey: string | undefined, + result: T, + ) => string, ): Promise<{ result: T; dashboardLink: string }> } @@ -132,6 +142,6 @@ export type ApiResult = */ export type DashboardLinkGenerator = ( orgId: string, - projectKey: string, + projectKey: string | undefined, result: T, ) => string diff --git a/src/mcp/api/localApiClient.ts b/src/mcp/api/localApiClient.ts index 49343a36c..c6170981d 100644 --- a/src/mcp/api/localApiClient.ts +++ b/src/mcp/api/localApiClient.ts @@ -59,7 +59,10 @@ export class LocalDevCycleApiClient implements IDevCycleApiClient { async executeWithLogging( operationName: string, args: any, - operation: (authToken: string, projectKey: string) => Promise, + operation: ( + authToken: string, + projectKey: string | undefined, + ) => Promise, requiresProject = true, ): Promise { return await this.apiClient.executeWithLogging( @@ -73,8 +76,15 @@ export class LocalDevCycleApiClient implements IDevCycleApiClient { async executeWithDashboardLink( operationName: string, args: any, - operation: (authToken: string, projectKey: string) => Promise, - dashboardLink: (orgId: string, projectKey: string, result: T) => string, + operation: ( + authToken: string, + projectKey: string | undefined, + ) => Promise, + dashboardLink: ( + orgId: string, + projectKey: string | undefined, + result: T, + ) => string, ): Promise<{ result: T; dashboardLink: string }> { return await this.apiClient.executeWithDashboardLink( operationName, diff --git a/src/mcp/api/workerApiClient.ts b/src/mcp/api/workerApiClient.ts index 2a31f0784..105570665 100644 --- a/src/mcp/api/workerApiClient.ts +++ b/src/mcp/api/workerApiClient.ts @@ -14,7 +14,10 @@ export class WorkerDevCycleApiClient implements IDevCycleApiClient { async executeWithLogging( operationName: string, args: any, - operation: (authToken: string, projectKey: string) => Promise, + operation: ( + authToken: string, + projectKey: string | undefined, + ) => Promise, requiresProject = true, ): Promise { // TODO: Implement Worker-specific logging that works in Cloudflare environment @@ -23,9 +26,10 @@ export class WorkerDevCycleApiClient implements IDevCycleApiClient { this.validateAuth(requiresProject) const authToken = this.authContext.getAuthToken() - const projectKey = requiresProject - ? this.authContext.getProjectKey() - : '' + const projectKey = + requiresProject && this.authContext.hasProject() + ? this.authContext.getProjectKey() + : undefined try { return await operation(authToken, projectKey) @@ -39,8 +43,15 @@ export class WorkerDevCycleApiClient implements IDevCycleApiClient { async executeWithDashboardLink( operationName: string, args: any, - operation: (authToken: string, projectKey: string) => Promise, - dashboardLink: (orgId: string, projectKey: string, result: T) => string, + operation: ( + authToken: string, + projectKey: string | undefined, + ) => Promise, + dashboardLink: ( + orgId: string, + projectKey: string | undefined, + result: T, + ) => string, ): Promise<{ result: T; dashboardLink: string }> { const result = await this.executeWithLogging( operationName, @@ -49,7 +60,9 @@ export class WorkerDevCycleApiClient implements IDevCycleApiClient { ) const organizationId = this.authContext.getOrgId() - const projectKey = this.authContext.getProjectKey() + const projectKey = this.authContext.hasProject() + ? this.authContext.getProjectKey() + : undefined const link = dashboardLink(organizationId, projectKey, result) return { diff --git a/src/mcp/server.ts b/src/mcp/server.ts index 433bc0ea0..875f74e94 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -6,6 +6,7 @@ import { } from '@modelcontextprotocol/sdk/types.js' import { DevCycleAuth } from './utils/auth' import { DevCycleApiClient } from './utils/api' +import { IDevCycleApiClient } from './api/interface' import Writer from '../ui/writer' import { featureToolDefinitions, @@ -43,7 +44,7 @@ const ENABLE_DVC_MCP_DEBUG = process.env.ENABLE_DVC_MCP_DEBUG === 'true' // Tool handler function type export type ToolHandler = ( args: unknown, - apiClient: DevCycleApiClient, + apiClient: IDevCycleApiClient, ) => Promise // Function to conditionally remove outputSchema from tool definitions diff --git a/src/mcp/tools/customPropertiesTools.ts b/src/mcp/tools/customPropertiesTools.ts index 43f0ab418..28d44d40d 100644 --- a/src/mcp/tools/customPropertiesTools.ts +++ b/src/mcp/tools/customPropertiesTools.ts @@ -23,8 +23,13 @@ import { ToolHandler } from '../server' // Helper function to generate custom properties dashboard links const generateCustomPropertiesDashboardLink = ( orgId: string, - projectKey: string, + projectKey: string | undefined, ): string => { + if (!projectKey) { + throw new Error( + 'Project key is required for custom properties dashboard link', + ) + } return `https://app.devcycle.com/o/${orgId}/p/${projectKey}/custom-properties` } @@ -307,7 +312,12 @@ export const customPropertiesToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'listCustomProperties', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for listing custom properties', + ) + } return await handleZodiosValidationErrors( () => fetchCustomProperties(authToken, projectKey), 'fetchCustomProperties', @@ -322,7 +332,12 @@ export const customPropertiesToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'createCustomProperty', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for creating custom properties', + ) + } return await handleZodiosValidationErrors( () => createCustomProperty( @@ -342,7 +357,12 @@ export const customPropertiesToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'updateCustomProperty', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for updating custom properties', + ) + } const { key, ...updateData } = validatedArgs return await handleZodiosValidationErrors( @@ -365,7 +385,12 @@ export const customPropertiesToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'deleteCustomProperty', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for deleting custom properties', + ) + } await handleZodiosValidationErrors( () => deleteCustomProperty( diff --git a/src/mcp/tools/environmentTools.ts b/src/mcp/tools/environmentTools.ts index 3c0cfb6b5..a9c3712d5 100644 --- a/src/mcp/tools/environmentTools.ts +++ b/src/mcp/tools/environmentTools.ts @@ -23,8 +23,13 @@ import { DevCycleApiClient } from '../utils/api' // Helper function to generate environment dashboard links const generateEnvironmentDashboardLink = ( orgId: string, - projectKey: string, + projectKey: string | undefined, ): string => { + if (!projectKey) { + throw new Error( + 'Project key is required for environment dashboard link', + ) + } return `https://app.devcycle.com/o/${orgId}/settings/p/${projectKey}/environments` } @@ -281,7 +286,12 @@ export const environmentToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'listEnvironments', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for listing environments', + ) + } return await handleZodiosValidationErrors( () => fetchEnvironments(authToken, projectKey), 'listEnvironments', @@ -296,7 +306,12 @@ export const environmentToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'getSdkKeys', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for getting SDK keys', + ) + } const environment = await handleZodiosValidationErrors( () => fetchEnvironmentByKey( @@ -330,7 +345,12 @@ export const environmentToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'createEnvironment', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for creating environments', + ) + } return await handleZodiosValidationErrors( () => createEnvironment(authToken, projectKey, validatedArgs), @@ -346,7 +366,12 @@ export const environmentToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'updateEnvironment', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for updating environments', + ) + } const { key, ...updateParams } = validatedArgs return await handleZodiosValidationErrors( () => diff --git a/src/mcp/tools/featureTools.ts b/src/mcp/tools/featureTools.ts index 2305abb51..b5d4b1ff4 100644 --- a/src/mcp/tools/featureTools.ts +++ b/src/mcp/tools/featureTools.ts @@ -48,17 +48,23 @@ import { handleZodiosValidationErrors } from '../utils/api' // Helper function to generate feature dashboard links const generateFeaturesDashboardLink = ( orgId: string, - projectKey: string, + projectKey: string | undefined, ): string => { + if (!projectKey) { + throw new Error('Project key is required for features dashboard link') + } return `https://app.devcycle.com/o/${orgId}/p/${projectKey}/features` } const generateFeatureDashboardLink = ( orgId: string, - projectKey: string, + projectKey: string | undefined, featureKey: string, page: 'overview' | 'manage-feature' | 'audit-log' = 'overview', ): string => { + if (!projectKey) { + throw new Error('Project key is required for feature dashboard link') + } return `https://app.devcycle.com/o/${orgId}/p/${projectKey}/features/${featureKey}/${page}` } @@ -827,7 +833,12 @@ export const featureToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'listFeatures', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } return await handleZodiosValidationErrors( () => fetchFeatures(authToken, projectKey, validatedArgs), 'listFeatures', @@ -842,7 +853,12 @@ export const featureToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'createFeature', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } if (validatedArgs.interactive) { throw new Error( 'Interactive mode not yet supported in MCP. Please provide explicit parameters: key, name, description, type', @@ -864,7 +880,7 @@ export const featureToolHandlers: Record = { 'createFeature', ) }, - (orgId: string, projectKey: string, result: any) => + (orgId: string, projectKey: string | undefined, result: any) => generateFeatureDashboardLink( orgId, projectKey, @@ -879,7 +895,12 @@ export const featureToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'updateFeature', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } const { key, ...updateData } = validatedArgs return await handleZodiosValidationErrors( @@ -887,7 +908,7 @@ export const featureToolHandlers: Record = { 'updateFeature', ) }, - (orgId: string, projectKey: string, result: any) => + (orgId: string, projectKey: string | undefined, result: any) => generateFeatureDashboardLink( orgId, projectKey, @@ -902,7 +923,12 @@ export const featureToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'updateFeatureStatus', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } const { key, ...statusData } = validatedArgs return await handleZodiosValidationErrors( @@ -916,7 +942,7 @@ export const featureToolHandlers: Record = { 'updateFeatureStatus', ) }, - (orgId: string, projectKey: string, result: any) => + (orgId: string, projectKey: string | undefined, result: any) => generateFeatureDashboardLink( orgId, projectKey, @@ -931,7 +957,12 @@ export const featureToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'deleteFeature', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } await handleZodiosValidationErrors( () => deleteFeature(authToken, projectKey, validatedArgs.key), @@ -950,7 +981,12 @@ export const featureToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'fetchFeatureVariations', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } return await handleZodiosValidationErrors( () => fetchVariations( @@ -961,7 +997,7 @@ export const featureToolHandlers: Record = { 'fetchVariations', ) }, - (orgId: string, projectKey: string) => + (orgId: string, projectKey: string | undefined) => generateFeatureDashboardLink( orgId, projectKey, @@ -976,7 +1012,12 @@ export const featureToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'createFeatureVariation', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } const { feature_key, ...variationData } = validatedArgs return await handleZodiosValidationErrors( @@ -990,7 +1031,7 @@ export const featureToolHandlers: Record = { 'createVariation', ) }, - (orgId: string, projectKey: string, result: any) => + (orgId: string, projectKey: string | undefined, result: any) => generateFeatureDashboardLink( orgId, projectKey, @@ -1005,7 +1046,12 @@ export const featureToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'updateFeatureVariation', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } const { feature_key, variation_key, ...variationData } = validatedArgs @@ -1021,7 +1067,7 @@ export const featureToolHandlers: Record = { 'updateVariation', ) }, - (orgId: string, projectKey: string, result: any) => + (orgId: string, projectKey: string | undefined, result: any) => generateFeatureDashboardLink( orgId, projectKey, @@ -1036,7 +1082,12 @@ export const featureToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'enableTargeting', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } await handleZodiosValidationErrors( () => enableTargeting( @@ -1051,7 +1102,7 @@ export const featureToolHandlers: Record = { message: `Targeting enabled for feature '${validatedArgs.feature_key}' in environment '${validatedArgs.environment_key}'`, } }, - (orgId: string, projectKey: string) => + (orgId: string, projectKey: string | undefined) => generateFeatureDashboardLink( orgId, projectKey, @@ -1066,7 +1117,12 @@ export const featureToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'disableTargeting', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } await handleZodiosValidationErrors( () => disableTargeting( @@ -1081,7 +1137,7 @@ export const featureToolHandlers: Record = { message: `Targeting disabled for feature '${validatedArgs.feature_key}' in environment '${validatedArgs.environment_key}'`, } }, - (orgId: string, projectKey: string) => + (orgId: string, projectKey: string | undefined) => generateFeatureDashboardLink( orgId, projectKey, @@ -1096,7 +1152,12 @@ export const featureToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'listFeatureTargeting', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } return await handleZodiosValidationErrors( () => fetchTargetingForFeature( @@ -1108,7 +1169,7 @@ export const featureToolHandlers: Record = { 'fetchTargetingForFeature', ) }, - (orgId: string, projectKey: string) => + (orgId: string, projectKey: string | undefined) => generateFeatureDashboardLink( orgId, projectKey, @@ -1123,7 +1184,12 @@ export const featureToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'updateFeatureTargeting', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } const { feature_key, environment_key, ...configData } = validatedArgs @@ -1139,7 +1205,7 @@ export const featureToolHandlers: Record = { 'updateFeatureConfigForEnvironment', ) }, - (orgId: string, projectKey: string) => + (orgId: string, projectKey: string | undefined) => generateFeatureDashboardLink( orgId, projectKey, @@ -1154,7 +1220,12 @@ export const featureToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'getFeatureAuditLogHistory', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } return await handleZodiosValidationErrors( () => getFeatureAuditLogHistory( @@ -1166,7 +1237,7 @@ export const featureToolHandlers: Record = { 'getFeatureAuditLogHistory', ) }, - (orgId: string, projectKey: string) => + (orgId: string, projectKey: string | undefined) => generateFeatureDashboardLink( orgId, projectKey, diff --git a/src/mcp/tools/index.ts b/src/mcp/tools/index.ts index 336fb22e6..596b76469 100644 --- a/src/mcp/tools/index.ts +++ b/src/mcp/tools/index.ts @@ -30,12 +30,17 @@ import { } from './customPropertiesTools' /** - * Type guard to ensure the API client is a DevCycleApiClient instance + * Type guard to ensure the API client implements IDevCycleApiClient interface + * Accepts both DevCycleApiClient (CLI) and WorkerApiClient (Worker) implementations */ function isDevCycleApiClient( apiClient: IDevCycleApiClient, -): apiClient is DevCycleApiClient { - return apiClient instanceof DevCycleApiClient +): apiClient is IDevCycleApiClient { + return ( + apiClient && + typeof apiClient.executeWithLogging === 'function' && + typeof apiClient.executeWithDashboardLink === 'function' + ) } /** diff --git a/src/mcp/tools/projectTools.ts b/src/mcp/tools/projectTools.ts index 0ae0ed9df..0f189922e 100644 --- a/src/mcp/tools/projectTools.ts +++ b/src/mcp/tools/projectTools.ts @@ -17,8 +17,11 @@ import { ToolHandler } from '../server' // Helper functions to generate project dashboard links const generateProjectDashboardLink = ( orgId: string, - projectKey: string, + projectKey: string | undefined, ): string => { + if (!projectKey) { + throw new Error('Project key is required for project dashboard link') + } return `https://app.devcycle.com/o/${orgId}/p/${projectKey}` } @@ -26,7 +29,10 @@ const generateOrganizationSettingsLink = (orgId: string): string => { return `https://app.devcycle.com/o/${orgId}/settings` } -const generateEditProjectLink = (orgId: string, projectKey: string): string => { +const generateEditProjectLink = ( + orgId: string, + projectKey: string | undefined, +): string => { return `https://app.devcycle.com/o/${orgId}/settings/projects/${projectKey}/edit` } @@ -225,6 +231,7 @@ export const projectToolDefinitions: Tool[] = [ // Legacy handlers for backward compatibility export const projectToolHandlers: Record = { list_projects: async (args: unknown, apiClient) => { + console.error('list_projects tool called with args:', args) const validatedArgs = ListProjectsArgsSchema.parse(args) return await apiClient.executeWithDashboardLink( @@ -244,7 +251,12 @@ export const projectToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'getCurrentProject', null, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for getting current project', + ) + } return await handleZodiosValidationErrors( () => fetchProject(authToken, projectKey), 'fetchProject', diff --git a/src/mcp/tools/registry.ts b/src/mcp/tools/registry.ts index d9985a64d..eca105eee 100644 --- a/src/mcp/tools/registry.ts +++ b/src/mcp/tools/registry.ts @@ -81,6 +81,7 @@ export class MCPToolRegistry { if (!tool) { throw new Error(`Unknown tool: ${name}`) } + console.error('Executing tool:', name) return await tool.handler(args, client) } diff --git a/src/mcp/tools/resultsTools.ts b/src/mcp/tools/resultsTools.ts index 3c95c5fc3..025aa59ad 100644 --- a/src/mcp/tools/resultsTools.ts +++ b/src/mcp/tools/resultsTools.ts @@ -23,16 +23,22 @@ import { ToolHandler } from '../server' // Helper functions to generate dashboard links const generateFeatureAnalyticsDashboardLink = ( orgId: string, - projectKey: string, + projectKey: string | undefined, featureKey: string, ): string => { + if (!projectKey) { + throw new Error('Project key is required for feature analytics dashboard link') + } return `https://app.devcycle.com/o/${orgId}/p/${projectKey}/features/${featureKey}/analytics` } const generateProjectAnalyticsDashboardLink = ( orgId: string, - projectKey: string, + projectKey: string | undefined, ): string => { + if (!projectKey) { + throw new Error('Project key is required for project analytics dashboard link') + } return `https://app.devcycle.com/o/${orgId}/p/${projectKey}/analytics` } @@ -152,7 +158,10 @@ export const resultsToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'getFeatureTotalEvaluations', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error('Project key is required for this operation'); + } const { featureKey, ...apiQueries } = validatedArgs return await handleZodiosValidationErrors( @@ -180,7 +189,10 @@ export const resultsToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'getProjectTotalEvaluations', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error('Project key is required for this operation'); + } return await handleZodiosValidationErrors( () => fetchProjectTotalEvaluations( diff --git a/src/mcp/tools/selfTargetingTools.ts b/src/mcp/tools/selfTargetingTools.ts index 9d315f0b7..2ce5c1698 100644 --- a/src/mcp/tools/selfTargetingTools.ts +++ b/src/mcp/tools/selfTargetingTools.ts @@ -220,7 +220,10 @@ export const selfTargetingToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'getSelfTargetingIdentity', null, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error('Project key is required for this operation'); + } return await handleZodiosValidationErrors( () => fetchUserProfile(authToken, projectKey), 'fetchUserProfile', @@ -235,7 +238,10 @@ export const selfTargetingToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'updateSelfTargetingIdentity', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error('Project key is required for this operation'); + } return await handleZodiosValidationErrors( () => updateUserProfile(authToken, projectKey, { @@ -251,7 +257,10 @@ export const selfTargetingToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'listSelfTargetingOverrides', null, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error('Project key is required for this operation'); + } return await handleZodiosValidationErrors( () => fetchProjectOverridesForUser(authToken, projectKey), 'fetchProjectOverridesForUser', @@ -266,7 +275,10 @@ export const selfTargetingToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'setSelfTargetingOverride', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error('Project key is required for this operation'); + } return await handleZodiosValidationErrors( () => updateOverride( @@ -293,7 +305,10 @@ export const selfTargetingToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'clearFeatureSelfTargetingOverrides', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error('Project key is required for this operation'); + } await handleZodiosValidationErrors( () => deleteFeatureOverrides( @@ -316,7 +331,10 @@ export const selfTargetingToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'clearAllSelfTargetingOverrides', null, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error('Project key is required for this operation'); + } await handleZodiosValidationErrors( () => deleteAllProjectOverrides(authToken, projectKey), 'deleteAllProjectOverrides', diff --git a/src/mcp/tools/variableTools.ts b/src/mcp/tools/variableTools.ts index 5fde30132..4ac19bc56 100644 --- a/src/mcp/tools/variableTools.ts +++ b/src/mcp/tools/variableTools.ts @@ -23,8 +23,11 @@ import { DevCycleApiClient } from '../utils/api' // Helper function to generate variable dashboard links const generateVariablesDashboardLink = ( orgId: string, - projectKey: string, + projectKey: string | undefined, ): string => { + if (!projectKey) { + throw new Error('Project key is required for variables dashboard link') + } return `https://app.devcycle.com/o/${orgId}/p/${projectKey}/variables` } @@ -312,7 +315,12 @@ export const variableToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'listVariables', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } return await handleZodiosValidationErrors( () => fetchVariables(authToken, projectKey, validatedArgs), 'fetchVariables', @@ -327,7 +335,12 @@ export const variableToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'createVariable', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } return await handleZodiosValidationErrors( () => createVariable(authToken, projectKey, validatedArgs), 'createVariable', @@ -342,7 +355,12 @@ export const variableToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'updateVariable', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } const { key, ...updateData } = validatedArgs return await handleZodiosValidationErrors( @@ -360,7 +378,12 @@ export const variableToolHandlers: Record = { return await apiClient.executeWithDashboardLink( 'deleteVariable', validatedArgs, - async (authToken: string, projectKey: string) => { + async (authToken: string, projectKey: string | undefined) => { + if (!projectKey) { + throw new Error( + 'Project key is required for this operation', + ) + } await handleZodiosValidationErrors( () => deleteVariable( diff --git a/src/mcp/utils/api.ts b/src/mcp/utils/api.ts index eab0568bd..5f08df695 100644 --- a/src/mcp/utils/api.ts +++ b/src/mcp/utils/api.ts @@ -89,7 +89,10 @@ export class DevCycleApiClient implements IDevCycleApiClient { public async executeWithLogging( operationName: string, args: any, - operation: (authToken: string, projectKey: string) => Promise, + operation: ( + authToken: string, + projectKey: string | undefined, + ) => Promise, requiresProject = true, ): Promise { console.error( @@ -107,7 +110,9 @@ export class DevCycleApiClient implements IDevCycleApiClient { setMCPToolCommand(operationName) const authToken = this.auth.getAuthToken() - const projectKey = requiresProject ? this.auth.getProjectKey() : '' + const projectKey = requiresProject + ? this.auth.getProjectKey() + : undefined return await operation(authToken, projectKey) } catch (error) { console.error( @@ -124,8 +129,15 @@ export class DevCycleApiClient implements IDevCycleApiClient { public async executeWithDashboardLink( operationName: string, args: any, - operation: (authToken: string, projectKey: string) => Promise, - dashboardLink: (orgId: string, projectKey: string, result: T) => string, + operation: ( + authToken: string, + projectKey: string | undefined, + ) => Promise, + dashboardLink: ( + orgId: string, + projectKey: string | undefined, + result: T, + ) => string, ): Promise<{ result: T; dashboardLink: string }> { const result = await this.executeWithLogging( operationName, From 9606d834a2fc603ca0a1a289692fcf524d19aa92 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Mon, 28 Jul 2025 16:23:04 -0400 Subject: [PATCH 64/74] feat: fix tests, add project selection tool --- mcp-worker/src/apiClient.ts | 79 ++++++++++++++++++++++------ mcp-worker/src/index.ts | 94 ++++++++++++++++++---------------- src/mcp/api/interface.test.ts | 9 ++-- src/mcp/api/interface.ts | 13 +++++ src/mcp/tools/registry.test.ts | 63 ++++++++++++++++++++--- 5 files changed, 190 insertions(+), 68 deletions(-) diff --git a/mcp-worker/src/apiClient.ts b/mcp-worker/src/apiClient.ts index c652e3587..5cb16ea61 100644 --- a/mcp-worker/src/apiClient.ts +++ b/mcp-worker/src/apiClient.ts @@ -9,6 +9,7 @@ export class WorkerApiClient implements IDevCycleApiClient { constructor( private props: UserProps, private env: Env, + private storage?: DurableObjectStorage, ) {} /** @@ -17,11 +18,14 @@ export class WorkerApiClient implements IDevCycleApiClient { async executeWithLogging( operationName: string, args: any, - operation: (authToken: string, projectKey: string) => Promise, + operation: ( + authToken: string, + projectKey: string | undefined, + ) => Promise, requiresProject: boolean = true, ): Promise { const authToken = this.getAuthToken() - const projectKey = this.getProjectKey() + const projectKey = await this.getProjectKey() if (requiresProject && !projectKey) { throw new Error('No project key found') @@ -35,7 +39,7 @@ export class WorkerApiClient implements IDevCycleApiClient { }) try { - const result = await operation(authToken, projectKey || '') + const result = await operation(authToken, projectKey) console.log(`Worker MCP ${operationName} completed successfully`) return result } catch (error) { @@ -55,11 +59,18 @@ export class WorkerApiClient implements IDevCycleApiClient { async executeWithDashboardLink( operationName: string, args: any, - operation: (authToken: string, projectKey: string) => Promise, - dashboardLink: (orgId: string, projectKey: string, result: T) => string, + operation: ( + authToken: string, + projectKey: string | undefined, + ) => Promise, + dashboardLink: ( + orgId: string, + projectKey: string | undefined, + result: T, + ) => string, ): Promise<{ result: T; dashboardLink: string }> { const authToken = this.getAuthToken() - const projectKey = this.getProjectKey() + const projectKey = await this.getProjectKey() const orgId = this.getOrgId() console.log(`Worker MCP ${operationName} (with dashboard link):`, { @@ -103,18 +114,56 @@ export class WorkerApiClient implements IDevCycleApiClient { } /** - * Get the project key from JWT claims or environment variables + * Get the project key from Durable Object storage first, then fall back to JWT claims */ - private getProjectKey(): string | undefined { - const claims = this.props.claims as DevCycleJWTClaims + private async getProjectKey(): Promise { + // Priority 1: Check Durable Object storage for selected project + if (this.storage) { + try { + const selectedProjectKey = + await this.storage.get('selectedProjectKey') + if (selectedProjectKey) { + return selectedProjectKey as string + } + } catch (error) { + console.warn( + 'Failed to get selected project from storage:', + error, + ) + } + } + // Priority 2: Fall back to JWT claims + const claims = this.props.claims as DevCycleJWTClaims return claims?.project_key } + /** + * Set the selected project (stored in Durable Object) + */ + async setSelectedProject(projectKey: string): Promise { + if (!this.storage) { + throw new Error('Storage not available for project selection') + } + await this.storage.put('selectedProjectKey', projectKey) + } + + /** + * Check if user has a project key available (from storage or JWT claims) + */ + public async hasProjectKey(): Promise { + try { + const projectKey = await this.getProjectKey() + return !!projectKey + } catch { + return false + } + } + /** * Get the organization ID from JWT claims */ - private getOrgId(): string { + public getOrgId(): string { const claims = this.props.claims as DevCycleJWTClaims if (claims?.org_id) { @@ -127,7 +176,7 @@ export class WorkerApiClient implements IDevCycleApiClient { /** * Get the user ID from JWT claims (for logging purposes) */ - private getUserId(): string { + public getUserId(): string { const claims = this.props.claims as DevCycleJWTClaims return claims?.sub || claims?.email || 'unknown' } @@ -135,9 +184,9 @@ export class WorkerApiClient implements IDevCycleApiClient { /** * Check if the user has access to the required project */ - public hasProjectAccess(projectKey?: string): boolean { + public async hasProjectAccess(projectKey?: string): Promise { try { - const userProjectKey = this.getProjectKey() + const userProjectKey = await this.getProjectKey() return !projectKey || userProjectKey === projectKey } catch { return false @@ -147,11 +196,11 @@ export class WorkerApiClient implements IDevCycleApiClient { /** * Get user context information for debugging */ - public getUserContext() { + public async getUserContext() { const claims = this.props.claims as DevCycleJWTClaims let projectKey: string | undefined try { - projectKey = this.getProjectKey() + projectKey = await this.getProjectKey() } catch { projectKey = undefined } diff --git a/mcp-worker/src/index.ts b/mcp-worker/src/index.ts index 8448b5393..336705b87 100644 --- a/mcp-worker/src/index.ts +++ b/mcp-worker/src/index.ts @@ -4,6 +4,10 @@ import { McpAgent } from 'agents/mcp' import { createAuthApp, tokenExchangeCallback } from './auth' import { WorkerApiClient } from './apiClient' import { MCPToolRegistry, registerAllTools } from '../../src/mcp/tools' +import { + projectSelectionToolDefinitions, + projectSelectionToolHandlers, +} from './projectSelectionTools' import type { UserProps, Env } from './types' /** @@ -33,18 +37,39 @@ export class DevCycleMCP extends McpAgent< * Initialize the MCP server with tools and handlers */ async init() { + // Initialize the Worker-specific API client with OAuth tokens and Durable Object storage + this.apiClient = new WorkerApiClient( + this.props, + this.env, + this.state.storage, + ) + console.log('Initializing DevCycle MCP Worker', { - userId: this.getUserId(), - orgId: this.getOrgId(), - hasProject: this.hasProjectKey(), + userId: this.apiClient.getUserId(), + orgId: this.apiClient.getOrgId(), + hasProject: await this.apiClient.hasProjectKey(), }) - // Initialize the Worker-specific API client with OAuth tokens - this.apiClient = new WorkerApiClient(this.props, this.env) - - // Register all tools from the shared registry + // Register all shared tools from the shared registry registerAllTools(this.registry) + // Register Worker-specific project selection tools + const projectSelectionTools = projectSelectionToolDefinitions.map( + (toolDef) => ({ + name: toolDef.name, + description: toolDef.description || '', + inputSchema: toolDef.inputSchema, + outputSchema: toolDef.outputSchema, + handler: async (args: unknown, apiClient: any) => { + const legacyHandler = + projectSelectionToolHandlers[toolDef.name] + return await legacyHandler(args, apiClient) + }, + }), + ) + + this.registry.registerMany(projectSelectionTools) + console.log( `Registered ${this.registry.size()} MCP tools:`, this.registry.getToolNames(), @@ -57,7 +82,7 @@ export class DevCycleMCP extends McpAgent< {}, async () => { try { - const userContext = this.apiClient.getUserContext() + const userContext = await this.apiClient.getUserContext() return { content: [ { @@ -105,7 +130,7 @@ export class DevCycleMCP extends McpAgent< try { console.log(`Executing tool: ${tool.name}`, { args, - userId: this.getUserId(), + userId: this.apiClient.getUserId(), }) // Execute tool with Worker-specific API client that uses OAuth tokens @@ -136,6 +161,8 @@ export class DevCycleMCP extends McpAgent< responseText = JSON.stringify(result, null, 2) } + console.log(`Tool ${tool.name} completed successfully`) + return { content: [ { @@ -145,25 +172,31 @@ export class DevCycleMCP extends McpAgent< ], } } catch (error) { - console.error(`Tool execution error: ${tool.name}`, { + console.error(`Tool ${tool.name} error:`, { error: error instanceof Error ? error.message : String(error), args, - userId: this.getUserId(), + userId: this.apiClient.getUserId(), }) - // Standardized error handling across all tools - const errorMessage = - error instanceof Error - ? error.message - : String(error) return { content: [ { type: 'text', - text: `The call to ${tool.name} failed: ${errorMessage}`, + text: JSON.stringify( + { + error: + error instanceof Error + ? error.message + : String(error), + tool: tool.name, + args, + }, + null, + 2, + ), }, ], } @@ -174,33 +207,6 @@ export class DevCycleMCP extends McpAgent< console.log('DevCycle MCP Worker initialization completed') } - - /** - * Get user ID from claims for logging - */ - private getUserId(): string { - const claims = this.props.claims as any - return claims?.sub || claims?.email || 'unknown' - } - - /** - * Get organization ID from claims - */ - private getOrgId(): string { - return (this.props.claims as any)?.org_id || 'unknown' - } - - /** - * Check if user has project key available - */ - private hasProjectKey(): boolean { - try { - this.apiClient.getUserContext() - return true - } catch { - return false - } - } } // Initialize the Hono app with non-OAuth routes only diff --git a/src/mcp/api/interface.test.ts b/src/mcp/api/interface.test.ts index 0e22ea741..c033f471a 100644 --- a/src/mcp/api/interface.test.ts +++ b/src/mcp/api/interface.test.ts @@ -147,7 +147,7 @@ describe('API Interface Abstraction', () => { const mockOperation = async ( authToken: string, - projectKey: string, + projectKey: string | undefined, ) => { expect(authToken).to.equal('worker-token') expect(projectKey).to.equal('worker-project') @@ -224,10 +224,13 @@ describe('API Interface Abstraction', () => { ) const client = new WorkerDevCycleApiClient(authContext) - const mockOperation = async () => ({ featureKey: 'test-feature' }) + const mockOperation = async ( + authToken: string, + projectKey: string | undefined, + ) => ({ featureKey: 'test-feature' }) const dashboardLink = ( orgId: string, - projectKey: string, + projectKey: string | undefined, result: any, ) => `https://app.devcycle.com/o/${orgId}/p/${projectKey}/features/${result.featureKey}` diff --git a/src/mcp/api/interface.ts b/src/mcp/api/interface.ts index 905588a9e..3e5543a8e 100644 --- a/src/mcp/api/interface.ts +++ b/src/mcp/api/interface.ts @@ -51,6 +51,19 @@ export interface IDevCycleApiClient { result: T, ) => string, ): Promise<{ result: T; dashboardLink: string }> + + /** + * Set the selected project (Worker implementation only) + * This method is used by project selection tools to persist user's project choice + * @param projectKey - The project key to select + */ + setSelectedProject?(projectKey: string): Promise + + /** + * Check if a project key is currently available + * @returns True if a project key is available from any source + */ + hasProjectKey?(): Promise } /** diff --git a/src/mcp/tools/registry.test.ts b/src/mcp/tools/registry.test.ts index b736c9fd1..379650df8 100644 --- a/src/mcp/tools/registry.test.ts +++ b/src/mcp/tools/registry.test.ts @@ -1,16 +1,60 @@ import { expect } from '@oclif/test' import { MCPToolRegistry } from './registry' import { IDevCycleApiClient } from '../api/interface' -import { registerProjectTools } from './projectTools' -import { registerVariableTools } from './variableTools' -import { registerEnvironmentTools } from './environmentTools' +import { projectToolDefinitions, projectToolHandlers } from './projectTools' +import { variableToolDefinitions, variableToolHandlers } from './variableTools' +import { + environmentToolDefinitions, + environmentToolHandlers, +} from './environmentTools' + +// Helper function to create tool definitions from definitions and handlers +function createToolDefinitions( + toolDefinitions: any[], + toolHandlers: Record, +) { + return toolDefinitions.map((toolDef) => ({ + name: toolDef.name, + description: toolDef.description, + inputSchema: toolDef.inputSchema, + handler: async (args: any, apiClient: any) => { + const legacyHandler = toolHandlers[toolDef.name] + return await legacyHandler(args, apiClient) + }, + })) +} + +// Helper functions to register different tool types +function registerProjectTools(registry: MCPToolRegistry): void { + registry.registerMany( + createToolDefinitions(projectToolDefinitions, projectToolHandlers), + ) +} + +function registerVariableTools(registry: MCPToolRegistry): void { + registry.registerMany( + createToolDefinitions(variableToolDefinitions, variableToolHandlers), + ) +} + +function registerEnvironmentTools(registry: MCPToolRegistry): void { + registry.registerMany( + createToolDefinitions( + environmentToolDefinitions, + environmentToolHandlers, + ), + ) +} // Mock API client for testing class MockApiClient implements IDevCycleApiClient { async executeWithLogging( operationName: string, args: any, - operation: (authToken: string, projectKey: string) => Promise, + operation: ( + authToken: string, + projectKey: string | undefined, + ) => Promise, requiresProject = true, ): Promise { // Mock implementation - just return a test result @@ -20,8 +64,15 @@ class MockApiClient implements IDevCycleApiClient { async executeWithDashboardLink( operationName: string, args: any, - operation: (authToken: string, projectKey: string) => Promise, - dashboardLink: (orgId: string, projectKey: string, result: T) => string, + operation: ( + authToken: string, + projectKey: string | undefined, + ) => Promise, + dashboardLink: ( + orgId: string, + projectKey: string | undefined, + result: T, + ) => string, ): Promise<{ result: T; dashboardLink: string }> { // Mock implementation const result = await operation('test-token', 'test-project') From 96fdcdfd48c2baf7c4106b3ac43889bbb621ab30 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Mon, 28 Jul 2025 16:23:14 -0400 Subject: [PATCH 65/74] feat: add projectSelectionTools.ts --- mcp-worker/src/projectSelectionTools.ts | 173 ++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 mcp-worker/src/projectSelectionTools.ts diff --git a/mcp-worker/src/projectSelectionTools.ts b/mcp-worker/src/projectSelectionTools.ts new file mode 100644 index 000000000..4a02abe03 --- /dev/null +++ b/mcp-worker/src/projectSelectionTools.ts @@ -0,0 +1,173 @@ +import { Tool } from '@modelcontextprotocol/sdk/types.js' +import { handleZodiosValidationErrors } from '../../src/mcp/utils/api' +import { fetchProjects, fetchProject } from '../../src/api/projects' +import { + DASHBOARD_LINK_PROPERTY, + PROJECT_KEY_PROPERTY, +} from '../../src/mcp/tools/commonSchemas' +import { ToolHandler } from '../../src/mcp/server' + +// Helper functions to generate dashboard links +const generateProjectDashboardLink = ( + orgId: string, + projectKey: string | undefined, +): string => { + if (!projectKey) { + throw new Error('Project key is required for project dashboard link') + } + return `https://app.devcycle.com/o/${orgId}/p/${projectKey}` +} + +const generateOrganizationProjectsLink = (orgId: string): string => { + return `https://app.devcycle.com/o/${orgId}/settings/projects` +} + +// ============================================================================= +// TOOL DEFINITIONS +// ============================================================================= + +export const projectSelectionToolDefinitions: Tool[] = [ + { + name: 'select_devcycle_project', + description: + 'Select a project to use for subsequent MCP operations. If no project_key is provided, lists all available projects. Include dashboard link in the response.', + annotations: { + title: 'Select Project', + }, + inputSchema: { + type: 'object', + properties: { + project_key: { + ...PROJECT_KEY_PROPERTY, + description: + 'The project key to select. If not provided, will list all available projects to choose from.', + }, + }, + }, + outputSchema: { + type: 'object', + properties: { + result: { + type: 'object', + properties: { + selectedProject: { + type: 'object', + description: 'The selected project details', + properties: { + key: PROJECT_KEY_PROPERTY, + name: { + type: 'string', + description: 'Project name', + }, + description: { + type: 'string', + description: 'Project description', + }, + }, + }, + availableProjects: { + type: 'array', + description: + 'List of available projects (only shown when no project_key provided)', + items: { + type: 'object', + properties: { + key: PROJECT_KEY_PROPERTY, + name: { + type: 'string', + description: 'Project name', + }, + description: { + type: 'string', + description: 'Project description', + }, + }, + }, + }, + message: { + type: 'string', + description: 'Success or instruction message', + }, + }, + }, + dashboardLink: DASHBOARD_LINK_PROPERTY, + }, + required: ['result', 'dashboardLink'], + }, + }, +] + +// ============================================================================= +// TOOL HANDLERS +// ============================================================================= + +export const projectSelectionToolHandlers: Record = { + select_devcycle_project: async (args: unknown, apiClient) => { + const validatedArgs = args as { project_key?: string } + + // If no project key provided, list available projects + const projectKey = validatedArgs.project_key + if (!projectKey) { + return await apiClient.executeWithDashboardLink( + 'listProjectsForSelection', + validatedArgs, + async (authToken: string) => { + const projects = await handleZodiosValidationErrors( + () => + fetchProjects(authToken, { + page: 1, + perPage: 100, + sortBy: 'name', + sortOrder: 'asc', + }), + 'fetchProjects', + ) + + return { + availableProjects: projects.map((project: any) => ({ + key: project.key, + name: project.name, + description: project.description || '', + })), + message: + 'Available projects listed. Call this tool again with a project_key to select one.', + } + }, + generateOrganizationProjectsLink, + ) + } + + // Select the specified project + return await apiClient.executeWithDashboardLink( + 'selectProject', + validatedArgs, + async (authToken: string) => { + // Fetch the specific project to verify it exists and user has access + const selectedProject = await handleZodiosValidationErrors( + () => fetchProject(authToken, projectKey), + 'fetchProject', + ) + + // Set the selected project in storage + if (apiClient.setSelectedProject) { + await apiClient.setSelectedProject(projectKey) + } else { + throw new Error( + 'Project selection not supported in this environment', + ) + } + + return { + selectedProject: { + key: selectedProject.key, + name: selectedProject.name, + description: selectedProject.description || '', + }, + message: `Project '${selectedProject.name}' (${selectedProject.key}) has been selected for subsequent MCP operations.`, + } + }, + (orgId: string) => + generateProjectDashboardLink(orgId, validatedArgs.project_key), + ) + }, +} From 95e57d7556cad3bc531c4d1b16994fa4ba124edc Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Tue, 29 Jul 2025 15:46:12 -0400 Subject: [PATCH 66/74] feat: new mcp tool format working with zod schemas --- .nvmrc | 2 +- README.md | 2 +- mcp-worker/.yarn/install-state.gz | Bin 235210 -> 235031 bytes mcp-worker/package.json | 1 - mcp-worker/src/apiClient.ts | 48 +- mcp-worker/src/auth.ts | 122 +- mcp-worker/src/index.ts | 304 +- mcp-worker/src/projectSelectionTools.ts | 58 +- mcp-worker/src/types.ts | 24 +- mcp-worker/tsconfig.json | 4 +- mcp-worker/worker-configuration.d.ts | 6 +- mcp-worker/yarn.lock | 3 +- oclif.manifest.json | 5995 ----------------------- package.json | 5 +- src/mcp/index.ts | 23 +- src/mcp/server.ts | 186 +- src/mcp/tools/index.ts | 5 - src/mcp/tools/projectTools.ts | 379 +- src/mcp/tools/registry.ts | 2 + src/mcp/types.ts | 56 +- yarn.lock | 24 +- 21 files changed, 624 insertions(+), 6625 deletions(-) delete mode 100644 oclif.manifest.json diff --git a/.nvmrc b/.nvmrc index 35d2d08ea..23222029f 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.12 +22.* diff --git a/README.md b/README.md index 794b8cf35..48fc23a20 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ $ npm install -g @devcycle/cli $ dvc COMMAND running command... $ dvc (--version) -@devcycle/cli/5.21.1 darwin-arm64 node-v22.12.0 +@devcycle/cli/5.21.1 darwin-arm64 node-v22.17.1 $ dvc --help [COMMAND] USAGE $ dvc COMMAND diff --git a/mcp-worker/.yarn/install-state.gz b/mcp-worker/.yarn/install-state.gz index 68cd52708b95b18e4e50eaa8e60716501e7b2e02..6b6215accf9dc3745f915d8dba947114019c1ef9 100644 GIT binary patch delta 180963 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 z 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 z