diff --git a/Makefile b/Makefile
index 0acfce2b..84198edd 100644
--- a/Makefile
+++ b/Makefile
@@ -51,9 +51,16 @@ build-geth:
build-rbuilder:
cd clients && ./build-rbuilder.sh
+.PHONY: build-rollup-boost
+build-rollup-boost:
+ cd clients && ./build-rollup-boost.sh
+
.PHONY: build-binaries
build-binaries: build-reth build-geth build-rbuilder
+.PHONY: build-binaries-flashblocks
+build-binaries-flashblocks: build-reth build-geth build-rbuilder build-rollup-boost
+
.PHONY: build-frontend
build-frontend:
cd report && yarn build
diff --git a/README.md b/README.md
index c75d5474..c2afc684 100644
--- a/README.md
+++ b/README.md
@@ -87,6 +87,49 @@ benchmarks:
This configuration runs a `transfer-only` transaction payload against both Geth and Reth clients for 20 blocks.
+### Flashblocks Support
+
+The benchmark system supports **flashblocks** - Base's sub-200ms transaction preconfirmation feature via the `rbuilder` client.
+
+**Two Modes:**
+
+1. **Simple mode (standalone)**: Just rbuilder for testing
+ ```yaml
+ benchmarks:
+ - variables:
+ - type: node_type
+ value: rbuilder
+ ```
+
+2. **Dual-builder mode (production architecture)**: Fallback builder + rbuilder + optional rollup-boost
+ ```bash
+ ./bin/base-bench run \
+ --config ./configs/examples/flashblocks.yml \
+ --root-dir ./data-dir \
+ --reth-bin ./bin/op-reth \
+ --geth-bin ./bin/geth \
+ --rbuilder-bin ./bin/op-rbuilder \
+ --flashblocks-fallback reth \
+ --rollup-boost-bin ./bin/rollup-boost \
+ --output-dir ./output
+ ```
+
+**How it works (dual-builder mode):**
+- **Fallback builder** (geth/reth): Produces final 2s canonical blocks
+- **Rbuilder** (primary): Produces flashblocks every 200ms (10 per 2s block)
+- **Rollup-boost** (optional): Coordinates between the two builders
+
+**Configurable flashblock interval:**
+```yaml
+- type: flashblock_interval
+ values:
+ - 100 # 100ms (aggressive)
+ - 200 # 200ms (Base default)
+ - 500 # 500ms (conservative)
+```
+
+See [configs/examples/flashblocks.yml](configs/examples/flashblocks.yml) for complete examples.
+
### Test Methodology
Each test executes a standardized workflow:
@@ -125,21 +168,38 @@ OPTIONS:
# Reth Configuration
--reth-bin value Reth binary path (default: "reth")
- --reth-http-port value HTTP port (default: 9545)
- --reth-auth-rpc-port value Auth RPC port (default: 9551)
- --reth-metrics-port value Metrics port (default: 9080)
# Geth Configuration
--geth-bin value Geth binary path (default: "geth")
- --geth-http-port value HTTP port (default: 8545)
- --geth-auth-rpc-port value Auth RPC port (default: 8551)
- --geth-metrics-port value Metrics port (default: 8080)
+
+ # Rbuilder (Flashblocks) Configuration
+ --rbuilder-bin value Rbuilder binary path (default: "rbuilder")
+ --flashblocks-fallback value Fallback client for dual-builder mode: geth or reth (default: "reth")
+ --rollup-boost-bin value Rollup-boost coordinator binary for dual-builder mode
# General Options
--proxy-port value Proxy port (default: 8546)
--help, -h Show help (default: false)
```
+**Note**: Without `--flashblocks-fallback`, rbuilder runs in simple standalone mode. Set `--flashblocks-fallback` to enable production dual-builder architecture.
+
+### Client-Specific Arguments
+
+You can customize client behavior using the `client_args` variable in YAML configs:
+
+```yaml
+benchmarks:
+ - variables:
+ - type: client_args
+ value:
+ geth: "--verbosity 4 --txpool.globalslots 20000000"
+ reth: "--txpool.pending-max-count 200000000 -vvvv"
+ rbuilder: "--txpool.pending-max-count 200000000"
+```
+
+This allows testing different client configurations without code changes.
+
## 📊 Example Reports
diff --git a/clients/README.md b/clients/README.md
index fca1bbf6..80b8ff89 100644
--- a/clients/README.md
+++ b/clients/README.md
@@ -24,10 +24,21 @@ Builds the op-geth binary from the Ethereum Optimism op-geth repository using ju
Builds the op-rbuilder binary from the op-rbuilder repository using Cargo.
**Default Configuration:**
-- Repository: `https://github.com/haardikk21/op-rbuilder`
-- Version: `a8bb38693ece585e7fa98d52f51290e7dcececff`
+- Repository: `https://github.com/base/op-rbuilder.git`
+- Version: `bc7e167a8d11362a78b9c30d59adcd8d2c7f9e84`
- Build tool: `cargo`
+### build-rollup-boost.sh
+Builds the rollup-boost binary from the Flashbots rollup-boost repository using Cargo.
+Required for flashblocks dual-builder mode (production architecture).
+
+**Default Configuration:**
+- Repository: `https://github.com/flashbots/rollup-boost.git`
+- Version: `08ebd3e75a8f4c7ebc12db13b042dee04e132c05`
+- Build tool: `cargo`
+
+**Note:** Rollup-boost is optional. Rbuilder can run in standalone mode without it.
+
## Usage
### Using Makefile (Recommended)
@@ -44,6 +55,9 @@ make build-geth
# Build only op-rbuilder
make build-rbuilder
+
+# Build only rollup-boost (for flashblocks dual-builder mode)
+make build-rollup-boost
```
### Direct Script Execution
@@ -58,6 +72,9 @@ cd clients
# Build op-rbuilder with defaults
./build-rbuilder.sh
+
+# Build rollup-boost with defaults (for flashblocks dual-builder mode)
+./build-rollup-boost.sh
```
## Version Management
@@ -107,8 +124,14 @@ RBUILDER_VERSION="main" ./build-rbuilder.sh
- `OUTPUT_DIR`: Directory for built binaries (default: ../bin)
#### For op-rbuilder (build-rbuilder.sh):
-- `RBUILDER_REPO`: Git repository URL (default: https://github.com/haardikk21/op-rbuilder)
-- `RBUILDER_VERSION`: Git branch, tag, or commit hash (default: a8bb38693ece585e7fa98d52f51290e7dcececff)
+- `RBUILDER_REPO`: Git repository URL (default: https://github.com/base/op-rbuilder.git)
+- `RBUILDER_VERSION`: Git branch, tag, or commit hash (default: bc7e167a8d11362a78b9c30d59adcd8d2c7f9e84)
+- `BUILD_DIR`: Directory for source code (default: ./build)
+- `OUTPUT_DIR`: Directory for built binaries (default: ../bin)
+
+#### For rollup-boost (build-rollup-boost.sh):
+- `ROLLUP_BOOST_REPO`: Git repository URL (default: https://github.com/flashbots/rollup-boost.git)
+- `ROLLUP_BOOST_VERSION`: Git branch, tag, or commit hash (default: 08ebd3e75a8f4c7ebc12db13b042dee04e132c05)
- `BUILD_DIR`: Directory for source code (default: ./build)
- `OUTPUT_DIR`: Directory for built binaries (default: ../bin)
@@ -126,9 +149,38 @@ RBUILDER_VERSION="main" ./build-rbuilder.sh
- Rust and Cargo installed
- Git
+### For rollup-boost:
+- Rust and Cargo installed
+- Git
+- `libssl-dev` and `pkg-config` (on Linux)
+
## Output
Built binaries will be placed in the `bin/` directory at the project root:
- `bin/reth` - The reth binary
- `bin/geth` - The op-geth binary
-- `bin/op-rbuilder` - The op-rbuilder binary
\ No newline at end of file
+- `bin/op-rbuilder` - The op-rbuilder binary
+- `bin/rollup-boost` - The rollup-boost binary (for flashblocks dual-builder mode)
+
+## Flashblocks Dual-Builder Mode
+
+To run benchmarks with the full flashblocks architecture:
+
+1. Build the required binaries:
+ ```bash
+ make build-rbuilder
+ make build-rollup-boost
+ make build-reth # or build-geth for fallback
+ ```
+
+2. Run benchmark with dual-builder flags:
+ ```bash
+ ./bin/base-bench run \
+ --config ./configs/examples/flashblocks.yml \
+ --rbuilder-bin ./bin/op-rbuilder \
+ --flashblocks-fallback reth \
+ --rollup-boost-bin ./bin/rollup-boost \
+ --output-dir ./output
+ ```
+
+See [configs/examples/flashblocks.yml](../configs/examples/flashblocks.yml) for complete examples.
\ No newline at end of file
diff --git a/clients/build-rbuilder.sh b/clients/build-rbuilder.sh
index b475465c..cb3b2a0a 100755
--- a/clients/build-rbuilder.sh
+++ b/clients/build-rbuilder.sh
@@ -7,7 +7,7 @@ if [ -f "versions.env" ]; then
source versions.env
else
# Default values
- RBUILDER_REPO="${RBUILDER_REPO:-https://github.com/haardikk21/op-rbuilder}"
+ RBUILDER_REPO="${RBUILDER_REPO:-https://github.com/base/op-rbuilder.git}"
RBUILDER_VERSION="${RBUILDER_VERSION:-main}"
BUILD_DIR="${BUILD_DIR:-./build}"
OUTPUT_DIR="${OUTPUT_DIR:-../bin}"
diff --git a/clients/build-rollup-boost.sh b/clients/build-rollup-boost.sh
new file mode 100755
index 00000000..056f98ff
--- /dev/null
+++ b/clients/build-rollup-boost.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+set -e
+
+# Source versions if available, otherwise use defaults
+if [ -f "versions.env" ]; then
+ source versions.env
+else
+ # Default values
+ ROLLUP_BOOST_REPO="${ROLLUP_BOOST_REPO:-https://github.com/flashbots/rollup-boost.git}"
+ ROLLUP_BOOST_VERSION="${ROLLUP_BOOST_VERSION:-main}"
+ BUILD_DIR="${BUILD_DIR:-./build}"
+ OUTPUT_DIR="${OUTPUT_DIR:-../bin}"
+fi
+
+echo "Building rollup-boost binary..."
+echo "Repository: $ROLLUP_BOOST_REPO"
+echo "Version/Commit: $ROLLUP_BOOST_VERSION"
+echo "Build directory: $BUILD_DIR"
+echo "Output directory: $OUTPUT_DIR"
+
+# Create build directory if it doesn't exist
+mkdir -p "$BUILD_DIR"
+cd "$BUILD_DIR"
+
+# Clone or update repository
+if [ -d "rollup-boost" ]; then
+ echo "Updating existing rollup-boost repository..."
+ cd rollup-boost
+ git fetch origin
+else
+ echo "Cloning rollup-boost repository..."
+ git clone "$ROLLUP_BOOST_REPO" rollup-boost
+ cd rollup-boost
+fi
+
+# Checkout specified version/commit
+echo "Checking out version: $ROLLUP_BOOST_VERSION"
+git checkout "$ROLLUP_BOOST_VERSION"
+
+# Build the binary using cargo
+echo "Building rollup-boost with cargo..."
+cargo build --bin rollup-boost --release
+
+# Copy binary to output directory
+echo "Copying binary to output directory..."
+mkdir -p "../../$OUTPUT_DIR"
+
+# Find the built binary and copy it
+if [ -f "target/release/rollup-boost" ]; then
+ cp target/release/rollup-boost "../../$OUTPUT_DIR/"
+ echo "rollup-boost binary built successfully and placed in $OUTPUT_DIR/rollup-boost"
+else
+ echo "Error: rollup-boost binary not found in target/release/"
+ exit 1
+fi
+
+echo ""
+echo "✓ Rollup-boost built successfully!"
+echo ""
+echo "To use with dual-builder flashblocks mode:"
+echo " ./bin/base-bench run \\"
+echo " --config ./configs/examples/flashblocks.yml \\"
+echo " --rbuilder-bin ./bin/op-rbuilder \\"
+echo " --flashblocks-fallback reth \\"
+echo " --rollup-boost-bin ./bin/rollup-boost \\"
+echo " --output-dir ./output"
+
diff --git a/clients/versions.env b/clients/versions.env
index 7dd93636..5d9b979c 100644
--- a/clients/versions.env
+++ b/clients/versions.env
@@ -4,15 +4,19 @@
# Reth Configuration
RETH_REPO="https://github.com/paradigmxyz/reth/"
-RETH_VERSION="v1.8.1"
+RETH_VERSION="v1.8.2"
# Op-Geth Configuration
GETH_REPO="https://github.com/ethereum-optimism/op-geth/"
-GETH_VERSION="v1.101511.0"
+GETH_VERSION="v1.101603.1"
# Op-Rbuilder Configuration
-RBUILDER_REPO="https://github.com/haardikk21/op-rbuilder"
-RBUILDER_VERSION="a8bb38693ece585e7fa98d52f51290e7dcececff"
+RBUILDER_REPO="https://github.com/base/op-rbuilder.git"
+RBUILDER_VERSION="bc7e167a8d11362a78b9c30d59adcd8d2c7f9e84"
+
+# Rollup-Boost Configuration (for flashblocks dual-builder mode)
+ROLLUP_BOOST_REPO="https://github.com/flashbots/rollup-boost.git"
+ROLLUP_BOOST_VERSION="08ebd3e75a8f4c7ebc12db13b042dee04e132c05"
# Build Configuration
BUILD_DIR="./build"
diff --git a/configs/README.md b/configs/README.md
index 46c17f4c..ff277bb2 100644
--- a/configs/README.md
+++ b/configs/README.md
@@ -19,6 +19,8 @@ This directory contains benchmark configurations for testing various aspects of
| [📄 simulator.yml](./examples/simulator.yml) | Simulation | Comprehensive workload with mixed operations | 90M |
| [📄 snapshot.yml](./examples/snapshot.yml) | Infrastructure | Tests snapshot creation and loading | 15M-90M |
| [📄 tx-fuzz-geth.yml](./examples/tx-fuzz-geth.yml) | Stress Test | Randomized transaction pattern testing | Default |
+| [📄 flashblocks.yml](./examples/flashblocks.yml) | Flashblocks | Tests flashblocks (sub-200ms preconfirmations) | 30M-90M |
+| [📄 client-args-demo.yml](./examples/client-args-demo.yml) | Configuration | Demonstrates custom client argument usage | 30M-60M |
## 📁 Public Configurations
@@ -77,11 +79,71 @@ benchmarks:
- name: "Benchmark Name"
description: "What this benchmark tests"
variables:
- - type: payload|node_type|num_blocks|gas_limit
+ - type: payload|node_type|num_blocks|gas_limit|client_args|flashblock_interval
value: single-value
values: [array, of, values] # for matrix testing
```
+### Client Arguments
+
+You can customize client behavior using the `client_args` variable:
+
+```yaml
+# Per-client argument mapping
+- type: client_args
+ value:
+ geth: "--verbosity 4 --txpool.globalslots 20000000"
+ reth: "--txpool.pending-max-count 200000000 -vvvv"
+ rbuilder: "--txpool.pending-max-count 200000000"
+
+# Or test multiple configurations
+- type: client_args
+ values:
+ - geth: "--verbosity 3"
+ - geth: "--verbosity 4"
+ - geth: "--verbosity 5"
+```
+
+### Flashblocks Support
+
+Flashblocks provides sub-200ms transaction preconfirmations using the `rbuilder` client in two modes:
+
+**Simple mode (standalone):**
+```yaml
+- type: node_type
+ value: rbuilder # Just rbuilder for testing
+```
+
+**Dual-builder mode (production):**
+```bash
+# Use CLI flags to enable dual-builder architecture
+./bin/base-bench run \
+ --config ./configs/examples/flashblocks.yml \
+ --rbuilder-bin ./bin/op-rbuilder \
+ --flashblocks-fallback reth \
+ --rollup-boost-bin ./bin/rollup-boost \
+ --output-dir ./output
+```
+
+In dual-builder mode:
+- **Fallback builder** (geth/reth): Produces final 2s canonical blocks
+- **Rbuilder** (primary): Produces flashblocks every 200ms (10 per 2s block)
+- **Rollup-boost** (optional): Coordinates between the two builders
+
+**Configurable Flashblock Interval:**
+
+You can customize the flashblock interval (default 200ms) using the `flashblock_interval` variable:
+
+```yaml
+- type: flashblock_interval
+ values:
+ - 100 # 100ms (20 flashblocks per 2s block)
+ - 200 # 200ms (10 flashblocks per 2s block) - Base default
+ - 500 # 500ms (4 flashblocks per 2s block)
+```
+
+This only applies to the `rbuilder` node type.
+
## 🎯 Choosing the Right Configuration
- **Development/Testing**: Use `examples/` configurations for focused testing
diff --git a/configs/examples/client-args-demo.yml b/configs/examples/client-args-demo.yml
new file mode 100644
index 00000000..71e9abdf
--- /dev/null
+++ b/configs/examples/client-args-demo.yml
@@ -0,0 +1,112 @@
+name: Client Arguments Demo
+description: |
+ Client Arguments Configuration Demo - Demonstrates how to use client_args to customize
+ execution client behavior per benchmark run.
+
+ This configuration shows various ways to specify client arguments:
+ 1. Per-client argument mapping (different args for geth, reth, rbuilder)
+ 2. Testing different verbosity levels
+ 3. Testing different mempool configurations
+ 4. Testing different timeout settings
+
+ Use Case: Testing performance impact of different client configurations, finding optimal
+ settings for specific workloads, and debugging client behavior with increased logging.
+
+payloads:
+ - name: Transfer-only
+ id: transfer-only
+ type: transfer-only
+
+benchmarks:
+ # Example 1: Per-client argument mapping
+ - name: Custom args per client
+ description: Different arguments for each client type
+ variables:
+ - type: payload
+ value: transfer-only
+ - type: node_type
+ values:
+ - geth
+ - reth
+ - type: num_blocks
+ value: 10
+ - type: gas_limit
+ value: 30000000
+ - type: client_args
+ value:
+ geth: "--verbosity 4 --txpool.globalslots 20000000 --txpool.globalqueue 20000000"
+ reth: "--txpool.pending-max-count 200000000 --txpool.queued-max-count 200000000 -vvvv"
+ rbuilder: "--txpool.pending-max-count 200000000 -vvv"
+
+ # Example 2: Test different verbosity levels
+ - name: Verbosity level comparison
+ description: Compare performance with different logging verbosity
+ variables:
+ - type: payload
+ value: transfer-only
+ - type: node_type
+ value: geth
+ - type: num_blocks
+ value: 10
+ - type: gas_limit
+ value: 30000000
+ - type: client_args
+ values:
+ - geth: "--verbosity 3"
+ - geth: "--verbosity 4"
+ - geth: "--verbosity 5"
+
+ # Example 3: Test different mempool sizes
+ - name: Mempool size comparison
+ description: Test performance impact of different mempool configurations
+ variables:
+ - type: payload
+ value: transfer-only
+ - type: node_type
+ value: reth
+ - type: num_blocks
+ value: 15
+ - type: gas_limit
+ value: 60000000
+ - type: client_args
+ values:
+ - reth: "--txpool.pending-max-count 100000000 --txpool.queued-max-count 100000000"
+ - reth: "--txpool.pending-max-count 200000000 --txpool.queued-max-count 200000000"
+ - reth: "--txpool.pending-max-count 500000000 --txpool.queued-max-count 500000000"
+
+ # Example 4: Database timeout settings
+ - name: Database timeout comparison
+ description: Test impact of different database read timeouts
+ variables:
+ - type: payload
+ value: transfer-only
+ - type: node_type
+ value: reth
+ - type: num_blocks
+ value: 10
+ - type: gas_limit
+ value: 30000000
+ - type: client_args
+ values:
+ - reth: "--db.read-transaction-timeout 0"
+ - reth: "--db.read-transaction-timeout 10"
+ - reth: "--db.read-transaction-timeout 30"
+
+ # Example 5: Flashblock interval configurations (rbuilder only)
+ - name: Flashblock interval comparison
+ description: Test different flashblock production intervals
+ variables:
+ - type: payload
+ value: transfer-only
+ - type: node_type
+ value: rbuilder
+ - type: num_blocks
+ value: 10
+ - type: gas_limit
+ value: 30000000
+ - type: flashblock_interval
+ values:
+ - 100 # Very aggressive - 20 flashblocks per 2s block
+ - 200 # Base production default - 10 flashblocks per 2s block
+ - 500 # Conservative - 4 flashblocks per 2s block
+
diff --git a/configs/examples/flashblocks.yml b/configs/examples/flashblocks.yml
new file mode 100644
index 00000000..2f6b3845
--- /dev/null
+++ b/configs/examples/flashblocks.yml
@@ -0,0 +1,131 @@
+name: Flashblocks Performance Comparison
+description: |
+ Flashblocks Benchmark - Compares performance between standard clients and flashblocks-enabled execution.
+
+ This benchmark tests flashblocks (sub-200ms preconfirmations) using rbuilder in two modes:
+ 1. Simple mode: Rbuilder standalone (for testing/development)
+ 2. Dual-builder mode: Fallback builder + rbuilder + optional rollup-boost (production architecture)
+
+ In dual-builder mode:
+ - Fallback builder (geth/reth): Produces final 2s canonical blocks
+ - Rbuilder (primary): Produces flashblocks every 200ms (10 per 2s block)
+ - Rollup-boost (optional): Coordinates between the two builders
+
+ Use Case: Evaluate flashblocks performance, measure preconfirmation latency, compare
+ production dual-builder vs standalone modes, and validate flashblocks under different workloads.
+
+payloads:
+ - name: Transfer-only
+ id: transfer-only
+ type: transfer-only
+
+ - name: Simulator
+ id: simulator
+ type: simulator
+ accounts_loaded: 30
+ accounts_deleted: 1.27
+ accounts_updated: 20.17
+ accounts_created: 1
+ storage_loaded: 30
+ storage_deleted: 4.1
+ storage_updated: 14.7
+ storage_created: 14.7
+ calls_per_block: fill
+ precompiles:
+ bls12381MapG2: 6.81
+ ecrecover: 0.33
+ bls12381G1Add: 0.44
+ bls12381G1MultiExp: 0.18
+ sha256hash: 1
+ dataCopy: 1
+ bls12381Pairing: 1
+ bls12381G2Add: 1
+ bls12381G2MultiExp: 1
+
+benchmarks:
+ # Test 1: Compare all clients with transfer-only payload
+ - name: Transfer-only comparison
+ description: Compare geth, reth, and rbuilder (flashblocks) on simple transfers
+ variables:
+ - type: payload
+ value: transfer-only
+ - type: node_type
+ values:
+ - rbuilder
+ - type: num_blocks
+ value: 20
+ - type: gas_limit
+ values:
+ - 30000000
+ - 60000000
+ - 90000000
+
+ # Test 2: Flashblocks with simulator payload
+ - name: Flashblocks with complex workload
+ description: Test flashblocks performance with complex mixed operations
+ variables:
+ - type: payload
+ value: simulator
+ - type: node_type
+ values:
+ - rbuilder
+ - type: num_blocks
+ value: 10
+ - type: gas_limit
+ value: 90000000
+ - type: flashblock_interval
+ value: 200 # 200ms flashblocks (10 per 2s block)
+
+ # Test 3: Custom client args for tuning
+ - name: Tuned performance comparison
+ description: Compare clients with optimized arguments
+ variables:
+ - type: payload
+ value: transfer-only
+ - type: node_type
+ values:
+ - rbuilder
+ - type: num_blocks
+ value: 20
+ - type: gas_limit
+ value: 60000000
+ - type: client_args
+ value:
+ rbuilder: "--txpool.pending-max-count 200000000"
+
+ # Test 4: Different flashblock intervals
+ - name: Flashblock interval comparison
+ description: Compare performance with different flashblock intervals
+ variables:
+ - type: payload
+ value: transfer-only
+ - type: node_type
+ value: rbuilder
+ - type: num_blocks
+ value: 15
+ - type: gas_limit
+ value: 60000000
+ - type: flashblock_interval
+ values:
+ - 100 # 100ms flashblocks (20 per 2s block) - very aggressive
+ - 200 # 200ms flashblocks (10 per 2s block) - Base production default
+ - 500 # 500ms flashblocks (4 per 2s block) - more conservative
+ - 1000 # 1000ms flashblocks (2 per 2s block) - minimal flashblocks
+
+# NOTE: To run rbuilder in dual-builder mode (production architecture),
+# use the following CLI flags:
+#
+# --flashblocks-fallback reth # or "geth"
+# --rollup-boost-bin ./bin/rollup-boost # optional
+#
+# Example command for dual-builder mode:
+# ./bin/base-bench run \
+# --config ./configs/examples/flashblocks.yml \
+# --root-dir ./data-dir \
+# --rbuilder-bin ./bin/op-rbuilder \
+# --flashblocks-fallback reth \
+# --rollup-boost-bin ./bin/rollup-boost \
+# --output-dir ./output
+#
+# Without --flashblocks-fallback, rbuilder runs in simple standalone mode.
+
diff --git a/report/yarn.lock b/report/yarn.lock
index dbdb4687..2862ee87 100644
--- a/report/yarn.lock
+++ b/report/yarn.lock
@@ -1,3726 +1,6386 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@ampproject/remapping@^2.2.0":
- version "2.3.0"
- resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz"
- integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
- dependencies:
- "@jridgewell/gen-mapping" "^0.3.5"
- "@jridgewell/trace-mapping" "^0.3.24"
-
-"@babel/code-frame@^7.26.2":
- version "7.26.2"
- resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz"
- integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==
- dependencies:
- "@babel/helper-validator-identifier" "^7.25.9"
- js-tokens "^4.0.0"
- picocolors "^1.0.0"
-
-"@babel/compat-data@^7.26.8":
- version "7.26.8"
- resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz"
- integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==
-
-"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.26.0":
- version "7.26.10"
- resolved "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz"
- integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==
- dependencies:
- "@ampproject/remapping" "^2.2.0"
- "@babel/code-frame" "^7.26.2"
- "@babel/generator" "^7.26.10"
- "@babel/helper-compilation-targets" "^7.26.5"
- "@babel/helper-module-transforms" "^7.26.0"
- "@babel/helpers" "^7.26.10"
- "@babel/parser" "^7.26.10"
- "@babel/template" "^7.26.9"
- "@babel/traverse" "^7.26.10"
- "@babel/types" "^7.26.10"
- convert-source-map "^2.0.0"
- debug "^4.1.0"
- gensync "^1.0.0-beta.2"
- json5 "^2.2.3"
- semver "^6.3.1"
-
-"@babel/generator@^7.26.10", "@babel/generator@^7.27.0":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz"
- integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==
- dependencies:
- "@babel/parser" "^7.27.0"
- "@babel/types" "^7.27.0"
- "@jridgewell/gen-mapping" "^0.3.5"
- "@jridgewell/trace-mapping" "^0.3.25"
- jsesc "^3.0.2"
-
-"@babel/helper-compilation-targets@^7.26.5":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz"
- integrity sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==
- dependencies:
- "@babel/compat-data" "^7.26.8"
- "@babel/helper-validator-option" "^7.25.9"
- browserslist "^4.24.0"
- lru-cache "^5.1.1"
- semver "^6.3.1"
-
-"@babel/helper-module-imports@^7.25.9":
- version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz"
- integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==
- dependencies:
- "@babel/traverse" "^7.25.9"
- "@babel/types" "^7.25.9"
-
-"@babel/helper-module-transforms@^7.26.0":
- version "7.26.0"
- resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz"
- integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==
- dependencies:
- "@babel/helper-module-imports" "^7.25.9"
- "@babel/helper-validator-identifier" "^7.25.9"
- "@babel/traverse" "^7.25.9"
-
-"@babel/helper-plugin-utils@^7.25.9":
- version "7.26.5"
- resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz"
- integrity sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==
-
-"@babel/helper-string-parser@^7.25.9":
- version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz"
- integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==
-
-"@babel/helper-validator-identifier@^7.25.9":
- version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz"
- integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
-
-"@babel/helper-validator-option@^7.25.9":
- version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz"
- integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==
-
-"@babel/helpers@^7.26.10":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz"
- integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==
- dependencies:
- "@babel/template" "^7.27.0"
- "@babel/types" "^7.27.0"
-
-"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.26.10", "@babel/parser@^7.27.0":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz"
- integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==
- dependencies:
- "@babel/types" "^7.27.0"
-
-"@babel/plugin-transform-react-jsx-self@^7.25.9":
- version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz"
- integrity sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.25.9"
-
-"@babel/plugin-transform-react-jsx-source@^7.25.9":
- version "7.25.9"
- resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz"
- integrity sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.25.9"
-
-"@babel/template@^7.26.9", "@babel/template@^7.27.0":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz"
- integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==
- dependencies:
- "@babel/code-frame" "^7.26.2"
- "@babel/parser" "^7.27.0"
- "@babel/types" "^7.27.0"
-
-"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.10":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz"
- integrity sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==
- dependencies:
- "@babel/code-frame" "^7.26.2"
- "@babel/generator" "^7.27.0"
- "@babel/parser" "^7.27.0"
- "@babel/template" "^7.27.0"
- "@babel/types" "^7.27.0"
- debug "^4.3.1"
- globals "^11.1.0"
-
-"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.27.0":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz"
- integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==
- dependencies:
- "@babel/helper-string-parser" "^7.25.9"
- "@babel/helper-validator-identifier" "^7.25.9"
-
-"@esbuild/darwin-arm64@0.21.5":
- version "0.21.5"
- resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz"
- integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==
-
-"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
- version "4.6.1"
- resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz"
- integrity sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==
- dependencies:
- eslint-visitor-keys "^3.4.3"
-
-"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1":
- version "4.12.1"
- resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz"
- integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
-
-"@eslint/eslintrc@^2.1.4":
- version "2.1.4"
- resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz"
- integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
- dependencies:
- ajv "^6.12.4"
- debug "^4.3.2"
- espree "^9.6.0"
- globals "^13.19.0"
- ignore "^5.2.0"
- import-fresh "^3.2.1"
- js-yaml "^4.1.0"
- minimatch "^3.1.2"
- strip-json-comments "^3.1.1"
-
-"@eslint/js@8.57.1":
- version "8.57.1"
- resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz"
- integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==
-
-"@floating-ui/core@^1.7.1":
- version "1.7.1"
- resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.1.tgz"
- integrity sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==
- dependencies:
- "@floating-ui/utils" "^0.2.9"
-
-"@floating-ui/dom@^1.0.0":
- version "1.7.1"
- resolved "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.1.tgz"
- integrity sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==
- dependencies:
- "@floating-ui/core" "^1.7.1"
- "@floating-ui/utils" "^0.2.9"
-
-"@floating-ui/react-dom@^2.0.0":
- version "2.1.3"
- resolved "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.3.tgz"
- integrity sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==
- dependencies:
- "@floating-ui/dom" "^1.0.0"
-
-"@floating-ui/utils@^0.2.9":
- version "0.2.9"
- resolved "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz"
- integrity sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==
-
-"@humanwhocodes/config-array@^0.13.0":
- version "0.13.0"
- resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz"
- integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==
- dependencies:
- "@humanwhocodes/object-schema" "^2.0.3"
- debug "^4.3.1"
- minimatch "^3.0.5"
-
-"@humanwhocodes/module-importer@^1.0.1":
- version "1.0.1"
- resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz"
- integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
-
-"@humanwhocodes/object-schema@^2.0.3":
- version "2.0.3"
- resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz"
- integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
-
-"@jridgewell/gen-mapping@^0.3.5":
- version "0.3.8"
- resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz"
- integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==
- dependencies:
- "@jridgewell/set-array" "^1.2.1"
- "@jridgewell/sourcemap-codec" "^1.4.10"
- "@jridgewell/trace-mapping" "^0.3.24"
-
-"@jridgewell/resolve-uri@^3.1.0":
- version "3.1.2"
- resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz"
- integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
-
-"@jridgewell/set-array@^1.2.1":
- version "1.2.1"
- resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz"
- integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
-
-"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0":
- version "1.5.0"
- resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz"
- integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
-
-"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
- version "0.3.25"
- resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz"
- integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
- dependencies:
- "@jridgewell/resolve-uri" "^3.1.0"
- "@jridgewell/sourcemap-codec" "^1.4.14"
-
-"@nodelib/fs.scandir@2.1.5":
- version "2.1.5"
- resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
- integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
- dependencies:
- "@nodelib/fs.stat" "2.0.5"
- run-parallel "^1.1.9"
-
-"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
- version "2.0.5"
- resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
- integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
-
-"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
- version "1.2.8"
- resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
- integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
- dependencies:
- "@nodelib/fs.scandir" "2.1.5"
- fastq "^1.6.0"
-
-"@radix-ui/primitive@1.1.2":
- version "1.1.2"
- resolved "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz"
- integrity sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==
-
-"@radix-ui/react-arrow@1.1.7":
- version "1.1.7"
- resolved "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz"
- integrity sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==
- dependencies:
- "@radix-ui/react-primitive" "2.1.3"
-
-"@radix-ui/react-compose-refs@1.1.2":
- version "1.1.2"
- resolved "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz"
- integrity sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==
-
-"@radix-ui/react-context@1.1.2":
- version "1.1.2"
- resolved "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz"
- integrity sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==
-
-"@radix-ui/react-dismissable-layer@1.1.10":
- version "1.1.10"
- resolved "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz"
- integrity sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==
- dependencies:
- "@radix-ui/primitive" "1.1.2"
- "@radix-ui/react-compose-refs" "1.1.2"
- "@radix-ui/react-primitive" "2.1.3"
- "@radix-ui/react-use-callback-ref" "1.1.1"
- "@radix-ui/react-use-escape-keydown" "1.1.1"
-
-"@radix-ui/react-id@1.1.1":
- version "1.1.1"
- resolved "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz"
- integrity sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==
- dependencies:
- "@radix-ui/react-use-layout-effect" "1.1.1"
-
-"@radix-ui/react-popper@1.2.7":
- version "1.2.7"
- resolved "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.7.tgz"
- integrity sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==
- dependencies:
- "@floating-ui/react-dom" "^2.0.0"
- "@radix-ui/react-arrow" "1.1.7"
- "@radix-ui/react-compose-refs" "1.1.2"
- "@radix-ui/react-context" "1.1.2"
- "@radix-ui/react-primitive" "2.1.3"
- "@radix-ui/react-use-callback-ref" "1.1.1"
- "@radix-ui/react-use-layout-effect" "1.1.1"
- "@radix-ui/react-use-rect" "1.1.1"
- "@radix-ui/react-use-size" "1.1.1"
- "@radix-ui/rect" "1.1.1"
-
-"@radix-ui/react-portal@1.1.9":
- version "1.1.9"
- resolved "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz"
- integrity sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==
- dependencies:
- "@radix-ui/react-primitive" "2.1.3"
- "@radix-ui/react-use-layout-effect" "1.1.1"
-
-"@radix-ui/react-presence@1.1.4":
- version "1.1.4"
- resolved "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.4.tgz"
- integrity sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==
- dependencies:
- "@radix-ui/react-compose-refs" "1.1.2"
- "@radix-ui/react-use-layout-effect" "1.1.1"
-
-"@radix-ui/react-primitive@2.1.3":
- version "2.1.3"
- resolved "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz"
- integrity sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==
- dependencies:
- "@radix-ui/react-slot" "1.2.3"
-
-"@radix-ui/react-slot@1.2.3":
- version "1.2.3"
- resolved "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz"
- integrity sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==
- dependencies:
- "@radix-ui/react-compose-refs" "1.1.2"
-
-"@radix-ui/react-tooltip@^1.2.7":
- version "1.2.7"
- resolved "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.7.tgz"
- integrity sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==
- dependencies:
- "@radix-ui/primitive" "1.1.2"
- "@radix-ui/react-compose-refs" "1.1.2"
- "@radix-ui/react-context" "1.1.2"
- "@radix-ui/react-dismissable-layer" "1.1.10"
- "@radix-ui/react-id" "1.1.1"
- "@radix-ui/react-popper" "1.2.7"
- "@radix-ui/react-portal" "1.1.9"
- "@radix-ui/react-presence" "1.1.4"
- "@radix-ui/react-primitive" "2.1.3"
- "@radix-ui/react-slot" "1.2.3"
- "@radix-ui/react-use-controllable-state" "1.2.2"
- "@radix-ui/react-visually-hidden" "1.2.3"
-
-"@radix-ui/react-use-callback-ref@1.1.1":
- version "1.1.1"
- resolved "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz"
- integrity sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==
-
-"@radix-ui/react-use-controllable-state@1.2.2":
- version "1.2.2"
- resolved "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz"
- integrity sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==
- dependencies:
- "@radix-ui/react-use-effect-event" "0.0.2"
- "@radix-ui/react-use-layout-effect" "1.1.1"
-
-"@radix-ui/react-use-effect-event@0.0.2":
- version "0.0.2"
- resolved "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz"
- integrity sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==
- dependencies:
- "@radix-ui/react-use-layout-effect" "1.1.1"
-
-"@radix-ui/react-use-escape-keydown@1.1.1":
- version "1.1.1"
- resolved "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz"
- integrity sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==
- dependencies:
- "@radix-ui/react-use-callback-ref" "1.1.1"
-
-"@radix-ui/react-use-layout-effect@1.1.1":
- version "1.1.1"
- resolved "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz"
- integrity sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==
-
-"@radix-ui/react-use-rect@1.1.1":
- version "1.1.1"
- resolved "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz"
- integrity sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==
- dependencies:
- "@radix-ui/rect" "1.1.1"
-
-"@radix-ui/react-use-size@1.1.1":
- version "1.1.1"
- resolved "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz"
- integrity sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==
- dependencies:
- "@radix-ui/react-use-layout-effect" "1.1.1"
-
-"@radix-ui/react-visually-hidden@1.2.3":
- version "1.2.3"
- resolved "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz"
- integrity sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==
- dependencies:
- "@radix-ui/react-primitive" "2.1.3"
-
-"@radix-ui/rect@1.1.1":
- version "1.1.1"
- resolved "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz"
- integrity sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==
-
-"@rollup/rollup-darwin-arm64@4.39.0":
- version "4.39.0"
- resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.39.0.tgz"
- integrity sha512-lXQnhpFDOKDXiGxsU9/l8UEGGM65comrQuZ+lDcGUx+9YQ9dKpF3rSEGepyeR5AHZ0b5RgiligsBhWZfSSQh8Q==
-
-"@rtsao/scc@^1.1.0":
- version "1.1.0"
- resolved "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz"
- integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==
-
-"@tailwindcss/node@4.1.4":
- version "4.1.4"
- resolved "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.4.tgz"
- integrity sha512-MT5118zaiO6x6hNA04OWInuAiP1YISXql8Z+/Y8iisV5nuhM8VXlyhRuqc2PEviPszcXI66W44bCIk500Oolhw==
- dependencies:
- enhanced-resolve "^5.18.1"
- jiti "^2.4.2"
- lightningcss "1.29.2"
- tailwindcss "4.1.4"
-
-"@tailwindcss/oxide-darwin-arm64@4.1.4":
- version "4.1.4"
- resolved "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.4.tgz"
- integrity sha512-JGRj0SYFuDuAGilWFBlshcexev2hOKfNkoX+0QTksKYq2zgF9VY/vVMq9m8IObYnLna0Xlg+ytCi2FN2rOL0Sg==
-
-"@tailwindcss/oxide@4.1.4":
- version "4.1.4"
- resolved "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.4.tgz"
- integrity sha512-p5wOpXyOJx7mKh5MXh5oKk+kqcz8T+bA3z/5VWWeQwFrmuBItGwz8Y2CHk/sJ+dNb9B0nYFfn0rj/cKHZyjahQ==
- optionalDependencies:
- "@tailwindcss/oxide-android-arm64" "4.1.4"
- "@tailwindcss/oxide-darwin-arm64" "4.1.4"
- "@tailwindcss/oxide-darwin-x64" "4.1.4"
- "@tailwindcss/oxide-freebsd-x64" "4.1.4"
- "@tailwindcss/oxide-linux-arm-gnueabihf" "4.1.4"
- "@tailwindcss/oxide-linux-arm64-gnu" "4.1.4"
- "@tailwindcss/oxide-linux-arm64-musl" "4.1.4"
- "@tailwindcss/oxide-linux-x64-gnu" "4.1.4"
- "@tailwindcss/oxide-linux-x64-musl" "4.1.4"
- "@tailwindcss/oxide-wasm32-wasi" "4.1.4"
- "@tailwindcss/oxide-win32-arm64-msvc" "4.1.4"
- "@tailwindcss/oxide-win32-x64-msvc" "4.1.4"
-
-"@tailwindcss/vite@^4.1.4":
- version "4.1.4"
- resolved "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.4.tgz"
- integrity sha512-4UQeMrONbvrsXKXXp/uxmdEN5JIJ9RkH7YVzs6AMxC/KC1+Np7WZBaNIco7TEjlkthqxZbt8pU/ipD+hKjm80A==
- dependencies:
- "@tailwindcss/node" "4.1.4"
- "@tailwindcss/oxide" "4.1.4"
- tailwindcss "4.1.4"
-
-"@types/babel__core@^7.20.5":
- version "7.20.5"
- resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz"
- integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==
- dependencies:
- "@babel/parser" "^7.20.7"
- "@babel/types" "^7.20.7"
- "@types/babel__generator" "*"
- "@types/babel__template" "*"
- "@types/babel__traverse" "*"
-
-"@types/babel__generator@*":
- version "7.27.0"
- resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz"
- integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==
- dependencies:
- "@babel/types" "^7.0.0"
-
-"@types/babel__template@*":
- version "7.4.4"
- resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz"
- integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==
- dependencies:
- "@babel/parser" "^7.1.0"
- "@babel/types" "^7.0.0"
-
-"@types/babel__traverse@*":
- version "7.20.7"
- resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz"
- integrity sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==
- dependencies:
- "@babel/types" "^7.20.7"
-
-"@types/d3-array@*":
- version "3.2.1"
- resolved "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz"
- integrity sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==
-
-"@types/d3-axis@*":
- version "3.0.6"
- resolved "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz"
- integrity sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==
- dependencies:
- "@types/d3-selection" "*"
-
-"@types/d3-brush@*":
- version "3.0.6"
- resolved "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz"
- integrity sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==
- dependencies:
- "@types/d3-selection" "*"
-
-"@types/d3-chord@*":
- version "3.0.6"
- resolved "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz"
- integrity sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==
-
-"@types/d3-color@*":
- version "3.1.3"
- resolved "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz"
- integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==
-
-"@types/d3-contour@*":
- version "3.0.6"
- resolved "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz"
- integrity sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==
- dependencies:
- "@types/d3-array" "*"
- "@types/geojson" "*"
-
-"@types/d3-delaunay@*":
- version "6.0.4"
- resolved "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz"
- integrity sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==
-
-"@types/d3-dispatch@*":
- version "3.0.6"
- resolved "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz"
- integrity sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==
-
-"@types/d3-drag@*":
- version "3.0.7"
- resolved "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz"
- integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==
- dependencies:
- "@types/d3-selection" "*"
-
-"@types/d3-dsv@*":
- version "3.0.7"
- resolved "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz"
- integrity sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==
-
-"@types/d3-ease@*":
- version "3.0.2"
- resolved "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz"
- integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==
-
-"@types/d3-fetch@*":
- version "3.0.7"
- resolved "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz"
- integrity sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==
- dependencies:
- "@types/d3-dsv" "*"
-
-"@types/d3-force@*":
- version "3.0.10"
- resolved "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz"
- integrity sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==
-
-"@types/d3-format@*":
- version "3.0.4"
- resolved "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz"
- integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==
-
-"@types/d3-geo@*":
- version "3.1.0"
- resolved "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz"
- integrity sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==
- dependencies:
- "@types/geojson" "*"
-
-"@types/d3-hierarchy@*":
- version "3.1.7"
- resolved "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz"
- integrity sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==
-
-"@types/d3-interpolate@*":
- version "3.0.4"
- resolved "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz"
- integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==
- dependencies:
- "@types/d3-color" "*"
-
-"@types/d3-path@*":
- version "3.1.1"
- resolved "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz"
- integrity sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==
-
-"@types/d3-polygon@*":
- version "3.0.2"
- resolved "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz"
- integrity sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==
-
-"@types/d3-quadtree@*":
- version "3.0.6"
- resolved "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz"
- integrity sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==
-
-"@types/d3-random@*":
- version "3.0.3"
- resolved "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz"
- integrity sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==
-
-"@types/d3-scale-chromatic@*":
- version "3.1.0"
- resolved "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz"
- integrity sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==
-
-"@types/d3-scale@*":
- version "4.0.9"
- resolved "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz"
- integrity sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==
- dependencies:
- "@types/d3-time" "*"
-
-"@types/d3-selection@*":
- version "3.0.11"
- resolved "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz"
- integrity sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==
-
-"@types/d3-shape@*":
- version "3.1.7"
- resolved "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz"
- integrity sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==
- dependencies:
- "@types/d3-path" "*"
-
-"@types/d3-time-format@*":
- version "4.0.3"
- resolved "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz"
- integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==
-
-"@types/d3-time@*":
- version "3.0.4"
- resolved "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz"
- integrity sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==
-
-"@types/d3-timer@*":
- version "3.0.2"
- resolved "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz"
- integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==
-
-"@types/d3-transition@*":
- version "3.0.9"
- resolved "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz"
- integrity sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==
- dependencies:
- "@types/d3-selection" "*"
-
-"@types/d3-zoom@*":
- version "3.0.8"
- resolved "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz"
- integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==
- dependencies:
- "@types/d3-interpolate" "*"
- "@types/d3-selection" "*"
-
-"@types/d3@^7.4.3":
- version "7.4.3"
- resolved "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz"
- integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==
- dependencies:
- "@types/d3-array" "*"
- "@types/d3-axis" "*"
- "@types/d3-brush" "*"
- "@types/d3-chord" "*"
- "@types/d3-color" "*"
- "@types/d3-contour" "*"
- "@types/d3-delaunay" "*"
- "@types/d3-dispatch" "*"
- "@types/d3-drag" "*"
- "@types/d3-dsv" "*"
- "@types/d3-ease" "*"
- "@types/d3-fetch" "*"
- "@types/d3-force" "*"
- "@types/d3-format" "*"
- "@types/d3-geo" "*"
- "@types/d3-hierarchy" "*"
- "@types/d3-interpolate" "*"
- "@types/d3-path" "*"
- "@types/d3-polygon" "*"
- "@types/d3-quadtree" "*"
- "@types/d3-random" "*"
- "@types/d3-scale" "*"
- "@types/d3-scale-chromatic" "*"
- "@types/d3-selection" "*"
- "@types/d3-shape" "*"
- "@types/d3-time" "*"
- "@types/d3-time-format" "*"
- "@types/d3-timer" "*"
- "@types/d3-transition" "*"
- "@types/d3-zoom" "*"
-
-"@types/estree@^1.0.0", "@types/estree@1.0.7":
- version "1.0.7"
- resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz"
- integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==
-
-"@types/geojson@*":
- version "7946.0.16"
- resolved "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz"
- integrity sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==
-
-"@types/json5@^0.0.29":
- version "0.0.29"
- resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz"
- integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
-
-"@types/lodash@^4.17.16":
- version "4.17.16"
- resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz"
- integrity sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==
-
-"@types/node@^18.0.0 || ^20.0.0 || >=22.0.0", "@types/node@^18.0.0 || >=20.0.0", "@types/node@^20.11.24":
- version "20.17.30"
- resolved "https://registry.npmjs.org/@types/node/-/node-20.17.30.tgz"
- integrity sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==
- dependencies:
- undici-types "~6.19.2"
-
-"@types/react-dom@*", "@types/react-dom@^19.1.2":
- version "19.1.2"
- resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.2.tgz"
- integrity sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==
-
-"@types/react@*", "@types/react@^19.0.0", "@types/react@^19.1.0":
- version "19.1.0"
- resolved "https://registry.npmjs.org/@types/react/-/react-19.1.0.tgz"
- integrity sha512-UaicktuQI+9UKyA4njtDOGBD/67t8YEBt2xdfqu8+gP9hqPUPsiXlNPcpS2gVdjmis5GKPG3fCxbQLVgxsQZ8w==
- dependencies:
- csstype "^3.0.2"
-
-"@typescript-eslint/eslint-plugin@^8.30.1":
- version "8.30.1"
- resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.30.1.tgz"
- integrity sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==
- dependencies:
- "@eslint-community/regexpp" "^4.10.0"
- "@typescript-eslint/scope-manager" "8.30.1"
- "@typescript-eslint/type-utils" "8.30.1"
- "@typescript-eslint/utils" "8.30.1"
- "@typescript-eslint/visitor-keys" "8.30.1"
- graphemer "^1.4.0"
- ignore "^5.3.1"
- natural-compare "^1.4.0"
- ts-api-utils "^2.0.1"
-
-"@typescript-eslint/parser@^8.0.0 || ^8.0.0-alpha.0", "@typescript-eslint/parser@^8.45.0":
- version "8.45.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.45.0.tgz"
- integrity sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==
- dependencies:
- "@typescript-eslint/scope-manager" "8.45.0"
- "@typescript-eslint/types" "8.45.0"
- "@typescript-eslint/typescript-estree" "8.45.0"
- "@typescript-eslint/visitor-keys" "8.45.0"
- debug "^4.3.4"
-
-"@typescript-eslint/project-service@8.45.0":
- version "8.45.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.45.0.tgz"
- integrity sha512-3pcVHwMG/iA8afdGLMuTibGR7pDsn9RjDev6CCB+naRsSYs2pns5QbinF4Xqw6YC/Sj3lMrm/Im0eMfaa61WUg==
- dependencies:
- "@typescript-eslint/tsconfig-utils" "^8.45.0"
- "@typescript-eslint/types" "^8.45.0"
- debug "^4.3.4"
-
-"@typescript-eslint/scope-manager@8.30.1":
- version "8.30.1"
- resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.30.1.tgz"
- integrity sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==
- dependencies:
- "@typescript-eslint/types" "8.30.1"
- "@typescript-eslint/visitor-keys" "8.30.1"
-
-"@typescript-eslint/scope-manager@8.45.0":
- version "8.45.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.45.0.tgz"
- integrity sha512-clmm8XSNj/1dGvJeO6VGH7EUSeA0FMs+5au/u3lrA3KfG8iJ4u8ym9/j2tTEoacAffdW1TVUzXO30W1JTJS7dA==
- dependencies:
- "@typescript-eslint/types" "8.45.0"
- "@typescript-eslint/visitor-keys" "8.45.0"
-
-"@typescript-eslint/tsconfig-utils@^8.45.0", "@typescript-eslint/tsconfig-utils@8.45.0":
- version "8.45.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.45.0.tgz"
- integrity sha512-aFdr+c37sc+jqNMGhH+ajxPXwjv9UtFZk79k8pLoJ6p4y0snmYpPA52GuWHgt2ZF4gRRW6odsEj41uZLojDt5w==
-
-"@typescript-eslint/type-utils@8.30.1":
- version "8.30.1"
- resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.30.1.tgz"
- integrity sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==
- dependencies:
- "@typescript-eslint/typescript-estree" "8.30.1"
- "@typescript-eslint/utils" "8.30.1"
- debug "^4.3.4"
- ts-api-utils "^2.0.1"
-
-"@typescript-eslint/types@^8.45.0":
- version "8.45.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.45.0.tgz"
- integrity sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==
-
-"@typescript-eslint/types@8.30.1":
- version "8.30.1"
- resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.30.1.tgz"
- integrity sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==
-
-"@typescript-eslint/types@8.45.0":
- version "8.45.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.45.0.tgz"
- integrity sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==
-
-"@typescript-eslint/typescript-estree@8.30.1":
- version "8.30.1"
- resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.30.1.tgz"
- integrity sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==
- dependencies:
- "@typescript-eslint/types" "8.30.1"
- "@typescript-eslint/visitor-keys" "8.30.1"
- debug "^4.3.4"
- fast-glob "^3.3.2"
- is-glob "^4.0.3"
- minimatch "^9.0.4"
- semver "^7.6.0"
- ts-api-utils "^2.0.1"
-
-"@typescript-eslint/typescript-estree@8.45.0":
- version "8.45.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.45.0.tgz"
- integrity sha512-GfE1NfVbLam6XQ0LcERKwdTTPlLvHvXXhOeUGC1OXi4eQBoyy1iVsW+uzJ/J9jtCz6/7GCQ9MtrQ0fml/jWCnA==
- dependencies:
- "@typescript-eslint/project-service" "8.45.0"
- "@typescript-eslint/tsconfig-utils" "8.45.0"
- "@typescript-eslint/types" "8.45.0"
- "@typescript-eslint/visitor-keys" "8.45.0"
- debug "^4.3.4"
- fast-glob "^3.3.2"
- is-glob "^4.0.3"
- minimatch "^9.0.4"
- semver "^7.6.0"
- ts-api-utils "^2.1.0"
-
-"@typescript-eslint/utils@8.30.1":
- version "8.30.1"
- resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.30.1.tgz"
- integrity sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==
- dependencies:
- "@eslint-community/eslint-utils" "^4.4.0"
- "@typescript-eslint/scope-manager" "8.30.1"
- "@typescript-eslint/types" "8.30.1"
- "@typescript-eslint/typescript-estree" "8.30.1"
-
-"@typescript-eslint/visitor-keys@8.30.1":
- version "8.30.1"
- resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.30.1.tgz"
- integrity sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==
- dependencies:
- "@typescript-eslint/types" "8.30.1"
- eslint-visitor-keys "^4.2.0"
-
-"@typescript-eslint/visitor-keys@8.45.0":
- version "8.45.0"
- resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.45.0.tgz"
- integrity sha512-qsaFBA3e09MIDAGFUrTk+dzqtfv1XPVz8t8d1f0ybTzrCY7BKiMC5cjrl1O/P7UmHsNyW90EYSkU/ZWpmXelag==
- dependencies:
- "@typescript-eslint/types" "8.45.0"
- eslint-visitor-keys "^4.2.1"
-
-"@ungap/structured-clone@^1.2.0":
- version "1.3.0"
- resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz"
- integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==
-
-"@vitejs/plugin-react@^4.3.4":
- version "4.3.4"
- resolved "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz"
- integrity sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==
- dependencies:
- "@babel/core" "^7.26.0"
- "@babel/plugin-transform-react-jsx-self" "^7.25.9"
- "@babel/plugin-transform-react-jsx-source" "^7.25.9"
- "@types/babel__core" "^7.20.5"
- react-refresh "^0.14.2"
-
-"@vitest/expect@3.1.2":
- version "3.1.2"
- resolved "https://registry.npmjs.org/@vitest/expect/-/expect-3.1.2.tgz"
- integrity sha512-O8hJgr+zREopCAqWl3uCVaOdqJwZ9qaDwUP7vy3Xigad0phZe9APxKhPcDNqYYi0rX5oMvwJMSCAXY2afqeTSA==
- dependencies:
- "@vitest/spy" "3.1.2"
- "@vitest/utils" "3.1.2"
- chai "^5.2.0"
- tinyrainbow "^2.0.0"
-
-"@vitest/mocker@3.1.2":
- version "3.1.2"
- resolved "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.1.2.tgz"
- integrity sha512-kOtd6K2lc7SQ0mBqYv/wdGedlqPdM/B38paPY+OwJ1XiNi44w3Fpog82UfOibmHaV9Wod18A09I9SCKLyDMqgw==
- dependencies:
- "@vitest/spy" "3.1.2"
- estree-walker "^3.0.3"
- magic-string "^0.30.17"
-
-"@vitest/pretty-format@^3.1.2", "@vitest/pretty-format@3.1.2":
- version "3.1.2"
- resolved "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.2.tgz"
- integrity sha512-R0xAiHuWeDjTSB3kQ3OQpT8Rx3yhdOAIm/JM4axXxnG7Q/fS8XUwggv/A4xzbQA+drYRjzkMnpYnOGAc4oeq8w==
- dependencies:
- tinyrainbow "^2.0.0"
-
-"@vitest/runner@3.1.2":
- version "3.1.2"
- resolved "https://registry.npmjs.org/@vitest/runner/-/runner-3.1.2.tgz"
- integrity sha512-bhLib9l4xb4sUMPXnThbnhX2Yi8OutBMA8Yahxa7yavQsFDtwY/jrUZwpKp2XH9DhRFJIeytlyGpXCqZ65nR+g==
- dependencies:
- "@vitest/utils" "3.1.2"
- pathe "^2.0.3"
-
-"@vitest/snapshot@3.1.2":
- version "3.1.2"
- resolved "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.1.2.tgz"
- integrity sha512-Q1qkpazSF/p4ApZg1vfZSQ5Yw6OCQxVMVrLjslbLFA1hMDrT2uxtqMaw8Tc/jy5DLka1sNs1Y7rBcftMiaSH/Q==
- dependencies:
- "@vitest/pretty-format" "3.1.2"
- magic-string "^0.30.17"
- pathe "^2.0.3"
-
-"@vitest/spy@3.1.2":
- version "3.1.2"
- resolved "https://registry.npmjs.org/@vitest/spy/-/spy-3.1.2.tgz"
- integrity sha512-OEc5fSXMws6sHVe4kOFyDSj/+4MSwst0ib4un0DlcYgQvRuYQ0+M2HyqGaauUMnjq87tmUaMNDxKQx7wNfVqPA==
- dependencies:
- tinyspy "^3.0.2"
-
-"@vitest/utils@3.1.2":
- version "3.1.2"
- resolved "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.2.tgz"
- integrity sha512-5GGd0ytZ7BH3H6JTj9Kw7Prn1Nbg0wZVrIvou+UWxm54d+WoXXgAgjFJ8wn3LdagWLFSEfpPeyYrByZaGEZHLg==
- dependencies:
- "@vitest/pretty-format" "3.1.2"
- loupe "^3.1.3"
- tinyrainbow "^2.0.0"
-
-acorn-jsx@^5.3.2:
- version "5.3.2"
- resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
- integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
-
-"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0:
- version "8.14.1"
- resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz"
- integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==
-
-ajv@^6.12.4:
- version "6.12.6"
- resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
- integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
- dependencies:
- fast-deep-equal "^3.1.1"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.2"
-
-ansi-regex@^5.0.1:
- version "5.0.1"
- resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
- integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-
-ansi-styles@^4.1.0:
- version "4.3.0"
- resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
- integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
- dependencies:
- color-convert "^2.0.1"
-
-anymatch@~3.1.2:
- version "3.1.3"
- resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz"
- integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
- dependencies:
- normalize-path "^3.0.0"
- picomatch "^2.0.4"
-
-argparse@^2.0.1:
- version "2.0.1"
- resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
- integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
-
-array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz"
- integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==
- dependencies:
- call-bound "^1.0.3"
- is-array-buffer "^3.0.5"
-
-array-includes@^3.1.6, array-includes@^3.1.8:
- version "3.1.8"
- resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz"
- integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.23.2"
- es-object-atoms "^1.0.0"
- get-intrinsic "^1.2.4"
- is-string "^1.0.7"
-
-array.prototype.findlast@^1.2.5:
- version "1.2.5"
- resolved "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz"
- integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.23.2"
- es-errors "^1.3.0"
- es-object-atoms "^1.0.0"
- es-shim-unscopables "^1.0.2"
-
-array.prototype.findlastindex@^1.2.5:
- version "1.2.6"
- resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz"
- integrity sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==
- dependencies:
- call-bind "^1.0.8"
- call-bound "^1.0.4"
- define-properties "^1.2.1"
- es-abstract "^1.23.9"
- es-errors "^1.3.0"
- es-object-atoms "^1.1.1"
- es-shim-unscopables "^1.1.0"
-
-array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2:
- version "1.3.3"
- resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz"
- integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==
- dependencies:
- call-bind "^1.0.8"
- define-properties "^1.2.1"
- es-abstract "^1.23.5"
- es-shim-unscopables "^1.0.2"
-
-array.prototype.flatmap@^1.3.2, array.prototype.flatmap@^1.3.3:
- version "1.3.3"
- resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz"
- integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==
- dependencies:
- call-bind "^1.0.8"
- define-properties "^1.2.1"
- es-abstract "^1.23.5"
- es-shim-unscopables "^1.0.2"
-
-array.prototype.tosorted@^1.1.4:
- version "1.1.4"
- resolved "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz"
- integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.23.3"
- es-errors "^1.3.0"
- es-shim-unscopables "^1.0.2"
-
-arraybuffer.prototype.slice@^1.0.4:
- version "1.0.4"
- resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz"
- integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==
- dependencies:
- array-buffer-byte-length "^1.0.1"
- call-bind "^1.0.8"
- define-properties "^1.2.1"
- es-abstract "^1.23.5"
- es-errors "^1.3.0"
- get-intrinsic "^1.2.6"
- is-array-buffer "^3.0.4"
-
-assertion-error@^2.0.1:
- version "2.0.1"
- resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz"
- integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==
-
-async-function@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz"
- integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==
-
-available-typed-arrays@^1.0.7:
- version "1.0.7"
- resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz"
- integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==
- dependencies:
- possible-typed-array-names "^1.0.0"
-
-balanced-match@^1.0.0:
- version "1.0.2"
- resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
- integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-
-binary-extensions@^2.0.0:
- version "2.3.0"
- resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz"
- integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
-
-brace-expansion@^1.1.7:
- version "1.1.11"
- resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
- integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-brace-expansion@^2.0.1:
- version "2.0.2"
- resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz"
- integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==
- dependencies:
- balanced-match "^1.0.0"
-
-braces@^3.0.3, braces@~3.0.2:
- version "3.0.3"
- resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
- integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
- dependencies:
- fill-range "^7.1.1"
-
-browserslist@^4.24.0, "browserslist@>= 4.21.0":
- version "4.24.4"
- resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz"
- integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==
- dependencies:
- caniuse-lite "^1.0.30001688"
- electron-to-chromium "^1.5.73"
- node-releases "^2.0.19"
- update-browserslist-db "^1.1.1"
-
-cac@^6.7.14:
- version "6.7.14"
- resolved "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz"
- integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==
-
-call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz"
- integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
- dependencies:
- es-errors "^1.3.0"
- function-bind "^1.1.2"
-
-call-bind@^1.0.7, call-bind@^1.0.8:
- version "1.0.8"
- resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz"
- integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==
- dependencies:
- call-bind-apply-helpers "^1.0.0"
- es-define-property "^1.0.0"
- get-intrinsic "^1.2.4"
- set-function-length "^1.2.2"
-
-call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4:
- version "1.0.4"
- resolved "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz"
- integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==
- dependencies:
- call-bind-apply-helpers "^1.0.2"
- get-intrinsic "^1.3.0"
-
-callsites@^3.0.0:
- version "3.1.0"
- resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
- integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-
-caniuse-lite@^1.0.30001688:
- version "1.0.30001713"
- resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001713.tgz"
- integrity sha512-wCIWIg+A4Xr7NfhTuHdX+/FKh3+Op3LBbSp2N5Pfx6T/LhdQy3GTyoTg48BReaW/MyMNZAkTadsBtai3ldWK0Q==
-
-chai@^5.2.0:
- version "5.2.0"
- resolved "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz"
- integrity sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==
- dependencies:
- assertion-error "^2.0.1"
- check-error "^2.1.1"
- deep-eql "^5.0.1"
- loupe "^3.1.0"
- pathval "^2.0.0"
-
-chalk@^4.0.0:
- version "4.1.2"
- resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
- integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
- dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
-
-check-error@^2.1.1:
- version "2.1.1"
- resolved "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz"
- integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==
-
-chokidar@^3.5.3:
- version "3.6.0"
- resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
- integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
- dependencies:
- anymatch "~3.1.2"
- braces "~3.0.2"
- glob-parent "~5.1.2"
- is-binary-path "~2.1.0"
- is-glob "~4.0.1"
- normalize-path "~3.0.0"
- readdirp "~3.6.0"
- optionalDependencies:
- fsevents "~2.3.2"
-
-clsx@^2.1.1:
- version "2.1.1"
- resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz"
- integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==
-
-color-convert@^2.0.1:
- version "2.0.1"
- resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
- integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
- dependencies:
- color-name "~1.1.4"
-
-color-name@~1.1.4:
- version "1.1.4"
- resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
- integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
-commander@7:
- version "7.2.0"
- resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz"
- integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
- integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-
-convert-source-map@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz"
- integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
-
-cookie@^1.0.1:
- version "1.0.2"
- resolved "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz"
- integrity sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==
-
-cross-spawn@^7.0.2:
- version "7.0.6"
- resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz"
- integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
- dependencies:
- path-key "^3.1.0"
- shebang-command "^2.0.0"
- which "^2.0.1"
-
-csstype@^3.0.2:
- version "3.1.3"
- resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
- integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
-
-d3-array@^3.2.0, "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3:
- version "3.2.4"
- resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz"
- integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==
- dependencies:
- internmap "1 - 2"
-
-d3-axis@3:
- version "3.0.0"
- resolved "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz"
- integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==
-
-d3-brush@3:
- version "3.0.0"
- resolved "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz"
- integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==
- dependencies:
- d3-dispatch "1 - 3"
- d3-drag "2 - 3"
- d3-interpolate "1 - 3"
- d3-selection "3"
- d3-transition "3"
-
-d3-chord@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz"
- integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==
- dependencies:
- d3-path "1 - 3"
-
-"d3-color@1 - 3", d3-color@3:
- version "3.1.0"
- resolved "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz"
- integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==
-
-d3-contour@4:
- version "4.0.2"
- resolved "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz"
- integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==
- dependencies:
- d3-array "^3.2.0"
-
-d3-delaunay@6:
- version "6.0.4"
- resolved "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz"
- integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==
- dependencies:
- delaunator "5"
-
-"d3-dispatch@1 - 3", d3-dispatch@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz"
- integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==
-
-"d3-drag@2 - 3", d3-drag@3:
- version "3.0.0"
- resolved "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz"
- integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==
- dependencies:
- d3-dispatch "1 - 3"
- d3-selection "3"
-
-"d3-dsv@1 - 3", d3-dsv@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz"
- integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==
- dependencies:
- commander "7"
- iconv-lite "0.6"
- rw "1"
-
-"d3-ease@1 - 3", d3-ease@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz"
- integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==
-
-d3-fetch@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz"
- integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==
- dependencies:
- d3-dsv "1 - 3"
-
-d3-force@3:
- version "3.0.0"
- resolved "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz"
- integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==
- dependencies:
- d3-dispatch "1 - 3"
- d3-quadtree "1 - 3"
- d3-timer "1 - 3"
-
-"d3-format@1 - 3", d3-format@3:
- version "3.1.0"
- resolved "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz"
- integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==
-
-d3-geo@3:
- version "3.1.1"
- resolved "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz"
- integrity sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==
- dependencies:
- d3-array "2.5.0 - 3"
-
-d3-hierarchy@3:
- version "3.1.2"
- resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz"
- integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==
-
-"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz"
- integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==
- dependencies:
- d3-color "1 - 3"
-
-d3-path@^3.1.0, "d3-path@1 - 3", d3-path@3:
- version "3.1.0"
- resolved "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz"
- integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==
-
-d3-polygon@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz"
- integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==
-
-"d3-quadtree@1 - 3", d3-quadtree@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz"
- integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==
-
-d3-random@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz"
- integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==
-
-d3-scale-chromatic@3:
- version "3.1.0"
- resolved "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz"
- integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==
- dependencies:
- d3-color "1 - 3"
- d3-interpolate "1 - 3"
-
-d3-scale@4:
- version "4.0.2"
- resolved "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz"
- integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==
- dependencies:
- d3-array "2.10.0 - 3"
- d3-format "1 - 3"
- d3-interpolate "1.2.0 - 3"
- d3-time "2.1.1 - 3"
- d3-time-format "2 - 4"
-
-"d3-selection@2 - 3", d3-selection@3:
- version "3.0.0"
- resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz"
- integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==
-
-d3-shape@3:
- version "3.2.0"
- resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz"
- integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==
- dependencies:
- d3-path "^3.1.0"
-
-"d3-time-format@2 - 4", d3-time-format@4:
- version "4.1.0"
- resolved "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz"
- integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==
- dependencies:
- d3-time "1 - 3"
-
-"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3:
- version "3.1.0"
- resolved "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz"
- integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==
- dependencies:
- d3-array "2 - 3"
-
-"d3-timer@1 - 3", d3-timer@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz"
- integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==
-
-"d3-transition@2 - 3", d3-transition@3:
- version "3.0.1"
- resolved "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz"
- integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==
- dependencies:
- d3-color "1 - 3"
- d3-dispatch "1 - 3"
- d3-ease "1 - 3"
- d3-interpolate "1 - 3"
- d3-timer "1 - 3"
-
-d3-zoom@3:
- version "3.0.0"
- resolved "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz"
- integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==
- dependencies:
- d3-dispatch "1 - 3"
- d3-drag "2 - 3"
- d3-interpolate "1 - 3"
- d3-selection "2 - 3"
- d3-transition "2 - 3"
-
-d3@^7.8.5:
- version "7.9.0"
- resolved "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz"
- integrity sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==
- dependencies:
- d3-array "3"
- d3-axis "3"
- d3-brush "3"
- d3-chord "3"
- d3-color "3"
- d3-contour "4"
- d3-delaunay "6"
- d3-dispatch "3"
- d3-drag "3"
- d3-dsv "3"
- d3-ease "3"
- d3-fetch "3"
- d3-force "3"
- d3-format "3"
- d3-geo "3"
- d3-hierarchy "3"
- d3-interpolate "3"
- d3-path "3"
- d3-polygon "3"
- d3-quadtree "3"
- d3-random "3"
- d3-scale "4"
- d3-scale-chromatic "3"
- d3-selection "3"
- d3-shape "3"
- d3-time "3"
- d3-time-format "4"
- d3-timer "3"
- d3-transition "3"
- d3-zoom "3"
-
-data-view-buffer@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz"
- integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==
- dependencies:
- call-bound "^1.0.3"
- es-errors "^1.3.0"
- is-data-view "^1.0.2"
-
-data-view-byte-length@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz"
- integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==
- dependencies:
- call-bound "^1.0.3"
- es-errors "^1.3.0"
- is-data-view "^1.0.2"
-
-data-view-byte-offset@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz"
- integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==
- dependencies:
- call-bound "^1.0.2"
- es-errors "^1.3.0"
- is-data-view "^1.0.1"
-
-debug@^3.2.7:
- version "3.2.7"
- resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"
- integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
- dependencies:
- ms "^2.1.1"
-
-debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.0:
- version "4.4.0"
- resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz"
- integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
- dependencies:
- ms "^2.1.3"
-
-deep-eql@^5.0.1:
- version "5.0.2"
- resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz"
- integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==
-
-deep-is@^0.1.3:
- version "0.1.4"
- resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
- integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
-
-define-data-property@^1.0.1, define-data-property@^1.1.4:
- version "1.1.4"
- resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz"
- integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
- dependencies:
- es-define-property "^1.0.0"
- es-errors "^1.3.0"
- gopd "^1.0.1"
-
-define-properties@^1.1.3, define-properties@^1.2.1:
- version "1.2.1"
- resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz"
- integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
- dependencies:
- define-data-property "^1.0.1"
- has-property-descriptors "^1.0.0"
- object-keys "^1.1.1"
-
-delaunator@5:
- version "5.0.1"
- resolved "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz"
- integrity sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==
- dependencies:
- robust-predicates "^3.0.2"
-
-dequal@^2.0.3:
- version "2.0.3"
- resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz"
- integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
-
-detect-libc@^2.0.3:
- version "2.0.3"
- resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz"
- integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==
-
-doctrine@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz"
- integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
- dependencies:
- esutils "^2.0.2"
-
-doctrine@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
- integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
- dependencies:
- esutils "^2.0.2"
-
-dunder-proto@^1.0.0, dunder-proto@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz"
- integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
- dependencies:
- call-bind-apply-helpers "^1.0.1"
- es-errors "^1.3.0"
- gopd "^1.2.0"
-
-electron-to-chromium@^1.5.73:
- version "1.5.136"
- resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.136.tgz"
- integrity sha512-kL4+wUTD7RSA5FHx5YwWtjDnEEkIIikFgWHR4P6fqjw1PPLlqYkxeOb++wAauAssat0YClCy8Y3C5SxgSkjibQ==
-
-enhanced-resolve@^5.18.1:
- version "5.18.1"
- resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz"
- integrity sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==
- dependencies:
- graceful-fs "^4.2.4"
- tapable "^2.2.0"
-
-es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9:
- version "1.23.9"
- resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz"
- integrity sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==
- dependencies:
- array-buffer-byte-length "^1.0.2"
- arraybuffer.prototype.slice "^1.0.4"
- available-typed-arrays "^1.0.7"
- call-bind "^1.0.8"
- call-bound "^1.0.3"
- data-view-buffer "^1.0.2"
- data-view-byte-length "^1.0.2"
- data-view-byte-offset "^1.0.1"
- es-define-property "^1.0.1"
- es-errors "^1.3.0"
- es-object-atoms "^1.0.0"
- es-set-tostringtag "^2.1.0"
- es-to-primitive "^1.3.0"
- function.prototype.name "^1.1.8"
- get-intrinsic "^1.2.7"
- get-proto "^1.0.0"
- get-symbol-description "^1.1.0"
- globalthis "^1.0.4"
- gopd "^1.2.0"
- has-property-descriptors "^1.0.2"
- has-proto "^1.2.0"
- has-symbols "^1.1.0"
- hasown "^2.0.2"
- internal-slot "^1.1.0"
- is-array-buffer "^3.0.5"
- is-callable "^1.2.7"
- is-data-view "^1.0.2"
- is-regex "^1.2.1"
- is-shared-array-buffer "^1.0.4"
- is-string "^1.1.1"
- is-typed-array "^1.1.15"
- is-weakref "^1.1.0"
- math-intrinsics "^1.1.0"
- object-inspect "^1.13.3"
- object-keys "^1.1.1"
- object.assign "^4.1.7"
- own-keys "^1.0.1"
- regexp.prototype.flags "^1.5.3"
- safe-array-concat "^1.1.3"
- safe-push-apply "^1.0.0"
- safe-regex-test "^1.1.0"
- set-proto "^1.0.0"
- string.prototype.trim "^1.2.10"
- string.prototype.trimend "^1.0.9"
- string.prototype.trimstart "^1.0.8"
- typed-array-buffer "^1.0.3"
- typed-array-byte-length "^1.0.3"
- typed-array-byte-offset "^1.0.4"
- typed-array-length "^1.0.7"
- unbox-primitive "^1.1.0"
- which-typed-array "^1.1.18"
-
-es-define-property@^1.0.0, es-define-property@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz"
- integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
-
-es-errors@^1.3.0:
- version "1.3.0"
- resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz"
- integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
-
-es-iterator-helpers@^1.2.1:
- version "1.2.1"
- resolved "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz"
- integrity sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==
- dependencies:
- call-bind "^1.0.8"
- call-bound "^1.0.3"
- define-properties "^1.2.1"
- es-abstract "^1.23.6"
- es-errors "^1.3.0"
- es-set-tostringtag "^2.0.3"
- function-bind "^1.1.2"
- get-intrinsic "^1.2.6"
- globalthis "^1.0.4"
- gopd "^1.2.0"
- has-property-descriptors "^1.0.2"
- has-proto "^1.2.0"
- has-symbols "^1.1.0"
- internal-slot "^1.1.0"
- iterator.prototype "^1.1.4"
- safe-array-concat "^1.1.3"
-
-es-module-lexer@^1.6.0:
- version "1.7.0"
- resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz"
- integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==
-
-es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
- version "1.1.1"
- resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz"
- integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
- dependencies:
- es-errors "^1.3.0"
-
-es-set-tostringtag@^2.0.3, es-set-tostringtag@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz"
- integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
- dependencies:
- es-errors "^1.3.0"
- get-intrinsic "^1.2.6"
- has-tostringtag "^1.0.2"
- hasown "^2.0.2"
-
-es-shim-unscopables@^1.0.2, es-shim-unscopables@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz"
- integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==
- dependencies:
- hasown "^2.0.2"
-
-es-to-primitive@^1.3.0:
- version "1.3.0"
- resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz"
- integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==
- dependencies:
- is-callable "^1.2.7"
- is-date-object "^1.0.5"
- is-symbol "^1.0.4"
-
-esbuild@^0.21.3:
- version "0.21.5"
- resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz"
- integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==
- optionalDependencies:
- "@esbuild/aix-ppc64" "0.21.5"
- "@esbuild/android-arm" "0.21.5"
- "@esbuild/android-arm64" "0.21.5"
- "@esbuild/android-x64" "0.21.5"
- "@esbuild/darwin-arm64" "0.21.5"
- "@esbuild/darwin-x64" "0.21.5"
- "@esbuild/freebsd-arm64" "0.21.5"
- "@esbuild/freebsd-x64" "0.21.5"
- "@esbuild/linux-arm" "0.21.5"
- "@esbuild/linux-arm64" "0.21.5"
- "@esbuild/linux-ia32" "0.21.5"
- "@esbuild/linux-loong64" "0.21.5"
- "@esbuild/linux-mips64el" "0.21.5"
- "@esbuild/linux-ppc64" "0.21.5"
- "@esbuild/linux-riscv64" "0.21.5"
- "@esbuild/linux-s390x" "0.21.5"
- "@esbuild/linux-x64" "0.21.5"
- "@esbuild/netbsd-x64" "0.21.5"
- "@esbuild/openbsd-x64" "0.21.5"
- "@esbuild/sunos-x64" "0.21.5"
- "@esbuild/win32-arm64" "0.21.5"
- "@esbuild/win32-ia32" "0.21.5"
- "@esbuild/win32-x64" "0.21.5"
-
-escalade@^3.2.0:
- version "3.2.0"
- resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz"
- integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
-
-escape-string-regexp@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
- integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-
-eslint-config-prettier@^10.1.2:
- version "10.1.2"
- resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.2.tgz"
- integrity sha512-Epgp/EofAUeEpIdZkW60MHKvPyru1ruQJxPL+WIycnaPApuseK0Zpkrh/FwL9oIpQvIhJwV7ptOy0DWUjTlCiA==
-
-eslint-import-resolver-node@^0.3.9:
- version "0.3.9"
- resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz"
- integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==
- dependencies:
- debug "^3.2.7"
- is-core-module "^2.13.0"
- resolve "^1.22.4"
-
-eslint-module-utils@^2.12.0:
- version "2.12.0"
- resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz"
- integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==
- dependencies:
- debug "^3.2.7"
-
-eslint-plugin-import@^2.31.0:
- version "2.31.0"
- resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz"
- integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==
- dependencies:
- "@rtsao/scc" "^1.1.0"
- array-includes "^3.1.8"
- array.prototype.findlastindex "^1.2.5"
- array.prototype.flat "^1.3.2"
- array.prototype.flatmap "^1.3.2"
- debug "^3.2.7"
- doctrine "^2.1.0"
- eslint-import-resolver-node "^0.3.9"
- eslint-module-utils "^2.12.0"
- hasown "^2.0.2"
- is-core-module "^2.15.1"
- is-glob "^4.0.3"
- minimatch "^3.1.2"
- object.fromentries "^2.0.8"
- object.groupby "^1.0.3"
- object.values "^1.2.0"
- semver "^6.3.1"
- string.prototype.trimend "^1.0.8"
- tsconfig-paths "^3.15.0"
-
-eslint-plugin-react-hooks@^5.2.0:
- version "5.2.0"
- resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz"
- integrity sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==
-
-eslint-plugin-react@^7.37.5:
- version "7.37.5"
- resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz"
- integrity sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==
- dependencies:
- array-includes "^3.1.8"
- array.prototype.findlast "^1.2.5"
- array.prototype.flatmap "^1.3.3"
- array.prototype.tosorted "^1.1.4"
- doctrine "^2.1.0"
- es-iterator-helpers "^1.2.1"
- estraverse "^5.3.0"
- hasown "^2.0.2"
- jsx-ast-utils "^2.4.1 || ^3.0.0"
- minimatch "^3.1.2"
- object.entries "^1.1.9"
- object.fromentries "^2.0.8"
- object.values "^1.2.1"
- prop-types "^15.8.1"
- resolve "^2.0.0-next.5"
- semver "^6.3.1"
- string.prototype.matchall "^4.0.12"
- string.prototype.repeat "^1.0.0"
-
-eslint-scope@^7.2.2:
- version "7.2.2"
- resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz"
- integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
- dependencies:
- esrecurse "^4.3.0"
- estraverse "^5.2.0"
-
-eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
- version "3.4.3"
- resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz"
- integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
-
-eslint-visitor-keys@^4.2.0:
- version "4.2.0"
- resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz"
- integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==
-
-eslint-visitor-keys@^4.2.1:
- version "4.2.1"
- resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz"
- integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==
-
-"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^8.57.0 || ^9.0.0", eslint@^8.57.1, eslint@>=7.0.0:
- version "8.57.1"
- resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz"
- integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==
- dependencies:
- "@eslint-community/eslint-utils" "^4.2.0"
- "@eslint-community/regexpp" "^4.6.1"
- "@eslint/eslintrc" "^2.1.4"
- "@eslint/js" "8.57.1"
- "@humanwhocodes/config-array" "^0.13.0"
- "@humanwhocodes/module-importer" "^1.0.1"
- "@nodelib/fs.walk" "^1.2.8"
- "@ungap/structured-clone" "^1.2.0"
- ajv "^6.12.4"
- chalk "^4.0.0"
- cross-spawn "^7.0.2"
- debug "^4.3.2"
- doctrine "^3.0.0"
- escape-string-regexp "^4.0.0"
- eslint-scope "^7.2.2"
- eslint-visitor-keys "^3.4.3"
- espree "^9.6.1"
- esquery "^1.4.2"
- esutils "^2.0.2"
- fast-deep-equal "^3.1.3"
- file-entry-cache "^6.0.1"
- find-up "^5.0.0"
- glob-parent "^6.0.2"
- globals "^13.19.0"
- graphemer "^1.4.0"
- ignore "^5.2.0"
- imurmurhash "^0.1.4"
- is-glob "^4.0.0"
- is-path-inside "^3.0.3"
- js-yaml "^4.1.0"
- json-stable-stringify-without-jsonify "^1.0.1"
- levn "^0.4.1"
- lodash.merge "^4.6.2"
- minimatch "^3.1.2"
- natural-compare "^1.4.0"
- optionator "^0.9.3"
- strip-ansi "^6.0.1"
- text-table "^0.2.0"
-
-espree@^9.6.0, espree@^9.6.1:
- version "9.6.1"
- resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz"
- integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
- dependencies:
- acorn "^8.9.0"
- acorn-jsx "^5.3.2"
- eslint-visitor-keys "^3.4.1"
-
-esquery@^1.4.2:
- version "1.6.0"
- resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz"
- integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==
- dependencies:
- estraverse "^5.1.0"
-
-esrecurse@^4.3.0:
- version "4.3.0"
- resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
- integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
- dependencies:
- estraverse "^5.2.0"
-
-estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
- version "5.3.0"
- resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
- integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
-
-estree-walker@^3.0.3:
- version "3.0.3"
- resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz"
- integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==
- dependencies:
- "@types/estree" "^1.0.0"
-
-esutils@^2.0.2:
- version "2.0.3"
- resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
- integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-
-expect-type@^1.2.1:
- version "1.2.1"
- resolved "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz"
- integrity sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==
-
-fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
- version "3.1.3"
- resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
- integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-
-fast-glob@^3.2.11, fast-glob@^3.3.2:
- version "3.3.3"
- resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz"
- integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
- dependencies:
- "@nodelib/fs.stat" "^2.0.2"
- "@nodelib/fs.walk" "^1.2.3"
- glob-parent "^5.1.2"
- merge2 "^1.3.0"
- micromatch "^4.0.8"
-
-fast-json-stable-stringify@^2.0.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
- integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-
-fast-levenshtein@^2.0.6:
- version "2.0.6"
- resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
- integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
-
-fastq@^1.6.0:
- version "1.19.1"
- resolved "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz"
- integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==
- dependencies:
- reusify "^1.0.4"
-
-fdir@^6.4.4:
- version "6.4.4"
- resolved "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz"
- integrity sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==
-
-file-entry-cache@^6.0.1:
- version "6.0.1"
- resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
- integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
- dependencies:
- flat-cache "^3.0.4"
-
-fill-range@^7.1.1:
- version "7.1.1"
- resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz"
- integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
- dependencies:
- to-regex-range "^5.0.1"
-
-find-up@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
- integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
- dependencies:
- locate-path "^6.0.0"
- path-exists "^4.0.0"
-
-flat-cache@^3.0.4:
- version "3.2.0"
- resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz"
- integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==
- dependencies:
- flatted "^3.2.9"
- keyv "^4.5.3"
- rimraf "^3.0.2"
-
-flatted@^3.2.9:
- version "3.3.3"
- resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz"
- integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==
-
-for-each@^0.3.3, for-each@^0.3.5:
- version "0.3.5"
- resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz"
- integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==
- dependencies:
- is-callable "^1.2.7"
-
-fs-extra@^11.1.0:
- version "11.3.0"
- resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz"
- integrity sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==
- dependencies:
- graceful-fs "^4.2.0"
- jsonfile "^6.0.1"
- universalify "^2.0.0"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
- integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-
-fsevents@~2.3.2, fsevents@~2.3.3:
- version "2.3.3"
- resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
- integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
-
-function-bind@^1.1.2:
- version "1.1.2"
- resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
- integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
-
-function.prototype.name@^1.1.6, function.prototype.name@^1.1.8:
- version "1.1.8"
- resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz"
- integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==
- dependencies:
- call-bind "^1.0.8"
- call-bound "^1.0.3"
- define-properties "^1.2.1"
- functions-have-names "^1.2.3"
- hasown "^2.0.2"
- is-callable "^1.2.7"
-
-functions-have-names@^1.2.3:
- version "1.2.3"
- resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz"
- integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
-
-gensync@^1.0.0-beta.2:
- version "1.0.0-beta.2"
- resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
- integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
-
-get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0:
- version "1.3.0"
- resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz"
- integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
- dependencies:
- call-bind-apply-helpers "^1.0.2"
- es-define-property "^1.0.1"
- es-errors "^1.3.0"
- es-object-atoms "^1.1.1"
- function-bind "^1.1.2"
- get-proto "^1.0.1"
- gopd "^1.2.0"
- has-symbols "^1.1.0"
- hasown "^2.0.2"
- math-intrinsics "^1.1.0"
-
-get-proto@^1.0.0, get-proto@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz"
- integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
- dependencies:
- dunder-proto "^1.0.1"
- es-object-atoms "^1.0.0"
-
-get-symbol-description@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz"
- integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==
- dependencies:
- call-bound "^1.0.3"
- es-errors "^1.3.0"
- get-intrinsic "^1.2.6"
-
-glob-parent@^5.1.2, glob-parent@~5.1.2:
- version "5.1.2"
- resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
- integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
- dependencies:
- is-glob "^4.0.1"
-
-glob-parent@^6.0.2:
- version "6.0.2"
- resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
- integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
- dependencies:
- is-glob "^4.0.3"
-
-glob@^7.1.3:
- version "7.2.3"
- resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
- integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.1.1"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-globals@^11.1.0:
- version "11.12.0"
- resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
- integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
-
-globals@^13.19.0:
- version "13.24.0"
- resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz"
- integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
- dependencies:
- type-fest "^0.20.2"
-
-globalthis@^1.0.4:
- version "1.0.4"
- resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz"
- integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==
- dependencies:
- define-properties "^1.2.1"
- gopd "^1.0.1"
-
-gopd@^1.0.1, gopd@^1.2.0:
- version "1.2.0"
- resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz"
- integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
-
-graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
- version "4.2.11"
- resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz"
- integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
-
-graphemer@^1.4.0:
- version "1.4.0"
- resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz"
- integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
-
-has-bigints@^1.0.2:
- version "1.1.0"
- resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz"
- integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==
-
-has-flag@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
- integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-
-has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz"
- integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
- dependencies:
- es-define-property "^1.0.0"
-
-has-proto@^1.2.0:
- version "1.2.0"
- resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz"
- integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==
- dependencies:
- dunder-proto "^1.0.0"
-
-has-symbols@^1.0.3, has-symbols@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz"
- integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
-
-has-tostringtag@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz"
- integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
- dependencies:
- has-symbols "^1.0.3"
-
-hasown@^2.0.2:
- version "2.0.2"
- resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
- integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
- dependencies:
- function-bind "^1.1.2"
-
-iconv-lite@0.6:
- version "0.6.3"
- resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz"
- integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
- dependencies:
- safer-buffer ">= 2.1.2 < 3.0.0"
-
-ignore@^5.2.0, ignore@^5.3.1:
- version "5.3.2"
- resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz"
- integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
-
-import-fresh@^3.2.1:
- version "3.3.1"
- resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz"
- integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==
- dependencies:
- parent-module "^1.0.0"
- resolve-from "^4.0.0"
-
-imurmurhash@^0.1.4:
- version "0.1.4"
- resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
- integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
- integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2:
- version "2.0.4"
- resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-internal-slot@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz"
- integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==
- dependencies:
- es-errors "^1.3.0"
- hasown "^2.0.2"
- side-channel "^1.1.0"
-
-"internmap@1 - 2":
- version "2.0.3"
- resolved "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz"
- integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==
-
-is-array-buffer@^3.0.4, is-array-buffer@^3.0.5:
- version "3.0.5"
- resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz"
- integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==
- dependencies:
- call-bind "^1.0.8"
- call-bound "^1.0.3"
- get-intrinsic "^1.2.6"
-
-is-async-function@^2.0.0:
- version "2.1.1"
- resolved "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz"
- integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==
- dependencies:
- async-function "^1.0.0"
- call-bound "^1.0.3"
- get-proto "^1.0.1"
- has-tostringtag "^1.0.2"
- safe-regex-test "^1.1.0"
-
-is-bigint@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz"
- integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==
- dependencies:
- has-bigints "^1.0.2"
-
-is-binary-path@~2.1.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
- integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
- dependencies:
- binary-extensions "^2.0.0"
-
-is-boolean-object@^1.2.1:
- version "1.2.2"
- resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz"
- integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==
- dependencies:
- call-bound "^1.0.3"
- has-tostringtag "^1.0.2"
-
-is-callable@^1.2.7:
- version "1.2.7"
- resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz"
- integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-
-is-core-module@^2.13.0, is-core-module@^2.15.1, is-core-module@^2.16.0:
- version "2.16.1"
- resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz"
- integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
- dependencies:
- hasown "^2.0.2"
-
-is-data-view@^1.0.1, is-data-view@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz"
- integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==
- dependencies:
- call-bound "^1.0.2"
- get-intrinsic "^1.2.6"
- is-typed-array "^1.1.13"
-
-is-date-object@^1.0.5, is-date-object@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz"
- integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==
- dependencies:
- call-bound "^1.0.2"
- has-tostringtag "^1.0.2"
-
-is-extglob@^2.1.1:
- version "2.1.1"
- resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
- integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
-
-is-finalizationregistry@^1.1.0:
- version "1.1.1"
- resolved "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz"
- integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==
- dependencies:
- call-bound "^1.0.3"
-
-is-generator-function@^1.0.10:
- version "1.1.0"
- resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz"
- integrity sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==
- dependencies:
- call-bound "^1.0.3"
- get-proto "^1.0.0"
- has-tostringtag "^1.0.2"
- safe-regex-test "^1.1.0"
-
-is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
- version "4.0.3"
- resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
- integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
- dependencies:
- is-extglob "^2.1.1"
-
-is-map@^2.0.3:
- version "2.0.3"
- resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz"
- integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==
-
-is-number-object@^1.1.1:
- version "1.1.1"
- resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz"
- integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==
- dependencies:
- call-bound "^1.0.3"
- has-tostringtag "^1.0.2"
-
-is-number@^7.0.0:
- version "7.0.0"
- resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
- integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-
-is-path-inside@^3.0.3:
- version "3.0.3"
- resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz"
- integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
-
-is-regex@^1.2.1:
- version "1.2.1"
- resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz"
- integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==
- dependencies:
- call-bound "^1.0.2"
- gopd "^1.2.0"
- has-tostringtag "^1.0.2"
- hasown "^2.0.2"
-
-is-set@^2.0.3:
- version "2.0.3"
- resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz"
- integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==
-
-is-shared-array-buffer@^1.0.4:
- version "1.0.4"
- resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz"
- integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==
- dependencies:
- call-bound "^1.0.3"
-
-is-string@^1.0.7, is-string@^1.1.1:
- version "1.1.1"
- resolved "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz"
- integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==
- dependencies:
- call-bound "^1.0.3"
- has-tostringtag "^1.0.2"
-
-is-symbol@^1.0.4, is-symbol@^1.1.1:
- version "1.1.1"
- resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz"
- integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==
- dependencies:
- call-bound "^1.0.2"
- has-symbols "^1.1.0"
- safe-regex-test "^1.1.0"
-
-is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15:
- version "1.1.15"
- resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz"
- integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==
- dependencies:
- which-typed-array "^1.1.16"
-
-is-weakmap@^2.0.2:
- version "2.0.2"
- resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz"
- integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==
-
-is-weakref@^1.0.2, is-weakref@^1.1.0:
- version "1.1.1"
- resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz"
- integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==
- dependencies:
- call-bound "^1.0.3"
-
-is-weakset@^2.0.3:
- version "2.0.4"
- resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz"
- integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==
- dependencies:
- call-bound "^1.0.3"
- get-intrinsic "^1.2.6"
-
-isarray@^2.0.5:
- version "2.0.5"
- resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz"
- integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
- integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
-
-iterator.prototype@^1.1.4:
- version "1.1.5"
- resolved "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz"
- integrity sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==
- dependencies:
- define-data-property "^1.1.4"
- es-object-atoms "^1.0.0"
- get-intrinsic "^1.2.6"
- get-proto "^1.0.0"
- has-symbols "^1.1.0"
- set-function-name "^2.0.2"
-
-jiti@^2.4.2:
- version "2.4.2"
- resolved "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz"
- integrity sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==
-
-"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
- integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-
-js-yaml@^4.1.0:
- version "4.1.0"
- resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
- integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
- dependencies:
- argparse "^2.0.1"
-
-jsesc@^3.0.2:
- version "3.1.0"
- resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz"
- integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==
-
-json-buffer@3.0.1:
- version "3.0.1"
- resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz"
- integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
-
-json-schema-traverse@^0.4.1:
- version "0.4.1"
- resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
- integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
-
-json-stable-stringify-without-jsonify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
- integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
-
-json5@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz"
- integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==
- dependencies:
- minimist "^1.2.0"
-
-json5@^2.2.3:
- version "2.2.3"
- resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz"
- integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
-
-jsonfile@^6.0.1:
- version "6.1.0"
- resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz"
- integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
- dependencies:
- universalify "^2.0.0"
- optionalDependencies:
- graceful-fs "^4.1.6"
-
-"jsx-ast-utils@^2.4.1 || ^3.0.0":
- version "3.3.5"
- resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz"
- integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==
- dependencies:
- array-includes "^3.1.6"
- array.prototype.flat "^1.3.1"
- object.assign "^4.1.4"
- object.values "^1.1.6"
-
-keyv@^4.5.3:
- version "4.5.4"
- resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz"
- integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
- dependencies:
- json-buffer "3.0.1"
-
-levn@^0.4.1:
- version "0.4.1"
- resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
- integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
- dependencies:
- prelude-ls "^1.2.1"
- type-check "~0.4.0"
-
-lightningcss-darwin-arm64@1.29.2:
- version "1.29.2"
- resolved "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz"
- integrity sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==
-
-lightningcss@^1.21.0, lightningcss@1.29.2:
- version "1.29.2"
- resolved "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz"
- integrity sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==
- dependencies:
- detect-libc "^2.0.3"
- optionalDependencies:
- lightningcss-darwin-arm64 "1.29.2"
- lightningcss-darwin-x64 "1.29.2"
- lightningcss-freebsd-x64 "1.29.2"
- lightningcss-linux-arm-gnueabihf "1.29.2"
- lightningcss-linux-arm64-gnu "1.29.2"
- lightningcss-linux-arm64-musl "1.29.2"
- lightningcss-linux-x64-gnu "1.29.2"
- lightningcss-linux-x64-musl "1.29.2"
- lightningcss-win32-arm64-msvc "1.29.2"
- lightningcss-win32-x64-msvc "1.29.2"
-
-locate-path@^6.0.0:
- version "6.0.0"
- resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"
- integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
- dependencies:
- p-locate "^5.0.0"
-
-lodash.merge@^4.6.2:
- version "4.6.2"
- resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
- integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
-
-lodash@^4.17.21:
- version "4.17.21"
- resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
- integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-
-loose-envify@^1.4.0:
- version "1.4.0"
- resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
- integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
- dependencies:
- js-tokens "^3.0.0 || ^4.0.0"
-
-loupe@^3.1.0, loupe@^3.1.3:
- version "3.1.3"
- resolved "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz"
- integrity sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==
-
-lru-cache@^5.1.1:
- version "5.1.1"
- resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"
- integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
- dependencies:
- yallist "^3.0.2"
-
-magic-string@^0.30.17:
- version "0.30.17"
- resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz"
- integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==
- dependencies:
- "@jridgewell/sourcemap-codec" "^1.5.0"
-
-math-intrinsics@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz"
- integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
-
-merge2@^1.3.0:
- version "1.4.1"
- resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
- integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
-
-micromatch@^4.0.8:
- version "4.0.8"
- resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz"
- integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
- dependencies:
- braces "^3.0.3"
- picomatch "^2.3.1"
-
-minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
- version "3.1.2"
- resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
- integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
- dependencies:
- brace-expansion "^1.1.7"
-
-minimatch@^9.0.4:
- version "9.0.5"
- resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz"
- integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
- dependencies:
- brace-expansion "^2.0.1"
-
-minimist@^1.2.0, minimist@^1.2.6:
- version "1.2.8"
- resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"
- integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
-
-ms@^2.1.1, ms@^2.1.3:
- version "2.1.3"
- resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
- integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-
-nanoid@^3.3.8:
- version "3.3.11"
- resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz"
- integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==
-
-natural-compare@^1.4.0:
- version "1.4.0"
- resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
- integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
-
-node-releases@^2.0.19:
- version "2.0.19"
- resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz"
- integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==
-
-normalize-path@^3.0.0, normalize-path@~3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
- integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-
-object-assign@^4.1.1:
- version "4.1.1"
- resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
- integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
-
-object-inspect@^1.13.3:
- version "1.13.4"
- resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz"
- integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==
-
-object-keys@^1.1.1:
- version "1.1.1"
- resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"
- integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-
-object.assign@^4.1.4, object.assign@^4.1.7:
- version "4.1.7"
- resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz"
- integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==
- dependencies:
- call-bind "^1.0.8"
- call-bound "^1.0.3"
- define-properties "^1.2.1"
- es-object-atoms "^1.0.0"
- has-symbols "^1.1.0"
- object-keys "^1.1.1"
-
-object.entries@^1.1.9:
- version "1.1.9"
- resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz"
- integrity sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==
- dependencies:
- call-bind "^1.0.8"
- call-bound "^1.0.4"
- define-properties "^1.2.1"
- es-object-atoms "^1.1.1"
-
-object.fromentries@^2.0.8:
- version "2.0.8"
- resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz"
- integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.23.2"
- es-object-atoms "^1.0.0"
-
-object.groupby@^1.0.3:
- version "1.0.3"
- resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz"
- integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.23.2"
-
-object.values@^1.1.6, object.values@^1.2.0, object.values@^1.2.1:
- version "1.2.1"
- resolved "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz"
- integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==
- dependencies:
- call-bind "^1.0.8"
- call-bound "^1.0.3"
- define-properties "^1.2.1"
- es-object-atoms "^1.0.0"
-
-once@^1.3.0:
- version "1.4.0"
- resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
- integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
- dependencies:
- wrappy "1"
-
-optionator@^0.9.3:
- version "0.9.4"
- resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz"
- integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
- dependencies:
- deep-is "^0.1.3"
- fast-levenshtein "^2.0.6"
- levn "^0.4.1"
- prelude-ls "^1.2.1"
- type-check "^0.4.0"
- word-wrap "^1.2.5"
-
-own-keys@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz"
- integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==
- dependencies:
- get-intrinsic "^1.2.6"
- object-keys "^1.1.1"
- safe-push-apply "^1.0.0"
-
-p-limit@^3.0.2:
- version "3.1.0"
- resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
- integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
- dependencies:
- yocto-queue "^0.1.0"
-
-p-locate@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz"
- integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
- dependencies:
- p-limit "^3.0.2"
-
-p-map@^7.0.3:
- version "7.0.3"
- resolved "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz"
- integrity sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==
-
-parent-module@^1.0.0:
- version "1.0.1"
- resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
- integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
- dependencies:
- callsites "^3.0.0"
-
-path-exists@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
- integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
-
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
- integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
-
-path-key@^3.1.0:
- version "3.1.1"
- resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
- integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-
-path-parse@^1.0.7:
- version "1.0.7"
- resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
- integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-
-pathe@^2.0.3:
- version "2.0.3"
- resolved "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz"
- integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==
-
-pathval@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz"
- integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==
-
-picocolors@^1.0.0, picocolors@^1.1.1:
- version "1.1.1"
- resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz"
- integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
-
-picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
- version "2.3.1"
- resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
- integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-
-"picomatch@^3 || ^4", picomatch@^4.0.2:
- version "4.0.2"
- resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz"
- integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==
-
-possible-typed-array-names@^1.0.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz"
- integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==
-
-postcss@^8.4.43:
- version "8.5.3"
- resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz"
- integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==
- dependencies:
- nanoid "^3.3.8"
- picocolors "^1.1.1"
- source-map-js "^1.2.1"
-
-prelude-ls@^1.2.1:
- version "1.2.1"
- resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
- integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
-
-prettier@^3.5.3:
- version "3.5.3"
- resolved "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz"
- integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==
-
-prop-types@^15.8.1:
- version "15.8.1"
- resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
- integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
- dependencies:
- loose-envify "^1.4.0"
- object-assign "^4.1.1"
- react-is "^16.13.1"
-
-punycode@^2.1.0:
- version "2.3.1"
- resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz"
- integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
-
-queue-microtask@^1.2.2:
- version "1.2.3"
- resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
- integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
-
-"react-dom@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", react-dom@^19.1.0, react-dom@>=16.8.0, react-dom@>=18:
- version "19.1.0"
- resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz"
- integrity sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==
- dependencies:
- scheduler "^0.26.0"
-
-react-is@^16.13.1:
- version "16.13.1"
- resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
- integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
-
-react-refresh@^0.14.2:
- version "0.14.2"
- resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz"
- integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==
-
-react-router-dom@^7.5.1:
- version "7.5.1"
- resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.5.1.tgz"
- integrity sha512-5DPSPc7ENrt2tlKPq0FtpG80ZbqA9aIKEyqX6hSNJDlol/tr6iqCK4crqdsusmOSSotq6zDsn0y3urX9TuTNmA==
- dependencies:
- react-router "7.5.1"
-
-react-router@7.5.1:
- version "7.5.1"
- resolved "https://registry.npmjs.org/react-router/-/react-router-7.5.1.tgz"
- integrity sha512-/jjU3fcYNd2bwz9Q0xt5TwyiyoO8XjSEFXJY4O/lMAlkGTHWuHRAbR9Etik+lSDqMC7A7mz3UlXzgYT6Vl58sA==
- dependencies:
- cookie "^1.0.1"
- set-cookie-parser "^2.6.0"
- turbo-stream "2.4.0"
-
-"react@^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", react@^19.1.0, react@>=16.8.0, react@>=18:
- version "19.1.0"
- resolved "https://registry.npmjs.org/react/-/react-19.1.0.tgz"
- integrity sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==
-
-readdirp@~3.6.0:
- version "3.6.0"
- resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
- integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
- dependencies:
- picomatch "^2.2.1"
-
-reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9:
- version "1.0.10"
- resolved "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz"
- integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==
- dependencies:
- call-bind "^1.0.8"
- define-properties "^1.2.1"
- es-abstract "^1.23.9"
- es-errors "^1.3.0"
- es-object-atoms "^1.0.0"
- get-intrinsic "^1.2.7"
- get-proto "^1.0.1"
- which-builtin-type "^1.2.1"
-
-regexp.prototype.flags@^1.5.3:
- version "1.5.4"
- resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz"
- integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==
- dependencies:
- call-bind "^1.0.8"
- define-properties "^1.2.1"
- es-errors "^1.3.0"
- get-proto "^1.0.1"
- gopd "^1.2.0"
- set-function-name "^2.0.2"
-
-resolve-from@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
- integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
-
-resolve@^1.22.4:
- version "1.22.10"
- resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz"
- integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==
- dependencies:
- is-core-module "^2.16.0"
- path-parse "^1.0.7"
- supports-preserve-symlinks-flag "^1.0.0"
-
-resolve@^2.0.0-next.5:
- version "2.0.0-next.5"
- resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz"
- integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==
- dependencies:
- is-core-module "^2.13.0"
- path-parse "^1.0.7"
- supports-preserve-symlinks-flag "^1.0.0"
-
-reusify@^1.0.4:
- version "1.1.0"
- resolved "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz"
- integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==
-
-rimraf@^3.0.2:
- version "3.0.2"
- resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
- integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
- dependencies:
- glob "^7.1.3"
-
-robust-predicates@^3.0.2:
- version "3.0.2"
- resolved "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz"
- integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==
-
-rollup@^4.20.0:
- version "4.39.0"
- resolved "https://registry.npmjs.org/rollup/-/rollup-4.39.0.tgz"
- integrity sha512-thI8kNc02yNvnmJp8dr3fNWJ9tCONDhp6TV35X6HkKGGs9E6q7YWCHbe5vKiTa7TAiNcFEmXKj3X/pG2b3ci0g==
- dependencies:
- "@types/estree" "1.0.7"
- optionalDependencies:
- "@rollup/rollup-android-arm-eabi" "4.39.0"
- "@rollup/rollup-android-arm64" "4.39.0"
- "@rollup/rollup-darwin-arm64" "4.39.0"
- "@rollup/rollup-darwin-x64" "4.39.0"
- "@rollup/rollup-freebsd-arm64" "4.39.0"
- "@rollup/rollup-freebsd-x64" "4.39.0"
- "@rollup/rollup-linux-arm-gnueabihf" "4.39.0"
- "@rollup/rollup-linux-arm-musleabihf" "4.39.0"
- "@rollup/rollup-linux-arm64-gnu" "4.39.0"
- "@rollup/rollup-linux-arm64-musl" "4.39.0"
- "@rollup/rollup-linux-loongarch64-gnu" "4.39.0"
- "@rollup/rollup-linux-powerpc64le-gnu" "4.39.0"
- "@rollup/rollup-linux-riscv64-gnu" "4.39.0"
- "@rollup/rollup-linux-riscv64-musl" "4.39.0"
- "@rollup/rollup-linux-s390x-gnu" "4.39.0"
- "@rollup/rollup-linux-x64-gnu" "4.39.0"
- "@rollup/rollup-linux-x64-musl" "4.39.0"
- "@rollup/rollup-win32-arm64-msvc" "4.39.0"
- "@rollup/rollup-win32-ia32-msvc" "4.39.0"
- "@rollup/rollup-win32-x64-msvc" "4.39.0"
- fsevents "~2.3.2"
-
-run-parallel@^1.1.9:
- version "1.2.0"
- resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
- integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
- dependencies:
- queue-microtask "^1.2.2"
-
-rw@1:
- version "1.3.3"
- resolved "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz"
- integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==
-
-safe-array-concat@^1.1.3:
- version "1.1.3"
- resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz"
- integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==
- dependencies:
- call-bind "^1.0.8"
- call-bound "^1.0.2"
- get-intrinsic "^1.2.6"
- has-symbols "^1.1.0"
- isarray "^2.0.5"
-
-safe-push-apply@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz"
- integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==
- dependencies:
- es-errors "^1.3.0"
- isarray "^2.0.5"
-
-safe-regex-test@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz"
- integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==
- dependencies:
- call-bound "^1.0.2"
- es-errors "^1.3.0"
- is-regex "^1.2.1"
-
-"safer-buffer@>= 2.1.2 < 3.0.0":
- version "2.1.2"
- resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
- integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-
-scheduler@^0.26.0:
- version "0.26.0"
- resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz"
- integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==
-
-semver@^6.3.1:
- version "6.3.1"
- resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
- integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-
-semver@^7.6.0:
- version "7.7.2"
- resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz"
- integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
-
-set-cookie-parser@^2.6.0:
- version "2.7.1"
- resolved "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz"
- integrity sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==
-
-set-function-length@^1.2.2:
- version "1.2.2"
- resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz"
- integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
- dependencies:
- define-data-property "^1.1.4"
- es-errors "^1.3.0"
- function-bind "^1.1.2"
- get-intrinsic "^1.2.4"
- gopd "^1.0.1"
- has-property-descriptors "^1.0.2"
-
-set-function-name@^2.0.2:
- version "2.0.2"
- resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz"
- integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==
- dependencies:
- define-data-property "^1.1.4"
- es-errors "^1.3.0"
- functions-have-names "^1.2.3"
- has-property-descriptors "^1.0.2"
-
-set-proto@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz"
- integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==
- dependencies:
- dunder-proto "^1.0.1"
- es-errors "^1.3.0"
- es-object-atoms "^1.0.0"
-
-shebang-command@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
- integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
- dependencies:
- shebang-regex "^3.0.0"
-
-shebang-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
- integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
-
-side-channel-list@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz"
- integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==
- dependencies:
- es-errors "^1.3.0"
- object-inspect "^1.13.3"
-
-side-channel-map@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz"
- integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==
- dependencies:
- call-bound "^1.0.2"
- es-errors "^1.3.0"
- get-intrinsic "^1.2.5"
- object-inspect "^1.13.3"
-
-side-channel-weakmap@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz"
- integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==
- dependencies:
- call-bound "^1.0.2"
- es-errors "^1.3.0"
- get-intrinsic "^1.2.5"
- object-inspect "^1.13.3"
- side-channel-map "^1.0.1"
-
-side-channel@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz"
- integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==
- dependencies:
- es-errors "^1.3.0"
- object-inspect "^1.13.3"
- side-channel-list "^1.0.0"
- side-channel-map "^1.0.1"
- side-channel-weakmap "^1.0.2"
-
-siginfo@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz"
- integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==
-
-source-map-js@^1.2.1:
- version "1.2.1"
- resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz"
- integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
-
-stackback@0.0.2:
- version "0.0.2"
- resolved "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz"
- integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==
-
-std-env@^3.9.0:
- version "3.9.0"
- resolved "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz"
- integrity sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==
-
-string.prototype.matchall@^4.0.12:
- version "4.0.12"
- resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz"
- integrity sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==
- dependencies:
- call-bind "^1.0.8"
- call-bound "^1.0.3"
- define-properties "^1.2.1"
- es-abstract "^1.23.6"
- es-errors "^1.3.0"
- es-object-atoms "^1.0.0"
- get-intrinsic "^1.2.6"
- gopd "^1.2.0"
- has-symbols "^1.1.0"
- internal-slot "^1.1.0"
- regexp.prototype.flags "^1.5.3"
- set-function-name "^2.0.2"
- side-channel "^1.1.0"
-
-string.prototype.repeat@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz"
- integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==
- dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.17.5"
-
-string.prototype.trim@^1.2.10:
- version "1.2.10"
- resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz"
- integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==
- dependencies:
- call-bind "^1.0.8"
- call-bound "^1.0.2"
- define-data-property "^1.1.4"
- define-properties "^1.2.1"
- es-abstract "^1.23.5"
- es-object-atoms "^1.0.0"
- has-property-descriptors "^1.0.2"
-
-string.prototype.trimend@^1.0.8, string.prototype.trimend@^1.0.9:
- version "1.0.9"
- resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz"
- integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==
- dependencies:
- call-bind "^1.0.8"
- call-bound "^1.0.2"
- define-properties "^1.2.1"
- es-object-atoms "^1.0.0"
-
-string.prototype.trimstart@^1.0.8:
- version "1.0.8"
- resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz"
- integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==
- dependencies:
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-object-atoms "^1.0.0"
-
-strip-ansi@^6.0.1:
- version "6.0.1"
- resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
-strip-bom@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"
- integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
-
-strip-json-comments@^3.1.1:
- version "3.1.1"
- resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
- integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
-
-supports-color@^7.1.0:
- version "7.2.0"
- resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
- integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
- dependencies:
- has-flag "^4.0.0"
-
-supports-preserve-symlinks-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
- integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-
-swr@^2.3.3:
- version "2.3.3"
- resolved "https://registry.npmjs.org/swr/-/swr-2.3.3.tgz"
- integrity sha512-dshNvs3ExOqtZ6kJBaAsabhPdHyeY4P2cKwRCniDVifBMoG/SVI7tfLWqPXriVspf2Rg4tPzXJTnwaihIeFw2A==
- dependencies:
- dequal "^2.0.3"
- use-sync-external-store "^1.4.0"
-
-tailwindcss@^4.1.4, tailwindcss@4.1.4:
- version "4.1.4"
- resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.4.tgz"
- integrity sha512-1ZIUqtPITFbv/DxRmDr5/agPqJwF69d24m9qmM1939TJehgY539CtzeZRjbLt5G6fSy/7YqqYsfvoTEw9xUI2A==
-
-tapable@^2.2.0:
- version "2.2.1"
- resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz"
- integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
-
-text-table@^0.2.0:
- version "0.2.0"
- resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
- integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
-
-tinybench@^2.9.0:
- version "2.9.0"
- resolved "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz"
- integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==
-
-tinyexec@^0.3.2:
- version "0.3.2"
- resolved "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz"
- integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==
-
-tinyglobby@^0.2.13:
- version "0.2.13"
- resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz"
- integrity sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==
- dependencies:
- fdir "^6.4.4"
- picomatch "^4.0.2"
-
-tinypool@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz"
- integrity sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==
-
-tinyrainbow@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz"
- integrity sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==
-
-tinyspy@^3.0.2:
- version "3.0.2"
- resolved "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz"
- integrity sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==
-
-to-regex-range@^5.0.1:
- version "5.0.1"
- resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
- integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
- dependencies:
- is-number "^7.0.0"
-
-ts-api-utils@^2.0.1, ts-api-utils@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz"
- integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==
-
-tsconfig-paths@^3.15.0:
- version "3.15.0"
- resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz"
- integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==
- dependencies:
- "@types/json5" "^0.0.29"
- json5 "^1.0.2"
- minimist "^1.2.6"
- strip-bom "^3.0.0"
-
-turbo-stream@2.4.0:
- version "2.4.0"
- resolved "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz"
- integrity sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==
-
-type-check@^0.4.0, type-check@~0.4.0:
- version "0.4.0"
- resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
- integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
- dependencies:
- prelude-ls "^1.2.1"
-
-type-fest@^0.20.2:
- version "0.20.2"
- resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
- integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
-
-typed-array-buffer@^1.0.3:
- version "1.0.3"
- resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz"
- integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==
- dependencies:
- call-bound "^1.0.3"
- es-errors "^1.3.0"
- is-typed-array "^1.1.14"
-
-typed-array-byte-length@^1.0.3:
- version "1.0.3"
- resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz"
- integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==
- dependencies:
- call-bind "^1.0.8"
- for-each "^0.3.3"
- gopd "^1.2.0"
- has-proto "^1.2.0"
- is-typed-array "^1.1.14"
-
-typed-array-byte-offset@^1.0.4:
- version "1.0.4"
- resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz"
- integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==
- dependencies:
- available-typed-arrays "^1.0.7"
- call-bind "^1.0.8"
- for-each "^0.3.3"
- gopd "^1.2.0"
- has-proto "^1.2.0"
- is-typed-array "^1.1.15"
- reflect.getprototypeof "^1.0.9"
-
-typed-array-length@^1.0.7:
- version "1.0.7"
- resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz"
- integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==
- dependencies:
- call-bind "^1.0.7"
- for-each "^0.3.3"
- gopd "^1.0.1"
- is-typed-array "^1.1.13"
- possible-typed-array-names "^1.0.0"
- reflect.getprototypeof "^1.0.6"
-
-typescript@^5.3.3, typescript@>=4.8.4, "typescript@>=4.8.4 <5.9.0", "typescript@>=4.8.4 <6.0.0":
- version "5.8.3"
- resolved "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz"
- integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==
-
-unbox-primitive@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz"
- integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==
- dependencies:
- call-bound "^1.0.3"
- has-bigints "^1.0.2"
- has-symbols "^1.1.0"
- which-boxed-primitive "^1.1.1"
-
-undici-types@~6.19.2:
- version "6.19.8"
- resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz"
- integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
-
-universalify@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz"
- integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
-
-update-browserslist-db@^1.1.1:
- version "1.1.3"
- resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz"
- integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==
- dependencies:
- escalade "^3.2.0"
- picocolors "^1.1.1"
-
-uri-js@^4.2.2:
- version "4.4.1"
- resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
- integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
- dependencies:
- punycode "^2.1.0"
-
-use-sync-external-store@^1.4.0:
- version "1.5.0"
- resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz"
- integrity sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==
-
-vite-node@3.1.2:
- version "3.1.2"
- resolved "https://registry.npmjs.org/vite-node/-/vite-node-3.1.2.tgz"
- integrity sha512-/8iMryv46J3aK13iUXsei5G/A3CUlW4665THCPS+K8xAaqrVWiGB4RfXMQXCLjpK9P2eK//BczrVkn5JLAk6DA==
- dependencies:
- cac "^6.7.14"
- debug "^4.4.0"
- es-module-lexer "^1.6.0"
- pathe "^2.0.3"
- vite "^5.0.0 || ^6.0.0"
-
-vite-plugin-static-copy@^2.3.1:
- version "2.3.1"
- resolved "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-2.3.1.tgz"
- integrity sha512-EfsPcBm3ewg3UMG8RJaC0ADq6/qnUZnokXx4By4+2cAcipjT9i0Y0owIJGqmZI7d6nxk4qB1q5aXOwNuSyPdyA==
- dependencies:
- chokidar "^3.5.3"
- fast-glob "^3.2.11"
- fs-extra "^11.1.0"
- p-map "^7.0.3"
- picocolors "^1.0.0"
-
-"vite@^4.2.0 || ^5.0.0 || ^6.0.0", "vite@^5.0.0 || ^6.0.0", vite@^5.1.4, "vite@^5.2.0 || ^6":
- version "5.4.18"
- resolved "https://registry.npmjs.org/vite/-/vite-5.4.18.tgz"
- integrity sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==
- dependencies:
- esbuild "^0.21.3"
- postcss "^8.4.43"
- rollup "^4.20.0"
- optionalDependencies:
- fsevents "~2.3.3"
-
-vitest@^3.1.2:
- version "3.1.2"
- resolved "https://registry.npmjs.org/vitest/-/vitest-3.1.2.tgz"
- integrity sha512-WaxpJe092ID1C0mr+LH9MmNrhfzi8I65EX/NRU/Ld016KqQNRgxSOlGNP1hHN+a/F8L15Mh8klwaF77zR3GeDQ==
- dependencies:
- "@vitest/expect" "3.1.2"
- "@vitest/mocker" "3.1.2"
- "@vitest/pretty-format" "^3.1.2"
- "@vitest/runner" "3.1.2"
- "@vitest/snapshot" "3.1.2"
- "@vitest/spy" "3.1.2"
- "@vitest/utils" "3.1.2"
- chai "^5.2.0"
- debug "^4.4.0"
- expect-type "^1.2.1"
- magic-string "^0.30.17"
- pathe "^2.0.3"
- std-env "^3.9.0"
- tinybench "^2.9.0"
- tinyexec "^0.3.2"
- tinyglobby "^0.2.13"
- tinypool "^1.0.2"
- tinyrainbow "^2.0.0"
- vite "^5.0.0 || ^6.0.0"
- vite-node "3.1.2"
- why-is-node-running "^2.3.0"
-
-which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1:
- version "1.1.1"
- resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz"
- integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==
- dependencies:
- is-bigint "^1.1.0"
- is-boolean-object "^1.2.1"
- is-number-object "^1.1.1"
- is-string "^1.1.1"
- is-symbol "^1.1.1"
-
-which-builtin-type@^1.2.1:
- version "1.2.1"
- resolved "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz"
- integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==
- dependencies:
- call-bound "^1.0.2"
- function.prototype.name "^1.1.6"
- has-tostringtag "^1.0.2"
- is-async-function "^2.0.0"
- is-date-object "^1.1.0"
- is-finalizationregistry "^1.1.0"
- is-generator-function "^1.0.10"
- is-regex "^1.2.1"
- is-weakref "^1.0.2"
- isarray "^2.0.5"
- which-boxed-primitive "^1.1.0"
- which-collection "^1.0.2"
- which-typed-array "^1.1.16"
-
-which-collection@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz"
- integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==
- dependencies:
- is-map "^2.0.3"
- is-set "^2.0.3"
- is-weakmap "^2.0.2"
- is-weakset "^2.0.3"
-
-which-typed-array@^1.1.16, which-typed-array@^1.1.18:
- version "1.1.19"
- resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz"
- integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==
- dependencies:
- available-typed-arrays "^1.0.7"
- call-bind "^1.0.8"
- call-bound "^1.0.4"
- for-each "^0.3.5"
- get-proto "^1.0.1"
- gopd "^1.2.0"
- has-tostringtag "^1.0.2"
-
-which@^2.0.1:
- version "2.0.2"
- resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
- integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
- dependencies:
- isexe "^2.0.0"
-
-why-is-node-running@^2.3.0:
- version "2.3.0"
- resolved "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz"
- integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==
- dependencies:
- siginfo "^2.0.0"
- stackback "0.0.2"
-
-word-wrap@^1.2.5:
- version "1.2.5"
- resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz"
- integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
- integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
-
-yallist@^3.0.2:
- version "3.1.1"
- resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"
- integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
-
-yocto-queue@^0.1.0:
- version "0.1.0"
- resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
- integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+# This file is generated by running "yarn install" inside your project.
+# Manual changes might be lost - proceed with caution!
+
+__metadata:
+ version: 8
+ cacheKey: 10c0
+
+"@ampproject/remapping@npm:^2.2.0":
+ version: 2.3.0
+ resolution: "@ampproject/remapping@npm:2.3.0"
+ dependencies:
+ "@jridgewell/gen-mapping": "npm:^0.3.5"
+ "@jridgewell/trace-mapping": "npm:^0.3.24"
+ checksum: 10c0/81d63cca5443e0f0c72ae18b544cc28c7c0ec2cea46e7cb888bb0e0f411a1191d0d6b7af798d54e30777d8d1488b2ec0732aac2be342d3d7d3ffd271c6f489ed
+ languageName: node
+ linkType: hard
+
+"@babel/code-frame@npm:^7.26.2":
+ version: 7.26.2
+ resolution: "@babel/code-frame@npm:7.26.2"
+ dependencies:
+ "@babel/helper-validator-identifier": "npm:^7.25.9"
+ js-tokens: "npm:^4.0.0"
+ picocolors: "npm:^1.0.0"
+ checksum: 10c0/7d79621a6849183c415486af99b1a20b84737e8c11cd55b6544f688c51ce1fd710e6d869c3dd21232023da272a79b91efb3e83b5bc2dc65c1187c5fcd1b72ea8
+ languageName: node
+ linkType: hard
+
+"@babel/compat-data@npm:^7.26.8":
+ version: 7.26.8
+ resolution: "@babel/compat-data@npm:7.26.8"
+ checksum: 10c0/66408a0388c3457fff1c2f6c3a061278dd7b3d2f0455ea29bb7b187fa52c60ae8b4054b3c0a184e21e45f0eaac63cf390737bc7504d1f4a088a6e7f652c068ca
+ languageName: node
+ linkType: hard
+
+"@babel/core@npm:^7.26.0":
+ version: 7.26.10
+ resolution: "@babel/core@npm:7.26.10"
+ dependencies:
+ "@ampproject/remapping": "npm:^2.2.0"
+ "@babel/code-frame": "npm:^7.26.2"
+ "@babel/generator": "npm:^7.26.10"
+ "@babel/helper-compilation-targets": "npm:^7.26.5"
+ "@babel/helper-module-transforms": "npm:^7.26.0"
+ "@babel/helpers": "npm:^7.26.10"
+ "@babel/parser": "npm:^7.26.10"
+ "@babel/template": "npm:^7.26.9"
+ "@babel/traverse": "npm:^7.26.10"
+ "@babel/types": "npm:^7.26.10"
+ 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/e046e0e988ab53841b512ee9d263ca409f6c46e2a999fe53024688b92db394346fa3aeae5ea0866331f62133982eee05a675d22922a4603c3f603aa09a581d62
+ languageName: node
+ linkType: hard
+
+"@babel/generator@npm:^7.26.10, @babel/generator@npm:^7.27.0":
+ version: 7.27.0
+ resolution: "@babel/generator@npm:7.27.0"
+ dependencies:
+ "@babel/parser": "npm:^7.27.0"
+ "@babel/types": "npm:^7.27.0"
+ "@jridgewell/gen-mapping": "npm:^0.3.5"
+ "@jridgewell/trace-mapping": "npm:^0.3.25"
+ jsesc: "npm:^3.0.2"
+ checksum: 10c0/7cb10693d2b365c278f109a745dc08856cae139d262748b77b70ce1d97da84627f79648cab6940d847392c0e5d180441669ed958b3aee98d9c7d274b37c553bd
+ 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"
+ dependencies:
+ "@babel/compat-data": "npm:^7.26.8"
+ "@babel/helper-validator-option": "npm:^7.25.9"
+ browserslist: "npm:^4.24.0"
+ lru-cache: "npm:^5.1.1"
+ semver: "npm:^6.3.1"
+ checksum: 10c0/375c9f80e6540118f41bd53dd54d670b8bf91235d631bdead44c8b313b26e9cd89aed5c6df770ad13a87a464497b5346bb72b9462ba690473da422f5402618b6
+ 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"
+ dependencies:
+ "@babel/traverse": "npm:^7.25.9"
+ "@babel/types": "npm:^7.25.9"
+ checksum: 10c0/078d3c2b45d1f97ffe6bb47f61961be4785d2342a4156d8b42c92ee4e1b7b9e365655dd6cb25329e8fe1a675c91eeac7e3d04f0c518b67e417e29d6e27b6aa70
+ 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"
+ dependencies:
+ "@babel/helper-module-imports": "npm:^7.25.9"
+ "@babel/helper-validator-identifier": "npm:^7.25.9"
+ "@babel/traverse": "npm:^7.25.9"
+ peerDependencies:
+ "@babel/core": ^7.0.0
+ checksum: 10c0/ee111b68a5933481d76633dad9cdab30c41df4479f0e5e1cc4756dc9447c1afd2c9473b5ba006362e35b17f4ebddd5fca090233bef8dfc84dca9d9127e56ec3a
+ languageName: node
+ linkType: hard
+
+"@babel/helper-plugin-utils@npm:^7.25.9":
+ version: 7.26.5
+ resolution: "@babel/helper-plugin-utils@npm:7.26.5"
+ checksum: 10c0/cdaba71d4b891aa6a8dfbe5bac2f94effb13e5fa4c2c487667fdbaa04eae059b78b28d85a885071f45f7205aeb56d16759e1bed9c118b94b16e4720ef1ab0f65
+ languageName: node
+ linkType: hard
+
+"@babel/helper-string-parser@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-string-parser@npm:7.25.9"
+ checksum: 10c0/7244b45d8e65f6b4338a6a68a8556f2cb161b782343e97281a5f2b9b93e420cad0d9f5773a59d79f61d0c448913d06f6a2358a87f2e203cf112e3c5b53522ee6
+ 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"
+ checksum: 10c0/4fc6f830177b7b7e887ad3277ddb3b91d81e6c4a24151540d9d1023e8dc6b1c0505f0f0628ae653601eb4388a8db45c1c14b2c07a9173837aef7e4116456259d
+ 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"
+ checksum: 10c0/27fb195d14c7dcb07f14e58fe77c44eea19a6a40a74472ec05c441478fa0bb49fa1c32b2d64be7a38870ee48ef6601bdebe98d512f0253aea0b39756c4014f3e
+ languageName: node
+ linkType: hard
+
+"@babel/helpers@npm:^7.26.10":
+ version: 7.27.0
+ resolution: "@babel/helpers@npm:7.27.0"
+ dependencies:
+ "@babel/template": "npm:^7.27.0"
+ "@babel/types": "npm:^7.27.0"
+ checksum: 10c0/a3c64fd2d8b164c041808826cc00769d814074ea447daaacaf2e3714b66d3f4237ef6e420f61d08f463d6608f3468c2ac5124ab7c68f704e20384def5ade95f4
+ languageName: node
+ linkType: hard
+
+"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.26.10, @babel/parser@npm:^7.27.0":
+ version: 7.27.0
+ resolution: "@babel/parser@npm:7.27.0"
+ dependencies:
+ "@babel/types": "npm:^7.27.0"
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 10c0/ba2ed3f41735826546a3ef2a7634a8d10351df221891906e59b29b0a0cd748f9b0e7a6f07576858a9de8e77785aad925c8389ddef146de04ea2842047c9d2859
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-jsx-self@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-react-jsx-self@npm:7.25.9"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/ce0e289f6af93d7c4dc6b385512199c5bb138ae61507b4d5117ba88b6a6b5092f704f1bdf80080b7d69b1b8c36649f2a0b250e8198667d4d30c08bbb1546bd99
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-react-jsx-source@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/plugin-transform-react-jsx-source@npm:7.25.9"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.25.9"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/fc9ee08efc9be7cbd2cc6788bbf92579adf3cab37912481f1b915221be3d22b0613b5b36a721df5f4c0ab65efe8582fcf8673caab83e6e1ce4cc04ceebf57dfa
+ languageName: node
+ linkType: hard
+
+"@babel/template@npm:^7.26.9, @babel/template@npm:^7.27.0":
+ version: 7.27.0
+ resolution: "@babel/template@npm:7.27.0"
+ dependencies:
+ "@babel/code-frame": "npm:^7.26.2"
+ "@babel/parser": "npm:^7.27.0"
+ "@babel/types": "npm:^7.27.0"
+ checksum: 10c0/13af543756127edb5f62bf121f9b093c09a2b6fe108373887ccffc701465cfbcb17e07cf48aa7f440415b263f6ec006e9415c79dfc2e8e6010b069435f81f340
+ 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"
+ dependencies:
+ "@babel/code-frame": "npm:^7.26.2"
+ "@babel/generator": "npm:^7.27.0"
+ "@babel/parser": "npm:^7.27.0"
+ "@babel/template": "npm:^7.27.0"
+ "@babel/types": "npm:^7.27.0"
+ debug: "npm:^4.3.1"
+ globals: "npm:^11.1.0"
+ checksum: 10c0/c7af29781960dacaae51762e8bc6c4b13d6ab4b17312990fbca9fc38e19c4ad7fecaae24b1cf52fb844e8e6cdc76c70ad597f90e496bcb3cc0a1d66b41a0aa5b
+ languageName: node
+ linkType: hard
+
+"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.10, @babel/types@npm:^7.27.0":
+ version: 7.27.0
+ resolution: "@babel/types@npm:7.27.0"
+ dependencies:
+ "@babel/helper-string-parser": "npm:^7.25.9"
+ "@babel/helper-validator-identifier": "npm:^7.25.9"
+ checksum: 10c0/6f1592eabe243c89a608717b07b72969be9d9d2fce1dee21426238757ea1fa60fdfc09b29de9e48d8104311afc6e6fb1702565a9cc1e09bc1e76f2b2ddb0f6e1
+ languageName: node
+ linkType: hard
+
+"@emnapi/core@npm:^1.4.0, @emnapi/core@npm:^1.4.3":
+ version: 1.5.0
+ resolution: "@emnapi/core@npm:1.5.0"
+ dependencies:
+ "@emnapi/wasi-threads": "npm:1.1.0"
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/52ba3485277706d92fa27d92b37e5b4f6ef0742c03ed68f8096f294c6bfa30f0752c82d4c2bfa14bff4dc30d63c9f71a8f9fb64a92743d00807d9e468fafd5ff
+ languageName: node
+ linkType: hard
+
+"@emnapi/runtime@npm:^1.4.0, @emnapi/runtime@npm:^1.4.3":
+ version: 1.5.0
+ resolution: "@emnapi/runtime@npm:1.5.0"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/a85c9fc4e3af49cbe41e5437e5be2551392a931910cd0a5b5d3572532786927810c9cc1db11b232ec8f9657b33d4e6f7c4f985f1a052917d7cd703b5b2a20faa
+ languageName: node
+ linkType: hard
+
+"@emnapi/wasi-threads@npm:1.1.0, @emnapi/wasi-threads@npm:^1.0.1":
+ version: 1.1.0
+ resolution: "@emnapi/wasi-threads@npm:1.1.0"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/e6d54bf2b1e64cdd83d2916411e44e579b6ae35d5def0dea61a3c452d9921373044dff32a8b8473ae60c80692bdc39323e98b96a3f3d87ba6886b24dd0ef7ca1
+ languageName: node
+ linkType: hard
+
+"@esbuild/aix-ppc64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/aix-ppc64@npm:0.21.5"
+ conditions: os=aix & cpu=ppc64
+ languageName: node
+ linkType: hard
+
+"@esbuild/android-arm64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/android-arm64@npm:0.21.5"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/android-arm@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/android-arm@npm:0.21.5"
+ conditions: os=android & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@esbuild/android-x64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/android-x64@npm:0.21.5"
+ conditions: os=android & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/darwin-arm64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/darwin-arm64@npm:0.21.5"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/darwin-x64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/darwin-x64@npm:0.21.5"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/freebsd-arm64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/freebsd-arm64@npm:0.21.5"
+ conditions: os=freebsd & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/freebsd-x64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/freebsd-x64@npm:0.21.5"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-arm64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/linux-arm64@npm:0.21.5"
+ conditions: os=linux & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-arm@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/linux-arm@npm:0.21.5"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-ia32@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/linux-ia32@npm:0.21.5"
+ conditions: os=linux & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-loong64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/linux-loong64@npm:0.21.5"
+ conditions: os=linux & cpu=loong64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-mips64el@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/linux-mips64el@npm:0.21.5"
+ conditions: os=linux & cpu=mips64el
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-ppc64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/linux-ppc64@npm:0.21.5"
+ conditions: os=linux & cpu=ppc64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-riscv64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/linux-riscv64@npm:0.21.5"
+ conditions: os=linux & cpu=riscv64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-s390x@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/linux-s390x@npm:0.21.5"
+ conditions: os=linux & cpu=s390x
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-x64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/linux-x64@npm:0.21.5"
+ conditions: os=linux & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/netbsd-x64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/netbsd-x64@npm:0.21.5"
+ conditions: os=netbsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/openbsd-x64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/openbsd-x64@npm:0.21.5"
+ conditions: os=openbsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/sunos-x64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/sunos-x64@npm:0.21.5"
+ conditions: os=sunos & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/win32-arm64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/win32-arm64@npm:0.21.5"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/win32-ia32@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/win32-ia32@npm:0.21.5"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@esbuild/win32-x64@npm:0.21.5":
+ version: 0.21.5
+ resolution: "@esbuild/win32-x64@npm:0.21.5"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0":
+ version: 4.6.1
+ resolution: "@eslint-community/eslint-utils@npm:4.6.1"
+ dependencies:
+ eslint-visitor-keys: "npm:^3.4.3"
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+ checksum: 10c0/cdeb6f8fc33a83726357d7f736075cdbd6e79dc7ac4b00b15680f1111d0f33bda583e7fafa5937245a058cc66302dc47568bba57b251302dc74964d8e87f56d7
+ languageName: node
+ linkType: hard
+
+"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1":
+ version: 4.12.1
+ resolution: "@eslint-community/regexpp@npm:4.12.1"
+ checksum: 10c0/a03d98c246bcb9109aec2c08e4d10c8d010256538dcb3f56610191607214523d4fb1b00aa81df830b6dffb74c5fa0be03642513a289c567949d3e550ca11cdf6
+ languageName: node
+ linkType: hard
+
+"@eslint/eslintrc@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@eslint/eslintrc@npm:2.1.4"
+ dependencies:
+ ajv: "npm:^6.12.4"
+ debug: "npm:^4.3.2"
+ espree: "npm:^9.6.0"
+ globals: "npm:^13.19.0"
+ ignore: "npm:^5.2.0"
+ import-fresh: "npm:^3.2.1"
+ js-yaml: "npm:^4.1.0"
+ minimatch: "npm:^3.1.2"
+ strip-json-comments: "npm:^3.1.1"
+ checksum: 10c0/32f67052b81768ae876c84569ffd562491ec5a5091b0c1e1ca1e0f3c24fb42f804952fdd0a137873bc64303ba368a71ba079a6f691cee25beee9722d94cc8573
+ languageName: node
+ linkType: hard
+
+"@eslint/js@npm:8.57.1":
+ version: 8.57.1
+ resolution: "@eslint/js@npm:8.57.1"
+ checksum: 10c0/b489c474a3b5b54381c62e82b3f7f65f4b8a5eaaed126546520bf2fede5532a8ed53212919fed1e9048dcf7f37167c8561d58d0ba4492a4244004e7793805223
+ languageName: node
+ linkType: hard
+
+"@floating-ui/core@npm:^1.7.1":
+ version: 1.7.1
+ resolution: "@floating-ui/core@npm:1.7.1"
+ dependencies:
+ "@floating-ui/utils": "npm:^0.2.9"
+ checksum: 10c0/40df1e1dd8a2bad6f70c1ee163f0e151c456f52b9b98a38488d88720b2be72ccd631501a66f8369f96d2e8ad1c4250936b6fd4243e3a99833f2d008ee6afec18
+ languageName: node
+ linkType: hard
+
+"@floating-ui/dom@npm:^1.0.0":
+ version: 1.7.1
+ resolution: "@floating-ui/dom@npm:1.7.1"
+ dependencies:
+ "@floating-ui/core": "npm:^1.7.1"
+ "@floating-ui/utils": "npm:^0.2.9"
+ checksum: 10c0/33b0e892f4c50ce568169cd58793ff5e3bc1e72ee007237d73b9458d4475e1e5f5a4b3f9e6752422d5f5ac902bc0c135ca7dc0a23c6df187fd9d28dc34cdceed
+ languageName: node
+ linkType: hard
+
+"@floating-ui/react-dom@npm:^2.0.0":
+ version: 2.1.3
+ resolution: "@floating-ui/react-dom@npm:2.1.3"
+ dependencies:
+ "@floating-ui/dom": "npm:^1.0.0"
+ peerDependencies:
+ react: ">=16.8.0"
+ react-dom: ">=16.8.0"
+ checksum: 10c0/e88750ea2fb352264d52d502d3979f94155ce2c8ab9a50862810d0cfc8c8e49cb6bbde466d668736cb38624d089360ef97451397b647408a0eb2c1870234c19a
+ languageName: node
+ linkType: hard
+
+"@floating-ui/utils@npm:^0.2.9":
+ version: 0.2.9
+ resolution: "@floating-ui/utils@npm:0.2.9"
+ checksum: 10c0/48bbed10f91cb7863a796cc0d0e917c78d11aeb89f98d03fc38d79e7eb792224a79f538ed8a2d5d5584511d4ca6354ef35f1712659fd569868e342df4398ad6f
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/config-array@npm:^0.13.0":
+ version: 0.13.0
+ resolution: "@humanwhocodes/config-array@npm:0.13.0"
+ dependencies:
+ "@humanwhocodes/object-schema": "npm:^2.0.3"
+ debug: "npm:^4.3.1"
+ minimatch: "npm:^3.0.5"
+ checksum: 10c0/205c99e756b759f92e1f44a3dc6292b37db199beacba8f26c2165d4051fe73a4ae52fdcfd08ffa93e7e5cb63da7c88648f0e84e197d154bbbbe137b2e0dd332e
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/module-importer@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "@humanwhocodes/module-importer@npm:1.0.1"
+ checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529
+ languageName: node
+ linkType: hard
+
+"@humanwhocodes/object-schema@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "@humanwhocodes/object-schema@npm:2.0.3"
+ checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c
+ 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/gen-mapping@npm:^0.3.5":
+ version: 0.3.8
+ resolution: "@jridgewell/gen-mapping@npm:0.3.8"
+ dependencies:
+ "@jridgewell/set-array": "npm:^1.2.1"
+ "@jridgewell/sourcemap-codec": "npm:^1.4.10"
+ "@jridgewell/trace-mapping": "npm:^0.3.24"
+ checksum: 10c0/c668feaf86c501d7c804904a61c23c67447b2137b813b9ce03eca82cb9d65ac7006d766c218685d76e3d72828279b6ee26c347aa1119dab23fbaf36aed51585a
+ languageName: node
+ linkType: hard
+
+"@jridgewell/resolve-uri@npm:^3.1.0":
+ version: 3.1.2
+ resolution: "@jridgewell/resolve-uri@npm:3.1.2"
+ checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e
+ languageName: node
+ linkType: hard
+
+"@jridgewell/set-array@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "@jridgewell/set-array@npm:1.2.1"
+ checksum: 10c0/2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4
+ languageName: node
+ linkType: hard
+
+"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0":
+ version: 1.5.0
+ resolution: "@jridgewell/sourcemap-codec@npm:1.5.0"
+ checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18
+ languageName: node
+ linkType: hard
+
+"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25":
+ version: 0.3.25
+ resolution: "@jridgewell/trace-mapping@npm:0.3.25"
+ dependencies:
+ "@jridgewell/resolve-uri": "npm:^3.1.0"
+ "@jridgewell/sourcemap-codec": "npm:^1.4.14"
+ checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4
+ languageName: node
+ linkType: hard
+
+"@napi-rs/wasm-runtime@npm:^0.2.8":
+ version: 0.2.12
+ resolution: "@napi-rs/wasm-runtime@npm:0.2.12"
+ dependencies:
+ "@emnapi/core": "npm:^1.4.3"
+ "@emnapi/runtime": "npm:^1.4.3"
+ "@tybys/wasm-util": "npm:^0.10.0"
+ checksum: 10c0/6d07922c0613aab30c6a497f4df297ca7c54e5b480e00035e0209b872d5c6aab7162fc49477267556109c2c7ed1eb9c65a174e27e9b87568106a87b0a6e3ca7d
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.scandir@npm:2.1.5":
+ version: 2.1.5
+ resolution: "@nodelib/fs.scandir@npm:2.1.5"
+ dependencies:
+ "@nodelib/fs.stat": "npm:2.0.5"
+ run-parallel: "npm:^1.1.9"
+ checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2":
+ version: 2.0.5
+ resolution: "@nodelib/fs.stat@npm:2.0.5"
+ checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8":
+ version: 1.2.8
+ resolution: "@nodelib/fs.walk@npm:1.2.8"
+ dependencies:
+ "@nodelib/fs.scandir": "npm:2.1.5"
+ fastq: "npm:^1.6.0"
+ checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1
+ 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
+
+"@pkgjs/parseargs@npm:^0.11.0":
+ version: 0.11.0
+ resolution: "@pkgjs/parseargs@npm:0.11.0"
+ checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd
+ languageName: node
+ linkType: hard
+
+"@radix-ui/primitive@npm:1.1.2":
+ version: 1.1.2
+ resolution: "@radix-ui/primitive@npm:1.1.2"
+ checksum: 10c0/5e2d2528d2fe37c16865e77b0beaac2b415a817ad13d8178db6e8187b2a092672568a64ee0041510abfde3034490a5cadd3057049bb15789020c06892047597c
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-arrow@npm:1.1.7":
+ version: 1.1.7
+ resolution: "@radix-ui/react-arrow@npm:1.1.7"
+ dependencies:
+ "@radix-ui/react-primitive": "npm:2.1.3"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/c3b46766238b3ee2a394d8806a5141432361bf1425110c9f0dcf480bda4ebd304453a53f294b5399c6ee3ccfcae6fd544921fd01ddc379cf5942acdd7168664b
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-compose-refs@npm:1.1.2":
+ version: 1.1.2
+ resolution: "@radix-ui/react-compose-refs@npm:1.1.2"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/d36a9c589eb75d634b9b139c80f916aadaf8a68a7c1c4b8c6c6b88755af1a92f2e343457042089f04cc3f23073619d08bb65419ced1402e9d4e299576d970771
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-context@npm:1.1.2":
+ version: 1.1.2
+ resolution: "@radix-ui/react-context@npm:1.1.2"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/cece731f8cc25d494c6589cc681e5c01a93867d895c75889973afa1a255f163c286e390baa7bc028858eaabe9f6b57270d0ca6377356f652c5557c1c7a41ccce
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-dismissable-layer@npm:1.1.10":
+ version: 1.1.10
+ resolution: "@radix-ui/react-dismissable-layer@npm:1.1.10"
+ dependencies:
+ "@radix-ui/primitive": "npm:1.1.2"
+ "@radix-ui/react-compose-refs": "npm:1.1.2"
+ "@radix-ui/react-primitive": "npm:2.1.3"
+ "@radix-ui/react-use-callback-ref": "npm:1.1.1"
+ "@radix-ui/react-use-escape-keydown": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/21a2d03689f5e06586135b6a735937ef14f2571fdf6044a3019bc3f9fa368a9400b5a9b631f43e8ad3682693449e369ffa7cc8642764246ce18ebe7359a45faf
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-id@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-id@npm:1.1.1"
+ dependencies:
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/7d12e76818763d592c331277ef62b197e2e64945307e650bd058f0090e5ae48bbd07691b23b7e9e977901ef4eadcb3e2d5eaeb17a13859083384be83fc1292c7
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-popper@npm:1.2.7":
+ version: 1.2.7
+ resolution: "@radix-ui/react-popper@npm:1.2.7"
+ dependencies:
+ "@floating-ui/react-dom": "npm:^2.0.0"
+ "@radix-ui/react-arrow": "npm:1.1.7"
+ "@radix-ui/react-compose-refs": "npm:1.1.2"
+ "@radix-ui/react-context": "npm:1.1.2"
+ "@radix-ui/react-primitive": "npm:2.1.3"
+ "@radix-ui/react-use-callback-ref": "npm:1.1.1"
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ "@radix-ui/react-use-rect": "npm:1.1.1"
+ "@radix-ui/react-use-size": "npm:1.1.1"
+ "@radix-ui/rect": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/fb901329df5432225b0be08778a89faaa25c40e8042f0f181218e385cae26811420b6e4b1effc70955393e09d83cd462d1b0eb6ca6d33282d76692972b602ad8
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-portal@npm:1.1.9":
+ version: 1.1.9
+ resolution: "@radix-ui/react-portal@npm:1.1.9"
+ dependencies:
+ "@radix-ui/react-primitive": "npm:2.1.3"
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/45b432497c722720c72c493a29ef6085bc84b50eafe79d48b45c553121b63e94f9cdb77a3a74b9c49126f8feb3feee009fe400d48b7759d3552396356b192cd7
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-presence@npm:1.1.4":
+ version: 1.1.4
+ resolution: "@radix-ui/react-presence@npm:1.1.4"
+ dependencies:
+ "@radix-ui/react-compose-refs": "npm:1.1.2"
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/8202647139d6f5097b0abcc43dfba471c00b69da95ca336afe3ea23a165e05ca21992f40fc801760fe442f3e064e54e2f2cbcb9ad758c4b07ef6c69a5b6777bd
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-primitive@npm:2.1.3":
+ version: 2.1.3
+ resolution: "@radix-ui/react-primitive@npm:2.1.3"
+ dependencies:
+ "@radix-ui/react-slot": "npm:1.2.3"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/fdff9b84913bb4172ef6d3af7442fca5f9bba5f2709cba08950071f819d7057aec3a4a2d9ef44cf9cbfb8014d02573c6884a04cff175895823aaef809ebdb034
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-slot@npm:1.2.3":
+ version: 1.2.3
+ resolution: "@radix-ui/react-slot@npm:1.2.3"
+ dependencies:
+ "@radix-ui/react-compose-refs": "npm:1.1.2"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/5913aa0d760f505905779515e4b1f0f71a422350f077cc8d26d1aafe53c97f177fec0e6d7fbbb50d8b5e498aa9df9f707ca75ae3801540c283b26b0136138eef
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-tooltip@npm:^1.2.7":
+ version: 1.2.7
+ resolution: "@radix-ui/react-tooltip@npm:1.2.7"
+ dependencies:
+ "@radix-ui/primitive": "npm:1.1.2"
+ "@radix-ui/react-compose-refs": "npm:1.1.2"
+ "@radix-ui/react-context": "npm:1.1.2"
+ "@radix-ui/react-dismissable-layer": "npm:1.1.10"
+ "@radix-ui/react-id": "npm:1.1.1"
+ "@radix-ui/react-popper": "npm:1.2.7"
+ "@radix-ui/react-portal": "npm:1.1.9"
+ "@radix-ui/react-presence": "npm:1.1.4"
+ "@radix-ui/react-primitive": "npm:2.1.3"
+ "@radix-ui/react-slot": "npm:1.2.3"
+ "@radix-ui/react-use-controllable-state": "npm:1.2.2"
+ "@radix-ui/react-visually-hidden": "npm:1.2.3"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/28798d576c6ffec4f11120cd563aa9d5ab9afb9a37dc18778176442756d026c8c46eec1ddc647b2b5914045495fcb89f82530106e91acb55776b7d6b1a10fb57
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-callback-ref@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-use-callback-ref@npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/5f6aff8592dea6a7e46589808912aba3fb3b626cf6edd2b14f01638b61dbbe49eeb9f67cd5601f4c15b2fb547b9a7e825f7c4961acd4dd70176c969ae405f8d8
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-controllable-state@npm:1.2.2":
+ version: 1.2.2
+ resolution: "@radix-ui/react-use-controllable-state@npm:1.2.2"
+ dependencies:
+ "@radix-ui/react-use-effect-event": "npm:0.0.2"
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/f55c4b06e895293aed4b44c9ef26fb24432539f5346fcd6519c7745800535b571058685314e83486a45bf61dc83887e24826490d3068acc317fb0a9010516e63
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-effect-event@npm:0.0.2":
+ version: 0.0.2
+ resolution: "@radix-ui/react-use-effect-event@npm:0.0.2"
+ dependencies:
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/e84ff72a3e76c5ae9c94941028bb4b6472f17d4104481b9eab773deab3da640ecea035e54da9d6f4df8d84c18ef6913baf92b7511bee06930dc58bd0c0add417
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-escape-keydown@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-use-escape-keydown@npm:1.1.1"
+ dependencies:
+ "@radix-ui/react-use-callback-ref": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/bff53be99e940fef1d3c4df7d560e1d9133182e5a98336255d3063327d1d3dd4ec54a95dc5afe15cca4fb6c184f0a956c70de2815578c318cf995a7f9beabaa1
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-layout-effect@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-use-layout-effect@npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/9f98fdaba008dfc58050de60a77670b885792df473cf82c1cef8daee919a5dd5a77d270209f5f0b0abfaac78cb1627396e3ff56c81b735be550409426fe8b040
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-rect@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-use-rect@npm:1.1.1"
+ dependencies:
+ "@radix-ui/rect": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/271711404c05c589c8dbdaa748749e7daf44bcc6bffc9ecd910821c3ebca0ee245616cf5b39653ce690f53f875c3836fd3f36f51ab1c628273b6db599eee4864
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-use-size@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/react-use-size@npm:1.1.1"
+ dependencies:
+ "@radix-ui/react-use-layout-effect": "npm:1.1.1"
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/851d09a816f44282e0e9e2147b1b571410174cc048703a50c4fa54d672de994fd1dfff1da9d480ecfd12c77ae8f48d74f01adaf668f074156b8cd0043c6c21d8
+ languageName: node
+ linkType: hard
+
+"@radix-ui/react-visually-hidden@npm:1.2.3":
+ version: 1.2.3
+ resolution: "@radix-ui/react-visually-hidden@npm:1.2.3"
+ dependencies:
+ "@radix-ui/react-primitive": "npm:2.1.3"
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/cf86a37f1cbee50a964056f3dc4f6bb1ee79c76daa321f913aa20ff3e1ccdfafbf2b114d7bb616aeefc7c4b895e6ca898523fdb67710d89bd5d8edb739a0d9b6
+ languageName: node
+ linkType: hard
+
+"@radix-ui/rect@npm:1.1.1":
+ version: 1.1.1
+ resolution: "@radix-ui/rect@npm:1.1.1"
+ checksum: 10c0/0dac4f0f15691199abe6a0e067821ddd9d0349c0c05f39834e4eafc8403caf724106884035ae91bbc826e10367e6a5672e7bec4d4243860fa7649de246b1f60b
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-android-arm-eabi@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-android-arm-eabi@npm:4.39.0"
+ conditions: os=android & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-android-arm64@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-android-arm64@npm:4.39.0"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-darwin-arm64@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-darwin-arm64@npm:4.39.0"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-darwin-x64@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-darwin-x64@npm:4.39.0"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-freebsd-arm64@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-freebsd-arm64@npm:4.39.0"
+ conditions: os=freebsd & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-freebsd-x64@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-freebsd-x64@npm:4.39.0"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-arm-gnueabihf@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.39.0"
+ conditions: os=linux & cpu=arm & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-arm-musleabihf@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.39.0"
+ conditions: os=linux & cpu=arm & libc=musl
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-arm64-gnu@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.39.0"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-arm64-musl@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-linux-arm64-musl@npm:4.39.0"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-loongarch64-gnu@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.39.0"
+ conditions: os=linux & cpu=loong64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-powerpc64le-gnu@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.39.0"
+ conditions: os=linux & cpu=ppc64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-riscv64-gnu@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.39.0"
+ conditions: os=linux & cpu=riscv64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-riscv64-musl@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.39.0"
+ conditions: os=linux & cpu=riscv64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-s390x-gnu@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.39.0"
+ conditions: os=linux & cpu=s390x & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-x64-gnu@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-linux-x64-gnu@npm:4.39.0"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-linux-x64-musl@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-linux-x64-musl@npm:4.39.0"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-win32-arm64-msvc@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.39.0"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-win32-ia32-msvc@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.39.0"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@rollup/rollup-win32-x64-msvc@npm:4.39.0":
+ version: 4.39.0
+ resolution: "@rollup/rollup-win32-x64-msvc@npm:4.39.0"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@rtsao/scc@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@rtsao/scc@npm:1.1.0"
+ checksum: 10c0/b5bcfb0d87f7d1c1c7c0f7693f53b07866ed9fec4c34a97a8c948fb9a7c0082e416ce4d3b60beb4f5e167cbe04cdeefbf6771320f3ede059b9ce91188c409a5b
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/node@npm:4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/node@npm:4.1.4"
+ dependencies:
+ enhanced-resolve: "npm:^5.18.1"
+ jiti: "npm:^2.4.2"
+ lightningcss: "npm:1.29.2"
+ tailwindcss: "npm:4.1.4"
+ checksum: 10c0/0369c89a1f3588ac4d24a156e1e0e089fc596adc82e13f88cc8817bd507876110e7be081335ab25379bce2a2d8e9e693236cde0a6e81cc4fc545211d1a32de11
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-android-arm64@npm:4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/oxide-android-arm64@npm:4.1.4"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-darwin-arm64@npm:4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/oxide-darwin-arm64@npm:4.1.4"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-darwin-x64@npm:4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/oxide-darwin-x64@npm:4.1.4"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-freebsd-x64@npm:4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/oxide-freebsd-x64@npm:4.1.4"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.1.4"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-linux-arm64-gnu@npm:4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/oxide-linux-arm64-gnu@npm:4.1.4"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-linux-arm64-musl@npm:4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/oxide-linux-arm64-musl@npm:4.1.4"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-linux-x64-gnu@npm:4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/oxide-linux-x64-gnu@npm:4.1.4"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-linux-x64-musl@npm:4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/oxide-linux-x64-musl@npm:4.1.4"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-wasm32-wasi@npm:4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/oxide-wasm32-wasi@npm:4.1.4"
+ dependencies:
+ "@emnapi/core": "npm:^1.4.0"
+ "@emnapi/runtime": "npm:^1.4.0"
+ "@emnapi/wasi-threads": "npm:^1.0.1"
+ "@napi-rs/wasm-runtime": "npm:^0.2.8"
+ "@tybys/wasm-util": "npm:^0.9.0"
+ tslib: "npm:^2.8.0"
+ conditions: cpu=wasm32
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-win32-arm64-msvc@npm:4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/oxide-win32-arm64-msvc@npm:4.1.4"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide-win32-x64-msvc@npm:4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/oxide-win32-x64-msvc@npm:4.1.4"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/oxide@npm:4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/oxide@npm:4.1.4"
+ dependencies:
+ "@tailwindcss/oxide-android-arm64": "npm:4.1.4"
+ "@tailwindcss/oxide-darwin-arm64": "npm:4.1.4"
+ "@tailwindcss/oxide-darwin-x64": "npm:4.1.4"
+ "@tailwindcss/oxide-freebsd-x64": "npm:4.1.4"
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "npm:4.1.4"
+ "@tailwindcss/oxide-linux-arm64-gnu": "npm:4.1.4"
+ "@tailwindcss/oxide-linux-arm64-musl": "npm:4.1.4"
+ "@tailwindcss/oxide-linux-x64-gnu": "npm:4.1.4"
+ "@tailwindcss/oxide-linux-x64-musl": "npm:4.1.4"
+ "@tailwindcss/oxide-wasm32-wasi": "npm:4.1.4"
+ "@tailwindcss/oxide-win32-arm64-msvc": "npm:4.1.4"
+ "@tailwindcss/oxide-win32-x64-msvc": "npm:4.1.4"
+ dependenciesMeta:
+ "@tailwindcss/oxide-android-arm64":
+ optional: true
+ "@tailwindcss/oxide-darwin-arm64":
+ optional: true
+ "@tailwindcss/oxide-darwin-x64":
+ optional: true
+ "@tailwindcss/oxide-freebsd-x64":
+ optional: true
+ "@tailwindcss/oxide-linux-arm-gnueabihf":
+ optional: true
+ "@tailwindcss/oxide-linux-arm64-gnu":
+ optional: true
+ "@tailwindcss/oxide-linux-arm64-musl":
+ optional: true
+ "@tailwindcss/oxide-linux-x64-gnu":
+ optional: true
+ "@tailwindcss/oxide-linux-x64-musl":
+ optional: true
+ "@tailwindcss/oxide-wasm32-wasi":
+ optional: true
+ "@tailwindcss/oxide-win32-arm64-msvc":
+ optional: true
+ "@tailwindcss/oxide-win32-x64-msvc":
+ optional: true
+ checksum: 10c0/1e01157774265587cdc7209f4c248a21463b0dde1672e49ff3667b6b8918bdbdc48ebb4bdf228489170dc221c5dec54492a9cdf699244562d8966ae8c6cdd508
+ languageName: node
+ linkType: hard
+
+"@tailwindcss/vite@npm:^4.1.4":
+ version: 4.1.4
+ resolution: "@tailwindcss/vite@npm:4.1.4"
+ dependencies:
+ "@tailwindcss/node": "npm:4.1.4"
+ "@tailwindcss/oxide": "npm:4.1.4"
+ tailwindcss: "npm:4.1.4"
+ peerDependencies:
+ vite: ^5.2.0 || ^6
+ checksum: 10c0/21cbc6d3069923bbbcca9fb9f851c32abde47f124eefcfb246e3870d73d3e56909118b3fdf1619b7f74fa8d45c562811a22237409b24d083b4d02a98bcafc3b1
+ languageName: node
+ linkType: hard
+
+"@tybys/wasm-util@npm:^0.10.0":
+ version: 0.10.1
+ resolution: "@tybys/wasm-util@npm:0.10.1"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/b255094f293794c6d2289300c5fbcafbb5532a3aed3a5ffd2f8dc1828e639b88d75f6a376dd8f94347a44813fd7a7149d8463477a9a49525c8b2dcaa38c2d1e8
+ languageName: node
+ linkType: hard
+
+"@tybys/wasm-util@npm:^0.9.0":
+ version: 0.9.0
+ resolution: "@tybys/wasm-util@npm:0.9.0"
+ dependencies:
+ tslib: "npm:^2.4.0"
+ checksum: 10c0/f9fde5c554455019f33af6c8215f1a1435028803dc2a2825b077d812bed4209a1a64444a4ca0ce2ea7e1175c8d88e2f9173a36a33c199e8a5c671aa31de8242d
+ languageName: node
+ linkType: hard
+
+"@types/babel__core@npm:^7.20.5":
+ version: 7.20.5
+ resolution: "@types/babel__core@npm:7.20.5"
+ dependencies:
+ "@babel/parser": "npm:^7.20.7"
+ "@babel/types": "npm:^7.20.7"
+ "@types/babel__generator": "npm:*"
+ "@types/babel__template": "npm:*"
+ "@types/babel__traverse": "npm:*"
+ checksum: 10c0/bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff
+ languageName: node
+ linkType: hard
+
+"@types/babel__generator@npm:*":
+ version: 7.27.0
+ resolution: "@types/babel__generator@npm:7.27.0"
+ dependencies:
+ "@babel/types": "npm:^7.0.0"
+ checksum: 10c0/9f9e959a8792df208a9d048092fda7e1858bddc95c6314857a8211a99e20e6830bdeb572e3587ae8be5429e37f2a96fcf222a9f53ad232f5537764c9e13a2bbd
+ languageName: node
+ linkType: hard
+
+"@types/babel__template@npm:*":
+ version: 7.4.4
+ resolution: "@types/babel__template@npm:7.4.4"
+ dependencies:
+ "@babel/parser": "npm:^7.1.0"
+ "@babel/types": "npm:^7.0.0"
+ checksum: 10c0/cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b
+ languageName: node
+ linkType: hard
+
+"@types/babel__traverse@npm:*":
+ version: 7.20.7
+ resolution: "@types/babel__traverse@npm:7.20.7"
+ dependencies:
+ "@babel/types": "npm:^7.20.7"
+ checksum: 10c0/5386f0af44f8746b063b87418f06129a814e16bb2686965a575e9d7376b360b088b89177778d8c426012abc43dd1a2d8ec3218bfc382280c898682746ce2ffbd
+ languageName: node
+ linkType: hard
+
+"@types/d3-array@npm:*":
+ version: 3.2.1
+ resolution: "@types/d3-array@npm:3.2.1"
+ checksum: 10c0/38bf2c778451f4b79ec81a2288cb4312fe3d6449ecdf562970cc339b60f280f31c93a024c7ff512607795e79d3beb0cbda123bb07010167bce32927f71364bca
+ languageName: node
+ linkType: hard
+
+"@types/d3-axis@npm:*":
+ version: 3.0.6
+ resolution: "@types/d3-axis@npm:3.0.6"
+ dependencies:
+ "@types/d3-selection": "npm:*"
+ checksum: 10c0/d756d42360261f44d8eefd0950c5bb0a4f67a46dd92069da3f723ac36a1e8cb2b9ce6347d836ef19d5b8aef725dbcf8fdbbd6cfbff676ca4b0642df2f78b599a
+ languageName: node
+ linkType: hard
+
+"@types/d3-brush@npm:*":
+ version: 3.0.6
+ resolution: "@types/d3-brush@npm:3.0.6"
+ dependencies:
+ "@types/d3-selection": "npm:*"
+ checksum: 10c0/fd6e2ac7657a354f269f6b9c58451ffae9d01b89ccb1eb6367fd36d635d2f1990967215ab498e0c0679ff269429c57fad6a2958b68f4d45bc9f81d81672edc01
+ languageName: node
+ linkType: hard
+
+"@types/d3-chord@npm:*":
+ version: 3.0.6
+ resolution: "@types/d3-chord@npm:3.0.6"
+ checksum: 10c0/c5a25eb5389db01e63faec0c5c2ec7cc41c494e9b3201630b494c4e862a60f1aa83fabbc33a829e7e1403941e3c30d206c741559b14406ac2a4239cfdf4b4c17
+ languageName: node
+ linkType: hard
+
+"@types/d3-color@npm:*":
+ version: 3.1.3
+ resolution: "@types/d3-color@npm:3.1.3"
+ checksum: 10c0/65eb0487de606eb5ad81735a9a5b3142d30bc5ea801ed9b14b77cb14c9b909f718c059f13af341264ee189acf171508053342142bdf99338667cea26a2d8d6ae
+ languageName: node
+ linkType: hard
+
+"@types/d3-contour@npm:*":
+ version: 3.0.6
+ resolution: "@types/d3-contour@npm:3.0.6"
+ dependencies:
+ "@types/d3-array": "npm:*"
+ "@types/geojson": "npm:*"
+ checksum: 10c0/e7d83e94719af4576ceb5ac7f277c5806f83ba6c3631744ae391cffc3641f09dfa279470b83053cd0b2acd6784e8749c71141d05bdffa63ca58ffb5b31a0f27c
+ languageName: node
+ linkType: hard
+
+"@types/d3-delaunay@npm:*":
+ version: 6.0.4
+ resolution: "@types/d3-delaunay@npm:6.0.4"
+ checksum: 10c0/d154a8864f08c4ea23ecb9bdabcef1c406a25baa8895f0cb08a0ed2799de0d360e597552532ce7086ff0cdffa8f3563f9109d18f0191459d32bb620a36939123
+ languageName: node
+ linkType: hard
+
+"@types/d3-dispatch@npm:*":
+ version: 3.0.6
+ resolution: "@types/d3-dispatch@npm:3.0.6"
+ checksum: 10c0/405eb7d0ec139fbf72fa6a43b0f3ca8a1f913bb2cb38f607827e63fca8d4393f021f32f3b96b33c93ddbd37789453a0b3624f14f504add5308fd9aec8a46dda0
+ languageName: node
+ linkType: hard
+
+"@types/d3-drag@npm:*":
+ version: 3.0.7
+ resolution: "@types/d3-drag@npm:3.0.7"
+ dependencies:
+ "@types/d3-selection": "npm:*"
+ checksum: 10c0/65e29fa32a87c72d26c44b5e2df3bf15af21cd128386bcc05bcacca255927c0397d0cd7e6062aed5f0abd623490544a9d061c195f5ed9f018fe0b698d99c079d
+ languageName: node
+ linkType: hard
+
+"@types/d3-dsv@npm:*":
+ version: 3.0.7
+ resolution: "@types/d3-dsv@npm:3.0.7"
+ checksum: 10c0/c0f01da862465594c8a28278b51c850af3b4239cc22b14fd1a19d7a98f93d94efa477bf59d8071beb285dca45bf614630811451e18e7c52add3a0abfee0a1871
+ languageName: node
+ linkType: hard
+
+"@types/d3-ease@npm:*":
+ version: 3.0.2
+ resolution: "@types/d3-ease@npm:3.0.2"
+ checksum: 10c0/aff5a1e572a937ee9bff6465225d7ba27d5e0c976bd9eacdac2e6f10700a7cb0c9ea2597aff6b43a6ed850a3210030870238894a77ec73e309b4a9d0333f099c
+ languageName: node
+ linkType: hard
+
+"@types/d3-fetch@npm:*":
+ version: 3.0.7
+ resolution: "@types/d3-fetch@npm:3.0.7"
+ dependencies:
+ "@types/d3-dsv": "npm:*"
+ checksum: 10c0/3d147efa52a26da1a5d40d4d73e6cebaaa964463c378068062999b93ea3731b27cc429104c21ecbba98c6090e58ef13429db6399238c5e3500162fb3015697a0
+ languageName: node
+ linkType: hard
+
+"@types/d3-force@npm:*":
+ version: 3.0.10
+ resolution: "@types/d3-force@npm:3.0.10"
+ checksum: 10c0/c82b459079a106b50e346c9b79b141f599f2fc4f598985a5211e72c7a2e20d35bd5dc6e91f306b323c8bfa325c02c629b1645f5243f1c6a55bd51bc85cccfa92
+ languageName: node
+ linkType: hard
+
+"@types/d3-format@npm:*":
+ version: 3.0.4
+ resolution: "@types/d3-format@npm:3.0.4"
+ checksum: 10c0/3ac1600bf9061a59a228998f7cd3f29e85cbf522997671ba18d4d84d10a2a1aff4f95aceb143fa9960501c3ec351e113fc75884e6a504ace44dc1744083035ee
+ languageName: node
+ linkType: hard
+
+"@types/d3-geo@npm:*":
+ version: 3.1.0
+ resolution: "@types/d3-geo@npm:3.1.0"
+ dependencies:
+ "@types/geojson": "npm:*"
+ checksum: 10c0/3745a93439038bb5b0b38facf435f7079812921d46406f5d38deaee59e90084ff742443c7ea0a8446df81a0d81eaf622fe7068cf4117a544bd4aa3b2dc182f88
+ languageName: node
+ linkType: hard
+
+"@types/d3-hierarchy@npm:*":
+ version: 3.1.7
+ resolution: "@types/d3-hierarchy@npm:3.1.7"
+ checksum: 10c0/873711737d6b8e7b6f1dda0bcd21294a48f75024909ae510c5d2c21fad2e72032e0958def4d9f68319d3aaac298ad09c49807f8bfc87a145a82693b5208613c7
+ languageName: node
+ linkType: hard
+
+"@types/d3-interpolate@npm:*":
+ version: 3.0.4
+ resolution: "@types/d3-interpolate@npm:3.0.4"
+ dependencies:
+ "@types/d3-color": "npm:*"
+ checksum: 10c0/066ebb8da570b518dd332df6b12ae3b1eaa0a7f4f0c702e3c57f812cf529cc3500ec2aac8dc094f31897790346c6b1ebd8cd7a077176727f4860c2b181a65ca4
+ languageName: node
+ linkType: hard
+
+"@types/d3-path@npm:*":
+ version: 3.1.1
+ resolution: "@types/d3-path@npm:3.1.1"
+ checksum: 10c0/2c36eb31ebaf2ce4712e793fd88087117976f7c4ed69cc2431825f999c8c77cca5cea286f3326432b770739ac6ccd5d04d851eb65e7a4dbcc10c982b49ad2c02
+ languageName: node
+ linkType: hard
+
+"@types/d3-polygon@npm:*":
+ version: 3.0.2
+ resolution: "@types/d3-polygon@npm:3.0.2"
+ checksum: 10c0/f46307bb32b6c2aef8c7624500e0f9b518de8f227ccc10170b869dc43e4c542560f6c8d62e9f087fac45e198d6e4b623e579c0422e34c85baf56717456d3f439
+ languageName: node
+ linkType: hard
+
+"@types/d3-quadtree@npm:*":
+ version: 3.0.6
+ resolution: "@types/d3-quadtree@npm:3.0.6"
+ checksum: 10c0/7eaa0a4d404adc856971c9285e1c4ab17e9135ea669d847d6db7e0066126a28ac751864e7ce99c65d526e130f56754a2e437a1617877098b3bdcc3ef23a23616
+ languageName: node
+ linkType: hard
+
+"@types/d3-random@npm:*":
+ version: 3.0.3
+ resolution: "@types/d3-random@npm:3.0.3"
+ checksum: 10c0/5f4fea40080cd6d4adfee05183d00374e73a10c530276a6455348983dda341003a251def28565a27c25d9cf5296a33e870e397c9d91ff83fb7495a21c96b6882
+ languageName: node
+ linkType: hard
+
+"@types/d3-scale-chromatic@npm:*":
+ version: 3.1.0
+ resolution: "@types/d3-scale-chromatic@npm:3.1.0"
+ checksum: 10c0/93c564e02d2e97a048e18fe8054e4a935335da6ab75a56c3df197beaa87e69122eef0dfbeb7794d4a444a00e52e3123514ee27cec084bd21f6425b7037828cc2
+ languageName: node
+ linkType: hard
+
+"@types/d3-scale@npm:*":
+ version: 4.0.9
+ resolution: "@types/d3-scale@npm:4.0.9"
+ dependencies:
+ "@types/d3-time": "npm:*"
+ checksum: 10c0/4ac44233c05cd50b65b33ecb35d99fdf07566bcdbc55bc1306b2f27d1c5134d8c560d356f2c8e76b096e9125ffb8d26d95f78d56e210d1c542cb255bdf31d6c8
+ languageName: node
+ linkType: hard
+
+"@types/d3-selection@npm:*":
+ version: 3.0.11
+ resolution: "@types/d3-selection@npm:3.0.11"
+ checksum: 10c0/0c512956c7503ff5def4bb32e0c568cc757b9a2cc400a104fc0f4cfe5e56d83ebde2a97821b6f2cb26a7148079d3b86a2f28e11d68324ed311cf35c2ed980d1d
+ languageName: node
+ linkType: hard
+
+"@types/d3-shape@npm:*":
+ version: 3.1.7
+ resolution: "@types/d3-shape@npm:3.1.7"
+ dependencies:
+ "@types/d3-path": "npm:*"
+ checksum: 10c0/38e59771c1c4c83b67aa1f941ce350410522a149d2175832fdc06396b2bb3b2c1a2dd549e0f8230f9f24296ee5641a515eaf10f55ee1ef6c4f83749e2dd7dcfd
+ languageName: node
+ linkType: hard
+
+"@types/d3-time-format@npm:*":
+ version: 4.0.3
+ resolution: "@types/d3-time-format@npm:4.0.3"
+ checksum: 10c0/9ef5e8e2b96b94799b821eed5d61a3d432c7903247966d8ad951b8ce5797fe46554b425cb7888fa5bf604b4663c369d7628c0328ffe80892156671c58d1a7f90
+ languageName: node
+ linkType: hard
+
+"@types/d3-time@npm:*":
+ version: 3.0.4
+ resolution: "@types/d3-time@npm:3.0.4"
+ checksum: 10c0/6d9e2255d63f7a313a543113920c612e957d70da4fb0890931da6c2459010291b8b1f95e149a538500c1c99e7e6c89ffcce5554dd29a31ff134a38ea94b6d174
+ languageName: node
+ linkType: hard
+
+"@types/d3-timer@npm:*":
+ version: 3.0.2
+ resolution: "@types/d3-timer@npm:3.0.2"
+ checksum: 10c0/c644dd9571fcc62b1aa12c03bcad40571553020feeb5811f1d8a937ac1e65b8a04b759b4873aef610e28b8714ac71c9885a4d6c127a048d95118f7e5b506d9e1
+ languageName: node
+ linkType: hard
+
+"@types/d3-transition@npm:*":
+ version: 3.0.9
+ resolution: "@types/d3-transition@npm:3.0.9"
+ dependencies:
+ "@types/d3-selection": "npm:*"
+ checksum: 10c0/4f68b9df7ac745b3491216c54203cbbfa0f117ae4c60e2609cdef2db963582152035407fdff995b10ee383bae2f05b7743493f48e1b8e46df54faa836a8fb7b5
+ languageName: node
+ linkType: hard
+
+"@types/d3-zoom@npm:*":
+ version: 3.0.8
+ resolution: "@types/d3-zoom@npm:3.0.8"
+ dependencies:
+ "@types/d3-interpolate": "npm:*"
+ "@types/d3-selection": "npm:*"
+ checksum: 10c0/1dbdbcafddcae12efb5beb6948546963f29599e18bc7f2a91fb69cc617c2299a65354f2d47e282dfb86fec0968406cd4fb7f76ba2d2fb67baa8e8d146eb4a547
+ languageName: node
+ linkType: hard
+
+"@types/d3@npm:^7.4.3":
+ version: 7.4.3
+ resolution: "@types/d3@npm:7.4.3"
+ dependencies:
+ "@types/d3-array": "npm:*"
+ "@types/d3-axis": "npm:*"
+ "@types/d3-brush": "npm:*"
+ "@types/d3-chord": "npm:*"
+ "@types/d3-color": "npm:*"
+ "@types/d3-contour": "npm:*"
+ "@types/d3-delaunay": "npm:*"
+ "@types/d3-dispatch": "npm:*"
+ "@types/d3-drag": "npm:*"
+ "@types/d3-dsv": "npm:*"
+ "@types/d3-ease": "npm:*"
+ "@types/d3-fetch": "npm:*"
+ "@types/d3-force": "npm:*"
+ "@types/d3-format": "npm:*"
+ "@types/d3-geo": "npm:*"
+ "@types/d3-hierarchy": "npm:*"
+ "@types/d3-interpolate": "npm:*"
+ "@types/d3-path": "npm:*"
+ "@types/d3-polygon": "npm:*"
+ "@types/d3-quadtree": "npm:*"
+ "@types/d3-random": "npm:*"
+ "@types/d3-scale": "npm:*"
+ "@types/d3-scale-chromatic": "npm:*"
+ "@types/d3-selection": "npm:*"
+ "@types/d3-shape": "npm:*"
+ "@types/d3-time": "npm:*"
+ "@types/d3-time-format": "npm:*"
+ "@types/d3-timer": "npm:*"
+ "@types/d3-transition": "npm:*"
+ "@types/d3-zoom": "npm:*"
+ checksum: 10c0/a9c6d65b13ef3b42c87f2a89ea63a6d5640221869f97d0657b0cb2f1dac96a0f164bf5605643c0794e0de3aa2bf05df198519aaf15d24ca135eb0e8bd8a9d879
+ languageName: node
+ linkType: hard
+
+"@types/estree@npm:1.0.7, @types/estree@npm:^1.0.0":
+ version: 1.0.7
+ resolution: "@types/estree@npm:1.0.7"
+ checksum: 10c0/be815254316882f7c40847336cd484c3bc1c3e34f710d197160d455dc9d6d050ffbf4c3bc76585dba86f737f020ab20bdb137ebe0e9116b0c86c7c0342221b8c
+ languageName: node
+ linkType: hard
+
+"@types/geojson@npm:*":
+ version: 7946.0.16
+ resolution: "@types/geojson@npm:7946.0.16"
+ checksum: 10c0/1ff24a288bd5860b766b073ead337d31d73bdc715e5b50a2cee5cb0af57a1ed02cc04ef295f5fa68dc40fe3e4f104dd31282b2b818a5ba3231bc1001ba084e3c
+ languageName: node
+ linkType: hard
+
+"@types/json5@npm:^0.0.29":
+ version: 0.0.29
+ resolution: "@types/json5@npm:0.0.29"
+ checksum: 10c0/6bf5337bc447b706bb5b4431d37686aa2ea6d07cfd6f79cc31de80170d6ff9b1c7384a9c0ccbc45b3f512bae9e9f75c2e12109806a15331dc94e8a8db6dbb4ac
+ languageName: node
+ linkType: hard
+
+"@types/lodash@npm:^4.17.16":
+ version: 4.17.16
+ resolution: "@types/lodash@npm:4.17.16"
+ checksum: 10c0/cf017901b8ab1d7aabc86d5189d9288f4f99f19a75caf020c0e2c77b8d4cead4db0d0b842d009b029339f92399f49f34377dd7c2721053388f251778b4c23534
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:^20.11.24":
+ version: 20.17.30
+ resolution: "@types/node@npm:20.17.30"
+ dependencies:
+ undici-types: "npm:~6.19.2"
+ checksum: 10c0/649782c7822367d751472d70c948bcc50cded1a4744610f706f81cd54e1fc015523567d7e3e17f6b19e3e2797f6f23b653e898bdb4a2f21f8759ceba49976310
+ languageName: node
+ linkType: hard
+
+"@types/react-dom@npm:^19.1.2":
+ version: 19.1.2
+ resolution: "@types/react-dom@npm:19.1.2"
+ peerDependencies:
+ "@types/react": ^19.0.0
+ checksum: 10c0/100c341cacba9ec8ae1d47ee051072a3450e9573bf8eeb7262490e341cb246ea0f95a07a1f2077e61cf92648f812a0324c602fcd811bd87b7ce41db2811510cd
+ languageName: node
+ linkType: hard
+
+"@types/react@npm:^19.1.0":
+ version: 19.1.0
+ resolution: "@types/react@npm:19.1.0"
+ dependencies:
+ csstype: "npm:^3.0.2"
+ checksum: 10c0/632fd20ee176e55801a61c5f854141b043571a3e363ef106b047b766a813a12735cbb37abb3d61d126346979f530f2ed269a60c8ef3cdee54e5e9fe4174e5dad
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/eslint-plugin@npm:^8.30.1":
+ version: 8.30.1
+ resolution: "@typescript-eslint/eslint-plugin@npm:8.30.1"
+ dependencies:
+ "@eslint-community/regexpp": "npm:^4.10.0"
+ "@typescript-eslint/scope-manager": "npm:8.30.1"
+ "@typescript-eslint/type-utils": "npm:8.30.1"
+ "@typescript-eslint/utils": "npm:8.30.1"
+ "@typescript-eslint/visitor-keys": "npm:8.30.1"
+ graphemer: "npm:^1.4.0"
+ ignore: "npm:^5.3.1"
+ natural-compare: "npm:^1.4.0"
+ ts-api-utils: "npm:^2.0.1"
+ peerDependencies:
+ "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <5.9.0"
+ checksum: 10c0/e34e067c977a20fe927a30e5ffd5402b03eb12d1c9dc932e7c4a772e78fda9e34708fa2d12ace34bad2c51ecaf5b8cfaa4b372c0c5550fe06587b721f6eae57b
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/parser@npm:^8.45.0":
+ version: 8.45.0
+ resolution: "@typescript-eslint/parser@npm:8.45.0"
+ dependencies:
+ "@typescript-eslint/scope-manager": "npm:8.45.0"
+ "@typescript-eslint/types": "npm:8.45.0"
+ "@typescript-eslint/typescript-estree": "npm:8.45.0"
+ "@typescript-eslint/visitor-keys": "npm:8.45.0"
+ debug: "npm:^4.3.4"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/8b419bcf795b112a39fcac05dcf147835059345b6399035ffa3f76a9d8e320f3fac79cae2fe4320dcda83fa059b017ca7626a7b4e3da08a614415c8867d169b8
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/project-service@npm:8.45.0":
+ version: 8.45.0
+ resolution: "@typescript-eslint/project-service@npm:8.45.0"
+ dependencies:
+ "@typescript-eslint/tsconfig-utils": "npm:^8.45.0"
+ "@typescript-eslint/types": "npm:^8.45.0"
+ debug: "npm:^4.3.4"
+ peerDependencies:
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/98af065a1a3ed9d3d1eb265e09d3e9c2ae676d500a8c1d764f5609fe2c1b86749516b709804eb814fae688be7809d11748b9ae691d43c28da51dac390ca81fa9
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/scope-manager@npm:8.30.1":
+ version: 8.30.1
+ resolution: "@typescript-eslint/scope-manager@npm:8.30.1"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.30.1"
+ "@typescript-eslint/visitor-keys": "npm:8.30.1"
+ checksum: 10c0/8560fd02bb2a73b56f79af1dfa311491926f3625a04c0f32777c7c0bdec47b4a677addf2d2e2cc313416bb59b7a6e0bff7837449816a5ec5ff81e923daa76ca7
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/scope-manager@npm:8.45.0":
+ version: 8.45.0
+ resolution: "@typescript-eslint/scope-manager@npm:8.45.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.45.0"
+ "@typescript-eslint/visitor-keys": "npm:8.45.0"
+ checksum: 10c0/54cd36206f6b4fc8e1e48576ed01e0d6ab20c2a9c4c7d90d5cc3a2d317dd8a13abe148ffecf471b16f1224aba5749e0905472745626bef9ae5bed771776f4abe
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/tsconfig-utils@npm:8.45.0, @typescript-eslint/tsconfig-utils@npm:^8.45.0":
+ version: 8.45.0
+ resolution: "@typescript-eslint/tsconfig-utils@npm:8.45.0"
+ peerDependencies:
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/227a9b7a5baaf35466fd369992cb933192515df1156ddf22f438deb344c2523695208e1036f5590b20603f31724de75a47fe0ee84e2fd4c8e9f3606f23f68112
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/type-utils@npm:8.30.1":
+ version: 8.30.1
+ resolution: "@typescript-eslint/type-utils@npm:8.30.1"
+ dependencies:
+ "@typescript-eslint/typescript-estree": "npm:8.30.1"
+ "@typescript-eslint/utils": "npm:8.30.1"
+ debug: "npm:^4.3.4"
+ ts-api-utils: "npm:^2.0.1"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <5.9.0"
+ checksum: 10c0/c233d2b0b06bd8eca4ee38aebb7544d4084143590328f38c00302f98a62b06868394d4ab1cd798af68d5a47efd84976cc14d415e9e519396dc89aa8d4d47c9ee
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/types@npm:8.30.1":
+ version: 8.30.1
+ resolution: "@typescript-eslint/types@npm:8.30.1"
+ checksum: 10c0/461e800bf911c24d9b61bdbeed897921454acc0c24b4e8a79f943c14234241828c13a31dce31dcce77511185f806a2fb94769075e122e3182ba5a32dd55573eb
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/types@npm:8.45.0, @typescript-eslint/types@npm:^8.45.0":
+ version: 8.45.0
+ resolution: "@typescript-eslint/types@npm:8.45.0"
+ checksum: 10c0/0213a0573c671d13bc91961a2b2e814ec7f6381ff093bce6704017bd96b2fc7fee25906c815cedb32a0601cf5071ca6c7c5f940d087c3b0d3dd7d4bc03478278
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/typescript-estree@npm:8.30.1":
+ version: 8.30.1
+ resolution: "@typescript-eslint/typescript-estree@npm:8.30.1"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.30.1"
+ "@typescript-eslint/visitor-keys": "npm:8.30.1"
+ debug: "npm:^4.3.4"
+ fast-glob: "npm:^3.3.2"
+ is-glob: "npm:^4.0.3"
+ minimatch: "npm:^9.0.4"
+ semver: "npm:^7.6.0"
+ ts-api-utils: "npm:^2.0.1"
+ peerDependencies:
+ typescript: ">=4.8.4 <5.9.0"
+ checksum: 10c0/9eb0b1bc4b5df37c84ac411d77ce0edf934b5fdde021ed45c984aa7894132ff7a276d2b95e2d29ef84c411df8ecdf096eec3e07ec1ee5b1fa8c623d40a82ecf0
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/typescript-estree@npm:8.45.0":
+ version: 8.45.0
+ resolution: "@typescript-eslint/typescript-estree@npm:8.45.0"
+ dependencies:
+ "@typescript-eslint/project-service": "npm:8.45.0"
+ "@typescript-eslint/tsconfig-utils": "npm:8.45.0"
+ "@typescript-eslint/types": "npm:8.45.0"
+ "@typescript-eslint/visitor-keys": "npm:8.45.0"
+ debug: "npm:^4.3.4"
+ fast-glob: "npm:^3.3.2"
+ is-glob: "npm:^4.0.3"
+ minimatch: "npm:^9.0.4"
+ semver: "npm:^7.6.0"
+ ts-api-utils: "npm:^2.1.0"
+ peerDependencies:
+ typescript: ">=4.8.4 <6.0.0"
+ checksum: 10c0/8c2f44a00fe859a6cd4b50157c484c5b6a1c7af5d48e89ae79c5f4924947964962fc8f478ad4c2ade788907fceee9b72d4e376508ea79b51392f91082a37d239
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/utils@npm:8.30.1":
+ version: 8.30.1
+ resolution: "@typescript-eslint/utils@npm:8.30.1"
+ dependencies:
+ "@eslint-community/eslint-utils": "npm:^4.4.0"
+ "@typescript-eslint/scope-manager": "npm:8.30.1"
+ "@typescript-eslint/types": "npm:8.30.1"
+ "@typescript-eslint/typescript-estree": "npm:8.30.1"
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <5.9.0"
+ checksum: 10c0/ad54aa386edc2e19957c73ef25eea3e263e7e15e941c72e91ca6c8ea2536979d343a6069de0e40b15f0e732ddaacbfcc3d5f25a1583e11a32120c42c471802ea
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/visitor-keys@npm:8.30.1":
+ version: 8.30.1
+ resolution: "@typescript-eslint/visitor-keys@npm:8.30.1"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.30.1"
+ eslint-visitor-keys: "npm:^4.2.0"
+ checksum: 10c0/bdc182289c68a5c8f891f9aecf6ccb59743c3f2b1bbe57f57f8c7ce1688f4381182e301919895cefc929539eea914eeb847f7d351cdc3f685ed6c5ee67a10c9e
+ languageName: node
+ linkType: hard
+
+"@typescript-eslint/visitor-keys@npm:8.45.0":
+ version: 8.45.0
+ resolution: "@typescript-eslint/visitor-keys@npm:8.45.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:8.45.0"
+ eslint-visitor-keys: "npm:^4.2.1"
+ checksum: 10c0/119adcf50c902dad7f7757bcdd88fad0a23a171d309d9b7cefe78af12e451cf84c04ae611f4c31f7e23f16c2b47665ad92e6e5648fc77d542ef306f465bf1f29
+ languageName: node
+ linkType: hard
+
+"@ungap/structured-clone@npm:^1.2.0":
+ version: 1.3.0
+ resolution: "@ungap/structured-clone@npm:1.3.0"
+ checksum: 10c0/0fc3097c2540ada1fc340ee56d58d96b5b536a2a0dab6e3ec17d4bfc8c4c86db345f61a375a8185f9da96f01c69678f836a2b57eeaa9e4b8eeafd26428e57b0a
+ languageName: node
+ linkType: hard
+
+"@vitejs/plugin-react@npm:^4.3.4":
+ version: 4.3.4
+ resolution: "@vitejs/plugin-react@npm:4.3.4"
+ dependencies:
+ "@babel/core": "npm:^7.26.0"
+ "@babel/plugin-transform-react-jsx-self": "npm:^7.25.9"
+ "@babel/plugin-transform-react-jsx-source": "npm:^7.25.9"
+ "@types/babel__core": "npm:^7.20.5"
+ react-refresh: "npm:^0.14.2"
+ peerDependencies:
+ vite: ^4.2.0 || ^5.0.0 || ^6.0.0
+ checksum: 10c0/38a47a1dbafae0b97142943d83ee3674cb3331153a60b1a3fd29d230c12c9dfe63b7c345b231a3450168ed8a9375a9a1a253c3d85e9efdc19478c0d56b98496c
+ languageName: node
+ linkType: hard
+
+"@vitest/expect@npm:3.1.2":
+ version: 3.1.2
+ resolution: "@vitest/expect@npm:3.1.2"
+ dependencies:
+ "@vitest/spy": "npm:3.1.2"
+ "@vitest/utils": "npm:3.1.2"
+ chai: "npm:^5.2.0"
+ tinyrainbow: "npm:^2.0.0"
+ checksum: 10c0/63507f77b225196d79f5aabedbb10f93974808a2b507661b66def95e803e6f7f958049e9b985d2d5fee83317f157f8018fea6e1240c64a5fec8e9753235ad081
+ languageName: node
+ linkType: hard
+
+"@vitest/mocker@npm:3.1.2":
+ version: 3.1.2
+ resolution: "@vitest/mocker@npm:3.1.2"
+ dependencies:
+ "@vitest/spy": "npm:3.1.2"
+ estree-walker: "npm:^3.0.3"
+ magic-string: "npm:^0.30.17"
+ peerDependencies:
+ msw: ^2.4.9
+ vite: ^5.0.0 || ^6.0.0
+ peerDependenciesMeta:
+ msw:
+ optional: true
+ vite:
+ optional: true
+ checksum: 10c0/4447962d7e160d774cf5b1eef03067230b5e36131e3441d3dd791ad38b6c06e16940f21fa20c311c58b635ba376ffb45d003b6f04d0d4cc0d7c4be854df4b8e4
+ languageName: node
+ linkType: hard
+
+"@vitest/pretty-format@npm:3.1.2, @vitest/pretty-format@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "@vitest/pretty-format@npm:3.1.2"
+ dependencies:
+ tinyrainbow: "npm:^2.0.0"
+ checksum: 10c0/f4a79be6d5a1a0b3215ba66b3cc62b2e0fc3a81b4eee07b2644600450b796a8630ee86180691391a5597c9a792f3d213d54f2043f4a0809a9386473bfcca85fb
+ languageName: node
+ linkType: hard
+
+"@vitest/runner@npm:3.1.2":
+ version: 3.1.2
+ resolution: "@vitest/runner@npm:3.1.2"
+ dependencies:
+ "@vitest/utils": "npm:3.1.2"
+ pathe: "npm:^2.0.3"
+ checksum: 10c0/7312013c87a6869d07380506e808f686ab04cb989f8ae6d3c7ea16a4990fce715801c8c4d5836612706a9e8a2e5ed01629d728360fba035d8f2570a90b0050cd
+ languageName: node
+ linkType: hard
+
+"@vitest/snapshot@npm:3.1.2":
+ version: 3.1.2
+ resolution: "@vitest/snapshot@npm:3.1.2"
+ dependencies:
+ "@vitest/pretty-format": "npm:3.1.2"
+ magic-string: "npm:^0.30.17"
+ pathe: "npm:^2.0.3"
+ checksum: 10c0/f3e451ec41eb54ace4c08f3dc3dbd3c283ff73b4c8eab899bb6bcd6589bf864bcaa33afb611751a76c87c5ca31fb3420511633fb7fb06af2692a70e6c8578db2
+ languageName: node
+ linkType: hard
+
+"@vitest/spy@npm:3.1.2":
+ version: 3.1.2
+ resolution: "@vitest/spy@npm:3.1.2"
+ dependencies:
+ tinyspy: "npm:^3.0.2"
+ checksum: 10c0/0f827970c34e256f3af964df5a5133c181ef1475b73a15b47565ad3187e4b2627e949e632c21e34a694e16b98ceb1e670f5e7dc99baeb53cb029578147d4ccee
+ languageName: node
+ linkType: hard
+
+"@vitest/utils@npm:3.1.2":
+ version: 3.1.2
+ resolution: "@vitest/utils@npm:3.1.2"
+ dependencies:
+ "@vitest/pretty-format": "npm:3.1.2"
+ loupe: "npm:^3.1.3"
+ tinyrainbow: "npm:^2.0.0"
+ checksum: 10c0/9e778ab7cf483396d650ddd079e702af6b9f087443a99045707865bf433cfa3c4f468d94d17a44173e6adcc5cce218a1b0073d1b94bbd84a03262033e427336d
+ 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
+
+"acorn-jsx@npm:^5.3.2":
+ version: 5.3.2
+ resolution: "acorn-jsx@npm:5.3.2"
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+ checksum: 10c0/4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1
+ languageName: node
+ linkType: hard
+
+"acorn@npm:^8.9.0":
+ version: 8.14.1
+ resolution: "acorn@npm:8.14.1"
+ bin:
+ acorn: bin/acorn
+ checksum: 10c0/dbd36c1ed1d2fa3550140000371fcf721578095b18777b85a79df231ca093b08edc6858d75d6e48c73e431c174dcf9214edbd7e6fa5911b93bd8abfa54e47123
+ 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
+
+"ajv@npm:^6.12.4":
+ 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.2.2
+ resolution: "ansi-regex@npm:6.2.2"
+ checksum: 10c0/05d4acb1d2f59ab2cf4b794339c7b168890d44dda4bf0ce01152a8da0213aca207802f930442ce8cd22d7a92f44907664aac6508904e75e038fa944d2601b30f
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.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.3
+ resolution: "ansi-styles@npm:6.2.3"
+ checksum: 10c0/23b8a4ce14e18fb854693b95351e286b771d23d8844057ed2e7d083cd3e708376c3323707ec6a24365f7d7eda3ca00327fe04092e29e551499ec4c8b7bfac868
+ languageName: node
+ linkType: hard
+
+"anymatch@npm:~3.1.2":
+ version: 3.1.3
+ resolution: "anymatch@npm:3.1.3"
+ dependencies:
+ normalize-path: "npm:^3.0.0"
+ picomatch: "npm:^2.0.4"
+ checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac
+ languageName: node
+ linkType: hard
+
+"argparse@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "argparse@npm:2.0.1"
+ checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e
+ languageName: node
+ linkType: hard
+
+"array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "array-buffer-byte-length@npm:1.0.2"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ is-array-buffer: "npm:^3.0.5"
+ checksum: 10c0/74e1d2d996941c7a1badda9cabb7caab8c449db9086407cad8a1b71d2604cc8abf105db8ca4e02c04579ec58b7be40279ddb09aea4784832984485499f48432d
+ languageName: node
+ linkType: hard
+
+"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8":
+ version: 3.1.8
+ resolution: "array-includes@npm:3.1.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.4"
+ is-string: "npm:^1.0.7"
+ checksum: 10c0/5b1004d203e85873b96ddc493f090c9672fd6c80d7a60b798da8a14bff8a670ff95db5aafc9abc14a211943f05220dacf8ea17638ae0af1a6a47b8c0b48ce370
+ languageName: node
+ linkType: hard
+
+"array.prototype.findlast@npm:^1.2.5":
+ version: 1.2.5
+ resolution: "array.prototype.findlast@npm:1.2.5"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10c0/ddc952b829145ab45411b9d6adcb51a8c17c76bf89c9dd64b52d5dffa65d033da8c076ed2e17091779e83bc892b9848188d7b4b33453c5565e65a92863cb2775
+ languageName: node
+ linkType: hard
+
+"array.prototype.findlastindex@npm:^1.2.5":
+ version: 1.2.6
+ resolution: "array.prototype.findlastindex@npm:1.2.6"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.4"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.9"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.1.1"
+ es-shim-unscopables: "npm:^1.1.0"
+ checksum: 10c0/82559310d2e57ec5f8fc53d7df420e3abf0ba497935de0a5570586035478ba7d07618cb18e2d4ada2da514c8fb98a034aaf5c06caa0a57e2f7f4c4adedef5956
+ languageName: node
+ linkType: hard
+
+"array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.2":
+ version: 1.3.3
+ resolution: "array.prototype.flat@npm:1.3.3"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.5"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10c0/d90e04dfbc43bb96b3d2248576753d1fb2298d2d972e29ca7ad5ec621f0d9e16ff8074dae647eac4f31f4fb7d3f561a7ac005fb01a71f51705a13b5af06a7d8a
+ languageName: node
+ linkType: hard
+
+"array.prototype.flatmap@npm:^1.3.2, array.prototype.flatmap@npm:^1.3.3":
+ version: 1.3.3
+ resolution: "array.prototype.flatmap@npm:1.3.3"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.5"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10c0/ba899ea22b9dc9bf276e773e98ac84638ed5e0236de06f13d63a90b18ca9e0ec7c97d622d899796e3773930b946cd2413d098656c0c5d8cc58c6f25c21e6bd54
+ languageName: node
+ linkType: hard
+
+"array.prototype.tosorted@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "array.prototype.tosorted@npm:1.1.4"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.3"
+ es-errors: "npm:^1.3.0"
+ es-shim-unscopables: "npm:^1.0.2"
+ checksum: 10c0/eb3c4c4fc0381b0bf6dba2ea4d48d367c2827a0d4236a5718d97caaccc6b78f11f4cadf090736e86301d295a6aa4967ed45568f92ced51be8cbbacd9ca410943
+ languageName: node
+ linkType: hard
+
+"arraybuffer.prototype.slice@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "arraybuffer.prototype.slice@npm:1.0.4"
+ dependencies:
+ array-buffer-byte-length: "npm:^1.0.1"
+ call-bind: "npm:^1.0.8"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.5"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.6"
+ is-array-buffer: "npm:^3.0.4"
+ checksum: 10c0/2f2459caa06ae0f7f615003f9104b01f6435cc803e11bd2a655107d52a1781dc040532dc44d93026b694cc18793993246237423e13a5337e86b43ed604932c06
+ languageName: node
+ linkType: hard
+
+"assertion-error@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "assertion-error@npm:2.0.1"
+ checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8
+ languageName: node
+ linkType: hard
+
+"async-function@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "async-function@npm:1.0.0"
+ checksum: 10c0/669a32c2cb7e45091330c680e92eaeb791bc1d4132d827591e499cd1f776ff5a873e77e5f92d0ce795a8d60f10761dec9ddfe7225a5de680f5d357f67b1aac73
+ languageName: node
+ linkType: hard
+
+"available-typed-arrays@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "available-typed-arrays@npm:1.0.7"
+ dependencies:
+ possible-typed-array-names: "npm:^1.0.0"
+ checksum: 10c0/d07226ef4f87daa01bd0fe80f8f310982e345f372926da2e5296aecc25c41cab440916bbaa4c5e1034b453af3392f67df5961124e4b586df1e99793a1374bdb2
+ 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
+
+"binary-extensions@npm:^2.0.0":
+ version: 2.3.0
+ resolution: "binary-extensions@npm:2.3.0"
+ checksum: 10c0/75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^1.1.7":
+ version: 1.1.11
+ resolution: "brace-expansion@npm:1.1.11"
+ dependencies:
+ balanced-match: "npm:^1.0.0"
+ concat-map: "npm:0.0.1"
+ checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668
+ 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
+
+"braces@npm:^3.0.3, braces@npm:~3.0.2":
+ version: 3.0.3
+ resolution: "braces@npm:3.0.3"
+ dependencies:
+ fill-range: "npm:^7.1.1"
+ checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04
+ languageName: node
+ linkType: hard
+
+"browserslist@npm:^4.24.0":
+ version: 4.24.4
+ resolution: "browserslist@npm:4.24.4"
+ dependencies:
+ caniuse-lite: "npm:^1.0.30001688"
+ electron-to-chromium: "npm:^1.5.73"
+ node-releases: "npm:^2.0.19"
+ update-browserslist-db: "npm:^1.1.1"
+ bin:
+ browserslist: cli.js
+ checksum: 10c0/db7ebc1733cf471e0b490b4f47e3e2ea2947ce417192c9246644e92c667dd56a71406cc58f62ca7587caf828364892e9952904a02b7aead752bc65b62a37cfe9
+ languageName: node
+ linkType: hard
+
+"cac@npm:^6.7.14":
+ version: 6.7.14
+ resolution: "cac@npm:6.7.14"
+ checksum: 10c0/4ee06aaa7bab8981f0d54e5f5f9d4adcd64058e9697563ce336d8a3878ed018ee18ebe5359b2430eceae87e0758e62ea2019c3f52ae6e211b1bd2e133856cd10
+ 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.0, 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-bind@npm:^1.0.7, call-bind@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "call-bind@npm:1.0.8"
+ dependencies:
+ call-bind-apply-helpers: "npm:^1.0.0"
+ es-define-property: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.4"
+ set-function-length: "npm:^1.2.2"
+ checksum: 10c0/a13819be0681d915144467741b69875ae5f4eba8961eb0bf322aab63ec87f8250eb6d6b0dcbb2e1349876412a56129ca338592b3829ef4343527f5f18a0752d4
+ languageName: node
+ linkType: hard
+
+"call-bound@npm:^1.0.2, call-bound@npm:^1.0.3, call-bound@npm:^1.0.4":
+ 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
+
+"callsites@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "callsites@npm:3.1.0"
+ checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301
+ languageName: node
+ linkType: hard
+
+"caniuse-lite@npm:^1.0.30001688":
+ version: 1.0.30001713
+ resolution: "caniuse-lite@npm:1.0.30001713"
+ checksum: 10c0/f5468abfe73ce30e29cc8bde2ea67df2aab69032bdd93345e0640efefb76b7901c84fe1d28d591a797e65fe52fc24cae97060bb5552f9f9740322aff95ce2f9d
+ languageName: node
+ linkType: hard
+
+"chai@npm:^5.2.0":
+ version: 5.2.0
+ resolution: "chai@npm:5.2.0"
+ dependencies:
+ assertion-error: "npm:^2.0.1"
+ check-error: "npm:^2.1.1"
+ deep-eql: "npm:^5.0.1"
+ loupe: "npm:^3.1.0"
+ pathval: "npm:^2.0.0"
+ checksum: 10c0/dfd1cb719c7cebb051b727672d382a35338af1470065cb12adb01f4ee451bbf528e0e0f9ab2016af5fc1eea4df6e7f4504dc8443f8f00bd8fb87ad32dc516f7d
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^4.0.0":
+ version: 4.1.2
+ resolution: "chalk@npm:4.1.2"
+ dependencies:
+ ansi-styles: "npm:^4.1.0"
+ supports-color: "npm:^7.1.0"
+ checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880
+ languageName: node
+ linkType: hard
+
+"check-error@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "check-error@npm:2.1.1"
+ checksum: 10c0/979f13eccab306cf1785fa10941a590b4e7ea9916ea2a4f8c87f0316fc3eab07eabefb6e587424ef0f88cbcd3805791f172ea739863ca3d7ce2afc54641c7f0e
+ languageName: node
+ linkType: hard
+
+"chokidar@npm:^3.5.3":
+ version: 3.6.0
+ resolution: "chokidar@npm:3.6.0"
+ dependencies:
+ anymatch: "npm:~3.1.2"
+ braces: "npm:~3.0.2"
+ fsevents: "npm:~2.3.2"
+ glob-parent: "npm:~5.1.2"
+ is-binary-path: "npm:~2.1.0"
+ is-glob: "npm:~4.0.1"
+ normalize-path: "npm:~3.0.0"
+ readdirp: "npm:~3.6.0"
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462
+ 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
+
+"clsx@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "clsx@npm:2.1.1"
+ checksum: 10c0/c4c8eb865f8c82baab07e71bfa8897c73454881c4f99d6bc81585aecd7c441746c1399d08363dc096c550cceaf97bd4ce1e8854e1771e9998d9f94c4fe075839
+ 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.1.4":
+ version: 1.1.4
+ resolution: "color-name@npm:1.1.4"
+ checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95
+ languageName: node
+ linkType: hard
+
+"commander@npm:7":
+ version: 7.2.0
+ resolution: "commander@npm:7.2.0"
+ checksum: 10c0/8d690ff13b0356df7e0ebbe6c59b4712f754f4b724d4f473d3cc5b3fdcf978e3a5dc3078717858a2ceb50b0f84d0660a7f22a96cdc50fb877d0c9bb31593d23a
+ languageName: node
+ linkType: hard
+
+"concat-map@npm:0.0.1":
+ version: 0.0.1
+ resolution: "concat-map@npm:0.0.1"
+ checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f
+ languageName: node
+ linkType: hard
+
+"convert-source-map@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "convert-source-map@npm:2.0.0"
+ checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b
+ languageName: node
+ linkType: hard
+
+"cookie@npm:^1.0.1":
+ version: 1.0.2
+ resolution: "cookie@npm:1.0.2"
+ checksum: 10c0/fd25fe79e8fbcfcaf6aa61cd081c55d144eeeba755206c058682257cb38c4bd6795c6620de3f064c740695bb65b7949ebb1db7a95e4636efb8357a335ad3f54b
+ languageName: node
+ linkType: hard
+
+"cross-spawn@npm:^7.0.2, 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
+
+"csstype@npm:^3.0.2":
+ version: 3.1.3
+ resolution: "csstype@npm:3.1.3"
+ checksum: 10c0/80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248
+ languageName: node
+ linkType: hard
+
+"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:2.5.0 - 3, d3-array@npm:3, d3-array@npm:^3.2.0":
+ version: 3.2.4
+ resolution: "d3-array@npm:3.2.4"
+ dependencies:
+ internmap: "npm:1 - 2"
+ checksum: 10c0/08b95e91130f98c1375db0e0af718f4371ccacef7d5d257727fe74f79a24383e79aba280b9ffae655483ffbbad4fd1dec4ade0119d88c4749f388641c8bf8c50
+ languageName: node
+ linkType: hard
+
+"d3-axis@npm:3":
+ version: 3.0.0
+ resolution: "d3-axis@npm:3.0.0"
+ checksum: 10c0/a271e70ba1966daa5aaf6a7f959ceca3e12997b43297e757c7b945db2e1ead3c6ee226f2abcfa22abbd4e2e28bd2b71a0911794c4e5b911bbba271328a582c78
+ languageName: node
+ linkType: hard
+
+"d3-brush@npm:3":
+ version: 3.0.0
+ resolution: "d3-brush@npm:3.0.0"
+ dependencies:
+ d3-dispatch: "npm:1 - 3"
+ d3-drag: "npm:2 - 3"
+ d3-interpolate: "npm:1 - 3"
+ d3-selection: "npm:3"
+ d3-transition: "npm:3"
+ checksum: 10c0/07baf00334c576da2f68a91fc0da5732c3a5fa19bd3d7aed7fd24d1d674a773f71a93e9687c154176f7246946194d77c48c2d8fed757f5dcb1a4740067ec50a8
+ languageName: node
+ linkType: hard
+
+"d3-chord@npm:3":
+ version: 3.0.1
+ resolution: "d3-chord@npm:3.0.1"
+ dependencies:
+ d3-path: "npm:1 - 3"
+ checksum: 10c0/baa6013914af3f4fe1521f0d16de31a38eb8a71d08ff1dec4741f6f45a828661e5cd3935e39bd14e3032bdc78206c283ca37411da21d46ec3cfc520be6e7a7ce
+ languageName: node
+ linkType: hard
+
+"d3-color@npm:1 - 3, d3-color@npm:3":
+ version: 3.1.0
+ resolution: "d3-color@npm:3.1.0"
+ checksum: 10c0/a4e20e1115fa696fce041fbe13fbc80dc4c19150fa72027a7c128ade980bc0eeeba4bcf28c9e21f0bce0e0dbfe7ca5869ef67746541dcfda053e4802ad19783c
+ languageName: node
+ linkType: hard
+
+"d3-contour@npm:4":
+ version: 4.0.2
+ resolution: "d3-contour@npm:4.0.2"
+ dependencies:
+ d3-array: "npm:^3.2.0"
+ checksum: 10c0/98bc5fbed6009e08707434a952076f39f1cd6ed8b9288253cc3e6a3286e4e80c63c62d84954b20e64bf6e4ededcc69add54d3db25e990784a59c04edd3449032
+ languageName: node
+ linkType: hard
+
+"d3-delaunay@npm:6":
+ version: 6.0.4
+ resolution: "d3-delaunay@npm:6.0.4"
+ dependencies:
+ delaunator: "npm:5"
+ checksum: 10c0/57c3aecd2525664b07c4c292aa11cf49b2752c0cf3f5257f752999399fe3c592de2d418644d79df1f255471eec8057a9cc0c3062ed7128cb3348c45f69597754
+ languageName: node
+ linkType: hard
+
+"d3-dispatch@npm:1 - 3, d3-dispatch@npm:3":
+ version: 3.0.1
+ resolution: "d3-dispatch@npm:3.0.1"
+ checksum: 10c0/6eca77008ce2dc33380e45d4410c67d150941df7ab45b91d116dbe6d0a3092c0f6ac184dd4602c796dc9e790222bad3ff7142025f5fd22694efe088d1d941753
+ languageName: node
+ linkType: hard
+
+"d3-drag@npm:2 - 3, d3-drag@npm:3":
+ version: 3.0.0
+ resolution: "d3-drag@npm:3.0.0"
+ dependencies:
+ d3-dispatch: "npm:1 - 3"
+ d3-selection: "npm:3"
+ checksum: 10c0/d2556e8dc720741a443b595a30af403dd60642dfd938d44d6e9bfc4c71a962142f9a028c56b61f8b4790b65a34acad177d1263d66f103c3c527767b0926ef5aa
+ languageName: node
+ linkType: hard
+
+"d3-dsv@npm:1 - 3, d3-dsv@npm:3":
+ version: 3.0.1
+ resolution: "d3-dsv@npm:3.0.1"
+ dependencies:
+ commander: "npm:7"
+ iconv-lite: "npm:0.6"
+ rw: "npm:1"
+ bin:
+ csv2json: bin/dsv2json.js
+ csv2tsv: bin/dsv2dsv.js
+ dsv2dsv: bin/dsv2dsv.js
+ dsv2json: bin/dsv2json.js
+ json2csv: bin/json2dsv.js
+ json2dsv: bin/json2dsv.js
+ json2tsv: bin/json2dsv.js
+ tsv2csv: bin/dsv2dsv.js
+ tsv2json: bin/dsv2json.js
+ checksum: 10c0/10e6af9e331950ed258f34ab49ac1b7060128ef81dcf32afc790bd1f7e8c3cc2aac7f5f875250a83f21f39bb5925fbd0872bb209f8aca32b3b77d32bab8a65ab
+ languageName: node
+ linkType: hard
+
+"d3-ease@npm:1 - 3, d3-ease@npm:3":
+ version: 3.0.1
+ resolution: "d3-ease@npm:3.0.1"
+ checksum: 10c0/fec8ef826c0cc35cda3092c6841e07672868b1839fcaf556e19266a3a37e6bc7977d8298c0fcb9885e7799bfdcef7db1baaba9cd4dcf4bc5e952cf78574a88b0
+ languageName: node
+ linkType: hard
+
+"d3-fetch@npm:3":
+ version: 3.0.1
+ resolution: "d3-fetch@npm:3.0.1"
+ dependencies:
+ d3-dsv: "npm:1 - 3"
+ checksum: 10c0/4f467a79bf290395ac0cbb5f7562483f6a18668adc4c8eb84c9d3eff048b6f6d3b6f55079ba1ebf1908dabe000c941d46be447f8d78453b2dad5fb59fb6aa93b
+ languageName: node
+ linkType: hard
+
+"d3-force@npm:3":
+ version: 3.0.0
+ resolution: "d3-force@npm:3.0.0"
+ dependencies:
+ d3-dispatch: "npm:1 - 3"
+ d3-quadtree: "npm:1 - 3"
+ d3-timer: "npm:1 - 3"
+ checksum: 10c0/220a16a1a1ac62ba56df61028896e4b52be89c81040d20229c876efc8852191482c233f8a52bb5a4e0875c321b8e5cb6413ef3dfa4d8fe79eeb7d52c587f52cf
+ languageName: node
+ linkType: hard
+
+"d3-format@npm:1 - 3, d3-format@npm:3":
+ version: 3.1.0
+ resolution: "d3-format@npm:3.1.0"
+ checksum: 10c0/049f5c0871ebce9859fc5e2f07f336b3c5bfff52a2540e0bac7e703fce567cd9346f4ad1079dd18d6f1e0eaa0599941c1810898926f10ac21a31fd0a34b4aa75
+ languageName: node
+ linkType: hard
+
+"d3-geo@npm:3":
+ version: 3.1.1
+ resolution: "d3-geo@npm:3.1.1"
+ dependencies:
+ d3-array: "npm:2.5.0 - 3"
+ checksum: 10c0/d32270dd2dc8ac3ea63e8805d63239c4c8ec6c0d339d73b5e5a30a87f8f54db22a78fb434369799465eae169503b25f9a107c642c8a16c32a3285bc0e6d8e8c1
+ languageName: node
+ linkType: hard
+
+"d3-hierarchy@npm:3":
+ version: 3.1.2
+ resolution: "d3-hierarchy@npm:3.1.2"
+ checksum: 10c0/6dcdb480539644aa7fc0d72dfc7b03f99dfbcdf02714044e8c708577e0d5981deb9d3e99bbbb2d26422b55bcc342ac89a0fa2ea6c9d7302e2fc0951dd96f89cf
+ languageName: node
+ linkType: hard
+
+"d3-interpolate@npm:1 - 3, d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:3":
+ version: 3.0.1
+ resolution: "d3-interpolate@npm:3.0.1"
+ dependencies:
+ d3-color: "npm:1 - 3"
+ checksum: 10c0/19f4b4daa8d733906671afff7767c19488f51a43d251f8b7f484d5d3cfc36c663f0a66c38fe91eee30f40327443d799be17169f55a293a3ba949e84e57a33e6a
+ languageName: node
+ linkType: hard
+
+"d3-path@npm:1 - 3, d3-path@npm:3, d3-path@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "d3-path@npm:3.1.0"
+ checksum: 10c0/dc1d58ec87fa8319bd240cf7689995111a124b141428354e9637aa83059eb12e681f77187e0ada5dedfce346f7e3d1f903467ceb41b379bfd01cd8e31721f5da
+ languageName: node
+ linkType: hard
+
+"d3-polygon@npm:3":
+ version: 3.0.1
+ resolution: "d3-polygon@npm:3.0.1"
+ checksum: 10c0/e236aa7f33efa9a4072907af7dc119f85b150a0716759d4fe5f12f62573018264a6cbde8617fbfa6944a7ae48c1c0c8d3f39ae72e11f66dd471e9b5e668385df
+ languageName: node
+ linkType: hard
+
+"d3-quadtree@npm:1 - 3, d3-quadtree@npm:3":
+ version: 3.0.1
+ resolution: "d3-quadtree@npm:3.0.1"
+ checksum: 10c0/18302d2548bfecaef788152397edec95a76400fd97d9d7f42a089ceb68d910f685c96579d74e3712d57477ed042b056881b47cd836a521de683c66f47ce89090
+ languageName: node
+ linkType: hard
+
+"d3-random@npm:3":
+ version: 3.0.1
+ resolution: "d3-random@npm:3.0.1"
+ checksum: 10c0/987a1a1bcbf26e6cf01fd89d5a265b463b2cea93560fc17d9b1c45e8ed6ff2db5924601bcceb808de24c94133f000039eb7fa1c469a7a844ccbf1170cbb25b41
+ languageName: node
+ linkType: hard
+
+"d3-scale-chromatic@npm:3":
+ version: 3.1.0
+ resolution: "d3-scale-chromatic@npm:3.1.0"
+ dependencies:
+ d3-color: "npm:1 - 3"
+ d3-interpolate: "npm:1 - 3"
+ checksum: 10c0/9a3f4671ab0b971f4a411b42180d7cf92bfe8e8584e637ce7e698d705e18d6d38efbd20ec64f60cc0dfe966c20d40fc172565bc28aaa2990c0a006360eed91af
+ languageName: node
+ linkType: hard
+
+"d3-scale@npm:4":
+ version: 4.0.2
+ resolution: "d3-scale@npm:4.0.2"
+ dependencies:
+ d3-array: "npm:2.10.0 - 3"
+ d3-format: "npm:1 - 3"
+ d3-interpolate: "npm:1.2.0 - 3"
+ d3-time: "npm:2.1.1 - 3"
+ d3-time-format: "npm:2 - 4"
+ checksum: 10c0/65d9ad8c2641aec30ed5673a7410feb187a224d6ca8d1a520d68a7d6eac9d04caedbff4713d1e8545be33eb7fec5739983a7ab1d22d4e5ad35368c6729d362f1
+ languageName: node
+ linkType: hard
+
+"d3-selection@npm:2 - 3, d3-selection@npm:3":
+ version: 3.0.0
+ resolution: "d3-selection@npm:3.0.0"
+ checksum: 10c0/e59096bbe8f0cb0daa1001d9bdd6dbc93a688019abc97d1d8b37f85cd3c286a6875b22adea0931b0c88410d025563e1643019161a883c516acf50c190a11b56b
+ languageName: node
+ linkType: hard
+
+"d3-shape@npm:3":
+ version: 3.2.0
+ resolution: "d3-shape@npm:3.2.0"
+ dependencies:
+ d3-path: "npm:^3.1.0"
+ checksum: 10c0/f1c9d1f09926daaf6f6193ae3b4c4b5521e81da7d8902d24b38694517c7f527ce3c9a77a9d3a5722ad1e3ff355860b014557b450023d66a944eabf8cfde37132
+ languageName: node
+ linkType: hard
+
+"d3-time-format@npm:2 - 4, d3-time-format@npm:4":
+ version: 4.1.0
+ resolution: "d3-time-format@npm:4.1.0"
+ dependencies:
+ d3-time: "npm:1 - 3"
+ checksum: 10c0/735e00fb25a7fd5d418fac350018713ae394eefddb0d745fab12bbff0517f9cdb5f807c7bbe87bb6eeb06249662f8ea84fec075f7d0cd68609735b2ceb29d206
+ languageName: node
+ linkType: hard
+
+"d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:3":
+ version: 3.1.0
+ resolution: "d3-time@npm:3.1.0"
+ dependencies:
+ d3-array: "npm:2 - 3"
+ checksum: 10c0/a984f77e1aaeaa182679b46fbf57eceb6ebdb5f67d7578d6f68ef933f8eeb63737c0949991618a8d29472dbf43736c7d7f17c452b2770f8c1271191cba724ca1
+ languageName: node
+ linkType: hard
+
+"d3-timer@npm:1 - 3, d3-timer@npm:3":
+ version: 3.0.1
+ resolution: "d3-timer@npm:3.0.1"
+ checksum: 10c0/d4c63cb4bb5461d7038aac561b097cd1c5673969b27cbdd0e87fa48d9300a538b9e6f39b4a7f0e3592ef4f963d858c8a9f0e92754db73116770856f2fc04561a
+ languageName: node
+ linkType: hard
+
+"d3-transition@npm:2 - 3, d3-transition@npm:3":
+ version: 3.0.1
+ resolution: "d3-transition@npm:3.0.1"
+ dependencies:
+ d3-color: "npm:1 - 3"
+ d3-dispatch: "npm:1 - 3"
+ d3-ease: "npm:1 - 3"
+ d3-interpolate: "npm:1 - 3"
+ d3-timer: "npm:1 - 3"
+ peerDependencies:
+ d3-selection: 2 - 3
+ checksum: 10c0/4e74535dda7024aa43e141635b7522bb70cf9d3dfefed975eb643b36b864762eca67f88fafc2ca798174f83ca7c8a65e892624f824b3f65b8145c6a1a88dbbad
+ languageName: node
+ linkType: hard
+
+"d3-zoom@npm:3":
+ version: 3.0.0
+ resolution: "d3-zoom@npm:3.0.0"
+ dependencies:
+ d3-dispatch: "npm:1 - 3"
+ d3-drag: "npm:2 - 3"
+ d3-interpolate: "npm:1 - 3"
+ d3-selection: "npm:2 - 3"
+ d3-transition: "npm:2 - 3"
+ checksum: 10c0/ee2036479049e70d8c783d594c444fe00e398246048e3f11a59755cd0e21de62ece3126181b0d7a31bf37bcf32fd726f83ae7dea4495ff86ec7736ce5ad36fd3
+ languageName: node
+ linkType: hard
+
+"d3@npm:^7.8.5":
+ version: 7.9.0
+ resolution: "d3@npm:7.9.0"
+ dependencies:
+ d3-array: "npm:3"
+ d3-axis: "npm:3"
+ d3-brush: "npm:3"
+ d3-chord: "npm:3"
+ d3-color: "npm:3"
+ d3-contour: "npm:4"
+ d3-delaunay: "npm:6"
+ d3-dispatch: "npm:3"
+ d3-drag: "npm:3"
+ d3-dsv: "npm:3"
+ d3-ease: "npm:3"
+ d3-fetch: "npm:3"
+ d3-force: "npm:3"
+ d3-format: "npm:3"
+ d3-geo: "npm:3"
+ d3-hierarchy: "npm:3"
+ d3-interpolate: "npm:3"
+ d3-path: "npm:3"
+ d3-polygon: "npm:3"
+ d3-quadtree: "npm:3"
+ d3-random: "npm:3"
+ d3-scale: "npm:4"
+ d3-scale-chromatic: "npm:3"
+ d3-selection: "npm:3"
+ d3-shape: "npm:3"
+ d3-time: "npm:3"
+ d3-time-format: "npm:4"
+ d3-timer: "npm:3"
+ d3-transition: "npm:3"
+ d3-zoom: "npm:3"
+ checksum: 10c0/3dd9c08c73cfaa69c70c49e603c85e049c3904664d9c79a1a52a0f52795828a1ff23592dc9a7b2257e711d68a615472a13103c212032f38e016d609796e087e8
+ languageName: node
+ linkType: hard
+
+"data-view-buffer@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "data-view-buffer@npm:1.0.2"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.2"
+ checksum: 10c0/7986d40fc7979e9e6241f85db8d17060dd9a71bd53c894fa29d126061715e322a4cd47a00b0b8c710394854183d4120462b980b8554012acc1c0fa49df7ad38c
+ languageName: node
+ linkType: hard
+
+"data-view-byte-length@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "data-view-byte-length@npm:1.0.2"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.2"
+ checksum: 10c0/f8a4534b5c69384d95ac18137d381f18a5cfae1f0fc1df0ef6feef51ef0d568606d970b69e02ea186c6c0f0eac77fe4e6ad96fec2569cc86c3afcc7475068c55
+ languageName: node
+ linkType: hard
+
+"data-view-byte-offset@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "data-view-byte-offset@npm:1.0.1"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ es-errors: "npm:^1.3.0"
+ is-data-view: "npm:^1.0.1"
+ checksum: 10c0/fa7aa40078025b7810dcffc16df02c480573b7b53ef1205aa6a61533011005c1890e5ba17018c692ce7c900212b547262d33279fde801ad9843edc0863bf78c4
+ languageName: node
+ linkType: hard
+
+"debug@npm:4":
+ version: 4.4.3
+ resolution: "debug@npm:4.4.3"
+ dependencies:
+ ms: "npm:^2.1.3"
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6
+ languageName: node
+ linkType: hard
+
+"debug@npm:^3.2.7":
+ version: 3.2.7
+ resolution: "debug@npm:3.2.7"
+ dependencies:
+ ms: "npm:^2.1.1"
+ checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a
+ languageName: node
+ linkType: hard
+
+"debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.0":
+ version: 4.4.0
+ resolution: "debug@npm:4.4.0"
+ dependencies:
+ ms: "npm:^2.1.3"
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 10c0/db94f1a182bf886f57b4755f85b3a74c39b5114b9377b7ab375dc2cfa3454f09490cc6c30f829df3fc8042bc8b8995f6567ce5cd96f3bc3688bd24027197d9de
+ languageName: node
+ linkType: hard
+
+"deep-eql@npm:^5.0.1":
+ version: 5.0.2
+ resolution: "deep-eql@npm:5.0.2"
+ checksum: 10c0/7102cf3b7bb719c6b9c0db2e19bf0aa9318d141581befe8c7ce8ccd39af9eaa4346e5e05adef7f9bd7015da0f13a3a25dcfe306ef79dc8668aedbecb658dd247
+ languageName: node
+ linkType: hard
+
+"deep-is@npm:^0.1.3":
+ version: 0.1.4
+ resolution: "deep-is@npm:0.1.4"
+ checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c
+ languageName: node
+ linkType: hard
+
+"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "define-data-property@npm:1.1.4"
+ dependencies:
+ es-define-property: "npm:^1.0.0"
+ es-errors: "npm:^1.3.0"
+ gopd: "npm:^1.0.1"
+ checksum: 10c0/dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37
+ languageName: node
+ linkType: hard
+
+"define-properties@npm:^1.1.3, define-properties@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "define-properties@npm:1.2.1"
+ dependencies:
+ define-data-property: "npm:^1.0.1"
+ has-property-descriptors: "npm:^1.0.0"
+ object-keys: "npm:^1.1.1"
+ checksum: 10c0/88a152319ffe1396ccc6ded510a3896e77efac7a1bfbaa174a7b00414a1747377e0bb525d303794a47cf30e805c2ec84e575758512c6e44a993076d29fd4e6c3
+ languageName: node
+ linkType: hard
+
+"delaunator@npm:5":
+ version: 5.0.1
+ resolution: "delaunator@npm:5.0.1"
+ dependencies:
+ robust-predicates: "npm:^3.0.2"
+ checksum: 10c0/3d7ea4d964731c5849af33fec0a271bc6753487b331fd7d43ccb17d77834706e1c383e6ab8fda0032da955e7576d1083b9603cdaf9cbdfd6b3ebd1fb8bb675a5
+ 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.3
+ resolution: "detect-libc@npm:2.0.3"
+ checksum: 10c0/88095bda8f90220c95f162bf92cad70bd0e424913e655c20578600e35b91edc261af27531cf160a331e185c0ced93944bc7e09939143225f56312d7fd800fdb7
+ languageName: node
+ linkType: hard
+
+"doctrine@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "doctrine@npm:2.1.0"
+ dependencies:
+ esutils: "npm:^2.0.2"
+ checksum: 10c0/b6416aaff1f380bf56c3b552f31fdf7a69b45689368deca72d28636f41c16bb28ec3ebc40ace97db4c1afc0ceeb8120e8492fe0046841c94c2933b2e30a7d5ac
+ languageName: node
+ linkType: hard
+
+"doctrine@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "doctrine@npm:3.0.0"
+ dependencies:
+ esutils: "npm:^2.0.2"
+ checksum: 10c0/c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520
+ languageName: node
+ linkType: hard
+
+"dunder-proto@npm:^1.0.0, 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
+
+"electron-to-chromium@npm:^1.5.73":
+ version: 1.5.136
+ resolution: "electron-to-chromium@npm:1.5.136"
+ checksum: 10c0/6a207e397638b0428b31c87d409a73f6bd953598cb7359ee4c3c175e645c3ae0cc99fc5128eaca19e2f1052200fd016eb4bb1012a55e5824eb1dce85b0396184
+ 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
+
+"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
+
+"enhanced-resolve@npm:^5.18.1":
+ version: 5.18.1
+ resolution: "enhanced-resolve@npm:5.18.1"
+ dependencies:
+ graceful-fs: "npm:^4.2.4"
+ tapable: "npm:^2.2.0"
+ checksum: 10c0/4cffd9b125225184e2abed9fdf0ed3dbd2224c873b165d0838fd066cde32e0918626cba2f1f4bf6860762f13a7e2364fd89a82b99566be2873d813573ac71846
+ 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
+
+"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9":
+ version: 1.23.9
+ resolution: "es-abstract@npm:1.23.9"
+ dependencies:
+ array-buffer-byte-length: "npm:^1.0.2"
+ arraybuffer.prototype.slice: "npm:^1.0.4"
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.3"
+ data-view-buffer: "npm:^1.0.2"
+ data-view-byte-length: "npm:^1.0.2"
+ data-view-byte-offset: "npm:^1.0.1"
+ es-define-property: "npm:^1.0.1"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ es-set-tostringtag: "npm:^2.1.0"
+ es-to-primitive: "npm:^1.3.0"
+ function.prototype.name: "npm:^1.1.8"
+ get-intrinsic: "npm:^1.2.7"
+ get-proto: "npm:^1.0.0"
+ get-symbol-description: "npm:^1.1.0"
+ globalthis: "npm:^1.0.4"
+ gopd: "npm:^1.2.0"
+ has-property-descriptors: "npm:^1.0.2"
+ has-proto: "npm:^1.2.0"
+ has-symbols: "npm:^1.1.0"
+ hasown: "npm:^2.0.2"
+ internal-slot: "npm:^1.1.0"
+ is-array-buffer: "npm:^3.0.5"
+ is-callable: "npm:^1.2.7"
+ is-data-view: "npm:^1.0.2"
+ is-regex: "npm:^1.2.1"
+ is-shared-array-buffer: "npm:^1.0.4"
+ is-string: "npm:^1.1.1"
+ is-typed-array: "npm:^1.1.15"
+ is-weakref: "npm:^1.1.0"
+ math-intrinsics: "npm:^1.1.0"
+ object-inspect: "npm:^1.13.3"
+ object-keys: "npm:^1.1.1"
+ object.assign: "npm:^4.1.7"
+ own-keys: "npm:^1.0.1"
+ regexp.prototype.flags: "npm:^1.5.3"
+ safe-array-concat: "npm:^1.1.3"
+ safe-push-apply: "npm:^1.0.0"
+ safe-regex-test: "npm:^1.1.0"
+ set-proto: "npm:^1.0.0"
+ string.prototype.trim: "npm:^1.2.10"
+ string.prototype.trimend: "npm:^1.0.9"
+ string.prototype.trimstart: "npm:^1.0.8"
+ typed-array-buffer: "npm:^1.0.3"
+ typed-array-byte-length: "npm:^1.0.3"
+ typed-array-byte-offset: "npm:^1.0.4"
+ typed-array-length: "npm:^1.0.7"
+ unbox-primitive: "npm:^1.1.0"
+ which-typed-array: "npm:^1.1.18"
+ checksum: 10c0/1de229c9e08fe13c17fe5abaec8221545dfcd57e51f64909599a6ae896df84b8fd2f7d16c60cb00d7bf495b9298ca3581aded19939d4b7276854a4b066f8422b
+ languageName: node
+ linkType: hard
+
+"es-define-property@npm:^1.0.0, 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-iterator-helpers@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "es-iterator-helpers@npm:1.2.1"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.3"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.6"
+ es-errors: "npm:^1.3.0"
+ es-set-tostringtag: "npm:^2.0.3"
+ function-bind: "npm:^1.1.2"
+ get-intrinsic: "npm:^1.2.6"
+ globalthis: "npm:^1.0.4"
+ gopd: "npm:^1.2.0"
+ has-property-descriptors: "npm:^1.0.2"
+ has-proto: "npm:^1.2.0"
+ has-symbols: "npm:^1.1.0"
+ internal-slot: "npm:^1.1.0"
+ iterator.prototype: "npm:^1.1.4"
+ safe-array-concat: "npm:^1.1.3"
+ checksum: 10c0/97e3125ca472d82d8aceea11b790397648b52c26d8768ea1c1ee6309ef45a8755bb63225a43f3150c7591cffc17caf5752459f1e70d583b4184370a8f04ebd2f
+ languageName: node
+ linkType: hard
+
+"es-module-lexer@npm:^1.6.0":
+ version: 1.7.0
+ resolution: "es-module-lexer@npm:1.7.0"
+ checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b
+ 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
+
+"es-set-tostringtag@npm:^2.0.3, es-set-tostringtag@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "es-set-tostringtag@npm:2.1.0"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.6"
+ has-tostringtag: "npm:^1.0.2"
+ hasown: "npm:^2.0.2"
+ checksum: 10c0/ef2ca9ce49afe3931cb32e35da4dcb6d86ab02592cfc2ce3e49ced199d9d0bb5085fc7e73e06312213765f5efa47cc1df553a6a5154584b21448e9fb8355b1af
+ languageName: node
+ linkType: hard
+
+"es-shim-unscopables@npm:^1.0.2, es-shim-unscopables@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "es-shim-unscopables@npm:1.1.0"
+ dependencies:
+ hasown: "npm:^2.0.2"
+ checksum: 10c0/1b9702c8a1823fc3ef39035a4e958802cf294dd21e917397c561d0b3e195f383b978359816b1732d02b255ccf63e1e4815da0065b95db8d7c992037be3bbbcdb
+ languageName: node
+ linkType: hard
+
+"es-to-primitive@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "es-to-primitive@npm:1.3.0"
+ dependencies:
+ is-callable: "npm:^1.2.7"
+ is-date-object: "npm:^1.0.5"
+ is-symbol: "npm:^1.0.4"
+ checksum: 10c0/c7e87467abb0b438639baa8139f701a06537d2b9bc758f23e8622c3b42fd0fdb5bde0f535686119e446dd9d5e4c0f238af4e14960f4771877cf818d023f6730b
+ languageName: node
+ linkType: hard
+
+"esbuild@npm:^0.21.3":
+ version: 0.21.5
+ resolution: "esbuild@npm:0.21.5"
+ dependencies:
+ "@esbuild/aix-ppc64": "npm:0.21.5"
+ "@esbuild/android-arm": "npm:0.21.5"
+ "@esbuild/android-arm64": "npm:0.21.5"
+ "@esbuild/android-x64": "npm:0.21.5"
+ "@esbuild/darwin-arm64": "npm:0.21.5"
+ "@esbuild/darwin-x64": "npm:0.21.5"
+ "@esbuild/freebsd-arm64": "npm:0.21.5"
+ "@esbuild/freebsd-x64": "npm:0.21.5"
+ "@esbuild/linux-arm": "npm:0.21.5"
+ "@esbuild/linux-arm64": "npm:0.21.5"
+ "@esbuild/linux-ia32": "npm:0.21.5"
+ "@esbuild/linux-loong64": "npm:0.21.5"
+ "@esbuild/linux-mips64el": "npm:0.21.5"
+ "@esbuild/linux-ppc64": "npm:0.21.5"
+ "@esbuild/linux-riscv64": "npm:0.21.5"
+ "@esbuild/linux-s390x": "npm:0.21.5"
+ "@esbuild/linux-x64": "npm:0.21.5"
+ "@esbuild/netbsd-x64": "npm:0.21.5"
+ "@esbuild/openbsd-x64": "npm:0.21.5"
+ "@esbuild/sunos-x64": "npm:0.21.5"
+ "@esbuild/win32-arm64": "npm:0.21.5"
+ "@esbuild/win32-ia32": "npm:0.21.5"
+ "@esbuild/win32-x64": "npm:0.21.5"
+ 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-x64":
+ 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/fa08508adf683c3f399e8a014a6382a6b65542213431e26206c0720e536b31c09b50798747c2a105a4bbba1d9767b8d3615a74c2f7bf1ddf6d836cd11eb672de
+ languageName: node
+ linkType: hard
+
+"escalade@npm:^3.2.0":
+ version: 3.2.0
+ resolution: "escalade@npm:3.2.0"
+ checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65
+ languageName: node
+ linkType: hard
+
+"escape-string-regexp@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "escape-string-regexp@npm:4.0.0"
+ checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9
+ languageName: node
+ linkType: hard
+
+"eslint-config-prettier@npm:^10.1.2":
+ version: 10.1.2
+ resolution: "eslint-config-prettier@npm:10.1.2"
+ peerDependencies:
+ eslint: ">=7.0.0"
+ bin:
+ eslint-config-prettier: bin/cli.js
+ checksum: 10c0/c22c8e29193cc8fd70becf1c2dd072513f2b3004a175c2a49404c79d1745ba4dc0edc2afd00d16b0e26d24f95813a0469e7445a25104aec218f6d84cdb1697e9
+ languageName: node
+ linkType: hard
+
+"eslint-import-resolver-node@npm:^0.3.9":
+ version: 0.3.9
+ resolution: "eslint-import-resolver-node@npm:0.3.9"
+ dependencies:
+ debug: "npm:^3.2.7"
+ is-core-module: "npm:^2.13.0"
+ resolve: "npm:^1.22.4"
+ checksum: 10c0/0ea8a24a72328a51fd95aa8f660dcca74c1429806737cf10261ab90cfcaaf62fd1eff664b76a44270868e0a932711a81b250053942595bcd00a93b1c1575dd61
+ languageName: node
+ linkType: hard
+
+"eslint-module-utils@npm:^2.12.0":
+ version: 2.12.0
+ resolution: "eslint-module-utils@npm:2.12.0"
+ dependencies:
+ debug: "npm:^3.2.7"
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ checksum: 10c0/4d8b46dcd525d71276f9be9ffac1d2be61c9d54cc53c992e6333cf957840dee09381842b1acbbb15fc6b255ebab99cd481c5007ab438e5455a14abe1a0468558
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-import@npm:^2.31.0":
+ version: 2.31.0
+ resolution: "eslint-plugin-import@npm:2.31.0"
+ dependencies:
+ "@rtsao/scc": "npm:^1.1.0"
+ array-includes: "npm:^3.1.8"
+ array.prototype.findlastindex: "npm:^1.2.5"
+ array.prototype.flat: "npm:^1.3.2"
+ array.prototype.flatmap: "npm:^1.3.2"
+ debug: "npm:^3.2.7"
+ doctrine: "npm:^2.1.0"
+ eslint-import-resolver-node: "npm:^0.3.9"
+ eslint-module-utils: "npm:^2.12.0"
+ hasown: "npm:^2.0.2"
+ is-core-module: "npm:^2.15.1"
+ is-glob: "npm:^4.0.3"
+ minimatch: "npm:^3.1.2"
+ object.fromentries: "npm:^2.0.8"
+ object.groupby: "npm:^1.0.3"
+ object.values: "npm:^1.2.0"
+ semver: "npm:^6.3.1"
+ string.prototype.trimend: "npm:^1.0.8"
+ tsconfig-paths: "npm:^3.15.0"
+ peerDependencies:
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
+ checksum: 10c0/e21d116ddd1900e091ad120b3eb68c5dd5437fe2c930f1211781cd38b246f090a6b74d5f3800b8255a0ed29782591521ad44eb21c5534960a8f1fb4040fd913a
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react-hooks@npm:^5.2.0":
+ version: 5.2.0
+ resolution: "eslint-plugin-react-hooks@npm:5.2.0"
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
+ checksum: 10c0/1c8d50fa5984c6dea32470651807d2922cc3934cf3425e78f84a24c2dfd972e7f019bee84aefb27e0cf2c13fea0ac1d4473267727408feeb1c56333ca1489385
+ languageName: node
+ linkType: hard
+
+"eslint-plugin-react@npm:^7.37.5":
+ version: 7.37.5
+ resolution: "eslint-plugin-react@npm:7.37.5"
+ dependencies:
+ array-includes: "npm:^3.1.8"
+ array.prototype.findlast: "npm:^1.2.5"
+ array.prototype.flatmap: "npm:^1.3.3"
+ array.prototype.tosorted: "npm:^1.1.4"
+ doctrine: "npm:^2.1.0"
+ es-iterator-helpers: "npm:^1.2.1"
+ estraverse: "npm:^5.3.0"
+ hasown: "npm:^2.0.2"
+ jsx-ast-utils: "npm:^2.4.1 || ^3.0.0"
+ minimatch: "npm:^3.1.2"
+ object.entries: "npm:^1.1.9"
+ object.fromentries: "npm:^2.0.8"
+ object.values: "npm:^1.2.1"
+ prop-types: "npm:^15.8.1"
+ resolve: "npm:^2.0.0-next.5"
+ semver: "npm:^6.3.1"
+ string.prototype.matchall: "npm:^4.0.12"
+ string.prototype.repeat: "npm:^1.0.0"
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
+ checksum: 10c0/c850bfd556291d4d9234f5ca38db1436924a1013627c8ab1853f77cac73ec19b020e861e6c7b783436a48b6ffcdfba4547598235a37ad4611b6739f65fd8ad57
+ languageName: node
+ linkType: hard
+
+"eslint-scope@npm:^7.2.2":
+ version: 7.2.2
+ resolution: "eslint-scope@npm:7.2.2"
+ dependencies:
+ esrecurse: "npm:^4.3.0"
+ estraverse: "npm:^5.2.0"
+ checksum: 10c0/613c267aea34b5a6d6c00514e8545ef1f1433108097e857225fed40d397dd6b1809dffd11c2fde23b37ca53d7bf935fe04d2a18e6fc932b31837b6ad67e1c116
+ languageName: node
+ linkType: hard
+
+"eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3":
+ version: 3.4.3
+ resolution: "eslint-visitor-keys@npm:3.4.3"
+ checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820
+ languageName: node
+ linkType: hard
+
+"eslint-visitor-keys@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "eslint-visitor-keys@npm:4.2.0"
+ checksum: 10c0/2ed81c663b147ca6f578312919483eb040295bbab759e5a371953456c636c5b49a559883e2677112453728d66293c0a4c90ab11cab3428cf02a0236d2e738269
+ languageName: node
+ linkType: hard
+
+"eslint-visitor-keys@npm:^4.2.1":
+ version: 4.2.1
+ resolution: "eslint-visitor-keys@npm:4.2.1"
+ checksum: 10c0/fcd43999199d6740db26c58dbe0c2594623e31ca307e616ac05153c9272f12f1364f5a0b1917a8e962268fdecc6f3622c1c2908b4fcc2e047a106fe6de69dc43
+ languageName: node
+ linkType: hard
+
+"eslint@npm:^8.57.1":
+ version: 8.57.1
+ resolution: "eslint@npm:8.57.1"
+ dependencies:
+ "@eslint-community/eslint-utils": "npm:^4.2.0"
+ "@eslint-community/regexpp": "npm:^4.6.1"
+ "@eslint/eslintrc": "npm:^2.1.4"
+ "@eslint/js": "npm:8.57.1"
+ "@humanwhocodes/config-array": "npm:^0.13.0"
+ "@humanwhocodes/module-importer": "npm:^1.0.1"
+ "@nodelib/fs.walk": "npm:^1.2.8"
+ "@ungap/structured-clone": "npm:^1.2.0"
+ ajv: "npm:^6.12.4"
+ chalk: "npm:^4.0.0"
+ cross-spawn: "npm:^7.0.2"
+ debug: "npm:^4.3.2"
+ doctrine: "npm:^3.0.0"
+ escape-string-regexp: "npm:^4.0.0"
+ eslint-scope: "npm:^7.2.2"
+ eslint-visitor-keys: "npm:^3.4.3"
+ espree: "npm:^9.6.1"
+ esquery: "npm:^1.4.2"
+ esutils: "npm:^2.0.2"
+ fast-deep-equal: "npm:^3.1.3"
+ file-entry-cache: "npm:^6.0.1"
+ find-up: "npm:^5.0.0"
+ glob-parent: "npm:^6.0.2"
+ globals: "npm:^13.19.0"
+ graphemer: "npm:^1.4.0"
+ ignore: "npm:^5.2.0"
+ imurmurhash: "npm:^0.1.4"
+ is-glob: "npm:^4.0.0"
+ is-path-inside: "npm:^3.0.3"
+ js-yaml: "npm:^4.1.0"
+ json-stable-stringify-without-jsonify: "npm:^1.0.1"
+ levn: "npm:^0.4.1"
+ lodash.merge: "npm:^4.6.2"
+ minimatch: "npm:^3.1.2"
+ natural-compare: "npm:^1.4.0"
+ optionator: "npm:^0.9.3"
+ strip-ansi: "npm:^6.0.1"
+ text-table: "npm:^0.2.0"
+ bin:
+ eslint: bin/eslint.js
+ checksum: 10c0/1fd31533086c1b72f86770a4d9d7058ee8b4643fd1cfd10c7aac1ecb8725698e88352a87805cf4b2ce890aa35947df4b4da9655fb7fdfa60dbb448a43f6ebcf1
+ languageName: node
+ linkType: hard
+
+"espree@npm:^9.6.0, espree@npm:^9.6.1":
+ version: 9.6.1
+ resolution: "espree@npm:9.6.1"
+ dependencies:
+ acorn: "npm:^8.9.0"
+ acorn-jsx: "npm:^5.3.2"
+ eslint-visitor-keys: "npm:^3.4.1"
+ checksum: 10c0/1a2e9b4699b715347f62330bcc76aee224390c28bb02b31a3752e9d07549c473f5f986720483c6469cf3cfb3c9d05df612ffc69eb1ee94b54b739e67de9bb460
+ languageName: node
+ linkType: hard
+
+"esquery@npm:^1.4.2":
+ version: 1.6.0
+ resolution: "esquery@npm:1.6.0"
+ dependencies:
+ estraverse: "npm:^5.1.0"
+ checksum: 10c0/cb9065ec605f9da7a76ca6dadb0619dfb611e37a81e318732977d90fab50a256b95fee2d925fba7c2f3f0523aa16f91587246693bc09bc34d5a59575fe6e93d2
+ languageName: node
+ linkType: hard
+
+"esrecurse@npm:^4.3.0":
+ version: 4.3.0
+ resolution: "esrecurse@npm:4.3.0"
+ dependencies:
+ estraverse: "npm:^5.2.0"
+ checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5
+ languageName: node
+ linkType: hard
+
+"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0":
+ version: 5.3.0
+ resolution: "estraverse@npm:5.3.0"
+ checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107
+ languageName: node
+ linkType: hard
+
+"estree-walker@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "estree-walker@npm:3.0.3"
+ dependencies:
+ "@types/estree": "npm:^1.0.0"
+ checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d
+ languageName: node
+ linkType: hard
+
+"esutils@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "esutils@npm:2.0.3"
+ checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7
+ languageName: node
+ linkType: hard
+
+"expect-type@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "expect-type@npm:1.2.1"
+ checksum: 10c0/b775c9adab3c190dd0d398c722531726cdd6022849b4adba19dceab58dda7e000a7c6c872408cd73d665baa20d381eca36af4f7b393a4ba60dd10232d1fb8898
+ 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
+
+"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
+ version: 3.1.3
+ resolution: "fast-deep-equal@npm:3.1.3"
+ checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0
+ languageName: node
+ linkType: hard
+
+"fast-glob@npm:^3.2.11, fast-glob@npm:^3.3.2":
+ version: 3.3.3
+ resolution: "fast-glob@npm:3.3.3"
+ dependencies:
+ "@nodelib/fs.stat": "npm:^2.0.2"
+ "@nodelib/fs.walk": "npm:^1.2.3"
+ glob-parent: "npm:^5.1.2"
+ merge2: "npm:^1.3.0"
+ micromatch: "npm:^4.0.8"
+ checksum: 10c0/f6aaa141d0d3384cf73cbcdfc52f475ed293f6d5b65bfc5def368b09163a9f7e5ec2b3014d80f733c405f58e470ee0cc451c2937685045cddcdeaa24199c43fe
+ 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
+
+"fast-levenshtein@npm:^2.0.6":
+ version: 2.0.6
+ resolution: "fast-levenshtein@npm:2.0.6"
+ checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4
+ languageName: node
+ linkType: hard
+
+"fastq@npm:^1.6.0":
+ version: 1.19.1
+ resolution: "fastq@npm:1.19.1"
+ dependencies:
+ reusify: "npm:^1.0.4"
+ checksum: 10c0/ebc6e50ac7048daaeb8e64522a1ea7a26e92b3cee5cd1c7f2316cdca81ba543aa40a136b53891446ea5c3a67ec215fbaca87ad405f102dd97012f62916905630
+ languageName: node
+ linkType: hard
+
+"fdir@npm:^6.4.4":
+ version: 6.4.4
+ resolution: "fdir@npm:6.4.4"
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+ checksum: 10c0/6ccc33be16945ee7bc841e1b4178c0b4cf18d3804894cb482aa514651c962a162f96da7ffc6ebfaf0df311689fb70091b04dd6caffe28d56b9ebdc0e7ccadfdd
+ languageName: node
+ linkType: hard
+
+"fdir@npm:^6.5.0":
+ version: 6.5.0
+ resolution: "fdir@npm:6.5.0"
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+ checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f
+ languageName: node
+ linkType: hard
+
+"file-entry-cache@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "file-entry-cache@npm:6.0.1"
+ dependencies:
+ flat-cache: "npm:^3.0.4"
+ checksum: 10c0/58473e8a82794d01b38e5e435f6feaf648e3f36fdb3a56e98f417f4efae71ad1c0d4ebd8a9a7c50c3ad085820a93fc7494ad721e0e4ebc1da3573f4e1c3c7cdd
+ languageName: node
+ linkType: hard
+
+"fill-range@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "fill-range@npm:7.1.1"
+ dependencies:
+ to-regex-range: "npm:^5.0.1"
+ checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018
+ languageName: node
+ linkType: hard
+
+"find-up@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "find-up@npm:5.0.0"
+ dependencies:
+ locate-path: "npm:^6.0.0"
+ path-exists: "npm:^4.0.0"
+ checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a
+ languageName: node
+ linkType: hard
+
+"flat-cache@npm:^3.0.4":
+ version: 3.2.0
+ resolution: "flat-cache@npm:3.2.0"
+ dependencies:
+ flatted: "npm:^3.2.9"
+ keyv: "npm:^4.5.3"
+ rimraf: "npm:^3.0.2"
+ checksum: 10c0/b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75
+ languageName: node
+ linkType: hard
+
+"flatted@npm:^3.2.9":
+ version: 3.3.3
+ resolution: "flatted@npm:3.3.3"
+ checksum: 10c0/e957a1c6b0254aa15b8cce8533e24165abd98fadc98575db082b786b5da1b7d72062b81bfdcd1da2f4d46b6ed93bec2434e62333e9b4261d79ef2e75a10dd538
+ languageName: node
+ linkType: hard
+
+"for-each@npm:^0.3.3, for-each@npm:^0.3.5":
+ version: 0.3.5
+ resolution: "for-each@npm:0.3.5"
+ dependencies:
+ is-callable: "npm:^1.2.7"
+ checksum: 10c0/0e0b50f6a843a282637d43674d1fb278dda1dd85f4f99b640024cfb10b85058aac0cc781bf689d5fe50b4b7f638e91e548560723a4e76e04fe96ae35ef039cee
+ 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
+
+"fs-extra@npm:^11.1.0":
+ version: 11.3.0
+ resolution: "fs-extra@npm:11.3.0"
+ dependencies:
+ graceful-fs: "npm:^4.2.0"
+ jsonfile: "npm:^6.0.1"
+ universalify: "npm:^2.0.0"
+ checksum: 10c0/5f95e996186ff45463059feb115a22fb048bdaf7e487ecee8a8646c78ed8fdca63630e3077d4c16ce677051f5e60d3355a06f3cd61f3ca43f48cc58822a44d0a
+ 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
+
+"fs.realpath@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "fs.realpath@npm:1.0.0"
+ checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948
+ languageName: node
+ linkType: hard
+
+"fsevents@npm:~2.3.2, fsevents@npm:~2.3.3":
+ 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, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin":
+ version: 2.3.3
+ resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::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
+
+"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.8":
+ version: 1.1.8
+ resolution: "function.prototype.name@npm:1.1.8"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.3"
+ define-properties: "npm:^1.2.1"
+ functions-have-names: "npm:^1.2.3"
+ hasown: "npm:^2.0.2"
+ is-callable: "npm:^1.2.7"
+ checksum: 10c0/e920a2ab52663005f3cbe7ee3373e3c71c1fb5558b0b0548648cdf3e51961085032458e26c71ff1a8c8c20e7ee7caeb03d43a5d1fa8610c459333323a2e71253
+ languageName: node
+ linkType: hard
+
+"functions-have-names@npm:^1.2.3":
+ version: 1.2.3
+ resolution: "functions-have-names@npm:1.2.3"
+ checksum: 10c0/33e77fd29bddc2d9bb78ab3eb854c165909201f88c75faa8272e35899e2d35a8a642a15e7420ef945e1f64a9670d6aa3ec744106b2aa42be68ca5114025954ca
+ languageName: node
+ linkType: hard
+
+"gensync@npm:^1.0.0-beta.2":
+ version: 1.0.0-beta.2
+ resolution: "gensync@npm:1.0.0-beta.2"
+ checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8
+ languageName: node
+ linkType: hard
+
+"get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7, 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.0, 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
+
+"get-symbol-description@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "get-symbol-description@npm:1.1.0"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ es-errors: "npm:^1.3.0"
+ get-intrinsic: "npm:^1.2.6"
+ checksum: 10c0/d6a7d6afca375779a4b307738c9e80dbf7afc0bdbe5948768d54ab9653c865523d8920e670991a925936eb524b7cb6a6361d199a760b21d0ca7620194455aa4b
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2":
+ version: 5.1.2
+ resolution: "glob-parent@npm:5.1.2"
+ dependencies:
+ is-glob: "npm:^4.0.1"
+ checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "glob-parent@npm:6.0.2"
+ dependencies:
+ is-glob: "npm:^4.0.3"
+ checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8
+ 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
+
+"glob@npm:^7.1.3":
+ version: 7.2.3
+ resolution: "glob@npm:7.2.3"
+ dependencies:
+ fs.realpath: "npm:^1.0.0"
+ inflight: "npm:^1.0.4"
+ inherits: "npm:2"
+ minimatch: "npm:^3.1.1"
+ once: "npm:^1.3.0"
+ path-is-absolute: "npm:^1.0.0"
+ checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe
+ languageName: node
+ linkType: hard
+
+"globals@npm:^11.1.0":
+ version: 11.12.0
+ resolution: "globals@npm:11.12.0"
+ checksum: 10c0/758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1
+ languageName: node
+ linkType: hard
+
+"globals@npm:^13.19.0":
+ version: 13.24.0
+ resolution: "globals@npm:13.24.0"
+ dependencies:
+ type-fest: "npm:^0.20.2"
+ checksum: 10c0/d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd
+ languageName: node
+ linkType: hard
+
+"globalthis@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "globalthis@npm:1.0.4"
+ dependencies:
+ define-properties: "npm:^1.2.1"
+ gopd: "npm:^1.0.1"
+ checksum: 10c0/9d156f313af79d80b1566b93e19285f481c591ad6d0d319b4be5e03750d004dde40a39a0f26f7e635f9007a3600802f53ecd85a759b86f109e80a5f705e01846
+ languageName: node
+ linkType: hard
+
+"gopd@npm:^1.0.1, 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.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6":
+ version: 4.2.11
+ resolution: "graceful-fs@npm:4.2.11"
+ checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2
+ languageName: node
+ linkType: hard
+
+"graphemer@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "graphemer@npm:1.4.0"
+ checksum: 10c0/e951259d8cd2e0d196c72ec711add7115d42eb9a8146c8eeda5b8d3ac91e5dd816b9cd68920726d9fd4490368e7ed86e9c423f40db87e2d8dfafa00fa17c3a31
+ languageName: node
+ linkType: hard
+
+"has-bigints@npm:^1.0.2":
+ version: 1.1.0
+ resolution: "has-bigints@npm:1.1.0"
+ checksum: 10c0/2de0cdc4a1ccf7a1e75ffede1876994525ac03cc6f5ae7392d3415dd475cd9eee5bceec63669ab61aa997ff6cceebb50ef75561c7002bed8988de2b9d1b40788
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "has-flag@npm:4.0.0"
+ checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1
+ languageName: node
+ linkType: hard
+
+"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-property-descriptors@npm:1.0.2"
+ dependencies:
+ es-define-property: "npm:^1.0.0"
+ checksum: 10c0/253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236
+ languageName: node
+ linkType: hard
+
+"has-proto@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "has-proto@npm:1.2.0"
+ dependencies:
+ dunder-proto: "npm:^1.0.0"
+ checksum: 10c0/46538dddab297ec2f43923c3d35237df45d8c55a6fc1067031e04c13ed8a9a8f94954460632fd4da84c31a1721eefee16d901cbb1ae9602bab93bb6e08f93b95
+ languageName: node
+ linkType: hard
+
+"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "has-symbols@npm:1.1.0"
+ checksum: 10c0/dde0a734b17ae51e84b10986e651c664379018d10b91b6b0e9b293eddb32f0f069688c841fb40f19e9611546130153e0a2a48fd7f512891fb000ddfa36f5a20e
+ languageName: node
+ linkType: hard
+
+"has-tostringtag@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "has-tostringtag@npm:1.0.2"
+ dependencies:
+ has-symbols: "npm:^1.0.3"
+ checksum: 10c0/a8b166462192bafe3d9b6e420a1d581d93dd867adb61be223a17a8d6dad147aa77a8be32c961bb2f27b3ef893cae8d36f564ab651f5e9b7938ae86f74027c48c
+ 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
+
+"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-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, 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
+
+"ignore@npm:^5.2.0, ignore@npm:^5.3.1":
+ version: 5.3.2
+ resolution: "ignore@npm:5.3.2"
+ checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337
+ languageName: node
+ linkType: hard
+
+"import-fresh@npm:^3.2.1":
+ version: 3.3.1
+ resolution: "import-fresh@npm:3.3.1"
+ dependencies:
+ parent-module: "npm:^1.0.0"
+ resolve-from: "npm:^4.0.0"
+ checksum: 10c0/bf8cc494872fef783249709385ae883b447e3eb09db0ebd15dcead7d9afe7224dad7bd7591c6b73b0b19b3c0f9640eb8ee884f01cfaf2887ab995b0b36a0cbec
+ 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
+
+"inflight@npm:^1.0.4":
+ version: 1.0.6
+ resolution: "inflight@npm:1.0.6"
+ dependencies:
+ once: "npm:^1.3.0"
+ wrappy: "npm:1"
+ checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2
+ languageName: node
+ linkType: hard
+
+"inherits@npm:2":
+ version: 2.0.4
+ resolution: "inherits@npm:2.0.4"
+ checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2
+ languageName: node
+ linkType: hard
+
+"internal-slot@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "internal-slot@npm:1.1.0"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ hasown: "npm:^2.0.2"
+ side-channel: "npm:^1.1.0"
+ checksum: 10c0/03966f5e259b009a9bf1a78d60da920df198af4318ec004f57b8aef1dd3fe377fbc8cce63a96e8c810010302654de89f9e19de1cd8ad0061d15be28a695465c7
+ languageName: node
+ linkType: hard
+
+"internmap@npm:1 - 2":
+ version: 2.0.3
+ resolution: "internmap@npm:2.0.3"
+ checksum: 10c0/8cedd57f07bbc22501516fbfc70447f0c6812871d471096fad9ea603516eacc2137b633633daf432c029712df0baefd793686388ddf5737e3ea15074b877f7ed
+ languageName: node
+ linkType: hard
+
+"ip-address@npm:^10.0.1":
+ version: 10.0.1
+ resolution: "ip-address@npm:10.0.1"
+ checksum: 10c0/1634d79dae18394004775cb6d699dc46b7c23df6d2083164025a2b15240c1164fccde53d0e08bd5ee4fc53913d033ab6b5e395a809ad4b956a940c446e948843
+ languageName: node
+ linkType: hard
+
+"is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5":
+ version: 3.0.5
+ resolution: "is-array-buffer@npm:3.0.5"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.3"
+ get-intrinsic: "npm:^1.2.6"
+ checksum: 10c0/c5c9f25606e86dbb12e756694afbbff64bc8b348d1bc989324c037e1068695131930199d6ad381952715dad3a9569333817f0b1a72ce5af7f883ce802e49c83d
+ languageName: node
+ linkType: hard
+
+"is-async-function@npm:^2.0.0":
+ version: 2.1.1
+ resolution: "is-async-function@npm:2.1.1"
+ dependencies:
+ async-function: "npm:^1.0.0"
+ call-bound: "npm:^1.0.3"
+ get-proto: "npm:^1.0.1"
+ has-tostringtag: "npm:^1.0.2"
+ safe-regex-test: "npm:^1.1.0"
+ checksum: 10c0/d70c236a5e82de6fc4d44368ffd0c2fee2b088b893511ce21e679da275a5ecc6015ff59a7d7e1bdd7ca39f71a8dbdd253cf8cce5c6b3c91cdd5b42b5ce677298
+ languageName: node
+ linkType: hard
+
+"is-bigint@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "is-bigint@npm:1.1.0"
+ dependencies:
+ has-bigints: "npm:^1.0.2"
+ checksum: 10c0/f4f4b905ceb195be90a6ea7f34323bf1c18e3793f18922e3e9a73c684c29eeeeff5175605c3a3a74cc38185fe27758f07efba3dbae812e5c5afbc0d2316b40e4
+ languageName: node
+ linkType: hard
+
+"is-binary-path@npm:~2.1.0":
+ version: 2.1.0
+ resolution: "is-binary-path@npm:2.1.0"
+ dependencies:
+ binary-extensions: "npm:^2.0.0"
+ checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38
+ languageName: node
+ linkType: hard
+
+"is-boolean-object@npm:^1.2.1":
+ version: 1.2.2
+ resolution: "is-boolean-object@npm:1.2.2"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ has-tostringtag: "npm:^1.0.2"
+ checksum: 10c0/36ff6baf6bd18b3130186990026f5a95c709345c39cd368468e6c1b6ab52201e9fd26d8e1f4c066357b4938b0f0401e1a5000e08257787c1a02f3a719457001e
+ languageName: node
+ linkType: hard
+
+"is-callable@npm:^1.2.7":
+ version: 1.2.7
+ resolution: "is-callable@npm:1.2.7"
+ checksum: 10c0/ceebaeb9d92e8adee604076971dd6000d38d6afc40bb843ea8e45c5579b57671c3f3b50d7f04869618242c6cee08d1b67806a8cb8edaaaf7c0748b3720d6066f
+ languageName: node
+ linkType: hard
+
+"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.16.0":
+ version: 2.16.1
+ resolution: "is-core-module@npm:2.16.1"
+ dependencies:
+ hasown: "npm:^2.0.2"
+ checksum: 10c0/898443c14780a577e807618aaae2b6f745c8538eca5c7bc11388a3f2dc6de82b9902bcc7eb74f07be672b11bbe82dd6a6edded44a00cb3d8f933d0459905eedd
+ languageName: node
+ linkType: hard
+
+"is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "is-data-view@npm:1.0.2"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ get-intrinsic: "npm:^1.2.6"
+ is-typed-array: "npm:^1.1.13"
+ checksum: 10c0/ef3548a99d7e7f1370ce21006baca6d40c73e9f15c941f89f0049c79714c873d03b02dae1c64b3f861f55163ecc16da06506c5b8a1d4f16650b3d9351c380153
+ languageName: node
+ linkType: hard
+
+"is-date-object@npm:^1.0.5, is-date-object@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "is-date-object@npm:1.1.0"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ has-tostringtag: "npm:^1.0.2"
+ checksum: 10c0/1a4d199c8e9e9cac5128d32e6626fa7805175af9df015620ac0d5d45854ccf348ba494679d872d37301032e35a54fc7978fba1687e8721b2139aea7870cafa2f
+ languageName: node
+ linkType: hard
+
+"is-extglob@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "is-extglob@npm:2.1.1"
+ checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912
+ languageName: node
+ linkType: hard
+
+"is-finalizationregistry@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "is-finalizationregistry@npm:1.1.1"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ checksum: 10c0/818dff679b64f19e228a8205a1e2d09989a98e98def3a817f889208cfcbf918d321b251aadf2c05918194803ebd2eb01b14fc9d0b2bea53d984f4137bfca5e97
+ 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-generator-function@npm:^1.0.10":
+ version: 1.1.0
+ resolution: "is-generator-function@npm:1.1.0"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ get-proto: "npm:^1.0.0"
+ has-tostringtag: "npm:^1.0.2"
+ safe-regex-test: "npm:^1.1.0"
+ checksum: 10c0/fdfa96c8087bf36fc4cd514b474ba2ff404219a4dd4cfa6cf5426404a1eed259bdcdb98f082a71029a48d01f27733e3436ecc6690129a7ec09cb0434bee03a2a
+ languageName: node
+ linkType: hard
+
+"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
+ version: 4.0.3
+ resolution: "is-glob@npm:4.0.3"
+ dependencies:
+ is-extglob: "npm:^2.1.1"
+ checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a
+ languageName: node
+ linkType: hard
+
+"is-map@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-map@npm:2.0.3"
+ checksum: 10c0/2c4d431b74e00fdda7162cd8e4b763d6f6f217edf97d4f8538b94b8702b150610e2c64961340015fe8df5b1fcee33ccd2e9b62619c4a8a3a155f8de6d6d355fc
+ languageName: node
+ linkType: hard
+
+"is-number-object@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "is-number-object@npm:1.1.1"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ has-tostringtag: "npm:^1.0.2"
+ checksum: 10c0/97b451b41f25135ff021d85c436ff0100d84a039bb87ffd799cbcdbea81ef30c464ced38258cdd34f080be08fc3b076ca1f472086286d2aa43521d6ec6a79f53
+ languageName: node
+ linkType: hard
+
+"is-number@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "is-number@npm:7.0.0"
+ checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811
+ languageName: node
+ linkType: hard
+
+"is-path-inside@npm:^3.0.3":
+ version: 3.0.3
+ resolution: "is-path-inside@npm:3.0.3"
+ checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05
+ languageName: node
+ linkType: hard
+
+"is-regex@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "is-regex@npm:1.2.1"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ gopd: "npm:^1.2.0"
+ has-tostringtag: "npm:^1.0.2"
+ hasown: "npm:^2.0.2"
+ checksum: 10c0/1d3715d2b7889932349241680032e85d0b492cfcb045acb75ffc2c3085e8d561184f1f7e84b6f8321935b4aea39bc9c6ba74ed595b57ce4881a51dfdbc214e04
+ languageName: node
+ linkType: hard
+
+"is-set@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "is-set@npm:2.0.3"
+ checksum: 10c0/f73732e13f099b2dc879c2a12341cfc22ccaca8dd504e6edae26484bd5707a35d503fba5b4daad530a9b088ced1ae6c9d8200fd92e09b428fe14ea79ce8080b7
+ languageName: node
+ linkType: hard
+
+"is-shared-array-buffer@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "is-shared-array-buffer@npm:1.0.4"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ checksum: 10c0/65158c2feb41ff1edd6bbd6fd8403a69861cf273ff36077982b5d4d68e1d59278c71691216a4a64632bd76d4792d4d1d2553901b6666d84ade13bba5ea7bc7db
+ languageName: node
+ linkType: hard
+
+"is-string@npm:^1.0.7, is-string@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "is-string@npm:1.1.1"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ has-tostringtag: "npm:^1.0.2"
+ checksum: 10c0/2f518b4e47886bb81567faba6ffd0d8a8333cf84336e2e78bf160693972e32ad00fe84b0926491cc598dee576fdc55642c92e62d0cbe96bf36f643b6f956f94d
+ languageName: node
+ linkType: hard
+
+"is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "is-symbol@npm:1.1.1"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ has-symbols: "npm:^1.1.0"
+ safe-regex-test: "npm:^1.1.0"
+ checksum: 10c0/f08f3e255c12442e833f75a9e2b84b2d4882fdfd920513cf2a4a2324f0a5b076c8fd913778e3ea5d258d5183e9d92c0cd20e04b03ab3df05316b049b2670af1e
+ languageName: node
+ linkType: hard
+
+"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15":
+ version: 1.1.15
+ resolution: "is-typed-array@npm:1.1.15"
+ dependencies:
+ which-typed-array: "npm:^1.1.16"
+ checksum: 10c0/415511da3669e36e002820584e264997ffe277ff136643a3126cc949197e6ca3334d0f12d084e83b1994af2e9c8141275c741cf2b7da5a2ff62dd0cac26f76c4
+ languageName: node
+ linkType: hard
+
+"is-weakmap@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "is-weakmap@npm:2.0.2"
+ checksum: 10c0/443c35bb86d5e6cc5929cd9c75a4024bb0fff9586ed50b092f94e700b89c43a33b186b76dbc6d54f3d3d09ece689ab38dcdc1af6a482cbe79c0f2da0a17f1299
+ languageName: node
+ linkType: hard
+
+"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "is-weakref@npm:1.1.1"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ checksum: 10c0/8e0a9c07b0c780949a100e2cab2b5560a48ecd4c61726923c1a9b77b6ab0aa0046c9e7fb2206042296817045376dee2c8ab1dabe08c7c3dfbf195b01275a085b
+ languageName: node
+ linkType: hard
+
+"is-weakset@npm:^2.0.3":
+ version: 2.0.4
+ resolution: "is-weakset@npm:2.0.4"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ get-intrinsic: "npm:^1.2.6"
+ checksum: 10c0/6491eba08acb8dc9532da23cb226b7d0192ede0b88f16199e592e4769db0a077119c1f5d2283d1e0d16d739115f70046e887e477eb0e66cd90e1bb29f28ba647
+ languageName: node
+ linkType: hard
+
+"isarray@npm:^2.0.5":
+ version: 2.0.5
+ resolution: "isarray@npm:2.0.5"
+ checksum: 10c0/4199f14a7a13da2177c66c31080008b7124331956f47bca57dd0b6ea9f11687aa25e565a2c7a2b519bc86988d10398e3049a1f5df13c9f6b7664154690ae79fd
+ 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
+
+"iterator.prototype@npm:^1.1.4":
+ version: 1.1.5
+ resolution: "iterator.prototype@npm:1.1.5"
+ dependencies:
+ define-data-property: "npm:^1.1.4"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.6"
+ get-proto: "npm:^1.0.0"
+ has-symbols: "npm:^1.1.0"
+ set-function-name: "npm:^2.0.2"
+ checksum: 10c0/f7a262808e1b41049ab55f1e9c29af7ec1025a000d243b83edf34ce2416eedd56079b117fa59376bb4a724110690f13aa8427f2ee29a09eec63a7e72367626d0
+ 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
+
+"jiti@npm:^2.4.2":
+ version: 2.4.2
+ resolution: "jiti@npm:2.4.2"
+ bin:
+ jiti: lib/jiti-cli.mjs
+ checksum: 10c0/4ceac133a08c8faff7eac84aabb917e85e8257f5ad659e843004ce76e981c457c390a220881748ac67ba1b940b9b729b30fb85cbaf6e7989f04b6002c94da331
+ languageName: node
+ linkType: hard
+
+"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "js-tokens@npm:4.0.0"
+ checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed
+ languageName: node
+ linkType: hard
+
+"js-yaml@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "js-yaml@npm:4.1.0"
+ dependencies:
+ argparse: "npm:^2.0.1"
+ bin:
+ js-yaml: bin/js-yaml.js
+ checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f
+ languageName: node
+ linkType: hard
+
+"jsesc@npm:^3.0.2":
+ version: 3.1.0
+ resolution: "jsesc@npm:3.1.0"
+ bin:
+ jsesc: bin/jsesc
+ checksum: 10c0/531779df5ec94f47e462da26b4cbf05eb88a83d9f08aac2ba04206508fc598527a153d08bd462bae82fc78b3eaa1a908e1a4a79f886e9238641c4cdefaf118b1
+ languageName: node
+ linkType: hard
+
+"json-buffer@npm:3.0.1":
+ version: 3.0.1
+ resolution: "json-buffer@npm:3.0.1"
+ checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7
+ 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-stable-stringify-without-jsonify@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "json-stable-stringify-without-jsonify@npm:1.0.1"
+ checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5
+ languageName: node
+ linkType: hard
+
+"json5@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "json5@npm:1.0.2"
+ dependencies:
+ minimist: "npm:^1.2.0"
+ bin:
+ json5: lib/cli.js
+ checksum: 10c0/9ee316bf21f000b00752e6c2a3b79ecf5324515a5c60ee88983a1910a45426b643a4f3461657586e8aeca87aaf96f0a519b0516d2ae527a6c3e7eed80f68717f
+ languageName: node
+ linkType: hard
+
+"json5@npm:^2.2.3":
+ version: 2.2.3
+ resolution: "json5@npm:2.2.3"
+ bin:
+ json5: lib/cli.js
+ checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c
+ languageName: node
+ linkType: hard
+
+"jsonfile@npm:^6.0.1":
+ version: 6.1.0
+ resolution: "jsonfile@npm:6.1.0"
+ dependencies:
+ graceful-fs: "npm:^4.1.6"
+ universalify: "npm:^2.0.0"
+ dependenciesMeta:
+ graceful-fs:
+ optional: true
+ checksum: 10c0/4f95b5e8a5622b1e9e8f33c96b7ef3158122f595998114d1e7f03985649ea99cb3cd99ce1ed1831ae94c8c8543ab45ebd044207612f31a56fd08462140e46865
+ languageName: node
+ linkType: hard
+
+"jsx-ast-utils@npm:^2.4.1 || ^3.0.0":
+ version: 3.3.5
+ resolution: "jsx-ast-utils@npm:3.3.5"
+ dependencies:
+ array-includes: "npm:^3.1.6"
+ array.prototype.flat: "npm:^1.3.1"
+ object.assign: "npm:^4.1.4"
+ object.values: "npm:^1.1.6"
+ checksum: 10c0/a32679e9cb55469cb6d8bbc863f7d631b2c98b7fc7bf172629261751a6e7bc8da6ae374ddb74d5fbd8b06cf0eb4572287b259813d92b36e384024ed35e4c13e1
+ languageName: node
+ linkType: hard
+
+"keyv@npm:^4.5.3":
+ version: 4.5.4
+ resolution: "keyv@npm:4.5.4"
+ dependencies:
+ json-buffer: "npm:3.0.1"
+ checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e
+ languageName: node
+ linkType: hard
+
+"levn@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "levn@npm:0.4.1"
+ dependencies:
+ prelude-ls: "npm:^1.2.1"
+ type-check: "npm:~0.4.0"
+ checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e
+ languageName: node
+ linkType: hard
+
+"lightningcss-darwin-arm64@npm:1.29.2":
+ version: 1.29.2
+ resolution: "lightningcss-darwin-arm64@npm:1.29.2"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"lightningcss-darwin-x64@npm:1.29.2":
+ version: 1.29.2
+ resolution: "lightningcss-darwin-x64@npm:1.29.2"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"lightningcss-freebsd-x64@npm:1.29.2":
+ version: 1.29.2
+ resolution: "lightningcss-freebsd-x64@npm:1.29.2"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-arm-gnueabihf@npm:1.29.2":
+ version: 1.29.2
+ resolution: "lightningcss-linux-arm-gnueabihf@npm:1.29.2"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-arm64-gnu@npm:1.29.2":
+ version: 1.29.2
+ resolution: "lightningcss-linux-arm64-gnu@npm:1.29.2"
+ conditions: os=linux & cpu=arm64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-arm64-musl@npm:1.29.2":
+ version: 1.29.2
+ resolution: "lightningcss-linux-arm64-musl@npm:1.29.2"
+ conditions: os=linux & cpu=arm64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-x64-gnu@npm:1.29.2":
+ version: 1.29.2
+ resolution: "lightningcss-linux-x64-gnu@npm:1.29.2"
+ conditions: os=linux & cpu=x64 & libc=glibc
+ languageName: node
+ linkType: hard
+
+"lightningcss-linux-x64-musl@npm:1.29.2":
+ version: 1.29.2
+ resolution: "lightningcss-linux-x64-musl@npm:1.29.2"
+ conditions: os=linux & cpu=x64 & libc=musl
+ languageName: node
+ linkType: hard
+
+"lightningcss-win32-arm64-msvc@npm:1.29.2":
+ version: 1.29.2
+ resolution: "lightningcss-win32-arm64-msvc@npm:1.29.2"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"lightningcss-win32-x64-msvc@npm:1.29.2":
+ version: 1.29.2
+ resolution: "lightningcss-win32-x64-msvc@npm:1.29.2"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
+"lightningcss@npm:1.29.2":
+ version: 1.29.2
+ resolution: "lightningcss@npm:1.29.2"
+ dependencies:
+ detect-libc: "npm:^2.0.3"
+ lightningcss-darwin-arm64: "npm:1.29.2"
+ lightningcss-darwin-x64: "npm:1.29.2"
+ lightningcss-freebsd-x64: "npm:1.29.2"
+ lightningcss-linux-arm-gnueabihf: "npm:1.29.2"
+ lightningcss-linux-arm64-gnu: "npm:1.29.2"
+ lightningcss-linux-arm64-musl: "npm:1.29.2"
+ lightningcss-linux-x64-gnu: "npm:1.29.2"
+ lightningcss-linux-x64-musl: "npm:1.29.2"
+ lightningcss-win32-arm64-msvc: "npm:1.29.2"
+ lightningcss-win32-x64-msvc: "npm:1.29.2"
+ dependenciesMeta:
+ lightningcss-darwin-arm64:
+ optional: true
+ lightningcss-darwin-x64:
+ optional: true
+ lightningcss-freebsd-x64:
+ optional: true
+ lightningcss-linux-arm-gnueabihf:
+ optional: true
+ lightningcss-linux-arm64-gnu:
+ optional: true
+ lightningcss-linux-arm64-musl:
+ optional: true
+ lightningcss-linux-x64-gnu:
+ optional: true
+ lightningcss-linux-x64-musl:
+ optional: true
+ lightningcss-win32-arm64-msvc:
+ optional: true
+ lightningcss-win32-x64-msvc:
+ optional: true
+ checksum: 10c0/e06bb99c98e9f56cfcf37b5ce0e0198cdeeac2993ef2e5b878b6b0934fff54c7528f38bf8875e7bd71e64c9b20b29c0cada222d1e0089c8f94c1159bbb5d611f
+ languageName: node
+ linkType: hard
+
+"locate-path@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "locate-path@npm:6.0.0"
+ dependencies:
+ p-locate: "npm:^5.0.0"
+ checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3
+ languageName: node
+ linkType: hard
+
+"lodash.merge@npm:^4.6.2":
+ version: 4.6.2
+ resolution: "lodash.merge@npm:4.6.2"
+ checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506
+ languageName: node
+ linkType: hard
+
+"lodash@npm:^4.17.21":
+ version: 4.17.21
+ resolution: "lodash@npm:4.17.21"
+ checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c
+ languageName: node
+ linkType: hard
+
+"loose-envify@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "loose-envify@npm:1.4.0"
+ dependencies:
+ js-tokens: "npm:^3.0.0 || ^4.0.0"
+ bin:
+ loose-envify: cli.js
+ checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e
+ languageName: node
+ linkType: hard
+
+"loupe@npm:^3.1.0, loupe@npm:^3.1.3":
+ version: 3.1.3
+ resolution: "loupe@npm:3.1.3"
+ checksum: 10c0/f5dab4144254677de83a35285be1b8aba58b3861439ce4ba65875d0d5f3445a4a496daef63100ccf02b2dbc25bf58c6db84c9cb0b96d6435331e9d0a33b48541
+ 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
+
+"lru-cache@npm:^5.1.1":
+ version: 5.1.1
+ resolution: "lru-cache@npm:5.1.1"
+ dependencies:
+ yallist: "npm:^3.0.2"
+ checksum: 10c0/89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482
+ languageName: node
+ linkType: hard
+
+"magic-string@npm:^0.30.17":
+ version: 0.30.17
+ resolution: "magic-string@npm:0.30.17"
+ dependencies:
+ "@jridgewell/sourcemap-codec": "npm:^1.5.0"
+ checksum: 10c0/16826e415d04b88378f200fe022b53e638e3838b9e496edda6c0e086d7753a44a6ed187adc72d19f3623810589bf139af1a315541cd6a26ae0771a0193eaf7b8
+ 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
+
+"merge2@npm:^1.3.0":
+ version: 1.4.1
+ resolution: "merge2@npm:1.4.1"
+ checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb
+ languageName: node
+ linkType: hard
+
+"micromatch@npm:^4.0.8":
+ version: 4.0.8
+ resolution: "micromatch@npm:4.0.8"
+ dependencies:
+ braces: "npm:^3.0.3"
+ picomatch: "npm:^2.3.1"
+ checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "minimatch@npm:3.1.2"
+ dependencies:
+ brace-expansion: "npm:^1.1.7"
+ checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311
+ 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
+
+"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
+ version: 1.2.8
+ resolution: "minimist@npm:1.2.8"
+ checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6
+ 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, minizlib@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "minizlib@npm:3.1.0"
+ dependencies:
+ minipass: "npm:^7.1.2"
+ checksum: 10c0/5aad75ab0090b8266069c9aabe582c021ae53eb33c6c691054a13a45db3b4f91a7fb1bd79151e6b4e9e9a86727b522527c0a06ec7d45206b745d54cd3097bcec
+ languageName: node
+ linkType: hard
+
+"ms@npm:^2.1.1, 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
+
+"natural-compare@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "natural-compare@npm:1.4.0"
+ checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447
+ 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.4.2
+ resolution: "node-gyp@npm:11.4.2"
+ 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/0bfd3e96770ed70f07798d881dd37b4267708966d868a0e585986baac487d9cf5831285579fd629a83dc4e434f53e6416ce301097f2ee464cb74d377e4d8bdbe
+ languageName: node
+ linkType: hard
+
+"node-releases@npm:^2.0.19":
+ version: 2.0.19
+ resolution: "node-releases@npm:2.0.19"
+ checksum: 10c0/52a0dbd25ccf545892670d1551690fe0facb6a471e15f2cfa1b20142a5b255b3aa254af5f59d6ecb69c2bec7390bc643c43aa63b13bf5e64b6075952e716b1aa
+ 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
+
+"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0":
+ version: 3.0.0
+ resolution: "normalize-path@npm:3.0.0"
+ checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046
+ languageName: node
+ linkType: hard
+
+"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-keys@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "object-keys@npm:1.1.1"
+ checksum: 10c0/b11f7ccdbc6d406d1f186cdadb9d54738e347b2692a14439ca5ac70c225fa6db46db809711b78589866d47b25fc3e8dee0b4c722ac751e11180f9380e3d8601d
+ languageName: node
+ linkType: hard
+
+"object.assign@npm:^4.1.4, object.assign@npm:^4.1.7":
+ version: 4.1.7
+ resolution: "object.assign@npm:4.1.7"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.3"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ has-symbols: "npm:^1.1.0"
+ object-keys: "npm:^1.1.1"
+ checksum: 10c0/3b2732bd860567ea2579d1567525168de925a8d852638612846bd8082b3a1602b7b89b67b09913cbb5b9bd6e95923b2ae73580baa9d99cb4e990564e8cbf5ddc
+ languageName: node
+ linkType: hard
+
+"object.entries@npm:^1.1.9":
+ version: 1.1.9
+ resolution: "object.entries@npm:1.1.9"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.4"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.1.1"
+ checksum: 10c0/d4b8c1e586650407da03370845f029aa14076caca4e4d4afadbc69cfb5b78035fd3ee7be417141abdb0258fa142e59b11923b4c44d8b1255b28f5ffcc50da7db
+ languageName: node
+ linkType: hard
+
+"object.fromentries@npm:^2.0.8":
+ version: 2.0.8
+ resolution: "object.fromentries@npm:2.0.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/cd4327e6c3369cfa805deb4cbbe919bfb7d3aeebf0bcaba291bb568ea7169f8f8cdbcabe2f00b40db0c20cd20f08e11b5f3a5a36fb7dd3fe04850c50db3bf83b
+ languageName: node
+ linkType: hard
+
+"object.groupby@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "object.groupby@npm:1.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.2"
+ checksum: 10c0/60d0455c85c736fbfeda0217d1a77525956f76f7b2495edeca9e9bbf8168a45783199e77b894d30638837c654d0cc410e0e02cbfcf445bc8de71c3da1ede6a9c
+ languageName: node
+ linkType: hard
+
+"object.values@npm:^1.1.6, object.values@npm:^1.2.0, object.values@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "object.values@npm:1.2.1"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.3"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/3c47814fdc64842ae3d5a74bc9d06bdd8d21563c04d9939bf6716a9c00596a4ebc342552f8934013d1ec991c74e3671b26710a0c51815f0b603795605ab6b2c9
+ languageName: node
+ linkType: hard
+
+"once@npm:^1.3.0":
+ version: 1.4.0
+ resolution: "once@npm:1.4.0"
+ dependencies:
+ wrappy: "npm:1"
+ checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0
+ languageName: node
+ linkType: hard
+
+"optionator@npm:^0.9.3":
+ version: 0.9.4
+ resolution: "optionator@npm:0.9.4"
+ dependencies:
+ deep-is: "npm:^0.1.3"
+ fast-levenshtein: "npm:^2.0.6"
+ levn: "npm:^0.4.1"
+ prelude-ls: "npm:^1.2.1"
+ type-check: "npm:^0.4.0"
+ word-wrap: "npm:^1.2.5"
+ checksum: 10c0/4afb687a059ee65b61df74dfe87d8d6815cd6883cb8b3d5883a910df72d0f5d029821f37025e4bccf4048873dbdb09acc6d303d27b8f76b1a80dd5a7d5334675
+ languageName: node
+ linkType: hard
+
+"own-keys@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "own-keys@npm:1.0.1"
+ dependencies:
+ get-intrinsic: "npm:^1.2.6"
+ object-keys: "npm:^1.1.1"
+ safe-push-apply: "npm:^1.0.0"
+ checksum: 10c0/6dfeb3455bff92ec3f16a982d4e3e65676345f6902d9f5ded1d8265a6318d0200ce461956d6d1c70053c7fe9f9fe65e552faac03f8140d37ef0fdd108e67013a
+ languageName: node
+ linkType: hard
+
+"p-limit@npm:^3.0.2":
+ version: 3.1.0
+ resolution: "p-limit@npm:3.1.0"
+ dependencies:
+ yocto-queue: "npm:^0.1.0"
+ checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a
+ languageName: node
+ linkType: hard
+
+"p-locate@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "p-locate@npm:5.0.0"
+ dependencies:
+ p-limit: "npm:^3.0.2"
+ checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a
+ languageName: node
+ linkType: hard
+
+"p-map@npm:^7.0.2, p-map@npm:^7.0.3":
+ 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
+
+"parent-module@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "parent-module@npm:1.0.1"
+ dependencies:
+ callsites: "npm:^3.0.0"
+ checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556
+ languageName: node
+ linkType: hard
+
+"path-exists@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-exists@npm:4.0.0"
+ checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b
+ languageName: node
+ linkType: hard
+
+"path-is-absolute@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "path-is-absolute@npm:1.0.1"
+ checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078
+ 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-parse@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "path-parse@npm:1.0.7"
+ checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1
+ 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
+
+"pathe@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "pathe@npm:2.0.3"
+ checksum: 10c0/c118dc5a8b5c4166011b2b70608762e260085180bb9e33e80a50dcdb1e78c010b1624f4280c492c92b05fc276715a4c357d1f9edc570f8f1b3d90b6839ebaca1
+ languageName: node
+ linkType: hard
+
+"pathval@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "pathval@npm:2.0.0"
+ checksum: 10c0/602e4ee347fba8a599115af2ccd8179836a63c925c23e04bd056d0674a64b39e3a081b643cc7bc0b84390517df2d800a46fcc5598d42c155fe4977095c2f77c5
+ languageName: node
+ linkType: hard
+
+"picocolors@npm:^1.0.0, picocolors@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "picocolors@npm:1.1.1"
+ checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "picomatch@npm:2.3.1"
+ checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^4.0.2":
+ version: 4.0.2
+ resolution: "picomatch@npm:4.0.2"
+ checksum: 10c0/7c51f3ad2bb42c776f49ebf964c644958158be30d0a510efd5a395e8d49cb5acfed5b82c0c5b365523ce18e6ab85013c9ebe574f60305892ec3fa8eee8304ccc
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^4.0.3":
+ version: 4.0.3
+ resolution: "picomatch@npm:4.0.3"
+ checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2
+ languageName: node
+ linkType: hard
+
+"possible-typed-array-names@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "possible-typed-array-names@npm:1.1.0"
+ checksum: 10c0/c810983414142071da1d644662ce4caebce890203eb2bc7bf119f37f3fe5796226e117e6cca146b521921fa6531072674174a3325066ac66fce089a53e1e5196
+ languageName: node
+ linkType: hard
+
+"postcss@npm:^8.4.43":
+ version: 8.5.3
+ resolution: "postcss@npm:8.5.3"
+ dependencies:
+ nanoid: "npm:^3.3.8"
+ picocolors: "npm:^1.1.1"
+ source-map-js: "npm:^1.2.1"
+ checksum: 10c0/b75510d7b28c3ab728c8733dd01538314a18c52af426f199a3c9177e63eb08602a3938bfb66b62dc01350b9aed62087eabbf229af97a1659eb8d3513cec823b3
+ languageName: node
+ linkType: hard
+
+"prelude-ls@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "prelude-ls@npm:1.2.1"
+ checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd
+ languageName: node
+ linkType: hard
+
+"prettier@npm:^3.5.3":
+ version: 3.5.3
+ resolution: "prettier@npm:3.5.3"
+ bin:
+ prettier: bin/prettier.cjs
+ checksum: 10c0/3880cb90b9dc0635819ab52ff571518c35bd7f15a6e80a2054c05dbc8a3aa6e74f135519e91197de63705bcb38388ded7e7230e2178432a1468005406238b877
+ 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
+
+"prop-types@npm:^15.8.1":
+ version: 15.8.1
+ resolution: "prop-types@npm:15.8.1"
+ dependencies:
+ loose-envify: "npm:^1.4.0"
+ object-assign: "npm:^4.1.1"
+ react-is: "npm:^16.13.1"
+ checksum: 10c0/59ece7ca2fb9838031d73a48d4becb9a7cc1ed10e610517c7d8f19a1e02fa47f7c27d557d8a5702bec3cfeccddc853579832b43f449e54635803f277b1c78077
+ 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
+
+"queue-microtask@npm:^1.2.2":
+ version: 1.2.3
+ resolution: "queue-microtask@npm:1.2.3"
+ checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102
+ languageName: node
+ linkType: hard
+
+"react-dom@npm:^19.1.0":
+ version: 19.1.0
+ resolution: "react-dom@npm:19.1.0"
+ dependencies:
+ scheduler: "npm:^0.26.0"
+ peerDependencies:
+ react: ^19.1.0
+ checksum: 10c0/3e26e89bb6c67c9a6aa86cb888c7a7f8258f2e347a6d2a15299c17eb16e04c19194e3452bc3255bd34000a61e45e2cb51e46292392340432f133e5a5d2dfb5fc
+ languageName: node
+ linkType: hard
+
+"react-is@npm:^16.13.1":
+ version: 16.13.1
+ resolution: "react-is@npm:16.13.1"
+ checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1
+ languageName: node
+ linkType: hard
+
+"react-refresh@npm:^0.14.2":
+ version: 0.14.2
+ resolution: "react-refresh@npm:0.14.2"
+ checksum: 10c0/875b72ef56b147a131e33f2abd6ec059d1989854b3ff438898e4f9310bfcc73acff709445b7ba843318a953cb9424bcc2c05af2b3d80011cee28f25aef3e2ebb
+ languageName: node
+ linkType: hard
+
+"react-router-dom@npm:^7.5.1":
+ version: 7.5.1
+ resolution: "react-router-dom@npm:7.5.1"
+ dependencies:
+ react-router: "npm:7.5.1"
+ peerDependencies:
+ react: ">=18"
+ react-dom: ">=18"
+ checksum: 10c0/52446158f883b599385f4feb2e11491440b350bc67e3b39b9eb79f76c20706075c813c3f9383b24a56a24dc2f22e9ee1c9910019b775248aa99485bcb6933e0e
+ languageName: node
+ linkType: hard
+
+"react-router@npm:7.5.1":
+ version: 7.5.1
+ resolution: "react-router@npm:7.5.1"
+ dependencies:
+ cookie: "npm:^1.0.1"
+ set-cookie-parser: "npm:^2.6.0"
+ turbo-stream: "npm:2.4.0"
+ peerDependencies:
+ react: ">=18"
+ react-dom: ">=18"
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+ checksum: 10c0/54e9f77ede0bf36c12685a59c5d965f77f2223d01cd922ce7b6ef4f8fa5435e66c796f9f5da3487bde0cb98dadd64f5a406696d4f52e031af812857aaab0f76b
+ languageName: node
+ linkType: hard
+
+"react@npm:^19.1.0":
+ version: 19.1.0
+ resolution: "react@npm:19.1.0"
+ checksum: 10c0/530fb9a62237d54137a13d2cfb67a7db6a2156faed43eecc423f4713d9b20c6f2728b026b45e28fcd72e8eadb9e9ed4b089e99f5e295d2f0ad3134251bdd3698
+ languageName: node
+ linkType: hard
+
+"readdirp@npm:~3.6.0":
+ version: 3.6.0
+ resolution: "readdirp@npm:3.6.0"
+ dependencies:
+ picomatch: "npm:^2.2.1"
+ checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b
+ languageName: node
+ linkType: hard
+
+"reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.9":
+ version: 1.0.10
+ resolution: "reflect.getprototypeof@npm:1.0.10"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.9"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.7"
+ get-proto: "npm:^1.0.1"
+ which-builtin-type: "npm:^1.2.1"
+ checksum: 10c0/7facec28c8008876f8ab98e80b7b9cb4b1e9224353fd4756dda5f2a4ab0d30fa0a5074777c6df24e1e0af463a2697513b0a11e548d99cf52f21f7bc6ba48d3ac
+ languageName: node
+ linkType: hard
+
+"regexp.prototype.flags@npm:^1.5.3":
+ version: 1.5.4
+ resolution: "regexp.prototype.flags@npm:1.5.4"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ define-properties: "npm:^1.2.1"
+ es-errors: "npm:^1.3.0"
+ get-proto: "npm:^1.0.1"
+ gopd: "npm:^1.2.0"
+ set-function-name: "npm:^2.0.2"
+ checksum: 10c0/83b88e6115b4af1c537f8dabf5c3744032cb875d63bc05c288b1b8c0ef37cbe55353f95d8ca817e8843806e3e150b118bc624e4279b24b4776b4198232735a77
+ languageName: node
+ linkType: hard
+
+"report@workspace:.":
+ version: 0.0.0-use.local
+ resolution: "report@workspace:."
+ dependencies:
+ "@radix-ui/react-tooltip": "npm:^1.2.7"
+ "@tailwindcss/vite": "npm:^4.1.4"
+ "@types/d3": "npm:^7.4.3"
+ "@types/lodash": "npm:^4.17.16"
+ "@types/node": "npm:^20.11.24"
+ "@types/react": "npm:^19.1.0"
+ "@types/react-dom": "npm:^19.1.2"
+ "@typescript-eslint/eslint-plugin": "npm:^8.30.1"
+ "@typescript-eslint/parser": "npm:^8.45.0"
+ "@vitejs/plugin-react": "npm:^4.3.4"
+ clsx: "npm:^2.1.1"
+ d3: "npm:^7.8.5"
+ eslint: "npm:^8.57.1"
+ eslint-config-prettier: "npm:^10.1.2"
+ eslint-plugin-import: "npm:^2.31.0"
+ eslint-plugin-react: "npm:^7.37.5"
+ eslint-plugin-react-hooks: "npm:^5.2.0"
+ lodash: "npm:^4.17.21"
+ prettier: "npm:^3.5.3"
+ react: "npm:^19.1.0"
+ react-dom: "npm:^19.1.0"
+ react-router-dom: "npm:^7.5.1"
+ swr: "npm:^2.3.3"
+ tailwindcss: "npm:^4.1.4"
+ typescript: "npm:^5.3.3"
+ vite: "npm:^5.1.4"
+ vite-plugin-static-copy: "npm:^2.3.1"
+ vitest: "npm:^3.1.2"
+ languageName: unknown
+ linkType: soft
+
+"resolve-from@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "resolve-from@npm:4.0.0"
+ checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^1.22.4":
+ version: 1.22.10
+ resolution: "resolve@npm:1.22.10"
+ dependencies:
+ is-core-module: "npm:^2.16.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/8967e1f4e2cc40f79b7e080b4582b9a8c5ee36ffb46041dccb20e6461161adf69f843b43067b4a375de926a2cd669157e29a29578191def399dd5ef89a1b5203
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^2.0.0-next.5":
+ version: 2.0.0-next.5
+ resolution: "resolve@npm:2.0.0-next.5"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/a6c33555e3482ea2ec4c6e3d3bf0d78128abf69dca99ae468e64f1e30acaa318fd267fb66c8836b04d558d3e2d6ed875fe388067e7d8e0de647d3c21af21c43a
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@npm%3A^1.22.4#optional!builtin":
+ version: 1.22.10
+ resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d"
+ dependencies:
+ is-core-module: "npm:^2.16.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/52a4e505bbfc7925ac8f4cd91fd8c4e096b6a89728b9f46861d3b405ac9a1ccf4dcbf8befb4e89a2e11370dacd0160918163885cbc669369590f2f31f4c58939
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin":
+ version: 2.0.0-next.5
+ resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/78ad6edb8309a2bfb720c2c1898f7907a37f858866ce11a5974643af1203a6a6e05b2fa9c53d8064a673a447b83d42569260c306d43628bff5bb101969708355
+ 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
+
+"reusify@npm:^1.0.4":
+ version: 1.1.0
+ resolution: "reusify@npm:1.1.0"
+ checksum: 10c0/4eff0d4a5f9383566c7d7ec437b671cc51b25963bd61bf127c3f3d3f68e44a026d99b8d2f1ad344afff8d278a8fe70a8ea092650a716d22287e8bef7126bb2fa
+ languageName: node
+ linkType: hard
+
+"rimraf@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "rimraf@npm:3.0.2"
+ dependencies:
+ glob: "npm:^7.1.3"
+ bin:
+ rimraf: bin.js
+ checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8
+ languageName: node
+ linkType: hard
+
+"robust-predicates@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "robust-predicates@npm:3.0.2"
+ checksum: 10c0/4ecd53649f1c2d49529c85518f2fa69ffb2f7a4453f7fd19c042421c7b4d76c3efb48bc1c740c8f7049346d7cb58cf08ee0c9adaae595cc23564d360adb1fde4
+ languageName: node
+ linkType: hard
+
+"rollup@npm:^4.20.0":
+ version: 4.39.0
+ resolution: "rollup@npm:4.39.0"
+ dependencies:
+ "@rollup/rollup-android-arm-eabi": "npm:4.39.0"
+ "@rollup/rollup-android-arm64": "npm:4.39.0"
+ "@rollup/rollup-darwin-arm64": "npm:4.39.0"
+ "@rollup/rollup-darwin-x64": "npm:4.39.0"
+ "@rollup/rollup-freebsd-arm64": "npm:4.39.0"
+ "@rollup/rollup-freebsd-x64": "npm:4.39.0"
+ "@rollup/rollup-linux-arm-gnueabihf": "npm:4.39.0"
+ "@rollup/rollup-linux-arm-musleabihf": "npm:4.39.0"
+ "@rollup/rollup-linux-arm64-gnu": "npm:4.39.0"
+ "@rollup/rollup-linux-arm64-musl": "npm:4.39.0"
+ "@rollup/rollup-linux-loongarch64-gnu": "npm:4.39.0"
+ "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.39.0"
+ "@rollup/rollup-linux-riscv64-gnu": "npm:4.39.0"
+ "@rollup/rollup-linux-riscv64-musl": "npm:4.39.0"
+ "@rollup/rollup-linux-s390x-gnu": "npm:4.39.0"
+ "@rollup/rollup-linux-x64-gnu": "npm:4.39.0"
+ "@rollup/rollup-linux-x64-musl": "npm:4.39.0"
+ "@rollup/rollup-win32-arm64-msvc": "npm:4.39.0"
+ "@rollup/rollup-win32-ia32-msvc": "npm:4.39.0"
+ "@rollup/rollup-win32-x64-msvc": "npm:4.39.0"
+ "@types/estree": "npm:1.0.7"
+ fsevents: "npm:~2.3.2"
+ dependenciesMeta:
+ "@rollup/rollup-android-arm-eabi":
+ optional: true
+ "@rollup/rollup-android-arm64":
+ optional: true
+ "@rollup/rollup-darwin-arm64":
+ optional: true
+ "@rollup/rollup-darwin-x64":
+ optional: true
+ "@rollup/rollup-freebsd-arm64":
+ optional: true
+ "@rollup/rollup-freebsd-x64":
+ optional: true
+ "@rollup/rollup-linux-arm-gnueabihf":
+ optional: true
+ "@rollup/rollup-linux-arm-musleabihf":
+ optional: true
+ "@rollup/rollup-linux-arm64-gnu":
+ optional: true
+ "@rollup/rollup-linux-arm64-musl":
+ optional: true
+ "@rollup/rollup-linux-loongarch64-gnu":
+ optional: true
+ "@rollup/rollup-linux-powerpc64le-gnu":
+ optional: true
+ "@rollup/rollup-linux-riscv64-gnu":
+ optional: true
+ "@rollup/rollup-linux-riscv64-musl":
+ optional: true
+ "@rollup/rollup-linux-s390x-gnu":
+ optional: true
+ "@rollup/rollup-linux-x64-gnu":
+ optional: true
+ "@rollup/rollup-linux-x64-musl":
+ optional: true
+ "@rollup/rollup-win32-arm64-msvc":
+ optional: true
+ "@rollup/rollup-win32-ia32-msvc":
+ optional: true
+ "@rollup/rollup-win32-x64-msvc":
+ optional: true
+ fsevents:
+ optional: true
+ bin:
+ rollup: dist/bin/rollup
+ checksum: 10c0/2dc0c23ca04bd00295035b405c977261559aed8acc9902ee9ff44e4a6b54734fcb64999c32143c43804dcb543da7983032831b893a902633b006c21848a093ce
+ languageName: node
+ linkType: hard
+
+"run-parallel@npm:^1.1.9":
+ version: 1.2.0
+ resolution: "run-parallel@npm:1.2.0"
+ dependencies:
+ queue-microtask: "npm:^1.2.2"
+ checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39
+ languageName: node
+ linkType: hard
+
+"rw@npm:1":
+ version: 1.3.3
+ resolution: "rw@npm:1.3.3"
+ checksum: 10c0/b1e1ef37d1e79d9dc7050787866e30b6ddcb2625149276045c262c6b4d53075ddc35f387a856a8e76f0d0df59f4cd58fe24707e40797ebee66e542b840ed6a53
+ languageName: node
+ linkType: hard
+
+"safe-array-concat@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "safe-array-concat@npm:1.1.3"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.2"
+ get-intrinsic: "npm:^1.2.6"
+ has-symbols: "npm:^1.1.0"
+ isarray: "npm:^2.0.5"
+ checksum: 10c0/43c86ffdddc461fb17ff8a17c5324f392f4868f3c7dd2c6a5d9f5971713bc5fd755667212c80eab9567595f9a7509cc2f83e590ddaebd1bd19b780f9c79f9a8d
+ languageName: node
+ linkType: hard
+
+"safe-push-apply@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "safe-push-apply@npm:1.0.0"
+ dependencies:
+ es-errors: "npm:^1.3.0"
+ isarray: "npm:^2.0.5"
+ checksum: 10c0/831f1c9aae7436429e7862c7e46f847dfe490afac20d0ee61bae06108dbf5c745a0de3568ada30ccdd3eeb0864ca8331b2eef703abd69bfea0745b21fd320750
+ languageName: node
+ linkType: hard
+
+"safe-regex-test@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "safe-regex-test@npm:1.1.0"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ es-errors: "npm:^1.3.0"
+ is-regex: "npm:^1.2.1"
+ checksum: 10c0/f2c25281bbe5d39cddbbce7f86fca5ea9b3ce3354ea6cd7c81c31b006a5a9fff4286acc5450a3b9122c56c33eba69c56b9131ad751457b2b4a585825e6a10665
+ 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
+
+"scheduler@npm:^0.26.0":
+ version: 0.26.0
+ resolution: "scheduler@npm:0.26.0"
+ checksum: 10c0/5b8d5bfddaae3513410eda54f2268e98a376a429931921a81b5c3a2873aab7ca4d775a8caac5498f8cbc7d0daeab947cf923dbd8e215d61671f9f4e392d34356
+ languageName: node
+ linkType: hard
+
+"semver@npm:^6.3.1":
+ version: 6.3.1
+ resolution: "semver@npm:6.3.1"
+ bin:
+ semver: bin/semver.js
+ checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.3.5, semver@npm:^7.6.0":
+ version: 7.7.2
+ resolution: "semver@npm:7.7.2"
+ bin:
+ semver: bin/semver.js
+ checksum: 10c0/aca305edfbf2383c22571cb7714f48cadc7ac95371b4b52362fb8eeffdfbc0de0669368b82b2b15978f8848f01d7114da65697e56cd8c37b0dab8c58e543f9ea
+ languageName: node
+ linkType: hard
+
+"set-cookie-parser@npm:^2.6.0":
+ version: 2.7.1
+ resolution: "set-cookie-parser@npm:2.7.1"
+ checksum: 10c0/060c198c4c92547ac15988256f445eae523f57f2ceefeccf52d30d75dedf6bff22b9c26f756bd44e8e560d44ff4ab2130b178bd2e52ef5571bf7be3bd7632d9a
+ languageName: node
+ linkType: hard
+
+"set-function-length@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "set-function-length@npm:1.2.2"
+ dependencies:
+ define-data-property: "npm:^1.1.4"
+ es-errors: "npm:^1.3.0"
+ function-bind: "npm:^1.1.2"
+ get-intrinsic: "npm:^1.2.4"
+ gopd: "npm:^1.0.1"
+ has-property-descriptors: "npm:^1.0.2"
+ checksum: 10c0/82850e62f412a258b71e123d4ed3873fa9377c216809551192bb6769329340176f109c2eeae8c22a8d386c76739855f78e8716515c818bcaef384b51110f0f3c
+ languageName: node
+ linkType: hard
+
+"set-function-name@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "set-function-name@npm:2.0.2"
+ dependencies:
+ define-data-property: "npm:^1.1.4"
+ es-errors: "npm:^1.3.0"
+ functions-have-names: "npm:^1.2.3"
+ has-property-descriptors: "npm:^1.0.2"
+ checksum: 10c0/fce59f90696c450a8523e754abb305e2b8c73586452619c2bad5f7bf38c7b6b4651895c9db895679c5bef9554339cf3ef1c329b66ece3eda7255785fbe299316
+ languageName: node
+ linkType: hard
+
+"set-proto@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "set-proto@npm:1.0.0"
+ dependencies:
+ dunder-proto: "npm:^1.0.1"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/ca5c3ccbba479d07c30460e367e66337cec825560b11e8ba9c5ebe13a2a0d6021ae34eddf94ff3dfe17a3104dc1f191519cb6c48378b503e5c3f36393938776a
+ 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
+
+"siginfo@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "siginfo@npm:2.0.0"
+ checksum: 10c0/3def8f8e516fbb34cb6ae415b07ccc5d9c018d85b4b8611e3dc6f8be6d1899f693a4382913c9ed51a06babb5201639d76453ab297d1c54a456544acf5c892e34
+ 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
+
+"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.7
+ resolution: "socks@npm:2.8.7"
+ dependencies:
+ ip-address: "npm:^10.0.1"
+ smart-buffer: "npm:^4.2.0"
+ checksum: 10c0/2805a43a1c4bcf9ebf6e018268d87b32b32b06fbbc1f9282573583acc155860dc361500f89c73bfbb157caa1b4ac78059eac0ef15d1811eb0ca75e0bdadbc9d2
+ languageName: node
+ linkType: hard
+
+"source-map-js@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "source-map-js@npm:1.2.1"
+ checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf
+ 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
+
+"stackback@npm:0.0.2":
+ version: 0.0.2
+ resolution: "stackback@npm:0.0.2"
+ checksum: 10c0/89a1416668f950236dd5ac9f9a6b2588e1b9b62b1b6ad8dff1bfc5d1a15dbf0aafc9b52d2226d00c28dffff212da464eaeebfc6b7578b9d180cef3e3782c5983
+ languageName: node
+ linkType: hard
+
+"std-env@npm:^3.9.0":
+ version: 3.9.0
+ resolution: "std-env@npm:3.9.0"
+ checksum: 10c0/4a6f9218aef3f41046c3c7ecf1f98df00b30a07f4f35c6d47b28329bc2531eef820828951c7d7b39a1c5eb19ad8a46e3ddfc7deb28f0a2f3ceebee11bab7ba50
+ 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
+
+"string.prototype.matchall@npm:^4.0.12":
+ version: 4.0.12
+ resolution: "string.prototype.matchall@npm:4.0.12"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.3"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.6"
+ es-errors: "npm:^1.3.0"
+ es-object-atoms: "npm:^1.0.0"
+ get-intrinsic: "npm:^1.2.6"
+ gopd: "npm:^1.2.0"
+ has-symbols: "npm:^1.1.0"
+ internal-slot: "npm:^1.1.0"
+ regexp.prototype.flags: "npm:^1.5.3"
+ set-function-name: "npm:^2.0.2"
+ side-channel: "npm:^1.1.0"
+ checksum: 10c0/1a53328ada73f4a77f1fdf1c79414700cf718d0a8ef6672af5603e709d26a24f2181208144aed7e858b1bcc1a0d08567a570abfb45567db4ae47637ed2c2f85c
+ languageName: node
+ linkType: hard
+
+"string.prototype.repeat@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "string.prototype.repeat@npm:1.0.0"
+ dependencies:
+ define-properties: "npm:^1.1.3"
+ es-abstract: "npm:^1.17.5"
+ checksum: 10c0/94c7978566cffa1327d470fd924366438af9b04b497c43a9805e476e2e908aa37a1fd34cc0911156c17556dab62159d12c7b92b3cc304c3e1281fe4c8e668f40
+ languageName: node
+ linkType: hard
+
+"string.prototype.trim@npm:^1.2.10":
+ version: 1.2.10
+ resolution: "string.prototype.trim@npm:1.2.10"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.2"
+ define-data-property: "npm:^1.1.4"
+ define-properties: "npm:^1.2.1"
+ es-abstract: "npm:^1.23.5"
+ es-object-atoms: "npm:^1.0.0"
+ has-property-descriptors: "npm:^1.0.2"
+ checksum: 10c0/8a8854241c4b54a948e992eb7dd6b8b3a97185112deb0037a134f5ba57541d8248dd610c966311887b6c2fd1181a3877bffb14d873ce937a344535dabcc648f8
+ languageName: node
+ linkType: hard
+
+"string.prototype.trimend@npm:^1.0.8, string.prototype.trimend@npm:^1.0.9":
+ version: 1.0.9
+ resolution: "string.prototype.trimend@npm:1.0.9"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.2"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/59e1a70bf9414cb4c536a6e31bef5553c8ceb0cf44d8b4d0ed65c9653358d1c64dd0ec203b100df83d0413bbcde38b8c5d49e14bc4b86737d74adc593a0d35b6
+ languageName: node
+ linkType: hard
+
+"string.prototype.trimstart@npm:^1.0.8":
+ version: 1.0.8
+ resolution: "string.prototype.trimstart@npm:1.0.8"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ define-properties: "npm:^1.2.1"
+ es-object-atoms: "npm:^1.0.0"
+ checksum: 10c0/d53af1899959e53c83b64a5fd120be93e067da740e7e75acb433849aa640782fb6c7d4cd5b84c954c84413745a3764df135a8afeb22908b86a835290788d8366
+ 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.2
+ resolution: "strip-ansi@npm:7.1.2"
+ dependencies:
+ ansi-regex: "npm:^6.0.1"
+ checksum: 10c0/0d6d7a023de33368fd042aab0bf48f4f4077abdfd60e5393e73c7c411e85e1b3a83507c11af2e656188511475776215df9ca589b4da2295c9455cc399ce1858b
+ languageName: node
+ linkType: hard
+
+"strip-bom@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "strip-bom@npm:3.0.0"
+ checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1
+ languageName: node
+ linkType: hard
+
+"strip-json-comments@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "strip-json-comments@npm:3.1.1"
+ checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^7.1.0":
+ version: 7.2.0
+ resolution: "supports-color@npm:7.2.0"
+ dependencies:
+ has-flag: "npm:^4.0.0"
+ checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124
+ languageName: node
+ linkType: hard
+
+"supports-preserve-symlinks-flag@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "supports-preserve-symlinks-flag@npm:1.0.0"
+ checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39
+ languageName: node
+ linkType: hard
+
+"swr@npm:^2.3.3":
+ version: 2.3.3
+ resolution: "swr@npm:2.3.3"
+ 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/882fc8291912860e0c50eae3470ebf0cd58b0144cb12adcc4b14c5cef913ea06479043830508d8b0b3d4061d99ad8dd52485c9c879fbd4e9b893484e6d8da9e3
+ languageName: node
+ linkType: hard
+
+"tailwindcss@npm:4.1.4, tailwindcss@npm:^4.1.4":
+ version: 4.1.4
+ resolution: "tailwindcss@npm:4.1.4"
+ checksum: 10c0/4927653b740861f0279b6b465c87e188652d3c0e311c633b4efe5d72bbb4dce12b9dddc674a386a3d0454ef4dd4951aac6fd7346dcd9b2b2b06952e431c1835d
+ languageName: node
+ linkType: hard
+
+"tapable@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "tapable@npm:2.2.1"
+ checksum: 10c0/bc40e6efe1e554d075469cedaba69a30eeb373552aaf41caeaaa45bf56ffacc2674261b106245bd566b35d8f3329b52d838e851ee0a852120acae26e622925c9
+ languageName: node
+ linkType: hard
+
+"tar@npm:^7.4.3":
+ version: 7.5.1
+ resolution: "tar@npm:7.5.1"
+ dependencies:
+ "@isaacs/fs-minipass": "npm:^4.0.0"
+ chownr: "npm:^3.0.0"
+ minipass: "npm:^7.1.2"
+ minizlib: "npm:^3.1.0"
+ yallist: "npm:^5.0.0"
+ checksum: 10c0/0dad0596a61586180981133b20c32cfd93c5863c5b7140d646714e6ea8ec84583b879e5dc3928a4d683be6e6109ad7ea3de1cf71986d5194f81b3a016c8858c9
+ languageName: node
+ linkType: hard
+
+"text-table@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "text-table@npm:0.2.0"
+ checksum: 10c0/02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c
+ languageName: node
+ linkType: hard
+
+"tinybench@npm:^2.9.0":
+ version: 2.9.0
+ resolution: "tinybench@npm:2.9.0"
+ checksum: 10c0/c3500b0f60d2eb8db65250afe750b66d51623057ee88720b7f064894a6cb7eb93360ca824a60a31ab16dab30c7b1f06efe0795b352e37914a9d4bad86386a20c
+ languageName: node
+ linkType: hard
+
+"tinyexec@npm:^0.3.2":
+ version: 0.3.2
+ resolution: "tinyexec@npm:0.3.2"
+ checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90
+ languageName: node
+ linkType: hard
+
+"tinyglobby@npm:^0.2.12":
+ version: 0.2.15
+ resolution: "tinyglobby@npm:0.2.15"
+ dependencies:
+ fdir: "npm:^6.5.0"
+ picomatch: "npm:^4.0.3"
+ checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844
+ languageName: node
+ linkType: hard
+
+"tinyglobby@npm:^0.2.13":
+ version: 0.2.13
+ resolution: "tinyglobby@npm:0.2.13"
+ dependencies:
+ fdir: "npm:^6.4.4"
+ picomatch: "npm:^4.0.2"
+ checksum: 10c0/ef07dfaa7b26936601d3f6d999f7928a4d1c6234c5eb36896bb88681947c0d459b7ebe797022400e555fe4b894db06e922b95d0ce60cb05fd827a0a66326b18c
+ languageName: node
+ linkType: hard
+
+"tinypool@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "tinypool@npm:1.0.2"
+ checksum: 10c0/31ac184c0ff1cf9a074741254fe9ea6de95026749eb2b8ec6fd2b9d8ca94abdccda731f8e102e7f32e72ed3b36d32c6975fd5f5523df3f1b6de6c3d8dfd95e63
+ languageName: node
+ linkType: hard
+
+"tinyrainbow@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "tinyrainbow@npm:2.0.0"
+ checksum: 10c0/c83c52bef4e0ae7fb8ec6a722f70b5b6fa8d8be1c85792e829f56c0e1be94ab70b293c032dc5048d4d37cfe678f1f5babb04bdc65fd123098800148ca989184f
+ languageName: node
+ linkType: hard
+
+"tinyspy@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "tinyspy@npm:3.0.2"
+ checksum: 10c0/55ffad24e346622b59292e097c2ee30a63919d5acb7ceca87fc0d1c223090089890587b426e20054733f97a58f20af2c349fb7cc193697203868ab7ba00bcea0
+ languageName: node
+ linkType: hard
+
+"to-regex-range@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "to-regex-range@npm:5.0.1"
+ dependencies:
+ is-number: "npm:^7.0.0"
+ checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892
+ languageName: node
+ linkType: hard
+
+"ts-api-utils@npm:^2.0.1, ts-api-utils@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "ts-api-utils@npm:2.1.0"
+ peerDependencies:
+ typescript: ">=4.8.4"
+ checksum: 10c0/9806a38adea2db0f6aa217ccc6bc9c391ddba338a9fe3080676d0d50ed806d305bb90e8cef0276e793d28c8a929f400abb184ddd7ff83a416959c0f4d2ce754f
+ languageName: node
+ linkType: hard
+
+"tsconfig-paths@npm:^3.15.0":
+ version: 3.15.0
+ resolution: "tsconfig-paths@npm:3.15.0"
+ dependencies:
+ "@types/json5": "npm:^0.0.29"
+ json5: "npm:^1.0.2"
+ minimist: "npm:^1.2.6"
+ strip-bom: "npm:^3.0.0"
+ checksum: 10c0/5b4f301a2b7a3766a986baf8fc0e177eb80bdba6e396792ff92dc23b5bca8bb279fc96517dcaaef63a3b49bebc6c4c833653ec58155780bc906bdbcf7dda0ef5
+ languageName: node
+ linkType: hard
+
+"tslib@npm:^2.4.0, tslib@npm:^2.8.0":
+ version: 2.8.1
+ resolution: "tslib@npm:2.8.1"
+ checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62
+ languageName: node
+ linkType: hard
+
+"turbo-stream@npm:2.4.0":
+ version: 2.4.0
+ resolution: "turbo-stream@npm:2.4.0"
+ checksum: 10c0/e68b2569f1f16e6e9633d090c6024b2ae9f0e97bfeacb572451ca3732e120ebbb546f3bc4afc717c46cb57b5aea6104e04ef497f9912eef6a7641e809518e98a
+ languageName: node
+ linkType: hard
+
+"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
+ version: 0.4.0
+ resolution: "type-check@npm:0.4.0"
+ dependencies:
+ prelude-ls: "npm:^1.2.1"
+ checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^0.20.2":
+ version: 0.20.2
+ resolution: "type-fest@npm:0.20.2"
+ checksum: 10c0/dea9df45ea1f0aaa4e2d3bed3f9a0bfe9e5b2592bddb92eb1bf06e50bcf98dbb78189668cd8bc31a0511d3fc25539b4cd5c704497e53e93e2d40ca764b10bfc3
+ languageName: node
+ linkType: hard
+
+"typed-array-buffer@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "typed-array-buffer@npm:1.0.3"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ es-errors: "npm:^1.3.0"
+ is-typed-array: "npm:^1.1.14"
+ checksum: 10c0/1105071756eb248774bc71646bfe45b682efcad93b55532c6ffa4518969fb6241354e4aa62af679ae83899ec296d69ef88f1f3763657cdb3a4d29321f7b83079
+ languageName: node
+ linkType: hard
+
+"typed-array-byte-length@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "typed-array-byte-length@npm:1.0.3"
+ dependencies:
+ call-bind: "npm:^1.0.8"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.2.0"
+ has-proto: "npm:^1.2.0"
+ is-typed-array: "npm:^1.1.14"
+ checksum: 10c0/6ae083c6f0354f1fce18b90b243343b9982affd8d839c57bbd2c174a5d5dc71be9eb7019ffd12628a96a4815e7afa85d718d6f1e758615151d5f35df841ffb3e
+ languageName: node
+ linkType: hard
+
+"typed-array-byte-offset@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "typed-array-byte-offset@npm:1.0.4"
+ dependencies:
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.8"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.2.0"
+ has-proto: "npm:^1.2.0"
+ is-typed-array: "npm:^1.1.15"
+ reflect.getprototypeof: "npm:^1.0.9"
+ checksum: 10c0/3d805b050c0c33b51719ee52de17c1cd8e6a571abdf0fffb110e45e8dd87a657e8b56eee94b776b13006d3d347a0c18a730b903cf05293ab6d92e99ff8f77e53
+ languageName: node
+ linkType: hard
+
+"typed-array-length@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "typed-array-length@npm:1.0.7"
+ dependencies:
+ call-bind: "npm:^1.0.7"
+ for-each: "npm:^0.3.3"
+ gopd: "npm:^1.0.1"
+ is-typed-array: "npm:^1.1.13"
+ possible-typed-array-names: "npm:^1.0.0"
+ reflect.getprototypeof: "npm:^1.0.6"
+ checksum: 10c0/e38f2ae3779584c138a2d8adfa8ecf749f494af3cd3cdafe4e688ce51418c7d2c5c88df1bd6be2bbea099c3f7cea58c02ca02ed438119e91f162a9de23f61295
+ languageName: node
+ linkType: hard
+
+"typescript@npm:^5.3.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.3.3#optional!builtin":
+ version: 5.8.3
+ resolution: "typescript@patch:typescript@npm%3A5.8.3#optional!builtin::version=5.8.3&hash=5786d5"
+ bin:
+ tsc: bin/tsc
+ tsserver: bin/tsserver
+ checksum: 10c0/39117e346ff8ebd87ae1510b3a77d5d92dae5a89bde588c747d25da5c146603a99c8ee588c7ef80faaf123d89ed46f6dbd918d534d641083177d5fac38b8a1cb
+ languageName: node
+ linkType: hard
+
+"unbox-primitive@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "unbox-primitive@npm:1.1.0"
+ dependencies:
+ call-bound: "npm:^1.0.3"
+ has-bigints: "npm:^1.0.2"
+ has-symbols: "npm:^1.1.0"
+ which-boxed-primitive: "npm:^1.1.1"
+ checksum: 10c0/7dbd35ab02b0e05fe07136c72cb9355091242455473ec15057c11430129bab38b7b3624019b8778d02a881c13de44d63cd02d122ee782fb519e1de7775b5b982
+ languageName: node
+ linkType: hard
+
+"undici-types@npm:~6.19.2":
+ version: 6.19.8
+ resolution: "undici-types@npm:6.19.8"
+ checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344
+ 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
+
+"universalify@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "universalify@npm:2.0.1"
+ checksum: 10c0/73e8ee3809041ca8b818efb141801a1004e3fc0002727f1531f4de613ea281b494a40909596dae4a042a4fb6cd385af5d4db2e137b1362e0e91384b828effd3a
+ languageName: node
+ linkType: hard
+
+"update-browserslist-db@npm:^1.1.1":
+ version: 1.1.3
+ resolution: "update-browserslist-db@npm:1.1.3"
+ dependencies:
+ escalade: "npm:^3.2.0"
+ picocolors: "npm:^1.1.1"
+ peerDependencies:
+ browserslist: ">= 4.21.0"
+ bin:
+ update-browserslist-db: cli.js
+ checksum: 10c0/682e8ecbf9de474a626f6462aa85927936cdd256fe584c6df2508b0df9f7362c44c957e9970df55dfe44d3623807d26316ea2c7d26b80bb76a16c56c37233c32
+ 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
+
+"vite-node@npm:3.1.2":
+ version: 3.1.2
+ resolution: "vite-node@npm:3.1.2"
+ dependencies:
+ cac: "npm:^6.7.14"
+ debug: "npm:^4.4.0"
+ es-module-lexer: "npm:^1.6.0"
+ pathe: "npm:^2.0.3"
+ vite: "npm:^5.0.0 || ^6.0.0"
+ bin:
+ vite-node: vite-node.mjs
+ checksum: 10c0/eb0788b43a241c69ca23ba6cf5ab5226157947938dc4e02247b2008e1fd425e45a347d3caac7d53e0b804beb4c9e97395908fd87c1f23bda1590e1b011c63edb
+ languageName: node
+ linkType: hard
+
+"vite-plugin-static-copy@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "vite-plugin-static-copy@npm:2.3.1"
+ dependencies:
+ chokidar: "npm:^3.5.3"
+ fast-glob: "npm:^3.2.11"
+ fs-extra: "npm:^11.1.0"
+ p-map: "npm:^7.0.3"
+ picocolors: "npm:^1.0.0"
+ peerDependencies:
+ vite: ^5.0.0 || ^6.0.0
+ checksum: 10c0/21bc3823b70534c09c73ff272851329242fa4e307160681950883afca78b1bb4aa156c1a81431a3cb72ad1a81d49293a63b4e3c10d19e22ec3bfbc80099cae94
+ languageName: node
+ linkType: hard
+
+"vite@npm:^5.0.0 || ^6.0.0, vite@npm:^5.1.4":
+ version: 5.4.18
+ resolution: "vite@npm:5.4.18"
+ dependencies:
+ esbuild: "npm:^0.21.3"
+ fsevents: "npm:~2.3.3"
+ postcss: "npm:^8.4.43"
+ rollup: "npm:^4.20.0"
+ peerDependencies:
+ "@types/node": ^18.0.0 || >=20.0.0
+ less: "*"
+ lightningcss: ^1.21.0
+ sass: "*"
+ sass-embedded: "*"
+ stylus: "*"
+ sugarss: "*"
+ terser: ^5.4.0
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ peerDependenciesMeta:
+ "@types/node":
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ bin:
+ vite: bin/vite.js
+ checksum: 10c0/a8cbbec6bdf399e62c386d70b8485e4f2f1b427beb19bc7c5d52b402a0c3750b7ff469fc20a8333755ea13bc1b0af5df3f22c8fd37d1739ee51d709b7a4740b6
+ languageName: node
+ linkType: hard
+
+"vitest@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "vitest@npm:3.1.2"
+ dependencies:
+ "@vitest/expect": "npm:3.1.2"
+ "@vitest/mocker": "npm:3.1.2"
+ "@vitest/pretty-format": "npm:^3.1.2"
+ "@vitest/runner": "npm:3.1.2"
+ "@vitest/snapshot": "npm:3.1.2"
+ "@vitest/spy": "npm:3.1.2"
+ "@vitest/utils": "npm:3.1.2"
+ chai: "npm:^5.2.0"
+ debug: "npm:^4.4.0"
+ expect-type: "npm:^1.2.1"
+ magic-string: "npm:^0.30.17"
+ pathe: "npm:^2.0.3"
+ std-env: "npm:^3.9.0"
+ tinybench: "npm:^2.9.0"
+ tinyexec: "npm:^0.3.2"
+ tinyglobby: "npm:^0.2.13"
+ tinypool: "npm:^1.0.2"
+ tinyrainbow: "npm:^2.0.0"
+ vite: "npm:^5.0.0 || ^6.0.0"
+ vite-node: "npm:3.1.2"
+ why-is-node-running: "npm:^2.3.0"
+ peerDependencies:
+ "@edge-runtime/vm": "*"
+ "@types/debug": ^4.1.12
+ "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0
+ "@vitest/browser": 3.1.2
+ "@vitest/ui": 3.1.2
+ happy-dom: "*"
+ jsdom: "*"
+ peerDependenciesMeta:
+ "@edge-runtime/vm":
+ optional: true
+ "@types/debug":
+ optional: true
+ "@types/node":
+ optional: true
+ "@vitest/browser":
+ optional: true
+ "@vitest/ui":
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+ bin:
+ vitest: vitest.mjs
+ checksum: 10c0/14b9c99812282d88b6e1dafde8cca22b07dcefa0a00d240145cf5cb95b082c287807bd884f417a046992bc74246aaf64662fd07179e60547c9277fbc8986439b
+ languageName: node
+ linkType: hard
+
+"which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "which-boxed-primitive@npm:1.1.1"
+ dependencies:
+ is-bigint: "npm:^1.1.0"
+ is-boolean-object: "npm:^1.2.1"
+ is-number-object: "npm:^1.1.1"
+ is-string: "npm:^1.1.1"
+ is-symbol: "npm:^1.1.1"
+ checksum: 10c0/aceea8ede3b08dede7dce168f3883323f7c62272b49801716e8332ff750e7ae59a511ae088840bc6874f16c1b7fd296c05c949b0e5b357bfe3c431b98c417abe
+ languageName: node
+ linkType: hard
+
+"which-builtin-type@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "which-builtin-type@npm:1.2.1"
+ dependencies:
+ call-bound: "npm:^1.0.2"
+ function.prototype.name: "npm:^1.1.6"
+ has-tostringtag: "npm:^1.0.2"
+ is-async-function: "npm:^2.0.0"
+ is-date-object: "npm:^1.1.0"
+ is-finalizationregistry: "npm:^1.1.0"
+ is-generator-function: "npm:^1.0.10"
+ is-regex: "npm:^1.2.1"
+ is-weakref: "npm:^1.0.2"
+ isarray: "npm:^2.0.5"
+ which-boxed-primitive: "npm:^1.1.0"
+ which-collection: "npm:^1.0.2"
+ which-typed-array: "npm:^1.1.16"
+ checksum: 10c0/8dcf323c45e5c27887800df42fbe0431d0b66b1163849bb7d46b5a730ad6a96ee8bfe827d078303f825537844ebf20c02459de41239a0a9805e2fcb3cae0d471
+ languageName: node
+ linkType: hard
+
+"which-collection@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "which-collection@npm:1.0.2"
+ dependencies:
+ is-map: "npm:^2.0.3"
+ is-set: "npm:^2.0.3"
+ is-weakmap: "npm:^2.0.2"
+ is-weakset: "npm:^2.0.3"
+ checksum: 10c0/3345fde20964525a04cdf7c4a96821f85f0cc198f1b2ecb4576e08096746d129eb133571998fe121c77782ac8f21cbd67745a3d35ce100d26d4e684c142ea1f2
+ languageName: node
+ linkType: hard
+
+"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.18":
+ version: 1.1.19
+ resolution: "which-typed-array@npm:1.1.19"
+ dependencies:
+ available-typed-arrays: "npm:^1.0.7"
+ call-bind: "npm:^1.0.8"
+ call-bound: "npm:^1.0.4"
+ for-each: "npm:^0.3.5"
+ get-proto: "npm:^1.0.1"
+ gopd: "npm:^1.2.0"
+ has-tostringtag: "npm:^1.0.2"
+ checksum: 10c0/702b5dc878addafe6c6300c3d0af5983b175c75fcb4f2a72dfc3dd38d93cf9e89581e4b29c854b16ea37e50a7d7fca5ae42ece5c273d8060dcd603b2404bbb3f
+ 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
+
+"why-is-node-running@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "why-is-node-running@npm:2.3.0"
+ dependencies:
+ siginfo: "npm:^2.0.0"
+ stackback: "npm:0.0.2"
+ bin:
+ why-is-node-running: cli.js
+ checksum: 10c0/1cde0b01b827d2cf4cb11db962f3958b9175d5d9e7ac7361d1a7b0e2dc6069a263e69118bd974c4f6d0a890ef4eedfe34cf3d5167ec14203dbc9a18620537054
+ languageName: node
+ linkType: hard
+
+"word-wrap@npm:^1.2.5":
+ version: 1.2.5
+ resolution: "word-wrap@npm:1.2.5"
+ checksum: 10c0/e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20
+ 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
+
+"yallist@npm:^3.0.2":
+ version: 3.1.1
+ resolution: "yallist@npm:3.1.1"
+ checksum: 10c0/c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1
+ 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
+
+"yocto-queue@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "yocto-queue@npm:0.1.0"
+ checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f
+ languageName: node
+ linkType: hard
diff --git a/runner/benchmark/benchmark.go b/runner/benchmark/benchmark.go
index 9a65a0b2..fa6416d5 100644
--- a/runner/benchmark/benchmark.go
+++ b/runner/benchmark/benchmark.go
@@ -80,6 +80,30 @@ func NewParamsFromValues(assignments map[string]interface{}) (*types.RunParams,
} else {
return nil, fmt.Errorf("invalid num blocks %s", v)
}
+ case "client_args":
+ // client_args can be either a simple string or a map[string]string for per-client args
+ if vStr, ok := v.(string); ok {
+ // Simple string applies to all clients
+ params.ClientArgs = vStr
+ } else if vMap, ok := v.(map[string]interface{}); ok {
+ // Per-client mapping - extract args for the current node type
+ if args, exists := vMap[params.NodeType]; exists {
+ if argsStr, ok := args.(string); ok {
+ params.ClientArgs = argsStr
+ } else {
+ return nil, fmt.Errorf("invalid client_args value for node type %s", params.NodeType)
+ }
+ }
+ // If node type not in map, ClientArgs remains empty (use defaults)
+ } else {
+ return nil, fmt.Errorf("invalid client_args format: must be string or map[string]string")
+ }
+ case "flashblock_interval":
+ if vInt, ok := v.(int); ok {
+ params.FlashblockInterval = vInt
+ } else {
+ return nil, fmt.Errorf("invalid flashblock_interval %s", v)
+ }
}
}
diff --git a/runner/clients/geth/client.go b/runner/clients/geth/client.go
index 53cd6c77..3fc5964b 100644
--- a/runner/clients/geth/client.go
+++ b/runner/clients/geth/client.go
@@ -125,6 +125,9 @@ func (g *GethClient) Run(ctx context.Context, cfg *types.RuntimeConfig) error {
minerNewPayloadTimeout := time.Second * 2
args = append(args, "--miner.newpayload-timeout", minerNewPayloadTimeout.String())
+ // Append any custom args from RuntimeConfig
+ args = append(args, cfg.Args...)
+
jwtSecretStr, err := os.ReadFile(g.options.JWTSecretPath)
if err != nil {
return errors.Wrap(err, "failed to read jwt secret")
@@ -217,6 +220,11 @@ func (g *GethClient) ClientURL() string {
return g.clientURL
}
+// AuthURL returns the auth RPC URL.
+func (g *GethClient) AuthURL() string {
+ return fmt.Sprintf("http://127.0.0.1:%d", g.authRPCPort)
+}
+
// AuthClient returns the auth client used for CL communication.
func (g *GethClient) AuthClient() client.RPC {
return g.authClient
diff --git a/runner/clients/rbuilder/client.go b/runner/clients/rbuilder/client.go
index cfe26e3d..325db0c7 100644
--- a/runner/clients/rbuilder/client.go
+++ b/runner/clients/rbuilder/client.go
@@ -2,63 +2,373 @@ package rbuilder
import (
"context"
- "errors"
+ "encoding/hex"
+ "fmt"
+ "io"
+ "net/http"
+ "os"
+ "os/exec"
+ "time"
"github.com/ethereum-optimism/optimism/op-service/client"
+ "github.com/ethereum/go-ethereum/ethclient"
"github.com/ethereum/go-ethereum/log"
+ "github.com/ethereum/go-ethereum/node"
+ "github.com/ethereum/go-ethereum/rpc"
+ "github.com/pkg/errors"
"github.com/base/base-bench/runner/benchmark/portmanager"
+ "github.com/base/base-bench/runner/clients/geth"
"github.com/base/base-bench/runner/clients/reth"
"github.com/base/base-bench/runner/clients/types"
"github.com/base/base-bench/runner/config"
"github.com/base/base-bench/runner/metrics"
- "github.com/ethereum/go-ethereum/ethclient"
)
-// RbuilderClient handles the lifecycle of a reth client.
+// RbuilderClient handles the rbuilder (flashblocks) setup.
+// Supports two modes:
+// 1. Simple mode (rbuilder only): For testing - just rbuilder standalone
+// 2. Dual-builder mode: Production architecture with:
+// - Fallback builder (geth/reth): produces final 2s canonical blocks
+// - Rbuilder (primary): produces flashblocks every 200ms
+// - Rollup-boost (optional): coordinates between the two builders
type RbuilderClient struct {
logger log.Logger
options *config.InternalClientOptions
+ ports portmanager.PortManager
- // client *ethclient.Client
- // clientURL string
- // authClient client.RPC
- // rbuilderProcess *exec.Cmd
+ // Simple mode: just rbuilder
+ rbuilderClient types.ExecutionClient
- // stdout io.WriteCloser
- // stderr io.WriteCloser
- // ports portmanager.PortManager
+ // Dual-builder mode: fallback + rbuilder + optional rollup-boost
+ fallbackClient types.ExecutionClient
+ rollupBoostProcess *exec.Cmd
+ rollupBoostPort uint64
- elClient types.ExecutionClient
+ // Client connections (either to rbuilder or rollup-boost)
+ client *ethclient.Client
+ clientURL string
+ authClient client.RPC
+
+ stdout io.WriteCloser
+ stderr io.WriteCloser
metricsCollector metrics.Collector
+
+ // Mode tracking
+ isDualBuilderMode bool
}
-// NewRbuilderClient creates a new client for reth.
+// NewRbuilderClient creates a new rbuilder client.
+// Mode is determined by options.RbuilderOptions.FallbackClient:
+// - Empty: Simple mode (rbuilder standalone)
+// - Set: Dual-builder mode (fallback + rbuilder + optional rollup-boost)
func NewRbuilderClient(logger log.Logger, options *config.InternalClientOptions, ports portmanager.PortManager) types.ExecutionClient {
- // only support reth for now
- rethClient := reth.NewRethClientWithBin(logger, options, ports, options.RbuilderBin)
-
return &RbuilderClient{
- logger: logger,
- options: options,
- elClient: rethClient,
+ logger: logger,
+ options: options,
+ ports: ports,
}
}
-// Run runs the reth client with the given runtime config.
+// Run starts the rbuilder setup.
func (r *RbuilderClient) Run(ctx context.Context, cfg *types.RuntimeConfig) error {
+ r.stdout = cfg.Stdout
+ r.stderr = cfg.Stderr
+
+ // Check if we should run in dual-builder mode
+ r.isDualBuilderMode = r.options.RbuilderOptions.FallbackClient != ""
+
+ if r.isDualBuilderMode {
+ r.logger.Info("Starting rbuilder in dual-builder mode",
+ "fallback", r.options.RbuilderOptions.FallbackClient,
+ "rollup_boost", r.options.RbuilderOptions.RollupBoostBin != "")
+ return r.runDualBuilderMode(ctx, cfg)
+ }
+
+ r.logger.Info("Starting rbuilder in simple mode (standalone)")
+ return r.runSimpleMode(ctx, cfg)
+}
+
+// runSimpleMode runs rbuilder as a standalone client (original implementation).
+func (r *RbuilderClient) runSimpleMode(ctx context.Context, cfg *types.RuntimeConfig) error {
+ // Create rbuilder client
+ r.rbuilderClient = reth.NewRethClientWithBin(r.logger, r.options, r.ports, r.options.RbuilderBin)
+
+ // Configure flashblocks via environment variables
cfg2 := *cfg
- cfg2.Args = append(cfg2.Args, "--flashblocks.enabled")
- err := r.elClient.Run(ctx, &cfg2)
- if err != nil {
- return err
+ cfg2.Env = map[string]string{
+ "ENABLE_FLASHBLOCKS": "true",
}
- r.metricsCollector = newMetricsCollector(r.logger, r.elClient.Client(), int(r.elClient.MetricsPort()))
+ // Set flashblock interval if specified
+ if cfg.Params.FlashblockInterval > 0 {
+ cfg2.Env["FLASHBLOCK_BLOCK_TIME"] = fmt.Sprintf("%d", cfg.Params.FlashblockInterval)
+ r.logger.Info("Configuring flashblock interval",
+ "interval_ms", cfg.Params.FlashblockInterval,
+ "flashblocks_per_block", int(cfg.Params.BlockTime.Milliseconds())/cfg.Params.FlashblockInterval)
+ } else {
+ // Default to 200ms (Base production default - 10 flashblocks per 2s block)
+ cfg2.Env["FLASHBLOCK_BLOCK_TIME"] = "200"
+ }
+
+ if err := r.rbuilderClient.Run(ctx, &cfg2); err != nil {
+ return errors.Wrap(err, "failed to start rbuilder")
+ }
+
+ // Set up client connections
+ r.client = r.rbuilderClient.Client()
+ r.clientURL = r.rbuilderClient.ClientURL()
+ r.authClient = r.rbuilderClient.AuthClient()
+
+ // Set up metrics
+ r.metricsCollector = newMetricsCollector(r.logger, r.rbuilderClient.Client(), int(r.rbuilderClient.MetricsPort()))
if r.metricsCollector == nil {
return errors.New("failed to create metrics collector")
}
+
+ return nil
+}
+
+// runDualBuilderMode runs the production dual-builder setup.
+func (r *RbuilderClient) runDualBuilderMode(ctx context.Context, cfg *types.RuntimeConfig) error {
+ // In dual-builder mode, we need separate data directories for each builder
+ // to avoid database locking conflicts
+
+ // Step 1: Start fallback builder (produces final 2s blocks)
+ fallbackType := r.options.RbuilderOptions.FallbackClient
+ r.logger.Info("Starting fallback builder", "type", fallbackType)
+
+ // Create separate log file for fallback builder to avoid file descriptor conflicts
+ fallbackLogPath := fmt.Sprintf("%s-fallback.log", r.options.TestDirPath)
+ fallbackLogFile, err := os.OpenFile(fallbackLogPath, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
+ if err != nil {
+ return errors.Wrap(err, "failed to create fallback log file")
+ }
+
+ // Create fallback builder with original data directory
+ fallbackOptions := *r.options
+ fallbackCfg := *cfg
+ fallbackCfg.Stdout = fallbackLogFile
+ fallbackCfg.Stderr = fallbackLogFile
+
+ if fallbackType == "geth" {
+ r.fallbackClient = geth.NewGethClient(r.logger.New("component", "fallback-geth"), &fallbackOptions, r.ports)
+ } else {
+ r.fallbackClient = reth.NewRethClient(r.logger.New("component", "fallback-reth"), &fallbackOptions, r.ports)
+ }
+
+ if err := r.fallbackClient.Run(ctx, &fallbackCfg); err != nil {
+ fallbackLogFile.Close()
+ return errors.Wrap(err, "failed to start fallback builder")
+ }
+
+ r.logger.Info("Fallback builder started", "type", fallbackType)
+
+ // Step 2: Start rbuilder (produces flashblocks every 200ms)
+ // Create separate data directory and log file for rbuilder
+ r.logger.Info("Starting rbuilder (primary flashblock builder)")
+
+ // Create a fresh data directory for rbuilder
+ // Rbuilder only needs to build blocks, not maintain full historical state
+ rbuilderDataDir := fmt.Sprintf("%s-rbuilder", r.options.DataDirPath)
+ if err := os.MkdirAll(rbuilderDataDir, 0755); err != nil {
+ r.fallbackClient.Stop()
+ fallbackLogFile.Close()
+ return errors.Wrap(err, "failed to create rbuilder data directory")
+ }
+
+ // Create separate log file for rbuilder
+ rbuilderLogPath := fmt.Sprintf("%s-rbuilder.log", r.options.TestDirPath)
+ rbuilderLogFile, err := os.OpenFile(rbuilderLogPath, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
+ if err != nil {
+ r.fallbackClient.Stop()
+ fallbackLogFile.Close()
+ return errors.Wrap(err, "failed to create rbuilder log file")
+ }
+
+ rbuilderOptions := *r.options
+ rbuilderOptions.DataDirPath = rbuilderDataDir
+
+ r.rbuilderClient = reth.NewRethClientWithBin(
+ r.logger.New("component", "rbuilder"),
+ &rbuilderOptions,
+ r.ports,
+ r.options.RbuilderBin,
+ )
+
+ rbuilderCfg := *cfg
+ rbuilderCfg.Stdout = rbuilderLogFile
+ rbuilderCfg.Stderr = rbuilderLogFile
+
+ // Disable p2p networking on rbuilder to avoid port conflicts with fallback builder
+ // Rbuilder is just a builder, not a full node, so it doesn't need p2p
+ rbuilderCfg.Args = append(rbuilderCfg.Args, "--disable-discovery")
+ rbuilderCfg.Args = append(rbuilderCfg.Args, "--port", "0") // Disable p2p listener
+
+ // Configure flashblocks via environment variables (not CLI flags)
+ // These env vars are used by op-rbuilder based on Base production config
+ rbuilderCfg.Env = map[string]string{
+ "ENABLE_FLASHBLOCKS": "true",
+ }
+
+ // Set flashblock interval if specified
+ if cfg.Params.FlashblockInterval > 0 {
+ rbuilderCfg.Env["FLASHBLOCK_BLOCK_TIME"] = fmt.Sprintf("%d", cfg.Params.FlashblockInterval)
+ r.logger.Info("Configuring flashblock interval",
+ "interval_ms", cfg.Params.FlashblockInterval,
+ "flashblocks_per_block", int(cfg.Params.BlockTime.Milliseconds())/cfg.Params.FlashblockInterval)
+ } else {
+ // Default to 200ms (Base production default - 10 flashblocks per 2s block)
+ rbuilderCfg.Env["FLASHBLOCK_BLOCK_TIME"] = "200"
+ }
+
+ if err := r.rbuilderClient.Run(ctx, &rbuilderCfg); err != nil {
+ r.fallbackClient.Stop()
+ fallbackLogFile.Close()
+ rbuilderLogFile.Close()
+ return errors.Wrap(err, "failed to start rbuilder")
+ }
+
+ r.logger.Info("Rbuilder started successfully")
+
+ // Step 3: Optionally start rollup-boost coordinator
+ if r.options.RbuilderOptions.RollupBoostBin != "" {
+ if err := r.startRollupBoost(ctx); err != nil {
+ r.rbuilderClient.Stop()
+ r.fallbackClient.Stop()
+ return errors.Wrap(err, "failed to start rollup-boost")
+ }
+ } else {
+ r.logger.Warn("No rollup-boost binary - connecting directly to rbuilder (not production setup)")
+ // Connect directly to rbuilder
+ r.client = r.rbuilderClient.Client()
+ r.clientURL = r.rbuilderClient.ClientURL()
+ r.authClient = r.rbuilderClient.AuthClient()
+ }
+
+ // Set up metrics collector for both builders
+ r.metricsCollector = newDualBuilderMetricsCollector(
+ r.logger,
+ r.fallbackClient.Client(),
+ r.rbuilderClient.Client(),
+ int(r.fallbackClient.MetricsPort()),
+ int(r.rbuilderClient.MetricsPort()),
+ )
+ r.logger.Info("Setup metrics collector for both builders")
+
+ return nil
+}
+
+// startRollupBoost starts the rollup-boost coordinator.
+func (r *RbuilderClient) startRollupBoost(ctx context.Context) error {
+ r.rollupBoostPort = r.ports.AcquirePort("rollup-boost", portmanager.ELPortPurpose)
+
+ // Read JWT secret
+ jwtSecretStr, err := os.ReadFile(r.options.JWTSecretPath)
+ if err != nil {
+ return errors.Wrap(err, "failed to read jwt secret")
+ }
+
+ jwtSecretBytes, err := hex.DecodeString(string(jwtSecretStr))
+ if err != nil {
+ return err
+ }
+
+ if len(jwtSecretBytes) != 32 {
+ return errors.New("jwt secret must be 32 bytes")
+ }
+
+ jwtSecret := [32]byte{}
+ copy(jwtSecret[:], jwtSecretBytes[:])
+
+ // Rollup-boost configuration
+ fallbackAuthURL := r.fallbackClient.AuthURL()
+ rbuilderAuthURL := r.rbuilderClient.AuthURL()
+
+ r.logger.Info("Starting rollup-boost",
+ "port", r.rollupBoostPort,
+ "fallback_auth", fallbackAuthURL,
+ "rbuilder_auth", rbuilderAuthURL)
+
+ // Create separate log file for rollup-boost
+ rollupBoostLogPath := fmt.Sprintf("%s-rollup-boost.log", r.options.TestDirPath)
+ rollupBoostLogFile, err := os.OpenFile(rollupBoostLogPath, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
+ if err != nil {
+ return errors.Wrap(err, "failed to create rollup-boost log file")
+ }
+
+ // Rollup-boost CLI arguments
+ args := []string{
+ "--l2-url", fallbackAuthURL,
+ "--l2-jwt-path", r.options.JWTSecretPath,
+ "--builder-url", rbuilderAuthURL,
+ "--builder-jwt-path", r.options.JWTSecretPath,
+ "--rpc-port", fmt.Sprintf("%d", r.rollupBoostPort),
+ "--execution-mode", "enabled",
+ "--metrics",
+ "--log-format", "json",
+ "--log-level", "debug",
+ // Health check configuration for local testing
+ // Prevents rollup-boost from shutting down due to old genesis timestamps
+ "--health-check-interval", "999999999", // Very long interval for testing
+ "--max-unsafe-interval", "999999999", // Allow very old blocks in testing
+ }
+
+ r.rollupBoostProcess = exec.CommandContext(ctx, r.options.RbuilderOptions.RollupBoostBin, args...)
+ r.rollupBoostProcess.Stdout = rollupBoostLogFile
+ r.rollupBoostProcess.Stderr = rollupBoostLogFile
+
+ if err := r.rollupBoostProcess.Start(); err != nil {
+ rollupBoostLogFile.Close()
+ return errors.Wrap(err, "failed to start rollup-boost process")
+ }
+
+ // Wait longer for rollup-boost to initialize and connect to both builders
+ r.logger.Info("Waiting for rollup-boost to initialize...")
+ time.Sleep(5 * time.Second)
+
+ // Hybrid approach:
+ // - Regular RPC calls (eth_*): Use fallback builder's RPC endpoint
+ // - Engine API calls (engine_*): Use rollup-boost auth endpoint
+ // Rollup-boost only proxies specific Engine API methods, not all RPC calls
+
+ // Connect regular client to fallback builder for eth_* calls
+ r.clientURL = r.fallbackClient.ClientURL()
+ r.logger.Info("Connecting regular RPC client to fallback builder", "url", r.clientURL)
+
+ rpcClient, err := rpc.DialOptions(ctx, r.clientURL, rpc.WithHTTPClient(&http.Client{
+ Timeout: 30 * time.Second,
+ }))
+ if err != nil {
+ return errors.Wrap(err, "failed to dial fallback builder rpc")
+ }
+
+ r.client = ethclient.NewClient(rpcClient)
+
+ // Connect auth client to rollup-boost for engine_* calls
+ rollupBoostAuthURL := fmt.Sprintf("http://127.0.0.1:%d", r.rollupBoostPort)
+ r.logger.Info("Connecting auth client to rollup-boost", "url", rollupBoostAuthURL)
+
+ authRPC, err := client.NewRPC(
+ ctx,
+ r.logger,
+ rollupBoostAuthURL,
+ client.WithGethRPCOptions(rpc.WithHTTPAuth(node.NewJWTAuth(jwtSecret))),
+ client.WithCallTimeout(30*time.Second),
+ )
+ if err != nil {
+ return errors.Wrap(err, "failed to create auth client for rollup-boost")
+ }
+
+ r.authClient = authRPC
+
+ // Wait for fallback builder to sync with initial state
+ // This is important because receipt queries go to the fallback builder
+ r.logger.Info("Waiting for fallback builder to sync initial state...")
+ time.Sleep(2 * time.Second)
+
+ r.logger.Info("Rollup-boost started successfully", "authURL", rollupBoostAuthURL, "rpcURL", r.clientURL)
return nil
}
@@ -66,38 +376,108 @@ func (r *RbuilderClient) MetricsCollector() metrics.Collector {
return r.metricsCollector
}
-// Stop stops the reth client.
+// Stop stops all rbuilder components.
func (r *RbuilderClient) Stop() {
- r.elClient.Stop()
+ r.logger.Info("Stopping rbuilder setup", "mode", map[bool]string{true: "dual-builder", false: "simple"}[r.isDualBuilderMode])
+
+ // Stop rollup-boost first (if running)
+ if r.rollupBoostProcess != nil && r.rollupBoostProcess.Process != nil {
+ r.logger.Info("Stopping rollup-boost")
+ if err := r.rollupBoostProcess.Process.Signal(os.Interrupt); err != nil {
+ r.logger.Error("failed to stop rollup-boost", "err", err)
+ }
+ r.rollupBoostProcess.Wait()
+ r.ports.ReleasePort(r.rollupBoostPort)
+ }
+
+ // Stop rbuilder
+ if r.rbuilderClient != nil {
+ r.logger.Info("Stopping rbuilder")
+ r.rbuilderClient.Stop()
+ }
+
+ // Stop fallback builder (if dual-builder mode)
+ if r.fallbackClient != nil {
+ r.logger.Info("Stopping fallback builder")
+ r.fallbackClient.Stop()
+ }
+
+ if r.stdout != nil {
+ _ = r.stdout.Close()
+ }
+ if r.stderr != nil {
+ _ = r.stderr.Close()
+ }
}
-// Client returns the ethclient client.
+// Client returns the ethclient (connects through rollup-boost, rbuilder, or fallback).
func (r *RbuilderClient) Client() *ethclient.Client {
- return r.elClient.Client()
+ return r.client
}
-// ClientURL returns the raw client URL for transaction generators.
+// ClientURL returns the URL for the client.
func (r *RbuilderClient) ClientURL() string {
- return r.elClient.ClientURL()
+ return r.clientURL
}
-// AuthClient returns the auth client used for CL communication.
+// AuthURL returns the auth RPC URL.
+func (r *RbuilderClient) AuthURL() string {
+ if r.rollupBoostPort > 0 {
+ // In rollup-boost mode, return rollup-boost's URL
+ return fmt.Sprintf("http://127.0.0.1:%d", r.rollupBoostPort)
+ }
+ // Otherwise return rbuilder's auth URL
+ if r.rbuilderClient != nil {
+ return r.rbuilderClient.AuthURL()
+ }
+ return ""
+}
+
+// AuthClient returns the auth client for engine API communication.
func (r *RbuilderClient) AuthClient() client.RPC {
- return r.elClient.AuthClient()
+ return r.authClient
}
+// MetricsPort returns the metrics port.
func (r *RbuilderClient) MetricsPort() int {
- return r.elClient.MetricsPort()
+ if r.rollupBoostPort > 0 {
+ return int(r.rollupBoostPort)
+ }
+ return r.rbuilderClient.MetricsPort()
}
-// GetVersion returns the version of the Rbuilder client
+// GetVersion returns version information.
func (r *RbuilderClient) GetVersion(ctx context.Context) (string, error) {
- // Rbuilder is based on reth, so delegate to the underlying reth client
- return r.elClient.GetVersion(ctx)
+ // If clients haven't been initialized yet (before Run is called), create a temporary client
+ if r.rbuilderClient == nil {
+ tempClient := reth.NewRethClientWithBin(r.logger, r.options, r.ports, r.options.RbuilderBin)
+ return tempClient.GetVersion(ctx)
+ }
+
+ if !r.isDualBuilderMode {
+ return r.rbuilderClient.GetVersion(ctx)
+ }
+
+ fallbackVersion, _ := r.fallbackClient.GetVersion(ctx)
+ rbuilderVersion, _ := r.rbuilderClient.GetVersion(ctx)
+ return fmt.Sprintf("flashblocks[fallback:%s,rbuilder:%s]", fallbackVersion, rbuilderVersion), nil
}
-// SetHead resets the blockchain to a specific block using debug.setHead
+// SetHead resets the blockchain head.
func (r *RbuilderClient) SetHead(ctx context.Context, blockNumber uint64) error {
- // Rbuilder is based on reth, so delegate to the underlying reth client
- return r.elClient.SetHead(ctx, blockNumber)
+ if !r.isDualBuilderMode {
+ return r.rbuilderClient.SetHead(ctx, blockNumber)
+ }
+
+ // Reset head on fallback builder (produces final blocks)
+ if err := r.fallbackClient.SetHead(ctx, blockNumber); err != nil {
+ return errors.Wrap(err, "failed to set head on fallback builder")
+ }
+
+ // Also reset on rbuilder (best effort)
+ if err := r.rbuilderClient.SetHead(ctx, blockNumber); err != nil {
+ r.logger.Warn("Failed to set head on rbuilder", "err", err)
+ }
+
+ return nil
}
diff --git a/runner/clients/rbuilder/metrics.go b/runner/clients/rbuilder/metrics.go
index 0bbc6578..a9df7214 100644
--- a/runner/clients/rbuilder/metrics.go
+++ b/runner/clients/rbuilder/metrics.go
@@ -90,3 +90,101 @@ func (r *metricsCollector) Collect(ctx context.Context, m *metrics.BlockMetrics)
r.metrics = append(r.metrics, *m.Copy())
return nil
}
+
+// dualBuilderMetricsCollector collects metrics from both builders in dual-builder mode.
+type dualBuilderMetricsCollector struct {
+ log log.Logger
+ fallbackClient *ethclient.Client
+ rbuilderClient *ethclient.Client
+ fallbackMetricsPort int
+ rbuilderMetricsPort int
+ metrics []metrics.BlockMetrics
+}
+
+func newDualBuilderMetricsCollector(log log.Logger, fallbackClient *ethclient.Client, rbuilderClient *ethclient.Client, fallbackPort int, rbuilderPort int) metrics.Collector {
+ return &dualBuilderMetricsCollector{
+ log: log,
+ fallbackClient: fallbackClient,
+ rbuilderClient: rbuilderClient,
+ fallbackMetricsPort: fallbackPort,
+ rbuilderMetricsPort: rbuilderPort,
+ metrics: make([]metrics.BlockMetrics, 0),
+ }
+}
+
+func (d *dualBuilderMetricsCollector) GetMetricsEndpoint() string {
+ return fmt.Sprintf("fallback:http://localhost:%d/metrics,rbuilder:http://localhost:%d/metrics", d.fallbackMetricsPort, d.rbuilderMetricsPort)
+}
+
+func (d *dualBuilderMetricsCollector) GetMetrics() []metrics.BlockMetrics {
+ return d.metrics
+}
+
+func (d *dualBuilderMetricsCollector) GetMetricTypes() map[string]bool {
+ return map[string]bool{
+ // Rbuilder metrics
+ "reth_op_rbuilder_block_built_success": true,
+ "reth_op_rbuilder_flashblock_count": true,
+ "reth_op_rbuilder_total_block_built_duration": true,
+ "reth_op_rbuilder_flashblock_build_duration": true,
+ "reth_op_rbuilder_state_root_calculation_duration": true,
+ "reth_op_rbuilder_sequencer_tx_duration": true,
+ "reth_op_rbuilder_payload_tx_simulation_duration": true,
+ // Fallback builder metrics
+ "reth_sync_execution_execution_duration": true,
+ "reth_sync_block_validation_state_root_duration": true,
+ }
+}
+
+func (d *dualBuilderMetricsCollector) Collect(ctx context.Context, m *metrics.BlockMetrics) error {
+ // Collect metrics from rbuilder (primary builder)
+ if err := d.collectFromBuilder(d.rbuilderMetricsPort, m, "rbuilder"); err != nil {
+ d.log.Warn("Failed to collect rbuilder metrics", "err", err)
+ }
+
+ // Collect metrics from fallback builder
+ if err := d.collectFromBuilder(d.fallbackMetricsPort, m, "fallback"); err != nil {
+ d.log.Warn("Failed to collect fallback metrics", "err", err)
+ }
+
+ d.metrics = append(d.metrics, *m.Copy())
+ return nil
+}
+
+func (d *dualBuilderMetricsCollector) collectFromBuilder(port int, m *metrics.BlockMetrics, builderName string) error {
+ endpoint := fmt.Sprintf("http://localhost:%d/metrics", port)
+ resp, err := http.Get(endpoint)
+ if err != nil {
+ return fmt.Errorf("failed to get %s metrics: %w", builderName, err)
+ }
+ defer resp.Body.Close()
+
+ body, err := io.ReadAll(resp.Body)
+ if err != nil {
+ return fmt.Errorf("failed to read %s metrics response: %w", builderName, err)
+ }
+
+ txtParser := expfmt.TextParser{}
+ metrics, err := txtParser.TextToMetricFamilies(bytes.NewReader(body))
+ if err != nil {
+ return fmt.Errorf("failed to parse %s metrics: %w", builderName, err)
+ }
+
+ metricTypes := d.GetMetricTypes()
+ for _, metric := range metrics {
+ name := metric.GetName()
+ if metricTypes[name] {
+ metricVal := metric.GetMetric()
+ if len(metricVal) != 1 {
+ d.log.Warn("expected 1 metric, got %d for metric %s from %s", len(metricVal), name, builderName)
+ }
+ // Prefix metric name with builder type for clarity
+ prefixedName := fmt.Sprintf("%s_%s", builderName, name)
+ if err := m.UpdatePrometheusMetric(prefixedName, metricVal[0]); err != nil {
+ d.log.Warn("failed to add metric %s from %s: %s", name, builderName, err)
+ }
+ }
+ }
+
+ return nil
+}
diff --git a/runner/clients/rbuilder/options/options.go b/runner/clients/rbuilder/options/options.go
index e58cc7a7..24273b61 100644
--- a/runner/clients/rbuilder/options/options.go
+++ b/runner/clients/rbuilder/options/options.go
@@ -2,10 +2,22 @@ package rbuilderoptions
import "github.com/base/base-bench/runner/clients/reth/options"
-// RethOptions contains the options for the reth client determined by the test.
+// RbuilderOptions contains the options for the rbuilder client.
+// Supports two modes:
+// 1. Simple mode: Just rbuilder standalone (for testing)
+// 2. Dual-builder mode: Fallback builder + rbuilder + rollup-boost (production architecture)
type RbuilderOptions struct {
options.RethOptions
- // RbuilderBin is the path to the rbuilder binary.
+ // RbuilderBin is the path to the rbuilder binary (primary flashblock builder).
RbuilderBin string
+
+ // FallbackClient specifies which client to use as fallback builder.
+ // If empty, runs in simple mode (rbuilder only).
+ // Valid values: "geth", "reth"
+ FallbackClient string
+
+ // RollupBoostBin is the path to the rollup-boost coordinator binary.
+ // If empty, no rollup-boost coordination is used.
+ RollupBoostBin string
}
diff --git a/runner/clients/reth/client.go b/runner/clients/reth/client.go
index 76bf7052..e05ac27d 100644
--- a/runner/clients/reth/client.go
+++ b/runner/clients/reth/client.go
@@ -85,12 +85,12 @@ func (r *RethClient) Run(ctx context.Context, cfg *types.RuntimeConfig) error {
// todo: make this dynamic eventually
args = append(args, "--http")
args = append(args, "--http.port", fmt.Sprintf("%d", r.rpcPort))
- args = append(args, "--http.api", "eth,net,web3,miner")
+ args = append(args, "--http.api", "eth,net,web3,miner,debug")
args = append(args, "--authrpc.port", fmt.Sprintf("%d", r.authRPCPort))
args = append(args, "--authrpc.jwtsecret", r.options.JWTSecretPath)
args = append(args, "--metrics", fmt.Sprintf("%d", r.metricsPort))
args = append(args, "--engine.state-provider-metrics")
- args = append(args, "-vvv")
+ args = append(args, "-vvvv")
args = append(args, cfg.Args...)
@@ -146,6 +146,16 @@ func (r *RethClient) Run(ctx context.Context, cfg *types.RuntimeConfig) error {
r.process = exec.Command(r.binPath, args...)
r.process.Stdout = r.stdout
r.process.Stderr = r.stderr
+
+ // Set environment variables if provided
+ if len(cfg.Env) > 0 {
+ r.process.Env = os.Environ() // Start with current environment
+ for k, v := range cfg.Env {
+ r.process.Env = append(r.process.Env, fmt.Sprintf("%s=%s", k, v))
+ r.logger.Debug("Setting environment variable", "key", k, "value", v)
+ }
+ }
+
err = r.process.Start()
if err != nil {
return err
@@ -217,6 +227,11 @@ func (r *RethClient) ClientURL() string {
return r.clientURL
}
+// AuthURL returns the auth RPC URL.
+func (r *RethClient) AuthURL() string {
+ return fmt.Sprintf("http://127.0.0.1:%d", r.authRPCPort)
+}
+
// AuthClient returns the auth client used for CL communication.
func (r *RethClient) AuthClient() client.RPC {
return r.authClient
@@ -255,22 +270,22 @@ func (r *RethClient) GetVersion(ctx context.Context) (string, error) {
return "unknown", nil
}
-// SetHead resets the blockchain to a specific block using debug.setHead
+// SetHead resets the blockchain to a specific block
+// For reth, we need to use a different approach since debug_setHead is not supported
+// Reth only supports: debug_getRawHeader, debug_getRawBlock, debug_getRawTransaction,
+// debug_getRawReceipts, and debug_getBadBlocks
func (r *RethClient) SetHead(ctx context.Context, blockNumber uint64) error {
if r.client == nil {
return errors.New("client not initialized")
}
- // Convert block number to hex string
- blockHex := fmt.Sprintf("0x%x", blockNumber)
-
- // Call debug.setHead via RPC
- var result interface{}
- err := r.client.Client().CallContext(ctx, &result, "debug_setHead", blockHex)
- if err != nil {
- return errors.Wrap(err, "failed to call debug_setHead")
- }
+ // Reth does not support debug_setHead, so we skip the rollback
+ // The snapshot should already be at the correct block state
+ r.logger.Warn("Reth does not support debug_setHead - head rollback will be skipped",
+ "blockNumber", blockNumber,
+ "note", "The snapshot should already be at the correct block state")
- r.logger.Info("Successfully reset blockchain head", "blockNumber", blockNumber, "blockHex", blockHex)
+ // Return success since the snapshot copying should have already
+ // put us at the right state
return nil
}
diff --git a/runner/clients/types/types.go b/runner/clients/types/types.go
index 1ca1c3fe..f01461ee 100644
--- a/runner/clients/types/types.go
+++ b/runner/clients/types/types.go
@@ -5,6 +5,7 @@ import (
"io"
"github.com/base/base-bench/runner/metrics"
+ benchtypes "github.com/base/base-bench/runner/network/types"
"github.com/ethereum-optimism/optimism/op-service/client"
"github.com/ethereum/go-ethereum/ethclient"
)
@@ -13,6 +14,8 @@ type RuntimeConfig struct {
Stdout io.WriteCloser
Stderr io.WriteCloser
Args []string
+ Env map[string]string // Environment variables to set for the client process
+ Params benchtypes.RunParams // Benchmark parameters for client-specific configuration
}
// ExecutionClient is an abstraction over the different clients that can be used to run the chain like
@@ -21,8 +24,9 @@ type ExecutionClient interface {
Run(ctx context.Context, config *RuntimeConfig) error
Stop()
Client() *ethclient.Client
- ClientURL() string // needed for external transaction payload workers
+ ClientURL() string // HTTP RPC URL for external transaction payload workers
AuthClient() client.RPC
+ AuthURL() string // Auth RPC URL (for rollup-boost and other auth connections)
MetricsPort() int
MetricsCollector() metrics.Collector
GetVersion(ctx context.Context) (string, error)
diff --git a/runner/config/client.go b/runner/config/client.go
index cab0df33..0e3a06c8 100644
--- a/runner/config/client.go
+++ b/runner/config/client.go
@@ -56,7 +56,9 @@ func ReadClientOptions(ctx *cli.Context) ClientOptions {
GethBin: ctx.String(flags.GethBin),
},
RbuilderOptions: rbuilderoptions.RbuilderOptions{
- RbuilderBin: ctx.String(flags.RbuilderBin),
+ RbuilderBin: ctx.String(flags.RbuilderBin),
+ FallbackClient: ctx.String(flags.FlashblocksFallback),
+ RollupBoostBin: ctx.String(flags.RollupBoostBin),
},
}
diff --git a/runner/flags/flags.go b/runner/flags/flags.go
index 139449fa..d593ce39 100644
--- a/runner/flags/flags.go
+++ b/runner/flags/flags.go
@@ -7,9 +7,11 @@ import (
)
const (
- RethBin = "reth-bin"
- RbuilderBin = "rbuilder-bin"
- GethBin = "geth-bin"
+ RethBin = "reth-bin"
+ RbuilderBin = "rbuilder-bin"
+ GethBin = "geth-bin"
+ RollupBoostBin = "rollup-boost-bin"
+ FlashblocksFallback = "flashblocks-fallback"
)
func CLIFlags(envPrefix string) []cli.Flag {
@@ -32,5 +34,17 @@ func CLIFlags(envPrefix string) []cli.Flag {
Value: "rbuilder",
EnvVars: opservice.PrefixEnvVar(envPrefix, "RBUILDER_BIN"),
},
+ &cli.StringFlag{
+ Name: RollupBoostBin,
+ Usage: "Rollup-boost binary path for flashblocks dual-builder mode",
+ Value: "",
+ EnvVars: opservice.PrefixEnvVar(envPrefix, "ROLLUP_BOOST_BIN"),
+ },
+ &cli.StringFlag{
+ Name: FlashblocksFallback,
+ Usage: "Fallback client for flashblocks dual-builder mode (geth or reth)",
+ Value: "reth",
+ EnvVars: opservice.PrefixEnvVar(envPrefix, "FLASHBLOCKS_FALLBACK"),
+ },
}
}
diff --git a/runner/network/consensus/client.go b/runner/network/consensus/client.go
index aa538135..551d461b 100644
--- a/runner/network/consensus/client.go
+++ b/runner/network/consensus/client.go
@@ -59,10 +59,11 @@ func (f *BaseConsensusClient) updateForkChoice(ctx context.Context, payloadAttrs
ctx, cancel := context.WithTimeout(ctx, 10*time.Second)
defer cancel()
var resp engine.ForkChoiceResponse
+ f.log.Debug("Calling engine_forkchoiceUpdatedV3", "headBlockHash", f.headBlockHash.Hex())
err := f.authClient.CallContext(ctx, &resp, "engine_forkchoiceUpdatedV3", fcu, payloadAttrs)
if err != nil {
- return nil, errors.Wrap(err, "failed to propose block")
+ return nil, errors.Wrap(err, "engine_forkchoiceUpdatedV3 failed")
}
return resp.PayloadID, nil
@@ -73,9 +74,10 @@ func (b *BaseConsensusClient) getBuiltPayload(ctx context.Context, payloadID eng
ctx, cancel := context.WithTimeout(ctx, 240*time.Second)
defer cancel()
var payloadResp engine.ExecutionPayloadEnvelope
+ b.log.Debug("Calling engine_getPayloadV4", "payloadID", payloadID)
err := b.authClient.CallContext(ctx, &payloadResp, "engine_getPayloadV4", payloadID)
if err != nil {
- return nil, errors.Wrap(err, "failed to get payload")
+ return nil, errors.Wrap(err, "engine_getPayloadV4 failed")
}
b.log.Debug("Built payload", "parent_hash", payloadResp.ExecutionPayload.ParentHash, "stateRoot", payloadResp.ExecutionPayload.StateRoot)
@@ -89,10 +91,11 @@ func (b *BaseConsensusClient) newPayload(ctx context.Context, params *engine.Exe
ctx, cancel := context.WithTimeout(ctx, 30*time.Second)
defer cancel()
var resp engine.ForkChoiceResponse
+ b.log.Debug("Calling engine_newPayloadV4", "blockNumber", params.Number, "blockHash", params.BlockHash.Hex())
err := b.authClient.CallContext(ctx, &resp, "engine_newPayloadV4", params, []common.Hash{}, beaconRoot, []common.Hash{})
if err != nil {
- return errors.Wrap(err, "newPayload call failed")
+ return errors.Wrap(err, "engine_newPayloadV4 failed")
}
return nil
diff --git a/runner/network/consensus/sequencer_consensus.go b/runner/network/consensus/sequencer_consensus.go
index 4a17c44a..f1cc3673 100644
--- a/runner/network/consensus/sequencer_consensus.go
+++ b/runner/network/consensus/sequencer_consensus.go
@@ -291,5 +291,16 @@ func (f *SequencerConsensusClient) Propose(ctx context.Context, blockMetrics *me
return nil, err
}
+ // Call forkchoiceUpdated without attributes to finalize the block as canonical
+ // This is critical for rollup-boost mode to ensure the fallback builder updates its canonical chain
+ // Without this, receipts won't be queryable on the fallback builder
+ startTime = time.Now()
+ _, err = f.updateForkChoice(ctx, nil)
+ if err != nil {
+ return nil, err
+ }
+ duration = time.Since(startTime)
+ f.log.Debug("Finalized block as canonical", "blockNumber", payload.Number, "duration", duration)
+
return payload, nil
}
diff --git a/runner/network/consensus/validator_consensus.go b/runner/network/consensus/validator_consensus.go
index e1e6ade8..0f9dd1e0 100644
--- a/runner/network/consensus/validator_consensus.go
+++ b/runner/network/consensus/validator_consensus.go
@@ -60,6 +60,9 @@ func (f *SyncingConsensusClient) propose(ctx context.Context, payload *engine.Ex
duration = time.Since(startTime)
blockMetrics.AddExecutionMetric(types.UpdateForkChoiceLatencyMetric, duration)
+ // Add small delay to ensure state is fully committed before next operation
+ time.Sleep(100 * time.Millisecond)
+
return nil
}
diff --git a/runner/network/network_benchmark.go b/runner/network/network_benchmark.go
index c4005d81..aea4af5b 100644
--- a/runner/network/network_benchmark.go
+++ b/runner/network/network_benchmark.go
@@ -5,6 +5,7 @@ import (
"fmt"
"os"
"path"
+ "strings"
"github.com/base/base-bench/runner/benchmark"
"github.com/base/base-bench/runner/benchmark/portmanager"
@@ -188,6 +189,49 @@ func (nb *NetworkBenchmark) GetResult() (*benchmark.RunResult, error) {
}, nil
}
+// parseClientArgs parses a space-separated string of CLI arguments into a slice of strings.
+// It handles quoted arguments (single and double quotes) to allow spaces within arguments.
+// Example: "--flag value --another 'spaced value'" -> ["--flag", "value", "--another", "spaced value"]
+func parseClientArgs(argsStr string) []string {
+ if argsStr == "" {
+ return nil
+ }
+
+ var args []string
+ var currentArg strings.Builder
+ inQuote := false
+ quoteChar := rune(0)
+
+ for i, char := range argsStr {
+ switch {
+ case (char == '"' || char == '\'') && !inQuote:
+ // Start of quoted section
+ inQuote = true
+ quoteChar = char
+ case char == quoteChar && inQuote:
+ // End of quoted section
+ inQuote = false
+ quoteChar = 0
+ case char == ' ' && !inQuote:
+ // Space outside quotes - delimiter
+ if currentArg.Len() > 0 {
+ args = append(args, currentArg.String())
+ currentArg.Reset()
+ }
+ default:
+ // Regular character
+ currentArg.WriteRune(char)
+ }
+
+ // Handle end of string
+ if i == len(argsStr)-1 && currentArg.Len() > 0 {
+ args = append(args, currentArg.String())
+ }
+ }
+
+ return args
+}
+
func setupNode(ctx context.Context, l log.Logger, params benchtypes.RunParams, options *config.InternalClientOptions, portManager portmanager.PortManager) (types.ExecutionClient, string, error) {
if options == nil {
return nil, "", errors.New("client options cannot be nil")
@@ -225,9 +269,14 @@ func setupNode(ctx context.Context, l log.Logger, params benchtypes.RunParams, o
stdoutLogger := logger.NewMultiWriterCloser(logger.NewLogWriter(clientLogger), fileWriter)
stderrLogger := logger.NewMultiWriterCloser(logger.NewLogWriter(clientLogger), fileWriter)
+ // Parse client args from params
+ clientArgs := parseClientArgs(params.ClientArgs)
+
runtimeConfig := &types.RuntimeConfig{
Stdout: stdoutLogger,
Stderr: stderrLogger,
+ Args: clientArgs,
+ Params: params, // Pass params for rbuilder to access flashblock config
}
if err := client.Run(ctx, runtimeConfig); err != nil {
@@ -256,7 +305,7 @@ func (nb *NetworkBenchmark) performHeadRollbackIfNeeded(ctx context.Context, cli
// At this point, the rollback block should be set (either by user or auto-detected)
if nb.snapshotConfig.RollbackBlock == nil {
- return fmt.Errorf("rollback_block not set for head_rollback method - this should have been auto-detected")
+ return fmt.Errorf("rollback_block not set for head_rollback method - head block detection failed during setup phase. Check logs for head detection errors or manually specify rollback_block in your snapshot configuration")
}
blockNumber := *nb.snapshotConfig.RollbackBlock
diff --git a/runner/network/sequencer_benchmark.go b/runner/network/sequencer_benchmark.go
index 67b42aa4..7c82af60 100644
--- a/runner/network/sequencer_benchmark.go
+++ b/runner/network/sequencer_benchmark.go
@@ -90,9 +90,11 @@ func (nb *sequencerBenchmark) fundTestAccount(ctx context.Context, mempool mempo
mempool.AddTransactions([]*ethTypes.Transaction{depositTx})
// wait for the transaction to be mined
+ nb.log.Info("Waiting for deposit transaction receipt", "txHash", txHash.Hex())
receipt, err := retry.Do(ctx, 60, retry.Fixed(1*time.Second), func() (*ethTypes.Receipt, error) {
receipt, err := client.Client().TransactionReceipt(ctx, txHash)
if err != nil {
+ nb.log.Debug("Deposit receipt not found yet, retrying...", "txHash", txHash.Hex(), "err", err)
return nil, err
}
return receipt, nil
@@ -100,7 +102,7 @@ func (nb *sequencerBenchmark) fundTestAccount(ctx context.Context, mempool mempo
if receipt == nil {
return fmt.Errorf("failed to get transaction receipt: %w", err)
}
- nb.log.Info("Included deposit tx in block", "block", receipt.BlockNumber)
+ nb.log.Info("Included deposit tx in block", "block", receipt.BlockNumber, "txHash", txHash.Hex())
if err != nil {
return fmt.Errorf("failed to get transaction receipt: %w", err)
}
diff --git a/runner/network/types/types.go b/runner/network/types/types.go
index c981d378..1b0f1192 100644
--- a/runner/network/types/types.go
+++ b/runner/network/types/types.go
@@ -52,16 +52,18 @@ func (c *TestConfig) BatcherAddr() common.Address {
// Params is the parameters for a single benchmark run.
type RunParams struct {
- NodeType string
- GasLimit uint64
- PayloadID string
- BenchmarkRunID string
- Name string
- Description string
- BlockTime time.Duration
- Env map[string]string
- NumBlocks int
- Tags map[string]string
+ NodeType string
+ GasLimit uint64
+ PayloadID string
+ BenchmarkRunID string
+ Name string
+ Description string
+ BlockTime time.Duration
+ Env map[string]string
+ NumBlocks int
+ Tags map[string]string
+ ClientArgs string // CLI arguments to pass to the execution client
+ FlashblockInterval int // Flashblock interval in milliseconds (e.g., 200 for 200ms flashblocks)
}
func (p RunParams) ToConfig() map[string]interface{} {
@@ -73,6 +75,14 @@ func (p RunParams) ToConfig() map[string]interface{} {
"BlockTimeMilliseconds": p.BlockTime.Milliseconds(),
}
+ if p.ClientArgs != "" {
+ params["ClientArgs"] = p.ClientArgs
+ }
+
+ if p.FlashblockInterval > 0 {
+ params["FlashblockInterval"] = p.FlashblockInterval
+ }
+
for k, v := range p.Tags {
params[k] = v
}
diff --git a/runner/payload/contract/contract_worker.go b/runner/payload/contract/contract_worker.go
index 61170244..b9bcd3a9 100644
--- a/runner/payload/contract/contract_worker.go
+++ b/runner/payload/contract/contract_worker.go
@@ -179,11 +179,14 @@ func (t *contractPayloadWorker) Setup(ctx context.Context) error {
}
func (t *contractPayloadWorker) waitForReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) {
+ t.log.Info("Waiting for transaction receipt", "txHash", txHash.Hex())
return retry.Do(ctx, 60, retry.Fixed(1*time.Second), func() (*types.Receipt, error) {
receipt, err := t.client.TransactionReceipt(ctx, txHash)
if err != nil {
+ t.log.Debug("Receipt not found yet, retrying...", "txHash", txHash.Hex(), "err", err)
return nil, err
}
+ t.log.Info("Receipt found", "txHash", txHash.Hex(), "blockNumber", receipt.BlockNumber)
return receipt, nil
})
}
diff --git a/runner/payload/simulator/abi/Simulator.go b/runner/payload/simulator/abi/Simulator.go
index 3c1eaa72..315e3a74 100644
--- a/runner/payload/simulator/abi/Simulator.go
+++ b/runner/payload/simulator/abi/Simulator.go
@@ -50,7 +50,7 @@ type SimulatorConfig struct {
// SimulatorMetaData contains all meta data concerning the Simulator contract.
var SimulatorMetaData = &bind.MetaData{
ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"offset\",\"type\":\"uint160\",\"internalType\":\"uint160\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"hashLongString\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"initialize_address_chunk\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize_storage_chunk\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"num_accounts_needed\",\"inputs\":[{\"name\":\"config\",\"type\":\"tuple\",\"internalType\":\"structSimulatorConfig\",\"components\":[{\"name\":\"load_accounts\",\"type\":\"uint160\",\"internalType\":\"uint160\"},{\"name\":\"update_accounts\",\"type\":\"uint160\",\"internalType\":\"uint160\"},{\"name\":\"create_accounts\",\"type\":\"uint160\",\"internalType\":\"uint160\"},{\"name\":\"load_storage\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"update_storage\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"delete_storage\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"create_storage\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"precompiles\",\"type\":\"tuple[]\",\"internalType\":\"structPrecompileConfig[]\",\"components\":[{\"name\":\"precompile_address\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"num_calls\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint160\",\"internalType\":\"uint160\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"num_address_initialized\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint160\",\"internalType\":\"uint160\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"num_storage_deleted\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"num_storage_initialized\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"num_storage_slots_needed\",\"inputs\":[{\"name\":\"config\",\"type\":\"tuple\",\"internalType\":\"structSimulatorConfig\",\"components\":[{\"name\":\"load_accounts\",\"type\":\"uint160\",\"internalType\":\"uint160\"},{\"name\":\"update_accounts\",\"type\":\"uint160\",\"internalType\":\"uint160\"},{\"name\":\"create_accounts\",\"type\":\"uint160\",\"internalType\":\"uint160\"},{\"name\":\"load_storage\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"update_storage\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"delete_storage\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"create_storage\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"precompiles\",\"type\":\"tuple[]\",\"internalType\":\"structPrecompileConfig[]\",\"components\":[{\"name\":\"precompile_address\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"num_calls\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"run\",\"inputs\":[{\"name\":\"config\",\"type\":\"tuple\",\"internalType\":\"structSimulatorConfig\",\"components\":[{\"name\":\"load_accounts\",\"type\":\"uint160\",\"internalType\":\"uint160\"},{\"name\":\"update_accounts\",\"type\":\"uint160\",\"internalType\":\"uint160\"},{\"name\":\"create_accounts\",\"type\":\"uint160\",\"internalType\":\"uint160\"},{\"name\":\"load_storage\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"update_storage\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"delete_storage\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"create_storage\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"precompiles\",\"type\":\"tuple[]\",\"internalType\":\"structPrecompileConfig[]\",\"components\":[{\"name\":\"precompile_address\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"num_calls\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"}]",
- Bin: "0x60806040527002000000000000000000000000000000006001556202000060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507002000000000000000000000000000000006003557002000000000000000000000000000000006004556202000060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516154fc3803806154fc83398181016040528101906100ea9190610219565b8060055f8282829054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661011a9190610271565b92506101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060025f8282829054906101000a900473ffffffffffffffffffffffffffffffffffffffff166101889190610271565b92506101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506102b8565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b6101f8816101d0565b8114610202575f80fd5b50565b5f81519050610213816101ef565b92915050565b5f6020828403121561022e5761022d6101cc565b5b5f61023b84828501610205565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61027b826101d0565b9150610286836101d0565b9250828201905073ffffffffffffffffffffffffffffffffffffffff8111156102b2576102b1610244565b5b92915050565b615237806102c55f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c8063768c39af11610064578063768c39af146100e35780637b58286614610113578063cb805ac114610131578063e2b5a25c14610161578063ee2bb32b1461017f57610091565b80633594dea61461009557806339aa1ab91461009f578063458240e8146100bd5780634e83a9d5146100d9575b5f80fd5b61009d61019d565b005b6100a76102e6565b6040516100b491906136a3565b60405180910390f35b6100d760048036038101906100d291906136f0565b6102ec565b005b6100e16109e7565b005b6100fd60048036038101906100f891906136f0565b610a4c565b60405161010a91906136a3565b60405180910390f35b61011b610a75565b60405161012891906137a7565b60405180910390f35b61014b600480360381019061014691906136f0565b610a9f565b60405161015891906137f5565b60405180910390f35b610169610b02565b60405161017691906137f5565b60405180910390f35b610187610b27565b60405161019491906136a3565b60405180910390f35b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f606460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166101f1919061383b565b90505f808390505b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161015610271578073ffffffffffffffffffffffffffffffffffffffff166108fc600190811502906040515f60405180830381858888f19350505050915080806001019150506101f9565b50606460025f8282829054906101000a900473ffffffffffffffffffffffffffffffffffffffff166102a3919061383b565b92506101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60035481565b600154816080013582606001356004546103069190613882565b6103109190613882565b1115610351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034890613925565b60405180910390fd5b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681602001602081019061039c919061396d565b825f0160208101906103ae919061396d565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166103da919061383b565b6103e4919061383b565b73ffffffffffffffffffffffffffffffffffffffff16111561043b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043290613a08565b60405180910390fd5b5f8060045490505b82606001356004546104559190613882565b81101561046f578054820191508080600101915050610443565b50816060013560045f8282546104859190613882565b925050819055505f60045490505b82608001356004546104a59190613882565b8110156104bc578081558080600101915050610493565b50816080013560045f8282546104d29190613882565b925050819055505f60015490505b8260c001356001546104f29190613882565b8110156105095780815580806001019150506104e0565b508160c0013560015f82825461051f9190613882565b925050819055505f60035490505b8260a0013560035461053f9190613882565b811015610556575f8155808060010191505061052d565b508160a0013560035f82825461056c9190613882565b925050819055505f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b8260400160208101906105ac919061396d565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166105d8919061383b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16101561064e578073ffffffffffffffffffffffffffffffffffffffff166108fc600190811502906040515f60405180830381858888f19350505050508080600101915050610599565b50816040016020810190610662919061396d565b60025f8282829054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610691919061383b565b92506101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b825f016020810190610707919061396d565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610733919061383b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1610156107735780806001019150506106f5565b50815f016020810190610786919061396d565b60055f8282829054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107b5919061383b565b92506101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b82602001602081019061082c919061396d565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610858919061383b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1610156108ce578073ffffffffffffffffffffffffffffffffffffffff166108fc600190811502906040515f60405180830381858888f19350505050508080600101915050610819565b508160200160208101906108e2919061396d565b60055f8282829054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610911919061383b565b92506101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5b828060e001906109619190613a32565b90508110156109e2576109d5838060e0019061097d9190613a32565b8381811061098e5761098d613a94565b5b9050604002015f0160208101906109a59190613afc565b848060e001906109b59190613a32565b848181106109c6576109c5613a94565b5b90506040020160200135610b2d565b8080600101915050610951565b505050565b5f60015490505f60646001546109fd9190613882565b90505f8290505b81811015610a2e57805f808381526020019081526020015f20819055508080600101915050610a04565b50606460015f828254610a419190613882565b925050819055505050565b5f81608001358260600135600454610a649190613882565b610a6e9190613882565b9050919050565b60605f604051602001610a8790613fb9565b60405160208183030381529060405290508091505090565b5f816020016020810190610ab3919061396d565b825f016020810190610ac5919061396d565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610af1919061383b565b610afb919061383b565b9050919050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b6f57610b6a81610fe7565b610fe3565b600273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bb357610bae8160016110aa565b610fe2565b600373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bf757610bf28160016111b7565b610fe1565b600473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c3b57610c3681600161128c565b610fe0565b600573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c7f57610c7a8160016113c7565b610fdf565b600673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cc157610cbc816115d8565b610fde565b600773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d0357610cfe81611736565b610fdd565b600873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d4557610d408161188c565b610fdc565b600973ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d8757610d8281611bb2565b610fdb565b61010073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dca57610dc581611f61565b610fda565b600b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e0c57610e07816120f0565b610fd9565b600c73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e4e57610e49816123be565b610fd8565b600d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e9057610e8b816125cb565b610fd7565b600e73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ed257610ecd81612a59565b610fd6565b600f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f1457610f0f81612f12565b610fd5565b601073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f5657610f51816132aa565b610fd4565b601173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f9857610f938161341e565b610fd3565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fca906140fe565b60405180910390fd5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5050565b5f601c90505f7f9242685bf161793cc25603c231bc2f568eb630ea16aa137d2664ac80388256085f1b90505f7f4f8ae3bd7535248d0bd448298cc2e2071e56992d0774dc340c368ae950852ada5f1b90505f5b848110156110a3575f815f1b90506001818686866040515f815260200160405260405161106a949392919061414f565b6020604051602081039080840390855afa15801561108a573d5f803e3d5ffd5b505050602060405103515050808060010191505061103a565b5050505050565b5f5b828110156111b25781156111365760026110c4610a75565b826040516020016110d69291906141e2565b6040516020818303038152906040526040516110f2919061424d565b602060405180830381855afa15801561110d573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190611130919061428d565b506111a5565b60028160405160200161114991906142b8565b604051602081830303815290604052604051611165919061424d565b602060405180830381855afa158015611180573d5f803e3d5ffd5b5050506040513d601f19601f820116820180604052508101906111a3919061428d565b505b80806001019150506110ac565b505050565b5f5b828110156112875781156112275760036111d1610a75565b826040516020016111e39291906141e2565b6040516020818303038152906040526040516111ff919061424d565b602060405180830381855afa15801561121a573d5f803e3d5ffd5b505050604051515061127a565b60038160405160200161123a91906142b8565b604051602081830303815290604052604051611256919061424d565b602060405180830381855afa158015611271573d5f803e3d5ffd5b50505060405151505b80806001019150506111b9565b505050565b5f5b828110156113c257811561132f57600473ffffffffffffffffffffffffffffffffffffffff166112bc610a75565b826040516020016112ce9291906142d2565b6040516020818303038152906040526040516112ea919061424d565b5f60405180830381855afa9150503d805f8114611322576040519150601f19603f3d011682016040523d82523d5f602084013e611327565b606091505b5050506113b5565b600473ffffffffffffffffffffffffffffffffffffffff168160405160200161135891906136a3565b604051602081830303815290604052604051611374919061424d565b5f60405180830381855afa9150503d805f81146113ac576040519150601f19603f3d011682016040523d82523d5f602084013e6113b1565b606091505b5050505b808060010191505061128e565b505050565b5f6040518060400160405280600181526020017f380000000000000000000000000000000000000000000000000000000000000081525090505f6040518060400160405280600181526020017f390000000000000000000000000000000000000000000000000000000000000081525090505f5b848110156115d157831561150d575f611452610a75565b826040516020016114649291906141e2565b6040516020818303038152906040529050600573ffffffffffffffffffffffffffffffffffffffff168451845183518787866040516020016114ab96959493929190614300565b6040516020818303038152906040526040516114c7919061424d565b5f60405180830381855afa9150503d805f81146114ff576040519150601f19603f3d011682016040523d82523d5f602084013e611504565b606091505b505050506115c4565b5f8160405160200161151f91906142b8565b6040516020818303038152906040529050600573ffffffffffffffffffffffffffffffffffffffff1684518451835187878660405160200161156696959493929190614300565b604051602081830303815290604052604051611582919061424d565b5f60405180830381855afa9150503d805f81146115ba576040519150601f19603f3d011682016040523d82523d5f602084013e6115bf565b606091505b505050505b808060010191505061143b565b5050505050565b5f7f030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd390505f7f15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c490505f600190505f600290505f5b8581101561172e575f80600673ffffffffffffffffffffffffffffffffffffffff16878787876040516020016116659493929190614363565b604051602081830303815290604052604051611681919061424d565b5f60405180830381855afa9150503d805f81146116b9576040519150601f19603f3d011682016040523d82523d5f602084013e6116be565b606091505b509150915081611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa906143f0565b60405180910390fd5b808060200190518101906117179190614438565b80955081965050505050808060010191505061162c565b505050505050565b5f7f030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd390505f7f15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c490505f600290505f5b84811015611885575f80600773ffffffffffffffffffffffffffffffffffffffff168686866040516020016117bc93929190614476565b6040516020818303038152906040526040516117d8919061424d565b5f60405180830381855afa9150503d805f8114611810576040519150601f19603f3d011682016040523d82523d5f602084013e611815565b606091505b50915091508161185a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611851906144f5565b60405180910390fd5b8080602001905181019061186e9190614438565b809650819750505050508080600101915050611785565b5050505050565b5f6040518060c001604052807f2cf44499d5d27bb186308b7af7af02ac5bc9eeb6a3d147c186b21fb1b76e18da81526020017f2c0f001f52110ccfe69108924926e45f0b0c868df0e7bde1fe16d3242dc715f681526020017f1fb19bb476f6b9e44e2a32234da8212f61cd63919354bc06aef31e3cfaff3ebc81526020017f22606845ff186793914e03e21df544c34ffe2f2f3504de8a79d9159eca2d98d981526020017f2bd368e28381e8eccb5fa81fc26cf3f048eea9abfdd85d7ed3ab3698d63e4f9081526020017f2fe02e47887507adf0ff1743cbac6ba291e66f59be6bd763950bb16041a0a85e81525090505f5b82811015611bad575f80600873ffffffffffffffffffffffffffffffffffffffff16846040516020016119b191906145b8565b6040516020818303038152906040526040516119cd919061424d565b5f60405180830381855afa9150503d805f8114611a05576040519150601f19603f3d011682016040523d82523d5f602084013e611a0a565b606091505b509150915081611a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a469061461b565b60405180910390fd5b600673ffffffffffffffffffffffffffffffffffffffff16845f60068110611a7a57611a79613a94565b5b602002015185600160068110611a9357611a92613a94565b5b602002015160016002604051602001611aaf94939291906146b4565b604051602081830303815290604052604051611acb919061424d565b5f60405180830381855afa9150503d805f8114611b03576040519150601f19603f3d011682016040523d82523d5f602084013e611b08565b606091505b50809250819350505081611b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b48906143f0565b60405180910390fd5b80806020019051810190611b659190614438565b855f60068110611b7857611b77613a94565b5b6020020186600160068110611b9057611b8f613a94565b5b60200201828152508281525050505050808060010191505061197e565b505050565b611bba613602565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa55f1b815f60028110611bf057611bef613a94565b5b6020020181815250507fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b5f1b81600160028110611c3057611c2f613a94565b5b602002018181525050611c41613624565b7f61626300000000000000000000000000000000000000000000000000000000005f1b815f60048110611c7757611c76613a94565b5b6020020181815250505f801b81600160048110611c9757611c96613a94565b5b6020020181815250505f801b81600260048110611cb757611cb6613a94565b5b6020020181815250505f801b81600360048110611cd757611cd6613a94565b5b602002018181525050611ce8613646565b67030000000000000060c01b815f60028110611d0757611d06613a94565b5b602002019077ffffffffffffffffffffffffffffffffffffffffffffffff1916908177ffffffffffffffffffffffffffffffffffffffffffffffff1916815250505f60c01b81600160028110611d6057611d5f613a94565b5b602002019077ffffffffffffffffffffffffffffffffffffffffffffffff1916908177ffffffffffffffffffffffffffffffffffffffffffffffff1916815250505f600190505f5b85811015611f59575f8190505f600973ffffffffffffffffffffffffffffffffffffffff1682885f60028110611de157611de0613a94565b5b602002015189600160028110611dfa57611df9613a94565b5b6020020151895f60048110611e1257611e11613a94565b5b60200201518a600160048110611e2b57611e2a613a94565b5b60200201518b600260048110611e4457611e43613a94565b5b60200201518c600360048110611e5d57611e5c613a94565b5b60200201518c5f60028110611e7557611e74613a94565b5b60200201518d600160028110611e8e57611e8d613a94565b5b60200201518d604051602001611ead9a999897969594939291906147f5565b604051602081830303815290604052604051611ec9919061424d565b5f60405180830381855afa9150503d805f8114611f01576040519150601f19603f3d011682016040523d82523d5f602084013e611f06565b606091505b5050905080611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f41906148f2565b60405180910390fd5b50508080600101915050611da8565b505050505050565b5f7f31a80482dadf89de6302b1988c82c29544c9c07bb910596158f6062517eb089a5f1b90505f7f2f54c9a0f348752950094d3228d3b940258c75fe2a413cb70baa21dc2e352fc55f1b90505f7fe22466e928fdccef0de49e3503d2657d00494a00e764fd437bdafa05f5922b1f5f1b90505f7fbbb77c6817ccf50748419477e843d5bac67e6a70e97dde5a57e0c983b777e1ad5f1b90505f5b858110156120e8575f815f1b90505f61010073ffffffffffffffffffffffffffffffffffffffff168286868a8a60405160200161203c959493929190614910565b604051602081830303815290604052604051612058919061424d565b5f60405180830381855afa9150503d805f8114612090576040519150601f19603f3d011682016040523d82523d5f602084013e612095565b606091505b50509050806120d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d0906149ab565b60405180910390fd5b50508080600101915050611ffb565b505050505050565b6120f8613624565b6f17f1d3a73197d7942695638c4fa9ac0f5f1b815f6004811061211e5761211d613a94565b5b6020020181815250507fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb5f1b8160016004811061215e5761215d613a94565b5b6020020181815250506f08b3f481e3aaa0f1a09e30ed741d8ae45f1b8160026004811061218e5761218d613a94565b5b6020020181815250507ffcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e15f1b816003600481106121ce576121cd613a94565b5b6020020181815250506121df613624565b6f112b98340eee2777cc3c14163dea3ec95f1b815f6004811061220557612204613a94565b5b6020020181815250507f7977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca94265f1b8160016004811061224557612244613a94565b5b6020020181815250506f186b28d92356c4dfec4b5201ad099dbd5f1b8160026004811061227557612274613a94565b5b6020020181815250507fede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a215f1b816003600481106122b5576122b4613a94565b5b6020020181815250505f5b838110156123b8575f80600b73ffffffffffffffffffffffffffffffffffffffff1685856040516020016122f5929190614a6e565b604051602081830303815290604052604051612311919061424d565b5f60405180830381855afa9150503d805f8114612349576040519150601f19603f3d011682016040523d82523d5f602084013e61234e565b606091505b509150915081612393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238a90614ae0565b60405180910390fd5b808060200190518101906123a79190614c2c565b9350505080806001019150506122c0565b50505050565b6123c6613624565b6f17f1d3a73197d7942695638c4fa9ac0f5f1b815f600481106123ec576123eb613a94565b5b6020020181815250507fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb5f1b8160016004811061242c5761242b613a94565b5b6020020181815250506f08b3f481e3aaa0f1a09e30ed741d8ae45f1b8160026004811061245c5761245b613a94565b5b6020020181815250507ffcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e15f1b8160036004811061249c5761249b613a94565b5b6020020181815250505f7fe22466e928fdccef0de49e3503d2657d00494a00e764fd437bdafa05f5922b1f5f1b90505f5b838110156125c5575f80600c73ffffffffffffffffffffffffffffffffffffffff168585604051602001612502929190614c57565b60405160208183030381529060405260405161251e919061424d565b5f60405180830381855afa9150503d805f8114612556576040519150601f19603f3d011682016040523d82523d5f602084013e61255b565b606091505b5091509150816125a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259790614ae0565b60405180910390fd5b808060200190518101906125b49190614c2c565b9450505080806001019150506124cd565b50505050565b6125d3613668565b6f103121a2ceaae586d240843a398967325f1b815f600881106125f9576125f8613a94565b5b6020020181815250507f5f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f275f1b8160016008811061263957612638613a94565b5b6020020181815250506f086b990f3da2aeac0a36143b7d7c82445f1b8160026008811061266957612668613a94565b5b6020020181815250507f28215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b685f1b816003600881106126a9576126a8613a94565b5b6020020181815250506f0f9e7ba9a86a8f7624aa2b42dcc8772e5f1b816004600881106126d9576126d8613a94565b5b6020020181815250507f1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e5f1b8160056008811061271957612718613a94565b5b6020020181815250506f0d22c3652d0dc6f0fc9316e14268477c5f1b8160066008811061274957612748613a94565b5b6020020181815250507f2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784515f1b8160076008811061278957612788613a94565b5b60200201818152505061279a613668565b6f024aa2b2f08f0a91260805272dc510515f1b815f600881106127c0576127bf613a94565b5b6020020181815250507fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb85f1b81600160088110612800576127ff613a94565b5b6020020181815250506f13e02b6052719f607dacd3a088274f655f1b816002600881106128305761282f613a94565b5b6020020181815250507f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e5f1b816003600881106128705761286f613a94565b5b6020020181815250506f0ce5d527727d6e118cc9cdc6da2e351a5f1b816004600881106128a05761289f613a94565b5b6020020181815250507fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b828015f1b816005600881106128e0576128df613a94565b5b6020020181815250506f0606c4a02ea734cc32acd2b02bc28b995f1b816006600881106129105761290f613a94565b5b6020020181815250507fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be5f1b816007600881106129505761294f613a94565b5b6020020181815250505f5b83811015612a53575f80600d73ffffffffffffffffffffffffffffffffffffffff168585604051602001612990929190614cfd565b6040516020818303038152906040526040516129ac919061424d565b5f60405180830381855afa9150503d805f81146129e4576040519150601f19603f3d011682016040523d82523d5f602084013e6129e9565b606091505b509150915081612a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2590614d70565b60405180910390fd5b80806020019051810190612a429190614e3c565b93505050808060010191505061295b565b50505050565b612a61613668565b6f103121a2ceaae586d240843a398967325f1b815f60088110612a8757612a86613a94565b5b6020020181815250507f5f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f275f1b81600160088110612ac757612ac6613a94565b5b6020020181815250506f086b990f3da2aeac0a36143b7d7c82445f1b81600260088110612af757612af6613a94565b5b6020020181815250507f28215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b685f1b81600360088110612b3757612b36613a94565b5b6020020181815250506f0f9e7ba9a86a8f7624aa2b42dcc8772e5f1b81600460088110612b6757612b66613a94565b5b6020020181815250507f1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e5f1b81600560088110612ba757612ba6613a94565b5b6020020181815250506f0d22c3652d0dc6f0fc9316e14268477c5f1b81600660088110612bd757612bd6613a94565b5b6020020181815250507f2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784515f1b81600760088110612c1757612c16613a94565b5b602002018181525050612c28613668565b6f024aa2b2f08f0a91260805272dc510515f1b815f60088110612c4e57612c4d613a94565b5b6020020181815250507fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb85f1b81600160088110612c8e57612c8d613a94565b5b6020020181815250506f13e02b6052719f607dacd3a088274f655f1b81600260088110612cbe57612cbd613a94565b5b6020020181815250507f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e5f1b81600360088110612cfe57612cfd613a94565b5b6020020181815250506f0ce5d527727d6e118cc9cdc6da2e351a5f1b81600460088110612d2e57612d2d613a94565b5b6020020181815250507fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b828015f1b81600560088110612d6e57612d6d613a94565b5b6020020181815250506f0606c4a02ea734cc32acd2b02bc28b995f1b81600660088110612d9e57612d9d613a94565b5b6020020181815250507fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be5f1b81600760088110612dde57612ddd613a94565b5b6020020181815250505f7fe22466e928fdccef0de49e3503d2657d00494a00e764fd437bdafa05f5922b1f5f1b90505f5b84811015612f0b575f80600e73ffffffffffffffffffffffffffffffffffffffff1686858787604051602001612e489493929190614e68565b604051602081830303815290604052604051612e64919061424d565b5f60405180830381855afa9150503d805f8114612e9c576040519150601f19603f3d011682016040523d82523d5f602084013e612ea1565b606091505b509150915081612ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612edd90614ef9565b60405180910390fd5b80806020019051810190612efa9190614e3c565b955050508080600101915050612e0f565b5050505050565b612f1a613624565b6f17f1d3a73197d7942695638c4fa9ac0f5f1b815f60048110612f4057612f3f613a94565b5b6020020181815250507fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb5f1b81600160048110612f8057612f7f613a94565b5b6020020181815250506f08b3f481e3aaa0f1a09e30ed741d8ae45f1b81600260048110612fb057612faf613a94565b5b6020020181815250507ffcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e15f1b81600360048110612ff057612fef613a94565b5b602002018181525050613001613668565b6f024aa2b2f08f0a91260805272dc510515f1b815f6008811061302757613026613a94565b5b6020020181815250507fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb85f1b8160016008811061306757613066613a94565b5b6020020181815250506f13e02b6052719f607dacd3a088274f655f1b8160026008811061309757613096613a94565b5b6020020181815250507f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e5f1b816003600881106130d7576130d6613a94565b5b6020020181815250506f0ce5d527727d6e118cc9cdc6da2e351a5f1b8160046008811061310757613106613a94565b5b6020020181815250507fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b828015f1b8160056008811061314757613146613a94565b5b6020020181815250506f0606c4a02ea734cc32acd2b02bc28b995f1b8160066008811061317757613176613a94565b5b6020020181815250507fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be5f1b816007600881106131b7576131b6613a94565b5b6020020181815250505f5b838110156132a4575f80600f73ffffffffffffffffffffffffffffffffffffffff1685856040516020016131f7929190614f17565b604051602081830303815290604052604051613213919061424d565b5f60405180830381855afa9150503d805f811461324b576040519150601f19603f3d011682016040523d82523d5f602084013e613250565b606091505b509150915081613295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161328c90614f89565b60405180910390fd5b505080806001019150506131c2565b50505050565b6132b2613602565b6f04090815ad598a06897dd89bcda860f25f1b815f600281106132d8576132d7613a94565b5b6020020181815250507f5837d54e897298ce31e6947378134d3761dc59a572154963e8c954919ecfa82d5f1b8160016002811061331857613317613a94565b5b6020020181815250505f5b82811015613419575f80601073ffffffffffffffffffffffffffffffffffffffff16846040516020016133569190615026565b604051602081830303815290604052604051613372919061424d565b5f60405180830381855afa9150503d805f81146133aa576040519150601f19603f3d011682016040523d82523d5f602084013e6133af565b606091505b5091509150816133f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133eb90615089565b60405180910390fd5b808060200190518101906134089190615155565b935050508080600101915050613323565b505050565b613426613624565b6f18c16fe362b7dbdfa102e42bdfd3e2f45f1b815f6004811061344c5761344b613a94565b5b6020020181815250507fe6191d479437a59db4eb716986bf08ee1f42634db66bde97d6c16bbfd342b3b85f1b8160016004811061348c5761348b613a94565b5b6020020181815250506f0e37812ce1b146d998d5f92bdd5ada2a5f1b816002600481106134bc576134bb613a94565b5b6020020181815250507f31bfd63dfe18311aa91637b5f279dd045763166aa1615e46a50d8d8f475f184e5f1b816003600481106134fc576134fb613a94565b5b6020020181815250505f5b828110156135fd575f80601173ffffffffffffffffffffffffffffffffffffffff168460405160200161353a9190615180565b604051602081830303815290604052604051613556919061424d565b5f60405180830381855afa9150503d805f811461358e576040519150601f19603f3d011682016040523d82523d5f602084013e613593565b606091505b5091509150816135d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135cf906151e3565b60405180910390fd5b808060200190518101906135ec9190614c2c565b935050508080600101915050613507565b505050565b6040518060400160405280600290602082028036833780820191505090505090565b6040518060800160405280600490602082028036833780820191505090505090565b6040518060400160405280600290602082028036833780820191505090505090565b604051806101000160405280600890602082028036833780820191505090505090565b5f819050919050565b61369d8161368b565b82525050565b5f6020820190506136b65f830184613694565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f61010082840312156136e7576136e66136cd565b5b81905092915050565b5f60208284031215613705576137046136c5565b5b5f82013567ffffffffffffffff811115613722576137216136c9565b5b61372e848285016136d1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61377982613737565b6137838185613741565b9350613793818560208601613751565b61379c8161375f565b840191505092915050565b5f6020820190508181035f8301526137bf818461376f565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b6137ef816137c7565b82525050565b5f6020820190506138085f8301846137e6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613845826137c7565b9150613850836137c7565b9250828201905073ffffffffffffffffffffffffffffffffffffffff81111561387c5761387b61380e565b5b92915050565b5f61388c8261368b565b91506138978361368b565b92508282019050808211156138af576138ae61380e565b5b92915050565b7f4e6f7420656e6f7567682073746f7261676520736c6f747320746f206c6f61645f8201527f2f75706461746500000000000000000000000000000000000000000000000000602082015250565b5f61390f602783613741565b915061391a826138b5565b604082019050919050565b5f6020820190508181035f83015261393c81613903565b9050919050565b61394c816137c7565b8114613956575f80fd5b50565b5f8135905061396781613943565b92915050565b5f60208284031215613982576139816136c5565b5b5f61398f84828501613959565b91505092915050565b7f4e6f7420656e6f756768206163636f756e747320746f206c6f61642f757064615f8201527f7465000000000000000000000000000000000000000000000000000000000000602082015250565b5f6139f2602283613741565b91506139fd82613998565b604082019050919050565b5f6020820190508181035f830152613a1f816139e6565b9050919050565b5f80fd5b5f80fd5b5f80fd5b5f8083356001602003843603038112613a4e57613a4d613a26565b5b80840192508235915067ffffffffffffffff821115613a7057613a6f613a2a565b5b602083019250604082023603831315613a8c57613a8b613a2e565b5b509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613acb826137c7565b9050919050565b613adb81613ac1565b8114613ae5575f80fd5b50565b5f81359050613af681613ad2565b92915050565b5f60208284031215613b1157613b106136c5565b5b5f613b1e84828501613ae8565b91505092915050565b5f81905092915050565b7f546869732069732061206c6f6e6720696e70757420737472696e6720666f72205f8201527f707265636f6d70696c6520000000000000000000000000000000000000000000602082015250565b5f613b8b602b83613b27565b9150613b9682613b31565b602b82019050919050565b7f616e64206974206973206265696e67207265706561746564206d756c7469706c5f8201527f652074696d657320746f20696e637265617365207468652073697a652e200000602082015250565b5f613bfb603e83613b27565b9150613c0682613ba1565b603e82019050919050565b7f4c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e735f8201527f656374657475722061646970697363696e6720656c69742e2000000000000000602082015250565b5f613c6b603983613b27565b9150613c7682613c11565b603982019050919050565b7f566976616d7573206c75637475732075726e61207365642075726e6120756c745f8201527f7269636965732061632074656d706f72206475692073616769747469732e2000602082015250565b5f613cdb603f83613b27565b9150613ce682613c81565b603f82019050919050565b7f496e20636f6e64696d656e74756d20666163696c6973697320706f7274612e205f8201527f536564206e6563206469616d206575206469616d206d6174746973207669766560208201527f7272612e20000000000000000000000000000000000000000000000000000000604082015250565b5f613d71604583613b27565b9150613d7c82613cf1565b604582019050919050565b7f4e756c6c61206672696e67696c6c612c206f72636920616320657569736d6f645f8201527f2073656d7065722c206d61676e61206469616d20706f72747469746f72206d6160208201527f757269732c200000000000000000000000000000000000000000000000000000604082015250565b5f613e07604683613b27565b9150613e1282613d87565b604682019050919050565b7f7175697320736f6c6c696369747564696e2073617069656e206a7573746f20695f8201527f6e206c696265726f2e20566573746962756c756d206d6f6c6c6973206d61757260208201527f697320656e696d2e200000000000000000000000000000000000000000000000604082015250565b5f613e9d604983613b27565b9150613ea882613e1d565b604982019050919050565b7f4d6f72626920657569736d6f64206d61676e61206163206c6f72656d207275745f8201527f72756d20656c656d656e74756d2e20546869732069732061206c6f6e6720696e60208201527f70757420737472696e6720666f7220707265636f6d70696c6520000000000000604082015250565b5f613f33605a83613b27565b9150613f3e82613eb3565b605a82019050919050565b7f4d6f72626920657569736d6f64206d61676e61206163206c6f72656d207275745f8201527f72756d20656c656d656e74756d2e200000000000000000000000000000000000602082015250565b5f613fa3602f83613b27565b9150613fae82613f49565b602f82019050919050565b5f613fc382613b7f565b9150613fce82613bef565b9150613fd982613c5f565b9150613fe482613ccf565b9150613fef82613d65565b9150613ffa82613dfb565b915061400582613e91565b915061401082613f27565b915061401b82613bef565b915061402682613c5f565b915061403182613ccf565b915061403c82613d65565b915061404782613dfb565b915061405282613e91565b915061405d82613f27565b915061406882613bef565b915061407382613c5f565b915061407e82613ccf565b915061408982613d65565b915061409482613dfb565b915061409f82613e91565b91506140aa82613f97565b9150819050919050565b7f496e76616c696420707265636f6d70696c6520616464726573730000000000005f82015250565b5f6140e8601a83613741565b91506140f3826140b4565b602082019050919050565b5f6020820190508181035f830152614115816140dc565b9050919050565b5f819050919050565b61412e8161411c565b82525050565b5f60ff82169050919050565b61414981614134565b82525050565b5f6080820190506141625f830187614125565b61416f6020830186614140565b61417c6040830185614125565b6141896060830184614125565b95945050505050565b5f61419c82613737565b6141a68185613b27565b93506141b6818560208601613751565b80840191505092915050565b5f819050919050565b6141dc6141d78261368b565b6141c2565b82525050565b5f6141ed8285614192565b91506141f982846141cb565b6020820191508190509392505050565b5f81519050919050565b5f81905092915050565b5f61422782614209565b6142318185614213565b9350614241818560208601613751565b80840191505092915050565b5f614258828461421d565b915081905092915050565b61426c8161411c565b8114614276575f80fd5b50565b5f8151905061428781614263565b92915050565b5f602082840312156142a2576142a16136c5565b5b5f6142af84828501614279565b91505092915050565b5f6142c382846141cb565b60208201915081905092915050565b5f6040820190508181035f8301526142ea818561376f565b90506142f96020830184613694565b9392505050565b5f61430b82896141cb565b60208201915061431b82886141cb565b60208201915061432b82876141cb565b60208201915061433b828661421d565b9150614347828561421d565b9150614353828461421d565b9150819050979650505050505050565b5f6080820190506143765f830187613694565b6143836020830186613694565b6143906040830185613694565b61439d6060830184613694565b95945050505050565b7f4543416464206661696c656400000000000000000000000000000000000000005f82015250565b5f6143da600c83613741565b91506143e5826143a6565b602082019050919050565b5f6020820190508181035f830152614407816143ce565b9050919050565b6144178161368b565b8114614421575f80fd5b50565b5f815190506144328161440e565b92915050565b5f806040838503121561444e5761444d6136c5565b5b5f61445b85828601614424565b925050602061446c85828601614424565b9150509250929050565b5f6060820190506144895f830186613694565b6144966020830185613694565b6144a36040830184613694565b949350505050565b7f45434d756c206661696c656400000000000000000000000000000000000000005f82015250565b5f6144df600c83613741565b91506144ea826144ab565b602082019050919050565b5f6020820190508181035f83015261450c816144d3565b9050919050565b5f60069050919050565b5f81905092915050565b5f819050919050565b6145398161368b565b82525050565b5f61454a8383614530565b60208301905092915050565b5f602082019050919050565b61456b81614513565b614575818461451d565b925061458082614527565b805f5b838110156145b0578151614597878261453f565b96506145a283614556565b925050600181019050614583565b505050505050565b5f60c0820190506145cb5f830184614562565b92915050565b7f454350616972696e67206661696c6564000000000000000000000000000000005f82015250565b5f614605601083613741565b9150614610826145d1565b602082019050919050565b5f6020820190508181035f830152614632816145f9565b9050919050565b5f819050919050565b5f819050919050565b5f61466561466061465b84614639565b614642565b614134565b9050919050565b6146758161464b565b82525050565b5f819050919050565b5f61469e6146996146948461467b565b614642565b614134565b9050919050565b6146ae81614684565b82525050565b5f6080820190506146c75f830187613694565b6146d46020830186613694565b6146e1604083018561466c565b6146ee60608301846146a5565b95945050505050565b5f63ffffffff82169050919050565b5f8160e01b9050919050565b5f61471c82614706565b9050919050565b61473461472f826146f7565b614712565b82525050565b5f819050919050565b61475461474f8261411c565b61473a565b82525050565b5f7fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b5f819050919050565b61479f61479a8261475a565b614785565b82525050565b5f8115159050919050565b5f8160f81b9050919050565b5f6147c6826147b0565b9050919050565b5f6147d7826147bc565b9050919050565b6147ef6147ea826147a5565b6147cd565b82525050565b5f614800828d614723565b600482019150614810828c614743565b602082019150614820828b614743565b602082019150614830828a614743565b6020820191506148408289614743565b6020820191506148508288614743565b6020820191506148608287614743565b602082019150614870828661478e565b600882019150614880828561478e565b60088201915061489082846147de565b6001820191508190509b9a5050505050505050505050565b7f426c616b653266206661696c65640000000000000000000000000000000000005f82015250565b5f6148dc600e83613741565b91506148e7826148a8565b602082019050919050565b5f6020820190508181035f830152614909816148d0565b9050919050565b5f60a0820190506149235f830188614125565b6149306020830187614125565b61493d6040830186614125565b61494a6060830185614125565b6149576080830184614125565b9695505050505050565b7f70323536566572696679206661696c65640000000000000000000000000000005f82015250565b5f614995601183613741565b91506149a082614961565b602082019050919050565b5f6020820190508181035f8301526149c281614989565b9050919050565b5f60049050919050565b5f81905092915050565b5f819050919050565b6149ef8161411c565b82525050565b5f614a0083836149e6565b60208301905092915050565b5f602082019050919050565b614a21816149c9565b614a2b81846149d3565b9250614a36826149dd565b805f5b83811015614a66578151614a4d87826149f5565b9650614a5883614a0c565b925050600181019050614a39565b505050505050565b5f61010082019050614a825f830185614a18565b614a8f6080830184614a18565b9392505050565b7f4731416464206661696c656400000000000000000000000000000000000000005f82015250565b5f614aca600c83613741565b9150614ad582614a96565b602082019050919050565b5f6020820190508181035f830152614af781614abe565b9050919050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b614b388261375f565b810181811067ffffffffffffffff82111715614b5757614b56614b02565b5b80604052505050565b5f614b696136bc565b9050614b758282614b2f565b919050565b5f67ffffffffffffffff821115614b9457614b93614b02565b5b602082029050919050565b5f80fd5b5f614bb5614bb084614b7a565b614b60565b90508060208402830185811115614bcf57614bce614b9f565b5b835b81811015614bf85780614be48882614279565b845260208401935050602081019050614bd1565b5050509392505050565b5f82601f830112614c1657614c15614afe565b5b6004614c23848285614ba3565b91505092915050565b5f60808284031215614c4157614c406136c5565b5b5f614c4e84828501614c02565b91505092915050565b5f60a082019050614c6a5f830185614a18565b614c776080830184614125565b9392505050565b5f60089050919050565b5f81905092915050565b5f819050919050565b5f602082019050919050565b614cb081614c7e565b614cba8184614c88565b9250614cc582614c92565b805f5b83811015614cf5578151614cdc87826149f5565b9650614ce783614c9b565b925050600181019050614cc8565b505050505050565b5f61020082019050614d115f830185614ca7565b614d1f610100830184614ca7565b9392505050565b7f4732416464206661696c656400000000000000000000000000000000000000005f82015250565b5f614d5a600c83613741565b9150614d6582614d26565b602082019050919050565b5f6020820190508181035f830152614d8781614d4e565b9050919050565b5f67ffffffffffffffff821115614da857614da7614b02565b5b602082029050919050565b5f614dc5614dc084614d8e565b614b60565b90508060208402830185811115614ddf57614dde614b9f565b5b835b81811015614e085780614df48882614279565b845260208401935050602081019050614de1565b5050509392505050565b5f82601f830112614e2657614e25614afe565b5b6008614e33848285614db3565b91505092915050565b5f6101008284031215614e5257614e516136c5565b5b5f614e5f84828501614e12565b91505092915050565b5f61024082019050614e7c5f830187614ca7565b614e8a610100830186614125565b614e98610120830185614ca7565b614ea6610220830184614125565b95945050505050565b7f47324d534d206661696c656400000000000000000000000000000000000000005f82015250565b5f614ee3600c83613741565b9150614eee82614eaf565b602082019050919050565b5f6020820190508181035f830152614f1081614ed7565b9050919050565b5f61018082019050614f2b5f830185614a18565b614f386080830184614ca7565b9392505050565b7f424c532050616972696e67206661696c656400000000000000000000000000005f82015250565b5f614f73601283613741565b9150614f7e82614f3f565b602082019050919050565b5f6020820190508181035f830152614fa081614f67565b9050919050565b5f60029050919050565b5f81905092915050565b5f819050919050565b5f602082019050919050565b614fd981614fa7565b614fe38184614fb1565b9250614fee82614fbb565b805f5b8381101561501e57815161500587826149f5565b965061501083614fc4565b925050600181019050614ff1565b505050505050565b5f6040820190506150395f830184614fd0565b92915050565b7f4d6170204731206661696c6564000000000000000000000000000000000000005f82015250565b5f615073600d83613741565b915061507e8261503f565b602082019050919050565b5f6020820190508181035f8301526150a081615067565b9050919050565b5f67ffffffffffffffff8211156150c1576150c0614b02565b5b602082029050919050565b5f6150de6150d9846150a7565b614b60565b905080602084028301858111156150f8576150f7614b9f565b5b835b81811015615121578061510d8882614279565b8452602084019350506020810190506150fa565b5050509392505050565b5f82601f83011261513f5761513e614afe565b5b600261514c8482856150cc565b91505092915050565b5f6040828403121561516a576151696136c5565b5b5f6151778482850161512b565b91505092915050565b5f6080820190506151935f830184614a18565b92915050565b7f4d6170204732206661696c6564000000000000000000000000000000000000005f82015250565b5f6151cd600d83613741565b91506151d882615199565b602082019050919050565b5f6020820190508181035f8301526151fa816151c1565b905091905056fea2646970667358221220daaadc09f9b6a12865bdc6aa105acdb6d823e1207652d06efbcce50978b64aec64736f6c63430008190033",
+ Bin: "0x60806040527002000000000000000000000000000000006001556202000060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507002000000000000000000000000000000006003557002000000000000000000000000000000006004556202000060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405161553538038061553583398181016040528101906100ea9190610219565b8060055f8282829054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661011a9190610271565b92506101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060025f8282829054906101000a900473ffffffffffffffffffffffffffffffffffffffff166101889190610271565b92506101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506102b8565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b6101f8816101d0565b8114610202575f5ffd5b50565b5f81519050610213816101ef565b92915050565b5f6020828403121561022e5761022d6101cc565b5b5f61023b84828501610205565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61027b826101d0565b9150610286836101d0565b9250828201905073ffffffffffffffffffffffffffffffffffffffff8111156102b2576102b1610244565b5b92915050565b615270806102c55f395ff3fe608060405234801561000f575f5ffd5b5060043610610091575f3560e01c8063768c39af11610064578063768c39af146100e35780637b58286614610113578063cb805ac114610131578063e2b5a25c14610161578063ee2bb32b1461017f57610091565b80633594dea61461009557806339aa1ab91461009f578063458240e8146100bd5780634e83a9d5146100d9575b5f5ffd5b61009d61019d565b005b6100a76102e6565b6040516100b491906136dc565b60405180910390f35b6100d760048036038101906100d29190613729565b6102ec565b005b6100e16109ed565b005b6100fd60048036038101906100f89190613729565b610a52565b60405161010a91906136dc565b60405180910390f35b61011b610a7b565b60405161012891906137e0565b60405180910390f35b61014b60048036038101906101469190613729565b610aa5565b604051610158919061382e565b60405180910390f35b610169610b08565b604051610176919061382e565b60405180910390f35b610187610b2d565b60405161019491906136dc565b60405180910390f35b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f606460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166101f19190613874565b90505f5f8390505b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161015610271578073ffffffffffffffffffffffffffffffffffffffff166108fc600190811502906040515f60405180830381858888f19350505050915080806001019150506101f9565b50606460025f8282829054906101000a900473ffffffffffffffffffffffffffffffffffffffff166102a39190613874565b92506101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60035481565b6001548160800135826060013560045461030691906138bb565b61031091906138bb565b1115610351576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103489061395e565b60405180910390fd5b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681602001602081019061039c91906139a6565b825f0160208101906103ae91906139a6565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166103da9190613874565b6103e49190613874565b73ffffffffffffffffffffffffffffffffffffffff16111561043b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043290613a41565b60405180910390fd5b5f5f90505f60045490505b826060013560045461045891906138bb565b811015610472578054820191508080600101915050610446565b50816060013560045f82825461048891906138bb565b925050819055505f60045490505b82608001356004546104a891906138bb565b8110156104bf578081558080600101915050610496565b50816080013560045f8282546104d591906138bb565b925050819055505f60015490505b8260c001356001546104f591906138bb565b81101561050c5780815580806001019150506104e3565b508160c0013560015f82825461052291906138bb565b925050819055505f60035490505b8260a0013560035461054291906138bb565b811015610559575f81558080600101915050610530565b508160a0013560035f82825461056f91906138bb565b925050819055505f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b8260400160208101906105af91906139a6565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166105db9190613874565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161015610651578073ffffffffffffffffffffffffffffffffffffffff166108fc600190811502906040515f60405180830381858888f1935050505050808060010191505061059c565b5081604001602081019061066591906139a6565b60025f8282829054906101000a900473ffffffffffffffffffffffffffffffffffffffff166106949190613874565b92506101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b825f01602081019061070a91906139a6565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107369190613874565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1610156107765780806001019150506106f8565b50815f01602081019061078991906139a6565b60055f8282829054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107b89190613874565b92506101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b82602001602081019061082f91906139a6565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661085b9190613874565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1610156108d1578073ffffffffffffffffffffffffffffffffffffffff166108fc600190811502906040515f60405180830381858888f1935050505050808060010191505061081c565b508160200160208101906108e591906139a6565b60055f8282829054906101000a900473ffffffffffffffffffffffffffffffffffffffff166109149190613874565b92506101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5f90505b828060e001906109679190613a6b565b90508110156109e8576109db838060e001906109839190613a6b565b8381811061099457610993613acd565b5b9050604002015f0160208101906109ab9190613b35565b848060e001906109bb9190613a6b565b848181106109cc576109cb613acd565b5b90506040020160200135610b33565b8080600101915050610957565b505050565b5f60015490505f6064600154610a0391906138bb565b90505f8290505b81811015610a3457805f5f8381526020019081526020015f20819055508080600101915050610a0a565b50606460015f828254610a4791906138bb565b925050819055505050565b5f81608001358260600135600454610a6a91906138bb565b610a7491906138bb565b9050919050565b60605f604051602001610a8d90613ff2565b60405160208183030381529060405290508091505090565b5f816020016020810190610ab991906139a6565b825f016020810190610acb91906139a6565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610af79190613874565b610b019190613874565b9050919050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b7557610b7081610fed565b610fe9565b600273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bb957610bb48160016110b3565b610fe8565b600373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bfd57610bf88160016111c3565b610fe7565b600473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c4157610c3c81600161129b565b610fe6565b600573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c8557610c808160016113d9565b610fe5565b600673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cc757610cc2816115ed565b610fe4565b600773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d0957610d048161174e565b610fe3565b600873ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d4b57610d46816118a7565b610fe2565b600973ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d8d57610d8881611bd0565b610fe1565b61010073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dd057610dcb81611f82565b610fe0565b600b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e1257610e0d81612114565b610fdf565b600c73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e5457610e4f816123e5565b610fde565b600d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e9657610e91816125f5565b610fdd565b600e73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ed857610ed381612a86565b610fdc565b600f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f1a57610f1581612f42565b610fdb565b601073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f5c57610f57816132dd565b610fda565b601173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f9e57610f9981613454565b610fd9565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd090614137565b60405180910390fd5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5050565b5f601c90505f7f9242685bf161793cc25603c231bc2f568eb630ea16aa137d2664ac80388256085f1b90505f7f4f8ae3bd7535248d0bd448298cc2e2071e56992d0774dc340c368ae950852ada5f1b90505f5f90505b848110156110ac575f815f1b90506001818686866040515f81526020016040526040516110739493929190614188565b6020604051602081039080840390855afa158015611093573d5f5f3e3d5ffd5b5050506020604051035150508080600101915050611043565b5050505050565b5f5f90505b828110156111be5781156111425760026110d0610a7b565b826040516020016110e292919061421b565b6040516020818303038152906040526040516110fe9190614286565b602060405180830381855afa158015611119573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061113c91906142c6565b506111b1565b60028160405160200161115591906142f1565b6040516020818303038152906040526040516111719190614286565b602060405180830381855afa15801561118c573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906111af91906142c6565b505b80806001019150506110b8565b505050565b5f5f90505b828110156112965781156112365760036111e0610a7b565b826040516020016111f292919061421b565b60405160208183030381529060405260405161120e9190614286565b602060405180830381855afa158015611229573d5f5f3e3d5ffd5b5050506040515150611289565b60038160405160200161124991906142f1565b6040516020818303038152906040526040516112659190614286565b602060405180830381855afa158015611280573d5f5f3e3d5ffd5b50505060405151505b80806001019150506111c8565b505050565b5f5f90505b828110156113d457811561134157600473ffffffffffffffffffffffffffffffffffffffff166112ce610a7b565b826040516020016112e092919061430b565b6040516020818303038152906040526040516112fc9190614286565b5f60405180830381855afa9150503d805f8114611334576040519150601f19603f3d011682016040523d82523d5f602084013e611339565b606091505b5050506113c7565b600473ffffffffffffffffffffffffffffffffffffffff168160405160200161136a91906136dc565b6040516020818303038152906040526040516113869190614286565b5f60405180830381855afa9150503d805f81146113be576040519150601f19603f3d011682016040523d82523d5f602084013e6113c3565b606091505b5050505b80806001019150506112a0565b505050565b5f6040518060400160405280600181526020017f380000000000000000000000000000000000000000000000000000000000000081525090505f6040518060400160405280600181526020017f390000000000000000000000000000000000000000000000000000000000000081525090505f5f90505b848110156115e6578315611522575f611467610a7b565b8260405160200161147992919061421b565b6040516020818303038152906040529050600573ffffffffffffffffffffffffffffffffffffffff168451845183518787866040516020016114c096959493929190614339565b6040516020818303038152906040526040516114dc9190614286565b5f60405180830381855afa9150503d805f8114611514576040519150601f19603f3d011682016040523d82523d5f602084013e611519565b606091505b505050506115d9565b5f8160405160200161153491906142f1565b6040516020818303038152906040529050600573ffffffffffffffffffffffffffffffffffffffff1684518451835187878660405160200161157b96959493929190614339565b6040516020818303038152906040526040516115979190614286565b5f60405180830381855afa9150503d805f81146115cf576040519150601f19603f3d011682016040523d82523d5f602084013e6115d4565b606091505b505050505b8080600101915050611450565b5050505050565b5f7f030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd390505f7f15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c490505f600190505f600290505f5f90505b85811015611746575f5f600673ffffffffffffffffffffffffffffffffffffffff168787878760405160200161167d949392919061439c565b6040516020818303038152906040526040516116999190614286565b5f60405180830381855afa9150503d805f81146116d1576040519150601f19603f3d011682016040523d82523d5f602084013e6116d6565b606091505b50915091508161171b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171290614429565b60405180910390fd5b8080602001905181019061172f9190614471565b809550819650505050508080600101915050611644565b505050505050565b5f7f030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd390505f7f15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c490505f600290505f5f90505b848110156118a0575f5f600773ffffffffffffffffffffffffffffffffffffffff168686866040516020016117d7939291906144af565b6040516020818303038152906040526040516117f39190614286565b5f60405180830381855afa9150503d805f811461182b576040519150601f19603f3d011682016040523d82523d5f602084013e611830565b606091505b509150915081611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186c9061452e565b60405180910390fd5b808060200190518101906118899190614471565b8096508197505050505080806001019150506117a0565b5050505050565b5f6040518060c001604052807f2cf44499d5d27bb186308b7af7af02ac5bc9eeb6a3d147c186b21fb1b76e18da81526020017f2c0f001f52110ccfe69108924926e45f0b0c868df0e7bde1fe16d3242dc715f681526020017f1fb19bb476f6b9e44e2a32234da8212f61cd63919354bc06aef31e3cfaff3ebc81526020017f22606845ff186793914e03e21df544c34ffe2f2f3504de8a79d9159eca2d98d981526020017f2bd368e28381e8eccb5fa81fc26cf3f048eea9abfdd85d7ed3ab3698d63e4f9081526020017f2fe02e47887507adf0ff1743cbac6ba291e66f59be6bd763950bb16041a0a85e81525090505f5f90505b82811015611bcb575f5f600873ffffffffffffffffffffffffffffffffffffffff16846040516020016119cf91906145f1565b6040516020818303038152906040526040516119eb9190614286565b5f60405180830381855afa9150503d805f8114611a23576040519150601f19603f3d011682016040523d82523d5f602084013e611a28565b606091505b509150915081611a6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6490614654565b60405180910390fd5b600673ffffffffffffffffffffffffffffffffffffffff16845f60068110611a9857611a97613acd565b5b602002015185600160068110611ab157611ab0613acd565b5b602002015160016002604051602001611acd94939291906146ed565b604051602081830303815290604052604051611ae99190614286565b5f60405180830381855afa9150503d805f8114611b21576040519150601f19603f3d011682016040523d82523d5f602084013e611b26565b606091505b50809250819350505081611b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6690614429565b60405180910390fd5b80806020019051810190611b839190614471565b855f60068110611b9657611b95613acd565b5b6020020186600160068110611bae57611bad613acd565b5b60200201828152508281525050505050808060010191505061199c565b505050565b611bd861363b565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa55f1b815f60028110611c0e57611c0d613acd565b5b6020020181815250507fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b5f1b81600160028110611c4e57611c4d613acd565b5b602002018181525050611c5f61365d565b7f61626300000000000000000000000000000000000000000000000000000000005f1b815f60048110611c9557611c94613acd565b5b6020020181815250505f5f1b81600160048110611cb557611cb4613acd565b5b6020020181815250505f5f1b81600260048110611cd557611cd4613acd565b5b6020020181815250505f5f1b81600360048110611cf557611cf4613acd565b5b602002018181525050611d0661367f565b67030000000000000060c01b815f60028110611d2557611d24613acd565b5b602002019077ffffffffffffffffffffffffffffffffffffffffffffffff1916908177ffffffffffffffffffffffffffffffffffffffffffffffff1916815250505f60c01b81600160028110611d7e57611d7d613acd565b5b602002019077ffffffffffffffffffffffffffffffffffffffffffffffff1916908177ffffffffffffffffffffffffffffffffffffffffffffffff1916815250505f600190505f5f90505b85811015611f7a575f8190505f600973ffffffffffffffffffffffffffffffffffffffff1682885f60028110611e0257611e01613acd565b5b602002015189600160028110611e1b57611e1a613acd565b5b6020020151895f60048110611e3357611e32613acd565b5b60200201518a600160048110611e4c57611e4b613acd565b5b60200201518b600260048110611e6557611e64613acd565b5b60200201518c600360048110611e7e57611e7d613acd565b5b60200201518c5f60028110611e9657611e95613acd565b5b60200201518d600160028110611eaf57611eae613acd565b5b60200201518d604051602001611ece9a9998979695949392919061482e565b604051602081830303815290604052604051611eea9190614286565b5f60405180830381855afa9150503d805f8114611f22576040519150601f19603f3d011682016040523d82523d5f602084013e611f27565b606091505b5050905080611f6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f629061492b565b60405180910390fd5b50508080600101915050611dc9565b505050505050565b5f7f31a80482dadf89de6302b1988c82c29544c9c07bb910596158f6062517eb089a5f1b90505f7f2f54c9a0f348752950094d3228d3b940258c75fe2a413cb70baa21dc2e352fc55f1b90505f7fe22466e928fdccef0de49e3503d2657d00494a00e764fd437bdafa05f5922b1f5f1b90505f7fbbb77c6817ccf50748419477e843d5bac67e6a70e97dde5a57e0c983b777e1ad5f1b90505f5f90505b8581101561210c575f815f1b90505f61010073ffffffffffffffffffffffffffffffffffffffff168286868a8a604051602001612060959493929190614949565b60405160208183030381529060405260405161207c9190614286565b5f60405180830381855afa9150503d805f81146120b4576040519150601f19603f3d011682016040523d82523d5f602084013e6120b9565b606091505b50509050806120fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f4906149e4565b60405180910390fd5b5050808060010191505061201f565b505050505050565b61211c61365d565b6f17f1d3a73197d7942695638c4fa9ac0f5f1b815f6004811061214257612141613acd565b5b6020020181815250507fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb5f1b8160016004811061218257612181613acd565b5b6020020181815250506f08b3f481e3aaa0f1a09e30ed741d8ae45f1b816002600481106121b2576121b1613acd565b5b6020020181815250507ffcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e15f1b816003600481106121f2576121f1613acd565b5b60200201818152505061220361365d565b6f112b98340eee2777cc3c14163dea3ec95f1b815f6004811061222957612228613acd565b5b6020020181815250507f7977ac3dc5c70da32e6e87578f44912e902ccef9efe28d4a78b8999dfbca94265f1b8160016004811061226957612268613acd565b5b6020020181815250506f186b28d92356c4dfec4b5201ad099dbd5f1b8160026004811061229957612298613acd565b5b6020020181815250507fede3781f8998ddf929b4cd7756192185ca7b8f4ef7088f813270ac3d48868a215f1b816003600481106122d9576122d8613acd565b5b6020020181815250505f5f90505b838110156123df575f5f600b73ffffffffffffffffffffffffffffffffffffffff16858560405160200161231c929190614aa7565b6040516020818303038152906040526040516123389190614286565b5f60405180830381855afa9150503d805f8114612370576040519150601f19603f3d011682016040523d82523d5f602084013e612375565b606091505b5091509150816123ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b190614b19565b60405180910390fd5b808060200190518101906123ce9190614c65565b9350505080806001019150506122e7565b50505050565b6123ed61365d565b6f17f1d3a73197d7942695638c4fa9ac0f5f1b815f6004811061241357612412613acd565b5b6020020181815250507fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb5f1b8160016004811061245357612452613acd565b5b6020020181815250506f08b3f481e3aaa0f1a09e30ed741d8ae45f1b8160026004811061248357612482613acd565b5b6020020181815250507ffcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e15f1b816003600481106124c3576124c2613acd565b5b6020020181815250505f7fe22466e928fdccef0de49e3503d2657d00494a00e764fd437bdafa05f5922b1f5f1b90505f5f90505b838110156125ef575f5f600c73ffffffffffffffffffffffffffffffffffffffff16858560405160200161252c929190614c90565b6040516020818303038152906040526040516125489190614286565b5f60405180830381855afa9150503d805f8114612580576040519150601f19603f3d011682016040523d82523d5f602084013e612585565b606091505b5091509150816125ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c190614b19565b60405180910390fd5b808060200190518101906125de9190614c65565b9450505080806001019150506124f7565b50505050565b6125fd6136a1565b6f103121a2ceaae586d240843a398967325f1b815f6008811061262357612622613acd565b5b6020020181815250507f5f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f275f1b8160016008811061266357612662613acd565b5b6020020181815250506f086b990f3da2aeac0a36143b7d7c82445f1b8160026008811061269357612692613acd565b5b6020020181815250507f28215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b685f1b816003600881106126d3576126d2613acd565b5b6020020181815250506f0f9e7ba9a86a8f7624aa2b42dcc8772e5f1b8160046008811061270357612702613acd565b5b6020020181815250507f1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e5f1b8160056008811061274357612742613acd565b5b6020020181815250506f0d22c3652d0dc6f0fc9316e14268477c5f1b8160066008811061277357612772613acd565b5b6020020181815250507f2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784515f1b816007600881106127b3576127b2613acd565b5b6020020181815250506127c46136a1565b6f024aa2b2f08f0a91260805272dc510515f1b815f600881106127ea576127e9613acd565b5b6020020181815250507fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb85f1b8160016008811061282a57612829613acd565b5b6020020181815250506f13e02b6052719f607dacd3a088274f655f1b8160026008811061285a57612859613acd565b5b6020020181815250507f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e5f1b8160036008811061289a57612899613acd565b5b6020020181815250506f0ce5d527727d6e118cc9cdc6da2e351a5f1b816004600881106128ca576128c9613acd565b5b6020020181815250507fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b828015f1b8160056008811061290a57612909613acd565b5b6020020181815250506f0606c4a02ea734cc32acd2b02bc28b995f1b8160066008811061293a57612939613acd565b5b6020020181815250507fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be5f1b8160076008811061297a57612979613acd565b5b6020020181815250505f5f90505b83811015612a80575f5f600d73ffffffffffffffffffffffffffffffffffffffff1685856040516020016129bd929190614d36565b6040516020818303038152906040526040516129d99190614286565b5f60405180830381855afa9150503d805f8114612a11576040519150601f19603f3d011682016040523d82523d5f602084013e612a16565b606091505b509150915081612a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5290614da9565b60405180910390fd5b80806020019051810190612a6f9190614e75565b935050508080600101915050612988565b50505050565b612a8e6136a1565b6f103121a2ceaae586d240843a398967325f1b815f60088110612ab457612ab3613acd565b5b6020020181815250507f5f8eb5a93e8fea99b62b9f88d8556c80dd726a4b30e84a36eeabaf3592937f275f1b81600160088110612af457612af3613acd565b5b6020020181815250506f086b990f3da2aeac0a36143b7d7c82445f1b81600260088110612b2457612b23613acd565b5b6020020181815250507f28215140db1bb859338764cb58458f081d92664f9053b50b3fbd2e4723121b685f1b81600360088110612b6457612b63613acd565b5b6020020181815250506f0f9e7ba9a86a8f7624aa2b42dcc8772e5f1b81600460088110612b9457612b93613acd565b5b6020020181815250507f1af4ae115685e60abc2c9b90242167acef3d0be4050bf935eed7c3b6fc7ba77e5f1b81600560088110612bd457612bd3613acd565b5b6020020181815250506f0d22c3652d0dc6f0fc9316e14268477c5f1b81600660088110612c0457612c03613acd565b5b6020020181815250507f2049ef772e852108d269d9c38dba1d4802e8dae479818184c08f9a569d8784515f1b81600760088110612c4457612c43613acd565b5b602002018181525050612c556136a1565b6f024aa2b2f08f0a91260805272dc510515f1b815f60088110612c7b57612c7a613acd565b5b6020020181815250507fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb85f1b81600160088110612cbb57612cba613acd565b5b6020020181815250506f13e02b6052719f607dacd3a088274f655f1b81600260088110612ceb57612cea613acd565b5b6020020181815250507f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e5f1b81600360088110612d2b57612d2a613acd565b5b6020020181815250506f0ce5d527727d6e118cc9cdc6da2e351a5f1b81600460088110612d5b57612d5a613acd565b5b6020020181815250507fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b828015f1b81600560088110612d9b57612d9a613acd565b5b6020020181815250506f0606c4a02ea734cc32acd2b02bc28b995f1b81600660088110612dcb57612dca613acd565b5b6020020181815250507fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be5f1b81600760088110612e0b57612e0a613acd565b5b6020020181815250505f7fe22466e928fdccef0de49e3503d2657d00494a00e764fd437bdafa05f5922b1f5f1b90505f5f90505b84811015612f3b575f5f600e73ffffffffffffffffffffffffffffffffffffffff1686858787604051602001612e789493929190614ea1565b604051602081830303815290604052604051612e949190614286565b5f60405180830381855afa9150503d805f8114612ecc576040519150601f19603f3d011682016040523d82523d5f602084013e612ed1565b606091505b509150915081612f16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0d90614f32565b60405180910390fd5b80806020019051810190612f2a9190614e75565b955050508080600101915050612e3f565b5050505050565b612f4a61365d565b6f17f1d3a73197d7942695638c4fa9ac0f5f1b815f60048110612f7057612f6f613acd565b5b6020020181815250507fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb5f1b81600160048110612fb057612faf613acd565b5b6020020181815250506f08b3f481e3aaa0f1a09e30ed741d8ae45f1b81600260048110612fe057612fdf613acd565b5b6020020181815250507ffcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e15f1b816003600481106130205761301f613acd565b5b6020020181815250506130316136a1565b6f024aa2b2f08f0a91260805272dc510515f1b815f6008811061305757613056613acd565b5b6020020181815250507fc6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb85f1b8160016008811061309757613096613acd565b5b6020020181815250506f13e02b6052719f607dacd3a088274f655f1b816002600881106130c7576130c6613acd565b5b6020020181815250507f596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e5f1b8160036008811061310757613106613acd565b5b6020020181815250506f0ce5d527727d6e118cc9cdc6da2e351a5f1b8160046008811061313757613136613acd565b5b6020020181815250507fadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b828015f1b8160056008811061317757613176613acd565b5b6020020181815250506f0606c4a02ea734cc32acd2b02bc28b995f1b816006600881106131a7576131a6613acd565b5b6020020181815250507fcb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be5f1b816007600881106131e7576131e6613acd565b5b6020020181815250505f5f90505b838110156132d7575f5f600f73ffffffffffffffffffffffffffffffffffffffff16858560405160200161322a929190614f50565b6040516020818303038152906040526040516132469190614286565b5f60405180830381855afa9150503d805f811461327e576040519150601f19603f3d011682016040523d82523d5f602084013e613283565b606091505b5091509150816132c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132bf90614fc2565b60405180910390fd5b505080806001019150506131f5565b50505050565b6132e561363b565b6f04090815ad598a06897dd89bcda860f25f1b815f6002811061330b5761330a613acd565b5b6020020181815250507f5837d54e897298ce31e6947378134d3761dc59a572154963e8c954919ecfa82d5f1b8160016002811061334b5761334a613acd565b5b6020020181815250505f5f90505b8281101561344f575f5f601073ffffffffffffffffffffffffffffffffffffffff168460405160200161338c919061505f565b6040516020818303038152906040526040516133a89190614286565b5f60405180830381855afa9150503d805f81146133e0576040519150601f19603f3d011682016040523d82523d5f602084013e6133e5565b606091505b50915091508161342a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613421906150c2565b60405180910390fd5b8080602001905181019061343e919061518e565b935050508080600101915050613359565b505050565b61345c61365d565b6f18c16fe362b7dbdfa102e42bdfd3e2f45f1b815f6004811061348257613481613acd565b5b6020020181815250507fe6191d479437a59db4eb716986bf08ee1f42634db66bde97d6c16bbfd342b3b85f1b816001600481106134c2576134c1613acd565b5b6020020181815250506f0e37812ce1b146d998d5f92bdd5ada2a5f1b816002600481106134f2576134f1613acd565b5b6020020181815250507f31bfd63dfe18311aa91637b5f279dd045763166aa1615e46a50d8d8f475f184e5f1b8160036004811061353257613531613acd565b5b6020020181815250505f5f90505b82811015613636575f5f601173ffffffffffffffffffffffffffffffffffffffff168460405160200161357391906151b9565b60405160208183030381529060405260405161358f9190614286565b5f60405180830381855afa9150503d805f81146135c7576040519150601f19603f3d011682016040523d82523d5f602084013e6135cc565b606091505b509150915081613611576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136089061521c565b60405180910390fd5b808060200190518101906136259190614c65565b935050508080600101915050613540565b505050565b6040518060400160405280600290602082028036833780820191505090505090565b6040518060800160405280600490602082028036833780820191505090505090565b6040518060400160405280600290602082028036833780820191505090505090565b604051806101000160405280600890602082028036833780820191505090505090565b5f819050919050565b6136d6816136c4565b82525050565b5f6020820190506136ef5f8301846136cd565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f61010082840312156137205761371f613706565b5b81905092915050565b5f6020828403121561373e5761373d6136fe565b5b5f82013567ffffffffffffffff81111561375b5761375a613702565b5b6137678482850161370a565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6137b282613770565b6137bc818561377a565b93506137cc81856020860161378a565b6137d581613798565b840191505092915050565b5f6020820190508181035f8301526137f881846137a8565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b61382881613800565b82525050565b5f6020820190506138415f83018461381f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61387e82613800565b915061388983613800565b9250828201905073ffffffffffffffffffffffffffffffffffffffff8111156138b5576138b4613847565b5b92915050565b5f6138c5826136c4565b91506138d0836136c4565b92508282019050808211156138e8576138e7613847565b5b92915050565b7f4e6f7420656e6f7567682073746f7261676520736c6f747320746f206c6f61645f8201527f2f75706461746500000000000000000000000000000000000000000000000000602082015250565b5f61394860278361377a565b9150613953826138ee565b604082019050919050565b5f6020820190508181035f8301526139758161393c565b9050919050565b61398581613800565b811461398f575f5ffd5b50565b5f813590506139a08161397c565b92915050565b5f602082840312156139bb576139ba6136fe565b5b5f6139c884828501613992565b91505092915050565b7f4e6f7420656e6f756768206163636f756e747320746f206c6f61642f757064615f8201527f7465000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a2b60228361377a565b9150613a36826139d1565b604082019050919050565b5f6020820190508181035f830152613a5881613a1f565b9050919050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83356001602003843603038112613a8757613a86613a5f565b5b80840192508235915067ffffffffffffffff821115613aa957613aa8613a63565b5b602083019250604082023603831315613ac557613ac4613a67565b5b509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613b0482613800565b9050919050565b613b1481613afa565b8114613b1e575f5ffd5b50565b5f81359050613b2f81613b0b565b92915050565b5f60208284031215613b4a57613b496136fe565b5b5f613b5784828501613b21565b91505092915050565b5f81905092915050565b7f546869732069732061206c6f6e6720696e70757420737472696e6720666f72205f8201527f707265636f6d70696c6520000000000000000000000000000000000000000000602082015250565b5f613bc4602b83613b60565b9150613bcf82613b6a565b602b82019050919050565b7f616e64206974206973206265696e67207265706561746564206d756c7469706c5f8201527f652074696d657320746f20696e637265617365207468652073697a652e200000602082015250565b5f613c34603e83613b60565b9150613c3f82613bda565b603e82019050919050565b7f4c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e735f8201527f656374657475722061646970697363696e6720656c69742e2000000000000000602082015250565b5f613ca4603983613b60565b9150613caf82613c4a565b603982019050919050565b7f566976616d7573206c75637475732075726e61207365642075726e6120756c745f8201527f7269636965732061632074656d706f72206475692073616769747469732e2000602082015250565b5f613d14603f83613b60565b9150613d1f82613cba565b603f82019050919050565b7f496e20636f6e64696d656e74756d20666163696c6973697320706f7274612e205f8201527f536564206e6563206469616d206575206469616d206d6174746973207669766560208201527f7272612e20000000000000000000000000000000000000000000000000000000604082015250565b5f613daa604583613b60565b9150613db582613d2a565b604582019050919050565b7f4e756c6c61206672696e67696c6c612c206f72636920616320657569736d6f645f8201527f2073656d7065722c206d61676e61206469616d20706f72747469746f72206d6160208201527f757269732c200000000000000000000000000000000000000000000000000000604082015250565b5f613e40604683613b60565b9150613e4b82613dc0565b604682019050919050565b7f7175697320736f6c6c696369747564696e2073617069656e206a7573746f20695f8201527f6e206c696265726f2e20566573746962756c756d206d6f6c6c6973206d61757260208201527f697320656e696d2e200000000000000000000000000000000000000000000000604082015250565b5f613ed6604983613b60565b9150613ee182613e56565b604982019050919050565b7f4d6f72626920657569736d6f64206d61676e61206163206c6f72656d207275745f8201527f72756d20656c656d656e74756d2e20546869732069732061206c6f6e6720696e60208201527f70757420737472696e6720666f7220707265636f6d70696c6520000000000000604082015250565b5f613f6c605a83613b60565b9150613f7782613eec565b605a82019050919050565b7f4d6f72626920657569736d6f64206d61676e61206163206c6f72656d207275745f8201527f72756d20656c656d656e74756d2e200000000000000000000000000000000000602082015250565b5f613fdc602f83613b60565b9150613fe782613f82565b602f82019050919050565b5f613ffc82613bb8565b915061400782613c28565b915061401282613c98565b915061401d82613d08565b915061402882613d9e565b915061403382613e34565b915061403e82613eca565b915061404982613f60565b915061405482613c28565b915061405f82613c98565b915061406a82613d08565b915061407582613d9e565b915061408082613e34565b915061408b82613eca565b915061409682613f60565b91506140a182613c28565b91506140ac82613c98565b91506140b782613d08565b91506140c282613d9e565b91506140cd82613e34565b91506140d882613eca565b91506140e382613fd0565b9150819050919050565b7f496e76616c696420707265636f6d70696c6520616464726573730000000000005f82015250565b5f614121601a8361377a565b915061412c826140ed565b602082019050919050565b5f6020820190508181035f83015261414e81614115565b9050919050565b5f819050919050565b61416781614155565b82525050565b5f60ff82169050919050565b6141828161416d565b82525050565b5f60808201905061419b5f83018761415e565b6141a86020830186614179565b6141b5604083018561415e565b6141c2606083018461415e565b95945050505050565b5f6141d582613770565b6141df8185613b60565b93506141ef81856020860161378a565b80840191505092915050565b5f819050919050565b614215614210826136c4565b6141fb565b82525050565b5f61422682856141cb565b91506142328284614204565b6020820191508190509392505050565b5f81519050919050565b5f81905092915050565b5f61426082614242565b61426a818561424c565b935061427a81856020860161378a565b80840191505092915050565b5f6142918284614256565b915081905092915050565b6142a581614155565b81146142af575f5ffd5b50565b5f815190506142c08161429c565b92915050565b5f602082840312156142db576142da6136fe565b5b5f6142e8848285016142b2565b91505092915050565b5f6142fc8284614204565b60208201915081905092915050565b5f6040820190508181035f83015261432381856137a8565b905061433260208301846136cd565b9392505050565b5f6143448289614204565b6020820191506143548288614204565b6020820191506143648287614204565b6020820191506143748286614256565b91506143808285614256565b915061438c8284614256565b9150819050979650505050505050565b5f6080820190506143af5f8301876136cd565b6143bc60208301866136cd565b6143c960408301856136cd565b6143d660608301846136cd565b95945050505050565b7f4543416464206661696c656400000000000000000000000000000000000000005f82015250565b5f614413600c8361377a565b915061441e826143df565b602082019050919050565b5f6020820190508181035f83015261444081614407565b9050919050565b614450816136c4565b811461445a575f5ffd5b50565b5f8151905061446b81614447565b92915050565b5f5f60408385031215614487576144866136fe565b5b5f6144948582860161445d565b92505060206144a58582860161445d565b9150509250929050565b5f6060820190506144c25f8301866136cd565b6144cf60208301856136cd565b6144dc60408301846136cd565b949350505050565b7f45434d756c206661696c656400000000000000000000000000000000000000005f82015250565b5f614518600c8361377a565b9150614523826144e4565b602082019050919050565b5f6020820190508181035f8301526145458161450c565b9050919050565b5f60069050919050565b5f81905092915050565b5f819050919050565b614572816136c4565b82525050565b5f6145838383614569565b60208301905092915050565b5f602082019050919050565b6145a48161454c565b6145ae8184614556565b92506145b982614560565b805f5b838110156145e95781516145d08782614578565b96506145db8361458f565b9250506001810190506145bc565b505050505050565b5f60c0820190506146045f83018461459b565b92915050565b7f454350616972696e67206661696c6564000000000000000000000000000000005f82015250565b5f61463e60108361377a565b91506146498261460a565b602082019050919050565b5f6020820190508181035f83015261466b81614632565b9050919050565b5f819050919050565b5f819050919050565b5f61469e61469961469484614672565b61467b565b61416d565b9050919050565b6146ae81614684565b82525050565b5f819050919050565b5f6146d76146d26146cd846146b4565b61467b565b61416d565b9050919050565b6146e7816146bd565b82525050565b5f6080820190506147005f8301876136cd565b61470d60208301866136cd565b61471a60408301856146a5565b61472760608301846146de565b95945050505050565b5f63ffffffff82169050919050565b5f8160e01b9050919050565b5f6147558261473f565b9050919050565b61476d61476882614730565b61474b565b82525050565b5f819050919050565b61478d61478882614155565b614773565b82525050565b5f7fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b5f819050919050565b6147d86147d382614793565b6147be565b82525050565b5f8115159050919050565b5f8160f81b9050919050565b5f6147ff826147e9565b9050919050565b5f614810826147f5565b9050919050565b614828614823826147de565b614806565b82525050565b5f614839828d61475c565b600482019150614849828c61477c565b602082019150614859828b61477c565b602082019150614869828a61477c565b602082019150614879828961477c565b602082019150614889828861477c565b602082019150614899828761477c565b6020820191506148a982866147c7565b6008820191506148b982856147c7565b6008820191506148c98284614817565b6001820191508190509b9a5050505050505050505050565b7f426c616b653266206661696c65640000000000000000000000000000000000005f82015250565b5f614915600e8361377a565b9150614920826148e1565b602082019050919050565b5f6020820190508181035f83015261494281614909565b9050919050565b5f60a08201905061495c5f83018861415e565b614969602083018761415e565b614976604083018661415e565b614983606083018561415e565b614990608083018461415e565b9695505050505050565b7f70323536566572696679206661696c65640000000000000000000000000000005f82015250565b5f6149ce60118361377a565b91506149d98261499a565b602082019050919050565b5f6020820190508181035f8301526149fb816149c2565b9050919050565b5f60049050919050565b5f81905092915050565b5f819050919050565b614a2881614155565b82525050565b5f614a398383614a1f565b60208301905092915050565b5f602082019050919050565b614a5a81614a02565b614a648184614a0c565b9250614a6f82614a16565b805f5b83811015614a9f578151614a868782614a2e565b9650614a9183614a45565b925050600181019050614a72565b505050505050565b5f61010082019050614abb5f830185614a51565b614ac86080830184614a51565b9392505050565b7f4731416464206661696c656400000000000000000000000000000000000000005f82015250565b5f614b03600c8361377a565b9150614b0e82614acf565b602082019050919050565b5f6020820190508181035f830152614b3081614af7565b9050919050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b614b7182613798565b810181811067ffffffffffffffff82111715614b9057614b8f614b3b565b5b80604052505050565b5f614ba26136f5565b9050614bae8282614b68565b919050565b5f67ffffffffffffffff821115614bcd57614bcc614b3b565b5b602082029050919050565b5f5ffd5b5f614bee614be984614bb3565b614b99565b90508060208402830185811115614c0857614c07614bd8565b5b835b81811015614c315780614c1d88826142b2565b845260208401935050602081019050614c0a565b5050509392505050565b5f82601f830112614c4f57614c4e614b37565b5b6004614c5c848285614bdc565b91505092915050565b5f60808284031215614c7a57614c796136fe565b5b5f614c8784828501614c3b565b91505092915050565b5f60a082019050614ca35f830185614a51565b614cb0608083018461415e565b9392505050565b5f60089050919050565b5f81905092915050565b5f819050919050565b5f602082019050919050565b614ce981614cb7565b614cf38184614cc1565b9250614cfe82614ccb565b805f5b83811015614d2e578151614d158782614a2e565b9650614d2083614cd4565b925050600181019050614d01565b505050505050565b5f61020082019050614d4a5f830185614ce0565b614d58610100830184614ce0565b9392505050565b7f4732416464206661696c656400000000000000000000000000000000000000005f82015250565b5f614d93600c8361377a565b9150614d9e82614d5f565b602082019050919050565b5f6020820190508181035f830152614dc081614d87565b9050919050565b5f67ffffffffffffffff821115614de157614de0614b3b565b5b602082029050919050565b5f614dfe614df984614dc7565b614b99565b90508060208402830185811115614e1857614e17614bd8565b5b835b81811015614e415780614e2d88826142b2565b845260208401935050602081019050614e1a565b5050509392505050565b5f82601f830112614e5f57614e5e614b37565b5b6008614e6c848285614dec565b91505092915050565b5f6101008284031215614e8b57614e8a6136fe565b5b5f614e9884828501614e4b565b91505092915050565b5f61024082019050614eb55f830187614ce0565b614ec361010083018661415e565b614ed1610120830185614ce0565b614edf61022083018461415e565b95945050505050565b7f47324d534d206661696c656400000000000000000000000000000000000000005f82015250565b5f614f1c600c8361377a565b9150614f2782614ee8565b602082019050919050565b5f6020820190508181035f830152614f4981614f10565b9050919050565b5f61018082019050614f645f830185614a51565b614f716080830184614ce0565b9392505050565b7f424c532050616972696e67206661696c656400000000000000000000000000005f82015250565b5f614fac60128361377a565b9150614fb782614f78565b602082019050919050565b5f6020820190508181035f830152614fd981614fa0565b9050919050565b5f60029050919050565b5f81905092915050565b5f819050919050565b5f602082019050919050565b61501281614fe0565b61501c8184614fea565b925061502782614ff4565b805f5b8381101561505757815161503e8782614a2e565b965061504983614ffd565b92505060018101905061502a565b505050505050565b5f6040820190506150725f830184615009565b92915050565b7f4d6170204731206661696c6564000000000000000000000000000000000000005f82015250565b5f6150ac600d8361377a565b91506150b782615078565b602082019050919050565b5f6020820190508181035f8301526150d9816150a0565b9050919050565b5f67ffffffffffffffff8211156150fa576150f9614b3b565b5b602082029050919050565b5f615117615112846150e0565b614b99565b9050806020840283018581111561513157615130614bd8565b5b835b8181101561515a578061514688826142b2565b845260208401935050602081019050615133565b5050509392505050565b5f82601f83011261517857615177614b37565b5b6002615185848285615105565b91505092915050565b5f604082840312156151a3576151a26136fe565b5b5f6151b084828501615164565b91505092915050565b5f6080820190506151cc5f830184614a51565b92915050565b7f4d6170204732206661696c6564000000000000000000000000000000000000005f82015250565b5f615206600d8361377a565b9150615211826151d2565b602082019050919050565b5f6020820190508181035f830152615233816151fa565b905091905056fea2646970667358221220b56a1c1a7b785bb0405f48e45c04a5cbdf70bec33b69a6bdc4f1184b30fc7b1d64736f6c634300081c0033",
}
// SimulatorABI is the input ABI used to generate the binding from.
diff --git a/runner/payload/simulator/worker.go b/runner/payload/simulator/worker.go
index b190658a..74d20dbc 100644
--- a/runner/payload/simulator/worker.go
+++ b/runner/payload/simulator/worker.go
@@ -170,6 +170,31 @@ func (t *simulatorPayloadWorker) Stop(ctx context.Context) error {
func (t *simulatorPayloadWorker) mineAndConfirm(ctx context.Context, txs []*types.Transaction) error {
t.mempool.AddTransactions(txs)
+ // Wait for at least one block to be produced before checking for receipt
+ // This is especially important in dual-builder mode where there can be delays
+ initialBlock, err := t.client.BlockNumber(ctx)
+ if err != nil {
+ t.log.Warn("Failed to get initial block number, continuing anyway", "err", err)
+ } else {
+ t.log.Debug("Waiting for block to be mined", "currentBlock", initialBlock, "numTxs", len(txs))
+
+ // Wait for at least one new block (up to 30 seconds)
+ for i := 0; i < 30; i++ {
+ time.Sleep(1 * time.Second)
+ currentBlock, err := t.client.BlockNumber(ctx)
+ if err != nil {
+ t.log.Warn("Failed to get current block number", "err", err)
+ continue
+ }
+ if currentBlock > initialBlock {
+ t.log.Debug("New block detected", "newBlock", currentBlock, "previousBlock", initialBlock)
+ break
+ }
+ }
+ // Add extra delay for dual-builder mode to let fallback builder sync
+ time.Sleep(2 * time.Second)
+ }
+
receipt, err := t.waitForReceipt(ctx, txs[len(txs)-1].Hash())
if err != nil {
return errors.Wrap(err, "failed to wait for receipt")
@@ -390,11 +415,28 @@ func (t *simulatorPayloadWorker) Setup(ctx context.Context) error {
}
func (t *simulatorPayloadWorker) waitForReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) {
- return retry.Do(ctx, 240, retry.Fixed(1*time.Second), func() (*types.Receipt, error) {
+ t.log.Info("Waiting for transaction receipt", "txHash", txHash.Hex())
+
+ attemptCount := 0
+ return retry.Do(ctx, 600, retry.Fixed(1*time.Second), func() (*types.Receipt, error) {
+ attemptCount++
receipt, err := t.client.TransactionReceipt(ctx, txHash)
if err != nil {
+ // Log every 30th attempt to track progress without spam
+ if attemptCount%30 == 0 {
+ t.log.Info("Still waiting for receipt...", "txHash", txHash.Hex(), "attempts", attemptCount, "err", err)
+
+ // Check if blocks are still being produced
+ blockNum, blockErr := t.client.BlockNumber(ctx)
+ if blockErr == nil {
+ t.log.Info("Current block number", "block", blockNum)
+ }
+ } else {
+ t.log.Debug("Receipt not found yet, retrying...", "txHash", txHash.Hex(), "attempt", attemptCount, "err", err)
+ }
return nil, err
}
+ t.log.Info("Receipt found", "txHash", txHash.Hex(), "blockNumber", receipt.BlockNumber, "attempts", attemptCount)
return receipt, nil
})
}
@@ -417,7 +459,7 @@ func (t *simulatorPayloadWorker) sendTxs(ctx context.Context) error {
gasUsed := transferTx.Gas()
if gasUsed > gas {
- t.log.Warn("Gas used is greater than gas limit, stopping tx sending", "gasUsed", gasUsed, "gasLimit", t.params.GasLimit)
+ t.log.Warn("Gas used is greater than gas limit, stopping tx sending", "gasUsed", gasUsed, "gasLimit", t.params.GasLimit, "remainingGas", gas)
break
}
diff --git a/runner/payload/transferonly/worker.go b/runner/payload/transferonly/worker.go
index 03a1a9b0..4928bfde 100644
--- a/runner/payload/transferonly/worker.go
+++ b/runner/payload/transferonly/worker.go
@@ -226,11 +226,14 @@ func (t *transferOnlyPayloadWorker) Setup(ctx context.Context) error {
}
func (t *transferOnlyPayloadWorker) waitForReceipt(ctx context.Context, txHash common.Hash) (*types.Receipt, error) {
+ t.log.Info("Waiting for transaction receipt", "txHash", txHash.Hex())
return retry.Do(ctx, 60, retry.Fixed(1*time.Second), func() (*types.Receipt, error) {
receipt, err := t.client.TransactionReceipt(ctx, txHash)
if err != nil {
+ t.log.Debug("Receipt not found yet, retrying...", "txHash", txHash.Hex(), "err", err)
return nil, err
}
+ t.log.Info("Receipt found", "txHash", txHash.Hex(), "blockNumber", receipt.BlockNumber)
return receipt, nil
})
}
diff --git a/runner/service.go b/runner/service.go
index dcaf3251..9fce068e 100644
--- a/runner/service.go
+++ b/runner/service.go
@@ -28,6 +28,7 @@ import (
"github.com/base/base-bench/runner/payload"
"github.com/base/base-bench/runner/utils"
"github.com/ethereum/go-ethereum/core"
+ ethtypes "github.com/ethereum/go-ethereum/core/types"
ethparams "github.com/ethereum/go-ethereum/params"
)
@@ -396,7 +397,17 @@ func (s *service) detectSnapshotHeadBlocks(testPlans []benchmark.TestPlan) error
for nodeType, snapshot := range snapshotsToDetect {
headBlock, err := s.detectHeadBlockForSnapshot(nodeType, snapshot)
if err != nil {
- s.log.Warn("Failed to detect head block for snapshot", "nodeType", nodeType, "error", err)
+ s.log.Error("Failed to detect head block for snapshot", "nodeType", nodeType, "error", err)
+
+ // Fallback: try to use a reasonable default based on the snapshot
+ // This is a best-effort attempt to keep the benchmark running
+ fallbackBlock := s.getFallbackHeadBlock(nodeType, snapshot)
+ if fallbackBlock > 0 {
+ s.log.Warn("Using fallback head block for snapshot", "nodeType", nodeType, "fallbackBlock", fallbackBlock)
+ s.updateTestPlansWithDetectedHeadBlock(testPlans, nodeType, fallbackBlock)
+ } else {
+ s.log.Error("No fallback head block available, benchmark will likely fail", "nodeType", nodeType)
+ }
continue
}
@@ -505,19 +516,60 @@ func (s *service) detectHeadBlockForSnapshot(nodeType string, snapshot benchmark
tempOptions.ChainCfgPath = chainCfgPath
// Start the temporary client to query head block
+ s.log.Info("Starting temporary client for head detection", "nodeType", nodeType, "dataDir", tempSnapshotPath)
tempClient, _, err := network.SetupNodeForHeadDetection(ctx, s.log, nodeType, tempOptions, s.portState)
if err != nil {
return 0, fmt.Errorf("failed to setup temporary client for head detection: %w", err)
}
- defer tempClient.Stop()
+ defer func() {
+ s.log.Info("Stopping temporary client for head detection", "nodeType", nodeType)
+ tempClient.Stop()
+ }()
+
+ // Wait a bit for the client to fully start
+ time.Sleep(2 * time.Second)
+
+ // Query the head block with retries
+ var currentHeader *ethtypes.Header
+ maxRetries := 5
+ for i := 0; i < maxRetries; i++ {
+ currentHeader, err = tempClient.Client().HeaderByNumber(ctx, nil)
+ if err == nil {
+ break
+ }
+ s.log.Warn("Failed to query head block, retrying", "attempt", i+1, "maxRetries", maxRetries, "error", err)
+ if i < maxRetries-1 {
+ time.Sleep(time.Duration(i+1) * time.Second)
+ }
+ }
- // Query the head block
- currentHeader, err := tempClient.Client().HeaderByNumber(ctx, nil)
if err != nil {
- return 0, fmt.Errorf("failed to query head block: %w", err)
+ return 0, fmt.Errorf("failed to query head block after %d attempts: %w", maxRetries, err)
}
- return currentHeader.Number.Uint64(), nil
+ headBlock := currentHeader.Number.Uint64()
+ s.log.Info("Successfully detected head block", "nodeType", nodeType, "headBlock", headBlock)
+ return headBlock, nil
+}
+
+// getFallbackHeadBlock attempts to provide a reasonable fallback head block when detection fails
+func (s *service) getFallbackHeadBlock(nodeType string, snapshot benchmark.SnapshotDefinition) uint64 {
+ // Check if there's a stored head block from previous successful detection
+ storedHeadBlock := s.dataDirState.GetInitialSnapshotHeadBlock(nodeType)
+ if storedHeadBlock > 0 {
+ s.log.Info("Using previously detected head block as fallback", "nodeType", nodeType, "headBlock", storedHeadBlock)
+ return storedHeadBlock
+ }
+
+ // If no stored head block, we could try other fallback strategies:
+ // 1. Use a default based on the snapshot type or command
+ // 2. Parse the snapshot path for hints about the block number
+ // 3. Use a conservative default (e.g., block 1000 for most devnets)
+
+ // For now, use a conservative default that should work for most devnet snapshots
+ defaultFallback := uint64(1000)
+ s.log.Info("Using conservative default as fallback head block", "nodeType", nodeType, "defaultBlock", defaultFallback)
+ return defaultFallback
}
func (s *service) updateTestPlansWithDetectedHeadBlock(testPlans []benchmark.TestPlan, nodeType string, headBlock uint64) {